0
Tải bản đầy đủ (.ppt) (52 trang)

QUANG VINH HUC 33•KHÓAKHÓA (KEY) (KEY)

Một phần của tài liệu THIẾT KẾ VÀ QUẢN TRỊ CƠ SỞ DỮ LIỆU 1 (Trang 33 -37 )

- 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::

Một phần của tài liệu THIẾT KẾ VÀ QUẢN TRỊ CƠ SỞ DỮ LIỆU 1 (Trang 33 -37 )

×