1. Trang chủ
  2. » Giáo Dục - Đào Tạo

CHƯƠNG 5: LÝ THUYẾT THIẾT KẾ CSDL QUAN HỆ

118 906 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 118
Dung lượng 693,5 KB

Nội dung

Các bước thiết kế một Cơ sở dữ liệu Bước 1: Phân tích toàn bộ các yêu cầu  Bước 2: Nhận diện những thực thế  Bước 3: Nhận diện các mối liên quan giữa các thực thể  Bước 4: Xác đinh

Trang 1

Hoàng Thị Hà 1

02/07/24

CHƯƠNG 5: LÝ THUYẾT THIẾT KẾ CSDL

QUAN HỆ

Trang 2

Bài 1: Giới thiệu

I Đặt vấn đề

Trang 3

Hoàng Thị Hà 3

02/07/24

Xét ví dụ:

S# SNAME STATUS CITY P#, PNAM

E COLOR WEIGHT PRICE QTY

d o n

P2 B2 Xanh 17 150 250

Trang 4

Câu hỏi?

Vậy làm thế nào để thiết kế một CSDL cho

tốt?

Trang 5

Hoàng Thị Hà 5

02/07/24

Nhận xét

Ưu điểm: Khi thực hiện truy vấn SQL chỉ cần

thực hiện các phép toán một ngôi do đó biếu diễn câu hỏi dễ dàng, thời gian chi phí đáp ứng nhỏ

Trang 6

Nhận xét (cont)

Nhược điểm:

* Dư thừa dữ liệu (Redundancy): Dễ dàng thấy rằng mỗi khi xuất hiện

tên nhà cung cấp thì địa chỉ của ông ta lại lặp lại trong mối quan hệ.

* Không nhất quán (Inconsistency) (dị thường xuất hiện khi sửa dữ

liệu): Là hệ quả của việc dư thừa dữ liệu VD: khi sửa đổi địa chỉ của nhà cung cấp ở bộ nào đó còn các bộ khác giữ nguyên thì một nhà

cung cấp có nhiều địa chỉ.

* Dị thường khi thêm bộ (Insertion anomalies): Nếu một nhà cung

cấp chưa cung cấp một mặt hàng nào cả, khi đó ta không thể đưa

thông tin về nhà cung cấp đó vì …sẽ phải đưa giá trị nào vào các thuộc tính còn lại.

* Dị thường khi xoá bộ (Deletion anomalies): Là vấn đề ngược lại của

vấn đề trên Nếu vô tình một nhà cung cấp chỉ mới cung cấp một mặt hàng duy nhất (giả sử S2, P2) thì sẽ bị mất thông tin về nhà cung cấp đó.

Trang 7

Hoàng Thị Hà 7

02/07/24

Cách giải quyết thế nào?.

 Để khắc phục những nhược điểm trên thì cần

tách quan hệ trên thành các quan hệ khác nhau

ta được một lược đồ CSDL (tập các lược đồ quan hệ) sao cho tốt hơn

Trang 8

Lược đồ VT có thể tách thành 3 lược đồ như sau

Trang 9

tăng lên.

Nhận xét

Trang 10

II Các bước thiết kế một Cơ sở dữ liệu

Bước 1: Phân tích toàn bộ các yêu cầu

Bước 2: Nhận diện những thực thế

Bước 3: Nhận diện các mối liên quan giữa các thực

thể

Bước 4: Xác đinh khoá chính

Bước 5: Nhận diện khoá ngoại lai

Bước 6: Thêm các thuộc tính không phải khoá vào

bảng dữ liệu

Bước 8: Khai báo phạm vi của mỗi thuộc tính

Bước 9: Kiểm tra tính chuẩn của các quan hệ(3NF)

Trang 11

Hoàng Thị Hà 11

02/07/24

BÀI 2: PHỤ THUỘC HÀM.

Trang 12

I Khái niệm PTH

Định nghĩa: Cho R(U) là một sơ đồ quan hệ với

U= {A1, A2, …, An} là tập các thuộc tính X,Y U

Ta nói rằng X xác định Y (hay Y phụ thuộc hàm

vào X) nếu với hai bộ t1, t2 bất kỳ chúng bằng

nhau trên tập X thì cũng bằng nhau trên tập

Y( t1[X] = t2[X] thì t1[Y] = t2[Y] ).

SNAME, SID  SADDR

Trang 13

Hoàng Thị Hà 13

02/07/24

II Hệ tiên đề Amstrong đối với các phụ thuộc hàm

2 Hệ tiên đề Amstrong đối với các phụ thuộc hàm

 Cho R(U) là một sơ đồ quan hệ với U = {A1, A2,

…, An} là tập các thuộc tính X,Y, Z, W  U

 Ta ký hiệu XY= X Y

 Hệ tiên đề Amstrong:

XZ  YZ

Trang 14

Định lý:

 Hệ tiên đề Amstrong là đúng và đầy đủ(đã được chứng minh)

Trang 15

WY  Z thì WX  Z

Trang 16

III Bao đóng(closures of attribute sets)

Đặt vấn đề: Cho quan hệ r, tập PTH F, và tập

phụ thuộc tính X,Y  U Hỏi rằng X  Y có thõa mãn trong r?

 Để trả lời được câu hỏi trên có 2 cách:

vậy, ta phải tính F+ , nhưng việc tính F+ là rất khó.

hơn so với cách thức nhất.

Trang 17

Hoàng Thị Hà 17

02/07/24

Bao đóng(cont)

Bao đóng của tập thuộc tính X

 Định nghĩa: Bao đóng của tập thuộc tính X (ký

hiệu X+) bao gồm các thuộc tính A  U sao cho

X  A  F+

thuộc tính mà X xác định nó

Trang 18

Thuật toán tìm bao đóng của tập thuộc tính X:

Input: Tập hữu hạn các thuộc tính U, tập các

PTH F trên U và X  U

Output: Bao đóng của X đối với F (XF+)

Thuật toán:Tính liên tiếp X0, X1, X2, …X(k) theo

Trang 19

Hoàng Thị Hà 19

02/07/24

Ví dụ

Ví dụ: Cho lược đồ R(U, F) , U= {A, B, C, D,E}

F= {A BC, C DE, E A}

Trang 21

Hoàng Thị Hà 21

02/07/24

Bao đóng của tập PTH F (F+)

 Định nghĩa: Cho một lược đồ quan hệ R(U,F),

bao đóng của tập PTH F (ký hiệu là F+) là tất cả các PTH được suy diễn logic từ F mà mọi quan

hệ trên lược đồ R đều thõa mãn điều kiện sau:

F+ thì không thể thêm được một PTH nào khác ngoài các PTH trong F+

Trang 23

Hoàng Thị Hà 23

02/07/24

Thuật toán tìm bao đóng của tập phụ thuộc hàm F(F+)

Input: Lược đồ quan hệ R (U,F)

Output: F+ là bao đóng của F

 Thuật toán:

Trang 24

 Cho lược đồ quan hệ R(A,B,C) với

F = {AB → C,C → B}

 Hãy tính F+

Trang 25

Hoàng Thị Hà 25

02/07/24

B1: Các tập con của U

Trang 26

B2: Tìm bao đóng của tất cả các tập con của R

Trang 27

Hoàng Thị Hà 27

02/07/24

V Phủ của các tập phụ thuộc hàm

V.1 Hai tập phụ thuộc hàm tương đương

Định nghĩa: Cho F và G là tập các PTH trên tập

thuộc tính U Ta nói F và G là tương đương nếu F+ = G+ ( F phủ G hay G phủ F) Ký hiệu là F  G

Trang 28

Thuật toán xác định F và G có tương đương không

 Bước 1: Với mỗi PTH XY của F ta xác định xem XY có là thành viên của G không?

 Bước 2: Với mỗi PTH XY của G ta xác định

xem XY có là thành viên của F không?

 Nếu cả hai bước trên đều đúng thì F  G

Trang 30

V.2 Phủ tối thiểu của một tập phụ thuộc hàm (minimal cover):

 Tập phụ thuộc hàm F là tối thiểu nếu:

có một thuộc tính.

của X sao cho F\ {X → Y}{Z→Y}tương đương với F.

Trang 31

Hoàng Thị Hà 31

02/07/24

Tập phụ thuộc hàm không dư thừa

 Cho F là một tập phụ thuộc hàm, ta nói F là

không dư thừa nếu không tồn tại một phụ thuộc hàm X → Y trong F , sao cho F\ X → Y tương

đương với F

Trang 32

Thuật toán tìm tập phụ thuộc hàm F không

dư thừa

 Giả sử F={ X i→ Yi }i=1,n

 Lần lượt xét các phụ thuộc hàm X → Y của F để tính các tập F0, F1, F2, …, Fn theo các bước

sau:

 - Bước 0: F0 = F

 - Bước i: Tính Fi từ Fi-1 theo công thức:

Fi-1, ngược lại ta đặt Fi = Fi-1.

không dư thừa.

Trang 33

Hoàng Thị Hà 33

02/07/24

Ví dụ

1 Cho R(A,B,C) F={AB→C; B→C}

2 Cho R(A,B,C,D) F = {A → BC,B → C,AB → D}

Trang 34

Thuật toán loại khỏi F các PTH có vế trái dư thừa

 Bước 1: Lần lượt thực hiện bước 2 cho các PTH

X → Y thuộc F

 Bước 2: Với mọi tập con thật sự X’  của X nếu

X’ → Y F+ thì thay X→ Y bằng X’ → Y thực hiện lại bước 2

Trang 35

F ≡ {A → BC,B → C,A → D}

Trang 36

Thuật toán loại khỏi F các PTH dư thừa

 Bước 1: Lần lượt xét các PTH X → Y thuộc F

Bước 2: Nếu X → Y là thành viên của F - {X → Y}

thì loại bỏ X → Y khỏi F

 Bước 3: Thực hiện bước 2 cho các PTH còn lại

của F

Trang 37

Hoàng Thị Hà 37

02/07/24

Chú ý

 Từ một tập PTH F ta luôn tìm được ít nhất một

PTH Ftt, nếu thứ tự loại bỏ các PTH trong F là

khác nhau thì ta thu được các Ftt khác nhau

Trang 38

VD:

Trang 39

Hoàng Thị Hà 39

02/07/24

Ví dụ

Trang 40

VI Khóa của một lược đồ quan hệ

 Định nghĩa: Cho một lược đồ quan hệ R(U) và

một tập PTH F, K là tập con của U Ta nói K là

khóa của quan hệ R(U) nếu:

 K + = U

Tập thuộc tính S được gọi là siêu khóa nếu: S K

Thuộc tính A được gọi là thuộc tính khóa nếu A thuộc bất kỳ khóa nào của R(U), ngược lại A được gọi là thuộc tính

không khóa

Chú ý: Một lược đồ quan hệ có thể có nhiều khóa và

thuộc tính không khóa có thể bằng rỗng

Trang 41

 Bước i: Ki = * Ki-1\{A} nếu Ki-1\{A} ->U

* Ngược lại ,K i = K i-1

Đặt K=K n

Trang 43

Hoàng Thị Hà 43

02/07/24

Ví dụ 2

 Cho sơ đồ quan hệ R(ABCDEG), F={AB→C,

C→A, BC→D, ACD→B, D→EG,

BE→C,CG→BD, CE→AG}

 Hãy tìm một khóa tối thiểu của R

Trang 44

Lưu ý

 Thuật toán tìm khóa trên chỉ nên sử dụng trong trường hợp tìm một khóa

Trang 47

Hoàng Thị Hà 47

02/07/24

Trang 48

 Vậy, lược đồ trên có hai khóa là {C,S} và {S,Z}

 Nhận xét:

phép duyệt để tìm ra tất cả các tập con của U là không

hiệu quả Do vậy, cần thu hẹp không gian duyệt

Trang 49

Hoàng Thị Hà 49

02/07/24

Thuật toán cải tiến

 Trước hết cần xét một số khái niệm:

 Tập thuộc tính nguồn(TN) là tập tất cả các thuộc tính chỉ xuất hiện ở vế trái mà không xuất hiện ở

vế phải của các PTH và những thuộc tính không xuất hiện ở cả vế trái và vế phải của các PTH

 Tập thuộc tính đích(TD) là tập tất cả các thuộc

tính chỉ xuất hiện ở vế phải mà không xuất hiện ở

vế tráicủa các PTH

 Tập thuộc tính trung gian(TG) là tập tất cả các

thuộc tính xuất hiện ở cả 2 vế của các PTH

Trang 50

Hệ quả

 Nếu K là khóa của R(U) thì

TN ⊆ K và TD ∩ K =

Trang 51

Hoàng Thị Hà 51

02/07/24

Chứng minh hệ quả

Trang 52

Thuật toán tìm tất cả các khóa của R(U)

Input: R(U,F)

Output: Tập tất cả các khóa của R(U)

Thuật toán:

Trang 53

Hoàng Thị Hà 53

02/07/24

Thuật toán

Trang 56

 Vậy tập các khóa là {S,C} và {S,Z}

Trang 57

Hoàng Thị Hà 57

02/07/24

Bài tập

Trang 58

Bài tập(cont)

Trang 59

Hoàng Thị Hà 59

02/07/24

Bài tập (Cont)

Trang 60

Bài tập (cont)

Trang 61

Hoàng Thị Hà 61

02/07/24

Trang 62

Bài tập (cont)

Trang 63

Hoàng Thị Hà 63

02/07/24

VII CHUẨN HÓA CÁC LƯỢC ĐỒ QUAN HỆ (normal

forms for relation schemes)

Trang 65

Hoàng Thị Hà 65

02/07/24

TẠI SAO PHẢI CHUẨN HÓA LƯỢC ĐỒ

QUAN HỆ?

Xét một số khái niệm sau:

Toàn vẹn dữ liệu: Tất cả các dữ liệu trong Database là phù hợp

Dư thừa dữ liệu: Dữ liệu bị lặp lại trong Database.

Vì vậy, mục đích của chuẩn hóa các lược đồ quan hệ là tránh sự dư thừa dẫn đến sự sai sót của dữ liệu

Trang 66

I Định nghĩa các dạng chuẩn

1. Dạng chuẩn 1NF: Một lược đồ quan hệ R được

gọi là ở dạng chuẩn 1 (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ố(hay các thuộc tính của mọi bộ đều mang giá trị đơn)

không được chứa các thuộc tính có thể xuất hiện nhiều lần đối với cùng một kiêủ thực thể.

Trang 67

B

D

C

B

Trang 70

Mặc dù cách giải quyết này có cải tiến nhưng

sẽ gặp phải một số vấn đề:

student_no không thể làm primary key vì bị lặp lại

Vì vậy phải tìm một khóa mới, trong trường hợp này

nó phải là khóa phức- có nhiều hơn một thuộc tính

Khóa mới là student_nosubject.

Nhưng dữ liệu lại bị lặp lại nhiều, dư thừa dữ liệu ->

việc xử lý dữ liệu có thể sai sót Mà sự dư thừa dữ liệu lại là nguyên nhân chính gây nên sự dị thường của dữ liệu mỗi khi thực hiện các thao tác chèn, xóa, và cập nhật dữ liệu.

1NF

Trang 71

Hoàng Thị Hà 71

02/07/24

1NF

 Dị thường khi thêm bộ: Ta không thể thêm một

sinh viên mới vào database nếu như sinh viên đó chưa tham gia học môn nào(vì ta không thể bỏ

trống trường Subject)

 Dị thường khi cập nhật dữ liệu

 Dị thường khi xóa bộ

Trang 72

Vậy phải làm thế nào?

 Ta sẽ phải chia bảng Student ban đầu thành 2

bảng, khóa chính trong quan hệ ban đầu có trong

cả 2 quan hệ:

Trang 74

Trường Student_no sẽ liên kết hai bảng Sinh

viên và điểm, giúp ta tìm được các thông tin về

các môn học cùng với điểm các môn học của các

sinh viên.Trong bảng Diem trường Student_no

sẽ làm khóa ngoại lai

Trang 75

nằm trong quan hệ Student và không nằm trong quan hệ

Record cho đến khi sinh viên này sinh viên này học ít

nhất một môn

Khi xóa: Ta có thể xóa tất cả các bản ghi trong bảng Diem nhưng sinh viên có mã student 960145 vẫn còn tồn

tại trong bảng Student

Khi update dữ liệu

Trang 76

Dạng chuẩn 2NF

 2NF là dạng chuẩn chặt hơn dạng chuẩn 1NF

Một quan hệ là ở 2NF nếu và chỉ nếu nó ở dạng 1NF và mỗi thuộc tính không khóa đều phụ thuộc hàm đầy đủ vào

khóa chính.

Nhận xét: Nếu quan hệ ở 1NF và có khóa chỉ là một

thuộc tính thì nó đã tồn tại ở 2NF.

Trang 78

Xét quan hệ Student với các thuộc tính sau:

address, course_name, grade)

Trang 79

Hoàng Thị Hà 79

02/07/24

2NF

Trong quan hệ trên ta nhận thấy:

student_no student_name, address

student_no không xác định course_name

course_no course_name, nhưng không xác định

student_name, và address

PTH sau:

Trang 80

Sơ đồ trên cho thấy các thuộc tính không khóa của

của quan hệ Student liên quan với các thuộc tính khóa

Một mũi tên áp dụng cho một PTH, ngược lại không áp dụng cho PTHStudent

Student

student_no course_no student_name address course_name grade

Trang 81

Hoàng Thị Hà 81

02/07/24

2NF

Vậy, quan hệ trên không ở 2NF

Ta sẽ chia quan hệ trên thành 3 quan hệ:

Quan hệ Student_detail với các thuộc tính mà chỉ có

thuộc tính student_no làm khóa chính

Quan hệ thứ hai là Course bao gồm các thuộc tính chỉ PTH vào thuộc tính course_no, trong quan hệ này khóa chính là course_no.

Thuộc tính grade PTH vào cả hai thuộc tính là khóa của

2 quan hệ trên (student_no, course_no), vì vậy tách

thành quan hệ riêng bao gồm các thuộc tính

student_no, course_no và grade

Trang 83

Hoàng Thị Hà 83

02/07/24

2NF

Với cách chia trên ta nhận thấy, trong các quan hệ

mới tất cả các thuộc tính sẽ PTH đầy đủ vào khóa

chính Vì xậy, các quan hệ này đều là ở 2NF.

Trang 84

Dạng chuẩn 3NF

 Dạng chuẩn 3NF là một dạng chuẩn chặt, trong dạng chuẩn này đã loại bỏ được tất cả các dị

thường xảy ra trong DataBase

 Định nghĩa:Một quan hệ là ở 3NF nếu và chỉ nếu

nó ở 2NF và mọi thuộc tính không khóa đều PTH trực tiếp vào khóa chính(hay không có thuộc tính không khóa này lại PTH vào thuộc tính không

khóa khác)

 Nhận xét: Nếu một quan hệ ở 2NF và không

có hoặc có một thuộc tính không khóa thì nó sẽ tồn tại ở 3NF

Trang 85

Theo quan hệ trên ta nhận thấy address phụ thuộc vào giá

trị trong cột manager Vì vậy, manager  address

project_no manager address p1 Black, B 32 High Street p2 Smith, J 11 New street p3 Black, B 32 High Street p4 Black, B 32 High Street p5 Thomas, J 69 Back Street

Project

Trang 86

Ví dụ 1

Trong sơ đồ trên xuất hiện sự dư thừa của dữ liệu Ta thấy địa chỉ của manager vị lặp lại nếu như một

manager tham gia nhiều hơn một project

 Để loại bỏ sự dư thừa này ta phải tách quan hệ trên thành 2

quan hệ:

 Một quan hệ bao gồm các thuộc tính mà có PTH trực tiếp vào khóa chính

 Một quan hệ bao gồm các thuộc tính còn lại

Vậy, chia quan hệ Project thành Project và Manager

Quan hệ Manager có khóa chính là manager

Khóa chính ban đầu trở thành thuộc tính khóa trong

quan hệ Projects mới.

Trang 87

Hoàng Thị Hà 87

02/07/24

Example - 3

Bây giờ, ta chỉ cần lưu trữ địa chỉ một lần

project_no manager manager address p1 Black, B Black, B 32 High Street p2 Smith, J Smith, J 11 New street p3 Black, B Thomas, J 69 Back Street p4 Black, B

p5 Thomas, J

Trang 88

Tóm tắt_1

Một quan hệ ở 1NF nếu và chỉ nếu toàn bộ các miền

giá trị của các thuộc tính trong quan hệ đều chỉ chứa các giá trị nguyên tố(các giá trị không thể phân chia

được)

Làm phẳng bảng và thay đổi khóa chính.

Chia quan hệ thành những quan hệ nhỏ hơn, một quan hệ chứa các giá trị lặp và một quan hệ không chúa các giá trị lặp Chú ý, đặt khóa chính vào cả hai quan hệ mới.

Trang 89

Hoàng Thị Hà 89

02/07/24

Tóm tắt- 2

không khóa của nó đều PTH đầy đủ vào khóa chính.

Trang 90

Tóm tắt- 3

không khóa đều PTH trực tiếp vào khóa chính

bỏ các thuộc tính liên quan đến những PTH bị vi phạm

và đặt chúng trong một quan hệ mới

thuộc tính không khóa đều ở 3NF.

Các quan hệ ở dạng chuẩn 3NF rất tốt cho hầu hết các bài toán thiết kế CSDL thực tế Mặc dù vậy, 3NF không dảm bảo rằng tất cả các dị thường đều bị xóa hết.

Trang 91

Hoàng Thị Hà 91

02/07/24

DẠNG CHUẨN Boye-Codd(BCNF)

 Định nghĩa: Một sơ đồ quan hệ R(U) với tập PTH

F được gọi là ở dạng chuẩn Boye – Codd nếu với mọi X→A thuộc F+ và A X thì X chứa một khóa của R

 Xét ví dụ: Cho sơ đồ quan hệ R(C,S,Z), giả sử

trên sơ đồ này có các PTH CS→Z, Z→C Ta

đã biết sơ đồ này có hai khóa tối thiểu là CS và

SZ, như vậy sơ đồ này không có thuộc tính không khóa và ở dạng 3NF, tuy nhiên nó không ở BCNF

do Z→C thuộc F nhưng Z không chứa khóa của R

Trang 92

 Mục đích của BCNF: Loại bỏ sự dư thừa dữ liệu

và tránh các dị thường cập nhật do thao tác thêm

và thao tác xóa Tuy nhiên, dạng chuẩn BCNF

còn có thể loại bỏ được một số dị thường mà

dạng chuẩn 3NF không loại bỏ được

 Ví dụ:

 Định lý: Một quan hệ ở BCNF thì ở 3NF

Trang 93

Hoàng Thị Hà 93

02/07/24

PHÉP TÁCH CÁC SƠ ĐỒ QUAN HỆ

 Giả sử sơ đồ quan hệ R được phân tách thành các sơ đồ con R1, R2,…,Rk và F là các PTH trên R, ta nói phép tách này là không mất mát thông tin nếu R1*R2*…*Rk R

Trang 94

Định lý tách

 Cho R(U),  = {R1(u1), R2(u2)} là phép tách 2

không làm mất thông tin nếu u1u2 u1\u2

hoặc u1u2 u2\u1

 Hệ quả tách:

(Z=U\XY) thì  không làm mất mát thông tin,

Trang 95

thì gán t1[Ri]=t2[Ri], ưu tiên các biến ai

Trang 96

THUẬT TOÁN TÁCH BẢO TOÀN TẬP PHỤ THUỘC

HÀM VỀ DẠNG CHUẨN 3NF.

 Vào: - R(U); Tập phụ thuộc hàm F Không mất

tính tổng quát giả sử F là phủ tối thiểu

 Ra:  - một phép tách bảo toàn tập phụ thuộc

hàm bao gồm 1 tập các sơ đồ con, trong đó mỗi

sơ đồ con đều ở dạng chuẩn 3NF với các phụ

thuộc hàm là hình chiếu của F lên sơ đồ đó

Ngày đăng: 22/12/2016, 13:10

TỪ KHÓA LIÊN QUAN

w