Bài giảng Kỹ thuật phần mềm ứng dụng - Chương 3: Mô hình dữ liệu quan hệ (Phần 4)
Kꢀ thuꢁt phꢂn mꢃm
ꢄng dꢅng
Chương 3
Mô hꢀnh dữ liꢁu quan hệ
(Phꢀn 4)
9/6/2017
Nội dung trình bày
1. Khái niệm chuẩn hóa
2. Mục đích của chuẩn hóa
3. Các dạng chuẩn
4. Lược đồ khái niệm
5. Các phép toán trên CSDL quan hệ
6. Các bước đưa về dạng chuẩn 3NF/BCNF
7. Các quy tắc toàn vẹn dữ liệu
2
1. Khái niệm chuẩn hóa
. Chuẩn hóa: Mô hình quan hệ chỉ chấp nhận duy nhất các quan hệ thoả
mãn điều kiện “Mọi giá trị trong quan hệ - nghĩa là tất cả các giá trị của
các thuộc tính trong tất cả các bộ - đều phải là nguyên tố (atomic) (nghĩa là
không chia nhỏ được nữa)” .
. Nói một cách khác, tại mỗi vị trí cắt nhau của một hàng và một cột trong
bảng tồn tại đúng một giá trị và không bao giờ là một tập các giá trị.
.
.
Dạng chuẩn (normal form): Là trạng thái của một quan hệ có được do áp
dụng những quy tắc liên quan đến phụ thuộc hàm của quan hệ đó.
Chuẩn hoá dữ liệu: là quá trình phân rã lược đồ quan hệ chưa chuẩn hoá
(có dạng chuẩn thấp) thành các lược đồ quan hệ nhỏ hơn nhưng ở dạng
chuẩn cao hơn (có cấu trúc tốt hơn)
3
2. Mꢅc đích của việc chuẩn hóa
. Loại bỏ các dữ liệu dư thừa trong các bảng.
. Xóa bỏ các dị thường trong các thao tác cập nhật dữ
liệu.
. Tối ưu hóa cấu trúc của các bảng.
4
3 Các dạng chuẩn
Dạng chuẩn 1(1 Normal Form - 1NF): Một bảng đạt chuẩn 1 khi và chỉ khi
tất cả các cột trong bảng chỉ chứa giá trị nguyên tố, nghĩa là không có nhóm
lặp (các cột) bên trong một hàng của bảng.
5
3 Các dạng chuẩn (tiếp)
. Kết luận:
– Mọi lược đồ quan hệ đều thuộc dạng chuẩn 1.
– Dạng chuẩn 1 có thể dẫn đến sự trùng lặp dữ
liệu. Do đó gây ra các dị thường về cập nhật dữ
liệu.
6
3. Các dạng chuẩn (tiếp)
Dạng chuẩn 2(2 Normal Form - 2NF): Lược đồ quan hệ R được gọi là thuộc
dạng chuẩn 2 nếu nó đã ở dạng chuẩn 1 và mọi thuộc tính không khóa của R
phụ thuộc hàm đꢀy đủ vào khóa chính của R.
7
.
Kết luận:
–
Mọi lược đồ quan hệ thuộc dạng chuẩn 2 cũng thuộc dạng chuẩn 1.
–
Còn xuất hiện sự trùng lặp dữ liệu. Do đó gây ra các dị thường về cập
nhật dữ liệu.
8
3. Các dạng chuẩn (tiếp)
.
Dạng chuẩn 3 (3 Normal Form - 3NF): Lược đồ quan hệ R được gọi là thuộc dạng
chuẩn 3 nếu:
o
R thuộc dạng chuẩn 2.
o
Mọi thuộc tính không khóa của R không phụ thuộc bắc cꢀu vào khóa chính
của R.
Ví dụ: Lược đồ dưới đây thuộc dạng chuẩn 2 nhưng không thuộc dạng chuẩn 3, vì
tồn tại phụ thuộc hàm bắc cꢀu:
Rõ ràng: MaNV MaPB, MaPB TenPB => MaNV TenPB, Sau khi chuẩn hóa sang
dạng 3 chúng ta nhận được các lược đồ sau:
9
3. Các dạng chuẩn (tiếp)
.
Kết luận:
–
–
–
Mọi lược đồ quan hệ thuộc dạng chuẩn 3 cũng thuộc dạng chuẩn 2.
PTH bắt cꢀu là nguyên nhân dẫn đến trùng lặp dữ liệu.
Dạng chuẩn 3 là dạng chuẩn tối thiểu trong thiết kế CSDL
10
3. Các dạng chuẩn (tiếp)
. Dạng chuẩn Boyce-Codd(BCNF): Lược đồ quan hệ R được gọi là đạt
BCNF khi và chỉ khi với mọi FD X -> A đúng trong R thì X là siêu
khóa
Ví dụ: Cho lược đồ quan hệ R(A,B,C,D), với tập phụ thuộc hàm
F={A->BCD, BC->AD ,D->B}
11
4 Lược đồ khái niệm
12
4 Lược đồ khái niệm(tiếp)
13
5 Các phép toán trên CSDL quan hệ
– Chèn (insert)
– Loại bỏ (delete)
– Thay đổi (change)
Trong mô hình CSDL quan hệ được nêu trên,
các phép toán này được áp dụng cho từng bộ
của các quan hệ lưu trữ trong máy
14
5 Các phép toán trên CSDL quan hệ(tiếp)
1. Phép chèn (INSERT)
– Phép chèn thêm một bộ t vào quan hệ r {A1, ..., An}
có dạng:
r = r t
– Ta có thể biểu diễn chi tiết phép chèn như sau:
INSERT (r; A1 = d1, A2 = d2, ..., An = dn)
– Trong đó: - Ai với i = 1, ..., n là tên các thuộc tính và
di với di dom(Ai) là các giá trị thuộc miền trị tương
ứng của thuộc tính Ai.
Ví dụ:
– Để thêm một bộ t4 = (S4, Clark, 20, London) vào quan hệ S
trong hình 1.2 ta làm như sau:
INSERT(S; S# = S4, SNAME = Clark, STATUS = 20, CITY = London)
15
5 Các phép toán trên CSDL quan hệ(tiếp)
. Nếu xem thứ tự các trường là cố định, khi đó có thể biểu diễn
phép chèn dưới dạng không tường minh như sau:
INSERT (r; d1, d2, ..., dn)
• Mục đích của phép chèn là thêm một bộ vào một quan hệ
nhất định
. Kết quả của phép toán này có thể gây ra một số sai sót với
những lý do sau đây:
Bộ mới cꢀn thêm vào không phù hợp với lược đồ quan hệ đã cho
Một số giá trị của một số thuộc tính nằm ngoài miền giá trị của
thuộc tính đó
Giá trị khoá của bộ mới có thể là giá trị đã có trong quan hệ
đang lưu trữ
. Do vậy, tuỳ từng hệ thống cụ thể sẽ có những cách khắc phục
riêng
16
5. Các phép toán trên CSDL quan hệ(tiếp)
2. Phép loại bỏ (DEL)
– Phép loại bỏ (DEL) là phép xoá một bộ ra khỏi một quan hệ
cho trước
– Giống như phép chèn, phép loại bỏ có dạng:
r = r \ t
– Ta có thể biểu diễn chi tiết phép loại bỏ như sau:
DEL (r; A1 = d1, A2 = d2, ..., An = dn)
– Hoặc nếu xem thứ tự các trường là cố định thì:
DEL (r; d1, d2, ... dn)
– Ví dụ:
Cꢀn loại bỏ bộ tương ứng với P2, S3 trong quan hệ SP trên
hình 1.2 ta làm như sau:
DEL (SP; S# = S3, P# = P2, QTY = 200)
17
5. Các phép toán trên CSDL quan hệ(tiếp)
– Tuy nhiên, không phải lúc nào phép loại bỏ cũng
cꢀn đꢀy đủ tất cả các loại thông tin của bộ cꢀn loại
bỏ
– Nếu có giá trị về bộ đó tại các thuộc tính khoá K =
{B1, B2,..., Bj} thì phép loại bỏ chỉ cꢀn viết:
DEL (r; B1 = f1, B2 = f2, ..., Bi = fj)
– Ví dụ, trong phép loại bỏ nêu trên, vì (S#, P#) là
khoá của quan hệ SP nên ta chỉ cꢀn viết:
DEL (SP; S# = S3, P# = P2)
18
5. Các phép toán trên CSDL quan hệ(tiếp)
3. Phép thay đổi (CHANGE hoặc UPDATE)
– Trong thực tế không phải lúc nào cũng chỉ dùng phép chèn
hoặc loại bỏ đi một bộ mà nhiều khi chỉ cꢀn sửa đổi một số
giá trị nào đó tại một số thuộc tính, lúc đó cꢀn thiết phải sử
dụng phép thay đổi ("Change" hay viết tắt là CH)
– Gọi tập {C1, ..., Cp} {A1, ..., An} là tập các thuộc tính mà
tại đó các giá trị của bộ cꢀn thay đổi, khi đó phép thay đổi
có dạng:
r = r \ t t'
– Hay ta có thể biểu diễn chi tiết phép loại bỏ như sau:
CH (r; A1 = d1, A2 = d2, ..., An = dn; C1 = e1, C2 = e2, ..., Cp = ep)
19
5. Các phép toán trên CSDL quan hệ(tiếp)
– Nếu K = {B1, ..., Bm} là khoá của quan hệ, khi đó chỉ cꢀn
viết:
CH (r; B1 = f1, B2 = f2, ..., Bm = fm; C1 = e1, C2 = e2, ..., Cp = ep)
– Ví dụ: Cꢀn thay đổi địa chỉ hãng cung cấp S1 từ London
thành Amsterdam trong quan hệ S. Khi đó phép thay đổi có
dạng như sau:
CH (S; S# = S1; CITY = Amsterdam)
– Cũng có thể không dùng phép thay đổi mà dùng tổ hợp của
phép loại bỏ và phép chèn một bộ mới
Do vậy, sai sót đối với phép thay đổi cũng sẽ xảy ra tương tự
như với phép chèn và phép loại bỏ
20
Tải về để xem bản đầy đủ
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Kỹ thuật phần mềm ứng dụng - Chương 3: Mô hình dữ liệu quan hệ (Phần 4)", để tải tài liệu gốc về máy hãy click vào nút Download ở trên
File đính kèm:
bai_giang_ky_thuat_phan_mem_ung_dung_chuong_3_mo_hinh_du_lie.pdf

