Tải bản đầy đủ (.pdf) (11 trang)

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

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (298.94 KB, 11 trang )

Trườ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ọc
Ts. Ng. An Tế - Ng. Thúy Ngọc [PTTK - HT3.2011 - 2012.HK1] Chương 7: Thiết kế thành phần DỮ LIỆU 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ệ
Ts. Ng. An Tế - Ng. Thúy Ngọc [PTTK - HT3.2011 - 2012.HK1] Chương 7: Thiết kế thành phần DỮ LIỆU 3
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 - HT3.2011 - 2012.HK1] Chương 7: Thiết kế thành phần DỮ LIỆU 4
1. Mở đầu
sơ đồ
quan niệm DL
(E-R)
DỮ LIỆU
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
Ts. Ng. An Tế - Ng. Thúy Ngọc [PTTK - HT3.2011 - 2012.HK1] Chương 7: Thiết kế thành phần DỮ LIỆU 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ệu
 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 - HT3.2011 - 2012.HK1] Chương 7: Thiết kế thành phần DỮ LIỆU 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
Ts. Ng. An Tế - Ng. Thúy Ngọc [PTTK - HT3.2011 - 2012.HK1] Chương 7: Thiết kế thành phần DỮ LIỆU 7
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
Ts. Ng. An Tế - Ng. Thúy Ngọc [PTTK - HT3.2011 - 2012.HK1] Chương 7: Thiết kế thành phần DỮ LIỆU 8
2.1 Các khái niệm cơ bản
 thuộc tính (attribute)
 tên
 kiểu dữ liệu
 miền giá trị : có chứa thêm giá trị đặc biệt null
 ký hiệu
 thuộc tính : A
1
, A
2
, A
3
, …
 tập hợp các thuộc tính : {A
1
, A
2
, A
3
, … , A
n
} hay A
1
A
2
A
3

…A
n
 miền giá trị của thuộc tính : MGT(A)
Ts. Ng. An Tế - Ng. Thúy Ngọc [PTTK - HT3.2011 - 2012.HK1] Chương 7: Thiết kế thành phần DỮ LIỆU 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 = (a
1
, a
2
, a
3
, … , a
n
), a
i
∈MGT(A
i
)
Ts. Ng. An Tế - Ng. Thúy Ngọc [PTTK - HT3.2011 - 2012.HK1] Chương 7: Thiết kế thành phần DỮ LIỆU 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(A
1
, A
2

, A
3
, … , A
n
)
 lưu ý : gộp chung 2 khái niệm “lược đồ” (cấu trúc) và “quan hệ” (dữ
liệu)
Ts. Ng. An Tế - Ng. Thúy Ngọc [PTTK - HT3.2011 - 2012.HK1] Chương 7: Thiết kế thành phần DỮ LIỆU 11
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ểu
 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”
Ts. Ng. An Tế - Ng. Thúy Ngọc [PTTK - HT3.2011 - 2012.HK1] Chương 7: Thiết kế thành phần DỮ LIỆU 12
2.1 Các khái niệm cơ bản (tt.)
 khóa ngoại (foreign key)
Cho 2 quan hệ :
1) T(A
1
, … , A
n
), P = {A
1
, … , A

n
}, K
T
: tập thuộc tính khóa của T
2) R(B
1
, … , B
m
), Q = {B
1
, … , B
m
}, K
R
: tập thuộc tính khóa của R
 khóa ngoại tham chiếu R[K
R
] ⊆ T[K
T
] nếu : K
T
⊆ Q \ K
R
(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[K
T
] ⊆ T[K
T
] nếu : K

T
⊆ K
R
(khóa của T nằm trong khóa của R)
Ví dụ : CTIET_HDON[sohd] ⊆ HOADON[sohd]
Ts. Ng. An Tế - Ng. Thúy Ngọc [PTTK - HT3.2011 - 2012.HK1] Chương 7: Thiết kế thành phần DỮ LIỆU 13
2.1 Các khái niệm cơ bản (tt.)
 phụ thuộc hàm (functional dependency)
 Cho quan hệ : T(A
1
, A
2
, … , A
n
), Q = {A
1
, A
2
, … , A
n
}
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 :
∀q
1
,q
2
∈T, (q
1
.X = q

2
.X) ⇒ (q
1
.Y = q
2
.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 - HT3.2011 - 2012.HK1] Chương 7: Thiết kế thành phần DỮ LIỆU 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
Ts. Ng. An Tế - Ng. Thúy Ngọc [PTTK - HT3.2011 - 2012.HK1] Chương 7: Thiết kế thành phần DỮ LIỆU 15
2.1 Các khái niệm cơ bản (tt.)

 Cho T(A
1
, A
2
, … , A
n
), Q = {A
1
, A
2
, … , A
n
}, 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 X
F
+
, là tập hợp các
thuộc tính phụ thuộc vào X
X
F
+
= { A
i
∈Q | X → A
i
∈ F

+
}
Ts. Ng. An Tế - Ng. Thúy Ngọc [PTTK - HT3.2011 - 2012.HK1] Chương 7: Thiết kế thành phần DỮ LIỆU 16
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ệu
Ts. Ng. An Tế - Ng. Thúy Ngọc [PTTK - HT3.2011 - 2012.HK1] Chương 7: Thiết kế thành phần DỮ LIỆU 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(A
1
, A
2
, … , A
n
) ở DC1 nếu :
mọi thuộc tính A
i
đều là thuộc tính đơn
Ts. Ng. An Tế - Ng. Thúy Ngọc [PTTK - HT3.2011 - 2012.HK1] Chương 7: Thiết kế thành phần DỮ LIỆU 18
2.2 Các dạng chuẩn (tt.)
 thuộc tính A
i
phụ thuộc đầy đủ vào tập thuộc tính X nếu :
 A
i

∈ X
F
+
 X → A
i
là nguyên tố
 dạng chuẩn 2 (DC2)
Quan hệ T(A
1
, A
2
, … , A
n
) ở 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
Ts. Ng. An Tế - Ng. Thúy Ngọc [PTTK - HT3.2011 - 2012.HK1] Chương 7: Thiết kế thành phần DỮ LIỆU 19
2.2 Các dạng chuẩn (tt.)
 thuộc tính A
i
phụ thuộc bắc cầu vào tập thuộc tính X nếu

∃∃
∃Y ⊆
⊆⊆
⊆ Q :
 (X → Y ∈ F
+

) ∧ (Y → A
i
∈ F
+
)
 Y → X ∉ F
+
 A
i
∉ X ∪ Y
Khi đó, X → A
i
gọi là PTH bắc cầu
 dạng chuẩn 3 (DC3)
Quan hệ T(A
1
, A
2
, … , A
n
) ở 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ầu
vào bất kỳ khóa nào
Ts. Ng. An Tế - Ng. Thúy Ngọc [PTTK - HT3.2011 - 2012.HK1] Chương 7: Thiết kế thành phần DỮ LIỆU 20
2.2 Các dạng chuẩn (tt.)
 Dạng chuẩn BCK (DC-BCK)
Quan hệ T(A
1
, A

2
, … , A
n
) ở DC-BCK nếu :
mọi PTH không hiển nhiên đều có vế trái chứa khóa
Ts. Ng. An Tế - Ng. Thúy Ngọc [PTTK - HT3.2011 - 2012.HK1] Chương 7: Thiết kế thành phần DỮ LIỆU 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 - HT3.2011 - 2012.HK1] Chương 7: Thiết kế thành phần DỮ LIỆU 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ệu
(bảo đảm các bảng ở DC3)
 công cụ tin học
 DB-Main
 PowerDesigner
Ts. Ng. An Tế - Ng. Thúy Ngọc [PTTK - HT3.2011 - 2012.HK1] Chương 7: Thiết kế thành phần DỮ LIỆU 23
3. Thiết kế thành phần dữ liệu (tt.)
B1.
Chuyển đổi
sơ đồ quan niệm dữ liệu
B1.
Chuyển đổi
sơ đồ
quan niệm dữ liệu

B2.
Hoàn chỉnh
sơ đồ quan hệ dữ liệu
B2.
Hoàn chỉnh
sơ đồ
quan hệ dữ liệu
B3.
Mô tả ràng buộc
ở mức thiết kế
B3.
Mô tả ràng buộc
ở mức thiết kế
Ts. Ng. An Tế - Ng. Thúy Ngọc [PTTK - HT3.2011 - 2012.HK1] Chương 7: Thiết kế thành phần DỮ LIỆU 24
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’
Ts. Ng. An Tế - Ng. Thúy Ngọc [PTTK - HT3.2011 - 2012.HK1] Chương 7: Thiết kế thành phần DỮ LIỆU 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ặc
 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 - HT3.2011 - 2012.HK1] Chương 7: Thiết kế thành phần DỮ LIỆU 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
Ts. Ng. An Tế - Ng. Thúy Ngọc [PTTK - HT3.2011 - 2012.HK1] Chương 7: Thiết kế thành phần DỮ LIỆU 27
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ột
ràng buộc liên quan đến bản số min này
 Ví dụ :
 “Mỗi công trình phải được thực hiện bởi ít nhất 1 nhà NC”
Ts. Ng. An Tế - Ng. Thúy Ngọc [PTTK - HT3.2011 - 2012.HK1] Chương 7: Thiết kế thành phần DỮ LIỆU 28
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
Ts. Ng. An Tế - Ng. Thúy Ngọc [PTTK - HT3.2011 - 2012.HK1] Chương 7: Thiết kế thành phần DỮ LIỆU 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 - HT3.2011 - 2012.HK1] Chương 7: Thiết kế thành phần DỮ LIỆU 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).

Ts. Ng. An Tế - Ng. Thúy Ngọc [PTTK - HT3.2011 - 2012.HK1] Chương 7: Thiết kế thành phần DỮ LIỆU 31
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.
Ts. Ng. An Tế - Ng. Thúy Ngọc [PTTK - HT3.2011 - 2012.HK1] Chương 7: Thiết kế thành phần DỮ LIỆU 32
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.
Ts. Ng. An Tế - Ng. Thúy Ngọc [PTTK - HT3.2011 - 2012.HK1] Chương 7: Thiết kế thành phần DỮ LIỆU 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 - HT3.2011 - 2012.HK1] Chương 7: Thiết kế thành phần DỮ LIỆU 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ắp
Ts. Ng. An Tế - Ng. Thúy Ngọc [PTTK - HT3.2011 - 2012.HK1] Chương 7: Thiết kế thành phần DỮ LIỆU 35
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 ?
Ts. Ng. An Tế - Ng. Thúy Ngọc [PTTK - HT3.2011 - 2012.HK1] Chương 7: Thiết kế thành phần DỮ LIỆU 36
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
T
+ +
Ts. Ng. An Tế - Ng. Thúy Ngọc [PTTK - HT3.2011 - 2012.HK1] Chương 7: Thiết kế thành phần DỮ LIỆU 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
T
+ +
Ts. Ng. An Tế - Ng. Thúy Ngọc [PTTK - HT3.2011 - 2012.HK1] Chương 7: Thiết kế thành phần DỮ LIỆU 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

T
+ +
Ts. Ng. An Tế - Ng. Thúy Ngọc [PTTK - HT3.2011 - 2012.HK1] Chương 7: Thiết kế thành phần DỮ LIỆU 39
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
T_CHA
+
T_CON
+ +
Ts. Ng. An Tế - Ng. Thúy Ngọc [PTTK - HT3.2011 - 2012.HK1] Chương 7: Thiết kế thành phần DỮ LIỆU 40
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
T
1
. . . T
n
T S X T S X
R
1
+ + +
R
2
+ + +
. . . + + +
R

m
+ + +
Ts. Ng. An Tế - Ng. Thúy Ngọc [PTTK - HT3.2011 - 2012.HK1] Chương 7: Thiết kế thành phần DỮ LIỆU 41
Thắc mắc
Ts. Ng. An Tế - Ng. Thúy Ngọc [PTTK - HT3.2011 - 2012.HK1] Chương 7: Thiết kế thành phần DỮ LIỆU 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ệu
 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

×