DBMS - ER Model Các Khái Niệm Cơ Bản

Xin chào, các pháp sư cơ sở dữ liệu tương lai! Hôm nay, chúng ta sẽ khám phá thế giới kỳ diệu của các mô hình Entity-Relationship (ER). Như một người giáo viên khoa học máy tính gần gũi, tôi ở đây để hướng dẫn bạn trong hành trình này, ngay cả khi bạn chưa bao giờ viết một dòng mã trong đời. Vậy, hãy lấy sổ tay ảo của bạn, và chúng ta cùng bắt đầu!

DBMS - ER Model Basic Concepts

Entity

Entity Là Gì?

Entity giống như một ngôi sao trong vũ trụ cơ sở dữ liệu. Đó là một vật, một người, một địa điểm, hoặc một khái niệm mà chúng ta muốn lưu trữ thông tin về. Hãy tưởng tượng bạn đang tạo một cơ sở dữ liệu cho thư viện. Sách, tác giả, và người đọc đều là các entity.

Hãy xem một ví dụ đơn giản:

Entity Mô Tả
Book Vật liệu đọc sách vật lý hoặc kỹ thuật số
Author Người viết sách
Reader Người mượn sách

### Entity Sets

Bây giờ, hãy tưởng tượng một hộp lớn có nhãn "Books" chứa tất cả các sách trong thư viện của bạn. Hộp này là gì chúng ta gọi là một entity set - một tập hợp các entity tương tự. Mỗi sách trong hộp này là một entity duy nhất trong "Books" entity set.

## Attributes

### Attributes Là Gì?

Nếu các entity là những ngôi sao trong vũ trụ cơ sở dữ liệu của chúng ta, thì attributes là những chi tiết lấp lánh làm cho mỗi ngôi sao trở nên duy nhất. Chúng là các thuộc tính hoặc đặc điểm mô tả một entity.

Hãy mở rộng ví dụ thư viện của chúng ta:


| Entity    | Thuộc Tính                          |
|-----------|-------------------------------------|
| Book      | ISBN, Tựa Sách, Ngày Xuất Bản, Thể Loại|
| Author    | ID Tác Giả, Tên, Ngày Sinh, Quốc Tịch|
| Reader    | ID Người Đọc, Tên, Địa Chỉ, Số Điện Thoại|

Mỗi thuộc tính trong số này giúp chúng ta xác định và mô tả entity một cách chính xác hơn. Ví dụ, ISBN (International Standard Book Number) là một mã định danh duy nhất cho mỗi sách.

Loại Attributes

Không phải tất cả các attributes đều alike. Hãy xem xét một số loại khác nhau:

  1. Simple Attributes: Đây là các đơn vị nguyên tử, như tuổi của một người.
  2. Composite Attributes: Các attributes này có thể chia thành các phần nhỏ hơn, như địa chỉ (đường, thành phố, mã bưu điện).
  3. Single-valued Attributes: Các attributes này chỉ có một giá trị cho một entity cụ thể, như ngày sinh của một người.
  4. Multi-valued Attributes: Các attributes này có thể có nhiều giá trị, như số điện thoại của một người.
  5. Derived Attributes: Các attributes này có thể được tính toán từ các attributes khác, như tuổi (tính toán từ ngày sinh).

Dưới đây là bảng tóm tắt các loại này:

Loại Thuộc Tính Ví Dụ
Simple Tuổi
Composite Địa Chỉ (Đường, Thành Phố, Mã Bưu Điện)
Single-valued Ngày Sinh
Multi-valued Số Điện Thoại
Derived Tuổi (tính toán từ Ngày Sinh)

## Relationship

### Relationship Là Gì?

Bây giờ, hãy kết nối các ngôi sao trong vũ trụ cơ sở dữ liệu của chúng ta! Một relationship là sự liên kết giữa hai hoặc nhiều entity. Trong ví dụ thư viện của chúng ta, một Author "viết" một Book, và một Reader "mượn" một Book.

### Loại Relationships

Relationships có nhiều loại khác nhau, tùy thuộc vào số lượng entity tham gia:

1. ** Unary Relationship**: Sự liên kết giữa các实例 của cùng một entity set.
2. **Binary Relationship**: Sự liên kết giữa các instance của hai entity sets.
3. **Ternary Relationship**: Sự liên kết liên quan đến các instance của ba entity sets.

Hãy minh họa các loại này bằng ví dụ thư viện của chúng ta:


| Loại Relationship | Ví Dụ                                    |
|-------------------|------------------------------------------|
| Unary             | Book "là phần tiếp theo của" Book        |
| Binary            | Author "viết" Book                       |
| Ternary           | Reader "mượn" Book "từ" Library Branch  |

Cardinality trong Relationships

Cardinality giống như luật giao thông của vũ trụ cơ sở dữ liệu của chúng ta. Nó xác định số lượng instance của một entity có thể liên kết với instance của một entity khác. Các loại chính là:

  1. One-to-One (1:1): Một instance của Entity A liên kết với chính xác một instance của Entity B, và ngược lại.
  2. One-to-Many (1:N): Một instance của Entity A có thể liên kết với nhiều instance của Entity B, nhưng mỗi instance của B chỉ liên kết với một instance của A.
  3. Many-to-Many (M:N): Nhiều instance của Entity A có thể liên kết với nhiều instance của Entity B.

Hãy xem cách này áp dụng cho thư viện của chúng ta:

Cardinality Ví Dụ
One-to-One Book "có" ISBN (mỗi sách có một ISBN duy nhất)
One-to-Many Author "viết" Books (một tác giả có thể viết nhiều sách)
Many-to-Many Reader "mượn" Books (nhiều người đọc có thể mượn nhiều sách)


Và thế là xong, các bạn! Chúng ta đã đi qua các khái niệm cơ bản của mô hình ER. Nhớ rằng, giống như bất kỳ câu chuyện hay nào, một cơ sở dữ liệu được thiết kế tốt sẽ kể cho chúng ta về các nhân vật (entities), đặc điểm của họ (attributes), và cách họ tương tác (relationships).

Khi chúng ta kết thúc, tôi nhớ lại một câu chuyện hài từ những ngày dạy học đầu tiên của mình. Tôi từng cố gắng giải thích các mối quan hệ bằng cách sử dụng analogi phim hài lãng mạn. Nói chung, việc so sánh các mối quan hệ cơ sở dữ liệu với các tình huống hẹn hò đã dẫn đến sự困惑 và hài hước ở một số học sinh!

Tiếp tục luyện tập các khái niệm này, và sớm bạn sẽ thấy các entity và relationship ở khắp mọi nơi - từ quán cà phê yêu thích của bạn đến các mạng xã hội. Chúc các bạn may mắn trong việc mô hình hóa!

Credits: Image by storyset