Bài giảng slide cơ sở dữ liệu_BKA_C5:Mô hình dữ liệu quan hệ và thiết kế cơ sở dữ liệu luận lý.
Trang 1Chương 5
Mô hình dữ liệu quan hệ
và thiết kế CSDL luận lý
Trang 3Các khái niệm và định nghĩa
Cơ sơ dữ liệu quan hệ
Trang 4Các khái niệm và định nghĩa
Trang 5f Tên thuộc tính (attribute name) phân biệt.
f Miền trị của thuộc tính.
f Giá trị rỗng (null value).
Trang 6Thuộc tính
Nhà cung cấp có các thuộc tính:
- Mã nhà cung cấp có tên là Snum.
- Tên nhà cung cấp có tên là Name.
- Thành phố có tên là City.
Miền trị của thuộc tính city được ký hiệu là dom(City).
Trang 7Quan hệ
Lược đồ quan hệ
f relation schema
f Lược đồ quan hệ R là một tập hữu hạn các
thuộc tính {A1, A2, , A n } và được ký hiệu là R (A1, A2, , A n ) với R là tên của lược đồ quan
Trang 8Lược đồ quan hệ: Supplier (Snum, Name, City)
Vị từ: “Mỗi nhà cung cấp có một mã nhà cung cấp Snum phân
biệt, tên nhà cung cấp Name, thuộc thành phố City”.
Bậc: 3
Trang 11Quan hệ
Các đặc tính của quan hệ
f Tên quan hệ phân biệt.
f Thuộc tính của quan hệ là thuộc tính đơn trị
(single-valued attribute).
f Tên thuộc tính phân biệt.
f Các giá trị của một thuộc tính phải thuộc cùng một miền.
f Thứ tự của các thuộc tính là không quan trọng.
f Mỗi bộ phải phân biệt.
f Thứ tự của các bộ là không quan trọng.
Trang 12Quan hệ
f Mỗi hàng là duy nhất.
f Thứ tự của các hàng là không quan trọng.
f Thứ tự của các cột là không quan trọng.
f Không phải mọi bảng đều là quan hệ.
Trang 13Quan hệ
Lược đồ quan hệ: Supplier (Snum, Name, City)
Khóa: Snum
Thuộc tính không khóa: Name, City
Siêu khóa: {Snum, Name}, …
Quan hệ: Supplier
S1 Nguyễn Trung Tiến SF
Bộ: u = (‘S1’, ‘Nguyễn Trung Tiến’, ‘SF’)
Trang 14phân biệt và nằm trong khoảng từ 1 đến m,
phải thỏa mãn đồng thời hai điều kiện sau đây:
(1) ∀r(R), ∀t1, t2 ∈ r, nếu t1 ≠ t2 thì t1[K] ≠ t2[K] (2) Không tồn tại K’ ⊂ K sao cho K’ thỏa mãn
điều kiện (1).
Trang 15Quan hệ
Khóa
f Khóa đơn (simple key).
f Khóa phức hợp (composite key).
f Siêu khóa (superkey) của R Một siêu khóa hiển nhiên của R là U.
f Một lược đồ quan hệ R phải có ít nhất một
khóa và có thể có nhiều khóa.
f Thuộc tính khóa (prime attribute).
f Thuộc tính không khóa (nonprime attribute):
được gạch dưới.
Trang 16Quan hệ
Khóa
f Khóa dự tuyển (candidate key).
f Khóa chính (primary key).
f Khóa ngoại (foreign key).
f Một lược đồ quan hệ chỉ có một khóa chính
và có thể có nhiều khóa dự tuyển.
f Khóa xí nghiệp (enterprise key).
Trang 17Quan hệ
Primary Key
Foreign Key (implements 1:N relationship between customer and order)
Combined, these are a composite
primary key (uniquely identifies the
order line)…individually they are
foreign keys (implement M:N
relationship between order and product)
Trang 18Quan hệ
Khóa xí nghiệp
Trang 19Lược đồ cơ sở dữ liệu
Lược đồ cơ sở dữ liệu
Lược đồ cơ sở dữ liệu:
Emp (Empnum, Name, Sal, Tax, Mgrnum, Deptnum) Dept (Deptnum, Name, Area, Mgrnum)
Supplier (Snum, Name, City) Supply (Snum, Pnum, Deptnum, Quan)
Trang 20f Toàn vẹn thực thể (entity integrity): thuộc tính khóa chính không có giá trị rỗng (null value).
f Các qui tắc nghiệp vụ.
Trang 21Ràng buộc toàn vẹn
Ràng buộc toàn vẹn tham chiếu
f referential integrity constraint
f Ràng buộc toàn vẹn tham chiếu là một qui tắc mà tất cả các giá trị của khóa ngoại (nếu
khác null) trong quan hệ bên phía nhiều phải
có trong các giá trị của khóa chính trong
quan hệ bên phía một.
f Qui tắc xóa các hàng dữ liệu
y Hạn chế (restrict).
y Tầng (cascade).
y Gán null (set-to-null).
Trang 22Ràng buộc toàn vẹn
Referential integrity constraints are drawn via arrows from
dependent to parent table
Ví dụ về ràng buộc toàn vẹn tham chiếu
Trang 23Biến đổi ERD thành các quan hệ
một quan hệ.
f Kiểu thực thể thông thường (regular entity type)
f Kiểu thực thể yếu (weak entity type)
f Thuộc tính của quan hệ.
f Thuộc tính phức hợp.
f Thuộc tính đa trị.
Trang 24Biến đổi ERD thành các quan hệ
CUSTOMER entity type with
composite attribute
CUSTOMER relation with address detail
Biến đổi thuộc tính phức hợp
Trang 25Biến đổi ERD thành các quan hệ
NOTE: the domain constraint for the
foreign key should NOT allow null
value if DEPENDENT is a weak entity Foreign key
Trang 26Biến đổi ERD thành các quan hệ
một quan hệ.
f Thuộc tính của quan hệ.
f Khóa của quan hệ.
Trang 27Biến đổi ERD thành các quan hệ
Multivalued attribute
becomes a separate
relation with foreign key
1–to–many relationship between original entity and new relation
Trang 28Biến đổi ERD thành các quan hệ
hoặc 2-ngôi có lượng số một-một.
Trang 29Biến đổi ERD thành các quan hệ
Trang 30Biến đổi ERD thành các quan hệ
hoặc 2-ngôi có lượng số một-nhiều.
Trang 31Biến đổi ERD thành các quan hệ
Note the mandatory one
Again, no null value in the foreign key…this is
because of the mandatory minimum cardinality
Trang 32Biến đổi ERD thành các quan hệ
2-ngôi có lượng số nhiều-nhiều thành một quan hệ.
f Khóa của quan hệ
f Thuộc tính của quan hệ.
Trang 33Biến đổi ERD thành các quan hệ
Trang 34Biến đổi ERD thành các quan hệ
thành một quan hệ.
f Khóa của quan hệ
f Thuộc tính của quan hệ.
Trang 35Biến đổi ERD thành các quan hệ
Trang 36Biến đổi ERD thành các quan hệ
Biến đổi mối liên kết ba ngôi
Trang 37Biến đổi ERD thành các quan hệ
thành một quan hệ.
f Thuộc tính của quan hệ.
f Thực thể kết hợp không có khóa riêng.
f Thực thể kết hợp có khóa riêng.
Trang 38Biến đổi ERD thành các quan hệ
Biến đổi kiểu thực thể kết hợp có khóa riêng
Trang 39Biến đổi ERD thành các quan hệ
Qui tắc 8: Biến đổi kiểu thực thể cha / kiểu thực thể con.
f Cách 1 - Kiểu thực thể cha và các kiểu thực thể con được biến đổi thành một quan hệ.
f Cách 2 - Mỗi kiểu thực thể con được biến đổi thành một quan hệ.
f Cách 3 - Kiểu thực thể cha được biến đổi thành một quan hệ kiểu cha; mỗi kiểu thực thể con được biến đổi thành một quan hệ kiểu con.
y Qui tắc tách biệt.
Trang 40Chuẩn hóa dữ liệu
Chuẩn hóa dữ liệu
y Có sự dư thừa dữ liệu là tối thiểu.
y Thêm vào, cập nhật và xóa bỏ dữ liệu mà không gây ra sự mâu thuẫn dữ liệu.
y Loại bỏ các bất thường (anomaly) của một quan
hệ để có được các quan hệ có cấu trúc tốt hơn, nhỏ hơn.
Trang 41Chuẩn hóa dữ liệu
một lược đồ quan hệ:
f Bất thường do sự lặp lại (repetition anomaly)
f Bất thường khi cập nhật (update anomaly)
f Bất thường khi thêm vào (insertion anomaly)
f Bất thường khi xóa bỏ (deletion anomaly)
Trang 42Chuẩn hóa dữ liệu
Supply
Bất thường do sự lặp lại
Trang 43Các bước của
Trang 44thuộc hàm vào X”, ký hiệu là X → Y và được
∀u, v ∈ r: u[X] = v[X] ⇒ u[Y] = v[Y]
tức là, với mỗi giá trị của X trong r chỉ tương ứng với một giá trị của Y.
f Khóa của một quan hệ xác định hàm các thuộc tính không khóa của quan hệ này.
Trang 45f partial functional dependency
f X → A được gọi là phụ thuộc hàm riêng phần
nếu tồn tại Y ⊂ X để cho Y → A.
Phụ thuộc hàm đầy đủ
f full functional dependency
Trang 46Phụ thuộc hàm
Phụ thuộc bắc cầu
f transitive dependency
f X → A được gọi là phụ thuộc bắc cầu nếu tồn
tại Y để cho X → Y, Y → A, Y −/→ X và A ∉ XY.
Trang 47Hệ luật suy diễn Armstrong
Hệ luật suy diễn Armstrong
Trang 48Bao đóng
Bao đóng của tập phụ thuộc hàm
f Cho F là một tập phụ thuộc hàm trong r(R).
f Bao đóng (closure) của tập phụ thuộc hàm F,
diễn Armstrong để tạo ra một phụ thuộc hàm
không thuộc tập hợp này.
vào lược đồ quan hệ R.
Trang 49Bao đóng
Bao đóng của tập thuộc tính
f Bao đóng của tập thuộc tính X dựa trên tập phụ thuộc hàm F (closure of X under F), ký hiệu là X+
F , là một tập thuộc tính Y sao cho:
Trang 50 Giải thuật tìm X+
F
Bao đóng
Nhập: Tập thuộc tính X và tập phụ thuộc hàm F.
Xuất: Bao đóng của X dựa trên tập F.
procedure Closure (X, F, Closure_X);
Trang 51Bài toán thành viên
Bao hàm
f implies
f Một tập phụ thuộc hàm F bao hàm phụ thuộc
hàm X → Y, ký hiệu là F |= X → Y, nếu mọi
quan hệ thỏa mãn tất cả các phụ thuộc hàm trong F thì cũng thỏa mãn X → Y.
Trang 52 Giải thuật kiểm tra F bao hàm phụ thuộc hàm X → Y
Bài toán thành viên
Nhập: Phụ thuộc hàm X → Y và tập phụ thuộc hàm F
Xuất: true nếu F |= X → Y, ngược lại là false
function Member (X, Y, F );
begin
if Y ⊆ Closure (X, F ) then Member := true
else Member := false;
end;
Trang 53Khóa của quan hệ
Nhập: Tập thuộc tính U của lược đồ quan hệ R
và tập phụ thuộc hàm F.
Xuất: Tập các khóa K của R.
Trang 54Khóa của quan hệ
Gọi left(f) là vế trái, right(f) là vế phải của phụ thuộc hàm f.
K := K − {K j}
R có tập khóa là K.
Trang 55Khóa của quan hệ
procedure set_of_keys (U, F, K);
Trang 56Dạng chuẩn 1
Định nghĩa
Lược đồ quan hệ R ở dạng chuẩn 1 (1NF
-First Normal Form) nếu mọi thuộc tính của R
đều chứa các giá trị nguyên tố (atomic value), giá trị này không là một danh sách các giá trị hoặc các giá trị phức hợp (composite value).
Các bất thường của quan hệ ở 1NF
f Thêm vào
f Cập nhật
f Xóa bỏ
f Nguyên nhân
Trang 58Lược đồ quan hệ R ở 1NF vì các thuộc tính của R không là thuộc
tính đa trị, không là thuộc tính phức hợp.
Trang 59Dạng chuẩn 2
Định nghĩa
Lược đồ quan hệ R ở dạng chuẩn 2 (2NF
-Second Normal Form) đối với tập phụ thuộc
hàm F nếu R ở dạng chuẩn 1 và mọi thuộc
tính không khóa đều phụ thuộc hàm đầy đủ
vào mọi khóa của R.
Các bất thường của quan hệ ở 2NF
f Thêm vào
f Cập nhật
f Xóa bỏ
f Nguyên nhân
Trang 61Khóa của R 2 : {Mãsv, Mônhọc}
R (Mãsv, Mônhọc, Họtên, Mãlớp, Tênlớp, Điểm)
R 1 (Mãsv, Họtên, Mãlớp, Tênlớp)
R 2 (Mãsv, Mônhọc, Điểm)
Trang 62Dạng chuẩn 3
Định nghĩa 1
Lược đồ quan hệ R ở dạng chuẩn 3
(3NF-Third Normal Form) đối với tập phụ thuộc
hàm F nếu R ở dạng chuẩn 1 và mọi thuộc
tính không khóa đều không phụ thuộc bắc
cầu vào một khóa của R.
Định nghĩa 2
Lược đồ quan hệ R ở dạng chuẩn 3 đối với tập phụ thuộc hàm F nếu R ở dạng chuẩn 1
và mọi phụ thuộc hàm X → A với A ∉ X thì X
là một siêu khóa của R hoặc A là một thuộc
tính khóa.
Trang 63Lược đồ quan hệ R1 không ở 3NF vì thuộc tính không khóa
Tênlớp phụ thuộc bắc cầu vào khóa Mãsv.
Mãsv → Mãlớp Mãlớp → Tênlớp
Trang 65Các phụ thuộc hàm: Khóa của R: {Sinhviên, Mônhọc}
{Sinhviên, Mônhọc} → Giảngviên
Lược đồ quan hệ R ở 3NF nhưng không ở BCNF vì định thuộc
Giảngviên không là siêu khóa của R.
Trang 67Dạng chuẩn Boyce-Codd
Định nghĩa
Lược đồ quan hệ R ở dạng chuẩn Boyce−Codd (BCNF - Boyce Codd Normal Form) đối với tập phụ thuộc hàm F nếu R ở dạng chuẩn 1 và mọi phụ thuộc hàm X → A
với A ∉ X thì X là một siêu khóa của R.
Boyce-Codd thì R cũng ở dạng chuẩn 3.
Trang 68Khóa của R 1 : Giảngviên
Khóa của R 2 : {Sinhviên, Giảngviên}
R (Sinhviên, Mônhọc, Giảngviên)
R 1 (Giảngviên, Mônhọc)
R 2 (Sinhviên, Giảngviên)
Lược đồ quan hệ R1 và R2 đều ở BCNF vì mọi định thuộc đều là siêu khóa.
Trang 71Phương pháp Phân rã
Phương pháp Phân rã (decomposition)
cho kết quả là một phân rã bảo toàn thông
tin ở dạng chuẩn Boyce-Codd.
Giải thuật Phân rã
Nhập: Tập thuộc tính U của lược đồ quan hệ R
và tập phụ thuộc hàm F (là phủ tối thiểu).
Xuất: Phân rã ρ của R là bảo toàn thông tin và ở
dạng chuẩn Boyce-Codd.