Xét bài toán: quản lý lịch dạy của các giáo viên và lịch học
của các lớp, một trường tổ chức như sau:
Mỗi giáo viên có một mã số duy nhất, trường sẽ tổ chức lưu
thông tin các giáo viên bao gồm: họ và tên giáo viên, số
điện thoại gồm 10 số. Mỗi giáo viên có thể dạy nhiều môn
cho nhiều khoa nhưng chỉ thuộc sự quản lý hành chánh của
một khoa nào
58 trang |
Chia sẻ: lylyngoc | Lượt xem: 1720 | Lượt tải: 2
Bạn đang xem trước 20 trang tài liệu Thiết kế cơ sở dữ liệu - Chương 2: Mô hình dữ liệu Các phụ thuộc dữ liệu, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
ĐH CÔNG NGHỆ THÔNG TIN
Số tiết lý thuyết: 45 tiết
Số tiết thực hành: 30 tiết
1
GVHD: Dương Khai Phong – Email khaiphong@gmail.com
2
Chương 1: Giới thiệu tổng quan
Chương 2: Mô hình dữ liệu và các phụ thuộc dữ liệu
Chương 3: Phương pháp chuẩn hóa Lược đồ CSDL
Chương 4: Lý thuyết đồ thị quan hệ
Chương 5: Thiết kế CSDL ở mức vật lý
Nội dung môn học:
3
Chương 2: Mô hình dữ liệu
Các phụ thuộc dữ liệu
Các khái niệm mô hình dữ liệu (ôn)
Phụ thuộc hàm
Hệ tiên đề Amstrong
Bài toán tìm khóa và Bài toán PTH
4
Chương 2: Mô hình dữ liệu – Phụ thuộc dữ liệu
Các khái niệm mô hình dữ liệu
Xét bài toán: quản lý lịch dạy của các giáo viên và lịch học
của các lớp, một trường tổ chức như sau:
Mỗi giáo viên có một mã số duy nhất, trường sẽ tổ chức lưu
thông tin các giáo viên bao gồm: họ và tên giáo viên, số
điện thoại gồm 10 số. Mỗi giáo viên có thể dạy nhiều môn
cho nhiều khoa nhưng chỉ thuộc sự quản lý hành chánh của
một khoa nào đó.
3. Khóa?
1. Thuộc tính?
2. Quan hệ?
4. Bộ - Phép chiếu?
5
Chương 2: Mô hình dữ liệu – Phụ thuộc dữ liệu
Các khái niệm mô hình dữ liệu
1. Thuộc tính
2. Quan hệ
4. Bộ - Phép chiếu
3. Khóa
6
Chương 2: Mô hình dữ liệu – Phụ thuộc dữ liệu
Các khái niệm mô hình dữ liệu
Xét bài toán: quản lý lịch dạy của các giáo viên và lịch học
của các lớp, một trường tổ chức như sau:
Mỗi giáo viên có một mã số duy nhất, trường sẽ tổ chức lưu
thông tin các giáo viên bao gồm: họ và tên giáo viên, số
điện thoại gồm 10 số. Mỗi giáo viên có thể dạy nhiều môn
cho nhiều khoa nhưng chỉ thuộc sự quản lý hành chánh của
một khoa nào đó.
GIAOVIEN
o
o
o
o
o
o
MAGV
HO
TEN
SODIENTHOAI
TENMONHOC
TENKHOA
Characters (4)
Characters (50)
Characters (20)
Characters (10)
Characters (50)
Characters (50)
Thuộc tính
Quan hệ
7
Chương 2: Mô hình dữ liệu – Phụ thuộc dữ liệu
Các khái niệm mô hình dữ liệu
1. Thuộc tính (Attribute) là thông tin đặc thù của mỗi đối tượng được quản lý -
Thuộc tính đươc xác đỉnh bởi:
- Tên gọi (ví dụ TenSV, TenGV,..)
- Kiểu dữ liệu (Type): số, văn bản, Boolean...
- Miền giá trị (Domain): Ký hiệu MGT(A)
GIAOVIEN
o
o
o
o
o
o
MAGV
HO
TEN
SODIENTHOAI
TENMONHOC
TENKHOA
Characters (4)
Characters (50)
Characters (20)
Characters (10)
Characters (50)
Characters (50)
MAGV HO TEN SODT TENMH TENKHOA
GV01 Nguyen A 123 CSDL HTTT
GV02 Tran B 456 THĐC CNPM
GV02 Le C 789 Mạng MMT
GV01 Nguyen A 123 TKCSDL HTTT
8
Chương 2: Mô hình dữ liệu – Phụ thuộc dữ liệu
Các khái niệm mô hình dữ liệu
2. Quan hệ (Relation) Một quan hệ Q được định nghĩa trên một tập thuộc tính {A1,
A2, .. , An} là một sự biểu diễn tập đối tượng cớ chung các thuộc tính.
- Ký hiệu: Q(A1, A2, .. , An)
- Ký hiệu: Q+ dùng biểu diễn tập thuộc tính {A1, A2, .. , An}
- Mỗi quan hệ Q đều kèm theo một tân từ IIQII dùng để mô tả mối liên hệ ngữ
nghĩa của các thuộc tính trong Q.
Ví du: KetOuaHTYMSSV. MSMon. HocKy, DiemLl, DiemL2)
Tân từ: Mỗi môn học (MSMon) trong một học kỳ (HocKy) sinh viên (MSSV) được thi
tối đa 2 lần (DiemLl, DiemL2).
GIAOVIEN
o
o
o
o
o
o
MAGV
HO
TEN
SODIENTHOAI
TENMONHOC
TENKHOA
Characters (4)
Characters (50)
Characters (20)
Characters (10)
Characters (50)
Characters (50)
MAGV HO TEN SODT TENMH TENKHOA
GV01 Nguyen A 123 CSDL HTTT
GV02 Tran B 456 THĐC CNPM
GV02 Le C 789 Mạng MMT
GV01 Nguyen A 123 TKCSDL HTTT
9
Chương 2: Mô hình dữ liệu – Phụ thuộc dữ liệu
Các khái niệm mô hình dữ liệu
3. Bộ (Tuple) Một bộ q của quan hệ Q(A1, A2,..,An) là một tổ hợp giá trị (a1, a2,..,an)
thoả 2 điều kiện:
(1) Ai Q
+, ai MGT(Ai)
(2) Tân từ IIQ(a1, a2,..,an) II phải được thoả
Ví dụ: quan hệ GIAOVIEN thì có các bộ
q1=(GV01, Nguyen, A, 123, CSDL, HTTT)
* Thể hiện (instance) của quan hệ Q, ký hiệu TQ, là một tập các bộ của Q
TQ = { q= (a1, a2,..,an) / ai MGT(Ai), IIQ(q)ll = TRUE }
GIAOVIEN
o
o
o
o
o
o
MAGV
HO
TEN
SODIENTHOAI
TENMONHOC
TENKHOA
Characters (4)
Characters (50)
Characters (20)
Characters (10)
Characters (50)
Characters (50)
MAGV HO TEN SODT TENMH TENKHOA
GV01 Nguyen A 123 CSDL HTTT
GV02 Tran B 456 THĐC CNPM
GV02 Le C 789 Mạng MMT
GV01 Nguyen A 123 TKCSDL HTTT
10
Chương 2: Mô hình dữ liệu – Phụ thuộc dữ liệu
Các khái niệm mô hình dữ liệu
4. Siêu khóa (Super key): siêu khóa trên quan hệ Q là một tập thuộc tính S Q+
nếu mỗi giá trị của S có thể xác định duy nhất một bộ của Q
q1, q2 TQ, q1.S = q2.S thì q1 = q2
* Khóa chỉ định (Candidate Key): hay khóa nội của Q là một siêu khóa ít thuộc
tính nhất, không chứa bất kỳ một siêu khóa nào.
* Thuộc tính khóa và thuộc tính không khóa: các thuộc tính tham gia vào khóa
gọi là thuộc tính khóa, các thuộc tính không tham gia vào khóa gọi là các thuộc tính
không khóa.
GIAOVIEN
o
o
o
o
o
o
MAGV
HO
TEN
SODIENTHOAI
TENMONHOC
TENKHOA
Characters (4)
Characters (50)
Characters (20)
Characters (10)
Characters (50)
Characters (50)
MAGV HO TEN SODT TENMH TENKHOA
GV01 Nguyen A 123 CSDL HTTT
GV02 Tran B 456 THĐC CNPM
GV02 Le C 789 Mạng MMT
GV01 Nguyen A 123 TKCSDL HTTT
11
Chương 2: Mô hình dữ liệu – Phụ thuộc dữ liệu
Các khái niệm mô hình dữ liệu
4. Siêu khóa (Super key): siêu khóa trên quan hệ Q là một tập thuộc tính S Q+
nếu mỗi giá trị của S có thể xác định duy nhất một bộ của Q
q1, q2 TQ, q1.S = q2.S thì q1 = q2
* Khóa chỉ định (Candidate Key): hay khóa nội của Q là một siêu khóa ít thuộc
tính nhất, không chứa bất kỳ một siêu khóa nào.
* Thuộc tính khóa và thuộc tính không khóa: các thuộc tính tham gia vào khóa
gọi là thuộc tính khóa, các thuộc tính không tham gia vào khóa gọi là các thuộc tính
không khóa.
GIAOVIEN
o
o
o
o
o
o
MAGV
HO
TEN
SODIENTHOAI
TENMONHOC
TENKHOA
Characters (4)
Characters (50)
Characters (20)
Characters (10)
Characters (50)
Characters (50)
MAGV HO TEN SODT TENMH TENKHOA
GV01 Nguyen A 123 CSDL HTTT
GV02 Tran B 456 THĐC CNPM
GV02 Le C 789 Mạng MMT
GV01 Nguyen A 123 TKCSDL HTTT
12
Chương 2: Mô hình dữ liệu – Phụ thuộc dữ liệu
Các khái niệm mô hình dữ liệu
Một CSDL là 1 tập hợp các quan hệ, Ký hiệu: 𝑐 = {𝑄𝑖}𝑖=1
𝑡
Phép chiếu của một bộ q lên tập thuộc tính X Q+ là phép trích ra từ bộ q các giá
trị tương ứng với tập thuộc tính X
Ký hiẽu: q.x hay q[X]
Ví dụ: q.[MAGV, TEN, TENMH] = {(GV01,A,CSDL), (GV02,B,THĐC),…}
Chiếu một quan hệ Q lên tập thuộc tính X Q+ sẽ tạo thành một quan hệ Q' có
tập thuộc tính X và TQ'={q' / q TQ q.X = q'}
Ký hiệu: x(Q) hay Q[X].
GIAOVIEN
o
o
o
o
o
o
MAGV
HO
TEN
SODIENTHOAI
TENMONHOC
TENKHOA
Characters (4)
Characters (50)
Characters (20)
Characters (10)
Characters (50)
Characters (50)
LOP
o
o
MALOP
TENLOP
Characters (4)
Characters (40)
HOCVIEN
o
o
o
o
o
MAHV
HOTEN
NGSINH
CMND
MALOP
Characters (4)
Characters (50)
Date
Characters (11)
Characters (4)DATABASE
13
Chương 2: Mô hình dữ liệu
Các phụ thuộc dữ liệu
Các khái niệm mô hình dữ liệu (ôn)
Phụ thuộc hàm
Hệ tiên đề Amstrong
Bài toán tìm khóa và Bài toán PTH
14
Chương 2: Mô hình dữ liệu – Phụ thuộc dữ liệu
Phụ thuộc hàm
1. Xét bài toán: quản lý lịch bay các chuyến bay như sau
PHICONG MAYBAY NGAYKH GIOKH
Cushing 83 9/8 10:15a
Cushing 116 10/8 1:25p
Clark 281 8/8 5:50a
Clark 301 12/8 6:35p
Clark 83 11/8 10:15a
Chin 83 13/8 10:15a
Chin 116 12/8 1:25p
Copely 281 9/8 5:50a
Copely 281 13/8 5:50a
Copely 412 15/8 1:25p
Quan hệ PhanCong diễn tả phi công
nào lái máy bay nào và máy bay
khởi hành vào thời gian nào. Không
phải sự phối hợp bất kỳ nào giừa phi
công, máy bay và ngày giờ khởi
hành cũng đều được chấp nhận mà
chúng có các điều kiện ràng buộc qui
định sau:
+ Mỗi máy bay có một giờ khởi hành
duy nhất.
+ Nếu biết phi công, biết ngày giờ
khởi hành thì biết được máy bay đo
phi công ấy lái.
+ Nếu biết máy bay, biết ngày khởi
hành thì biết phi công lái chuyến bay
đó.
PhanCong
CÁC RÀNG BUỘC NÀY ĐƯỢC GỌI
LÀ PHỤ THUỘC HÀM
15
Chương 2: Mô hình dữ liệu – Phụ thuộc dữ liệu
Phụ thuộc hàm
1. Xét bài toán: quản lý lịch bay các chuyến bay như sau
+ Mỗi máy bay có một giờ khởi hành duy nhất.
+ Nếu biết phi công, biết ngày giờ khởi hành thì biết được máy bay đo phi công
ấy lái.
+ Nếu biết máy bay, biết ngày khởi hành thì biết phi công lái chuyến bay đó.
Được phát biểu lại như sau:
+ MAYBAY xác định GIOKH.
+ {PHICONG,NGAYKH,GIOKH} xác định MAYBAY.
+ {MAYBAY,NGAYKH} xác định PHICONG.
+ GIOKH phụ thuộc hàm vào MAYBAY.
+ MAYBAY phụ thuộc hàm vào {PHICONG,NGAYKH,GIOKH}.
+ PHICONG phụ thuộc hàm vào {MAYBAY,NGAYKH}.
Và được ký hiệu:
+ {MAYBAY} GIOKH.
+ {PHICONG,NGAYKH,GIOKH} MAYBAY.
+ {MAYBAY,NGAYKH} PHICONG.
16
Chương 2: Mô hình dữ liệu – Phụ thuộc dữ liệu
Phụ thuộc hàm
2. Định nghĩa:
Cho một quan hệ Q(X, Y, Z) với X,Y, Z là các tập thuộc tính
con của Q+ và với X,Y khác rỗng.
Mọi thể hiện TQ của Q đều thoả phụ thuộc hàm X Y nếu:
q1,q2 TQ: q1.x = q2.x thì q1.Y = q2.Y
Khi đó ta nói: X xác định hàm Y hay Y phụ thuộc hàm vào X
Quy ước:
Nếu Y không phụ thuộc hàm vào X thì ta ký hiệu: X Y
X Y là phụ thuộc hàm hiển nhiên nếu Y X
17
Chương 2: Mô hình dữ liệu – Phụ thuộc dữ liệu
Phụ thuộc hàm
2. Định nghĩa:
Tập phụ thuộc hàm của một quan hệ:
Tập hợp các PTH không hiển nhiên của Q, ký hiệu là FQ
FQ = { fi : XY xác định trên Q}
Qui ước: chỉ mô tả các phụ thuộc hàm không hiển nhiên
trong tập F.
Ví dụ: Xét quan hệ Giảng dạy: GD(MsGV, Hoten, MsMH,
TenMH, Phòng, Giờ)
Tập phụ thuộc hàm của GD được cho như sau:
F={f1:MsGVHoten ; f2:MsMHTenMH;
f3: Phong,Gio MSMH; f4: MsGV,GiờPhòng}
18
Chương 2: Mô hình dữ liệu – Phụ thuộc dữ liệu
Phụ thuộc hàm
3. Ý nghĩa của PTH:
PTH là công cụ dùng để biểu diễn một cách hình thức mối
quan hệ dữ liệu của các thuộc tính bên trong CSDL.
Thông qua cách biểu diễn PTH, xác định khóa của quan hệ
vai trò quan trọng trong các phương pháp thiết kế một
lược đồ quan niệm của CSDL:
• Tạo ra những quan hệ độc lập.
• Giảm thiểu sự trùng lắp, dư thừa dữ liệu lưu trữ giảm
bớt các sai sót khi cập nhật dữ liệu của người sử dụng.
Đánh giá chất lượng bản thiết kế CSDL.
ĐH CÔNG NGHỆ THÔNG TIN
19
20
Chương 2: Mô hình dữ liệu – Phụ thuộc dữ liệu
Bài 1
Cho quan hệ R (A, B, C, D) như và thể hiện
R như hình bên, cho biết PTH nào liệt kê dưới
đây thỏa quan hệ:
a) f1: AA
b) f2: AB
c) f3: AC
d) f4: ACC
e) f5: AD
f) f6: DA
R A B C D
a 1 X 2
a 1 Y 2
b 2 X 1
b 2 Y 1
21
Chương 2: Mô hình dữ liệu – Phụ thuộc dữ liệu
Bài 2
Cho lược đồ quan hệ PHANCONG(PHICONG,MAYBAY, NGAYKH,
GIOKH) liệt kê các tập con có thể có của tập thuộc tính:
PHANCONG+={PHICONG,MAYBAY, NGAYKH, GIOKH} .
Hướng dẫn giải:
Nhận xét số tập con có thể có của Q+= {A1, A1,.. ,An}là 2
n
PHICONG MAYBAY NGAYKH GIOKH
{PHICONG} {MAYBAY} {NGAYKH} {GIOKH}
{PHI CONG,MAYBAY} {PHICONG,NGAYKH} {PHICONG,GIOKH}
{MAYBAY,NGAYKH} {MAYBAY,GIOKH}
{PHI CONG,MAYBAY,NGAYKH} {PHI CONG,MAYBAY,GIOKH}
{NGAYKH,GIOKH}
{PHICONG,NGAYKH,GIOKH}
{MAYBAY,NGAYKH,GIOKH}
{PHI CONG,MAYBAY,NGAYKH,GIOKH}
22
Chương 2: Mô hình dữ liệu – Phụ thuộc dữ liệu
Bài 3
Cho lược đồ quan hệ PHANCONG(PHICONG,MAYBAY, NGAYKH,
GIOKH) liệt kê các PTH có thể có của PHANCONG.
Hướng dẫn giải:
o Nhận xét số tập con có thể có của Q+= {A1, A1,.. ,An}là 2
n
o Ứng với mỗi tập con này lại sẽ có 2n PTH có thể có.
Số PTH có thể có: 2n x 2n = 2n x n
PHICONG MAYBAY NGAYKH GIOKH
{PHICONG} {MAYBAY} {NGAYKH} {GIOKH}
{PHI CONG,MAYBAY} {PHICONG,NGAYKH} {PHICONG,GIOKH}
{MAYBAY,NGAYKH} {MAYBAY,GIOKH}
{PHI CONG,MAYBAY,NGAYKH} {PHI CONG,MAYBAY,GIOKH}
{NGAYKH,GIOKH}
{PHICONG,NGAYKH,GIOKH}
{MAYBAY,NGAYKH,GIOKH}
{PHI CONG,MAYBAY,NGAYKH,GIOKH}
Tập thuộc tính con rỗng sẽ có 24 PTH
Tập thuộc tính con {PHICONG} sẽ có 24 PTH
…
Có 24 x 24 =
256 PTH
23
Chương 2: Mô hình dữ liệu – Phụ thuộc dữ liệu
Bài 3
Cho lược đồ quan hệ PHANCONG(PHICONG,MAYBAY, NGAYKH,
GIOKH) liệt kê các PTH có thể có của PHANCONG.
Hướng dẫn giải:
PHICONG MAYBAY NGAYKH GIOKH
{PHICONG} {MAYBAY} {NGAYKH} {GIOKH}
{PHI CONG,MAYBAY} {PHICONG,NGAYKH} {PHICONG,GIOKH}
{MAYBAY,NGAYKH} {MAYBAY,GIOKH}
{PHI CONG,MAYBAY,NGAYKH} {PHI CONG,MAYBAY,GIOKH}
{NGAYKH,GIOKH}
{PHICONG,NGAYKH,GIOKH}
{MAYBAY,NGAYKH,GIOKH}
{PHI CONG,MAYBAY,NGAYKH,GIOKH}
Liệt kê:
1.
2. {PHICONG}
..
16. {PHI CONG,MAYBAY,NGAYKH,GIOKH}
Tương tự cho {PHICONG}, {MAYBAY}, {MAYBAY,PHICONG},…
Chương 2: Mô hình dữ liệu – Phụ thuộc dữ liệu
Bài 4
a) Cho lược đồ quan hệ Q(A,B,C) liệt kê các tập con của Q+ và các PTH
có thể có của Q.
b) Cho lược đồ quan hệ Q(A,B,C,D) liệt kê các tập con của Q+ và các
PTH có thể có của Q.
Bài 5
Cho quan hệ R (A, B, C, D, E) và thể
hiện R như hình bên, cho biết PTH nào liệt
kê dưới đây thỏa quan hệ:
a) f1: AD
b) f2: ABD
c) f3: CBDE
d) f4: EA
e) f5: AE
R A B C D E
a1 b1 c1 d1 e1
a1 b2 c2 d2 e1
a2 b1 c3 d3 e1
a2 b1 c4 d3 e1
a3 b2 c5 d1 e1
25
Chương 2: Mô hình dữ liệu
Các phụ thuộc dữ liệu
Các khái niệm mô hình dữ liệu (ôn)
Phụ thuộc hàm
Hệ tiên đề Amstrong
Bài toán tìm khóa và Bài toán PTH
26
Chương 2: Mô hình dữ liệu – Phụ thuộc dữ liệu
Hệ tiên đề Amstrong
1. Bài toán:
Cho lược đồ quan hệ R = {ABCDEGH] và tập PTH
F = {ABD ; BE ; EG ; DEC; CDGH; HA; BG}
PTH ABH có
suy diễn được
từ tập F
BE
EG
BG: dư thừa
Tập F có tối ưu
chưa?
27
Chương 2: Mô hình dữ liệu – Phụ thuộc dữ liệu
Hệ tiên đề Amstrong
Cho lược đồ quan hệ Q và X, Y, Z, W Q+.
Hệ tiên đề Amstrong
Luật dẫn 1: Luật phản xạ Y X X Y
Luật dẫn 2: Luật thêm vàoNếu X Y và Z W thì X, W Y, Z
Luật dẫn 3: Luật bắc cầu Nếu X Y và Y Z thì X Z
Một số luật dẫn suy từ Hệ tiên đề Amstrong
Luật dẫn 4: Luật phân rã Nếu X Y, Z thì X Y và X Z
Luật dẫn 5: Luật hội Nếu X Y và X Z thì X Y, Z
Luật dẫn 6: Luật bắc cầu giả Nếu X Y và Y, Z W thì X, Z W
2. Phát biểu hệ tiên đề Amstrong:
28
Chương 2: Mô hình dữ liệu – Phụ thuộc dữ liệu
Hệ tiên đề Amstrong
Định nghĩa: Cho một quan hệ Q có tập phụ thuộc hàm FQ
Bao đóng của FQ, ký hiệu FQ
+
, là tập hợp tất cả các PTH có
thể suy diễn từ FQ dựa vào hệ luật dẫn Amstrong.
Ký hiệu FQ
+
= { XY | F |= X Y}
Ví dụ: Q(A,B,C) và FQ = {f1: AB ; f2: B C}. Tính FQ
+?
3. Bao đóng của tập phụ thuộc hàm:
𝐹𝑄
+ = { A A ; A B ; A C ; A AB ; A AC ; A BC ; AABC ;
B B ; B C; B BC ;
C C ;
AB AB ; ABA ; ABB ; ABC ; AB AC ; ABBC ; ABABC ;
ACA ; ACB ; ACC ; ACAB ; ACAC ; ACBC; ACABC;
BCB ; BCC ; BCBC ;
ABCA ; ABCB ; ABCC ; ABCAB ; ABCAC ; ABCBC;
ABCABC ; }
29
Chương 2: Mô hình dữ liệu – Phụ thuộc dữ liệu
Hệ tiên đề Amstrong
Nhận xét tính ứng dụng của bao đóng tập PTH:
Xác định được tập các thuộc tính phụ thuộc vào một
tập thuộc tính X cho trước.
Kiểm tra một PTH nào đó có thuộc FQ
+ ?
3. Bao đóng của tập phụ thuộc hàm:
Tips: Việc xây dựng bao đóng FQ
+ tốn rất nhiều thời gian.
Để giải quyết các bài toán trên người ta dựa vào 1 khái
niệm mới, Bao đóng của một tập thuộc tính.
Các bước thực hiện:
B1: Tìm tất cả các tập con của Q+.
B2: Tìm tất cả các phụ thuộc hàm của Q.
B3: Vận dụng hệ tiên đề Amstrong để xác định FQ
+.
30
Chương 2: Mô hình dữ liệu – Phụ thuộc dữ liệu
Hệ tiên đề Amstrong
Định nghĩa:
Cho 1 LĐQH Q có tập các phụ thuộc hàm FQ={f1, f2,.., fn}
và X Q+. Bao đóng của tập thuộc tính X dựa trên FQ, ký
hiệu XF
+, là tập các thuộc tính phụ thuộc hàm vào X dựa
trên F.
XF
+ = { Y Q+ : X Y F+}
Nhận xét:
X XF
+.
Y XF
+ f: X Y FQ
+
3. Bao đóng của tập thuộc tính:
Dựa vào nhận xét 2 giải quyết bài toán thành viên (bài
toán kiểm tra sự tồn tại của 1 pth) xác định bao đóng của
tập thuộc tính bên vế trái của pth đó.
31
Chương 2: Mô hình dữ liệu – Phụ thuộc dữ liệu
Hệ tiên đề Amstrong
Thuật toán xác định: XF
+
Đầu vào: tập PTH F và tập thuộc tính X trên R.
Begin
XF
+ = X;
Repeat
X' = XF
+
For i:=1 To m Do { m = card(F)}
If VT(fi) XF
+ Then XF
+:= XF
+ VP(fi)
Until ( XF
+ = X');
End;
Ghi chú:
VT(fi): vế trái của phụ thuộc hàm fi
VP(fi): vế phải của phụ thuộc hàm fi
3. Bao đóng của tập thuộc tính:
32
Chương 2: Mô hình dữ liệu – Phụ thuộc dữ liệu
Hệ tiên đề Amstrong
Ví dụ 1:
Cho Q(ABCDEGH) và tập PTH F ={f1:BA ; f2:DACE ;
f3:D H ; f4:GH C; f5:AC D}
a) Tìm bao đóng của tập thuộc tính X1 = {BD}
b) Tìm bao đóng của tập thuộc tính X2 = {BCG}
3. Bao đóng của tập thuộc tính:
Hướng dẫn a:
• X1F
+ = BD
• Do f1: BA X1F
+ = BDA
• Do f2: DACE X1F
+ = BDACE
• Do f3: D H X1F
+ = BDACEH
Vậy X1F
+ = BDACEH
Hướng dẫn b:
• X2F
+ = BCG
• Do f1: BA X2F
+ = BCGA
• Do f5: AC D X2F
+ = BCGAD
• Do f2: DACE X2F
+ = BCGADE
• Do f3: D H X2F
+ = BCGADEH
• Vậy X2F
+ = BCGADEH
33
Chương 2: Mô hình dữ liệu – Phụ thuộc dữ liệu
Hệ tiên đề Amstrong
Ví dụ 2:
Cho Q(ABCDEF) và
F = {f1: ABC ; f2: AED ; f3:BCD ; f4:CE ; f5:EDF}
Kiểm tra AB EF có thuộc vào F+ hay không?
3. Bao đóng của tập thuộc tính:
Hướng dẫn:
• (AB)F
+ = AB
• Do f1: ABC (AB)F
+ = ABC
• Do f3: BCD (AB)F
+ = ABCD
• Do f4: CE (AB)F
+ = ABCDE
• Do f5: EDF (AB)F
+ = ABCDEF
Nhận xét thấy (EF) (AB)F
+ = ABCDEF
Kết luận vậy AB EF có thuộc vào F+.
ĐH CÔNG NGHỆ THÔNG TIN
34
35
Chương 2: Mô hình dữ liệu – Phụ thuộc dữ liệu
Bài 1
Cho F = {ABC ; BD ; CDE ; CEGH ; GA}
a) Chứng minh PTH ABE và ABG được suy diễn từ F
nhờ luật dẫn Amstrong.
b) Tìm bao đóng của (AB).
Bài 2
Cho F = {AD ; ABDE ; CEG ; EH}
Tìm bao đóng của (AB).
Bài 3
Cho F = {ABE ; AGI ; BEI ; EG ; GIH}
a) Chứng minh PTH ABGH được suy diễn từ F nhờ luật
dẫn Amstrong.
b) Tìm bao đóng của (AB).
36
Chương 2: Mô hình dữ liệu – Phụ thuộc dữ liệu
Bài 4:
Cho F = {AD ; ABE ; BIE ; CDI ; EC}
Tìm bao đóng của (AE).
Bài 5:
Cho lược đồ (R,F) với R (ABCDEGH) và F = {ABC ; BD ;
CDE ; CEGH ; GA}
Tìm các chuỗi suy diễn:
a) AB E
b) BG C
c) AB G
Bài 6:
Cho lược đồ (R,F) với R (ABCDEGKIJ) và F = {AGJ ;
ABE ; EG ; BEI ; GIK}
Tìm chuỗi suy diễn: AB GK
37
Chương 2: Mô hình dữ liệu – Phụ thuộc dữ liệu
Bài 7:
Cho lược đồ (R,F) với R (ABCDEG) và F = {ABC ; DEG ;
CA ; BEC ; BCD ; CGBD ; ADCB ; CEAG}
Tìm bao đóng của (AB) và (BD).
Bài 8:
Cho lược đồ (R,F) với R (ABCDE) và F = {AC ; BCD ;
DE ; EA}
Tìm bao đóng của (AB), (BD) và (D).
Bài 9:
Cho lược đồ (R,F) với R (ABCDEG) và F = {BC ; ACD ;
DG ; AGE}
Kiểm tra các PTH sau có thuộc vào F+:
a) ABG
b) BDAD
38
Chương 2: Mô hình dữ liệu
Các phụ thuộc dữ liệu
Các khái niệm mô hình dữ liệu (ôn)
Phụ thuộc hàm
Hệ tiên đề Amstrong
Bài toán tìm khóa và Bài toán PTH
39
Chương 2: Mô hình dữ liệu – Phụ thuộc dữ liệu
Bài toán tìm khóa và Bài toán PTH
1. Bài toán tìm khóa:
Định nghĩa: Cho LĐQH Q và tập PTH FQ={f1,f2,..,fn}
S Q+, S là siêu khóa của Q nếu SQ+ FQ
K Q+, K là khóa chỉ định nếu K là siêu khóa và pth
KQ+ là pth nguyên tố. (Không tồn tại K’ là con thật
sự của K để K’--> Q+)
Nhận xét: Nếu đồ thị biểu diễn của tập pth F không
chứa chu trình thì Q chỉ có duy nhất một khóa.
f1
D
S
I B
Q
Of3 f4
f2
Ví dụ:
Cho (R,F) với R(BDISQO) và tập phụ
thuộc hàm F = {f1: S D ; f2: IS Q ;
f3: I B ; f4: B O}
40
Chương 2: Mô hình dữ liệu – Phụ thuộc dữ liệu
Bài toán tìm khóa và Bài toán PTH
1. Bài toán tìm khóa:
Ý tưởng tìm khóa:
Gọi N là tập thuộc tính nguồn, chỉ chứa thuộc tính không
có bên vế phải của các phụ thuộc hàm.
Gọi M là tập thuộc tính trung gian, chứa các thuộc tính
vừa xuất hiện bên vế phải vừa xuất hiện bên vế trái.
Nếu bao đóng NF
+= Q+ thì N chính là khóa chỉ định của
Q và là khóa duy nhất.
Ngược lại, ta lần lượt hội N với từng tập con của M để
kiểm tra có là khóa chỉ định hay không.
41
Chương 2: Mô hình dữ liệu – Phụ thuộc dữ liệu
Bài toán tìm khóa và Bài toán PTH
1. Bài toán tìm khóa:
Ví dụ: Cho quan hệ Giảng dạy: GD(MsGV, Hoten, MsMH, TenMH,
Phòng, Giờ) và F={f1