Bài 04: Mô hình thực thể mối kết hợp (ER)

Tiếp theo mô hình mạng chúng ta sẽ học một mô hình cao cấp hơn đó là mô hình thực thể mối kết hợp. Đây là một mô hình cao cấp hơn mô hình mạng và nó được sử dụng nhiều trong thiết kế dữ liệu ở mức quan niệm.

Trong nội dung bài này chúng ta sẽ tìm hiểu những khái niệm như sau liên quan đến mô hình này:

  • Loại thực thể - thực thể
  • Thuộc tính của thực thể
  • Khóa của loại thực thể
  • Loại mối kết hợp - mối kết hợp
  • Thuộc tính của loại mối kết hợp
  • Bản số
  • Mô hình ER mở rộng

1. Giới thiệu mô hình thực thể mối kết hợp

Mô hình thực thể kết hợp (Entity Relationshop Model) viết tắt là (ER)  được CHEN giới thiệu vòa năm 1976. Đây là một mô hình được sử dụng rộng rãi trong các bản thiết kế cơ sở dữ liệu ở mức quan niệm.

So với mô hình mạng thì mô hình ER có nhiều ưu điểm hơn và nó thể hiện rõ hơn các thành phần trong thế giới thực. Ví dụ trong mô hình mạng ta chỉ biểu diễn các đối tượng chính chứ không mô tả được các đặc điểm trong đối tượng đó, vậy thì trong mô hình ER sẽ khắc phục được những điểm yếu này. Chính vì vậy việc lựa chọn mô hình này luôn là quyết định của các nhà phân tích thiết kế CSDL.

2. Loại thực thể trong mô hình ER

Loại thực thể (Entity Type) là là những đối tượng hay sự vật của thế giới thực cần quản lý trong ứng dụng. Các đối tượng ở đây có thể sờ thấy và cũng có thể mang tính chất ảo tưởng.

Ví dụ: Khi thiết kế cơ sở dữ liệu quản lý học viên thì ta sẽ có một số thực thể như sau:

  • HOCVIEN
  • LOP
  • ...

Trong mô hình ER thì ta sẽ dùng ký hiệu sau để mô tả loại thực thể:

  • ...

Như vậy ta dùng ký hiệu hình chữ nhật và bên trong chính là tên của loại thực thể.

3. Thực thể (Entity) trong mô hình ER

Trong lập trình hướng đối tượng thì khi bạn tạo mới một lớp thì tức là bạn đã tạo một thể hiện của đối tượng mà class đó đang mô tả. Vậy thì trong mô hình thực thể mối kết hợp thì thực thể chính là một thể hiện của loại thực thể.

Ví dụ:  Loại thực thể HOCVIEN gồm các thực thể như sau:

  • Sinh viên Nguyễn Văn A
  • Sinh viên Nguyễn Văn B
  • Sinh viên Nguyễn Văn C
  • ...

Tất cả những học viên trên chính là thực thể thể hiện cho loại thực thể HOCVIEN.

4. Thuộc tính của loại thực thể (Entity Attribute)

Thuộc tính là những tính chất mô tả một đối tượng cụ thể nào đó. Ví dụ ta có chiếc mũ màu đỏ, chiếc áo màu vàng thì những màu sắc đỏ và vàng chính là những thuộc tính của mũ và áo.

Nếu ở đây ta nhắm tới ví dụ ở phần trên thì với loại thực thể HOCVIEN ta sẽ có một số thuộc tính như sau:

  • Mahv
  • Hoten
  • Gioitinh
  • Ngaysinh
  • Noisinh
  • ..

Và ta có ký hiệu như sau:

5. Các loại thuộc tính của loại thực thể

Chúng ta có tổng cộng ba loại thuộc tính chính đó là Đơn vị, Đa hợpĐa trị.

  • Đơn vị (simple) là loại thuộc tính chỉ có một giá trị duy nhất. Ví dụ thuộc tính Noisinh, Mahv, ...
  • Đa hợp (Composite) là thuộc tính có thể được tạo từ nhiều thành phần. Ví dụ thuộc tính Hoten có thể được tạo từ 3 thành phần đó là HỌ + TÊN LÓT + TÊN. Ký hiệu là HOTEN (HO, TENLOT, TEN)
  • Đa trị (Multi valued) là loại thuộc tính có thể có nhiều giá trị đối với loại thực thể. Ví dụ bằng cấp thì ta có bằng loại tốt, loại khá, trung bình khá và giỏi. Ký hiệu là {BANGCAP}

Với hai loại thuộc tính đa hơpđa trị  thì ta có thể thiết kế chồng lên nhau.

Ví dụ{BANGCAP(TRUONGCAP, LOAIBANG, NGANH)}

6. Khóa của loại thực thể trong mô hình ER

Như định nghĩa trên thì mỗi thực thể sẽ là một thể hiện của loại thực thể, vậy thì làm sao để nhận diện các thực thể đó? Để nhận diện thì với mỗi thực thể chúng ta sẽ xác định cho nó một khóa duy nhất. Như vậy khóa của loại thực thể chính là dùng để nhận diện các thực thể của nó.

Ví dụ: trong loại thực thể HOCVIEN sẽ có nhiều thực thể học viên và mỗi học viên sẽ có một mã số duy nhất. Như vậy mã học viên chính là Key để ta nhận diện được học viên nào.

7. Các loại mối kết hợp trong mô hình ER

Trong mô hình mạng thì giữa hai đối tượng sẽ có một mối liên hệ và ta gọi nó là loại liên hệ. Vậy thì trong mô hình thực thể mối kết hợp ta gọi nó là loại mối kết hợp. Vậy loại mối kết hợp chính là mối liên hệ giữa hai loại thực thể.

Ví dụ: Giữa hai loại thực thể HOCVIEN và LOP ta sẽ có loại mối kết hợp THUOC, và ta biểu diễn như sau:

Biểu diễn bằng lời nói thì như sau "học viên sẽ thuộc lớp nào đó"

Ngoài ra giữa hai loại thực thể có thể tồn tại nhiều loại mối kế hợp.

Ví dụ:Giữa hai thực thể HOCVIEN và LOP sẽ có hai loại mối kế hợp nhu sau:

  • Học viên sẽ thuộc lớp nào đó
  • Học viên sẽ là lớp trường lớp nào đó

8. Số ngôi của loại mối kết hợp

Số ngôi chính là số loại thực thểloại mối kết hợp đó gắn kết. Như trong ví dụ 2 ở phần 7 thì loại mối kết hợp THUOC sẽ có số ngôi là 2 tại vì nó gắn kết giữa hai loại thực thể HOCVIEN và LOP.

Ví dụ: Giả sử ta có ba loại thực thể là:

  • HOCVIEN : học viên
  • MONHOC : môn học
  • LANTHI : lần thi

Ta sẽ có một loại mối kết hợp tên là THI để gắn ba loại thực thể này theo mô hình như sau:

so-ngoi-trong-mo-hinh-er.png

Như vậy loại mối kết hợp THI sẽ có số ngôi là 3

9. Bản số

Trong mô hình mạng thì ta cũng có sử dụng bản số để chỉ ra số lượng các mẫu tin tham gia vào các mối quan hệ, vậy thì trong mô hình ER cũng không có gì khắc biệt, chúng ta sử dụng những bản số để thể hiện số lượng tối thiểu và số lượng tối đa tham gia vào loại mối kết hợp.

Ký hiệu: (min, max)

Ví dụ:  Loại mối kết hợp học viên (HOCVIEN) và lớp (LOP) có loại mối kết hợp thuộc:

Có nghĩa như sau:

  • Mỗi học viên sẽ thuộc một lớp
  • Mỗi lớp có thể có 1 hoặc nhiều học viên

Chi tiết thì bạn xem lại bài mô hình dữ liệu mạng nhé.

10. Mô hình thực thể mối kết hợp mở rộng

Chuyên biệt hóa

Giả sử ta có hai loại thực tể là GIAOVIEN và HOCVIEN thì nếu để ý kỹ thì bạn sẽ nhận ra rằng cả hai đều là loại thực thể CONNGUOI. Tại sao ta lại phân ra làm hai loại như vậy mà không gộp chung lại một? Lý do là mỗi loại thực thể sẽ có một số thuộc tính khác nhau. Và nếu để ý kỹ hơn nữa thì ta thấy loại thực thể CONNGUOI sẽ chứa một số thuộc tính dùng chung cho cả hai loại thực thể GIAOVIEN và HOCVIEN.

  • Với GIAOVIEN ta sẽ có một số thuộc tính như (MaGiaoVien, CapBac, ChuNhiemLop, ...)
  • Với HOCVIEN ta sẽ có một số thuộc tính như (MaHocVien, Lop, Khoa, ...)
  • Với CONNGUOI ta sẽ có một số thuộc tính như (SOCMND, GioiTinh, ...)

Ta có một sơ đồ ER mở rộng như sau:

Mối kết hợp đệ quy

Mối kết hợp đệ quy là loại mối kết hợp được tạo thành từ cùng một loại thực thể, hay nói cách dễ hiểu thì loại thực thể đó tự trỏ lại chính nó.

Ví dụ trong công ty ABC có danh sách nhân viên và trong đó có một nhân viên làm trưởng nhóm (leader) quản lý tất cả các nhân viên còn lại. Mô hình như sau:

Loại thực thể yếu

Trong một số chương trình quản lý phần mềm ta phân tích dữ liệu sẽ có những loại thực thể quan trọng và một số loại thực thể không quan trọng và ta gọi nó là loại thực thể yếu. Loại thực thể yếu sẽ có một số tính chất như sau:

  • Không có thuộc tính khóa
  • Bắt buộc phải tham gia vào loại mối kết hợp với chủ thể của nó

Ký hiệu của nó như sau: Chú ý đường viền hơi đậm so với loại thực thể bình thường.

Ví dụ: Loại thực thể Thân Nhân (THANNHAN) là loại thực thể yếu gồm các thuộc tính (Số thứ tự, tên, ngày sinh, Mối quan hệ) và tham gia vào loại mối kết hợp CÓ với loại thực thể NHANVIEN.

Mối kết hợp mở rộng

Các loại thực thể có thể có nhiều loại mối kết hợp với nhau. Ví dụ ta có loại thực thể LOP, MONHOC, GIAOVIEN sẽ có các loại mối kết hợp như sau:

  • LOP sẽ học MONHOC
  • GIAOVIEN sẽ giảng dạy LOP
  • GIAOVIEN sẽ giảng dạy MONHOC

Lời kết

Trong bài này chúng ta đã tìm hiểu một số kiến thức căn bản liên quan đến mô hình thực thể mối kết hợp và chúng ta chỉ tìm hiểu ở mức lý thuyết, ở các bài sau chúng ta sẽ tìm hiểu chuyên sâu hơn thông qua các ví dụ thực tế để các bạn có cái nhìn tổng quát hơn. Tuy nhiên bạn hãy đọc qua bài này để biết được một số định nghĩa nhé.

Hãy để lại link bài viết gốc khi chia sẻ bài viết này, mình sẽ report DMCA với những website lấy nội dung mà không để nguồn hoặc copy bài với số lượng lớn.

Nguồn: freetuts.net

Profile photo of adminTheHalfHeart

TheHalfHeart

Có sở thích viết tuts nên đã từng tham gia viết ở một số diễn đàn, đến năm 2014 mới có điều kiện sáng lập ra freetuts.net. Sinh năm 90 và có 1 vợ 2 con, thích ca hát và lập trình.

ĐĂNG BÌNH LUẬN: Đăng câu hỏi trên Group Facebook để được hỗ trợ nhanh nhất.