1. Trang chủ
  2. » Công Nghệ Thông Tin

LÝ THUYẾT VỀ CƠ SỞ DỮ LIỆU (PHẦN 3)

68 526 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 68
Dung lượng 11,9 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Báo cáo được xem như một phần không thể thiếu được trong các ứng dụng, với một lượng lớn báo cá thì việc cài đặt, quản trị sẽ khó khăn và tốn kém. Vào năm 2004 MS SQL Server 2000 đã giới thiệu SSRS như một công cụ trong việc xây dựng, quản trị và phát triển báo cáo cho doanh nghiệp

Trang 1

Bổ đề 3 : X  Y suy dẫn từ hệ tiên đề Amstrong khi và chỉ khi Y  X +

Như vậy :

(1) X  X  +

(2) f: XY  F+ <=> Y  X  +

Trang 2

2.3 Thuật toán tìm bao đóng của tập thuộc

tính

Thuật toán CLOSURE.

Input : Tập thuộc tính X và tập phụ thuộc hàm F

Output : Bao đóng X của F

CLOSURE (X,F)

Begin olddep:= ; newdep:=olddep

While newdep <> olddep do

Begin olddep:= newdep For each W  Z  F do

if W  newdep then newdep:= newdep  Z End

Return ( newdep)

End.

Trang 3

Cho X= BD Tính ( BD)+F

Trang 4

X(4): = BDEGCA = U => X+

F = X (4)

Trang 5

3 Tập phụ thuộc hàm tương đương 3.1 Định nghĩa

Hai tập pth F và G được gọi là tương đương nếu F+ = G+ Khi đó ta nói F phủ G ( hay G phủ F) Kí hiệu : F G

Bổ đề 1: Mỗi tập các pth F đều được phủ bằng tập các pth G mà vế phải

các pth đó bao gồm không quá một

thuộc tính.

Bổ đề 2: F G <=> F suy dẫn

được ra G và G suy dẫn được ra F

Trang 6

Ví dụ : Cho quan hệ Q (ABCDE) với:

Tương tự, dễ dàng chứng minh : A  ABD.

Vậy F suy dẫn được ra G.

* Ngược lại, ta nhận thấy F  G , do đó hiển nhiên

G suy dẫn được ra F.

Kết luận : F  G

A E

Trang 7

3.2 Phủ tối thiểuĐịnh nghĩa : Một tập phụ thuộc hàm F đượcgọi là tối thiểu nếu :

 Mỗi vế phải của một phụ thuộc hàm F chỉ cómột thuộc tính

 F gồm toàn những pth đầy đủ, nghĩa là

không tồn tại một phụ thuộc hàm X  A

thuộc F và một tập con Z của X mà :

F+ = ( F - { X  A }  { Z  A}) +

 Không tồn tại một phụ thuộc hàm X  A thuộc F mà :

F+ = ( F - { X  A }) +

Trang 8

3.3 Thuật toán MINIMALCOVER tìm phủ tối

thiểu của tập phụ thuộc hàm F

Input: Tập phụ thuộc hàm F

Output : G- là phủ tối thiểu của F

MINIMALCOVER (G, F)

G:=F

Thay thế từng phụ thuộc hàm X { A1, A2, ,An} trong

G bằng các phụ thuộc hàm X A1, X  A2, , X  An

For each X  A trong G

For each B  X

If ( G - { X  A })  ( X- {B}) A) tương đương với G Then

Thay X  A bằng ( X- { B})  A trong G

Trang 9

For each X  A trong G

If ( G - { X  A }) tương đươngvới G Then

Loại X  A ra khỏi GReturn (G)

End.

Trang 10

Ví dụ 1: Cho F = { A B , B  A, B  C,

A  C, C  A} Tìm phủ tối thiểu G của F

Giải : Tất cả các pth của F đều thoả mãn

điều kiện 1 vì vế trái chỉ có một thuộc tính

Vế phải của mỗi pth chỉ có một thuộc tínhnên không cần xét đk2

Xét đk 3, ta thấy : Nếu koại bỏ pth B  A

và A  C ta được một tập pth G

G={A B , B  C, A  C }  FKhông thể loại bỏ thêm một pth nào nữa

vì tập pth còn lại sẽ không tương đương với

F Vậy G là tập pth tối thiểu của F

Trang 11

Ví dụ 2: Cho F = { AB C, A  B, B  A}.

Tìm phủ tối thiểu G của F

Giải : Tất cả các pth của F đều thoả mãn

điều kiện 1 vì vế trái chỉ có một thuộc tính

Xét đk2: ta thấy pth là không đầy đủ vì: (F- {AB C} {A C})  F

Vậy loại bỏ pth AB  C và thay bằng pth

A  C ta được tập pth G:

G={A C , A B, B  A }  FNhận thấy, không thể loại bỏ thêm một pthnào nữa vì tập pth còn lại sẽ không tương

đương với F Vậy G là tập pth tối thiểu của F

Trang 12

4 Bài toán tìm khoá của quan hệ

4.1 Thuật toán tìm khoá dựa trên đồ thị

Định nghĩa khoá được viết lại bằng pth.

Cho Q là lược đồ quan hệ định nghĩa trên tập các thuộc tính U = {

A1, A2, , An} với tập các pth F= { f1, f2, ,fn} xác định trên Q K  U

là khoá của R nếu thoả mãn hai điều

kiện sau :

(1): K  U (2):  K'  K mà K'  U

Trang 13

Biểu diễn lược đồ quan hệ Q(U)

- Mỗi nút của đồ thị là tên của một thuộc tínhthuộc Q

- Cung nối hai thuộc tính A và B thể hiện chopth A B

- Thuộc tính chỉ có các mũi tên đi ra, tức là

chỉ ở vế trái của pth gọi là nút gốc

- Thuộc tính mà chỉ có mũi tên đi vào, tức làchỉ nằm ở vế phải của pth gọi là nút lá

- Khoá của lược đồ quan hệ phải bao phủ tậpnút gốc và không được chứa bất cứ nút lá

nào của đồ thị

Trang 14

Thuật toán tìm khoá:

-B1: Vẽ đồ thị của lược đồ quan hệ

-B2: Xác định tập các nút gốc ( G) và tập các nút lá ( L)

-B3: Xuất phát từ tập các nút gốc(G), đặt K bằng G ( khởi đầu ta đặt khoá là tập các nút gốc)

-B4: Dựa trên tập các pth F, tìm bao đóng của tập K ( tìm K +

F ) + Nếu K +

F = U thì K chính là khoá Dừng lại.

+ Ngược lại thì bổ sung một thuộc tính không thuộc

tập nút lá (L) vào K Khi đó K = K+1 nút không

thuộc tập L.

Trở lại B4.

Trang 15

4.2 Thuật toán tìm khoá dựa trên bao

* Ý tưởng : Bắt đầu từ tập R vì R + = R Ta bớt dần các phần tử của R để nhận được tập bé nhất mà

bao đóng của nó vẫn bằng R.

Vào : r(R), F

Ra : K ( Khoá )

B1: gán K = R B2: Lặp lại các bước sau :

Loại khỏi K phần tử A mà ( K \A) + =R

Nhận xét: Thuật toán trên chỉ tìm được một khoá trong sơ đồ quan hệ Nếu cần tìm nhiều khoá, ta thay đổi trật tự loại bỏ các phần tử của K.

Trang 17

-Loại phần tử C : ta có : {DEGHI} +  R nên K vẫn là {CDEGHI}

-Loại phần tử D : ta có : {CEGHI} + = R

vì CG  AE, AC  B, ABC  D nên D có trong

{CEGHI} + Nên K ={CEGHI}

Trang 18

Bài 8 THIẾT KẾ SCDL MỨC QUAN NIỆM

 Trên thực tế, một ứng dụng có thể đựơc phân tích

thiết kế thành nhiều lược đồ CSDL khác nhau Để đánh giá việc thiết kế một lược đồ CSDL, người ta dựa trên các tiêu chuẩn về sự trùng lặp thông tin, chi phí kiểm tra và các ràng buộc toàn vẹn

 Vậy để tránh sự dư thừa thông tin, ta cần chuẩn hoá

tất cả các lược đồ trong quá trình thiết kế.

Trang 19

1 Phép tách các lược đồ quan hệ

- ĐN: Phép tách các lược đồ quan

hệ R = { A1, A2, An} là việc thay thế lược đồ quan hệ R bằng tập các lược đồ { R1, R2, , Rk}, trong đó

Ri  R, i= 1, ,k

và R = R1 R2   Rk Không đòi hỏi các Ri phải là phân biệt

- Mục đích : Loại bỏ các dị thường dữ

liệu

Trang 20

Ví dụ :

Cho lược đồ quan hệ người cung cấp :

S(MCTY, ĐC, MH, GIA)với tập pth : MCTY  ĐC

MCTY, MH  GIA

Có thể được tách thành 2 lược đồ khác là :S1(MCTY, ĐC) và S2 ( MCTY, MH, GIA)

như vậy sẽ không mất công lưu địa chỉ củamột công ty nhiều lần

Trang 21

Kết nối không mất mát thông tin

- Nếu R là một lược đồ quan hệ đượctách thành các lược đồ con R1, R2, , Rk

và D là một tập các phụ thuộc dữ liệu Nói

rằng phép tách là tách - kết nối không mấtmát thông tin đối với D nếu với mỗi quan hệ

r trên R thoả D:

r = R1(r) *  R2 (r) * *  Rk(r)tức là r được tạo nên từ phép kết nối tự nhiêncủa các hình chiếu của nó trên các Ri, i=

1 ,k

Trang 22

Kiểm tra phép kết nối không

Input: R ={ A1, A2, , An} tập các phụ

thuộc hàm và phép tách p =(R1, R2, , Rk)

Output: Phép tách có phải là không mất

mát thông tin hay không ?

Phương pháp : Thiết lập một bảng với n cột

k hàng.; cột thứ j tương ứng với thuộc tínhAj; hàng thứ i tương ứng với lược đồ Ri Tại ô (i,j) điền kí hiệu aj nếu Aj  Ri, nếukhông điền kí hiệu bij

Trang 23

- Xét các pth:

+Xét ( X Y )  F , xét các hàng và nếu cógiá trị bằng nhau trên thuộc tính X thì làm bằngcác giá trị của chúng trên Y Khi làm bằng trên

Y, nếu một trong hai giá trị là aj thì ưu tiên làmbằng aj, nếu không làm bằng một trong các kíhiệu bij

+Tiếp tục với các pth khác ( kể cả việc lặplại các pth đã được áp dụng) cho đến khi khôngcòn áp dụng được nữa

- Xem xét kq: Nếu xuất hiện một hàng gồm toàn

kí hiệu a1, a2, , an thì phép kết nối là khôngmất mát thông tin, ngược lại là kết nối mất mátthông tin

Trang 24

VD1: Quan hệ người cung cấp:

R(MCTY, ĐC, MH, GIA) được tách thành 2 quan hệ: R1(MCTY, ĐC) và R2(MCTY, MH,GIA)

với các phụ thuộc hàm: MCTY ĐC

MCTY,MH GIA Kiểm tra xem phộp tỏch trờn cú mất mỏt thụng tin hay

khụng ?

Trang 25

B¶ng ban ®Çu ®­îc thiÕt lËp nh­ sau:

a1a1MCTY

a3a3

b22R2

b14b13

a2R1

GIAMH

§C

1

2

Trang 26

áp dụng phụ thuộc hàm MCTY  ĐC cho 2

hàng của bảng Ta nhận thấy 2 hàng bằng nhau trên cột tên (đều là a1) nên ở cột ĐC chúng được làm bằng và bằng a2 Khi đó ta thấy bảng kết

quả là:

Có hàng thứ 2 có các giá trị toàn là a, do đó phép

tách là Tách - Kết nối không mất mát thông tin

a1a1Tên

a3a3

a2

R2

b14b13

a2R1

Giá

Sản phẩmĐịa chỉ

Trang 27

Bài tập:

B1 Cho lược đồ quan hệ R={A, B, C, D} và tập phụ

thuộc hàm F={AB, AC D}

Phép tách quan hệ R thành 2 quan hệ R1={AB} và

R2={ACD} có tổn thất thông tin không? Vì sao?

B2. Cho lược đồ quan hệ với cỏc thuộc tớnh A, B, C, D, E, F

và tập phụ thuộc hàm

F= { AB  C, C  D, ABD  E, F  A}

Kiểm tra tớnh mất mỏt thụng tin của phộp tỏch R thành :

(R) = ( BC, AC, ABDE, ABDF)

B3. Dựng kĩ thuật bảng kiểm tra tớnh tổn thất của cỏc

Trang 28

2 Một số khái niệm

* Thuộc tính khoá và không khoá

- Cho một lược đồ quan hệ R trên tập

thuộc tính U ={ A1, , An} Thuộc tính A U được gọi là thuộc tính khoá ( nguyên thuỷ

hay cơ bản) nếu A là một thành phần thuộc

một khoá nào đó của R, ngược lại A được gọi

là thuộc tính không khoá (phi nguyên thuỷ

hoặc thứ cấp)

-VD : Cho lược đồ R trên tập thuộc tính

u= { A, B, C, D } với các pth AB C , B  D , BC A Ta thấy AB và BC là khoá Vậy A,

B, C là thuộc tính khoá ( hay cơ bản) , còn D

là thuộc tính không khoá hay thứ cấp

Trang 29

* Phụ thuộc hàm đầy đủ

Cho lược đồ quan hệ R(U) trên

tập thuộc tính U = { A1, ,Ak} X

và Y là hai tập thuộc tính khác nhau

X  U và Y  U.

Y là phụ thuộc hàm đầy đủ vào X nếu Y là pth vào X nhưng không pth vào bất kì tập con thực sự nào của X

Trang 30

 Phụ thuộc bắc cầu

Cho một lược đồ quan hệ R(U); X là một tập con các thuộc tính X U, 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 một tập con Y của R sao cho X  Y, Y A nhưng Y  X với A  XY.

Trang 31

3 Các dạng chuẩn của lược đồ quan hệ

- Quan hệ được chuẩn hoá là quan

hệ trong đó mỗi miền của một thuộc

tính chỉ chứa các giá trị nguyên tố (

tức là không phân nhỏ được nữa)

- Quan hệ có chứa các miền giá trị

là không nguyên tố gọi là quan hệ

không chuẩn hoá.

- Mét quan hÖ ®­îc chuÈn ho¸ cã thÓ thµnh méthoÆc nhiÒu quan hÖ chuÈn ho¸ kh¸c vµ kh«nglµm mÊt m¸t th«ng tin

Trang 33

3.1 Dạng chuẩn thứ nhất:

Một lược đồ quan hệ R được gọi là ở dạng chuẩn một (1NF) nếu và chỉ nếu toàn bộ các miền có mặt trong R đều chỉ chứa các giá trị nguyên tố VD: Cho bảng quan hệ GD ( Ten_GV, MON_GD)

C, VISUAL BASIC, TK WEPHà

PASCAL, NM CSDNLan

Mon_GDTen_GV

Trang 34

TK WEPHà

VISUAL BASICHà

NM CSDN

Lan

CHà

PASCALLan

Mon_GDTen_GV

Bảng GD ở dạng chuẩn 1:

Trang 35

22 Tu

13 5

7 HN

20 Lan

11 5

6 HP

21 Ha

12 4

7 HN

20 Lan

11 4

6 HP

21 Ha

12 3

8 HN

20 Lan

11 3

§iÓm ĐÞa chØ

Tuæi Tªn

MSSV M«n thi

Trang 36

Khoá chính của quan hệ trên là (Monthi , MSSV).Ta thấy các thuộc tính không khoá: ten, tuoi , diachi không phụ thuộc đầy đủ vào khoá chính (chỉ phụ thuộc vào MSSV ) Do đó, vi phạm 2NF Để lược đồ ở dạng chuẩn 2, ta tách thành 2 quan hệ :

SINHVIEN (MSSV, TEN, TUOI, DIACHI) vµ THIXONG (MONTHI, MSSV, DIEM)

Hai quan hệ trên đã ở 2NF vì mọi thuộc tính

không khoá đều đã phụ thuộc hàm đầy đủ vào

khoá chính

Trang 37

3.3 Dạng chuẩn thứ 3 ( 3NF)

Lược đồ quan hệ R ở dạng chuẩn thứ 3 ( 3NF) nếu :

 R ở dạng chuẩn 2

Mỗi thuộc tính không khoá là không phụ thuộc hàm bắc

cầu vào khoá chính

- VD1 : Cho lược đồ quan hệ R ( SAIP) với các phụ thuộchàm : SI P và S  A

R không ở 3NF Vì có A là một thuộc tính không khoá, phụthuộc bắc cầu vào khoá chính: SI S , S A và S SI

- VD2: Lược đồ quan hệ R ( CSZ) với các phụ thuộc hàm:

CS  Z, Z  C Trong lược đồ này, mọi thuộc tính đều làthuộc tính khoá Do vậy R ở 3 NF

Trang 38

3.4 Dạng chuẩn Boye-Codd ( BCNF)

Lược đồ quan hệ R ở dạng chuẩn Boye-Codd ( BCNF) nếu với mọi : X  A thoả trên R , A  X thì X làmột khoá của R

- VD :Trong ví dụ R(CSZ) nêu trên, rõ ràng R không ở

BCNF mà là ở 3NF vì rằng Z  C nhưng Z không phải làmột khoá của R

- Định lý : Nếu một lược đồ quan hệ R với tập phụ thuộchàm F là ở BCNF thì nó là ở 3NF

- Nhận xét : Trong CSDL, các lược đồ quan hệ ở dạng

chuẩn 1, 2, 3 vẫn tồn tại sự dư thừa thông tin Để tối thiểu

sự dư thừa thông tin thì các bảng phải ở dạng chuẩn

BCNF

Trang 39

4 Chuẩn hoá bảng

Chuẩn hoá bảng là cách đưa một bảng chưa chuẩnhoá về dạng chuẩn 3NF hoặc BCNF mà không làm mất mátthông tin

Có hai phương pháp để chuẩn hoá lược đồ quan hệ :

Phương pháp phân rã : Tách một lược đồ quan hệ

thành nhiều quan hệ khác thỏa mãn các dạng chuẩn

Phương pháp tổng hợp : Gom các thuộc tính thành

từng nhóm tạo thành quan hệ thoả mãn các dạng chuẩn

Trang 40

4.1 Đưa một bảng chưa chuẩn hoá về dạng

 Tách các nhóm thuộc tính lặp thành một bảng, khoá củabảng là khoá của bảng ban đầu và thuộc tính định danh củanhóm lặp

 Những thuộc tính còn lại lập thành một bảng với khoácủa bảng là khoá của bảng ban đầu

 Quá trình tách chỉ dừng lại khi ta đã nhận được các bảng

đã chuẩn hoá ( không còn thuộc tính lặp)

 VD : Quan hệ đơn hàng:

DONHANG ( SoĐ,MaH , TenH, SL, MAK, TenK,Tel)

DONHANG1 (SoĐ, MaH, TenH, SL)

DONHANG2 (SoĐ, MaK, TenK, Tel)

Trang 41

4.2 Đưa bảng ở 1NF về 2NF

 Tách các thuộc tính phụ thuộc vào một phần của khoáthành một bảng, bảng này có khoá là thuộc tính gây ra sự

phụ thuộc

 Các thuộc tính còn lại là một bảng với khoá của bảng

là khoá của bảng ban đầu

 VD : Quan hệ ;

SVTHI ( MONTHI, MSSV, TEN, TUOI, DIACHI, DIEM )

ở 1NF nhưng chưa ở 2NF Để quan hệ ở 2NF, ta

tách thành 2 quan hệ :

SINHVIEN (MSSV, TEN, TUOI, DIACHI) vµ THIXONG (MONTHI, MSSV, DIEM)

Trang 42

4.3 Phép tách một lược đồ quan hệ thành 3NF

Phép tách một lược đồ quan hệ R với tập pth F tối thiểu , không làm mất mát thông tin trên R, bảo toàn các pth sao cho mỗi

lược đồ con đều ở 3NF:

- B1 : Gom tất cả các thuộc tính của R không liên quan đên một pth nào của F, hoặc vế trái, hoặc vế phải , cho vào một lược đồ.

- B2 : Nếu có một phụ thuộc hàm nào của F mà liên quan tới tất cả các thuộc tính của R thì kết quả ra chính là R.

- B3 : Ngoài ra, phép tách đưa ra các lược đồ gồm các thuộc tính XA

cho pth X  A; nếu X A1, X A2, , X An thì thay thế tập thuộc tính XA1A2 An cho XAi ( 1<= i<= n) Quá trình tiếp tục đến khi tất cả các lược đồ đều đã ở 3NF

Trang 43

Ví dụ : Cho lược đồ quan hệ R ( CTHRSG) với tập pthtối thiểu : C  T , HR  C , HT  R , CS  G và HS

 R

Thuật toán trên cho ta kết quả của phép tách là tậplược đồ gồm 5 lược đồ con ở 3NF là :

R1 (CT) (ứng với pth C  T)R2 (HRC) (ứng với pth HR  C)R3 ( HTR) (ứng với pth HT  R)R4 ( CSG) (ứng với pth CS  G)R5 (HSR) (ứng với pth HS  R)

Trang 44

4.3 Phép tách một lược đồ quan hệ thành BCNF

Phép tách một lược đồ quan hệ R với tập pth F, không làm mất mát thông tin sao cho mỗi lược đồ con đều ở BCNF.

Phương pháp : Lặp liên tiếp Tại mỗi bước phép tách p là bảo đảm không mất mát thông tin đối với F.

-Bước đầu : p chỉ bao gồm R -Các bước tiếp : Nếu S là một lược đồ thuộc p, S chưa ở BCNF, chọn X  A là pth thoả trên S, trong đó X không chứa khoá của S, A X Thay thế S trong p bởi S1 và S2 với :

S1 = XA, S2 = S - A

Quá trình tiếp tục cho tới khi tất cả các lược đồ đều ở dạng chuẩn BCNF.

Trang 45

VD: Cho lược đồ R(CTHRSG) với tập pth :

C  T, HR  C, HT  R, CS  G, HS  R

Khoá của R là HS

Ta lần lượt xét các pth vi phạm điều kiện BCNF

- Xét C  T : vi phạm BCNF vì C không chứa khoá, dùngthuật toán trên để tách thành : R1 ( CT ) và R2( CHRSG) Sau đó cần tính F+ và chiếu xuống R1 và R2, kiểm tra tathấy R1 đã ở BCNF, R2 thì chưa Ta tách tiếp R2

Phép tách cuối cùng được :

R1(CT), R2 ( CSG), R3 ( CHR), R4 ( HSR)

Quá trình tách có thể được biểu diến qua sơ đồ :

Trang 46

R(CTHRSG) Khoá =HS

R1(CT)

Khoá =C

R2(CHRSG) Khoá =HS

R21(CSG) Khoá =CS

R22(CHRS) Khoá =HS

R221(HRC) Khoá =HR,HC

R222(HSR) Khoá =HS

Trang 47

B1. Cho lược đồ quan hệ R= <U , F> với tập thuộc tính

U = ABCDEHG và tập phụ thuộc hàm F={DE G, E

A, H C, CG H, DG EA, D B}

a Xác định khoá của lược đồ quan hệ trên

b Xác định dạng chuẩn cao nhất của lược đồ quan hệtrên

B2. Xác định dạng chuẩn cao nhất của lược đồ quan hệvới các thuộc tính ABCDEF và tập phụ thuộc hàm

{ABC,CB,ABDE,FA}

B3. Cho W= < R,F> R = { A, B, C, D}

F= { B  D, A  C, C  ABD} Hỏi W có là 2NF, 3NF không ?

Ngày đăng: 10/04/2015, 12:09

HÌNH ẢNH LIÊN QUAN

Bảng ban đầu được thiết lập như sau: - LÝ THUYẾT VỀ CƠ SỞ DỮ LIỆU (PHẦN 3)
Bảng ban đầu được thiết lập như sau: (Trang 25)

TỪ KHÓA LIÊN QUAN

w