Mô hình dữ liệu quan hệ

Tài liệu Mô hình dữ liệu quan hệ: Chương 2 1 Nội dung  Các định nghĩa của mô hình dữ liệu quan hệ  Quan hệ  Lược đồ quan hệ  Các loại khóa  Ràng buộc bảo toàn  Bảo toàn thực thể  Bảo toàn tham chiếu  Bảo toàn miền 2 Mô hình dữ liệu quan hệ (Relational data model)  Có nhiều loại mô hình dữ liệu khác nhau, nhưng thông dụng nhất là mô hình dữ liệu quan hệ.  Được đề xuất bởi E.F. Codd năm 1970.  Hầu hết các DBMS đều sử dụng mô hình này  Nhưng hiện nay dữ liệu đang được lưu trữ theo công nghệ mới như big data, 3 Mô hình dữ liệu quan hệ  Tập hợp các quan hệ (bảng)  Cấu trúc của bảng  Nội dung của bảng  Mối quan hệ giữa các bảng  Quy luật bảo toàn dữ liệu  Được xây dựng theo lý thuyết quan hệ toán học 4 Cấu trúc quan hệ (bảng)  Mỗi quan hệ được xem như 1 bảng (table)  Mỗi hàng (row) biểu diễn 1 tập các giá trị dữ liệu có liên quan với nhau.  Mỗi cột (column) được gọi là 1 attribute/field có kiểu dữ liệu duy nhất 5 Ví dụ 6 Một ...

pdf43 trang | Chia sẻ: putihuynh11 | Lượt xem: 869 | Lượt tải: 0download
Bạn đang xem trước 20 trang mẫu tài liệu Mô hình dữ liệu quan hệ, để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
Chương 2 1 Nội dung  Các định nghĩa của mô hình dữ liệu quan hệ  Quan hệ  Lược đồ quan hệ  Các loại khóa  Ràng buộc bảo toàn  Bảo toàn thực thể  Bảo toàn tham chiếu  Bảo toàn miền 2 Mô hình dữ liệu quan hệ (Relational data model)  Có nhiều loại mô hình dữ liệu khác nhau, nhưng thông dụng nhất là mô hình dữ liệu quan hệ.  Được đề xuất bởi E.F. Codd năm 1970.  Hầu hết các DBMS đều sử dụng mô hình này  Nhưng hiện nay dữ liệu đang được lưu trữ theo công nghệ mới như big data, 3 Mô hình dữ liệu quan hệ  Tập hợp các quan hệ (bảng)  Cấu trúc của bảng  Nội dung của bảng  Mối quan hệ giữa các bảng  Quy luật bảo toàn dữ liệu  Được xây dựng theo lý thuyết quan hệ toán học 4 Cấu trúc quan hệ (bảng)  Mỗi quan hệ được xem như 1 bảng (table)  Mỗi hàng (row) biểu diễn 1 tập các giá trị dữ liệu có liên quan với nhau.  Mỗi cột (column) được gọi là 1 attribute/field có kiểu dữ liệu duy nhất 5 Ví dụ 6 Một số khái niệm cơ bản  Domain  Database schema  Keys 7 Domain  Domain D là 1 tập các giá trị cơ bản (atomic values)  Domain thường được xác định bằng kiểu dữ liệu (data type) và nên đặt tên cho mỗi domain để dễ tham chiếu đến  Lượng số (cardinality) của 1 domain là số giá trị có thể có trong domain đó, ký hiệu |D| 8 Ví dụ về Domain  Local_phone_numbers: tập hợp các số điện thoại có 8 chữ số  Names: tập hợp các chuỗi ký tự biểu diễn tên của người.  Ages: tập hợp các tuổi của một người Lượng số của mỗi domain?? 9 Quan hê ̣ toán học (mathematical relation) là gì? Một quan hệ thực tế là 1 tập con của tích một số tập hợp 𝐴1, 𝐴2,, 𝐴𝑛. Mỗi thuộc tính Ai có 1 domain dom(Ai) 𝑟 𝑅 ⊆ (𝑑𝑜𝑚 𝐴1 𝑥 𝑑𝑜𝑚 𝐴2 x . X 𝑑𝑜𝑚 𝐴𝑛 )  Tổng số hàng của tích các n domain sẽ là: |dom(A1)| x |dom(A2)|x x |dom(An)| 10 11 1 2 3 A B A x B a b c d X = ? Liệt kê tất cả các quan hệ có thể được tạo ra từ các tập A,B trên? Ví dụ: Quan hệ toán học Cho các tập hợp A = students; B = class. R = {(a,b) | student a is enrolled in class b} Nếu A có 10 student, B có 4 class thi ̀sẽ có tất cả 10 x 4 = 40 phần tư ̉của AxB nhưng sô student học lớp b tối đa là 10 va ̀có thê ̉không có student nào. 12 Lược đồ quan hệ (Relation schema)  Lược đồ quan hệ R được ký hiệu R(𝑨𝟏, 𝑨𝟐,, 𝑨𝒏) với 𝐴1, 𝐴2, 𝐴𝑛 là danh sách các thuộc tính.  Mỗi thuộc tính Ai đều có 1 domain tương ứng.  Domain của thuộc tính Ai được ký hiệu dom(Ai)  Lược đồ quan hệ được dùng để mô tả các quan hệ (relation instance) 13 Lược đồ quan hệ (Relation schema)  Bậc (degree) của quan hệ là số thuộc tính của lược đồ quan hệ đó.  Lượng số (cardinality) là số lượng các bộ của quan hệ. Lượng số sẽ thay đổi khi thêm hay xoá các tuple (hàng). 14 Ví dụ  Xét lược đồ quan hệ STUDENT STUDENT(Name, Ssn, Home_phone, Address, Age, Gpa) Có bao nhiêu thuộc tính, domain? 15 Ví dụ 16 Các tính chất của quan hệ  Thứ tự các giá trị trong 1 hàng  Hàng có n cột là 1 danh sách có thứ tự của n giá trị.  Ví dụ: t=< Dick Davidson, 422-11-2320,NULL, 3452 Elgin Road, (817)749-1253, 25, 3.53>  Thứ tự của thuộc tính và giá trị là không quan trọng chừng nào mối tương quan giữa thuộc tính và giá trị vẫn còn được duy trì. Hàng được biểu diễn như tập hợp của ( ,) 17 Ví dụ  Hai hàng là đồng nhất 18 Các tính chất của quan hệ  Mỗi giá trị trong hàng đều là đơn trị (atomic value).  Giá trị NULL được dùng để biểu diễn giá trị chưa biết hay không thể áp dụng được cho 1 hàng nào đó.  Ví dụ:  Vì sinh viên không có văn phòng làm việc nên có giá trị NULL ở thuộc tính office phone.  Một số sinh viên tuy có số home phone nhưng chưa biết để nhập liệu nên thuộc tính home phone là NULL. 19 Cơ sở dữ liệu quan hệ (Relational database)  Cơ sở dữ liệu quan hệ (relational database):  Là 1 tập hợp hữu hạn các quan hệ (relations)  Dữ liệu được lưu trữ trong các quan hệ (bảng)  Có nhiều mối quan hệ giữa các bảng 20 Siêu khóa (super key)  Là một thuộc tính hay 1 tập thuộc tính của 1 quan hệ thỏa mãn tính chất là không có hai nào của quan hệ có cùng tổ hợp giá trị của các thuộc tính này.  Một siêu khoá có thể chứa thêm các thuộc tính không cần thiết để xác định duy nhất một hàng  Siêu khoá hiển nhiên (trivial super key) là tập tất cả các thuộc tính của quan hệ 21 Ví dụ siêu kho ́a  Xét 1 lược đồ quan hệ STUDENT (StudentID, FirstName, LastName, BirthDate, Major, SSN, ClassID)  Xác định các siêu khóa có thể có của R??? 22 Các loại khóa trong quan hệ  Khoá dự tuyển (candidate key): là một siêu khoá K mà không có một tập con thực sự bất kỳ K’  K lại là một siêu khoá  Tính duy nhất ( uniqueness): các giá trị của K trong các bộ của r là duy nhất  Tính tối giản (Minimal superkey): không có tập con thực sự K’  K lại có tính duy nhất. Khóa dự tuyển của quan hệ STUDENT??? 23 Ví dụ 24 Xác định khóa dự tuyển cho quan hệ CAR? Các loại thuộc tính  Thuộc tính khoá ( key attribute, prime attribute): là thuộc tính tham gia vào khoá dự tuyển  Thuộc tính không khóa (non-key attribute): là thuộc tính không tham gia vào khóa dự tuyển  Khóa phức hợp (composite key): là khóa có nhiều hơn một thuộc tính 25 Khóa chính PK (primary key)  Là một khóa dự tuyển được chọn để xác định duy nhất một bộ của quan hệ. Khóa chính có thể chỉ có 1 thuộc tính hay khóa phức hợp.  Ví dụ: khóa chính của quan hệ STUDENT???  Các khóa dự tuyển (candidate key) còn lại sau khi chọn khóa chính được gọi là khóa khác (alternate key) 26 Khóa ngoại FK (foreign key)  Dùng để xác định mối liên hệ giữa 2 quan hệ  Khóa ngoại (FK) là 1 tập thuộc tính trong quan hệ R1 tham chiếu đến quan hệ R2 nếu thỏa mãn các quy tắc sau: 1. Các thuộc tính trong FK có cùng domain với thuộc tính khóa chính PK của R2. 2. Giá trị của FK trong hàng t1 của r1(R1) hoặc là 1 trong các giá trị của PK trong r2(R2) hay NULL. Khi 𝑡1 𝐹𝐾 = 𝑡2[𝑃𝐾] : hàng t1 tham chiếu đến hàng t2 27 Khoá ngoại 28 29 Ví dụ  Xét các lược đồ quan hệ sau: Employee(Emp_ID, Name, Dept_Name, Salary) Training(Emp_ID, Course, Date_Completed) Department(Dept_Name, Location,Fax) Xác định khóa chính, khóa ngoại ?? 30 Ràng buộc của mô hình quan hệ  Trong 1 DB thường có nhiều quan hệ  Trong mỗi quan hệ có ràng buộc giữa các hàng, các giá trị trong cùng cột,..  Giữa các quan hệ có thể có ràng buộc lẫn nhau.  Các ràng buộc đều được suy diễn từ các quy tắc nghiệp vụ 31 Các ràng buộc toàn vẹn (Integrity constraints)  Ngay khi các ràng buộc đã được xác định trong lược đồ thì trách nhiệm của DBMS là phải bảo đảm sao cho chúng không bị vi phạm khi có bất kỳ giao dịch (transaction) nào được thực thi trong CSDL đó. 32 Toàn vẹn dữ liệu (Data integrity)  Mục đích của ràng buộc (constraint): để duy trì tính chính xác (accurary) và toàn vẹn dữ liệu (data integrity) trong CSDL.  Ba loại toàn vẹn dữ liệu chính:  Entity integrity  Domain integrity  Referential integrity 33 Bảo toàn thực thể (Entity Integrity)  Bảo toàn thực thể dùng để bảo đảm tính duy nhất của mỗi hàng trong bảng.  Để bảo toàn thực thể thì mỗi quan hệ có 1 khóa chính và giá trị của khóa chính phải luôn hợp lệ.  “Trong một quan hệ cơ sở, mọi thuộc tính khóa chính không được có giá trị rỗng (null)” 34 Bảo toàn thực thể (Entity Integrity)  Được thể hiện trong DBMS thông qua các ràng buộc sau:  Ràng buộc khóa chính (primary key)  Ràng buộc duy nhất (unique)  Thuộc tính identity 35 Bảo toàn miền (Domain Integrity)  Bảo toàn miền để bảo đảm tính hợp lệ của dữ liệu trong 1 thuộc tính  “Tất cả giá trị xuất hiện trong 1 thuộc tính của 1 quan hệ phải cùng 1 miền trị” 36 Bảo toàn miền (Domain Integrity)  Được thể hiện trong DBMS thông qua các ràng buộc sau:  Kiểu dữ liệu (Data types)  Ràng buộc CHECK  Định nghĩa RULE, DEFAULT, NOT NULL. 37 Toàn vẹn tham chiếu Referential integrity  Toàn vẹn tham chiếu dùng để xác định mối quan hệ giữa các bảng khi thêm hay xóa các hàng trong bảng.  Mục đích: duy trì tính nhất quán (consistency) giữa các bộ của 2 quan hệ.  38 Toàn vẹn tham chiếu Referential integrity  Tính toàn vẹn tham chiếu được thể hiện thông qua 3 quy tắc sau:  Không thể thêm các bản ghi vào bảng quan hệ nếu không có bản ghi tương ứng trong bảng chính.  Không thể thay đổi giá trị trong bảng chính nếu làm cho các bản ghi tương ứng trong bảng quan hệ bị mất tham chiếu  Không thể xóa các bản ghi trong bảng chính nếu nó được tham chiếu bởi 1 số bản ghi trong bảng quan hệ 39 Toàn vẹn tham chiếu (Reference Integrity)  Mục đích: duy trì tính nhất quán (consistency) giữa các bộ của 2 quan hệ  “ Nếu tồn tại 1 khóa ngoại trong 1 quan hệ, thì mỗi giá trị khóa ngoại phải tương ứng với 1 giá trị khóa chính trong một quan hệ khác (hoặc trong cùng quan hệ này) hoặc giá trị khóa ngoại phải là giá trị rỗng” 40 Ví dụ bảo toa ̀n tham chiếu 41 Constraints  SQL server supports some constraints :  Default  Check  Unique  Primary key  Foreign key 42 Domain integrity Entity integrity Referential integrity Tài liệu tham khảo và bài tập  Bài tập Chương 3 sách Fundamentals of DB systems – Trang 80  Câu 3.13, 3.14, 3.15, 3.16, 3.19 43

Các file đính kèm theo tài liệu này:

  • pdf1_chuong_2_mo_hinh_du_lieu_quan_he_2_6233_1997411.pdf