Mô hình quan hệ - thực thể (Entity Relationship Model)

Mô hình quan hệ thực thể (Entity Relationship model - E-R) được CHEN giới thiệu vào năm 1976 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 khái niệm, được xây dựng dựa trên việc nhận thức thế giới thực thông qua tập các đối tượng được gọi là các thực thể và các mối quan hệ giữa các đối tượng này. So với mô hình mạng thì mô hình quan hệ thực thể 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. Nếu như mô hình mạng 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 đó thì trong mô hình quan hệ thực thể lại 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ế cơ sở dữ liệu

1 - Vai trò của mô hình E-R trong quá trình thiết kế cơ sở dữ liệu:

Mục tiêu của mô hình E-R trong quá trình thiết kế cơ sở dữ liệu đó là phân tích dữ liệu, xác định các đơn vị thông tin cơ bản cần thiết của tổ chức, mô tả cấu trúc và mối liên hệ giữa chúng

Lược đồ quan hệ là gì

E-R là mô hình trung gian để chuyển những yêu cầu quản lý dữ liệu trong thế giới thực thành mô hình cơ sở dữ liệu quan hệ

2 - Các thành phần cơ bản của mô hình E-R

a - Thực thể và tập thực thể

Thực thể là một đối tượng trong thế giới thực.

Một nhóm bao gồm các thực thể tương tự nhau tạo thành một tập thực thể

Việc lựa chọn các tập thực thể là một bước vô cùng quan trọng trong việc xây dựng sơ đồ về mối quan hệ thực thể

Ví dụ: Quản lý các dự án của công ty

  • Một nhân viên là một thực thể
  • Tập hợp các nhân viên là tập thực thể
  • Một dự án là một thực thể
  • Tập hợp các dự án là tập thực thể
  • Một phòng ban là một thực thể
  • Tập hợp các phòng ban là tập thực thể

b - Thuộc tính:

Mỗi tập thực thể có một tập các tính chất đặc trưng, mỗi tính chất đặc trưng này gọi là thuộc tính của tập thực thể. Ứng với mỗi thuộc tính có một tập các giá trị cho thuộc tính đó gọi là miền giá trị.

Miền giá trị của thuộc tính gồm các loại giá trị như sau:

  • Kiểu chuỗi (string)
  • Kiểu số nguyên (integer)
  • Kiểu số thực (real)
  • ...

Ví dụ tập thực thể NHANVIEN có các thuộc tính

  • Họ tên (hoten: string[20])
  • Ngày sinh (ns: date)
  • Điểm TB (DTB:float)

Thuộc tính bao gồm các loại như sau:

  • Thuộc tính đơn không thể tách nhỏ ra được
  • Thuộc tính phức hợp có thể tách ra thành các thành phần nhỏ hơn

Các loại giá trị của thuộc tính:

  • Đơn trị: các thuộc tính có giá trị duy nhất cho một thực thể (VD: số CMND, )
  • Đa trị: các thuộc tính có một tập giá trị cho cùng một thực thể (VD: bằng cấp, )
  • Suy diễn được (năm sinh <----> tuổi)

Mỗi thực thể đều được phân biệt bởi thuộc tính khóa

Ví dụ 1: tập thực thể NHANVIEN có các thuộc tính

  • Mã NV (MaNV: integer)
  • Họ tên (Hoten: string[50])
  • Ngày sinh (ns:date)
  • Địa chỉ (diachi:string[100])
  • Quê quán (quequan:string[30])
  • Hệ số lương (hsluong:float)
  • Hệ số phụ cấp (hsphucap:float)
  • Tổng lương (tongluong:float)

Ví dụ 2:

Lược đồ quan hệ là gì

Ví dụ 3:

Lược đồ quan hệ là gì

c - Mối quan hệ giữa các tập thực thể:

Quan hệ là sự liên kết giữa hai hay nhiều tập thực thể

Ví dụ giữa tập thực thể NHANVIEN và PHONGBAN có các liên kết như sau:

  • Một nhân viên thuộc một phòng ban nào đó
  • Một phòng ban có một nhân viên làm trưởng phòng

Tập quan hệ là tập hợp các mối quan hệ giống nhau

d - Lược đồ E-R:

Là đồ thị biểu diễn các tập thực thể, thuộc tính và mối quan hệ

Các ký hiệu trong lược đồ E-R

  • Đỉnh:

Lược đồ quan hệ là gì

  • Cung: là đường nối giữa tập thực thể và thuộc tính, mối quan hệ và tập thực thể

Ví dụ lược đồ E-R:

Lược đồ quan hệ là gì

e - Các kiểu liên kết trong lược đồ E-R:

Lược đồ quan hệ là gì

Ví dụ:

  • Một phòng ban có nhiều nhân viên

Lược đồ quan hệ là gì

  • Một nhân viên chỉ thuộc 1 phòng ban

Lược đồ quan hệ là gì

  • Một nhân viên có thể được phân công vào nhiều dự án hoặc không được phân công vào dự án nào

Lược đồ quan hệ là gì

  • Một nhân viên có thể là trưởng phòng của 1 phòng ban nào đó

Lược đồ quan hệ là gì

Một loại thực thể có thể tham gia nhiều lần vào một quan hệ với nhiều vai trò khác nhau

Lược đồ quan hệ là gì

f - Thuộc tính khóa:

Mỗi tập thực thể phải có 1 khóa

Một khóa có thể có 1 hay nhiều thuộc tính

Có thể có nhiều khóa trong 1 tập thực thể, ta sẽ chọn ra 1 khóa làm khóa chính cho tập thực thể đó

3 - Xây dựng mô hình E-R

a - Quy tắc:

  • Chính xác
  • Tránh trùng lặp
  • Dễ hiểu
  • Chọn đúng mối quan hệ
  • Chọn đúng kiểu thuộc tính

b - Các bước xây dựng:

  • Liệt kê, chọn lọc thông tin
  • Xác định tập thực thể
  • Xác định mối quan hệ
  • Xác định thuộc tính và gắn thuộc tính cho tập thực thể và mối quan hệ
  • Quyết định thuộc tính khóa
  • Vẽ biểu đồ mô hình thực thể E-R
  • Chuẩn hóa biểu đồ

c - Ví dụ:

Ví dụ 1: Xây dựng mô hình E-R cho cơ sở dữ liệu quản lý đơn đặt hàng với các thông tin như sau:

Lược đồ quan hệ là gì

Bước 1: Liệt kê, chọn lọc thông tin:

-- Đơn đặt hàng gồm những thông tin như sau:

  • Số đơn hàng (Số ĐH)
  • Tên đơn vị đặt hàng (Tên ĐV)
  • Địa chỉ
  • Điện thoại
  • Ngày đặt
  • Tên hàng
  • Mô tả
  • Đơn vị tính (Đv tính)
  • Số lượng
  • Người đặt hàng (Họ tên NĐ)

-- Phiếu giao hàng gồm những thông tin như sau:

  • Số phiếu giao hàng (Số PG)
  • Tên đơn vị đặt hàng (Tên ĐV)
  • Địa chỉ
  • Nơi giao hàng (Tên nơi GH)
  • Ngày giao
  • Tên hàng
  • Đơn vị tính (Đv tính)
  • Số lượng
  • Đơn giá
  • Thành tiền
  • Tên người nhận (Họ tên NN)
  • Tên người giao (Họ tên NG)

Bước 2: Xác định thực thể, thuộc tính:

-- Thực thể ĐƠN VỊ ĐH gồm các thuộc tính sau:

  • Mã ĐV
  • Tên ĐV
  • Địa chỉ
  • Điện thoại

-- Thực thể ĐƠN VỊ KH gồm các thuộc tính sau:

  • Mã ĐV
  • Tên ĐV
  • Địa chỉ

-- Thực thể HÀNG gồm các thuộc tính sau:

  • Mã hàng
  • Tên hàng
  • Đv tính
  • Mô tả hàng

-- Thực thể NGƯỜI ĐẶT gồm các thuộc tính sau:

  • Mã số NĐ
  • Họ tên NĐ

-- Thực thể NƠI GIAO gồm các thuộc tính sau:

  • Mã số ĐĐG
  • Tên nơi giao

-- Thực thể NGƯỜI NHẬN gồm các thuộc tính sau:

  • Mã số NN
  • Họ tên NN

-- Thực thể NGƯỜI GIAO gồm các thuộc tính sau:

  • Mã số NG
  • Họ tên NG

Bước 3: Xác định các mối quan hệ

-- Hai động từ tìm được là: Đặt, Giao --> Dựa vào hai động từ tìm được, đặt các câu hỏi để xác định các mối quan hệ như sau:

Lược đồ quan hệ là gì

-- Từ đó ta có các quan hệ như sau:

  • Người đặt hàng THUỘC Đơn vị đặt hàng
  • Người nhận hàng THUỘC Đơn vị khách hàng

Bước 4: Vẽ biểu đồ mô hình thực thể E-R

Lược đồ quan hệ là gì

Bước 5: Chuẩn hóa, rút gọn mô hình thực thể E-R Do đơn vị đặt hàng và đơn vị khách hàng đều là các đơn vị ở bên ngoài giao dịch với cửa hàng nên ta gộp thành một thực thể là Đơn vị khách gồm các thuộc tính: Mã ĐV, Tên ĐV, Địa chỉ, Điện thoại

Ta có mô hình E-R như sau:

Lược đồ quan hệ là gì

Ví dụ 2: Xây dụng cơ sở dữ liệu đề công ty theo dõi các thông tin liên quan đếnnhân viên, phòng ban và đề án với các yêu cầu sau:

  • Cty có nhiều phòng ban, mỗi phòng ban có tên duy nhất, mã phòng ban duy nhất, một trưởng phòng và ngày nhận chức.
  • Mỗi phòng ban có thể ở nhiều nhiều nhân viên
  • Nhân viên có mã nhân viên, họ tên, địa chỉ, chức vụ
  • Mỗi nhân viên làm việc ở 1 phòng ban, tham gia vào các đề án
  • Mỗi đề án có mã đề án, tên đề án

Ta có lược đồ E-R như sau:

Lược đồ quan hệ là gì

Nguồn tham khảo: http://tailieu.tv/tai-lieu/mo-hinh-thuc-the-moi-quan-he-2876/ http://freetuts.net/mo-hinh-thuc-the-moi-ket-hop-er-305.html http://www.tailieuontap.com/2010/05/mo-hinh-thuc-lien-ket-mo-hinh-er.html https://voer.edu.vn/m/mo-hinh-quan-he-thuc-the-entity-relationship-model/ff2250a9