James Perry, Richard Newmark
Chương 2
Cơ sở dữ liệu và hệ thống kế toán
Các quan hệ bảng
Bạn đã học rằng quá trình chuẩn hóa bảng cơ sở dữ liệu thường phát sinh thêm một số bảng, và quan hệ giữa các bảng liên quan được duy trì bằng liên kết khóa ngoại khóa chính. Có 3 kiểu quan hệ cơ bản giữa các bảng liên quan: một-một (1-1, one-to-one), một-nhiều (1-M, one-to-many), và nhiều-nhiều (M-M, many-to-many). Chữ hoa M ký hiệu nhiều bản ghi. Ba kiểu quan hệ này có vai trò quan trọng trong việc hiểu cách xây dựng lại thông tin từ dữ liệu lưu trong các bảng thành phần. Nhớ lại rằng các dòng từ 2 bảng sẽ được nối lại khi khóa ngoại ở một bảng trùng với khóa chính ở bảng kia.
Quan hệ một-một thường thể hiện những bảng không cần thiết trong thiết kế cơ sở dữ liệu. Bạn thường kết hợp các bảng trong quan hệ một-một vào một bảng. Qui tắc tổng quát này có thể phát sinh ngoại lệ. Chẳng hạn, bảng khách hàng có thể quan hệ một-một với tblCustomerNotes, vốn lưu thông tin bổ sung về một số khách hàng của The Coffee Merchant. Vì chỉ vài khách hàng có thông tin bổ sung trong bảng tblCustomerNotes, bạn không muốn cấp thêm một cột để lưu thông tin bổ sung. Điều này lãng phí không gian lưu trữ. Vì vậy, tblCustomerNotes sẽ chứa khóa ngoại CustID và cột Notes (chú thích). CustID vừa là khóa chính cho bảng tblCustomerNotes vừa là khóa ngoại trỏ đến bảng tblCustomer. Ký hiệu tiện lợi sau thể hiện quan hệ này:
⦁ Khóa chính không được rỗng (null).
⦁ Hãy tạo khóa ngoại từ khóa chính ở phía một của quan hệ một-nhiều.
⦁ Quan hệ nhiều-nhiều được xử lý bằng cách tạo thêm một bảng, tức bảng-quan-hệ, gồm toàn bộ 2 khóa chính ở 2 bảng cha (bảng-quan-hệ cũng có thể thêm những cột khác).
⦁ Hầu hết quan hệ một-một thể hiện những bảng không cần thiết trong thiết kế cơ sở dữ liệu. Trong hầu hết trường hợp, nếu phân tích của bạn đưa đến kết quả là quan hệ một-một giữa 2 bảng, bạn nên ghép 2 bảng đó thành một. Quan hệ một-một nghĩa là mỗi dòng trong bảng thứ nhất có một và chỉ một dòng trong bảng thứ hai liên hệ với nó. Như vậy, kết hợp 2 bảng là hợp lý. Tuy nhiên, trong vài trường hợp, chẳng hạn khi một số trường được dùng thường xuyên hơn những trường khác, hoặc khi một số trường cần độ an ninh cao hơn, đặt các trường đó vào bảng riêng sẽ tốt hơn.
Không có nhận xét nào:
Đăng nhận xét