M ở đầ u mục tiêu thiết kế thành phần dữ li u cách thức lưu trữ, cập nhật và khai thác dữ liệ yêu cầu chất lượng chính xác đầy đủ HIỆU QUẢ HOW Ts... Thiết kế thành phần dữ li u Ts.
Trang 1Tr ườ ng Đạ i h ọ c S ư ph ạ m thành ph ố H ồ Chí Minh
Khoa Công ngh ệ thông tin
Phân tích, thi ế t k ế
h ệ th ố ng thông tin
Ch ươ ng 7 : Thi ế t k ế thành ph ầ n D Ữ LI Ệ U
Ts Nguy ễ n An T ế Nguy ễ n Thúy Ng ọ
Ts Ng An T ế - Ng Thúy Ng ọ c [PTTK - HT 3.2011 - 2012 HK1] Ch ươ ng 7: Thi ế t k ế thành ph ầ n D Ữ Ệ 2
M ụ c tiêu
Hiểu rõ những khái niệm cơ bản của mô hình dữ li u quan hệ
Nắm vững phương pháp thiết kế CSDL theo mô hình quan hệ
N ộ i dung
1 Mở đầu
2 Mô hình d ữ li u quan h ệ (tóm t ắ t)
3 Thi ế t k ế thành ph ầ n d ữ li u
1 M ở đầ u
sơ đồ quan niệm DL (E-R)
DỮ LIỆ
m ứ c nh ậ n th ứ c
quan
ni ệ m
lu ậ n lý
t ổ ch ứ c
v t lý
THI Ế T K
PHÂN TÍCH
s ơ đồ
quan h ệ DL (Relational)
t ổ ch ứ c CSDL
Trang 2Ts Ng An T ế - Ng Thúy Ng ọ c [PTTK - HT 3.2011 - 2012 HK1] Ch ươ ng 7: Thi ế t k ế thành ph ầ n D Ữ Ệ 5
1 M ở đầ u
mục tiêu thiết kế thành phần dữ li u
cách thức lưu trữ, cập nhật và khai thác dữ liệ
yêu cầu chất lượng
chính xác
đầy đủ
HIỆU QUẢ
HOW
Ts Ng An T ế - Ng Thúy Ng ọ c [PTTK - HT 3.2011 - 2012 HK1] Ch ươ ng 7: Thi ế t k ế thành ph ầ n D Ữ Ệ 6
N ộ i dung
1 M ở đầ u
2 Mô hình dữ li u quan hệ (tóm tắt)
3 Thi ế t k ế thành ph ầ n d ữ li u
2 Mô hình d ữ li ệ u quan h ệ
các khái niệm cơ bản
thuộc tính (attribute)
b (tuple)
quan hệ (relation), bảng (table)
siêu khóa (superkey)
khóa nội (candidate key), khóa chính (primary key)
khóa ngoại (foreign key)
phụ thuộc hàm (functional dependency)
các dạng chuẩn
d ng chuẩn 1, dạng chuẩn 2, dạng chuẩn 3, dạng chuẩn BCK
2.1 Các khái ni ệ m c ơ b ả n
thuộc tính (attribute)
tên
kiểu dữ liệ
miền giá trị : có chứa thêm giá trị đặc biệt null
ký hiệu
thuộc tính : A1, A2, A3, …
tập hợp các thuộc tính : {A1, A2, A3, … , An} hay A1A2A3…An
miền giá trị c a thuộc tính : MGT(A)
Trang 3Ts Ng An T ế - Ng Thúy Ng ọ c [PTTK - HT 3.2011 - 2012 HK1] Ch ươ ng 7: Thi ế t k ế thành ph ầ n D Ữ Ệ 9
2.1 Các khái ni ệ m c ơ b ả n (tt.)
b (tuple), mẩu tin/bản ghi (record)
vectơ gồm giá trị c a các thuộc tính
ký hiệu
b / mẩu tin : q = (a1, a2, a3, … , an), ai∈ MGT(Ai)
Ts Ng An T ế - Ng Thúy Ng ọ c [PTTK - HT 3.2011 - 2012 HK1] Ch ươ ng 7: Thi ế t k ế thành ph ầ n D Ữ Ệ 10
2.1 Các khái ni ệ m c ơ b ả n (tt.)
quan hệ (relation), bảng (table)
tập hợp các mẩu tin
ký hiệu
quan hệ / bảng : T(A1, A2, A3, … , An)
lưu ý : gộp chung 2 khái niệm “lược đồ” (cấu trúc) và “quan hệ” (dữ
li u)
2.1 Các khái ni ệ m c ơ b ả n (tt.)
siêu khóa (super key)
tập hợp thuộc tính dùng để phân biệt 2 mẩu tin bất kỳ
Ví d ụ : KET_QUA(masv, mamh, lanthi, diem) có 2 siêu khóa
S1 = {masv, mamh, lanthi}, S2 = {masv, mamh, lanthi, diem}
khóa chỉ định / khóa n ộ i (candidate key)
siêu khóa tối tiể
Ví d ụ : KET_QUA(masv, mamh, lanthi)
thuộc tính khóa : không lấy giá trị null
thuộc tính không khóa
khóa chính (primary key) = khóa n ộ i v ớ i ý ngh ĩ a cài đặ t : g ọ i t ắ t là “khóa”
2.1 Các khái ni ệ m c ơ b ả n (tt.)
khóa ngoại (foreign key) Cho 2 quan hệ : 1) T(A1, … , An), P = {A1, … , An}, KT: tập thuộc tính khóa của T 2) R(B1, … , Bm), Q = {B1, … , Bm}, KR: tập thuộc tính khóa của R
khóa ngoại tham chiếu R[KR] ⊆ T[KT] nếu : KT⊆ Q \ KR
(khóa của T là thuộc tính không khóa của R)
Ví d ụ : PHIEU_DH[makh] ⊆ KHACHHANG[makh]
khóa ngoại phân cấp R[KT] ⊆ T[KT] nếu : KT⊆ KR
(khóa của T nằm trong khóa của R)
Ví d ụ : CTIET_HDON[sohd] ⊆ HOADON[sohd]
Trang 4Ts Ng An T ế - Ng Thúy Ng ọ c [PTTK - HT 3.2011 - 2012 HK1] Ch ươ ng 7: Thi ế t k ế thành ph ầ n D Ữ Ệ 13
2.1 Các khái ni ệ m c ơ b ả n (tt.)
phụ thuộc hàm (functional dependency)
Cho quan hệ : T(A1, A2, … , An), Q = {A1, A2, … , An}
X, Y, Z ⊆ Q : (X ≠ ∅ ≠ Y) và (X ∪ Y ∪ Z = Q)
f : X → Y được gọi là một phụ thuộc hàm trên T nếu :
∀ q1,q2∈ T, (q1.X = q2.X) ⇒ (q1.Y = q2.Y)
Khi đó, ta nói : X xác đị nh hàm Y hay Y ph ụ thu ộ c hàm X
Ví d ụ : T = HOADON, sohd → ngayhd, sotienhd
phụ thuộc hàm hiể n nhiên : f : X → X
phụ thuộc hàm nguyên tố
f : X → Y là nguyên tố n u : ∃ X’ ⊂ X : X’ → Y
Ts Ng An T ế - Ng Thúy Ng ọ c [PTTK - HT 3.2011 - 2012 HK1] Ch ươ ng 7: Thi ế t k ế thành ph ầ n D Ữ Ệ 14
2.1 Các khái ni ệ m c ơ b ả n (tt.)
hệ luật dẫn Amstrong
Giả sử : X, Y, W, Z ⊆ Q = {A1, A2, … , An}
luật phản xạ : (Y ⊆ X) ⇒ X → Y
luật phân rã : (X → Y) ∧ (Z ⊆ Y) ⇒ X → Z
luật hội : (X → Y) ∧ (X → Z) ⇒ X → YZ
luật bắc cầu : (X → Y) ∧ (Y → Z) ⇒ X → Z
luật bắc cầu giả : (X → Y) ∧ (WY → Z) ⇒ XW → Z
luật thêm vào : (X → Y) ∧ (Z ⊆ W) ⇒ XW → YZ
luật phân rã cho phép giả sử v phải của mọi phụ thuộc hàm đều chỉ chứa duy nhất 1 thuộc tính
2.1 Các khái ni ệ m c ơ b ả n (tt.)
Cho T(A1, A2, … , An), Q = {A1, A2, … , An}, F = { f : X → Y },
bao đóng (closure) của F, ký hiệu F+, là tập hợp tất cả các PTH có thể
suy diễn từ F dựa vào hệ luật dẫn Amstrong
bao đóng của tập thuộc tính X dựa trên F, ký hiệu XF, là tập hợp các
thuộc tính phụ thuộc vào X
XF = { Ai∈ Q | X → Ai∈ F+}
2.2 Các d ạ ng chu ẩ n
chất lượng thiết kế CSDL
sự trùng lắp thông tin
sự nhất quán về dữ liệ
Trang 5Ts Ng An T ế - Ng Thúy Ng ọ c [PTTK - HT 3.2011 - 2012 HK1] Ch ươ ng 7: Thi ế t k ế thành ph ầ n D Ữ Ệ 17
2.2 Các d ạ ng chu ẩ n (tt.)
thuộc tính đơn
chỉ có thể truy xuất toàn bộ giá trị c a thuộc tính (“nguyên từ
dạng chuẩn 1 (DC1)
DC1 thể hiện cấu trúc phẳng
Quan hệ T(A1, A2, … , An) ở DC1 nếu :
m ọ i thu ộ c tính Ai đề u là thu ộ c tính đơ n
Ts Ng An T ế - Ng Thúy Ng ọ c [PTTK - HT 3.2011 - 2012 HK1] Ch ươ ng 7: Thi ế t k ế thành ph ầ n D Ữ Ệ 18
2.2 Các d ạ ng chu ẩ n (tt.)
thuộc tính Aiphụ thuộc đầy đủ vào tập thuộc tính X nếu :
Ai∈ XF
X → Ailà nguyên tố
dạng chuẩn 2 (DC2)
Quan hệ T(A1, A2, … , An) ở DC2 nếu :
a) T ở DC1 và
b) m ọ i thu ộ c tính không khóa đề u ph ụ thu ộ c đầ y đủ vào các khóa
Ví dụ : PHIEU_DH(sodh, ngaydh, makh, mahh, soluongdh) không ở DC2
2.2 Các d ạ ng chu ẩ n (tt.)
thuộc tính Aiphụ thuộc bắc cầu vào tập thuộc tính X nếu
∃∃∃∃ Y ⊆ Q :
(X → Y ∈ F+) ∧ (Y → Ai∈ F+)
Y → X ∉ F+
Ai∉ X ∪ Y
Khi đó, X → Aig i là PTH bắc cầ
dạng chuẩn 3 (DC3)
Quan hệ T(A1, A2, … , An) ở DC3 nếu :
a) T ở DC2 và
b) m ọ i thu ộ c tính không khóa đề u KHÔNG ph ụ thu ộ c b ắ c c ầ
vào b ấ t k ỳ khóa nào
2.2 Các d ạ ng chu ẩ n (tt.)
Dạng chuẩn BCK (DC-BCK)
Quan hệ T(A1, A2, … , An) ở DC-BCK nếu :
m ọ i PTH không hi ể n nhiên đề u có v ế trái ch ứ a khóa
Trang 6Ts Ng An T ế - Ng Thúy Ng ọ c [PTTK - HT 3.2011 - 2012 HK1] Ch ươ ng 7: Thi ế t k ế thành ph ầ n D Ữ Ệ 21
N ộ i dung
1 M ở đầ u
2 Mô hình d ữ li u quan h ệ (tóm t ắ t)
3 Thiết kế thành phần dữ li u
Ts Ng An T ế - Ng Thúy Ng ọ c [PTTK - HT 3.2011 - 2012 HK1] Ch ươ ng 7: Thi ế t k ế thành ph ầ n D Ữ Ệ 22
3 Thi ế t k ế thành ph ầ n d ữ li ệ u
mô hình
mô hình quan hệ
phương pháp lập sơ đồ quan hệ dữ li u
áp dụng các qui tắc chuyển đổi s ơ đồ quan niệm dữ liệu sang sơ đồ quan hệ dữ liệ (bảo đảm các bảng ở DC3)
công cụ tin học
DB-Main
PowerDesigner
3 Thi ế t k ế thành ph ầ n d ữ li ệ u (tt.)
B1.
Chuy ể n đổ i
s ơ đồ quan ni ệ m d ữ li ệ
B1.
Chuyển đổi
sơ đồ quan niệm dữ liệ
B2.
Hoàn ch ỉ nh
s ơ đồ quan h ệ d ữ li ệ
B2.
Hoàn chỉnh
sơ đồ quan hệ dữ liệ
B3.
Mô t ả ràng bu ộ
ở m ứ c thi ế t k ế
B3.
Mô tả ràng buộ
ở mức thiết kế
3.1 Chuy ể n đổ i s ơ đồ quan ni ệ m DL
Qui tắc #1
a) Lo ạ i th ự c th ể T → quan h ệ T’
b) Thu ộ c tính c ủ a T → thu ộ c tính c ủ a T’
c) Khóa c ủ a T → khóa c ủ a T’
Trang 7Ts Ng An T ế - Ng Thúy Ng ọ c [PTTK - HT 3.2011 - 2012 HK1] Ch ươ ng 7: Thi ế t k ế thành ph ầ n D Ữ Ệ 25
3.1 Chuy ể n đổ i s ơ đồ quan ni ệ m DL (tt.)
Lưu ý với qui tắc #1
n u bản số max của thuộc tính > 1
t ă ng kích th ướ c c ủ a thu ộ c tính trong T’, ho ặ
t ạ o thêm quan h ệ T’’ v ớ i khóa c ủ a T’’ có ch ứ a khóa c ủ a T’
Ts Ng An T ế - Ng Thúy Ng ọ c [PTTK - HT 3.2011 - 2012 HK1] Ch ươ ng 7: Thi ế t k ế thành ph ầ n D Ữ Ệ 26
3.1 Chuy ể n đổ i s ơ đồ quan ni ệ m DL (tt.)
Qui tắc #2
a) N ế u các nhánh c ủ a lo ạ i m ố i k ế t h ợ p K đề u có b ả n s ố max là n
thì K s ẽ đượ c chuy ể n thành m ộ t quan h ệ g m các thu ộ c tính c ủ a K
c ộ ng thêm thu ộ c tính khóa c ủ a các lo ạ i th ự c th ể tham gia vào K b) Khóa c ủ a quan h ệ m ớ i g ồ m khóa c ủ a m ỗ i lo ạ i th ự c th ể tham gia vào K
3.1 Chuy ể n đổ i s ơ đồ quan ni ệ m DL (tt.)
Lưu ý với qui tắc #2
n u một nhánh của K có bản số min > 0 thì trong B3 phải bổ sung mộ
ràng buộc liên quan đến bản số min này
Ví d ụ :
“M ỗ i công trình ph ả đượ c th ự c hi ệ n b ở i ít nh ấ t 1 nhà NC”
3.1 Chuy ể n đổ i s ơ đồ quan ni ệ m DL (tt.)
Qui tắc #3
a) N ế u lo ạ i m ố i k ế t h ợ p K mà nhánh A có b ả n s ố max là 1 và
nhánh B còn l ạ i có b ả n s ố max là n thì lo ạ i b ỏ K kh ỏ i s ơ đồ
quan h ệ và thêm các thu ộ c tính khóa c ủ a B vào quan h ệ tương
ứ ng v ớ i A (khóa c ủ a B s ẽ tr thành khóa ngo ạ i c ủ a A).
b) N ế u K có các thu ộ c tính thì chúng c ũ ng đượ c thêm vào quan h ệ tương ứ ng v ớ i A
Trang 8Ts Ng An T ế - Ng Thúy Ng ọ c [PTTK - HT 3.2011 - 2012 HK1] Ch ươ ng 7: Thi ế t k ế thành ph ầ n D Ữ Ệ 29
3.1 Chuy ể n đổ i s ơ đồ quan ni ệ m DL (tt.)
Lưu ý với qui tắc #3
Nếu bản số c a nhánh A là (1,1) thì các thuộc tính mới thêm vào quan
hệ tương ứng với A sẽ có đặc tính NOT NULL
Ts Ng An T ế - Ng Thúy Ng ọ c [PTTK - HT 3.2011 - 2012 HK1] Ch ươ ng 7: Thi ế t k ế thành ph ầ n D Ữ Ệ 30
3.1 Chuy ể n đổ i s ơ đồ quan ni ệ m DL (tt.)
Qui tắc #4
N ế u lo ạ i m ố i k ế t h ợ p K mà các nhánh đề u có b ả n s ố max là 1
thì áp d ụ ng qui t ắ c 3 cho m ộ t trong các nhánh (tùy ch ọ n).
3.1 Chuy ể n đổ i s ơ đồ quan ni ệ m DL (tt.)
Qui tắc #5
Ví d ụ :
N ế u có nhi ề u lo ạ i MKH đị nh ngh ĩ a trên hai lo ạ i th ự c th ể thì có
th ể chuy ể n đổ i l ầ n l ượ t t ừ ng lo ạ i MKH và chú ý đặ t tên phân
bi ệ t cho các thu ộ c tính.
3.1 Chuy ể n đổ i s ơ đồ quan ni ệ m DL (tt.)
Qui tắc #6 (Chuyên biệt hóa – Tổng quát hóa)
Cách 1 : T ạ o m ộ t quan h ệ duy nh ấ t, g ồ m t ấ t c ả nh ữ ng thu ộ c tính c ủ a các lo ạ i th ự c th ể cha và con.
Cách 2 : Chuy ể n đổ i m ỗ i lo ạ i th ự c th ể CON thành m ộ t quan h ệ
riêng, trong đ ó khóa c ủ a m ỗ i quan h ệ này ph ả i ch ứ a thêm các thu ộ c tính khóa c ủ a quan h ệ tương ứ ng v ớ i lo ạ i th ự c th ể CHA.
Trang 9Ts Ng An T ế - Ng Thúy Ng ọ c [PTTK - HT 3.2011 - 2012 HK1] Ch ươ ng 7: Thi ế t k ế thành ph ầ n D Ữ Ệ 33
3.1 Chuy ể n đổ i s ơ đồ quan ni ệ m DL (tt.)
Qui tắc #7 (Loại MKH phản thân / đệ qui)
Ví d ụ :
Sau khi chuy ể n đổ i lo ạ i th ự c th ể thành quan h ệ , b ổ sung thêm
m ộ t thu ộ c tính phân c ấ p vào quan h ệ này.
Ts Ng An T ế - Ng Thúy Ng ọ c [PTTK - HT 3.2011 - 2012 HK1] Ch ươ ng 7: Thi ế t k ế thành ph ầ n D Ữ Ệ 34
3.2 Hoàn ch ỉ nh s ơ đồ quan h ệ DL
thêm, bớt các quan hệ
thêm, bớt các thuộc tính
kiểm tra các dạng chuẩn
các quan hệ đạt DC3 (tối thiểu) : dữ liệu không bị trùng lắ
3.3 Mô t ả RB d ữ li ệ u ở m ứ c thi ế t k ế
phân loại các RB ở mức thiết kế
tương tự phần phân tích
kiểm tra RB
đầy đủ
hiệu quả
khi nào ph ả i ki ể m tra RB r ?
vào th ờ i i ể m t, ph ả i ki ể m tra nh ữ ng RB nào ?
3.3 Mô t ả RB d ữ li ệ u ở m ứ c thi ế t k ế (tt.)
Bảng tầm ảnh hưởng : RB về miền giá trị của thuộc tính
Thao tác Quan h ệ Thêm S a Xóa
Trang 10Ts Ng An T ế - Ng Thúy Ng ọ c [PTTK - HT 3.2011 - 2012 HK1] Ch ươ ng 7: Thi ế t k ế thành ph ầ n D Ữ Ệ 37
3.3 Mô t ả RB d ữ li ệ u ở m ứ c thi ế t k ế (tt.)
Bảng tầm ảnh hưởng : RB giữa các thuộc tính trong cùng quan hệ
Thao tác Quan h ệ Thêm S a Xóa
Ts Ng An T ế - Ng Thúy Ng ọ c [PTTK - HT 3.2011 - 2012 HK1] Ch ươ ng 7: Thi ế t k ế thành ph ầ n D Ữ Ệ 38
3.3 Mô t ả RB d ữ li ệ u ở m ứ c thi ế t k ế (tt.)
Bảng tầm ảnh hưởng : RB giữa các bộ (mẩu tin) trong cùng quan hệ
Lưu ý : KHÔNG được sửa giá trị thuộc tính khóa
Thao tác Quan h ệ Thêm S a Xóa
3.3 Mô t ả RB d ữ li ệ u ở m ứ c thi ế t k ế (tt.)
Bảng tầm ảnh hưởng : RB khóa ngoại
Thao tác Quan h ệ Thêm S a Xóa
3.3 Mô t ả RB d ữ li ệ u ở m ứ c thi ế t k ế (tt.)
Bảng tầm ảnh hưởng TỔNG HỢP
Quan h ệ
RB
Trang 11Ts Ng An T ế - Ng Thúy Ng ọ c [PTTK - HT 3.2011 - 2012 HK1] Ch ươ ng 7: Thi ế t k ế thành ph ầ n D Ữ Ệ 41
Th ắ c m ắ c
Ts Ng An T ế - Ng Thúy Ng ọ c [PTTK - HT 3.2011 - 2012 HK1] Ch ươ ng 7: Thi ế t k ế thành ph ầ n D Ữ Ệ 42
Th ả o lu ậ n – Bài t ậ p nhóm
thiết kế thành phần dữ li u của HT3 quản lý đơn đặt hàng
lập sơ đồ quan hệ dữ liệ
mô tả ràng buộc dữ liệu ở mức thiết kế
lập bảng tẩm ảnh hưởng tổng hợp