ch ng 8
Download
Skip this Video
Download Presentation
Chương 8

Loading in 2 Seconds...

play fullscreen
1 / 87

Chương 8 - PowerPoint PPT Presentation


  • 164 Views
  • Uploaded on

Chương 8. PHỤ THUỘC HÀM VÀ CÁC DẠNG CHUẨN. Nội dung chi tiết. Chất lượng của một lược đồ csdl quan hệ Phụ thuộc hàm Các dạng chuẩn. Chất lượng của một lược đồ csdl quan hệ. Ngữ nghĩa của các quan hệ Thể hiện sự dư thừa thông tin Những khó khăn(Anomalies) trong vấn đề: Thêm Xóa

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'Chương 8' - lev


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
ch ng 8

Chương 8

PHỤ THUỘC HÀM VÀ CÁC DẠNG CHUẨN

n i dung chi ti t
Nội dung chi tiết
  • Chất lượng của một lược đồ csdl quan hệ
  • Phụ thuộc hàm
  • Các dạng chuẩn
ch t l ng c a m t l c csdl quan h
Chất lượng của một lược đồ csdl quan hệ
  • Ngữ nghĩa của các quan hệ
  • Thể hiện sự dư thừa thông tin
  • Những khó khăn(Anomalies) trong vấn đề:
    • Thêm
    • Xóa
    • Cập nhật
  • Thể hiện giá trị NULL trong các bộ
ch t l ng c a m t l c csdl quan h1
Chất lượng của một lược đồ csdl quan hệ
  • Thiết kế một lược đồ quan hệ tốt và xấu?
  • Đánh giá(không theo chuẩn) một lược đồ quan hệ dựa trên tiêu chí:
    • Ngữ nghĩa của các thuộc tính.
    • Giảm giá trị trùng lắp trong các bộ.
    • Giảm giá trị Null trong các bộ.
    • Không cho phép các bộ dữ liệu sai(không xác định)
  • Định nghĩa các dạng chuẩn được xem là cách đánh giá(theo chuẩn)
    • Được giới hạn trên chuẩn của lược đồ quan hệ
ng ngh a c a thu c t nh
Ngữ nghĩa của thuộc tính
  • Làm thế nào để hiểu được giá trị thuộc tính được lưu trữ trong một bộ?
    • Thiết kế một lược đồ để dễ dàng giải thích nghĩa của nó.
    • Giữ cho các thuộc tính trên quan hệ hoặc thực thể không được trùng lắp.
s tr ng l p d li u
Sự trùng lắp dữ liệu
  • Khi một phần của dữ liệu có thể suy ra từ một số phần dữ liệu khác thì ta nói có sự trùng lắp dữ liệu.
kh kh n trong vi c thi t k d li u quan h
Khó khăn trong việc thiết kế dữ liệu quan hệ
  • Thiết kế dữ liệu quan hệ đòi hỏi chúng ta hướng tới việc thu thập một tập các lược đồ quan hệ tốt.
  • Việc thế kế “tồi” có nguy cơ dẫn tới việc trùng lắp thông tin.

Lending-schema

Lending-schema là một sự thiết kế tốt hay tồi ?

kh kh n trong vi c thi t k d li u quan h1
Khó khăn trong việc thiết kế dữ liệu quan hệ
  • Tại sao Lending-Schema là một sự thiết kế tồi?
    • Sự trùng lắp dữ liệu: branch-name, branch-city,assets
    • Tốn không gian
    • Cập nhật dữ liệu phức tạp
  • Làm thế nào để chuyển đổi lược đồ Lending thành một một lược đồ tốt:
    • Phân rã lược đồ
s ph n r l c
Sự phân rã lược đồ
  • Sự phân rã là chia quan hệ gốc thành một vài quan hệ nhỏ hơn. Mục đích của sự phân rã này là làm giảm sự trùng lắp thông tin.
  • Hai đặc tính quan trọng cần phải duy trì trong suốt quá trình phân rã:
    • Sự bảo toàn thông tin: có thể tìm được bất kỳ thể hiện nào của quan hệ gốc từ các quan hệ được phân rã.
    • Bảo toàn phụ thuộc: các ràng buộc trên quan hệ gốc phải được đảm bảo còn giữ trên các quan hệ được phân rã.
s ph n r
Sự phân rã
  • Phân rã Lending-schema thành 2 lược đồ:
    • Branch-schema = (branch-name, branch-city,assets)
    • Loan-info-schema = (customer-name, loan-number,branch-name, amount)
  • Luật bảo toàn: tất cả các thuộc tính trong lược đồ gốc phải được tìm thấy trong các lược đồ phân rã.
c p nh t kh kh n
Cập nhật khó khăn
  • Thêm: phải thêm chính xác dữ liệu, nếu không sẽ dẫn đến sự mâu thuẩn với các dữ liệu đã nhập.
  • Xóa: có khả năng sẽ làm mất thông tin.
  • Sửa: phải sửa luôn các giá trị của các bộ liên quan.
slide12
Bỏ sót cập nhật

Tênphim

Nămsx

Thờilượng

Loạiphim

Xưởngsx

Diễnviên

Xóa luôn phim

Star Wars

1977

124

color

Fox

Carrie Fisher

Star Wars

1977

124

color

Fox

Mark Hamill

Star Wars

1977

124

color

Fox

Harrison Ford

Mighty Ducks

1991

104

color

Disney

Emilio Esteves

Wayne’s World

1992

95

color

Paramount

Dana Carvey

Wayne’s World

1992

95

color

Paramount

Mike Meyers

Ví dụ
  • Xét quan hệ Phim

Thêm chính xác

Giải pháp: các thao tác thêm, xóa, sửa phức tạp cần được nghiêm cấm

gi tr null trong c c b
Giá trị Null trong các bộ
  • Có thể có các thuộc tính không áp dụng cho các bộ của quan hệ. Vì thế:
    • Nhiều giá trị Null được lưu trong nhiều bộ.
    • Tốn nhiều không gian lưu trữ.
    • Không chắc chắn cho ra kết quả mong muốn khi sử dụng chúng trong hàm Sum, Count
  • Giá trị NULL có thể xảy ra ở các trường hợp:
    • Thuộc tính không được áp dụng.
    • Giá trị tại thuộc tính chưa xác định.
    • Giá trị xác định, nhưng chưa nhập.

►Giải pháp: Tránh đặt các thuộc tính mà có giá trị NULL ở một quan hệ cơ sở.

ph thu c h m pth
Phụ thuộc hàm(PTH)
  • PTH (Functional dependencies) là một loại RBTV rất quan trọng để phát hiện các thiết kế CSDL tốt.
  • Có thể biểu diễn RBTV bằng PTH
  • PTH biểu diễn mối liên hệ giữa các thuộc tính trong cùng một quan hệ.
  • Định nghĩa: Nếu A, B là hai thuộc tính của R, B phụ thuộc hàm trên A(ký hiệu A→B), nếu mỗi giá trị tại A trong R xác định duy nhất một giá trị của B trong R.
c tr ng c a pth
Đặc trưng của PTH
  • PTH có hiệu lực về ngữ nghĩa(về nghĩa) của các thuộc tính trong một quan hệ.
  • Biểu diễn bằng đồ thị:
  • Yếu tố quyết định cho một pth liên quan đến một thuộc tính hoặc một tập các thuộc tính ở bên trái mũi tên.
slide17
Ví dụ
  • Tìm tổng số PTH có thể là bao nhiêu?
nh n di n pth
Nhận diện PTH
  • Việc nhận diện PTH dựa vào ý nghĩa của thuộc tính và mối quan hệ của chúng trong quan hệ.
  • Dựa vào dữ liệu trên Staff:
    • staffNo → sName
    • sName → staffNo
  • Tuy nhiên, chỉ có pth:
    • staffNo → sName
vi du
Tênphim

Nămsx

Thờilượng

Loạiphim

Xưởngsx

Diễnviên

Star Wars

1977

124

color

Fox

Carrie Fisher

Star Wars

1977

124

color

Fox

Mark Hamill

Star Wars

1977

124

color

Fox

Harrison Ford

Mighty Ducks

1991

104

color

Disney

Emilio Esteves

Wayne’s World

1992

95

color

Paramount

Dana Carvey

Wayne’s World

1992

95

color

Paramount

Mike Meyers

Ví dụ
  • Xét lược đồ quan hệ
  • Và thể hiện

Phim(Tênphim, Nămsx, Thờilượng, Loạiphim, Xưởngsx, Diễnviên)

vi du tt
Ví dụ (tt)
  • Tìm được nhiều PTH

Tênphim Nămsx  Thờilượng

Tênphim Nămsx  Loại

Tênphim Nămsx  Xưởngsx

Tênphim Nămsx  Diễnviên

Không là phụ thuộc hàm

chu y
Tênphim

Nămsx

Thờilượng

Loạiphim

Xưởngsx

Diễnviên

Star Wars

1977

124

color

Fox

Carrie Fisher

Star Wars

1977

124

color

Fox

Mark Hamill

Star Wars

1977

124

color

Fox

Harrison Ford

Mighty Ducks

1991

104

color

Disney

Emilio Esteves

Wayne’s World

1992

95

color

Paramount

Dana Carvey

Wayne’s World

1992

95

color

Paramount

Mike Meyers

Chú ý
  • Xét thể hiện r1

Tênphim  Loại

chu y tt
Tênphim

Nămsx

Thờilượng

Loạiphim

Xưởngsx

Diễnviên

Star Wars

1977

124

color

Fox

Carrie Fisher

Star Wars

1977

124

color

Fox

Mark Hamill

Star Wars

1977

124

color

Fox

Harrison Ford

Mighty Ducks

1991

104

color

Disney

Emilio Esteves

Kingkong

1993

120

color

Paramount

Fay Wray

Kingkong

1993

120

Black/white

Paramount

Robert Amstrong

PTH phải được định nghĩa trên lược đồ quan hệ

Thỏa với mọi thể hiện của quan hệ

Chú ý (tt)
  • Xét thể hiện r2

Tênphim  Loại

lu t d n armstrong

Y

X, X Y

W

Nếu X  Y và Z

Thì X, W  Y, Z

Nếu X  Y và Y  Z

Thì X  Z

Luật dẫn Armstrong
  • Luật phản hồi
  • Luật cộng
  • Luật bắc cầu

(FD1)

(FD2)

(FD3)

lu t d n kha c
Nếu X  Y và Y, W  Z

Thì X, W  Z

Nếu X  Y và X  Z

Thì X  Y, Z

Nếu X  Y và Z

Y

Thì X  Z

Luật dẫn khác
  • Luật bắc cầu giả
  • Luật hội
  • Luật phân rã

(FD4)

(FD5)

(FD6)

h qua t t p pth
Hệ quả từ tập PTH
  • Cho F là tập các PTH định nghĩa trên R
    • Nếu có 1 PTH f khác cũng được thỏa với mọi thể hiện của R
    • Thì ta gọi f là hệ quả của F
slide26
Ví dụ
  • Xét lược đồ R(A, B, C, G, H, I)
  • Và PTH F định nghĩa trên R
  • f6 là phụ thuộc hàm hệ quả từ F

F = { f1: A  B f2: A  C f3: CG  H f4: CG  I f5: B  H }

f6: A  H

bao o ng cu a pth closure of a set of functional dependencies
Bao đóng của PTH(Closure of a Set of Functional Dependencies)
  • Cho F là tập các PTH định nghĩa trên R
  • Tập hợp các PTH hệ quả từ F được gọi là bao đóng của F
    • Ký hiệu F+

F  F+

ti m bao o ng cu a f
Tìm bao đóng của F
  • Từ tập F ban đầu ta sử dụng định nghĩa hình thức của PTH để tìm bao đóng F+
  • Nếu F quá lớn, tìm F+ sẽ khó khăn và tốn thời gian
suy d n t t p pth
Suy dẫn từ tập PTH
  • Cho trước một tập PTH trên 1 quan hệ
  • Có thể suy luận “quan hệ phải thỏa một tập PTH khác nào đó”
  • Khả năng suy dẫn nhằm khám phá thêm tập PTH là rất cần thiết để thiết kế các lược đồ quan hệ đạt chất lượng tốt
vi du1
Ví dụ
  • Xét lược đồ R(A,B,C) thỏa tập PTH
  • Ta có thể suy diễn R còn thỏa PTH

F = { f1: A  B

f2: B  C }

f3: A  C

bao o ng cu a f tt
Bao đóng của F (tt)
  • Cho F là tập các PTH định nghĩa trên R
  • Gọi f là một PTH được suy dẫn từ F
    • Áp dụng luật dẫn cho các PTH trong F để có được f
  • Tập hợp các PTH suy dẫn từ F ký hiệu F’
    • Ta muốn F’ = F+
ti m bao o ng cu a f tt
Tìm bao đóng của F (tt)
  • Từ tập F ban đầu ta sử dụng các luật dẫn để tìm bao đóng F+
  • Áp dụng luật dẫn vào F cho đến khi không không thể áp dụng được nữa

Tập F+ rất lớn

thu t to n t nh f
Thuật toán tính F+
  • Để tính F+ dựa trên F ta làm như sau:

Bước 1:

F+ = F

Bước 2:

Repeat - Với mỗi pth f trong F+: Áp dụng tính phản xạ và tính tăng trưởng

trên f và thêm các pth kết quả vào F+- Với mỗi cặp pthf1ivà f2 trong F+Nếuf1 và f2 có thể kết nối lại bằng cách sử

dụng luật bắt cầu thì

thêm pth kết quả vào F+ Until F+ không thể thay đổi được nữa

slide34
Ví dụ
  • Xét lược đồ R(A, B, C, G, H, I)
  • Và PTH F định nghĩa trên R
  • Tìm được nhiều PTH trong F+

F = { f1: A  B f2: A  C f3: CG  H f4: CG  I f5: B  H }

slide35
Ví dụ
  • A  B, B  H : A  H
  • CG  H, CG  I: CG  HI
  • A  C, CG  I : AG  I
nh n xe t
Nhận xét
  • Bài toán thực tế
    • Cho một PTH f: X  Y
    • Xác định f có thuộc bao đóng F+ hay không
  • Giải quyết
    • Tìm bao đóng F+
    • Kiểm tra f có nằm trong F+ không
  • Tìm bao đóng F+ có hiệu quả ???
nh n xe t tt
Nhận xét (tt)
  • Chuyển sang bài toán thành viên
    • Ta chỉ cần tìm bao đóng của tập thuộc tính X dựa trên F
    • Kiểm tra Y có thuộc bao đóng của X hay không
bao o ng cu a t p thu c ti nh x
X+F

{ Y | X  Y được suy dẫn từ F }

Là tập hợp những VP của các PTH có VT là X nằm trong F

X  X+F

X  R+

Bao đóng của tập thuộc tính X
  • Ký hiệu X+F
  • Định nghĩa
  • Ta thấy

X+F dùng để xem f có được suy dẫn từ F hay không?

ti m bao o ng cu a x
Tìm bao đóng của X

B1.

X+F X

Tìm các PTH trong F có VT là các thuộc tính nằm trong X+Fcó VP không nằm trong X+F

B2.

Lặp {

Nếu (có f : U  V thuộc F) và (U  X+F)

Thì X+F = X+F  V

} cho đến khi (X+F = R+) hoặc

(không còn thay đổi được nữa)

vi du2
Ví dụ
  • R(A, B, C, D, E, F)
  • F = { ABC, BCAD, DE, CFB }
  • Tìm AB+F
  • AB+F = AB
  • ABC: ABC
  • BCAD: ABCD
  • DE: ABCDE
  • Ngừng

AB+F = {A, B, C, D, E}

vi du tt1
Ví dụ (tt)
  • R(A, B, C, D, E, F)
  • F = { ABC, BCAD, DE, CFB }
  • Kiểm tra PTH ABD có suy dẫn từ F không?
  • AB+F = {A, B, C, D, E}
  • Có D trong bao đóng
  • Kết luận ABD suy dẫn từ F
vi du tt2
Ví dụ (tt)
  • R(A, B, C, D, E, F)
  • F = { ABC, BCAD, DE, CFB }
  • Kiểm tra PTH DA có suy dẫn từ F không?
  • D+F = {D, E}
  • Không có A trong bao đóng
  • Kết luận DA không suy dẫn từ F
m t s ti nh ch t tt
Mọi thể hiện của quan hệ thỏa F1

Mọi thể hiện của quan hệ thỏa F2

Một số tính chất (tt)
  • Tương đương
    • Hai tập PTH F1 và F2 gọi là tương đương
  • Bổ đề

F1  F2  F1+  F2+

F1  F2  F1 là hệ quả của F2 và

F2 là hệ quả của F1

vi du3
Ví dụ
  • R(A, B, C, D, E)
  • F1 = { ABC, AD, CDE }
  • F2 = { ABCE, AABD, CDE }
  • F1  F2 ?
  • Chứng minh
    • F1 là hệ quả của F2  F1 được suy dẫn từ F2
    • F2 là hệ quả của F1  F2 được suy dẫn từ F1
vi du tt3
Ví dụ (tt)
  • {ABCE, AABD, CDE }  {ABC, AD, CDE }
    • Ta thấy F1  F2, hiển nhiên F1 là hệ quả của F2
  • {ABC, AD, CDE }  {ABCE, AABD, CDE }
    • Xét F2 có AE, tìm xem F1 có AE ?
vi du4
Ví dụ
  • R(A, B, C, D, E)
  • F1 = { ABC, AD, CDE }
  • F2 = { ABCDE }
  • F1  F2 ?
  • Chứng minh
    • F1 là hệ quả của F2  F1 được suy dẫn từ F2
    • F2 là hệ quả của F1  F2 được suy dẫn từ F1
vi du5
Ví dụ
  • {ABCDE}  {ABC, AD, CDE}
    • Xét CDE không thuộc trong F2
    • F1 không được suy dẫn từ F2
    • F1 không là hệ quả của F2
  • {ABC, AD, CDE}  {ABCDE}
    • Xét F2 có AE
slide48
G là phủ nếu G  F

tương đương

Phủ
  • Cho F là tập các PTH định nghĩa trên R
  • Xét một tập PTH G định nghĩa trên R
m t s kha i ni m tt
Một số khái niệm (tt)
  • PTH đầy đủ

Xét X  Y

Nếu X’  X sao cho

F  F – {XY}  {X’Y}

Thì Y phụ thuộc đầy đủ vào X

Y phụ thuộc hàm vào X và không phụ thuộc hàm vào tập con nào của X

vi du6
Ví dụ
  • R(A, B, C, D, E, I)
  • F = { ABCD, BCDE, CDEI }
  • BCDE là phụ thuộc hàm đầy đủ không?
m t s kha i ni m tt1
Xét X  Y là thừa nếu

F  F – {XY}

Một số khái niệm (tt)
  • PTH thừa
  • Phụ thuộc hàm hiển nhiên: B phụ thuộc hàm hiển nhiên trên A nếu B  A.

Ví dụ: A  A, AB  B, ABC  BC là các PTH hiển nhiên

ph t i thi u
Phủ tối thiểu
  • Cho F là tập các PTH định nghĩa trên R
    • Mà VP chỉ chứa 1 thuộc tính
  • PTH G gọi là PTT
    • Nếu G là một phủ
    • G chỉ chứa những PTH đầy đủ
    • G không chứa những PTH thừa
  • Ký hiệu: G=PTT(F)
vi du7
Ví dụ
  • R(A, B, C, D)
  • F = { AB, BA, BC, AC, CA }
  • PTT(F) ?
  • Mọi VP đều có 1 thuộc tính
  • Các PTH đều đầy đủ
  • Có thể bỏ phụ thuộc hàm thừa nào?
vi du tt4
Ví dụ (tt)
  • Xét AB
    • A+F – {AB} = AC
    • AB không là phụ thuộc hàm thừa
  • Xét BA
    • B+F-{BA} = BCA
    • BA là phụ hàm thừa

không chứa VP

có chứa VP

vi du tt5
Ví dụ (tt)
  • Nếu bỏ đi BA và AC thì
  • F’ = { AB, BC, CA }
  • F’  F nên F’=PTT(F)
    • Chỉ cần xét F được suy dẫn từ F’
  • Nếu bỏ đi BC
  • F” = { AB, BA, AC, CA}
  • F”  F nên F”=PTT(F)

F’  F”

thu t to n t m t p pth nh nh t g d a tr n f
Thuật toán tìm tập pth nhỏ nhất G dựa trên F
  • G  F
  • Replace each FD X → { A1, A2, ......., An} inGby n FDsX → A1, X → A2,…, X → An.
  • For each FD X → A in G

for each attribute B that is an element of X

If( (G – {X → A }) {(X – {B}) → A} ) is eqnt to G,

then replace X → A with (X – {B}) → A in G.

  • For each remaining FD X → A in G

If (G – {X → A }) is equivalent to G,

then remove X → A from G.

vi du8
Ví dụ
  • R(A, B, C)
  • F = { ABC, AB, BC }
  • PTT(F) ?
  • Mọi VP đều có 1 thuộc tính
  • Có ABC không là PTH đầy đủ
    • Thay thế bằng các PTH đầy đủ
  • Có thể bỏ phụ thuộc hàm thừa nào?
vi du tt6
Ví dụ (tt)
  • F = { AC, AB, BC }
  • Có thể bỏ phụ thuộc hàm thừa nào?
ca c kha i ni m kho a
Các khái niệm khóa
  • Khóa
    • Là một tập các thuộc tính dùng để xác định tính duy nhất của mỗi bộ trong quan hệ

 Các bộ trong quan hệ khác nhau từng đôi một

  • Gồm
    • Siêu khóa
    • Khóa
    • Khóa chính
si u kho a

r,

t1, t2

r, t1

t2

t1[SK]

t2[SK]

Siêu khóa
  • Xét quan hệ R
    • Gọi SK là một tập con khác rỗng các thuộc tính của R
    • SK là siêu khóa khi và chỉ khi
    • Mọi lược đồ quan hệ có tối thiểu 1 siêu khóa

Hai bộ bất kỳ có các giá trị khác nhau tại tập thuộc tính siêu khóa

kho a
-

K’

K

, K’

K

, K’

không phải là siêu khóa của R

Khóa
  • Xét quan hệ R
    • Gọi K là một tập con khác rỗng các thuộc tính của R
    • K là khóa nếu thỏa đồng thời 2 điều kiện:

- K là một SK

    • Một lược đồ quan hệ có thể có nhiều khóa
    • Khóa được chọn để cài đặt gọi là khóa chính

Khóa là siêu khóa bé nhất

vi du9
R

A

B

C

D

x

1

10

a

x

2

20

a

y

1

40

b

y

1

40

c

z

1

50

d

Ví dụ
  • Tập hợp các thuộc tính
    • ABCD
    • ABC, ABD, ACD, BCD
    • AB, AC, AD, BC, BD, CD
    • A, B, C, D
  • Siêu khóa
    • ABCD, ABD, ACD, BCD, BD, CD
  • Khóa
    • BD, CD
pth v kh a
PTH và Khóa
  • Phụ thuộc hàm cho phép ta diễn tả các RBTV không thể diễn tả bằng siêu khóa.
    • Vd., lược đồ Muon(tenkh, magdmuon, tencn, sotien)
    • Ta muốn có tập các pth sau:

magdmuonsotien magdmuon  tencn

nhưng không muốn có pth (vì một giao dịch mượn có thể của nhiều khách hàng):

magdmuon tenkh

th ph thu c h m
Đồ thị phụ thuộc hàm
  • Đồ thị phụ thuộc hàm là một đồ thị vô hướng, với :
    • Một tập nút tượng trưng cho tập PTH, ký hiệu O với tên PTH bên cạnh.
    • Một tập nút tượng trưng cho các thuộc tính, ký hiệu ● với tên thuộc tính bên cạnh.
    • Một tập cung có hướng nối một nút PTH(thuộc tính) đến một nút thuộc tính (PTH).
    • Một cung xuất phát từ nút thuộc tính A đến một nút PTH f, cùng với một cung từ nút PTH f đến nút thuộc tính B, biểu diễn cho PTH AB
  • Khi F có nhiều PTT, đồ thị của F có chứa chu trình.
slide65
f1

f4

C

A

f2

B

D

E

f3

Ví dụ

Cho F = {f1:ABC; f2: B A; f3: AD E; f4:BD E }

Đồ thị của F:

ng d ng ph thu c h m v o kh a
Ứng dụng phụ thuộc hàm vào khóa
  • Thuật toán xác định khóa của quan hệ:
    • Xây dựng các tổ hợp có thể có từ Q+
    • Tìm tập S chứa tất cả các tổ hợp K  Q+ thỏa điều kiện (i), mỗi tổ hợp K như vậy là một siêu khóa của Q.
    • K S

Nếu K’ | K’  K thì loại K ra khỏi S

    • Thực tế, kết hợp bước 2 và bước 3: bắt đầu xét từ những tổ hợp có ít phần tử nhất, nếu tìm được một tổ hợp Ki thỏa điều kiện (i) thì loại bỏ ngay các tổ hợp có chứa Ki.
  • Vấn đề: Số tổ hợp có thể có từ Q+ sẽ rất lớn nếu Q+ lớn  Cần giới hạn số tổ hợp cần khảo sát
ng d ng ph thu c h m v o kh a1
Ứng dụng phụ thuộc hàm vào khóa
  • Giới hạn số lượng tổ hợp:
    • Thuộc tính nguồn:
      • A là một thuộc tính nguồn nếu f: XY  F |AY
      • Trên đồ thị PTH, thuộc tính nguồn không có cung vào
      • Nhận xét: mọi thuộc tính nguồn phải xuất hiện trong mọi khóa của Q
    • Thuộc tính đích:
      • B là một thuộc tính đích nếu f: XY  F| BX
      • Trên đồ thị PTH, thuộc tính đích chỉ có cung vào, không có cung ra.
      • Nhận xét: thuộc tính đích không xuất hiện trong bất kỳ khóa nào của Q
slide68
Ví dụ
  • Cho Q(ABCDEG) với

F = {f1: ADB; f2:EG A; f3: BC G}

Xác định các khóa của Q?

d ng chu n
Dạng chuẩn
  • Mục đích: làm cho sự trùng lắp dữ liệu ít nhất
d ng chu n 1 first normal form 1nf
Dạng chuẩn 1(First Normal Form – 1NF)
  • Một lược đồ R đạt chuẩn 1NF nếu như miền giá trị của các thuộc tính trên R là nguyên tố(atomic)

Non-atomic

unf to 1nf
UNF to 1NF
  • Điền vào các chỗ trống bằng dữ liệu trùng lắp → dẫn đến nhiều dữ liệu bị trùng lắp trên quan hệ.
  • Thay thế các giá trị không nguyên tố bằng cách xác định tập thuộc tính làm khóa chính và sau đó tách thành một quan hệ mới → tạo ra hai hay nhiều quan hệ mới, và sẽ làm giảm bớt sự trùng lắp thông tin.
d ng chu n 2 2nf
Dạng chuẩn 2 (2NF)
  • Một lược đồ đạt dạng chuẩn 2 nếu như lược đồ đó đã đạt dạng chuẩn một và các thuộc tính không khóa phụ thuộc đầy đủ vào thuộc tính khóa

propertyNo → pAdress

PK = {clientNo, propertyNo)

1NF

1nf to 2nf
1NF to 2NF
  • Xác định khóa chính trên quan hệ bị 1NF
  • PropertyRentalOwner: clientNo, propertyNo
  • Xác định các pth chỉ liên quan đến khóa chính

clientNo, propertyNo  pAddress, rentStart, rentFinish, rent, ownerNo, oName

propertyNo  pAddress, rent, ownerNo, oName

  • Nếu có tồn tại pth riêng phần trên khóa chính thì xóa chúng bằng cách thay thế bằng quan hệ mới
    • Xóa (pAddress, rent, ownerNo, oName) từ PropertyRentalOwner bằng cách thay chúng thành quan hệ mới PreoprtyOwner.
    • PropertyRentalOwner được đổi tên thành Rental.
d ng chu n 3 3nf
Dạng chuẩn 3(3NF)
  • Một lược đồ R ở dạng chuẩn 3 khi nó đạt dạng chuẩn 2 và tất cả các thuộc tính không khóa không phụ thuộc bắt cầu vào khóa

Ví dụ:

1. propertyNo  pAddress, rent, ownerNo, oName

 propertyNo  ownerNo

2. ownerNo  oName

Bắc cầu: propertyNo  oName

Vì thế, PropertyOwner không đạt 3NF

2nf to 3nf
2NF to 3NF
  • Xác định thuộc tính khóa trong quan hệ đạt dạng chuẩn 2

PropertyOwner: propertyNo

  • Xác định phụ thuộc hàm trong quan hệ

propertyNo  pAddress, rent, ownerNo, oName

ownerNo  oName

  • Nếu pth bắt cầu tồn tại trên khóa chính thì xóa bỏ chúng bằng cách thay thế chúng bằng một quan hệ mới.
    • Xóa oName từ PropertyOwner bằng cách thay thế quan hệ Owner.
    • PropertyOwner được thay đổi thành PropertyForRent.
bcnf boyce codd nf
BCNF(Boyce – Codd NF)
  • Một lược đồ chỉ đạt dạng chuẩn BCNF nếu khi mỗi xác định đều là siêu khóa.
  • Mọi quan hệ đạng chuẩn BCNF đều đạt dạng chuẩn 3, nhưng ngược lại thì chưa chắc.

Example:

Client, PropertyForRent & Owner đạt chuẩn BCNF vì mỗi xác định có thể đều là khóa.

Rental cũng đạt chuẩn BCNF vì mỗi xác định (vd. clientNo, propertyNo hoặc clientNo, rentStart hoặc propertyNo, rentStart) đều cũng là khóa

3nf to bcnf
3NF to BCNF
  • Xác định phụ thuộc hàm A → B của Q, trong đó A#B và A không là siêu khóa
  • Phân rã quan hệ gốc Q thành hai quan hệ Q1={A,B}, Q2 ={tập các thuộc tính còn lại của Q}
  • Lặp lại qui trình trên cho Q2 đến khi không thể tiếp tục.
  • Quan hệ Q1 và các Qi phân rã được từ Q2 là quan hệ cuối cùng đạt chuẩn BCNF
3nf to bcnf1
3NF to BCNF

Primary key

3NF

Primary key

slide83
Ví dụ
  • Xét quan hệ Hướngdẫn
  • Các qui tắc đặt trên quan hệ là:
    • Mỗi sinh viên có thể theo một số chủ đề
    • Mỗi chủ đề có thể có một số hướng dẫn viên
    • Một hướng dẫn viên chỉ tư vấn cho một chủ đề
    • Mỗi sinh viên cụ thể theo một chủ đề có một hướng dẫn viên cụ thể
    • Một hướng dẫn viên có thể tư vấn một số sinh viên
slide84
Ví dụ:
  • Yêu cầu
    • Xác định các phụ thuộc hàm liên quan?
    • Xác định dạng chuẩn của Hướngdẫn?
    • Chuẩn hóa thành dạng chuẩn cao nhất
slide85
Ví dụ
  • Cho quanhệ
  • Cácphụthuộchàm
    • Sohd → makh,tenkh,dckh,ngayhd,mahg,tenhg,mota_hg,dvt
    • Makh → tenkh, dckh
    • Mahg → tenhg,mota_hg,dvt
    • Sohd,mahg → soluong_hg
slide86
Ví dụ
  • Yêu cầu
    • Xác định khóa?
    • Chuẩn hóa lược đồ trên sao cho đạt chuẩn cao nhất?
ad