CÁC MÔ HÌNH DỮ LIỆU (Phần 3) 1 CÁC MÔ HÌNH DỮ LIỆU Giới thiệu Quá trình thiết kế một CSDL Mô hình thực thể liên kết E-R Một số vấn đề cần quan tâm khi thiết kế mô hình E-R Mô hình dữ liệu quan hệ Ánh xạ mô hình thực thể liên kết sang mô hình quan hệ 2 MÔ HÌNH DỮ LIỆU QUAN HỆ (The Relational Data Model) 3 MÔ HÌNH DỮ LIỆU QUAN HỆ Mô hình dữ liệu quan hệ được phát triển dựa trên khái niệm về quan hệ toán học. Nhà khoa học đề xuất ra mô hình quan hệ tên là Codd, là một nhà toán học. Mô hình này liên quan chủ yếu đến lý thuyết tập hợp và logic mệnh đề. 4 CÁC KHÁI NIỆM CƠ BẢN Quan hệ: là một bảng (ma trận) với các hàng và các cột, lưu giữ thông tin về các đối tượng được mô hình hóa trong CSDL.
Thuộc tính: là các cột được đặt tên trong một quan hệ. Mỗi thuộc tính là một đặc tính của một thực thể (hay một quan hệ) được mô hình hóa trong CSDL. Các thuộc tính có thể xuất hiện theo bất kỳ thứ tự nào trong quan hệ. Miền giá trị: là một tập các giá trị có thể có của một hoặc nhiều thuộc tính.
Mỗi thuộc tính được xác định trên một miền giá trị. 5 CÁC KHÁI NIỆM CƠ BẢN (Cont.) Bộ: là một hàng của một quan hệ. Các bộ có thể xuất hiện theo bất kỳ thứ tự nào trong quan hệ. Bậc (cấp): của một quan hệ là số lượng các thuộc tính mà nó có Lực lượng: là số lượng các bộ mà một quan hệ có.
Cơ sở dữ liệu quan hệ: là một tập hợp các quan hệ được chuẩn hóa với các tên phân biệt nhau. 6 VÍ DỤ VỀ QUAN HỆ Thuộc tính Lực lượng STAFF staffNo fName lName position DOB salary sn24 Kristy Chivotti manager 1-Oct-64 45000 Quan hệ sa3 Tod Spaude ceo 16-Nov-56 90000 sn69 Debi Alonzo cfo 14-Mar-72 67000 sf22 Michael Schumacher driver 3-Jun-77 9999999 sd8 Keri Thompson manager 5-Jun-78 34000 sx99 Julie Bledsoe manager 16-Dec-63 40000 Bậc 7 MIỀN GIÁ TRỊ CHO VÍ DỤ TRÊN Thuộc tính Tên miền Ý nghĩa Định nghĩa miền Tập của tất cả các số Kiểu ký tự: kích cỡ 4, phải bắt staffNo staffnumbers hiệu có thể có của đầu bằng chữ s. nhân viên Tập tất cả các tên có fName, lName name Kiểu ký tự: kích cỡ 20 thể có của một người Kiểu ngày tháng: trong Ngày sinh của một khoảng từ 1-Jan-20, DOB date người Khuôn dạng: dd-mm-yy Các giá trị có thể có Dạng tiền tệ: 7 ký tự, trong salary salaries của lương nhân viên khoảng 10,000-9,999,999 Tập tất cả các vị trí có Chọn một trong các tập: : position alljobs thể có của một nhân {ceo, cfo, coo, manager, asst. viên trong công ty manager, driver, secretary} 8 CÁC THUẬT NGỮ CÓ THỂ DÙNG TƢƠNG ĐƢƠNG TRONG MÔ HÌNH QUAN HỆ Thuật ngữ chuẩn Lựa chọn 1 Lựa chọn 2 Quan hệ Bảng Tệp Bộ Hàng Bản ghi Thuộc tính Cột Trường 9 QUAN HỆ LÀ GÌ? Khái niệm toán học liên quan: Nếu D1, D2,.
Dn là n tập thì tích Đề các của chúng được định nghĩa là: D1 D2 Dn d1, d2,, dn d1 D1, d2 D2,, dn Dn n Ký hiệu: Di i 1 Ví dụ: Cho hai tập D1 = {2, 4} và D2 = {1, 3, 5}, tích Đề các của hai tập: D1 D2 = {(2, 1), (2, 3), (2, 5), (4, 1), (4, 3), (4, 5)} => Mọi tập con của tích Đề các là một quan hệ, ví dụ: Quan hệ R = {(2, 3), (4, 3)} => Có thể có điều kiện để chọn các phần tử cho quan hệ, ví dụ: Quan hệ R = {(x, y) | x D1, y D2, and y = 3} 10 QUAN HỆ LÀ GÌ? (Cont.) Lược đồ quan hệ là một quan hệ có tên được xác định bởi một tập các thuộc tính và các cặp tên miền Ri = {A1:d1, A2:d2, ., dn Dn} Lược đồ cơ sở dữ liệu quan hệ là một tập các lược đồ quan hệ, mỗi lược đồ có một tên gọi riêng: R = {R1, R2, ., Rn} 11 CÁC ĐẶC TÍNH CỦA MỘT QUAN HỆ 1. Quan hệ có một tên gọi phân biệt với tên của các quan hệ khác trong lược đồ quan hệ. Mỗi thuộc tính có một tên gọi riêng. Mỗi thuộc tính có một miền giá trị.
Mỗi thuộc tính chứa một giá trị nguyên tố. Các bộ là phân biệt nhau (không có hai bộ nào giống hệt nhau). Thứ tự của các thuộc tính không quan trọng. Thứ tự của các bộ cũng không quan trọng (về mặt lý thuyết).
=> Tuy nhiên, trong thực tế, thứ tự này có thể ảnh hưởng đến hiệu quả truy nhập vào các bộ. 12 LƢỢC ĐỒ QUAN HỆ VÀ THỂ HIỆN QUAN HỆ Lược đồ bao gồm tên và các thuộc tính cho quan hệ và thường không thay đổi. Một thể hiện của quan hệ là một tập các bộ của quan hệ và có thể thay đổi thường xuyên. Hầu hết các quá trình cập nhật, chèn thêm hay xóa các bộ sẽ làm thay đổi thể hiện của quan hệ.
Một CSDL hiện thời (snapshot database) thể hiện trạng thái hiện tại của thế giới thực tại một thời điểm. Nếu thế giới thực thay đổi, CSDL cũng sẽ thay đổi theo để duy trì biểu diễn đó. 13 CÁC QUAN HỆ TƢƠNG ĐƢƠNG A B C B C A 1 2 3 2 3 1 3 2 1 2 1 3 4 4 1 4 1 4 2 1 3 1 3 2 Một thể hiện của quan hệ Một thể hiện của quan hệ A B C A B C Các thể hiện của 4 4 1 4 4 1 quan hệ tƣơng 3 2 1 đƣơng nhau 3 2 1 1 2 3 1 2 4 2 1 3 2 1 3 Một thể hiện của quan hệ Một thể hiện của quan hệ Thể hiện này không tƣơng đƣơng với 3 thể hiện trên 14 ÁNH XẠ MÔ HÌNH THỰC THỂ LIÊN KẾT SANG MÔ HÌNH QUAN HỆ 15 THIẾT KẾ LOGIC Thiết kế logic: là quá trình chuyển đổi thiết kế mức khái niệm thành các lược đồ CSDL quan hệ. Đầu vào là các sơ đồ E-R và đầu ra là các lược đồ quan hệ.
Việc ánh xạ sơ đồ E-R thành các quan hệ là một quá trình tương đối đơn giản với việc định nghĩa một tập các luật. Trong thực tế, nhiều công cụ CASE (các công cụ trợ giúp cho Công nghệ phần mềm) có thể thực hiện tự động một số bước trong quá trình chuyển đổi. 16 THIẾT KẾ LOGIC (Cont.) Cần hiểu rõ các bước chuyển đổi vì 3 lý do sau: 1. Các công cu CASE thường không thể mô hình hóa các quan hệ dữ liệu phức tạp, (ví dụ, các quan hệ ba ngôi và các quan hệ giữa các lớp cha/lớp con.) Việc này được thực hiện thủ công bằng tay.
Khi có nhiều lựa chọn hợp lý thì cũng phải lựa chọn thủ công bằng tay. Khi sử dụng các công cụ CASE, cần được chuẩn bị để thực hiện việc kiểm tra chất lượng đối với các kết quả thu được. 17 THIẾT KẾ LOGIC (Cont.) Khi ánh xạ các lược đồ E-R sang các lược đồ quan hệ, cần nhớ 3 loại thực thể đã định nghĩa sau: Thực thể thường (khỏe): là các thực thể có thể tồn tại độc lập và thường thể hiện các đối tượng của thế giới thực, ví dụ, con người hoặc sản phẩm. Trong mô hình E-R, ký hiệu bằng hình chữ nhật với một đường viền đơn.
Thực thể yếu: là các thực thể không thể tồn tại một mình mà phải đi cùng với một mối quan hệ xác định bởi một loại thực thể xác định nó (thực thể chủ- khỏe). Các thực thể yếu được biểu diễn bởi một hình chữ nhật với đường viền kép. Thực thể kết hợp: hình thành từ những mối quan hệ nhiều-nhiều giữa các loại thực thể khác nhau, được biểu diễn bởi một hình chữ nhật với đường viền đơn và được bao quanh bởi một biểu tượng quan hệ hình thoi. 18 BƢỚC 1: ÁNH XẠ CÁC THỰC THỂ THÔNG THƢỜNG (THỰC THỂ KHỎE) Mỗi thực thể thông thường trong mô hình thực thể liên kết sẽ được chuyển đổi thành một lược đồ quan hệ.
Tên của quan hệ thường là tên của thực thể. Mỗi thuộc tính đơn của thực thể là một thuộc tính của lược đồ quan hệ. Thuộc tính xác định thực thể trở thành khóa chính của quan hệ tương ứng. 19 BƢỚC 1: ÁNH XẠ CÁC THỰC THỂ THÔNG THƢỜNG (Cont.) Ví dụ: customer-name customer-id customer-address Sơ đồ E-R CUSTOMER CUSTOMER customer-id customer-name customer-address Quan hệ CUSTOMER 20 BƢỚC 1: ÁNH XẠ CÁC THỰC THỂ THÔNG THƢỜNG (Cont.) Thuộc tính kép: Nếu thực thể có thuộc tính kép thì chỉ những thuộc tính đơn của thuộc tính kép này được đưa vào lược đồ quan hệ mới.
Ví dụ: customer-name city state customer-id customer-address zip Sơ đồ E-R CUSTOMER street CUSTOMER customer-id customer-name street city state zip Quan hệ CUSTOMER 21 BƢỚC 1: ÁNH XẠ CÁC THỰC THỂ THÔNG THƢỜNG (Cont.) Thuộc tính đa trị: Nếu một thực thể thường có một thuộc tính đa trị thì hai lược đồ quan hệ mới sẽ được tạo ra. • Lược đồ quan hệ thứ nhất chứa tất cả các thuộc tính của thực thể trừ thuộc tính đa trị. • Lược đồ quan hệ thứ hai sẽ có hai thuộc tính cấu thành khóa chính. o Thuộc tính thứ nhất là khoá chính của lược đồ quan hệ thứ nhất => nó sẽ trở thành khóa ngoại trong lược đồ thứ hai.
o Thuộc tính thứ hai là thuộc tính đa trị. • Tên của lược đồ thứ hai nên được đặt để thể hiện ngữ nghĩa của thuộc tính đa trị. 22 BƢỚC 1: ÁNH XẠ CÁC THỰC THỂ THÔNG THƢỜNG (Cont.) Ví dụ cho trường hợp thuộc tính đa trị: employee-name employee-id employee-address Sơ đồ E-R EMPLOYEE skill EMPLOYEE employee-id employee-name employee-address Các lược đồ quan hệ EMPLOYEE-SKILL employee-id skill 23 BƢỚC 2: ÁNH XẠ CÁC THỰC THỂ YẾU Để ánh xạ thực thể yếu thành một lược đồ quan hệ, trước hết giả sử đã tạo một lược đồ quan hệ liên quan tới loại thực thể xác định. Tiếp theo, đối với mỗi thực thể yếu, tạo một lược đồ quan hệ mới và đưa tất cả các thuộc tính đơn (hoặc các thành phần đơn của các thuộc tính kép) vào thành thuộc tính của lược đồ quan hệ này.
Sau đó, thêm khóa chính của quan hệ xác định vào thành một thuộc tính khóa ngoài trong lược đồ quan hệ mới. Khóa chính của lược đồ quan hệ mới là sự kết hợp của khoá chính của quan hệ xác định và thuộc tính phân biệt của thực thể yếu. 24 BƢỚC 2: ÁNH XẠ CÁC THỰC THỂ YẾU (Cont.