Chương I - LÝ THUYẾT THIẾT KẾ CƠ SỞ DỮ LIỆU QUAN HỆ Trong lý thuyết thiết kế cơ sở dữ liệu quan hệ có hai cách tiếp cận, cách thứ nhất thiết kế theo phương pháp Bottom – Up (dưới - lên), cách thứ hai thiết kế theo phương pháp Top – Down (trên – xuống). Theo phương pháp Bottom – Up: Mục đích của việc thiết kế cơ sở dữ liệu quan hệ là đưa ra một tập các lược đồ quan hệ để lưu trữ các thông tin của một tổ chức xí nghiệp, ngân hàng, đại học,. một cách không dư thừa đồng thời cũng cho phép cập nhật, truy vấn dễ dàng. Để đạt được mục đích đó khi nghiên cứu và khảo sát bài toán quản lý trong thực tiễn; ta phải xác định các thuộc tính cần quản lý, mối quan hệ giữa các thuộc tính (các phụ thuộc hàm); tiếp theo là chuẩn hoá các lược đồ quan hệ, thực chất là thực hiện các phép tách để có được các lược đồ theo các dạng chuẩn (1NF, 2NF, 3NF, BCNF, 4NF, 5NF); tuy nhiên các phép tách phải đảm bảo các điều kiện như: bảo toàn thuộc tính, bảo toàn phụ thuộc hàm, không mất mát thông tin.
Theo phương pháp Top – Down: Khi nghiên cứu và khảo sát bài toán quản lý trong thực tiễn; ta phải xác định các đối tượng của cơ sở dữ liệu và mối liên hệ giữa các đối tượng; tiếp theo là mô hình hoá thành các kiểu thực thể, kiểu liên kết, xây dựng lược đồ thực thể liên kết ER; cuối cùng là áp dụng các nguyên tắc chuyển từ mô hình thực thể liên kết ER sang mô hình quan hệ. Phương pháp thiết kế Bottom – Up 1. Các khái niệm cơ bản: - Thuộc tính: Thuộc tính của một quan hệ là cột của bảng quan hệ. Trong mô hình quan hệ không cho phép thuộc tính phức hợp, đa trị.
Chỉ được là thuộc tính đơn, đơn trị. - Miền giá trị: Là giới hạn dữ liệu của thuộc tính ký hiệu DOM(A) trong đó A là một thuộc tính. Ví du: Với thuộc tính Lương miền giá trị là: 0 – 1000000 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com 6 - Lược đồ quan hệ: Mô tả cấu trúc của một quan hệ, được ký hiệu là R(A1, A2, ., An) trong đó R là tên quan hệ và Ai (i=1.n) là các thuộc tính. Ví dụ: Lược đồ quan hệ NHANVIEN( HOTEN, MSBHXH, DIACHI, LUONG, GIOITINH, NGAYSINH ) - Quan hệ: Là một tập con của tích Descartes của danh sách các miền giá trị, được ký hiệu là: r={t1, t2,.
Trong đó: + ti = <vi1, vi2, ., vin> + vij DOM(Aj) (i=1.n) Chú ý: + Một quan hệ chính là một bảng hai chiều: + Số các thuộc tính của quan hệ là số ngôi của quan hệ. + Thứ tự các dòng, các cột trong bảng quan hệ không quan trọng. + Các giá trị trong bảng phải đơn trị và phù hợp với kiểu dữ liệu của thuộc tính (ký tự, số, Logic, Ngày). + Dữ liệu của quan hệ có thể thay đổi theo thời gian do thường xuyên phải cập nhật dữ liệu.
+ Quan hệ Nhân viên là quan hệ 6 ngôi. - Lược đồ CSDL: Là một tập các lược đồ quan hệ ký hiệu là: S = {R1, R2, ., Rm}, trong đó Ri (i=1.m) là một lược đồ quan hệ. - CSDL Quan hệ: Là một tập các quan hệ ký hiệu là: DB = {r1, r2,. , rm}, trong đó ri (i=1.m) là quan hệ (thể hiện của Ri).
Trong đó: + SK: là một hoặc nhiều cột (thuộc tính) trong bảng. + t1, t2 là các bộ giá trị của mỗi hàng trong bảng. + t1[SK], t2[SK] theo thứ tự là các bộ giá trị của SK tương ứng với các bộ t1, t2. LUAN VAN CHAT LUONG download : add luanvanchat@agmail.
- Khoá chính (PK): Là một trong các khoá dự tuyển. - Khoá ngoài (FK): Một nhóm các thuộc tính gọi là khoá ngoài (FK) của một quan hệ r1 tham chiếu đến quan hệ r2 nếu miền giá trị FK của r1 phải giống miền giá trị PK của r2. - Ràng buộc: + Ràng buộc miền: vi DOM(Ai) + Ràng buộc Khoá: Giá trị của khoá phải duy nhất. + Ràng buộc toàn vẹn thực thể: Giá trị của khoá chính (PK) phải xác định (không có giá trị null).
+ Ràng buộc toàn tham chiếu: Nếu Khoá ngoài của R1 tham chiếu đến khoá chính của R2 thì phải có cùng miền giá trị với khoá chính của R2. Mỗi giá trị của Khoá ngoài của R1 hoặc là phải có mặt trong khoá chính của R2 hoặc là nhận giá trị Null (với ngữ nghĩa là một giá trị tồn tại nhưng không biết). Các phép toán trong mô hình quan hệ.1 Phép toán cập nhật. - Phép chèn (INSERT): Là phép thêm một bộ (bản ghi) vào quan hệ r.
- Phép loại bỏ (DELETE): Là phép loại bỏ một bộ ra khỏi quan hệ r. - Phép cập nhật (UPDATE): Là phép thay đổi giá trị của các thuộc tính trong một hoặc một số bộ nào đó.2 Đại số quan hệ. - Các phép toán tập hợp: Các quan hệ tham gia một phép toán tập hợp (hợp, giao, trừ) phải có cùng cấu trúc. + Phép hợp r s: Thực chất của phép hợp là xây dựng một tập các bộ thuộc quan hệ r hoặc quan hệ s hoặc cả 2 quan hệ.
LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com 8 Phép hợp được ký hiệu và định nghĩa là: r s = { t t r hoặc t s } + Phép giao r s: Thực chất của phép giao là xây dựng một tập các bộ thuộc cả 2 quan hệ r và s. Phép giao được ký hiệu và định nghĩa là: r s = { t t r và t s } + Phép trừ r \ s: Thực chất của phép trừ là xây dựng một tập các bộ thuộc quan hệ r nhưng không thuộc quan hệ s. Phép trừ được ký hiệu và định nghĩa là: r \ s = { t t r và t s } + Tích Descartes r x s: Tích Descartes của hai quan hệ chỉ xét trên các lược đồ rời nhau (nếu hai lược đồ có thuộc tính cùng tên thì ta có thể đổi tên thuộc tính cùng tên của một trong hai lược đồ, để hai lược đồ rời nhau). Cho hai lược đồ R={A1, A2, …, An} và S={B1, B2, …, Bm}, r và s là hai quan hệ trên R và S tương ứng.
Tích Descartes của hai quan hệ r và s là một quan hệ q. Mỗi bộ trong quan hệ q ký hiệu tq là ghép một bộ tr r với một bộ ts s; trong đó tr = (a1, a2, …, an), ts = (b1, b2, …, bm), tq = (a1, a2, …, an, b1, b2, …, bm). Tích Descartes được ký hiệu và định nghĩa là: r x s = {tt=(a1, a2,., bm)s} Như vậy nếu r có x bộ, s có y bộ thì q có x * y bộ. + Phép chia r s: Cho lược đồ R ={A1, A2, …, An}, S R, r và s là hai quan hệ trên R và S tương ứng.
Phép chia của quan hệ r cho s được một quan hệ q trên lược đồ R-S sao cho mỗi bộ t q ghép với mọi bộ u s ta được một bộ < t, u > r. Phép chia được ký hiệu và định nghĩa là: r s = {t mọi u s , < t, u > r } LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com 9 - Phép chiếu X(r): Thực chất của phép chiếu là loại bỏ đi một số thuộc tính và giữ lại những thuộc tính còn lại của quan hệ (các thuộc tính trong tập X, X R). Phép chiếu được ký hiệu và định nghĩa là: X(r) = {t[X] t r } - Phép chọn <Điều kiên>(r): Thực chất của phép chọn là xây dựng một tập con của quan hệ thoả mãn điều kiện xác định. <Điều kiện> chính là một biểu thức logic; ta có thể sử dụng các phép toán so sánh: =, >, >=, <, <=, <> và các phép toán logic như: and (), or (), not () để tạo các biểu thức điều kiện thoả mãn các yêu cầu của người sử dụng.
Phép chọn được ký hiệu và định nghĩa là: <Điều kiện>(r) = {t t r, <Điều kiện>( t ) = true } - Phép nối r<Điều kiện>s: Thực chất của phép nối là phép chọn của quan hệ (r x s) theo điều kiện xác định. Trong đó: r x s là tích Descartes; <Điều kiện> là một biểu thức logic xác định điều kiện nối giữa hai quan hệ r và s theo , ( là một trong các phép toán so sánh =, >, >=, <, <=,<>) được ký hiệu là: Ai Bj (Ai r , Bj s, Ai và Bj phải có cùng miền giá trị). Phép nối được ký hiệu và định nghĩa là: r <Điều kiện> s = <Điều kiện>(r x s) - Phép nối tự nhiên: Khi các quan hệ r và s có chung một số thuộc tính (cùng tên và có cùng giá trị thuộc một miền nào đó) thì phép kết nối r và s theo điều kiện các thuộc tính đó bằng nhau và một trong hai thuộc tính giống nhau được loại bỏ trong quan hệ kết quả thì phép kết nối này được gọi là phép kết nối tự nhiên và được ký hiệu là r s. - Phép nửa nối r s : Thực chất của phép nửa nối là phép chiếu lên R của r <Điều kiện> s.
Kết quả của phép nửa nối một quan hệ r với một quan hệ s theo điều kiện nào đó là một quan hệ gồm tất cả các bộ thuộc r có tính chất kết nối được theo điều kiện với một bộ nào đó trong quan hệ s. LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com 10 Phép nửa nối được ký hiệu và định nghĩa là: r s = R(r <Điều kiện> s) 1. Phụ thuộc hàm.1 Khái niệm phụ thuộc hàm: Phụ thuộc hàm trên một lược đồ quan hệ là một khái niệm có tầm quan trọng hết sức lớn đối với việc thiết kế cơ sở dữ liệu. Một phụ thuộc hàm là một phát biểu ký hiệu : X Y, trong đó là tên của phụ thuộc hàm, X và Y là các tập thuộc tính.
Xét phụ thuộc hàm : X Y trong lược đồ quan hệ R, với R={A1, A2,. An} là tập các thuộc tính, X và Y là tập con của R, X Y = . Khi đó ta nói X xác định hàm Y hay Y phụ thuộc hàm vào X nếu t1, t2 là các cặp bộ xác định trên quan hệ r mà t1[X] = t2[X] thì t1[Y] = t2[Y].2 Hệ tiên đề Armstrong.