You are on page 1of 23

Chủ biên: ThS.

Thái Thị Thanh Vân


Email: TTvanCNTT @gmail.com
DT: 0932320886

Bộ môn Khoa Học Máy tính – Khoa Công nghệ Thông Tin 22 February 2023 | Page 1
Bộ môn Khoa Học Máy Tính – Khoa Công nghệ Thông Tin 22 February 2023 | Page 2
1. Nắm được khái niệm về thiết kế CSDL,
các bất thường khi cập nhật dữ liệu và
các nguyên tắc khi thiết kế cơ sở dữ
liệu.
2. Nắm được khái niệm ràng buộc toàn
vẹn và cách biểu diễn các ràng buộc.

Bộ môn Khoa Học Máy Tính – Khoa Công nghệ Thông Tin 22 February 2023 | Page 3
 Mục đích của việc xây dựng một mô hình dữ liệu là tạo ra một dạng
biểu diễn chính xác của dữ liệu, các mối liên kết giữa các dữ liệu và
ràng buộc. Việc xác định một tập các quan hệ thích hợp được gọi là thiết
kế CSDL.
Mục đích của việc thiết kế CSDL quan hệ là gom nhóm các thuộc
tính thành các quan hệ sao cho giảm thiểu dữ thừa dữ liệu và do đó làm
giảm vùng nhớ lưu trữ tập tin cho các quan hệ cơ sở.
Việc dư thừa dữ liệu sẽ gây nên rất nhiều bất thường khi cập nhật, bao
gồm: bất thường khi thêm vào, bất thường khi xóa, bất thường khi sửa
đổi.
4 2/22/2023
 Giả sử ta dùng quan hệ NV_PH (MaNV,
TenNV, Luong, TenPhong, DiaChi,
DienThoai) để lưu trữ thông tin về các nhân
viên và phòng ban trong công ty. Rõ rang,
bảng NV_PH có sự dư thừa dữ liệu vì chi
tiết của mỗi phòng (Diachi, DienThoai) sẽ bị
lặp lại cho mỗi nhân viên làm việc tại phòng
này.
→ Sự dư thừa này gây nên nhiều sự bất
thường khi cập nhật dữ liệu.
Bộ môn Khoa Học Máy Tính – Khoa Công nghệ Thông Tin 22 February 2023 | Page 5
Bất thường khi thêm dữ liệu:
Xảy ra khi ta muốn thêm thông tin một phòng mới (chưa có nhân viên) vào
bảng. Lúc này, ta chỉ có thông tin về phòng (TenPhong, DiaChi, DienThoai).
Nếu thêm vào bảng NV_PH thì giá trị trên hai cột MaNV, TenNV, Luong phải
nhận giá trị NULL. Điều này gây ra sự mâu thuẫn vì giá trị của MaNV (trường
khóa) phải khác rỗng → Không thể thêm dữ liệu vào bảng.

6 2/22/2023
 Khi xóa dữ liệu:
Xảy ra khi phòng chỉ có một nhân viên (trên bảng NV_PH chỉ có một dòng
chứa thông tin về Phòng và nhân viên duy nhất của phòng đó), việc xóa bỏ nhân
viên này sẽ là mất toàn bộ thông tin chi tiết về Phòng đó.
Khi sửa đổi:
Xảy ra khi muốn sửa đổi thông tin chi tiết của một phòng mà phòng này có
nhiều nhân viên làm việc. Việc sửa đổi nếu không được thực hiện trên các dòng
có cùng một phòng làm việc sẽ dẫn đến sự không nhất quán trong bảng NV{PH.
Như vậy: rõ ràng, bảng NV_PH không phải là bảng “phù hợp với mong
muốn” → Tìm cách thiết kế các bảng có cấu trúc tốt hơn hay nói cách
khác thiết kế các quan hệ phù hợp hơn.
7 2/22/2023
II. CÁC NGUYÊN TẮC THIẾT KẾ

 Nguyên tắc 1: Thiết kế một lược đồ


CSDL 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ệ.

Bộ môn Khoa Học Máy Tính – Khoa Công nghệ Thông Tin 22 February 2023 | Page 8
* Nguyên tắc 2: Thiết kế một lược đồ CSDL quan hệ sao cho:
- Không sinh ra những bất thường cập nhật trong các quan hệ.
- Nếu có xuất hiện những bất 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.
* 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ệ.
9 2/22/2023
* Nguyên tắc 4: Việc kết nối tự nhiên chỉ được diễn ra trên các thuộc tính
khóa chính, khóa ngoại. Mục đích: tránh các bộ dữ liệu giả
Ví dụ: Cho hai quan hệ
- SP_Dky(MaCty, Sanpham, Soluong)
- SP_SX(TenCT, Sanpham, Dongia)

10 2/22/2023
* Kết nối tự nhiên trên cột “SanPham” của hai bảng ta sẽ có một bảng cs
chứa các bộ dữ liệu ảo (những bộ đánh dấu *)

11 2/22/2023
III. RÀNG BUỘC TOÀN VẸN (RBTV)
❑ 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.
❑Ví dụ: Mỗi khách hàng có một mã khách hàng (MaKH) duy nhất,
mỗi MaKH xác định một tên khách hàng (TenKH), một địa chỉ
(Diachi), một số điện thoại (Tel).
12 2/22/2023
Các yếu tố của RBTV
❑Mỗi RBTV có ba yếu tố: điều kiện, bối cảnh và tầm ảnh hưởng
❑Điều kiện:
 Điều kiện của một RBTV có thể được biểu diễn bằng ngôn ngữ tự nhiên,
thuật giải, ngôn ngữ đại số tập hợp, đại số quan hệ hoặc phụ thuộc hàm.
 Ví dụ 1: cho lược đồ quan hệ SINHVIEN, r là một quan hệ của
SINHVIEN thì có một ràng buộc toàn vẹn như sau:
t1, t2r t1[MaSV] ≠ t2[MaSV]
❑Bối cảnh:
❑ Bối cảnh của một RBTV là những quan hệ mà ràng buộc đó có hiệu lực,
hay nói một cách khác, đó là những quan hệ cần phải được kiểm tra RBTV.
❑ Ví dụ 2: với ràng buộc toàn vẹn ở ví dụ 1 thì bối cảnh là quan hệ
13 SINHVIEN 2/22/2023
Các yếu tố của RBTV
❑Chú ý
❑ Dấu “+”: cần kiểm tra TBTV
❑ Dấu “-”: không cần kiểm tra RBTV
❑Ví dụ:
❑ Tầm ảnh hưởng của ràng buộc toàn vẹn sau: C: t1, t2r t1[MaSV] ≠
t2[MaSV]

14 2/22/2023
Phân loại RBTV
Các ràng buộc toàn vẹn có thể được chia làm hai loại chính
như sau:
- Ràng buộc toàn vẹn trên phạm vi là một quan hệ bao gồm: Ràng
buộc toàn vẹn miền giá trị, ràng buộc toàn vẹn liên thuộc tính,
ràng buộc toàn vẹn liên bộ.
- Ràng buộc toàn vẹn trên phạm vi nhiều quan hệ bao gồm: Ràng
buộc toàn vẹn phụ thuộc tồn tại, ràng buộc toàn vẹn liên bộ -
liên quan hệ, ràng buộc toàn vẹn liên thuộc tính- liên quan hệ.

15 2/22/2023
Ví dụ
Cho một CSDL dùng để quản lý việc đặt hàng và giao hàng của một công
ty. Lược đồ CSDL gồm các lược đồ quan hệ như sau:
- R1: KHACH(MaKH, TenKH, Diachi, Tel)
Mỗi khách hàng có một mã khách hàng (MaKH) duy nhất, mỗi MaKH xác định
một tên khách hàng (TenKH), một địa chỉ (Diachi), một số điện thoại (Tel).
- R2: HANG(Mahang, Tenhang, Quycach, DVtinh)
Mỗi mặt hàng có một mã hàng (Mahang) duy nhất, mỗi Mahang xác định một
tên hàng (Tenhang), quy cách hàng (Quycach), đơn vị tính (DVtinh).
- R3: DATHANG(SoDH, Mahang, SLdat, NgayDH, MaKH)
Mỗi lần đặt hàng có số đặt hàng (SoDH) xác định một ngày đặt hàng (NgayDH)
và mã khách hàng tương ứng (MaKH). Biết mã số đặt hàng và mã mặt hàng thì biết
được số lượng đặt hàng (SLdat). Mỗi khách hàng trong một ngày có thể có nhiều lần
đặt hàng.
16 2/22/2023
- R4: HOADON(SoHD, Ngaylap, SoDH, TrigiaHD, Ngayxuat)
Mỗi hoá đơn có một mã số duy nhất là SoHD, mỗi hoá đơn bán hàng có thể gồm nhiều
mặt hàng. Mỗi hoá đơn xác định ngày lập hoá đơn (Ngaylap), ứng với số đặt hàng nào
(SoDH). Giả sử rằng hoá đơn bán hàng theo yêu cầu của chỉ một đơn đặt hàng có mã số
là SoDH và ngược lại, mỗi đơn đặt hàng chỉ được giải quyết trong một hoá đơn. Do
điều kiện khách quan có thể công ty không giao đầy đủ các mặt hàng cũng như số lượng
từng mặt hàng như yêu cầu trong đơn đặt hàng, nhưng không bao giờ giao vượt ngoài
yêu cầu. Mỗi hoá đơn xác định một trị giá của các mặt hàng trong hoá đơn (TrigiaHD)
và một ngày xuất kho giao hàng cho khách (Ngayxuat).
- R5: CHITIETHD(SoHD, Mahang, Giaban, SLban)
Mỗi SoHD, Mahang xác định giá bán (Giaban) và số lượng bán (SLban) của một
mặt hàng trong một hoá đơn.
- R6: PHIEUTHU(SoPT, Ngaythu, MaKH, Sotien)
Mỗi phiếu thu có một số phiếu thu (SoPT) duy nhất, mỗi SoPT xác định một ngày thu
(Ngaythu) của một khách hàng có mã khách hàng là MaKH và số tiền thu là Sotien. Mỗi
khách hàng trong một ngày có thể có nhiều số phiếu thu.
17 2/22/2023
Ví dụ
a) Ràng buộc toàn vẹn liên bộ
❑Ràng buộc toàn vẹn liên bộ (hay còn gọi là ràng buộc toàn vẹn về
khoá) là sự ràng buộc toàn vẹn giữa các bộ trong cùng một quan
hệ. Đây là loại ràng buộc toàn vẹn rất phổ biến, nó có mặt trong
mọi lược đồ quan hệ của CSDL và thường được các hệ quản trị
CSDL tự động kiểm tra.

18 2/22/2023
Ví dụ
b) Ràng buộc toàn vẹn về phụ thuộc tồn tại
Ràng buộc toàn vẹn về phụ thuộc tồn tại còn được gọi là ràng
buộc toàn vẹn về khoá ngoại. Cũng giống như ràng buộc toàn vẹn về
khoá chính, loại ràng buộc toàn vẹn này rất phổ biến trong CSDL.

19 2/22/2023
Ví dụ
c) Ràng buộc toàn vẹn về miền giá trị
Ràng buộc toàn vẹn có liên quan đến miền giá trị của các
thuộc tính trong một quan hệ. Ràng buộc toàn vẹn này thường gặp.
Một số hệ quản trị CSDL đã tự động kiểm tra một số ràng buộc loại
này.
.

20 2/22/2023
Ví dụ
d) Ràng buộc toàn vẹn liên thuộc tính
Ràng buộc toàn vẹn liên thuộc tính là mối liên hệ giữa các
thuộc tính trong một lược đồ quan hệ.
.

21 2/22/2023
Ví dụ
e) Ràng buộc toàn vẹn liên thuộc tính liên quan hệ
Ràng buộc loại này là mối quan hệ giữa các thuộc tính trong
nhiều lược đồ quan hệ.
.

22 2/22/2023
Tóm tắt nội dung bài học

❑ Thiết kế CSDL
❑Dư thừa dữ liệu và các bất thường khi cập
nhật
❑Các nguyên tắc thiết kế CSDL
❑Ràng buộc toàn vẹn và cách biểu diễn

Bộ môn Khoa Học Máy Tính – Khoa Công nghệ Thông Tin 22 February 2023 | Page 23

You might also like