Thuật toỏn xỏc định một khúa của lược đồ quan hệ

Một phần của tài liệu Ứng dụng phép vị tự trong việc giải một số lớp bài toán của hình học phẳng (LV01721) (Trang 29)

Thuật toỏn 1.3:

Vào : U, F (U = {A1, A2, ..., An}).

Ra: K là khoỏ của một lược đồ quan hệ R. Phương phỏp:

Bước 0: đặt K0 = U.

Bước i : Ki = (Ki-1 - {Ai}) Nếu (Ki-1 - {Ai})+ = U với Ai∈ Ki-1. Ki-1 nếu ngược lại.

Kết thỳc khi Ki = Ki-1.

Nếu muốn tỡm cỏc khúa khỏc (nếu cú) của lược đồ quan hệ, ta cú thể thay đổi thứ tự loại bỏ cỏc phần tử của K0.

27 1.7.4. Phản khúa

Phản khúa cú vai trũ quan trọng trong quỏ trỡnh nghiờn cứu cấu trỳc logic của họ cỏc phụ thuộc hàm, khúa và cỏc dạng chuẩn của lược đồ quan hệ. Đặc biệt đối với cỏc bài toỏn tổ hợp trong mụ hỡnh dữ liệu quan hệ.

Định nghĩa 1.10

Cho tập thuộc tớnh  = (U,F), khi đú tập con P của U được gọi là phản khúa nếu:

(i) P+  U, và

(ii)  A  U\P : (PA)+ = U.

núi cỏch khỏc, phản khúa là tập con lớn nhất khụng chứa khúa của U. Kớ hiệu UI : giao của cỏc phản khúa.

Uo : tập cỏc phần tử khụng khúa. Khi đú ta cú:

Mệnh đề1.1

Cho lược đồ  = (U,F), khi đú giao của cỏc phản khúa bằng tập cỏc phần tử khụng khúa: UI = Uo .

1.8. Chuẩn húa cơ sở dữ liệu [4], [5]1.8.1. Hiệu quả của cơ sở dữ liệu 1.8.1. Hiệu quả của cơ sở dữ liệu

Chuẩn húa là quỏ trỡnh để cỏc cấu trỳc dữ liệu trong bảng quan hệ của cơ sở dữ liệu trở nờn hiệu quả. Cỏc đặc tớnh của của một cơ sở dữ liệu hiệu quả là:

 Khụng dư thừa.

 Sử dụng cỏc giỏ trị rỗng ở mức tối thiểu.

 Ngăn ngừa mất thụng tin.

1.8.2. Cỏc dạng chuẩn húa của lược đồ quan hệ Định nghĩa 1.11 Định nghĩa 1.11

28

Chuẩn húa là quỏ trỡnh phõn ró cỏc quan hệ cú lỗi khụng bỡnh thường để thu được cỏc quan hệ cú cấu trỳc tốt và nhỏ hơn.

1.8.2.1. Dạng chuẩn thứ nhất Định nghĩa 1.12

Một lược đồ quan hệ R được gọi là ở dạng chuẩn 1 nếu và chỉ nếu toàn bộ cỏc miền giỏ trị của cỏc thuộc tớnh trong R đều chỉ chứa cỏc giỏ trị nguyờn tố

Dạng chuẩn là trạng thỏi của quan hệ cú được do ỏp dụng cỏc quy luật về phụ thuộc hàm trờn quan hệ, tức là cỏc quy luật về sự phụ thuộc giữa cỏc thuộc tớnh của quan hệ.

1.8.2.2. Dạng chuẩn hai Định nghĩa 1.13

Phụ thuộc đầy đủ và phụ thuộc bộ phận. Cho quan hệ r (U); X, Y ⊆ U:

• Núi rằng Y phụ thuộc đầy đủ vào X nếu: (adsbygoogle = window.adsbygoogle || []).push({});

- X → Y hay phụ thuộc hàm X xỏc định Y. - Khụng tồn tại X’ ⊂ X mà X’ →Y.

• Núi rằng Y phụ thuộc bộ phận vào X nếu: - X → Y.

- ∃ X’ ⊂ X mà X’ → Y. Dạng chuẩn 2, ký hiệu là 2NF.

Một lược đồ quan hệ R được gọi là ở dạng chuẩn 2 nếu nú ở dạng chuẩn 1 và mọi thuộc tớnh khụng khoỏ của R đều phụ thuộc đầy đủ vào khoỏ.

1.8.2.3. Dạng chuẩn ba Định nghĩa 1.14

29

Cho lược đồ quan hệ R(U), X, A là một thuộc tớnh thuộc U. A được gọi là phụ thuộc bắc cầu vào X trờn R nếu tồn tại tập con Y của R sao cho: X → Y, Y → A nhưng Y→ X với A ∉ XY.

Dạng chuẩn 3, ký hiệu là 3NF

Một lược đồ quan hệ R được gọi là ở dạng chuẩn 3 nếu nú ở dạng chuẩn 2 và mọi thuộc tớnh khụng khoỏ của R đều khụng phụ thuộc hàm bắc cầu vào khoỏ.

1.8.2.4. Dạng chuẩn Boyce-Codd

Một lược đồ quan hệ R được gọi là ở dạng chuẩn Boyce-Codd nếu mọi phụ thuộc hàm X→A thoả món trờn R và với A∉X thỡ X là siờu khúa của R.

30

KẾT LUẬN CHƯƠNG I

Chương này đó trỡnh bày một số cỏc 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, khoỏ, bao đúng 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ỏ cũng được trỡnh bà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).

31

CHƯƠNG 2: Mễ HèNH CƠ SỞ DỮ LIỆU DẠNG KHỐI

Để mở rộng và khắc phục phần nào những nhược điểm của mụ hỡnh quan hệ núi trờn, chương này đưa ra một mụ hỡnh cơ sở dữ liệu khỏc gọi là mụ hỡnh cơ sở dữ liệu dạng khối được xõy dựng và mụ tả trong [3], [6], [8]. Mụ hỡnh này giỳp biểu diễn thế giới thực trong quỏ trỡnh vận động một cỏch tự nhiờn hơn. 2.1. Khối, lược đồ khối

Khỏi niệm toỏn học làm nền tảng cho mụ hỡnh cơ sở dữ liệu dạng khối (gọi tắt là mụ hỡnh khối) là cỏc khối hiểu theo nghĩa của lý thuyết tập hợp. Khối được định nghĩa như sau:

Đị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ụ 2.1: Ta xõy dựng khối nhõn viờn (ký hiệu NV(R) (hỡnh 2.1)) để quản lý nhõn viờn trong một cơ quan như sau:

Cho lược đồ khối R = (id; A1, A2, A3, A4), trong đú:

32

A1 = ma (mó), A2 = ten (tờn), A3 = luong (lương), A4 = trinh_do (trỡnh độ). Với khối NV(R) ở hỡnh 2.1, ta thấy nú gồm 3 phần tử: t1 , t2 , t3.

ma ten luong trinh_do (adsbygoogle = window.adsbygoogle || []).push({});

A01 A 500 TS A01 A 350 ThS t1 A01 A 200 DH B02 B 350 DH A02 B 300 DH t2 A02 B 250 DH C01 C 300 DH 3/2009 A03 C 250 CD 2/2009 t3 A03 C 200 CD 1/2009

Hỡnh 2.1: Biểu diễn khối nhõn viờn NV(R). Khi đú ta cú:

 Lương của nhõn viờn t1 ở thời điểm thỏng 1/2009 là: t1(1/2009,luong) = 200.

 Tờn của cỏn bộ t2 vào thỏng 2/2009 là: t2(2/2009,ten) = 'B'.

 Trỡnh độ của cỏn bộ t3 vào thỏng 2/2009 là: t3(2/2009,trinh_do) = ‘CD’.

 Mó số của cỏn bộ t3 vào thỏng 3/2009 là: t3(3/2009,ma) = 'C01'. 2.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.

33

Vớ dụ 2.2: Với khối NV(R) đó cho ở trờn, R = ( id; A1, A2, A3, A4) Trong đú: id = {1/2009, 2/2009, 3/2009, ... , 12/2009}

A1 = ma, A2 = ten, A3 = luong, A4 = trinh_do. Nếu x = 2/2009  id thỡ lỏt cắt r(R2/ 2009 ) cú dạng như sau:

r(R2/2009 ): ma ten luong trinh_do A01 A 350 ThS A02 B 300 DH A03 C 250 CD Nhận xột 2.1

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) với R = ({x}; A1, A2, .... , An).

Mệnh đề 2.1 [3], [6]

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 cỏc 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.3. Khúa của khối

Cho R = ( id ; A1, A2, ... , An ), r là một khối trờn R. Với mỗi x  id, t  r(R), t = (t1, t2, ..., tn), ta kớ hiệu t(x;Ai), (i =1..n), là giỏ trị của phần tử ở thuộc tớnh Ai tại chỉ số x.

34

t(x(i) ) = t( x; Ai ) = ti (x), ( i = 1..n ). Từ đú, ta kớ hiệu : id(i) = { x(i)│x  id }, như vậy id(i) = {(x; Ai )│x  id}. Với X(i) id(i) thỡ ta kớ hiệu: t(X(i)) = {t(yi)| y(i) X(i) }. Giả sử t1, t2 r(R) với t1 = { ti1 : id  dom(Ai) } i =1.. n, t2 = { ti2 : id  dom(Ai) } i =1.. n,

Khi đú ta định nghĩa khúa của khối r(R) như sau: Định nghĩa 2.2 [6]

Khúa của khối r trờn lược đồ khối R = ( id; A1, A2, ... , An ) là một tập K = { X(i1), X(i2), ..., X(ih) }, trong đú X(ik)  , X(ik)  id(ik), (k = 1.. h), thỏa món hai tớnh chất:

a-Với bất kỡ 2 phần tử t1, t2  r đều tồn tại một X(ik)  K sao cho: - t1 ik (X(ik) )  t2 ik (X(ik)) Núi một cỏch khỏc, khụng tồn tại 2 phần tử mà: - t1ik (X(ik)) = t2ik(X(ik)) ,  k = 1..h.

b-Với bất kỡ tập K’ nào, K’ = { X(i1’), X(i2’), ..., X(ih’)}, với X(ik’) X(ik), (k =1..h) và tồn tại X(im’) X(im), với m  {1,2, ..., h} đều khụng cú tớnh chất a núi trờn.

Nếu tập K là khúa của khối r(R) thỡ mọi tập K” = { X(i1’’), X(i2’’), ..., X(ih’’)}, trong đú X(ik)  X(ik’’), ( k = 1..h), được gọi là một siờu khúa của khối r.

Mệnh đề 2.2 [8]

Cho lược đồ khối R = (id; A1, A2, ... ,An), r(R) là một khối trờn R. Khi đú với x  id mà ta cú { x(i1), x(i2), ... ,x(ik) } là khúa của lỏt cắt r(Rx) thỡ ta cũng cú với mọi y  id, { y(i1), y(i2), ... ,y(ik) } là khúa của lỏt cắt r(Ry) hay núi một cỏch khỏc { Ai1, Ai2, ... ,Aik } là khúa của quan hệ r(A1, A2, ... , An).

35 Mệnh đề 2.3

Cho lược đồ khối R = (id; A1, A2, ...,An), r(R) là một khối trờn R, id = {x}. Khi đú r(R) trở thành quan hệ r(A1, A2, ... , An) và mỗi khúa K = { X(i1),X(i2), ..., X(ih)}, trong đú X(ik)  id(ik), (k = 1, 2, ..., h ) của khối r(R) lại trở thành khúa của quan hệ r(A1, A2, ... , An ). (adsbygoogle = window.adsbygoogle || []).push({});

Mệnh đề 2.4 [6]

Cho lược đồ khối R = (id; A1, A2, ... ,An), r(R) là một khối trờn R. Khi đú với x  id mà ta cú {x(i1), x(i2), ... ,x(ik)} là khúa của khối r(R) thỡ ta cũng cú với mọi y  id , {y(i1), y(i2), ... ,y(ik)} là khúa của lỏt cắt r(Ry) hay núi một cỏch khỏc

{ Ai1, Ai2, ... ,Aik } là khúa của quan hệ r(A1, A2, ...,An). Mệnh đề 2.5 [3], [6]

Cho lược đồ khối R = (id; A1, A2, ...,An), r(R) là một khối trờn R. Khi đú nếu với x  id nào đú mà ta cú {x(i1), x(i2), ... ,x(ik)} là khúa của lỏt cắt r(Rx ) thỡ

{id(i1), id(i2), ... , id(ik)} là khúa của khối r(R). 2.4. Đại số quan hệ trờn khối

Cho r là một khối trờn lược đồ khối R = (id; A1, A2, ..., An), ở đõy ta giả thiết rằng r là một khối gồm một tập hữu hạn cỏc phần tử. Cũng tương tự như đại số quan hệ trong mụ hỡnh cơ sở dữ liệu quan hệ, ở đõy cỏc phộp toỏn của đại số quan hệ lại được ỏp dụng cho cỏc khối, bờn cạnh đú cũn cú thờm phộp toỏn mới được xõy dựng đú là: tớch Đề- cỏc theo tập chỉ số.

Đối với cỏc phộp hợp, giao và trừ thỡ hai khối tham gia phải là khả hợp (nghĩa là chỳng cú cựng một lược đồ khối).

36 2.4.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 r  s là một khối gồm cỏc phần tử thuộc một trong hai khối r và s đó cho. Ta cú:

r  s = { t | t  r hoặc t  s }. 2.4.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 }.

2.4.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 }.

Ta cú mối quan hệ giữa phộp giao và phộp trừ: r  s = r - ( r - s ).r v 2.4.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 x 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 ).

37 2.4.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 , i = 1..n, mỗi ỏnh xạ này được cảm sinh từ 2 ỏnh xạ thứ i tương ứng của r và s.

Cụ thể hơn, giả sử cú 2 phần tử là tr  r và ts s: tr = ( t1r , t2r , ...., tnr ), ts = (t1s , t2s , ...., tns),

khi đú ta cú ỏnh xạ cảm sinh của tr và ts, phần tử cảm sinh của tr và ts, kớ hiệu là trs.

Gọi j1: id  id id’, j2: id’  idid’ là cỏc phộp nhỳng thỡ ta được: trsj1 r và trsj2 s, và r xid s = { t | tj1 r và tj2  s}.

2.4.6. Phộp chiếu

Cho lược đồ khối R = ( id; A1, A2, ...., An ), r là một khối trờn R. Khi đú ta gọi P = (id’; Ai1, Ai2, ...., Aih ) là lược đồ con của lược đồ R nếu id’ id,

Aij{ A1, A2, ...., An }, j = 1..h.

Một phộp chiếu của khối r trờn lược đồ con P, kớ hiệu P(r), là một khối cú lược đồ P và mỗi phần tử thuộc khối này cú dạng:

(ti1, ti2, ..., tih), trong đú: tij { t1, t2, ..., tn }, j = 1..h, id’ và ( t1, t2, ..., tn )  r. (adsbygoogle = window.adsbygoogle || []).push({});

38

P(r) = {( ti1, ti2, ..., tih) | tij {t1,t2,...,tn }, j = 1..h, (t1,t2, ..., tn )r} id’

2.4.7. Phộp chọn

Cho lược đồ khối R = ( id; A1, A2, ..., An ) và khối r(R).

Cho một phộp chọn nghĩa là ta xõy dựng một tập con cỏc phần tử của khối đó cho thỏa món biểu thức F cho trước. Biểu thức F được diễn tả bằng một tổ hợp Boole của cỏc toỏn hạng, mỗi toỏn hạng là một phộp so sỏnh đơn giản giữa hai biến là hai giỏ trị điểm của hai ỏnh xạ thành phần nào đú, hoặc giữa một biến là giỏ trị điểm của một ỏnh xạ thành phần và một hằng. Cỏc phộp so sỏnh trong F là <, =, >, , , , cũn cỏc phộp toỏn lụgic trong F là: , , .

Biểu diễn hỡnh thức của phộp chọn cú dạng: F(r) = { t  r | F(t)} trong đú F(t) là giỏ trị của biểu thức Boole F tại phần tử t  r. 2.4.8. Phộp kết nối

Cho R = (id; A1, A2, ... , An) và s = (id; B1,B2, .... , Bm), cựng với hai khối r(R) và s(S) tương ứng.

Gọi T = ( id ; C1,C2, ... , Cp), trong đú:

{ C1,C2, ... , Cp} = {A1, A2, ... , An}  {B1,B2, .... ,Bm}.

Phộp kết nối của 2 khối r và s, kớ hiệu r  s là khối t(T) định nghĩa như sau: t(T) = { t |  tr  r và ts s sao cho t(R) = tr , t(S) = ts}.

Phộp kết nối này cũng gọi là phộp kết nối tự nhiờn của hai khối r(R) và s(S), đụi khi sử dụng kớ hiệu r * s.

Đặc biệt, khi cỏc khối r(R) và s(S) cú tập chỉ số id trong lược đồ khối của chỳng chỉ gồm một phần tử thỡ cỏc khối này trở thành cỏc quan hệ và phộp kết

39

nối tự nhiờn của hai khối lại trở thành phộp kết nối tự nhiờn của hai quan hệ trong mụ hỡnh cơ sở dữ liệu quan hệ [6].

Nếu hai tập {A1, A2, ... , An } và { B1,B2, .... , Bm} khụng giao nhau thỡ r * s trở thành tớch Đề-cỏc của hai khối đó cho.

Ta cú thể mở rộng khỏi niệm kết nối như sau:

Giả sử Aik {A1, A2, ... , An }, Bik { B1,B2, .... , Bm},

và dom (Aik) = dom (Bik), 1  k  h, (ở đõy Aik và Bik khụng nhất thiết phõn biệt).

Khi đú kết nối của r và s theo Ai1, Ai2, ..., Aih và Bi1, Bi2, ..., Bih là khối t(T), khối này được định nghĩa là:

t(T) = {t |  tr  r và ts  s sao cho t(R) = tr, t(S) = ts, trik = tsik, 1  k  h}, trong đú tr = ( tr 1 , tr 2 , ... , tr n ), ts = ( ts 1 , ts 2 , ... , ts m ).

Thay cho kớ hiệu r  s ở đõy ta kớ hiệu rừ hơn: t(T) = r [trik = tsik ,1  k  h]s

2.4.9. Phộp chia

Cho hai khối r( id; A1, A2, ..., An) và s( id; Ai1, Ai2, ..., Aih), trong đú Aik  { A1, A2, ..., An },  k = 1..h. Khi đú phộp chia của khối r cho khối s, kớ

Một phần của tài liệu Ứng dụng phép vị tự trong việc giải một số lớp bài toán của hình học phẳng (LV01721) (Trang 29)