Quản trị Cơ sở dữ liệu và Phần mềm ứng dụng chương 2: Thiết kế CSDL quan hệ
Mô hình dữ liệu quan hệ được Codd đề xuất năm 1970 và đến nay trở thành mô hình được sử dụng phổ biến trong các hệ quản trị cơ sở dữ liệu thương mại. Nói một cách đơn giản, một cơ sở dữ liệu quan hệ là một cơ sở dữ liệu trong đó ..
Quản trị Cơ sở dữ liệu và
Phần mềm ứng dụng
Bộ môn CNTT
Khoa Tin học Thương mại
11/3/2008 Bài giảng - CSDL và Phần mềm ứng dụng 1
Chương II: Thiết kế CSDL quan hệ
1. Giới thiệu chung
1.1. Thiết kế CSDL QH và các cách tiếp cận
1.2. Phụ thuộc hàm
2. Chuẩn hóa lược đồ quan hệ
2.1. Các dạng chuẩn
2.2. Tách lược đồ quan hệ theo chuẩn
3. Ràng buộc toàn vẹn trong CSDL quan hệ
3.1. Khái niệm ràng buộc toàn vẹn
3.2. Ràng buộc toàn vẹn trên thuộc tính
3.3. Ràng buộc toàn vẹn trên quan hệ
Bài giảng - CSDL và Phần mềm
11/3/2008 ứng dụng 2
1. Giới thiệu chung
1.1. Thiết kế CSDL QH và các cách tiếp
cận
Thiết kế cơ sở dữ liệu quan hệ xây
dựng lược đồ CSDL QH gồm một tập các
lược đồ quan hệ thỏa mãn hai yêu cầu:
Lưu trữ thông tin không dư thừa
Tìm kiếm thông tin dễ dàng
Ví dụ
Lược đồ quan hệ
CUNG_UNG(MaNCC, TenNCC, DiaChi,
SanPham, Gia)
Bài giảng - CSDL và Phần mềm
11/3/2008 ứng dụng 3
Dư thừa dữ liệu
Quan hệ CUNG_UNG_0
MaNCC TenNCC DiaChi SanPham Gia
1 Hải Hà Hà Nội Kẹo mềm 100
1 Hải Hà Hà Nội Kẹo cứng 150
1 Hải Hà Hà Nội Bánh 200
2 Kinh đô Hồ Chí Minh Kẹo 120
2 Kinh đô Hồ Chí Minh Bánh 150
Một nhà cung cấp cung cấp nhiều mặt hàng.
Lặp các thông tin về nhà cung cấp ứng với mỗi một mặt
hàng khác nhau của cùng nhà cung cấp đó.
Bài giảng - CSDL và Phần mềm
11/3/2008 ứng dụng 4
Không nhất quán
Quan hệ CUNG_UNG_0
MaNCC TenNCC DiaChi SanPham Gia
1 Hải Hà Đà Nẵng Kẹo mềm 100
1 Hải Hà Hà Nội Kẹo cứng 150
1 Hải Hà Hà Nội Bánh 200
2 Kinh đô Hồ Chí Minh Kẹo 120
2 Kinh đô Hồ Chí Minh Bánh 150
Dị thường khi cập nhật thông tin về nhà cung cấp như
thay đổi địa chỉ.
Bài giảng - CSDL và Phần mềm
11/3/2008 ứng dụng 5
Dị thường khi thêm bộ
Quan hệ CUNG_UNG_0
MaNCC TenNCC DiaChi SanPham Gia
1 Hải Hà Hà nội Kẹo mềm 100
1 Hải Hà Hà Nội Kẹo cứng 150
1 Hải Hà Hà Nội Bánh 200
2 Kinh đô Hồ Chí Minh Kẹo 120
2 Kinh đô Hồ Chí Minh Bánh 150
3 Bibica Đà nẵng NULL NULL
Dị thường khi thêm mới thông tin về nhà cung cấp nhưng
nhà cung cấp chưa cung cấp mặt hàng nào.
Bài giảng - CSDL và Phần mềm
11/3/2008 ứng dụng 6
Dị thường khi xóa bộ
Quan hệ CUNG_UNG_0
MaNCC TenNCC DiaChi SanPham Gia
1 Hải Hà Hà nội Kẹo mềm 100
1 Hải Hà Hà Nội Kẹo cứng 150
1 Hải Hà Hà Nội Bánh 200
2 Kinh đô Hồ Chí Minh Kẹo 120
Tồn tại nhà cung cấp chỉ cung cấp một mặt hàng.
Dị thường khi xóa thông tin về sự cung cấp xóa luôn
thông tin về nhà cung cấp.
Bài giảng - CSDL và Phần mềm
11/3/2008 ứng dụng 7
Tìm kiếm thông tin
MaNCC TenNCC DiaChi MaNCC SanPham Gia
1 Hải Hà Hà Nội 1 Kẹo mềm 100
2 Kinh đô Hồ Chí Minh 1 Kẹo cứng 150
CUNG_UNG_11 1 Bánh 200
2 Kẹo 120
2 Bánh 200
CUNG_UNG_12
Quan hệ CUNG_UNG_0 tách thành 2 quan hệ CUNG_UNG_11
và CUNG_UNG_12
Lưu trữ thông tin không dư thừa ???
Tìm kiếm thông tin dễ dàng ???
Bài giảng - CSDL và Phần mềm
11/3/2008 ứng dụng 8
Các cách tiếp cận
Từ trên xuống(Topdown):
Xây dựng sơ đồ thực thể liên kết ER từ các đặc tả
Chuyển đổi sơ đồ ER thành lược đồ CSDL quan hệ.
Chuẩn hóa lược đồ CSDL quan hệ (nếu cần)
Từ dưới lên (Bottom Up):
Xây dựng lược đồ quan hệ ban đầu từ các đặc tả.
Chuẩn hóa lược đồ quan hệ.
Bài giảng - CSDL và Phần mềm
11/3/2008 ứng dụng 9
1.2. Phụ thuộc hàm
a. Khái niệm
Cho quan hệ R, thuộc tính B của quan
hệ R được gọi là phụ thuộc hàm vào
thuộc tính A của quan hệ R nếu với mỗi
giá trị của A xác định duy nhất một giá
trị của B. A được gọi là xác định hàm
của B.
Ký hiệu: AB
Bài giảng - CSDL và Phần mềm
11/3/2008 ứng dụng 10
a. Khái niệm (t)
Tập các phụ thuộc hàm F của 1 lược
đồ quan hệ R là một tập gồm các
phụ thuộc hàm xác định trên R.
Ví dụ: Tập phụ thuộc hàm F={AB,
BC} của R(A,B,C)
Trong quan hệ R, ký hiệu A, B, C dành
cho các thuộc tính đơn, X, Y, Z dành
cho tập các thuộc tính.
Bài giảng - CSDL và Phần mềm
11/3/2008 ứng dụng 11
Ví dụ
Tập tất cả các
thuộc tính của MaNCC TenNCC SoNV DiaChi
quan hệ phải phụ
thuộc hàm vào S1 Hải Hà 20 Hà Nội
khóa. S2 Kinh Đô 10 Hà Nội
MaNCC TenNCC
S3 Bibica 30 HCM
MaNCC SoNV
MaNCC DiaChi
MaNCC: Khóa
F={ MaNCC TenNCC, MaNCC SoNV, MaNCC DiaChi}
Bài giảng - CSDL và Phần mềm
11/3/2008 ứng dụng 12
Ví dụ
Một tập thuộc tính là xác định hàm của
các thuộc tính khác thì chưa chắc là một
khóa.
TenNCC DiaChi
TenNCC không phải là khóa
MaNCC TenNCC SoNV DiaChi
S1 Hải Hà 20 Hà Nội
S2 Kinh Đô 10 Hà Nội
S3 Bibica 30 HCM
S4 Hải Hà 10 Hà Nội
Bài giảng - CSDL và Phần mềm
11/3/2008 ứng dụng 13
b. Hệ tiên đề Amstrong
Giả thiết
Lược đồ quan hệ R.
X,Y,Z: tập các thuộc tính thuộc R.
XY=XUY
Hệ 3 tiên đề với các phụ thuộc hàm:
Phản xạ:XYX; XYY
Tăng trưởng: XY thì XZYZ
Bắc cầu:XY, YZ thì XZ
Bài giảng - CSDL và Phần mềm
11/3/2008 ứng dụng 14
Luật suy ra từ hệ tiên đề
Luật hợp
Nếu XY, XZ thì XYZ
Luật tựa bắc cầu
Nếu XY, WYZ thì XWZ
Luật tách
Nếu XY, Z thuộc Y thì XZ
Bài giảng - CSDL và Phần mềm
11/3/2008 ứng dụng 15
c. Phụ thuộc hàm đầy đủ
và phụ thuộc bắc cầu
Phụ thuộc hàm đầy đủ
Y phụ thuộc hàm đầy đủ vào X nếu Y phụ
thuộc hàm vào X nhưng không phụ thuộc hàm
vào bất kỳ một tập con thực sự nào của X.
Ví dụ
Lược đồ R(A, B, C, D)
F={ABC; ABD; BD}
C phụ thuộc hàm đầy đủ vào {A,B}
D không phụ thuộc hàm đầy đủ vào
{A,B}
Bài giảng - CSDL và Phần mềm
11/3/2008 ứng dụng 16
Phụ thuộc bắc cầu
Phụ thuộc hàm X A, A được gọi là
phụ thuộc bắc cầu vào X nếu tồn
tại Y để cho X Y, Y A, Y / X
và A XY
Ví dụ:
F = {AB, BC}
AC: C phụ thuộc bắc cầu vào A
Bài giảng - CSDL và Phần mềm
11/3/2008 ứng dụng 17
d. Bao đóng và phủ của tập các phụ
thuộc hàm
Cho tập các phụ thuộc hàm F xác
định trên R.
Bao đóng F+ của tập các phụ thuộc
hàm F là tập tất cả các phụ thuộc hàm
được suy diễn logic từ F.
Phủ G của tập các phụ thuộc hàm F
(G≈F) là tập các phụ thuộc hàm xác
định trên R sao cho G+ = F+.
Bài giảng - CSDL và Phần mềm
11/3/2008 ứng dụng 18
X+ ?
Bao đóng X+ của thuộc tính X đối
với tập phụ thuộc hàm F là tất cả
các thuộc tính A mà phụ thuộc hàm
XA có thể được suy diễn logic từ F
nhờ hệ tiên đề Amstrong.
Một phụ thuộc hàm XY thuộc F+
nếu Y thuộc X+: Kiểm tra XY có
thuộc F+
Bài giảng - CSDL và Phần mềm
11/3/2008 ứng dụng 19
Ý nghĩa của phụ thuộc hàm
Chỉ ra các phụ thuộc dữ liệu/ràng
buộc có thể xảy ra giữa tập thuộc
tính của một lược đồ quan hệ.
Giúp xác định khóa tối thiểu, khóa
chính của quan hệ.
Giúp chuẩn hóa lược đồ quan hệ
Bài giảng - CSDL và Phần mềm
11/3/2008 ứng dụng 20