Bài giảng Quản trị CSDL và Phần mềm ứng dụng - Chương II: Thiết kế CSDL quan hệ
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Quản trị CSDL và Phần mềm ứng dụng - Chương II: Thiết kế CSDL quan hệ", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
Tài liệu đính kèm:
- bai_giang_quan_tri_csdl_va_phan_mem_ung_dung_chuong_ii_thiet.pdf
Nội dung text: Bài giảng Quản trị CSDL và Phần mềm ứng dụng - Chương II: Thiết kế CSDL quan hệ
- 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: A B 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={A B, B C} 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ạ:XY X; XY Y Tăng trưởng: X Y thì XZ YZ Bắc cầu:X Y, Y Z thì X Z 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 X Y, X Z thì X YZ Luật tựa bắc cầu Nếu X Y, WY Z thì XW Z Luật tách Nếu X Y, Z thuộc Y thì X Z 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={AB C; AB D; B D} 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 = {A B, B C} A C: 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 X A có thể được suy diễn logic từ F nhờ hệ tiên đề Amstrong. Một phụ thuộc hàm X Y thuộc F+ nếu Y thuộc X+: Kiểm tra X Y 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
- 2. Chuẩn hóa lược đồ quan hệ Khái niệm Là quá trình phân tách các lược đồ quan hệ thành các lược đồ quan hệ nhỏ hơn theo một số tiêu chuẩn nhằm loại bỏ việc lưu trữ dư thừa dữ liệu. Phép tách thành các lược đồ quan hệ đơn giản hơn, nhỏ hơn phải đảm bảo không làm mất mát thông tin. Bài giảng - CSDL và Phần mềm 11/3/2008 ứng dụng 21
- 2.1. Các dạng chuẩn Dạng chuẩn 1 Dạng chuẩn 2 Dạng chuẩn 3 Dạng chuẩn Boye-Codd Chuẩn 4 và các dạng chuẩn khác Bài giảng - CSDL và Phần mềm 11/3/2008 ứng dụng 22
- a. Dạng chuẩn 1(1NF) Định nghĩa Một lược đồ quan hệ R ở dạng chuẩn 1 nếu và chỉ nếu toàn bộ các miền giá trị của các thuộc tính trong R đều chỉ chứa các giá trị nguyên tố. Một quan hệ xác định trên lược đồ quan hệ ở dạng chuẩn 1 được gọi là quan hệ ở dạng chuẩn 1. Bài giảng - CSDL và Phần mềm 11/3/2008 ứng dụng 23
- Dạng chuẩn 1 (t) Một quan hệ thuộc dạng chuẩn 1 là một quan hệ trong đó mỗi miền giá trị của một thuộc tính chỉ chứa những giá trị nguyên tố (không phân chia được nữa). Một quan hệ thuộc dạng chuẩn 1 nếu mỗi một ô trong bảng chỉ chứa duy nhất một giá trị Bài giảng - CSDL và Phần mềm 11/3/2008 ứng dụng 24
- Ví dụ Quan hệ CUNG_UNG_0 chưa thuộc dạng chuẩn 1 MaNCC TenNCC DiaChi SanPham Gia 1 Hải Hà Hà Nội Kẹo mềm 100 Kẹo cứng 150 Bánh 200 2 Kinh Đô Hồ Chí Kẹo 120 Minh Bánh 200 Bài giảng - CSDL và Phần mềm 11/3/2008 ứng dụng 25
- Ví dụ(t) Quan hệ CUNG_UNG_1 đã thuộc dạng chuẩn 1 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 200 Bài giảng - CSDL và Phần mềm 11/3/2008 ứng dụng 26
- b. Dạng chuẩn 2 (2NF) Định nghĩa Một lược đồ quan hệ R được gọi là ở dạng chuẩn 2 nếu nó đã ở 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 khóa chính. Một quan hệ xác định trên lược đồ quan hệ ở dạng chuẩn 2 được nói là quan hệ ở dạng chuẩn 2. Bài giảng - CSDL và Phần mềm 11/3/2008 ứng dụng 27
- Ví dụ Quan hệ CUNG_UNG_1 chưa thuộc dạng chuẩn 2. MaNCC TenNCC DiaChi SanPham Gia 1 Hải Hà Hà Nội Kẹo mềm 100 Lặp 1 Hải Hà Hà Nội Kẹo cứng 150 1 Hải Hà Hà Nội Bánh 200 Lặp 2 Kinh đô Hồ Chí Minh Kẹo 120 2 Kinh đô Hồ Chí Minh Bánh 200 Bài giảng - CSDL và Phần mềm 11/3/2008 ứng dụng 28
- Ví dụ(t) R(M, T, D, S, G) = MTDSG= Lược đồ của quan hệ CUNG_UNG_1 Phụ thuộc hàm M TD, MS G MS: Khóa tối thiểu M, S: Thuộc tính khóa T, D, G: Thuộc tính không khóa T, D không phụ thuộc hàm đầy đủ vào MS Lược đồ quan hệ CUNG_UNG_1 không thuộc dạng chuẩn 2. Bài giảng - CSDL và Phần mềm 11/3/2008 ứng dụng 29
- Ví dụ 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 Ví dụ 2 thành quan hệ CUNG_UNG_11 và CUNG_UNG_12 tách từ quan hệ CUNG_UNG_1 đã thuộc dạng chuẩn 2. TenNCC, DiaChi phụ thuộc hàm đầy đủ vào MaNCC Gia phụ thuộc hàm đầy đủ vào {MaNCC, SanPham} Bài giảng - CSDL và Phần mềm 11/3/2008 ứng dụng 30
- c. Dạng chuẩn 3 Định nghĩa Một lược đồ quan hệ R được gọi là ở dạng chuẩn 3 nếu nó đã ở dạng chuẩn 2 và mọi thuộc tính không khóa của R đều chỉ phụ thuộc hàm duy nhất vào khóa chính. Một quan hệ xác định trên lược đồ quan hệ ở dạng chuẩn ba được nói là quan hệ ở dạng chuẩn 3. Bài giảng - CSDL và Phần mềm 11/3/2008 ứng dụng 31
- Ví dụ 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 Ví dụ 2 quan hệ CUNG_UNG_11 và CUNG_UNG_12 đã thuộc dạng chuẩn 3. MTDSG tách thành 1 lược đồ con MTD và MSG: MTD: T, D phụ thuộc chỉ vào khóa M MSG: G phụ thuộc hàm chỉ vào MS Bài giảng - CSDL và Phần mềm 11/3/2008 ứng dụng 32
- Ví dụ Ví dụ Lược đồ quan hệ: R(Store, Item, Departement, Manager) R(S,I,D,M) Tập các phụ thuộc hàm: F={SI D, SD M} Khóa tối thiểu: SI Lược đồ thuộc chuẩn 2: D, M phụ thuộc hàm đầy đủ vào SI Lược đồ không thuộc chuẩn 3: M phụ thuộc bắc cầu vào SI SI D; SI SD;SD M;SI M(*) Bài giảng - CSDL và Phần mềm 11/3/2008 ứng dụng 33
- d. Dạng chuẩn Boye-Codd (BCNF) Chuẩn 3 không đáp ứng được những lược đồ quan hệ Có nhiều hơn một khóa tối thiểu Các khóa tối thiểu là khóa kép Các khóa tối thiểu giao nhau Định nghĩa Một lược đồ quan hệ R thuộc dạng chuẩn Boye-Codd khi và chỉ khi mọi xác định hàm đều là một khóa. Bài giảng - CSDL và Phần mềm 11/3/2008 ứng dụng 34
- Ví dụ Lược đồ quan hệ: R(CITY, STREET, ZIP) Phụ thuộc hàm: CITY, STREET ZIP, ZIP CITY Khóa tối thiểu: {CITY, STREET}, {STREET, ZIP} Thuộc tính khóa: CITY, STREET, ZIP không có thuộc tính không khóa, thuộc dạng chuẩn 3. Xác định hàm ZIP không phải là một khóa lược đồ không thuộc chuẩn Boye- Codd Bài giảng - CSDL và Phần mềm 11/3/2008 ứng dụng 35
- Ví dụ CITY STREET ZIP 2 lược đồ con R1(CITY, ZIP) và Hà Nội Láng 0423 R2( STREET, ZIP) Hà Nội Phạm 0425 thuộc dạng Hùng chuẩn Boye- HCM Võ Thị 0811 Sáu Codd. CITY ZIP STREET ZIP Hà Nội 0423 Láng 0423 Hà Nội 0425 Phạm Hùng 0425 HCM 0811 Võ Thị Sáu 0811 Bài giảng - CSDL và Phần mềm 11/3/2008 ứng dụng 36
- Quan hệ giữa các dạng chuẩn Chuẩn1 Chuẩn 2 Chuẩn 3 Chuẩn Boye-Codd Bài giảng - CSDL và Phần mềm 11/3/2008 ứng dụng 37
- 2.2. Tách lược đồ quan hệ theo chuẩn 2.2.1.Tách bảo toàn thông tin và tách bảo toàn tập phụ thuộc hàm 2.2.2.Các thuật toán tách lược đồ quan hệ 2.2.3.Tách lược đồ quan hệ theo từng bước Bài giảng - CSDL và Phần mềm 11/3/2008 ứng dụng 38
- 2.2.1.Tách bảo toàn thông tin và tách bảo toàn tập phụ thuộc hàm a. Phép tách bảo toàn thông tin Khái niệm Phép tách bảo toàn thông tin là phép tách lược đồ quan hệ sao cho khi kết nối tự nhiên các quan hệ xác định trên các lược đồ con, kết quả cho lại quan hệ ban đầu. Bài giảng - CSDL và Phần mềm 11/3/2008 ứng dụng 39
- Phép kết nối tự nhiên Phép ghép các cặp R(A, B, C) a1 b1 1 bộ của hai quan a2 b2 2 hệ trên các thuộc a3 b3 3 tính bằng nhau S(D, E) của hai quan hệ, 1 e1 một trong hai 2 e2 thuộc tính của 3 e3 phép so sánh “=“ R kết nối tự nhiên với được loại bỏ sau s với C=D a1 b1 1 e1 khi thực hiện phép a2 b2 2 e2 ghép. a3 b3 3 e3 Bài giảng - CSDL và Phần mềm 11/3/2008 ứng dụng 40
- Ví dụ Lược đồ quan hệ MTDSG = (MaNCC, TenNCC, DiaChi, SanPham, Gia) (M, T, D, S, G); Tập phụ thuộc hàm F={M TD, MS G} Quan hệ xác định trên lược đồ MTDSG: MaNCC TenNCC DiaChi SanPham Gia 1 Hải Hà Hà Nội Kẹo mềm 10 1 Hải Hà Hà Nội Kẹo cứng 15 1 Hải Hà Hà Nội Bánh ngọt 40 1 Hải Hà Hà Nội Bánh mỳ 16 2 Kinh Đô Hồ Chí Minh Kẹo 12 2 Kinh Đô Hồ Chí Minh Bánh quy 45 3 Kinh Đô Đà Nẵng Bánh mỳ 10 Bài giảng - CSDL và Phần mềm 11/3/2008 3 Kinh Đô ứng dụĐngà Nẵng Bánh quy 30 41
- Ví dụ(t) MaNCC SanPham Gia 1 Kẹo mềm 10 MaNCC TenNCC DiaChi 1 Kẹo cứng 15 1 Bánh ngọt 40 1 Hải Hà Hà Nội 1 Bánh mỳ 16 2 Kinh Đô Hồ Chí Minh 2 Kẹo 12 3 Kinh Đô Đà Nẵng 2 Bánh quy 45 3 Bánh mỳ 10 3 Bánh quy 30 Phép tách bảo toàn thông tin Lược đồ con 1: MTD=(M, T, D) Lược đồ con 2: MSG=(M, S, G) Bài giảng - CSDL và Phần mềm 11/3/2008 ứng dụng 42
- Ví dụ(t) TenNCC SanPham Gia Hải Hà Kẹo mềm 10 Hải Hà Kẹo cứng 15 MaNCC TenNCC DiaChi Hải Hà Bánh ngọt 40 1 Hải Hà Hà Nội Hải Hà Bánh mỳ 16 2 Kinh Đô Hồ Chí Minh Kinh Đô Kẹo 12 3 Kinh Đô Đà Nẵng Kinh Đô Bánh quy 45 Kinh Đô Bánh mỳ 10 Kinh Đô Bánh quy 30 Phép tách mất mát thông tin Lược đồ con 1: MTD=(M, T, D) Lược đồ con 2: MSG=(M, S, G) Bài giảng - CSDL và Phần mềm 11/3/2008 ứng dụng 43
- Thuật toán kiểm tra Kiểm tra phép tách không mất mát thông tin của một lược đồ quan hệ thành nhiều lược đồ quan hệ con. Vào Lược đồ quan hệ: R=(A1, A2, An) Tập phụ thuộc hàm F trên R Phép tách ρ=(R1, R2, Rk) Ra Một khẳng định rằng phép tách ρ có mất mát thông tin hay không? Bài giảng - CSDL và Phần mềm 11/3/2008 ứng dụng 44
- Thuật toán kiểm tra (t) Phương pháp Bước 1: Xây dựng một bảng k hàng, n cột Hàng i tương ứng với Ri Cột j tương ứng với thuộc tính Aj Giá trị tại hàng i, cột j aj: Nếu Aj thuộc Ri bij: Nếu Aj không thuộc Ri Bài giảng - CSDL và Phần mềm 11/3/2008 ứng dụng 45
- Ví dụ (bước 1) Lược đồ quan hệ MTDSG Tập phụ thuộc hàm F={M TD, MS G} Tách thành hai lược đồ MTD, MSG M T D S G R1= MTD a1 a2 a3 b14 b15 R2= MSG a1 b22 b23 a4 a5 Bài giảng - CSDL và Phần mềm 11/3/2008 ứng dụng 46
- Phương pháp Bước 2: Lặp Áp dụng các phụ thuộc hàm cho bảng vừa được xây dựng: X Y: Nếu tồn tại hai hàng có cùng giá trị trên X thì làm bằng nhau các giá trị trên Y. Nếu có giá trị một hàng thuộc Y là aj thì các giá trị khác thuộc Y gán bằng aj. Nếu không gán bằng một trong các giá trị bij. Dừng khi các giá trị trong bảng không thể thay đổi được nữa Bài giảng - CSDL và Phần mềm 11/3/2008 ứng dụng 47
- Ví dụ (bước 2) M T D S G R1= MTD a1 a2 a3 b14 b15 R2= MSG a1 b22 b23 a4 a5 Áp dụng phụ thuộc hàm M TD Thay b22 = a2 Thay b23 = a3 Bài giảng - CSDL và Phần mềm 11/3/2008 ứng dụng 48
- Phương pháp Bước 3: Kiểm tra Nếu trong bảng có một hàng gồm toàn ký hiệu a1, a2, a3, an thì phép tách là không mất mát thông tin. Ngược lại phép tách là mất mát thông tin. Bài giảng - CSDL và Phần mềm 11/3/2008 ứng dụng 49
- Ví dụ M T D S G R1= MTD a1 a2 a3 b14 b15 R2= MSG a1 a2 a3 a4 a5 Phép tách trên là không mất mát thông tin. Bài giảng - CSDL và Phần mềm 11/3/2008 ứng dụng 50
- Định lý kiểm tra Kiểm tra phép tách không mất mát thông tin của một lược đồ quan hệ thành hai lược đồ quan hệ con. Cho lược đồ quan hệ R Tập phụ thuộc hàm F trên R ρ=(R1, R2) Phép tách là không mất mát thông tin nếu R1 R2 R1\R2 hoặc R1 R2 R2\R1. Bài giảng - CSDL và Phần mềm 11/3/2008 ứng dụng 51
- Ví dụ Lược đồ MTDSG tách thành hai lược đồ con MTD và MSG: MTD MSG = M MTD\MSG = TD M TD thuộc F+: Phép tách là bảo toàn thông tin. Lược đồ MTDSG tách thành hai lược đồ con MTD và TSG MTD TSG = T MTD\TSG = MD TSG\MTD = SG T MD và T SG không thuộc F+: Phép tách là mất mát thông tin. Bài giảng - CSDL và Phần mềm 11/3/2008 ứng dụng 52
- b. Phép tách bảo toàn tập phụ thuộc hàm Khái niệm Phép tách lược đồ quan hệ R thành các lược đồ quan hệ con Ri là bảo toàn các tập phụ thuộc hàm nếu hợp của các phụ thuộc hàm là hình chiếu của F trên Ri suy diễn logic được tất cả các phụ thuộc hàm trong F. Hình chiếu của F lên Ri là các phụ thuộc hàm X Y thỏa mãn: X, Y thuộc Ri X Y thuộc F+ Bài giảng - CSDL và Phần mềm 11/3/2008 ứng dụng 53
- Ví dụ Cho Lược đồ R = ACBCD Tập phụ thuộc hàm F = { A B, C D} Phép tách ρ = (R1,R2): R1= AB, R2 = CD Phép tách bảo toàn tập phụ thuộc hàm Hình chiếu của F lên R1: A B, AB A, AB B Hình chiếu của F lên R2: C D, CD C, CD D Các phụ thuộc hàm trong F có thể được suy diễn từ các hình chiếu này Phép tách không bảo toàn thông tin AB CD = Φ AB\CD = AB CD\AB = CD Bài giảng - CSDL và Phần mềm 11/3/2008 ứng dụng 54
- Ví dụ Cho Lược đồ R = CSZ Tập phụ thuộc hàm F={CS Z, Z C} Phép tách ρ = (R1,R2): R1= CZ, R2 = SZ Phép tách không bảo toàn tập phụ thuộc hàm Hình chiếu của F lên R1: Z C, CZ C, CZ Z, Tập phụ thuộc hàm trong R2: SZ S, SZ Z, Phụ thuộc hàm CS Z không thể được suy ra từ các hình chiếu này. Phép tách bảo toàn thông tin CZ SZ CZ\SZ hay Z C Bài giảng - CSDL và Phần mềm 11/3/2008 ứng dụng 55
- Ví dụ Cho Lược đồ R = MTDSG Tập phụ thuộc hàm F={M TD, MS G} Phép tách ρ = (R1 ,R2): R1= MTD, R2 = MSG Phép tách bảo toàn tập phụ thuộc hàm Hình chiếu của F lên R1: M TD, Hình chiếu của F lên R2: MS G, Các phụ thuộc hàm trong F có thể được suy diễn logic từ các hình chiếu này. Phép tách bảo toàn thông tin Đã chứng minh Bài giảng - CSDL và Phần mềm 11/3/2008 ứng dụng 56
- 2.2.2. Các thuật toán tách lược đồ quan hệ a.Thuật toán tìm một khóa tối thiểu của lược đồ quan hệ dựa vào tập phụ thuộc hàm b.Thuật toán tách không mất mát thông tin và bảo toàn tập phụ thuộc hàm về dạng chuẩn 3 c.Thuật toán tách không mất mát thông tin về dạng chuẩn Boye- Codd Bài giảng - CSDL và Phần mềm 11/3/2008 ứng dụng 57
- a. Thuật toán tìm một khóa tối thiểu của lược đồ quan hệ dựa vào tập phụ thuộc hàm Khóa của lược đồ quan hệ Giá trị của tập thuộc tính khóa trên mỗi bộ của quan hệ là duy nhất Mọi thuộc tính của quan hệ phải phụ thuộc hàm vào khóa. Thuật toán tìm một khóa tối thiểu Loại bỏ dần từng thuộc tính thuộc khóa của quan hệ cho tới khi tập thuộc tính nhỏ nhất còn lại vẫn thỏa mãn là một khóa khóa tối thiểu của quan hệ. Bài giảng - CSDL và Phần mềm 11/3/2008 ứng dụng 58
- b.Thuật toán tách không mất mát thông tin và bảo toàn tập phụ thuộc hàm về dạng chuẩn 3 Vào: Lược đồ quan hệ R Tập phụ thuộc hàm F (phủ tối thiểu) Ra: Tập sơ đồ con, trong đó mỗi sơ đồ con Thuộc dạng chuẩn 3 Phụ thuộc hàm là hình chiếu của F lên nó Bài giảng - CSDL và Phần mềm 11/3/2008 ứng dụng 59
- b.Thuật toán tách không mất mát thông tin và bảo toàn tập phụ thuộc hàm về dạng chuẩn 3 (t) Phương pháp: Nếu tồn tại một thuộc tính thuộc R không có mặt ở vế trái hay vế phải của bất kỳ phụ thuộc hàm nào thì tách thuộc tính này ra khỏi R. Nếu tồn một tại phụ thuộc hàm liên quan tới mọi thuộc tính của R thì kết quả là R. Nếu các phụ thuộc hàm dạng: X A : lược đồ con ở dạng XA. X A1, X An: lược đồ con ở dạng XA1 An Bài giảng - CSDL và Phần mềm 11/3/2008 ứng dụng 60
- Ví dụ Cho lược đồ R = ABCDEG Tập phụ thuộc hàm F = {AB C, C A, BC D, ACD B, D EG, BE C, CG BD, CE AG} Tập phụ thuộc hàm tối thiểu F’ = {AB C, C A, BC D, D E, D G, BE C, CG B, CE G} Phép tách ρ = (ABC, CA, BCD, DEG, BEC, CGB, CEG) = (ABC, BCD, DEG, BEC, CGB, CEG) gồm các lược đồ con đã ở dạng chuẩn 3 bảo toàn tập phụ thuộc hàm và bảo toàn thông tin. Bài giảng - CSDL và Phần mềm 11/3/2008 ứng dụng 61
- c.Thuật toán tách không mất mát thông tin về dạng chuẩn Boye-Codd Vào : Lược đồ quan hệ R Tập phụ thuộc hàm F Ra: Tập sơ đồ con, trong đó mỗi sơ đồ con Thuộc dạng chuẩn Boye-Codd Phụ thuộc hàm là hình chiếu của F lên nó Bài giảng - CSDL và Phần mềm 11/3/2008 ứng dụng 62
- c.Thuật toán tách không mất mát thông tin về dạng chuẩn Boye-Codd (t) Phương pháp: ρ = (R) Lặp S là một sơ đồ quan hệ trong ρ không ở dạng chuẩn Boye-Codd. Xét một phụ thuộc hàm X A của S. Nếu X không chứa khóa của S, A không thuộc X thì S được tách thành: S1 = A U{X} S2 = S\{A} Dừng cho tới khi mọi sơ đồ con trong ρ đã thuộc dạng chuẩn Boye-Codd Bài giảng - CSDL và Phần mềm 11/3/2008 ứng dụng 63
- 2.2.3. Tách lược đồ quan hệ theo từng bước Quy tắc Quy tắc 1: Loại bỏ các thuộc tính phụ thuộc chỉ một phần vào khóa chính. Chuẩn hóa về 2NF Quy tắc 2: Loại bỏ các thuộc tính không khóa không phụ thuộc vào khóa chính. Chuẩn hóa về 3NF Quy tắc 3: Loại bỏ các thuộc tính là giao của các khóa tối thiểu. Chuẩn hóa về BCNF Bài giảng - CSDL và Phần mềm 11/3/2008 ứng dụng 64
- Ví dụ Cho quan hệ R(A1, A2, A3, A4, A5, A6, A7, A8, A9) trong đó A1A2A3 là khóa với sơ đồ phụ thuộc hàm: Quan hệ R ở dạng chuẩn nào? Tại sao? Tách R thành các quan hệ ở dạng chuẩn BCNF. Bài giảng - CSDL và Phần mềm 11/3/2008 ứng dụng 65
- 3. Ràng buộc toàn vẹn trong CSDL quan hệ (Integrity Constraint) 3.1. Khái niệm ràng buộc toàn vẹn Ràng buộc toàn vẹn là điều kiện bất biến không được vi phạm trong một CSDL. Các điều kiện mà mọi thể hiện của quan hệ phải thỏa mãn RBTV xuất phát từ các quy tắc quản lý được áp đặt lên thế giới thực Ví dụ: RBTV1: Mỗi bộ của quan hệ DON_DAT_HANG phải ứng với một đơn đặt hàng với mã đơn đặt hàng (MaDDH) duy nhất. RBTV2: Mọi chi tiết về đơn đặt hàng phải có mã hàng (MaHang) thuộc về danh mục hàng. RBTV3: Mã đơn đặt hàng (MaDDH) khác NULL. RBTV4: Tổng các trị giá của các mặt hàng trong CHI_TIET_DON_HANG có cùng MaDDH phải bằng TongGT ghi trong DON_DAT_HANG Mục đích của RBTV Đảm bảo tính nhất quán của dữ liệu(RBTV2, RBTV4) Đảm bảo ngữ nghĩa nghĩa thực tế của dữ liệu(RBTV1, RBTV3) Bài giảng - CSDL và Phần mềm 11/3/2008 ứng dụng 66
- Khái niệm ràng buộc toàn vẹn RBTV được xác định và mô tả trong quá trình thiết kế csdl. RBTV có 3 yếu tố chính: Nội dung Bối cảnh Tầm ảnh hưởng RBTV được khai báo thông qua ngôn ngữ định nghĩa và thao tác dữ liệu và được hỗ trợ bởi hqt csdl. Mệnh đề check, arssertion, triger RBTV được kiểm tra và xử lý bởi hqt csdl. Bài giảng - CSDL và Phần mềm 11/3/2008 ứng dụng 67
- Nội dung của RBTV Được phát biểu Ngôn ngữ tự nhiên: Đơn giản dễ hiểu Ngôn ngữ hình thức: khó hiểu Đại số quan hệ, phép tính quan hệ, mã giả Biểu thức toán học Ví dụ: RBTV5: Mỗi nhân viên có một mã số dùng để phân biệt với những nhân viên khác t1,t2 NHAN _VIEN(t1 t2 t1.MaNV t2.MaNV ) RBTV6: Mỗi nhân viên làm việc trong một phòng ban NHAN _VIENMaPhong PHONG _ BAN[MaPhong] RBTV7: Mỗi phòng phải có ít nhất một nhân viên s PHONG _ BAN(t NHAN _VIEN(t.MaPhong s.MaPhong)) Bài giảng - CSDL và Phần mềm 11/3/2008 ứng dụng 68
- Bối cảnh của RBTV Là những quan hệ mà RBTV có hiệu lực: Một hoặc nhiều quan hệ Ví dụ RBTV5 có bối cảnh là quan hệ NHAN_VIEN RBTV6, RBTV7 có bối cảnh là quan hệ NHAN_VIEN, PHONG_BAN Bài giảng - CSDL và Phần mềm 11/3/2008 ứng dụng 69
- 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, xóa, sửa Bảng tầm ảnh hưởng dùng để xác định thời điểm cần kiểm tra RBTV Bài giảng - CSDL và Phần mềm 11/3/2008 ứng dụng 70
- Xây dựng bảng tầm ảnh hưởng cho từng RBTV Nội dung mỗi ô +: Cần phải kiểm tra RBTV - : Không cần phải kiểm tra RBTV Tên RBTV Thêm Xóa Sửa Quan hệ 1 + + - Quan hệ k + - - Các quan hệ bối cảnh Bài giảng - CSDL và Phần mềm 11/3/2008 ứng dụng 71
- Ví dụ RBTV5 Thêm Xóa Sửa NHAN_VIEN + - - RBTV6 Thêm Xóa Sửa NHAN_VIEN + - + PHONG_BAN - + - RBTV7 Thêm Xóa Sửa NHAN_VIEN - - + PHONG_BAN + - - Bài giảng - CSDL và Phần mềm 11/3/2008 ứng dụng 72
- Xây dựng bảng tầm ảnh hưởng tổng hợp Xây dựng trên cơ sở bảng tầm ảnh hưởng của các RBTV Để xác định thời điểm kiểm tra RBTV khi một thao tác cập nhật trên quan hệ nào đó được thực hiện Tên RBTV 1 Tên RBTV r T X S T X S Quan hệ 1 + + - + - + Quan hệ n - - + + + + Bài giảng - CSDL và Phần mềm 11/3/2008 ứng dụng 73
- Ví dụ Xây dựng bảng tầm ảnh hưởng cho các ràng buộc toàn vẹn RBTV1 , RBTV7 cho lược đồ CSDL quan hệ siêu thị M ? Bài giảng - CSDL và Phần mềm 11/3/2008 ứng dụng 74
- Phân loại RBTV Dựa trên yếu tố bối cảnh của RBTV RBTV có bối cảnh là một quan hệ/RBTV trên thuộc tính RBTV miền giá trị RBTV liên thuộc tính RBTV liên bộ RBTV có bối cảnh là nhiều quan hệ/RBTV trên quan hệ RBTV tham chiếu RBTV thuộc tính tổng hợp RBTV liên thuộc tính RBTV liên bộ Bài giảng - CSDL và Phần mềm 11/3/2008 ứng dụng 75
- 3.2. Ràng buộc toàn vẹn trên thuộc tính a.Ràng buộc toàn vẹn về miền giá trị của một thuộc tính RBTV đặc tả tập giá trị có thể kết hợp với một thuộc tính. Ví dụ: quan hệ NHAN_VIEN RBTV8: Tuổi của nhân viên trong công ty phải lớn hơn 18 và nhỏ hơn 65. RBTV8 T X S t NHAN _VIEN(18 t.Tuoi 65) NHAN_VIEN + - + Bài giảng - CSDL và Phần mềm 11/3/2008 ứng dụng 76
- b. RBTV liên thuộc tính RBTV có liên quan tới nhiều thuộc tính của một quan hệ. Thông thường đó là các phụ thuộc tính toán, hoặc một suy diễn từ giá trị của một hay nhiều thuộc tính trong cùng một bộ giá trị. Ví dụ Quan hệ NHAN_VIEN RBTV9: Nếu nhân viên có giới tính là nữ tuổi của nhân viên trong công ty phải lớn hơn 18 và nhỏ hơn 55. t NHAN _VIEN (18 t.Tuoi 55(t.GioiTinh Nu)) RBTV9 T X S NHAN_VIEN + - + Bài giảng - CSDL và Phần mềm 11/3/2008 ứng dụng 77
- c. RBTV liên bộ, liên thuộc tính RBTV có liên quan tới nhiều bộ và có thể tới nhiều thuộc tính của (các) bộ giá trị trong một quan hệ. Ví dụ: RBTV5 Bài giảng - CSDL và Phần mềm 11/3/2008 ứng dụng 78
- 3.3. Ràng buộc toàn vẹn trên quan hệ a. RBTV tham chiếu/RBTV về phụ thuộc tồn tại (phụ thuộc về khóa ngoại) Bộ giá trị của quan hệ này được thêm vào một cách hợp lệ nếu tồn tại một bản ghi tương ứng trong một quan hệ khác. Đảm bảo rằng giá trị xuất hiện trong một quan hệ đối với một tập các thuộc tính đã cho cũng xuất hiện đối với một tập các thuộc tính nhất định trong một quan hệ khác. Bài giảng - CSDL và Phần mềm 11/3/2008 ứng dụng 79
- a. Ràng buộc toàn vẹn về phụ thuộc tồn tại (phụ thuộc về khóa ngoại) Ví dụ: RBTV1 : Mỗi bộ của CHI_TIET_DON_HANG phải có một đơn hàng với MaDDH tương ứng t CHI _TIET _ DON _ HANG(u DON _ HANG(t.MaDDH u.MaDDH)) RVTV4 T X S CHI_TIET_DON_HANG + - - DON_HANG - + - Bài giảng - CSDL và Phần mềm 11/3/2008 ứng dụng 80
- Ví dụ RBTV2 : Mỗi bộ của CHI_TIET_DON_HANG phải có MaHang thuộc về danh mục hàng trong quan hệ MAT_HANG Biểu diễn hình thức ? Bảng xác định tầm ảnh hưởng? Bài giảng - CSDL và Phần mềm 11/3/2008 ứng dụng 81
- b. Ràng buộc toàn vẹn tổng hợp Khi có sự hiện diện của 1 thuộc tính mang tính chất tổng hợp (tức là giá trị của thuộc tính có thể được tính toán từ giá trị của các thuộc tính khác trên một hay nhiều bộ giá trị của các quan hệ trong CSDL) Ví dụ: DON_DAT_HANG(MaDDH, NgayLap, TenKH, TongGT) CHI_TIET_DON_HANG(MaDDH, TenSanPham, SoLuong, Giatri). RBTV4: Tổng các trị giá của các mặt hàng trong CHI_TIET_DON_HANG có cùng MaDDH phải bằng TongGT ghi trong DON_DAT_HANG . Bài giảng - CSDL và Phần mềm 11/3/2008 ứng dụng 82
- t DON _ DAT _ HANG(t.TongGT u.GiaTri(u CHI _TIET _ DON _ HANG u.MaDDH t.MaDDH)) RVTV4 T X S CHI_TIET_DON_HANG + + + DON_DAT_HANG + - + Bài giảng - CSDL và Phần mềm 11/3/2008 ứng dụng 83
- c. RBTV liên thuộc tính Mối quan hệ giữa các thuộc tính trong nhiều lược đồ quan hệ Ví dụ Quan hệ: NHAN_VIEN (TenNV, Luong, NgaySinh TenPhong) PHONG_BAN(TenPhong, MaPhong, NguoiQuanLy, NgayNhanChuc) RBTV 10: Ngày nhận chức của trưởng phòng phải lớn hơn ngày sinh Biểu diễn hình thức. Bảng xác định tầm ảnh hưởng? Bài giảng - CSDL và Phần mềm 11/3/2008 ứng dụng 84
- d.Ràng buộc toàn vẹn liên bộ Mối quan hệ giữa các bộ trên nhiều lược đồ quan hệ Ví dụ Quan hệ NHAN_VIEN, PHONG_BAN RBTV11: Lương của nhân viên không được cao hơn lương trưởng phòng Biểu diễn hình thức? Bảng xác định tầm ảnh hưởng? Bài giảng - CSDL và Phần mềm 11/3/2008 ứng dụng 85
- Chỉ mục Functional dependency : Phụ thuộc hàm Functional determinant: Xác định hàm Normal Form: Dạng chuẩn Bài giảng - CSDL và Phần mềm 11/3/2008 ứng dụng 86
- Phụ lục Thuật toán tìm phủ tối thiểu của một tập phụ thuộc hàm Thuật toán 4.2 (128, Nguyên lý của các hệ csdl) Bài giảng - CSDL và Phần mềm 11/3/2008 ứng dụng 87