Chương 1. Một số vấn đề về cơ sở dữ liệu giới thiệu những khái niệm cơ bản, vấn đề liên quan đến khóa, chuẩn hóa và ngôn ngữ xử lý bảng. Kho dữ liệu giới thiệu kiến trúc chung, một số thành phần cơ bản và công cụ kho dữ liệu của Microsoft. Thử nghiệm giải quyết bài toán quản lý dân cư mô tả bài toán quản lý dân, đưa ra các chỉ tiêu, hệ thống bảng biểu, quy mô bài toán và phần mềm thử nghiệm giải quyết bài toán dân cư.
MỘT SỐ VẤN ĐỀ VỀ SƠ SỞ DỮ LIỆU 1. Những khái niệm cơ bản 1. Khái quát về mô hình dữ liệu Thông thường đối với việc thiết kế và xây dựng các hệ thông tin quản lý, chúng ta cần xử lý các file dữ liệu. Những file này bao gồm nhiều bản ghi (record) có cùng một cấu trúc xác định (loại bản ghi).
Đồng thời, mỗi bản ghi được phân chia thành các trường dữ liệu (field). Một CSDL là một hệ thống các file dữ liệu, mỗi file này có cấu trúc bản ghi khác nhau, nhưng về mặt nội dung có quan hệ với nhau. Một hệ quản trị CSDL là một hệ thống quản lý và điều hành các file dữ liệu. Nói chung một hệ quản trị CSDL thường có những đặc tính sau: - Có tính độc lập với các công cụ lưu trữ, - Có tính độc lập với các chương trình phần mềm của người sử dụng (có nghĩa là các ngôn ngữ lập trình khác nhau có thể được dùng trong hệ này), - Có khả năng tại một thời điểm truy nhập vào nhiều nơi trong hệ này, - Có khả năng khai thác tốt tiềm năng của máy, - Người dùng với kiến thức tối thiểu cũng có thể sử dụng được hệ này, - Bảo đảm an toàn dữ liệu và bảo mật dữ liệu, - Thuận lợi và mềm dẻo trong việc bổ sung, loại bỏ, thay đổi dữ liệu, - Giảm bớt sự dư thừa dữ liệu trong lưu trữ.
Trong quá trình thiết kế và xây dựng các hệ quản trị CSDL, người ta tiến hành xây dựng các mô hình dữ liệu. Mô hình dữ liệu phải thể hiện được các mối quan hệ bản chất của các dữ liệu mà các dữ liệu này phản ánh các mối quan hệ và các thực thể trong thế giới hiện thực. Có thể thấy mô hình dữ liệu phản ánh khía cạnh cấu trúc lôgic mà không đi vào khía cạnh vật lý của các CSDL. Khi xây dựng các mô hình dữ liệu cần phân biệt các thành phần cơ bản sau: - Thực thể (entity): đó là đối tượng có trong thực tế mà chúng ta cần mô tả các đặc trưng của chúng.
- Thuộc tính (Properties): đó là các dữ liệu thể hiện các đặc trưng của thực thể. - Ràng buộc (Relation): đó là các mối quan hệ lôgic của các thực thể. Tuy vậy, ba thành phần cơ bản trên được thể hiện ở hai mức: - Mức loại dữ liệu (type): là sự khái quát hóa các ràng buộc, các thuộc tính, các thực thể cụ thể. - Mức thể hiện: là một ràng buộc cụ thể, hoặc là các giá trị thuộc tính, hoặc là một thực thể cụ thể.
12 Thông thường chúng ta sẽ nhận được các loại dữ liệu (type) của các đối tượng cần khảo sát trong quá trình phân tích các thể hiện cụ thể của chúng. Yếu tố quan trọng nhất của cấu trúc CSDL là dạng cấu trúc dữ liệu mà trong đó các mối quan hệ giữa các dữ liệu lưu trữ được mô tả. Có thể thấy rằng loại dữ liệu nền tảng của việc mô tả các mối quan hệ là loại bản ghi (record type). Bởi vì các ràng buộc giữa các loại bản ghi tạo ra bản chất cấu trúc của CSDL.
Vì thế, dựa trên việc xác định các ràng buộc giữa các loại dữ liệu được cho như thế nào mà chúng ta phân loại các mô hình dữ liệu. Có nghĩa là từ cách nhìn của người sử dụng việc mô tả các dữ liệu và các ràng buộc giữa các dữ liệu được thực hiện như thế nào. Trên thực tế chúng ta phân biệt hai loại mô hình dữ liệu: - Mô hình dữ liệu mạng: Trong đó chúng ta thể hiện trực tiếp các ràng buộc tùy ý giữa các loại bản ghi. - Mô hình dữ liệu quan hệ: Trong mô hình này các ràng buộc trên được thể hiện qua các quan hệ (bảng).
Mô hình dữ liệu quan hệ là một công cụ rất tiện lợi để mô tả cấu trúc lôgic của các CSDL. Như vậy, ở mức lôgic mô hình này bao gồm các file được biểu diễn dưới dạng các bảng. Do đó đơn vị của CSDL quan hệ là một bảng, trong đó các dòng của bảng là các bản ghi dữ liệu cụ thể (là các thể hiện cụ thể của loại bản ghi), còn tên các cột là các thuộc tính. Theo cách nhìn của người sử dụng thì một CSDL quan hệ là một tập hợp các bảng biến đổi theo thời gian.
Các khái niệm cơ bản và hệ tiên đề Armstrong Phần này trình bài những khái niệm cơ bản nhất về mô hình dữ liệu quan hệ của E. Những khái niệm cơ bản này gồm các khái niệm về quan hệ, thuộc tính, phụ thuộc hàm, hệ tiên đề Armstrong, khóa, dạng chuẩn… Những khái niệm này đóng vai trò rất quan trọng trong mô hình dữ liệu quan hệ. Chúng được áp dụng nhiều trong việc thiết kế các hệ quản trị CSDL hiện nay. Quan hệ R = {a1,…,an} là một tập hữu hạn và không rỗng các thuộc tính.
Mỗi thuộc tính ai có miền giá trị là Dai. Khi đó r là một tập hợp các bộ {h 1,…,hm} được gọi là một quan hệ trên R với hj (j=1,…m) là một hàm: hj : R → Dai ai R sao cho: hj (ai) Dai Có thể biểu diễn quan hệ r thành Bảng 1.1: 13 ai a2 an h1 h1(a1) h1(a2) …… h1(an) h2 h2(a1) h2(a2) …… h2(an) ……………………………………… hm hm(a1) hm(a2) hm(an) Bảng 1. Phụ thuộc hàm Cho R = {a1, … , an} là tập các thuộc tính r = {h1, … , hm} là một quan hệ trên R và A, B R/ Khi đó chúng ta nói A xác định hàm cho B hay B phụ thuộc hàm vào A f trong r (Kí pháp A r > B) nếu ( hi, hj r)(( a A)(hi(a) = hj(a)) ( b B)(hi(b) = hj(b))) f Đặt Fr = {(A, B): A, B R, A r > B). Lúc đó Fr được gọi là họ đầy đủ các phụ thuộc hàm của r.
Khái niệm phụ thuộc hàm miêu tả một loại ràng buộc (phụ thuộc dữ liệu) xảy ra tự nhiên nhất giữa các tập thuộc tính. Dù hiện nay đã có nhiều loại phụ thuộc dữ liệu được nghiên cứu, xong về cơ bản các hệ quản trị CSDL lớn sử dụng phụ thuộc hàm. Phụ thuộc hàm trên tập các thuộc tính R là một dãy kí tự có dạng A B, ở đây A, B R. chúng ta nói phụ thuộc hàm A B đúng trong quan hệ r f nếu A r > B.
Chúng ta cũng nói rằng r thỏa mãn A B. Dễ thấy, Fr là tập tất cả các phụ thuộc hàm đúng trong r. Có thể viết (A, f B) hoặc A B thay cho A r > B mà không bị lẫn về mặt kí pháp. Hệ tiên đề Armstrong R là tập các thuộc tính và kí pháp P(R) là tập các tập con của R.
Chúng ta nói Y là một họ f trên R nếu đối với A, B, C, D R thì (1) (A, A) Y, (2) (A, B) Y, (B, C) Y (A, C) Y, (3) (A, B) Y, A C, D B (C, D) Y, (4) (A, B) Y, (C, D) Y (A C, B D) Y. Rõ ràng, Fr là một họ f trên R. Armstrong đã chứng minh một kết quả rất quan trọng như sau: Nếu Y là một họ f bất kỳ thì tồn tại một quan hệ r trên R sao cho F r = Y. Kết quả này cùng với định nghĩa của phụ thuộc hàm chứng tỏ rằng hệ tiên đề Armstrong là đúng đắn và đầy đủ.
Mặt khác, hệ tiên đề này cho chúng ta những đặc trưng của họ các phụ thuộc hàm, mà các đặc trưng này không phụ thuộc vào các quan hệ (bảng) cụ thể. Nhờ có hệ tiên đề này, các công cụ của toán học được áp dụng để nghiên cứu làm sáng tỏ cấu trúc logic của mô hình dữ liệu quan hệ. Đặc biệt chúng ta sử dụng công cụ thuật toán để thiết kế các công đoạn xây dựng các hệ quản trị CSDL. Chúng ta đưa ra ví dụ chỉ ra có nhiều quan hệ khác nhau xong các họ đầy đủ các phụ thuộc hàm của chúng lại như nhau.
Cho r1 và r2 là các quan hệ trong Hình 1. Quan hệ r1 và quan hệ r2 Có thể thấy r1 và r2 khác nhau nhưng Fr1 = Fr2. Như vậy, tương quan giữa lớp các quan hệ với lớp các họ phụ thuộc hàm có thể được thể hiện bằng Hình 1.2: Lớp các quan hệ Lớp các phụ thuộc hàm Hình 1.Mối quan hệ giữa lớp quan hệ với phụ thuộc hàm Một hàm L: P(R) P(R) được gọi là một hàm đóng trên R nếu với A, B P(R) thì: - A L(A), 15 - Nếu A B thì L(A) L(B), - L(L(A)) = L(A). Nếu F là một họ f và chúng ta đặt LF = {a: a R và (A, {a}) F} Thì LF là một hàm đóng.
Ngược lại, nếu L là một hàm đóng thì tồn tại duy nhất một họ f(F) trên R sao cho L = LF, ở đây: F = {(A, B): A, B R, B L(A)}. Như vậy, chúng ta thấy một tương ứng 1-1 giữa lớp các hàm đóng và lớp các họ f. Chúng ta có Hình 1.3: Lớp các họ phụ thuộc hàm Lớp các hàm đóng Hình 1. Mối quan hệ giữa lớp các họ phụ thuộc hàm với hàm đóng 1.
Sơ đồ quan hệ Sơ đồ quan hệ s là một cặp <R, F>, ở đây R là tập các thuộc tính và F là tập các phụ thuộc hàm trên R. Kí pháp F+ là tập tất cả các phụ thuộc hàm được dẫn xuất từ F bằng việc áp dụng các quy tắc trong hệ tiên đề Armstrong. A+ được gọi là bao đóng của A trên s. Có thể thấy rằng A B F+ nếu và chỉ nếu B A+.
f Tương tự đặt Ar+ = {a: A r >{a}}. Ar+ được gọi là bao đóng của A trên r. Theo [1] có thể thấy nếu s = <R, F> là sơ đồ quan hệ thì có quan hệ r trên R sao cho Fr = F+.