Chuyển đổi từ EERD qua mô hình dữ liệu quan hệ

relational-database-schema

Khi xây dựng xong mô hình thực thể liên kết mở rộng (EERD) chúng ta sẽ chuyển đổi nó thành mô hình dữ liệu quan hệ để tiếp tục phát triển và chuẩn hóa CSDL của chúng ta.

Phương pháp thực hiện

Phương pháp chuyển đổi sẽ được liệt kê theo từng trường hợp:

Thuộc tính

Liên kết

  • Đối với liên kết 1 ngôi, dựa vào ràng buộc lượng số, chúng ta chia ra 2 trường hợp:
    • One-to-Many: sử dụng khóa ngoại đệ quy trên cùng một quan hệ.
    • Many-to-Many: tách thành 2 quan hệ riêng biệt.
  • Đối với liên kết 2 ngôi, dựa vào ràng buộc lượng số, chúng ta chia ra 3 trường hợp:
    • One-to-One: Thành 2 quan hệ, khóa chính phía bên bắt buộc sẽ trở thành khóa ngoại (foreign key) phía bên tùy chọn (optional).
    • One-to-Many: Thành 2 quan hệ, khóa chính ở phía “One” sẽ trở thành khóa ngoại ở phía “Many“.
    • Many-to-May: Thành 3 quan hệ, quan hệ ở giữa sẽ có khóa chính bào gồm khóa chính của 2 quan hệ bên ngoài.
  • Đối với liên kết 3 ngôi chúng ta có 4 trường hợp:
    • Trường hợp 1-1-1: Tách ra được 4 quan hệ, trong trường hợp này ta sẽ có 3 phụ thuộc hàm và do đó sẽ có 3 cách chọn khóa chính.
    • Trường hợp M-N-L: Tách ra được 4 quan hệ, sử dụng 3 khóa chính của 3 quan hệ (3 thực thể) làm khóa chính cho quan hệ thể hiện mối liên kết.
    • Trường hợp: 1-N-L: Tách ra được 4 quan hệ, sử dụng 2 khóa chính ở chiều “Many” làm khóa chính của quan hệ thể hiện mối liên kết.
    • Trường hợp: 1-1-L: Tách ra được 4 quan hệ, sử dụng khóa chính ở chiều “Many” + 1 khóa chính ở chiều “One” làm khóa chính ở quan hệ thể hiện mối liên kết.

Thực thể

  • Các thực thể yếu (weak entities) trở thành một quan hệ có khóa chính (primary key) được cấu thành từ:
    • Các thuộc tính định danh của thực thể yếu
    • Khóa chính của thuộc tính định danh
  • Thực thể kết hợp trở thành 1 quan hệ và nên gán cho nó thêm một thuộc tính định danh riêng.

Siêu kiểu, kiểu con.

Dựa trên khái niệm siêu kiểu, kiểu con chúng ta sẽ có một số quy tắc sau:

  • Mỗi siêu kiểu (super type), kiểu con (sub type) sẽ trở thành một quan hệ.
  • Thuộc tính của siêu kiểu sẽ thuộc về các quan hệ tương ứng (nghĩa là thuộc tính của siêu kiểu thì kiểu con cũng được kế thừa).
  • Thuộc tính của kiểu con sẽ chỉ thuộc về kiểu con.
  • Giữa siêu kiểu và kiểu con sẽ có 1 mối liên kết 1:1

Bài tập

Chuyển đổi các EERD thành mô hình dữ liệu quan hệ.

Bài 1

Bài 2

Bài 3

Bài 4

Bài 5

Bài 6