CHƯƠNG 5: LÝ THUYẾT THIẾT KẾ CSDL
QUAN HỆ
12/22/16
Hoàng Thị Hà
1
Bài 1: Giới thiệu
I. Đặ t vấn đề
12/22/16
Hoàng Thị Hà
2
Xét ví dụ:
S# SNAME
STATUS CITY P#, PNAM
E
COLOR WEIGH
T
PRICE QTY
S1 A1
17
Paris P1 B1
do
23
100
200
S1 A1
17
Paris P2 B2
Xanh
11
150
300
S2 A2
20
Lon
d
o
n
Xanh
17
150
250
12/22/16
Hoàng Thị Hà
P2 B2
3
Câu hỏi?
Vậy làm thế nào để thiết kế một CSDL cho tốt?
12/22/16
Hoàng Thị Hà
4
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ỏ.
12/22/16
Hoàng Thị Hà
5
Nhận xét (cont)
Nhượ c điểm:
* 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 đó.
* 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ệ.
12/22/16
Hoàng Thị Hà
6
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.
12/22/16
Hoàng Thị Hà
7
Lược đồ VT có thể tách thành 3 lược đồ như
sau
S (S#, SNAME, STATUS, CITY)
P (p#, PNAME, COLOR, WEIGHT, PRICE)
SP (S#, P#, QTY)
12/22/16
Hoàng Thị Hà
8
Nhận xét
Ưu điểm:
Khắc phục được sự dư thừa dữ liệu
Tránh dị thường
Nhượ c điểm:
Biểu diễn câu hỏi phức tạp hơn.
Thời gian và chi phí tính toán các phép tính toán kết nối tăng lên.
12/22/16
Hoàng Thị Hà
9
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 7: Xây dựng mạ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)
12/22/16
Hoàng Thị Hà
10
BÀI 2: PHỤ THUỘC HÀM.
12/22/16
Hoàng Thị Hà
11
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] ).
Ký hiệu: X → Y
Ví dụ: Trong quan hệ NCC ở trên, SID→ SNAME, SID → SNAME,
SID → SADDR
12/22/16
Hoàng Thị Hà
12
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:
A1: Phản xạ(reflexivity): Nếu Y ⊆ X ⊆ U thì X → Y
A2: Tăng trưởng(augmentation): Nếu X → Y, Z ⊆ U thì
XZ → YZ
A3: Bắc cầu (transitivity): Nếu X → Y, Y → Z thì X → Z
12/22/16
Hoàng Thị Hà
13
Định lý:
Hệ tiên đề Amstrong là đúng và đầ y đủ (đã đượ c chứng minh)
12/22/16
Hoàng Thị Hà
14
Từ hệ tiên đề Armstrong suy ra một số luật
sau đây:
Với X,Y, Z, W ⊆ U:
a. Luật hợp (Union rule): Nếu X → Y, X → Z thì X → YZ
b. Luật tựa bắc cầu (pseudotransitivity rule): Nếu X → Y, WY → Z
thì WX → Z
c. Luật tách(decomposition): Nếu X → Y, Z⊆ Y thì X → Z
12/22/16
Hoàng Thị Hà
15
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:
Cách 1: Tính F+ và xem X → Y ∈ F+ hay không?. Như vậy, ta
phải tính F+ , nhưng việc tính F+ là rất khó.
Cách 2: Tính bao đóng của X . Cách thứ 2 này đơn giản hơn so
với cách thức nhất.
12/22/16
Hoàng Thị Hà
16
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+.
Vậy, bao đóng của 1 tập thuộc tính X cho ta biết được các thuộc
tính mà X xác định nó.
12/22/16
Hoàng Thị Hà
17
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 (X +)
F
Thuật toán:Tính liên tiếp X , X , X , …X theo các bướ c sau:
0 1 2
(k)
Bước 1: Đặt X0 = X
Bước 2: Lần lượt xét các phụ thuộc hàm trong F, nếu
Z ∈ F mà Y ⊆ Xi ; A ∉ Xi và A ∈ Z thì Xi+1 = Xi ∪ A.
Bước 3: Nếu Xi+1 = Xi , khi đó ta có: XF+ = Xi+1
12/22/16
Hoàng Thị Hà
Y→
18
Ví dụ
Ví dụ: Cho lượ c đồ R(U, F) , U= {A, B, C, D,E}
F= {A→ BC, C→ DE, E→ A}
Hãy tính C +
F
Đặt X = C
0
X = CDE vì (C→ DE)
1
X = CDEA vì ( E → A)
2
X = CDEAB vì (A→ BC)
3
X =X
4
3
Vậy : C + = CDEAB
F
12/22/16
Hoàng Thị Hà
19
Tính chất của bao đóng
1. Tính phản xạ: X ⊆ X+
2. Tính đơn điệu: Nếu X ⊆ Y thì X+ ⊆ Y+
3. Tính lũy đẳng: X++ = X+
4. (XY)+ ⊇ X+Y+
5. (X+Y)+ = (XY+)+ = (X+Y+)+
6. X → Y ⇔ Y+ ⊆ X+
7. X+ = Y+ ⇔ X → Y và Y → X
12/22/16
Hoàng Thị Hà
20
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 ⊆ F+
Khi ta áp dụng hệ tiên đề Armstrong đối với các PTH trong F+ thì
không thể thêm được một PTH nào khác ngoài các PTH trong F+ .
12/22/16
Hoàng Thị Hà
21
Tính chất :
Tính chất 1: Tính phản xạ: F ⊆ F+
Tính chất 2: Tính đơ n điệu: F, G là hai tập PTH, nếu F ⊆ G thì F+⊆ G+
Tính chất 3: Tính lũy đẳ ng: (F+)+ = F+
Tính chất 4: (F+G)+=(FG+)+=(FG)+
Tính chất 5: F+G+ ⊆ (FG)+
12/22/16
Hoàng Thị Hà
22
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:
Bước1: Tìm tất cả các tập con của U: Xi⊆U
Bước 2: Tìm (Xi)+ với F ban đầu
Bước 3: Dựa vào (Xi)+ đã tìm để suy ra các PTH thuộc F+
12/22/16
Hoàng Thị Hà
23
Cho lượ c đồ quan hệ R(A,B,C) với
Hãy tính F+
12/22/16
Hoàng Thị Hà
F = {AB → C,C → B}
24
B1: Các tập con của U
12/22/16
Hoàng Thị Hà
25