Khóa của lược đồ quan hệ

Một phần của tài liệu Nghiên cứu bao đóng trong mô hình dữ liệu dạng khối (Trang 30)

Định nghĩa 1.5[6]

Cho s = < U, F > là 1 lược đồ quan hệ, U là tập thuộc tính khác rỗng và F là tập các phụ thuộc hàm. Cho tập con bất kỳ KU. Ta nói rằng K là khóa

của lược đồ quan hệ s khi và chỉ khi nó thỏa mãn 2 điều kiện sau: - (K U) F+

- Không tồn tại ZK sao cho ( Z U ) F+

Hai điều kiện trên khẳng định các thuộc tính không khóa phụ thuộc đầy đủ vào khóa. Từ định nghĩa trên có thể suy ra rằng K là khóa của lược đồ quan hệ khi và chỉ khi nó thỏa mãn 2 điều kiện:

- K+ = U

- ( K - A )+ U, AK

Các tính chất của khóa trong lược đồ quan hệ

Định lý 1.6[6] ( Đặc trưng của các thuộc tính khóa)

Cho K là 1 khóa của LĐQH a = ( U,F ). Khi đó với mọi tập con X của K ta có X+K = X

Định lý 1.7[6]( Công thức tính giao các khóa)

Cho LĐQH a = ( U,F ) với n thuộc tính trong U và m PTH trong F. Gọi UI là giao các khóa của a. Khi đó có thể xác định giao các khóa bằng 1 thuật toán tuyến tính theo mn qua công thức:

F R L L R U U    \ ( \ ) 1 Định lý 1.8[6]( Định lý về khóa duy nhất )

Cho LĐQH a = ( U,F ). Gọi UI là giao của các khóa trong a. Khi đó a có một khóa duy nhất khi và chỉ khi UI + = U.

Thuật toán xác định một khoá của lược đồ quan hệ :

20

F = { f : Aj → Bj Aj, Bj⊆ U } A = ∪Aj và B = ∪Bj

Aj⊆ U Bj⊆ U

A ∩ B ={ Uj1 , Uj2... Ujk}

Output: Xác định một khoá K của lược đồ quan hệ

Phương pháp: Khoá của lược đồ quan hê R = < U , F > chỉ khác nhau trên các thuộc tính của A ∩ B, vì vậy chỉ cần kiểm tra và loại dần những phần tử Ui∈A ∩ B sao cho (K\ u)+ = R .

 Nếu (U \ B) + = U (U \ B) là khoá duy nhất của lược đồ quan hệ R = < U, F >.

 Nếu (U \ B) + ≠ U lược đồ quan hệ có khóa không tầm thường.

 K = (U \ B) ∪(A ∩ B ). Kiểm tra (K \ Uji)+ . Begin K: = ( U \ B ) If ( U \ B )+⊂ U then Begin K: =K∪(A ∩ B) For each Y∈(A ∩ Z) do If ( K - Y )+ = U then K = K - Y End ;

K là khóa của lược đồ quan hệ R = <U , F >. End.

Ví dụ : U ={A, B, C, D, E, G }, F = {B → C, C → B, A → GD } X= ABC, Y = BCDG , X ∩ Y = BC.

21

(U \ Y ) = AE không là khóa của < U , F > vì (U \ Y)+ = (AE)+ = AEDG ≠ U . Đặt K = (U \ Y) ∪ (X ∩ Y) = ABCE. - Theo thứ tự X ∩ Y= BC

Xét (K - B)+ = (ACE)+ = ABCDEG = U⇒K= ACE (K - C)+ = (AE)+ = ADEG ≠ U.

K = ACE là khóa. (1)

- Theo thứ tự X ∩ Y = CB

Xét (K - C)+ = (ABE)+ = ABCDEG = U ⇒K = ABE (K - B)+ = (AE)+ = ADEG ≠ U.

Vậy K = ABE là khóa (2).

Từ (1) và (2) suy ra khóa của lược đồ quan hệ trên là K1 = ACE; K2 = ABE. 1.7. Phép dịch chuyển lược đồ [2,3]:

Quản lý các cơ sở dữ liệu lớn và phức tạp đòi hỏi nhiều thuật toán hữu hiệu để tính toán các đối tượng như bao đóng, khóa, phủ…Một số thuật toán tốt theo nghĩa độ phức tạp tính toán giới hạn ở các hàm tuyến tính hoặc đa thức theo chiều dài dữ liệu vào đã được công bố như thuật toán tính bao đóng của tập thuộc tính, thuật toán tìm một khóa, thuật toán xác định thành viên hay thuật toán xác định phụ thuộc hàm suy dẫn, thuật toán tìm giao các khóa, thuật toán xác định một lược đồ quan hệ có một khóa duy nhất…

Một nhận xét tự nhiên là nếu kích thước của LĐQH càng nhỏ thì các thuật toán càng phát huy hiệu quả hơn. Một số hướng nghiên cứu tinh giản các các lược đồ cơ sở dữ liệu được thực hiện thông qua các phép biến đổi tương đương, chẳng hạn đưa tập phụ thuộc hàm về dạng thu gọn hoặc thu gọn tự nhiên, dạng không dư, dạng tối ưu…

22

Trong phép dịch chuyển lược đồ quan hệ, bản chất của kỹ thuật này là loại bỏ

khỏi lược đồ quan hệ ban đầu một số thuộc tính không quan trọng theo nghĩa chúng không làm ảnh hưởng đến kết quả tính toán các đối tượng đang quan tâm như bao đóng, khóa, phản khóa… Mặc dù LĐQH thu được qua phép dịch chuyển không tương đương với LĐQH ban đầu nhưng ta có thể thu được các đối tượng cần tìm bằng những phép toán đơn giản như loại bỏ hoặc thêm một số thuộc tính. Điều lý thú là sau khi loại bỏ một số thuộc tính thì một số PTH sec được loại bỏ theo, vì chúng trở thành các PTH tầm thường (có vế trái chứa vế phải) hoặc mang thông tin tiền định (là các PTH dạng → X).

1.7.1. Định nghĩa[2,3]:

Cho hai LĐQH a = (U, F), b = (V, G) và tập thuộc tính M  U, ta nói lược đồ quan hệ b nhận được từ lược đồ quan hệ a qua phép dịch chuyển theo tập thuộc tính M, nếu sau khi loại bỏ mọi xuất hiện của thuộc tính của M trong lược đồ quan hệ a thì thu được lược đồ b.

Nếu sau khi thực hiện phép dịch chuyển theo M cho lược đồ quan hệ a ta thu được lược đồ quan hệ b thì ta viết : b = a\M

Thao tác loại bỏ M được thực hiện trên lược đồ quan hệ a = (U,F) để thu được lược đồ b = (V,G) như sau:

- Tính V = U\M có độ phức tạp O(n) với n là số lượng thuộc tính trong U - Với mỗi PTH X → Y trong F tạo ra một PTH X\M → Y\M cho G. Thủ tục này được kí hiệu là G = F\M. Tính F\M đòi hỏi độ phức tạp O(mn) với m là số lượng PTH trong F

Như vậy b = a\M = (U\M, F\M) được thực hiện với độ phức tạp là O(mn), tức là tuyến tính theo chiều dài của dữ liệu vào LDQH a. Sau khi thực hiện thực hiện thủ tục G = F\M nếu :

- G chứa các PTH tầm thường (dạng X → Y, X  Y ) thì ta loại các PTH này khỏi G

23

- G chứa các PTH trùng lặp thì ta lược bớt các PTH này.

Ví dụ : Cho LĐQH a = (U,F), U = ABCDEH, F =  AE → D, A → DH, BC → E, E → BC. Với M = ADH, hãy xác định b = (V,G) = a\M.

Ta có : V= U\ADH = ABCDEH\ADH = BCE,

G = E →  (loại),  →  (loại), BC → E, E → BC ≡ BC → E, E→ BC

Nhận thấy phép dịch chuyển lược thỏa tính hợp thành, cụ thể là nếu a là LĐQH trên tập thuộc tính U và X, Y là 2 tập con của U thì : a\(XY) = (a\X)\Y trong trường hợp X và Y là hai tập con rời nhau của U ta có :

a\XY = (a\X)\Y = (a\Y)\X

1.7.2. Thuật toán dịch chuyển lược đồ quan hệ[2,3]:

Thuật toán Translation dưới đây mô tả phép dịch chuyển một LĐQH với độ phức tạp O(mn) Algorithm Translation Format : Translation(a,M) Input: - LDQH a = ( U, F) - Tập thuộc tính M  U Output : LĐQH b = (V,G) = a\M, V = U\M, G = F\M. Method: V := U\M; G: = ; For each FD L→ R in F do G:= G  {L\M → R\M}; endfor; G:= Natural_Reduced (G);

24 Return (V,G);

End Translation.

Thủ tục Natural_Reduced(G) đưa tập PTH về dạng thu gọn tự nhiên bằng cách loại khỏi G những PTH tầm thường (có vế trái chứa vế phải), chuyển đổi mỗi PTH về dạng có vế trái và vế phải rời nhau và gộp các PTH có cùng vế trái.

1.7.3. Biểu diễn bao đóng của phép dịch chuyển LĐQH

Định lý : Cho LDQH a = (U,F) và hai tập con không giao nhau X và Y trong

U, khi đó

(XY)+F = XY+ F\X

Hệ quả : (công thức tính bao đóng cho một tập thuộc tính)

Cho LĐQH a = (U,F) và tập X  U, khi đó X+F = X()+ F\X

Ví dụ : Cho LĐQH a = (U,F), U = ABCDEH, F= {AB → D, BC → E, E → BC}. Tính (AHE)+ và E+ ?

Theo hệ quả về công thức tính bao đóng cho một tập thuộc tính • (AEH)+F = AEH()+F\AEH

G = F\AEH = { → D, BC →  (loại), → BC} ≡ {→BCD}. Từ đây ta tính được ()+G = BCD. Do đó (AEH)+ = AHEBCD = U. • E+ = E()+ F\E

G = F \E = {A →D, BC →(loại),  → BC}≡ {A → D,  →BC}. Từ đây ta tính được ()+ G = BC, do đó E+ = BCE.

25

KẾT LUẬN CHƯƠNG I

Chương này đã trình bày một số khái niệm cơ bản nhất trong mô hình dữ liệu quan hệ. Trình bày các phép toán cơ bản, các khái niệm về phụ thuộc hàm, bao đóng, khóa cùng với các tính chất của chúng. Ngoài ra các thuật toán tìm khoá, bao đóng và phép dịch chuyển lược đồ trong mô hình dữ liệu quan hệ cũng được trình bày trong chương này.

Mô hình dữ liệu quan hệ có tính độc lập dữ liệu cao, dễ dàng sử dụng và còn cho phép dễ dàng mô phỏng các hệ thống thông tin đa dạng trong thực tiễn.

Trong mô hình này, cơ sở dữ liệu được xem như là một tập hợp các quan hệ, mỗi quan hệ có thể được hình dung một cách trực quan như là một bảng chữ nhật gồm có các hàng và các cột. Ở bảng này mỗi cột ứng với một thuộc tính, mỗi hàng được gọi là một bộ. Do các quan hệ có cấu trúc phẳng (tuyến tính) nên mô hình này sẽ rất khó khăn khi biểu diễn các dữ liệu có tính chất động (phi tuyến).

26

CHƯƠNG II : MÔ HÌNH DỮ LIỆU DẠNG KHỐI 2.1.Khối, Lược đồ khối, Lát cắt [1,5,8]:

2.1.1.Khối, Lược đồ khối :

Định nghĩa 2.1: Gọi R = (id; A1, A2, .... , An) là một bộ hữu hạn các phần tử, trong đó id là tập chỉ số hữu hạn khác rỗng, Ai (i= 1,n ) là các thuộc tính. Mỗi thuộc tính Ai ( i=1,n) có miền giá trị tương ứng là dom(Ai). Một khối r trên tập R, kí hiệu r(R) gồm một số hữu hạn phần tử mà mỗi phần tử là một họ các ánh xạ từ tập chỉ số id đến các miền trị của các thuộc tính Ai (i=1,n). Nói một cách khác:

t  r(R)  t = {ti : id dom(Ai)} i =1,n

Ta kí hiệu khối đó là r(R) hoặc r(id; A1, A2,…, An), hoặc kí hiệu đơn giản là r. Khi đó khối r(R) được gọi là có lược đồ khối R. Như vậy trên cùng một lược đồ khối R ta có thể xây dựng được nhiều khối khác nhau

Ví dụ : Công ty HONDA có các đại lý bán xe máy tại các tỉnh thành trong toàn quốc. Các đại lý này cùng bán các loại xe theo mẫu của nhà sản xuất là: Dream II( kí hiệu DII), Wawe S(kí hiệu WS), Lead (kí hiệu Lead), SH mode125 (kí hiệu SH). Mỗi quý công ty lập biểu đồ theo dõi số lượng hàng được bán theo từng chủng loại xe tại mỗi đại lý(trên cơ sở số lượng bán hàng ra hàng ngày). Căn cứ vào các biểu đồ theo dõi của mỗi loại mặt hàng tại các đại lý này mà công ty điều chỉnh số lượng sản phẩm phân cho các đại lý phù hợp hơn. Để đáp ứng yêu cầu trên công ty HONDA đã tiến hành xây dựng khối dữ liệu với tên gọi BANHANG, cụ thể như sau:

Chọn R = (id; A1, A2, A3, A4), trong đó:

id = {1/2013, 2/2013, 3/2013, ..., 12/2013, và các thuộc tính là A1 = madl (mã đại lý), A2 = DII (Dream II), A3 = WS (Ware S), A4 = Lead (Lead),

27

Hình 2.1: Biểu diễn khối BANHANG(R).

Với khối BANHANG(R) ở hình 2.1, ta thấy nó gồm 3 phần tử: t1 , t2 , t3. Khi đó ta có:

 Số lượng xe bán của Đại lý 1 trong tháng 1 là :

Xe DreamII = 80 chiếc, Xe WereS = 40 chiếc, Xe Lead = 20 chiếc. Tháng 2:

Xe DreamII = 140 chiếc, Xe WereS = 70 chiếc, Xe Lead = 30 chiếc. Tháng 3:

Xe DreamII = 120 chiếc, Xe WereS = 60 chiếc, Xe Lead = 25 chiếc.

 Số lượng xe bán của Đại lý 2 trong tháng 1 là :

Xe DreamII = 40 chiếc, Xe WereS = 20 chiếc, Xe Lead = 40 chiếc Tháng 2:

Xe DreamII = 70 chiếc, Xe WereS = 60 chiếc, Xe Lead = 50 chiếc Tháng 3:

Xe DreamII = 50 chiếc, Xe WereS = 30 chiếc, Xe Lead = 40 chiếc

 Số lượng xe bán của Đại lý 3 trong tháng 1 là:

28 Tháng 2:

Xe DreamII = 60 chiếc, Xe WereS = 70 chiếc, Xe Lead = 30 chiếc Tháng 3:

Xe DreamII = 53 chiếc, Xe WereS = 30 chiếc, Xe Lead = 20 chiếc. 2.1.2. Lát cắt

Cho R = (id; A1, A2,...., An), r(R) là một khối trên R. Với mỗi x id ta kí hiệu r(Rx) là một khối với Rx = ({x}; A1, A2, .... , An) sao cho:

tx r(Rx )  tx = { tix = ti }i = 1,n với t  r(R),

x và t = { ti : id  dom(Ai) } i =1,n Ở đây tix(x) = ti(x) với i=1,n.

Khi đó r(Rx ) được gọi là một lát cắt trên khối r(R) tại điểm x. Ví dụ : Với khối BANHANG(R) trên, R = (id, A1,A2,A3,A4)

Trong đó : id = 1/2013, 2/2013, 3/2013,…,12/2013 và các thuộc tính A1= madl; A2= DII; A3= WS, A4 = Lead.

Nếu x = 2/2013  id thì lát cắt r(R2/2013) có dạng như sau: r(R2/2013)

Nhận xét : Cho lược đồ khối R = (id, A1, A2,…,An), r(R) là một khối trên R, với mỗi x id thì lát cắt r(RX) là một quan hệ. Trong trường hợp tập chỉ số id chỉ gồm một phần tử thì r(R) trở thành một quan hệ.

Như vậy mỗi quan hệ r(A1, A2,…,An) là một trường hợp đặc biệt của khối, đó chính là khối r(R) = (x, A1, A2,…,An).

Mệnh đề 2.2 [11]

Madl DII WS Lead

DL1 140 70 30

DL2 70 60 50

29 madl DII t3 t2 t1 2/2013 DL2 DL2 DL3 DL3 50 70 60 53 madl DII t1 t2 1/2013 DL1 DL1 DL2 DL2 120 140 70 50 DII t1 t2 1/2013 2/2013 1/2013 2/2013 DL1 DL1 120 140 DL2 DL2 50 70 DL3 DL3 60 53

Cho lược đồ khối R = (id; A1, A2,…, An), r(R) là một khối trên R, khi đó tồn tại một họ quan hệ ( hiểu theo nghĩa tập hợp) duy nhất biểu diễn họ {r(Rx)}xid là lát cắt của khối r(R). Ngược lại không đúng, nghĩa là với một họ quan hệ cho trước biểu diễn họ các lát cắt của một khối nào đó thì khối tìm được không duy nhất.

2.2. Các phép toán Đại số quan hệ trên khối.[8,10]

Cho r là một khối trên R = (id; A1, A2,…, An ). Cũng tương tự như đại số quan hệ trong mô hình dữ liệu quan hệ, ở đây các phép toán của đại số quan hệ lặp lại được áp dụng cho các khối như: phép hợp, phép giao, phép trừ, phép chiếu, phép chọn, phép kết nối, phép chia, phép nối dài.

Hai khối r và s được gọi là khả hợp nếu chúng có cùng một lược đồ khối. 2.2.1 .Phép hợp

Cho hai khối r và s khả hợp, khi đó hợp của r và s, kí hiệu là rs, là một khối gồm các phần tử thuộc khối r hoặc thuộc khối s đã cho. Ta có:

rs = { t | t r hoặc t s }. Ví dụ:

r s rs

Hình 2. 2.Phép hợp trong khối

30 DL2 DL2 DL3 DL3 50 70 60 53 t3 1/2013 2/2013 DII 2/2013 1/2013 2/2013 1/2013 DL1 DL1 120 140 DL2 DL2 50 70 53 60 DL3 DL3 DL1 DL1 120 140 50 70 DL2 DL2 t2 t1 t3 t2 t1 madl t2 madl DII madl DII Hình 2. 4.Phép trừ trong khối 2.2.2 .Phép giao

Cho hai khối r và s khả hợp, khi đó giao của r và s là một khối, kí hiệu rs, là một khối mà các phần tử của nó thuộc đồng thời cả hai khối r và s đã cho. Ta có : rs = { t | t r và t s }.

Ví dụ :

Hình 2. 3.Phép giao trong khối 2.2.3. Phép trừ

Cho hai khối r và s khả hợp, khi đó hiệu của r và s là một khối, kí hiệu là r - s, là một khối mà các phần tử của nó thuộc r nhưng không thuộc s.

Ta có : r - s = { t | t r và t s }. Ví dụ :

31

Ta có mối quan hệ giữa phép giao và phép trừ: rs = r - ( r - s ). 2.2.4 .Tích đề các

Cho lược đồ khối R = (id; A1, A2,…, An ), S = (id; B1, B2,…, Bm), ở đây { A1, A2,…, An } { B1, B2,…, Bm } = 

Khi đó tích Đề - Các của hai khối r(R) và s(S) là một khối, kí hiệu

r  s, khối này có khung R  S = (id; A1, A2,…, An,B1, B2,…, Bm), mỗi phần tử thuộc khối này là một bộ gồm n + m ánh xạ, trong đó n ánh xạ đầu có dạng một phần tử thuộc r, còn m ánh xạ sau có dạng một phần tử thuộc s

Biểu diễn hình thước của tích Đề - Các có dạng: r  s = {t | t(R) r và t(S) s }. trong đó t = ( t1, t2,…,tn, tn+1,…, tn+m ),t(R) = ( t1, t2,…,tn) và t(S) = ( tn+1,…, tn+m ).

2.2.5. Tích Đề - Các theo tập chỉ số

Cho R = (id; A1, A2,…, An ), S = (id' ; A1, A2,…, An ). Khi đó tích Đề - Các của hai khối r(R) và s(S) theo tập chỉ số là một khối, kí hiệu

r id s, khối này có khung R id S = { id  id' ; A1, A2,…, An }, với id

 id' là kí hiệu tích rời rạc của hai tập chỉ số id và id'. Mỗi phần tử thuộc khối này là một bộ gồm n ánh xạ ( t1, t2,…,tn)

với ti : id  id' Ai với i = 1..n, mỗi ánh xạ này được cảm sinh từ hai ánh

Một phần của tài liệu Nghiên cứu bao đóng trong mô hình dữ liệu dạng khối (Trang 30)