1 / 51

LÝ THUYẾT CƠ SỞ DỮ LIỆU

LÝ THUYẾT CƠ SỞ DỮ LIỆU. Chương 5. Thiết kế CSDL luận lý (Logical Database Design) và Mô hình quan hệ (Relational Model). Phần I. Thiết kế CSDL luận lý và mô hình quan hệ. Giới thiệu. Thiết kế CSDL luận lý Chuyển mô hình dữ liệu mức ý niệm sang mức luận lý

jalena
Download Presentation

LÝ THUYẾT CƠ SỞ DỮ LIỆU

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. LÝ THUYẾT CƠ SỞ DỮ LIỆU Chương 5. Thiết kế CSDL luận lý (Logical Database Design) và Mô hình quan hệ (Relational Model)

  2. Phần I Thiết kế CSDL luận lý và mô hình quan hệ

  3. Giới thiệu • Thiết kế CSDL luận lý • Chuyển mô hình dữ liệu mức ý niệm sang mức luận lý • Mức ý niệm: biểu diễn các yêu cầu dữ liệu của tổ chức • Mức luận lý: dữ liệu có thể được hiện thực bằng một DBMS nào đó • CSDL phải đáp ứng nhu cầu chia xẻ dữ liệu, tính mềm dẻo, dễ dàng truy xuất Môn: Lý thuyết Cơ sở dữ liệuChương 5: Thiết kế CSDL luận lý và mô hình quan hệSlide 3

  4. Giới thiệu (tt) • CSDL luận lý trong chương này dựa trên mô hình quan hệ • Mô hình quan hệ (relational model) được xây dựng trên khái niệm quan hệ (relation) và đưa ra năm 1970 bởi E.F.Codd. • CSDL quan hệ (relation database) bao gồm một số quan hệ • DBMS dựa trên mô hình quan hệ gọi là RDBMS Môn: Lý thuyết Cơ sở dữ liệuChương 5: Thiết kế CSDL luận lý và mô hình quan hệSlide 4

  5. Quan hệ • Định nghĩa: • Một quan hệ (relation) là một bảng dữ liệu có tên hai chiều (two-dimensional) • Bảng được tạo thành từ hàng – row (bảng ghi - record) và cột – column (thuộc tính – attribute, hoặc trường – field) • Không phải tất cả các bảng đều là quan hệ Môn: Lý thuyết Cơ sở dữ liệuChương 5: Thiết kế CSDL luận lý và mô hình quan hệSlide 5

  6. Quan hệ (tt) • Yêu cầu: • Tất cả các quan hệ đều có một tên duy nhất • Tất cả các giá trị thuộc tính là đơn trị (atomic), không phải đa trị (multivalue), tổ hợp (composite) • Tất cả các hàng là duy nhất (không thể có hai hàng có cùng giá trị ở tất cả các thuộc tính) • Các thuộc tính (cột) trong một bảng đều có tên duy nhất • Thứ tự của các cột là không quan trọng • Thứ tự các hàng là không quan trọng Môn: Lý thuyết Cơ sở dữ liệuChương 5: Thiết kế CSDL luận lý và mô hình quan hệSlide 6

  7. Quan hệ (tt) • Sự tương ứng với mô hình ER • Các quan hệ (relation, bảng - table) tương ứng với các kiểu thực thể (entity type) và mối quan hệ nhiều-nhiều (many-many relationship) • Các hàng (row) tương ứng với các thể hiện (instance) của thực thể và các thể hiện của mối quan hệ nhiều-nhiều • Các cột (column) tương ứng với các thuộc tính (attribute) Môn: Lý thuyết Cơ sở dữ liệuChương 5: Thiết kế CSDL luận lý và mô hình quan hệSlide 7

  8. Quan hệ (tt) • Chú ý: • Tất cả các quan hệ là ở dạng chuẩn một (First Normal Form - 1NF) • Từ quan hệ (relation) trong CSDL quan hệ không giống với từ mối quan hệ (relationship) trong mô hình ER. Môn: Lý thuyết Cơ sở dữ liệuChương 5: Thiết kế CSDL luận lý và mô hình quan hệSlide 8

  9. Các trường khoá • Khóa chính (primary key): • Là danh hiệu duy nhất (unique) của quan hệ (cho phép đảm bảo là tất cả các hàng là duy nhất). • Ví dụ: mã số nhân viên (employee number), số an sinh xã hội (social security number), … • Khoá ngoại (foreign key): • Là danh hiệu cho phép một quan hệ phụ thuộc (phía đầu nhiều của mối quan hệ) tham khảo đến quan hệ cha (phía đầu một của mối quan hệ). • Ví dụ: mã số phòng ban của nhân viên Môn: Lý thuyết Cơ sở dữ liệuChương 5: Thiết kế CSDL luận lý và mô hình quan hệSlide 9

  10. Các trường khoá (tt) • Đặc điểm: • Khóa có thể là đơn (simple - một trường đơn) hay tổ hợp (composite - nhiều trường ghép lại) • Khoá thường được sử dụng như là chỉ mục (index) để tăng tốc độ xử lý cho các câu truy vấn của người sử dụng Môn: Lý thuyết Cơ sở dữ liệuChương 5: Thiết kế CSDL luận lý và mô hình quan hệSlide 10

  11. Khoá chính Khóa ngoại (hiện thực mối quan hệ 1:N giữa CUSTOMER và ORDER) Khoá chính là tổ hợp (ngoài ra chúng còn là khóa ngoại tham khảo đến ORDER và PRODUCT) Các trường khoá (tt) – Ví dụ Môn: Lý thuyết Cơ sở dữ liệuChương 5: Thiết kế CSDL luận lý và mô hình quan hệSlide 11

  12. Các ràng buộc toàn vẹn • Ràng buộc toàn vẹn (integrity constraint) • Ràng buộc miền trị (domain): các giá trị cho phép của một thuộc tính. • Toàn vẹn thực thể: thuộc tính khoá chính hoặc thuộc khóa chính không được NULL. • Ràng buộc tác vụ: các qui tắc nghiệp vụ Môn: Lý thuyết Cơ sở dữ liệuChương 5: Thiết kế CSDL luận lý và mô hình quan hệSlide 12

  13. Các ràng buộc toàn vẹn (tt) • Toàn vẹn tham chiếu (Referencial integrity constraint): • Giá trị của khoá ngoại là NULL hoặc phải tương ứng với một giá trị khoá chính của quan hệ được tham chiếu. • Ví dụ: qui tắc xoá dữ liệu • Loại trừ - không cho phép xoá bên phía quan hệ cha nếu có các hàng liên quan bên phía quan hệ phụ thuộc. • Cascade - tự động xoá các hàng liên quan bên phía quan hệ phụ thuộc tương ứng • Set-to-Null – gán giá trị của khóa ngoại là NULL  điều này không cho phép áp dụng cho các thực thể yếu Môn: Lý thuyết Cơ sở dữ liệuChương 5: Thiết kế CSDL luận lý và mô hình quan hệSlide 13

  14. Các ràng buộc toàn vẹn (tt) Các ràng buộc toàn vẹn tham khảo được vẽ bằng các mũi tên từ bên phụ thuộc vào bảng cha Môn: Lý thuyết Cơ sở dữ liệuChương 5: Thiết kế CSDL luận lý và mô hình quan hệSlide 14

  15. Chuyển đổi EERD sang các quan hệ • Bước 1: Chuyển các thực thể thường • 1. Thuộc tính đơn: chuyển trực tiếp thành các thuộc tính bên quan hệ • 2. Thuộc tính phức hợp: chỉ sử dụng thuộc tính đơn là các thành phần của nó • 3. Thuộc tính đa trị: chuyển thành một quan hệ riêng lẻ với một khoá ngoại tham khảo đến quan hệ ban đầu Môn: Lý thuyết Cơ sở dữ liệuChương 5: Thiết kế CSDL luận lý và mô hình quan hệSlide 15

  16. Chuyển đổi EERD sang các QH (tt) (a) Thực thể CUSTOMER với các thuộc tính đơn (b) Quan hệ CUSTOMER Môn: Lý thuyết Cơ sở dữ liệuChương 5: Thiết kế CSDL luận lý và mô hình quan hệSlide 16

  17. Chuyển đổi EERD sang các QH (tt) (a) Thực thể CUSTOMER với một thuộc tính tổ hợp (b) Quan hệ CUSTOMER với các thuộc tính đơn là chi tiết của địa chỉ Môn: Lý thuyết Cơ sở dữ liệuChương 5: Thiết kế CSDL luận lý và mô hình quan hệSlide 17

  18. Chuyển đổi EERD sang các QH (tt) (a) Thực thể EMPLOYEE với thuộc tính đa trị (b) Thêm vào một quan hệ và một mối quan hệ 1:N giữa quan hệ gốc và quan hệ mới tạo ra Môn: Lý thuyết Cơ sở dữ liệuChương 5: Thiết kế CSDL luận lý và mô hình quan hệSlide 18

  19. Chuyển đổi EERD sang các QH (tt) • Bước 2: Chuyển các thực thể yếu • Chuyển đổi thành một quan hệ riêng lẻ với một khoá ngoại tham khảo đến quan hệ tạo ra từ thực thể mạnh của nó • Khoá chính bao gồm: • Danh định riêng phần của nó • Khoá chính của quan hệ định danh (của thực thể mạnh) Môn: Lý thuyết Cơ sở dữ liệuChương 5: Thiết kế CSDL luận lý và mô hình quan hệSlide 19

  20. Chuyển đổi EERD sang các QH (tt) (a) Thực thể yếu DEPENDENT (b) Quan hệ DEPENDENT với khóa riêng phần cộng khóa ngoại (tham khảo đến quan hệ cha) làm khoá chính (danh định đầy đủ) Chú ý: khóa ngoại Employee_ID không được NULL Foreign key Môn: Lý thuyết Cơ sở dữ liệuChương 5: Thiết kế CSDL luận lý và mô hình quan hệSlide 20

  21. Chuyển đổi EERD sang các QH (tt) • Bước 3: Chuyển các mối quan hệ hai ngôi • Một-nhiều: Khoá chính ở phía quan hệ một làm khoá ngoại ở phía quan hệ nhiều • Nhiều-nhiều: tạo một quan hệ mới với khoá chính là tổ hợp các khoá chính của các thực thể tham gia vào mối quan hệ (và đồng thời cũng có các khoá ngoại tương ứng) • Một-một: Khoá chính ở phía bắt buộc làm khoá ngoại ở phía tuỳ chọn. Môn: Lý thuyết Cơ sở dữ liệuChương 5: Thiết kế CSDL luận lý và mô hình quan hệSlide 21

  22. Chuyển đổi EERD sang các QH (tt) (a) Mối quan hệ 1:N (b) Tạo thành khóa ngoại Chú ý: Khóa ngoại không được rỗng vì ràng buộc lượng số tối thiểu (ở đầu tham khảo đến) Khoá ngoại Môn: Lý thuyết Cơ sở dữ liệuChương 5: Thiết kế CSDL luận lý và mô hình quan hệSlide 22

  23. Mối quan hệ Supplies sẽ trở thành một quan hệ riêng Khoá chính tổ hợp Khoá ngoại Khoá ngoại Quan hệ mới Chuyển đổi EERD sang các QH (tt) (a) Mối quan hệ M:N (b) Tạo thành quan hệ mới Môn: Lý thuyết Cơ sở dữ liệuChương 5: Thiết kế CSDL luận lý và mô hình quan hệSlide 23

  24. Chuyển đổi EERD sang các QH (tt) (a) Mối quan hệ 1:1 (b) Tạo thành khóa ngoại Chú ý: tất cả các thuộc tính của mối quan hệ đều được mang sang quan hệ đích Môn: Lý thuyết Cơ sở dữ liệuChương 5: Thiết kế CSDL luận lý và mô hình quan hệSlide 24

  25. Chuyển đổi EERD sang các QH (tt) • Bước 4. Chuyển các thực thể kết hợp • Không có danh hiệu riêng: • Giống quan hệ nhiều-nhiều • Có danh hiệu riêng: • Khoá chính là danh hiệu của thực thể • Các mối quan hệ hai ngôi khác chuyển đổi bình thường Môn: Lý thuyết Cơ sở dữ liệuChương 5: Thiết kế CSDL luận lý và mô hình quan hệSlide 25

  26. Chuyển đổi EERD sang các QH (tt) (a)Thực thể kết hợp (b) Tạo thành quan hệ mới Môn: Lý thuyết Cơ sở dữ liệuChương 5: Thiết kế CSDL luận lý và mô hình quan hệSlide 26

  27. Chuyển đổi EERD sang các QH (tt) • Bước 5. Chuyển các mối quan hệ một ngôi • Một-nhiều: • Tạo ra khóa ngoại đệ qui tham khảo đến khoá chính trong cùng một quan hệ • Nhiều-nhiều: • Tạo ra hai quan hệ • Một cho kiểu thực thể đó • Một cho một quan hệ kết hợp với hai thuộc tính là khoá ngoại cùng tham khảo đến khoá chính của quan hệ kia và khoá chính của nó là tổ hợp của hai thuộc tính đó Môn: Lý thuyết Cơ sở dữ liệuChương 5: Thiết kế CSDL luận lý và mô hình quan hệSlide 27

  28. Chuyển đổi EERD sang các QH (tt) (a) Thực thể EMPLOYEE với mối quan hệ một ngôi (b) Quan hệ EMPLOYEE với khóa ngoại đệ qui Môn: Lý thuyết Cơ sở dữ liệuChương 5: Thiết kế CSDL luận lý và mô hình quan hệSlide 28

  29. Chuyển đổi EERD sang các QH (tt) (a) Mối quan hệ Bill-of-materials (M:N) (b) Tạo ra quan hệ COMPONENT Môn: Lý thuyết Cơ sở dữ liệuChương 5: Thiết kế CSDL luận lý và mô hình quan hệSlide 29

  30. Chuyển đổi EERD sang các QH (tt) • Bước 6. Chuyển các mối quan hệ ba ngôi (và n-ngôi) • Tạo ra n+1 quan hệ • n quan hệ cho n kiểu thực thể tham gia vào quan hệ • Một quan hệ kết hợp với các khoá ngoại tham khảo đến khoá chính của các quan hệ kia Môn: Lý thuyết Cơ sở dữ liệuChương 5: Thiết kế CSDL luận lý và mô hình quan hệSlide 30

  31. Chuyển đổi EERD sang các QH (tt) (a) Mối quan hệ ba ngôi (b) Tạo ra quan hệ SUPPLIES VENDOR PART WAREHOUSE SUPPLIES Môn: Lý thuyết Cơ sở dữ liệuChương 5: Thiết kế CSDL luận lý và mô hình quan hệSlide 31

  32. Chuyển đổi EERD sang các QH (tt) (a) Mối quan hệ ba ngôi đã được chuyển thành thực thể kết hợp Môn: Lý thuyết Cơ sở dữ liệuChương 5: Thiết kế CSDL luận lý và mô hình quan hệSlide 32

  33. Chuyển đổi EERD sang các QH (tt) (b) Chuyển thành một quan hệ mới • Quan trọng: • Xác định khóa chính trong trường hợp này ra sao? • Có khi nào những người khác nhau xác định khóa chính khác nhau cho cùng một ERD? Chú ý rằng khoá chính PHẢI duy nhất Môn: Lý thuyết Cơ sở dữ liệuChương 5: Thiết kế CSDL luận lý và mô hình quan hệSlide 33

  34. Chuyển đổi EERD sang các QH (tt) • Bước 7. Chuyển các mối q/hệ thực thể cha/con • Tạo ra các quan hệ cho các thực thể cha và thực thể con • Các thuộc tính của thực thể cha (cả danh hiệu và yếu tố phân biệt) trở thành các thuộc tính của quan hệ cha • Các thuộc tính của thực thể con trở thành các thuộc tính của quan hệ con. • Khoá chính của quan hệ cha trở thành khoá chính của các quan hệ con. • Tạo ra các quan hệ 1:1 giữa thực thể cha với tất cả các thực thể con với thực thể cha là bảng chính Môn: Lý thuyết Cơ sở dữ liệuChương 5: Thiết kế CSDL luận lý và mô hình quan hệSlide 34

  35. Chuyển đổi EERD sang các QH (tt) (a) Mối quan hệ thực thể cha/con Môn: Lý thuyết Cơ sở dữ liệuChương 5: Thiết kế CSDL luận lý và mô hình quan hệSlide 35

  36. Vừa là khoá chính, vừa là khóa ngoại tham khảo đến bảng cha Chuyển đổi EERD sang các QH (tt) (b) Chuyển thành các quan hệ tương ứng Môn: Lý thuyết Cơ sở dữ liệuChương 5: Thiết kế CSDL luận lý và mô hình quan hệSlide 36

  37. Phần II Chuẩn hoá dữ liệu (Data Normalization)

  38. Giới thiệu • Là một công cụ cơ bản để kiểm tra và cải tiến một thiết kế CSDL luận lý để thỏa mãn các ràng buộc toàn vẹn giúp tránh sự trùng lắp dữ liệu (data duplication) không cần thiết. • Là quá trình phân rã các quan hệ không bình thường (anomaly) thành các quan hệ có cấu trúc tốt (well-structured) nhỏ hơn • Quan hệ có cấu trúc tốt • Có sự dư thừa dữ liệu tối thiểu • Cho phép người dùng thêm vào, xoá đi và cập nhật các hàng (row) mà không gây ra sự mâu thuẫn dữ liệu nào Môn: Lý thuyết Cơ sở dữ liệuChương 5: Thiết kế CSDL luận lý và mô hình quan hệSlide 38

  39. Giới thiệu (tt) • Mục tiêu để tránh sự dị thường • Dị thường khi thêm vào (Insertion anomaly) – thêm các hàng mới đòi hỏi người dùng tạo ra các dữ liệu trùng lắp • Dị thường khi xoá (Deletion anomaly) – xoá các hàng đã có gây ra sự mất dữ liệu cần thiết cho các hàng khác • Dị thường khi hiệu chỉnh (Modification anomaly) – thay đổi dữ liệu ở một hàng đòi hỏi thay đổi dữ liệu của các hàng khác vì trùng lắp • Luật cơ bản: một bảng không nên thuộc về nhiều hơn 1 kiểu thực thể Môn: Lý thuyết Cơ sở dữ liệuChương 5: Thiết kế CSDL luận lý và mô hình quan hệSlide 39

  40. Giới thiệu (tt) Hỏi: Đây có phải là một quan hệ không? Đáp: Phải: các hàng là duy nhất và không có các thuộc tính đa trị Hỏi: Khóa chính là gì? Đáp: Tổ hợp: Emp_ID, Course_Title Sự bất thường ở bảng này • Thêm vào – không thể thêm vào 1 nhân viên mới mà không tham gia lớp nào • Xoá đi– nếu xoá bỏ nhân viên 140, ta sẽ mất thông tin về lớp Tax Acc • Hiệu chỉnh– để tăng lương cho nhân viên 100, đòi hỏi phải cập nhật 2 hàng Môn: Lý thuyết Cơ sở dữ liệuChương 5: Thiết kế CSDL luận lý và mô hình quan hệSlide 40

  41. Phụ thuộc hàm • Phụ thuộc hàm (function dependency - FD) • Là một ràng buộc giữa hai (tập) thuộc tính: Trong quan hệ R, B là phụ thuộc hàm vào A nếu với mọi thể hiện đúng của A, giá trị của nó xác định duy nhất giá trị của B • Biểu diễn là AB • A là yếu tố xác định (determinant) • Ví dụ: • Emp_ID, Course_Name  Date_Completed • SS#  Name, Address, Birthday • ISBN  Title, First_Author_Name Môn: Lý thuyết Cơ sở dữ liệuChương 5: Thiết kế CSDL luận lý và mô hình quan hệSlide 41

  42. Khóa dự tuyển • Khoá dự tuyển (candidate key) • Là một hoặc bộ các thuộc tính xác định qui nhất 1 hàng của quan hệ • Một trong các khóa dự tuyển sẽ trở thành khóa chính • Các thuộc tính không là khóa sẽ phụ thuộc hàm vào mọi khoá dự tuyển • Ví dụ: • xét quan hệ Employee(Emp_ID, Emp_Name, SS#) • Cả Emp_ID và SS# là các khóa dự tuyển • Emp_ID là khóa chính Môn: Lý thuyết Cơ sở dữ liệuChương 5: Thiết kế CSDL luận lý và mô hình quan hệSlide 42

  43. Các bước chuẩn hóa Môn: Lý thuyết Cơ sở dữ liệuChương 5: Thiết kế CSDL luận lý và mô hình quan hệSlide 43

  44. Dạng chuẩn 1 – 1stNF • First Normal Form – 1stNF • Không có các thuộc tính đa trị • Tất cả các quan hệ là ở dạng chuẩn 1 (a) Bảng EMPLOYEE với các nhóm dữ liệu lặp lại Môn: Lý thuyết Cơ sở dữ liệuChương 5: Thiết kế CSDL luận lý và mô hình quan hệSlide 44

  45. Dạng chuẩn 1 – 1stNF (tt) • Chuyển thành 1stNF • Giải quyết tất cả các thuộc tính đa trị (b) Quan hệ EMPLOYEE2 Môn: Lý thuyết Cơ sở dữ liệuChương 5: Thiết kế CSDL luận lý và mô hình quan hệSlide 45

  46. Dạng chuẩn 2 – 2ndNF • Second Normal Form – 2ndNF • Là 1stNF • Tất cả các thuộc tính không là khóa phải phụ thuộc hàm hoàn toàn vào toàn bộ khóa • Chứ không phải 1 phần của khóa • Không có các phụ thuộc hàm riêng phần • Phụ thuộc hàm riêng phần (partial dependency) • Một thuộc tính phụ thuộc hàm vào 1 phần của khóa chính • Ví dụ: • R  B • A  R. A  B Môn: Lý thuyết Cơ sở dữ liệuChương 5: Thiết kế CSDL luận lý và mô hình quan hệSlide 46

  47. Dạng chuẩn 2 – 2ndNF (tt) EmpID, CourseTitle  DateCompleted EmpID  Name, DeptName, Salary Phân rã thành 2 quan hệ riêng biệt có quan hệ với nhau Môn: Lý thuyết Cơ sở dữ liệuChương 5: Thiết kế CSDL luận lý và mô hình quan hệSlide 47

  48. Dạng chuẩn 3 – 3rdNF • Third Normal Form – 3rdNF • Là 2ndNF • Không có các quan hệ bắt cầu • Quan hệ bắt cầu (transitive dependency) • Một thuộc tính phụ thuộc hàm vào thuộc tính khác • Thuộc tính này lại phụ thuộc hàm vào thuộc tính khác nữa • Ví dụ: A  B, B  C  A  C Môn: Lý thuyết Cơ sở dữ liệuChương 5: Thiết kế CSDL luận lý và mô hình quan hệSlide 48

  49. CustID  Name CustID  Salesperson CustID  Region All this is OK (2nd NF) CustID  Salesperson  Region Transitive dependency (not 3rd NF) Dạng chuẩn 3 – 3rdNF (tt) (a) Quan hệ SALES với các dữ liệu mẫu (b) Quan hệ SALES với phụ thuộc hàm bắt cầu Môn: Lý thuyết Cơ sở dữ liệuChương 5: Thiết kế CSDL luận lý và mô hình quan hệSlide 49

  50. Dạng chuẩn 3 – 3rdNF (tt) (c) Phân rã quan hệ SALES Không còn phụ thuộc hàm bắt cầu nữa … Cả hai quan hệ bây giờ là ở dạng chuẩn 3 (d) Quan hệ ở dạng chuẩn 3 CustID  Name CustID  Salesperson Môn: Lý thuyết Cơ sở dữ liệuChương 5: Thiết kế CSDL luận lý và mô hình quan hệSlide 50

More Related