Ràng buộc khĩa và ràng buộc trên các giá trị khơng xác định null

Một phần của tài liệu Giáo trình quản trị cơ sở dữ liệu nâng cao MS SQL SERVER (Trang 66 - 67)

- DEFAULT IDENTITY

64ADD CONSTRAINT check_mad

6.2.1 Ràng buộc khĩa và ràng buộc trên các giá trị khơng xác định null

Một quan hệ được định nghĩa như một tập hợp các bộ. Theo định nghĩa, các phần tử của một tập hợp là khác nhau. Vì vậy, mọi bộ trong quan hệ khác nhau. Điều đĩ cĩ nghĩa là khơng cĩ hai bộ cĩ cùng một tổ hợp giá trị cho tất cả các thuộc tính của chúng.

Thơng thường, cĩ tồn tại các tập con của các thuộc tính của một lược đồ quan hệ cĩ tính chất là khơng cĩ hai bộ nào ở trong mọi trạng thái quan hệ r của R cĩ cùng một tổ hợp giá trị cho các thuộc tính của nĩ. Giả sử chúng ta ký hiệu một tập con như vậy là SK, khi đĩ với hai bộ khác nhau bất kỳ t1 và t2 trong một trạng thái quan hệ r của R chúng ta cĩ ràng buộc là t1[SK] ≠ t2[SK]. Tập hợp thuộc tính SK như vậy được gọi là một siêu khĩa (superkey) của lược đồ quan hệ R. Một siêu khĩa SK xác định rõ một ràng buộc về tính duy nhất. Phát biểu rằng, khơng cĩ hai bộ khác nhau trong một trạng thái r của R cĩ cùng một giá trị cho SK. Mỗi quan hệ cĩ ít nhất một siêu khĩa mặc định, đĩ là tập hợp tất cả các thuộc tính của nĩ.

Mỗi khĩa K của một lược đồ quan hệ R là một siêu khĩa của R với tính chất là nếu bỏ đi bất kỳ thuộc tính A nào ra khỏi K thì sẽ cịn lại một tập K khơng phải là siêu khĩa của R. Như vậy, một khĩa là một siêu khĩa tối thiểu, nghĩa là đĩ là một siêu khĩa mà ta khơng thể vứt bỏ thuộc tính nào ra khỏi nĩ mà vẫn giữ được ràng buộc về tính duy nhất.

Ví dụ, xét quan hệ SINH_VIÊN với các thuộc tính Mã_số, Họ_tên, Ngày_sinh, Giới_tính, Địa_chỉ. Thuộc tính Mã_số là một khĩa của SINH_VIÊN, bởi vì khơng cĩ hai bộ sinh

67

viên cĩ cùng một giá trị cho Mã_số. Mọi tập hợp thuộc tính cĩ chứa Mã_số, ví dụ {Mã_số, Họ_tên, Ngày_sinh} đều là một siêu khĩa. Tuy nhiên, siêu khĩa {Mã_số, Họ_tên, Ngày_sinh} khơng phải là khĩa, bởi vì nếu bỏ đi thuộc tính Họ_tên hoặc Ngày_sinh, hoặc cả hai thì nĩ vẫn cịn là một siêu khĩa.

Giá trị của một thuộc tính khĩa cĩ thể được sử dụng để xác định một cách duy nhất mỗi bộ trong một quan hệ. Ví dụ, giá trị 4515202 của Mã_số xác định một cách duy nhất bộ giá trị tương ứng với sinh viên “Lê Vân” trong quan hệ SINH_VIÊN (hình 3.1). Chú ý rằng, một tập hợp thuộc tính tạo nên một khĩa là một tính chất của lược đồ quan hệ. Điều ràng buộc là tính chất đĩ phải thỏa mãn trên mọi trạng thái của lược đồ. Một khĩa được xác định từ ý nghĩa của các thuộc tính và tính chất là bất biến; tính chất đĩ phải thỏa mãn khi chúng ta chèn thêm các bộ mới vào quan hệ. Ví dụ, ta khơng thể và khơng được chỉ định thuộc tính Họ_tên của quan hệ SINH_VIÊN là khĩa, bởi vì khơng cĩ gì đảm bảo rằng khơng tồn tại hai sinh viên cĩ cùng họ tên. Nĩi chung, một lược đồ quan hệ cĩ thể cĩ nhiều hơn một khĩa. Trong trường hợp đĩ, mỗi một khĩa được gọi làm một khĩa dự tuyển. Thơng thường phải chỉ định một trong các khĩa dự tuyển làm khĩa chính của quan hệ. Khĩa chính là một khĩa dự tuyển mà các giá trị của chúng được dùng để xác định các bộ trong quan hệ. Ta quy ước các thuộc tính tạo nên khĩa chính của một lược đồ quan hệ được gạch dưới.

Ví dụ: SINH_VIÊN(Mã_số, Họ_tên, Ngày_sinh, Giới_tính, Địa_chỉ)

Chú ý rằng, khi một lược đồ quan hệ cĩ nhiều khĩa dự tuyển, việc lựa chọn một khĩa dự tuyển để làm khĩa chính là tùy ý. Tuy nhiên, tốt nhất là chọn khĩa chính gồm một thuộc tính hoặc cĩ số các thuộc tính là ít nhất.

Một ràng buộc khác trên các thuộc tính chỉ rõ khi nào thì cho phép các giá trị null. Những thuộc tính luơn luơn phải cĩ một giá trị xác định và hợp lệ thì bị ràng buộc là NOT null.

Một phần của tài liệu Giáo trình quản trị cơ sở dữ liệu nâng cao MS SQL SERVER (Trang 66 - 67)

Tải bản đầy đủ (PDF)

(121 trang)