1. Giới thiệu
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.
2. 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.
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ệ.
3. Các thành phần cơ bản của mô hình E-R
3.1. 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ể
3.2. 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ể SINHVIEN 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:
Ví dụ 3:
3.3. 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.
3.4. 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:
- 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:
3.5. Các kiểu liên kết trong lược đồ E-R
Ví dụ:
- Một phòng ban có nhiều nhân viên
- Một nhân viên chỉ thuộc 1 phòng ban
- 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
- Một nhân viên có thể là trưởng phòng của 1 phòng ban nào đó
- 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
3.6. 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ể đó.
4. ERD Notations
An entity-relationship diagram consists of three basic elements such as entity, relationship, and attribute. Along with these are more components based on their main elements like weak entity, multi-valued attribute, and many more. Other notations used to make ERD diagram examples include cardinality and ordinality to define relationships in numbers. Here are brief explanations about each component.
- Entity: This represents the name of an object, person, thing, event, or place where data is stored. This is usually represented by rectangles.
- Weak Entity: Unlike a strong entity that is defined by its attributes, a weak entity solely depends on the existence of another entity.
- Attribute: Refers to the unique characteristic or property of an entity.
- Derived Attribute: Refers to an attribute derived or based on another attribute.
- Multivalued Attribute: A type of attribute that can have multiple values.
- Relationship: Defines the interaction between two entities.
- Cardinality: This refers to the occurrences of a relationship. In particular, it specifies the maximum number of relationships between two entities.
- Ordinality: Describes whether a relationship is mandatory or optional. It is also used to determine the absolute minimum number of relationships.
5. Xây dựng mô hình E-R
5.1. 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
5.2. 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 đồ
5.3. 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:
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:
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
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:
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 đến nhâ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
