2.6.1.1. Siêu khóa và khóa của lược đồ quan hệ
Siêu khóa (Super Key): Một quan hệ được định nghĩa như một tập hợp các bộ.
Theo định nghĩa tập hợp, 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ệ phải khác nhau. Điều đó có nghĩa là: Không thể có 2 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ó 2 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à S, khi đó với 2 bộ khác nhau bất kỳ t1 và t2 trong một
trạng thái quan hệ r của lược đồ quan hệ R chúng ta có ràng buộc là: ∀ r, ∀ t1, ∀ t2 ∈ r,
t1 ≠ t2 ⇒ t1[S] ≠ t2[S]. Tập hợp S có các thuộc tính như vậy được gọi là một siêu khóa
của lược đồ quan hệ R. Một quan hệ có thể có nhiều siêu khoá. 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ó.
58
Khóa (Key): Một khoá 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 khoá của R. Như vậy, một khóa là một siêu khóa tối thiểu (siêu khoá chứa
ít thuộc tính nhất), 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.
Khóa dự tuyển (Candidate Key) – Khóa chính (Primary Key) : Một lược đồ
quan hệ có thể có nhiều hơn một khoá. Trong trường hợp đó, mỗi một khoá được gọi là
một khoá dự tuyển. Một trong các khóa dự tuyển được chọn làm khóa khóa chính. Một
quan hệ chỉ có một khóa chính và có thể có nhiều khóa dự tuyển. 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 khoá dự tuyển để làm khóa
chính là tuỳ ý, tuy nhiên tốt nhất là chọn khoá chính gồm một thuộc tính hoặc có số
lượng các thuộc tính ít nhất. Khóa chính được chọn để cài đặt trong một hệ quản trị
CSDL. Khi chọn khóa chính ta phải chú ý các tính chất sau:
- Khóa có tính áp dụng khi nó không bỏ sót bất kỳ trường hợp nào của vấn đề.
- Khóa phải có tính duy nhất dùng để phân biệt bộ này với bộ kia trong quan hệ.
- Khóa có tính nhỏ nhất: Khi ta bỏ qua bất kỳ thuộc tính nào của nó thì nó không
còn tính duy nhất nữa.
- Khóa có tính ổn định khi giá trị của khóa không thay đổi.
Ví dụ: Xét quan hệ SINHVIEN sau: SINHVIEN(MaSV, SoCMND, TenSV,
Ngaysinh, Gioitinh, QueQuan) Ta xét các tập thuộc tính sau:
K1={MaSV, TenSV} → Là siêu khóa
K2={Ngaysinh, QueQuan} → Không là khóa
K3={NgaySinh, TenSV, QueQuan} → Không là khóa
K4={MaSV} → Là siêu khóa (khóa)
K5={MaSV, TenSV, Ngaysinh, Gioitinh, QueQuan} → Là siêu khóa
K6={MaSV, Ngaysinh} → Là siêu khóa
K7={SoCMND} → Là siêu khóa (khóa)
K4={MaSV}, K7={SoCMND} → Là các khóa dự tuyển
59
K4={MaSV} hoặc K7={SoCMND} → Là khóa chính (tùy theo sự lựa chọn trong
hệ quản trị CSDL)
Chia sẻ với bạn bè của bạn: |