You are on page 1of 17

HỌC VIỆN KỸ THUẬT MẬT MÃ

KHOA CÔNG NGHỆ THÔNG TIN

 
ThS. Cao Vinh
caovinh226@gmail.com

“Tri thức là chìa khóa mở cánh cửa tương lai"


Đặt vấn đề

Cho quan hệ Sinh viên


MaSV HotenSV MaMH TenMH SoTC Diem

AT142 Trần Anh 1 CSDL 2 5

AT142 Trần Anh 2 Tin 3 6

AT144 Thu Chi 1 CSDL 2 6

AT145 Tiến Dũng 4 Tiếng Anh 2 7

20.03.2022 2
Nhận xét về quan hệ Sinh viên

MaM TenM
Quan hệ trên thiết kế chưa tốt vì: MaSV HotenSV SoTC Diem
H H
• Dư thừa dữ liệu (Redundancy) AT142 Trần Anh 1 CSDL 2 5
Thông tin về sinh viên và môn học AT142 Trần Anh 2 Tin 3 6
bị lặp lại nhiều lần. AT144 Thu Chi 1 CSDL 2 6
Tiếng
AT145 Tiến Dũng 4 2 7
• Không nhất quán (Inconsistency) Anh
Ví dụ giả sử sửa bản ghi thứ nhất, tên sinh viên được sửa thành Ánh thì dữ liệu này lại không
nhất quán với bản ghi thứ 2 (vẫn tên là Anh)
• Dị thường khi thêm bộ (Insertion anomalies)
Ví dụ nếu muốn thêm thông tin một sinh viên mới nhập trường (chưa có điểm môn học nào) vào
quan hệ thì không được vì khoá chính của quan hệ trên gồm 2 thuộc tính MaSV và MaMH
• Dị thường khi xoá bộ (Deletion anomalies)
Giả sử xoá đi bản ghi cuối cùng, thì thông tin về môn học có mã môn học là 4 cũng mất.

20.03.2022 3
Các nguyên tắc thiết kế lược đồ

20.03.2022 4
Nguyên tắc 1

Thiết kế một lược đồ quan hệ sao cho dễ giải thích ý nghĩa của nó.
Không tổ hợp các thuộc tính từ nhiều kiểu thực thể và kiểu liên kết vào một
quan hệ.

20.03.2022 5
Nguyên tắc 2

• Không sinh ra những dị thường cập nhật trong các quan hệ.
• Nếu có xuất hiện những dị thường cập nhật thì phải ghi chép lại một cách rõ
ràng và phải đảm bảo các chương trình cập nhật dữ liệu sẽ thực hiện một
cách đúng đắn.

20.03.2022 6
Nguyên tắc 3

• Hạn chế đặt vào trong các quan hệ cơ sở những thuộc tính mà các giá trị
của chúng thường xuyên là NULL.
• Nếu không thể tránh được các giá trị NULL thì phải đảm bảo rằng chúng
chỉ áp dụng trong các trường hợp đặc biệt và không áp dụng cho một số lớn
các bộ trong quan hệ.

20.03.2022 7
Nguyên tắc 4

• Thiết kế các lược đồ quan hệ sao cho chúng có thể được nối với điều kiện
bằng trên các thuộc tính khóa chính hoặc khóa ngoại theo cách bảo đảm
không sinh ra các bộ “giả”.
• Không để các quan hệ chứa các thuộc tính nối khác với các tổ hợp khóa
chính – khóa ngoại

20.03.2022 8
Nguyên tắc 4 (2)

Cho hai quan hệ:


SP_SL (TenCty, Sanpham, Soluong)
SP_DG (MaCTy, Sanpham, Dongia)

20.03.2022 9
Nguyên tắc 4 (3)

Thực hiện kết nối tự nhiên trên hai quan hệ thông qua thuộc tính cùng tên
“Sản phẩm” ta được:

2 bộ giả

20.03.2022 10
Kết luận

 Chúng ta nên tìm cách tách quan hệ trên thành các quan hệ nhỏ hơn.
 Chúng ta sẽ cùng nhau nghiên cứu về những khái niệm và các thuật toán để
có thể thiết kế được những lược đồ quan hệ tốt.

20.03.2022 11
Ràng buộc toàn vẹn quan hệ

Khái niệm
- RBTV là những điều kiện bất biến mà tất cả các bộ của những quan hệ có liên
quan trong CSDL đều phải thỏa mãn ở mọi thời điểm.
- Trong một CSDL, ràng buộc toàn vẹn được xem như là một công cụ để diễn đạt
ngữ nghĩa của CSDL.
- Công việc kiểm tra RBTV thường được tiến hành vào thời điểm cập nhật dữ
liệu.
- Mỗi RBTV có ba yếu tố: điều kiện (nội dung), bối cảnh và tầm ảnh hưởng

20.03.2022 12
Điều kiện (nội dung) của RBTV

Cách biểu diễn:


 bằng ngôn ngữ tự nhiên
 bằng đại số tập hợp, đại số quan hệ
 bằng giả mã
 Phụ thuộc hàm,…

20.03.2022 13
Ví dụ

Ví dụ 3
Mỗi nhân viên phải làm việc trong một phòng ban nào đó
Nhanvien[MaP]  Phongban[MaP]

20.03.2022 14
Bối cảnh

• Bối cảnh của RBTV là những quan hệ mà RBTV có hiệu lực


• Bối cảnh có thể là một hoặc nhiều quan hệ

Bối cảnh là
1 quan hệ

Ví dụ 3
Mỗi nhân viên phải làm việc trong một phòng ban nào đó
Nhanvien[MaP]  Phongban[MaP]

20.03.2022 15
Tầm ảnh hưởng

RBTV có thể bị vi phạm khi thực hiện các thao tác cập nhật trên bối cảnh:
• Thêm
• Sửa
• Xóa

Tên RBTV Thêm(T) Sửa(S) Xóa(X)


RB2 + +(maNV) -

20.03.2022 16
Nội dung

1. Phụ thuộc hàm


2. Khóa của quan hệ
3. Chuẩn hóa lược đồ quan hệ

20.03.2022 17

You might also like