Mô hình thực thể liên kết mở rộng

Mô hình thực thể liên kết mở rộng (EER – Enhanced Entity Relationship Model) mở rộng mô hình ER để giải quyết một số hạn chế còn tồn tại ở mô hình ER.

Giới thiệu

Mô hình thực thể liên kết rất tốt, tuy nhiên ER vẫn không đủ mạnh để diễn tả các hệ thống thông tin phức tạp.

Các hệ thống ngày càng trở nên lớn hơn, do đó, chúng ta cần một mô hình khác có khả năng:

  • Diễn tả được các quy tắc nghiệp vụ ( business rules) phức tạp
  • Tạo được những kiểu thực thể tổng quát hơn (siêu kiểu) hay những kiểu thực thể chi tiết hơn (kiểu con).

Mô hình liên kết mở rộng – EER

Một trường đại học muốn quản lý sinh viên của mình. Tuy nhiên, trường có nhiều hệ học (cao học, đại học và cao đẳng) nên sinh viên cũng có nhiều loại: học viên cao học, sinh viên đại học và sinh viên cao đẳng (gọi chung là sinh viên).

Các loại sinh viên này giống nhau phần lớn về các thuộc tính, tính chất. Tuy nhiên mỗi loại sẽ có một số đặc điểm đặc biệt.

Với mô hình thực thể liên kết, chúng ta vẫn có thể mô tả bài toán này, với mỗi loại sinh viên được xem như một thực thể.

Khái niệm cơ bản

Mô hình thực thể liên kết mở rộng giới thiệu thêm 2 khái niệm mở rộng là:

  • Siêu kiểu (supertype): là kiểu thực thể tổng quát có mối liên kết với một hay nhiều kiểu con
  • Kiểu con (subtype): là sự phân nhóm từ một kiểu thực thể thành nhiều kiểu thực thể
  • Kế thừa thuộc tính (Attribute inheritance): Sự thừa kế thuộc tính là tính chất mà theo đó các kiểu thực thể con thừa kế trị của mọi thuộc tính thuộc về siêu kiểu
  • Tổng quát hóa (generalization): Tổng quát hóa là quá trình định nghĩa một kiểu dữ liệu tổng quát hơn từ một tập hợp các kiểu dữ liệu chuyên biệt.
  • Chuyên nghiệp hóa (specialization): Chuyên nghiệp hóa là quá trình định nghĩa một hay nhiều kiểu con từ một siêu kiểu và hình thành mối liên kết siêu kiểu/kiểu con

Ký hiệu

siêu kiểu - kiểu con
siêu kiểu – kiểu con

Ví dụ:

Với vấn đề ở đầu chương, chúng ta hiện thực chúng như sau:

 

 

Ràng buộc trong mối liên kết siêu kiểu – kiểu con

Ràng buộc về tính đầy đủ

Ràng buộc về tính đầy đủ dùng để trả lời cho câu hỏi: “Một thể hiện của siêu kiểu có phải là thành viên của ít nhất một kiểu con hay không?”

Có 2 nguyên tắc:

  • Chuyên biệt hóa toàn phần (total specialization): mỗi thể hiện của siêu kiểu tất yếu phải là một thể hiện của một kiểu con
  • Chuyên biệt hóa riêng phần (partial specialization): Chuyên biệt hóa riêng phần: mỗi thể hiện của siêu kiểu không nhất thiết phải là 1 thể hiện của một kiểu con

Ví dụ ràng buộc về tính đầy đủ

Ví dụ 1: Một công ty cho thuê xe, họ vừa cho thuê ô tô, vừa cho thuê xe tải. Tuy nhiên, có 1 vài chiếc xe như: xe cứu hộ, xe phục vụ các lễ hội …vv

Ví dụ 2: Ngân hàng X cung cấp một số dịch vụ, khi khách hàng muốn sử dụng dịch vụ thì cần phải mở tài khoản tương ứng. Các loại tài khoản của ngân hàng bao gồm: tài khoản tiết kiệm, tài khoản tín dụng và tài khoản vay.

Ở ví dụ 1 ta có: 1 chiếc xe không nhất thiết phải là ô tô hay xe tải, vậy đây là một ví dụ về chuyên biệt hóa riêng phần.

Xem mô hình EER, ta thấy mối ràng buộc này được thể hiện bằng một đường nối đơn (đường màu đỏ).

Khi tiếp tục với ví dụ 2, ta dễ dàng nhận thấy đây là một ví dụ về chuyên biệt hóa toàn phần. Khi mở 1 tài khoản ở ngân hàng, tài khoan đó phải thuộc về một dịch vụ cụ thể nào đó.

Và để thể hiện mối ràng buộc này, người ta quy ước sử dụng 2 dấu gạch song song.

Ràng buộc về tính phân ly

Ràng buộc về tính phân ly để trả lời cho câu hỏi “một thể hiện (instance) của siêu kiểu có đồng thời là thành viên của cả 2 kiểu con hay không?”

  • Phân ly (disjoint): một thể hiện của siêu kiểu là thành viên của chỉ một kiểu con
  • Trùng lặp (overlap): một thể hiện của siêu kiểu có thể đồng thời là thành viên của nhiều hơn một kiểu con

Ví dụ ràng buộc tính phân ly

Ví dụ 1: Khi một người bệnh đến bệnh viện thăm khám, thì tùy mức độ và phương pháp chữa trị, người bệnh đó sẽ được bác sĩ chỉ định là khám nội trú hay ngoại trú. Và dễ dàng thấy được một bệnh nhân không thể vừa được chữa trị ngoại trú, vừa được chữa trị nội trú được.

Và đây là một ví dụ về ràng buộc phân ly, người ta sử dụng chữ ‘D’ (disjoint) để mô tả ràng buộc này.

Ngược lại với disjoint, chúng ta có ràng buộc trùng lắp (phủ lắp, trùng lặp…vv) nghĩa là 1 hiện thực có thể thuộc vê nhiều thực thể con (subtype) khác nhau. Ví dụ, một nhà máy sản xuất đồ gỗ gia dụng. Các thành phần của một sản phẩm (chân bàn, mặt bàn, …vv) được chia làm 2 loại. Tự sản xuất và nhập, trong một số trường hợp, công suất của nhà máy không thể tự đáp ứng được thì nhà máy sẽ cần mua thêm bên ngoài. Do đó, một hiện thực của thành phần (ví dụ: chân ghế) có thể là thực thể ‘thành phần tự sản xuất’ hoặc ‘thành phần nhập’.

Người ta quy ước sử dụng kí tự ‘O’ để mô tả ràng buộc này.