- Tại những thời điểm khác nhau thì quan hệ sẽ có những
QUANG VINH HUC 33•KHÓAKHÓA (KEY) (KEY)
Có nhiều cách khác nhau để định nghĩa khóa: Có nhiều cách khác nhau để định nghĩa khóa:
Định nghĩa 6Định nghĩa 6::
Khóa của lược đồ quan hệ R định nghĩa trên tập các thuộc Khóa của lược đồ quan hệ R định nghĩa trên tập các thuộc
tính U={A
tính U={A11, A, A22, ..., A, ..., Ann} là một tập con K } là một tập con K ⊆⊆ U thỏa mãn các U thỏa mãn các tính chất sau: với
tính chất sau: với ∀∀ bộ giá trị q bộ giá trị q11, q, q2 2 của R đều của R đều ∃∃ một thuộc một thuộc tính A
tính A ∈∈ K sao cho q K sao cho q11.A .A ≠≠ q q22.A. .A.
!! ∃∃ 2 bộ có giá trị bằng nhau trên 2 bộ có giá trị bằng nhau trên ∀∀ thuộc tính của K: thuộc tính của K: q
q11.K .K ≠≠ q q22.K .K
Như vậy, mỗi giá trị của khóa K phải là xác định duy nhất Như vậy, mỗi giá trị của khóa K phải là xác định duy nhất
trên quan hệ R.
trên quan hệ R.
Theo định nghĩa trên, nếu K'
Theo định nghĩa trên, nếu K' ⊆⊆ K K ⊆⊆ U là khóa của lược đồ U là khóa của lược đồ quan hệ R thì K cũng là khóa của R
quan hệ R thì K cũng là khóa của R
bởi vì q
ĐỖ QUANG VINH - HUC 34
Như vậy, trong lược đồ quan hệ có thể có rất nhiều khóa. Việc Như vậy, trong lược đồ quan hệ có thể có rất nhiều khóa. Việc
xác định tất cả các khóa của một lược đồ quan hệ là rất khó
xác định tất cả các khóa của một lược đồ quan hệ là rất khó
khăn
khăn
Định nghĩa 6 là chưa chặt chẽĐịnh nghĩa 6 là chưa chặt chẽ Định nghĩa 7Định nghĩa 7::
Quan hệ R định nghĩa trên tập các thuộc tính U={A
Quan hệ R định nghĩa trên tập các thuộc tính U={A11, A, A22, ..., , ..., A
Ann}}
K
K ⊆⊆ U là khóa của quan hệ R nếu thỏa 2 điều kiện sau đây: U là khóa của quan hệ R nếu thỏa 2 điều kiện sau đây:(i) K xác định được giá trị của A (i) K xác định được giá trị của A
(i) K xác định được giá trị của Ajj với với ∀∀ j = 1, 2, ..., n j = 1, 2, ..., n (ii) !
(ii) ! ∃∃ K' K' ⊆⊆ K mà K' có thể xác định được giá trị của A K mà K' có thể xác định được giá trị của Ajj với với ∀∀ j = j = 1,2, ..., n
1,2, ..., n
K là tập con nhỏ nhất mà giá trị của nó có thể xác định duy K là tập con nhỏ nhất mà giá trị của nó có thể xác định duy
nhất một bộ giá trị của quan hệ
ĐỖ QUANG VINH - HUC 35
Khóa của quan hệ theo định nghĩa 7 được gọi là Khóa của quan hệ theo định nghĩa 7 được gọi là khóa dự bịkhóa dự bị
(c
(candidateandidate) và là ) và là khóa nộikhóa nội của quan hệ của quan hệ
K làK là siêu khóa siêu khóa của quan hệ R nếu K' của quan hệ R nếu K' ⊆⊆ K là một khóa của K là một khóa của
quan hệ
quan hệ
Một lược đồ quan hệ Q của quan hệ R luôn có ít nhất một
Một lược đồ quan hệ Q của quan hệ R luôn có ít nhất một
siêu khóa và có thể có nhiều siêu khóa
siêu khóa và có thể có nhiều siêu khóa
Ý nghĩa thực tế của khóa là dùng để nhận diện một bộ Ý nghĩa thực tế của khóa là dùng để nhận diện một bộ
trong một quan hệ
trong một quan hệ
Khi cần truy tìm một bộ q chỉ cần biết giá trị của thành Khi cần truy tìm một bộ q chỉ cần biết giá trị của thành
phần khóa của q là đủ để dò tìm và hoàn toàn xác định
phần khóa của q là đủ để dò tìm và hoàn toàn xác định
được nó trong quan hệ
ĐỖ QUANG VINH - HUC 36
Trong trường hợp lược đồ quan hệ Q có nhiều khóa chỉ Trong trường hợp lược đồ quan hệ Q có nhiều khóa chỉ
định, khi cài đặt trên một DBMS, NSD có thể chọn một
định, khi cài đặt trên một DBMS, NSD có thể chọn một
trong số các khóa dự bị để tạo
trong số các khóa dự bị để tạo chỉ mụcchỉ mục ( (indexindex) chi phối việc ) chi phối việc
truy cập đến các bộ. Khóa dự bị này được gọi là
truy cập đến các bộ. Khóa dự bị này được gọi là khóa khóa
chính
chính ( (primary keyprimary key) )
Các khóa còn lại gọi là các Các khóa còn lại gọi là các khóa tương đươngkhóa tương đương
Khóa chính chỉ thật sự có ý nghĩa trong quá trình khai Khóa chính chỉ thật sự có ý nghĩa trong quá trình khai
thác CSDL và về lý thuyết, khóa chính hoàn toàn không có
thác CSDL và về lý thuyết, khóa chính hoàn toàn không có
vai trò gì khác so với các khóa dự bị còn lại
vai trò gì khác so với các khóa dự bị còn lại
Một số DBMS như Microsoft Access, ORACLE, DB2 ... có Một số DBMS như Microsoft Access, ORACLE, DB2 ... có
cài đặt cơ chế tự động kiểm tra tính duy nhất trên khóa
cài đặt cơ chế tự động kiểm tra tính duy nhất trên khóa
chính. Nghĩa là, nếu thêm một bộ mới q
chính. Nghĩa là, nếu thêm một bộ mới q22 có giá trị khóa có giá trị khóa
chính trùng với giá trị khóa chính của một bộ q
chính trùng với giá trị khóa chính của một bộ q11 nào đó đã nào đó đã có trong quan hệ thì hệ thống sẽ báo lỗi và yêu cầu nhập lại
có trong quan hệ thì hệ thống sẽ báo lỗi và yêu cầu nhập lại
một giá trị khác
ĐỖ QUANG VINH - HUC 37
Qui ướcQui ước::