DBMS - Biểu diễn Đồ thị ER

Xin chào các bạn设计师 cơ sở dữ liệu tương lai! Hôm nay, chúng ta sẽ cùng lặn vào thế giới kỳ diệu của Đồ thị Entity-Relationship (ER). Là người giáo viên khoa học máy tính hàng xóm thân thiện của bạn, tôi ở đây để hướng dẫn bạn qua khái niệm quan trọng này trong thiết kế cơ sở dữ liệu. Đừng lo lắng nếu bạn chưa bao giờ lập trình trước đây - chúng ta sẽ bắt đầu từ những điều cơ bản và dần dần nâng cao. Vậy, hãy lấy một cốc cà phê (hoặc trà, nếu bạn thích), và chúng ta cùng bắt đầu nhé!

DBMS - ER Diagram Representation

Entiti

Entiti là gì?

Entiti giống như một "vật" hoặc "đối tượng" trong thế giới thực mà chúng ta muốn lưu trữ thông tin trong cơ sở dữ liệu của mình. Hãy nghĩ của nó như một danh từ trong một câu. Ví dụ, trong cơ sở dữ liệu của một trường học, chúng ta có thể có các entiti như "Student," "Teacher," hoặc "Course."

Làm thế nào để biểu diễn Entiti trong Đồ thị ER

Trong một đồ thị ER, chúng ta biểu diễn một entiti dưới dạng một hình chữ nhật với tên của entiti bên trong. Đó là đơn giản như vậy!

+---------+
| Student |
+---------+

Trong ví dụ này, "Student" là entiti của chúng ta. Dễ dàng phải không?

Entiti Mạnh vs. Entiti Yếu

Bây giờ, hãy làm cho mọi thứ thú vị hơn một chút. Chúng ta có hai loại entiti:

  1. Entiti Mạnh: Đây là entiti có thể tồn tại độc lập. Nó giống như một siêu anh hùng không cần người bạn đồng hành.
  2. Entiti Yếu: Entiti này phụ thuộc vào một entiti khác để tồn tại. Nó giống như Robin đối với Batman.

Trong một đồ thị ER, chúng ta biểu diễn một entiti yếu bằng một hình chữ nhật kép:

+===========+
|  Address  |
+===========+

Ở đây, "Address" có thể là một entiti yếu vì nó phụ thuộc vào entiti "Student" hoặc "Teacher" để tồn tại.

Thuộc tính

Thuộc tính là gì?

Thuộc tính là các đặc điểm hoặc thuộc tính của một entiti. Nếu entiti là một danh từ, hãy nghĩ của thuộc tính như các形容词 mô tả nó. Đối với entiti "Student," các thuộc tính có thể bao gồm "Name," "Age," "Student ID," v.v.

Loại Thuộc tính

Hãy phân tích các loại thuộc tính khác nhau:

Loại Thuộc tính Mô tả Biểu diễn
Đơn giản Một giá trị không thể chia nhỏ Hình oval nối với entiti
Hợp thành Có thể chia thành các phần nhỏ hơn Hình oval với các oval nối
Nhiều giá trị Có thể có nhiều giá trị Hình oval đôi
Đerived Giá trị tính toán từ các thuộc tính khác Hình oval gạch chéo
Key Độc đáo xác định một thực thể Hình oval gạch dưới

Biểu diễn Thuộc tính trong Đồ thị ER

Hãy xem chúng trông như thế nào trong một đồ thị ER:

(Name)
|
(Age)
|
+--------+    (StudentID)
|Student |------(Address)
+--------+        |
((Phone Numbers))
|
/(GPA)\

Trong đồ thị này:

  • "Name," "Age," và "Address" là các thuộc tính đơn giản
  • "StudentID" là thuộc tính key (xem xét dấu gạch dưới)
  • "Phone Numbers" là thuộc tính nhiều giá trị (xem xét hình oval đôi)
  • "GPA" là thuộc tính derived (xem xét hình oval gạch chéo)

Mối quan hệ

Mối quan hệ là gì?

Một mối quan hệ là một kết nối giữa hai hoặc nhiều entiti. Nó giống như một động từ trong một câu, mô tả cách các entiti tương tác với nhau. Ví dụ, một Student "đăng ký" một Course.

Biểu diễn Mối quan hệ trong Đồ thị ER

Chúng ta biểu diễn các mối quan hệ dưới dạng hình kim cương trong đồ thị ER, nối với các entiti liên quan bằng các线条.

+---------+        +-----------+
| Student |--------| Enrolls   |-------- | Course |
+---------+        +-----------+         +--------+

Số lượng trong Mối quan hệ

Số lượng cho chúng ta biết bao nhiêu thực thể của một entiti có thể được liên kết với thực thể của entiti khác trong một mối quan hệ. Nó giống như tính đa số trong UML, nếu bạn quen thuộc với điều đó.

Chúng ta có nhiều loại số lượng:

  1. Một-đến-một (1:1)
  2. Một-đến-nhiều (1:N)
  3. Nhiều-đến-một (N:1)
  4. Nhiều-đến-nhiều (M:N)

Hãy xem cách chúng ta biểu diễn chúng:

// Một-đến-một
+---------+        +-----------+        +---------+
| Student |--------| Has       |--------| Address |
+---------+        +-----------+        +---------+
|                                       |
1                                       1

// Một-đến-nhiều
+---------+        +-----------+        +---------+
| Teacher |--------| Teaches   |--------| Course  |
+---------+        +-----------+        +---------+
|                                       |
1                                       N

// Nhiều-đến-nhiều
+---------+        +-----------+        +---------+
| Student |--------| Enrolls   |--------| Course  |
+---------+        +-----------+        +---------+
|                                       |
M                                       N

Ràng buộc Tham gia

Ràng buộc tham gia cho chúng ta biết liệu tất cả các thực thể của một entiti phải tham gia vào mối quan hệ hay không. Chúng ta có hai loại:

  1. Tham gia Toàn bộ: Tất cả các thực thể phải tham gia (biểu diễn bằng线条 kép)
  2. Tham gia Phần: Một số thực thể có thể không tham gia (biểu diễn bằng线条 đơn)

Dưới đây là một ví dụ:

+---------+        +-----------+        +---------+
| Student |========| Enrolls   |--------| Course  |
+---------+        +-----------+        +---------+

Trong đồ thị này,线条 kép cho thấy tất cả học sinh phải đăng ký một khóa học (tham gia toàn bộ), trong khi线条 đơn cho thấy không phải tất cả các khóa học phải có học sinh đăng ký (tham gia phần).

Và thế là xong, các bạn! Chúng ta đã bao gồm các khái niệm cơ bản của biểu diễn Đồ thị ER. Nhớ rằng, thực hành là cách tốt nhất để hoàn thiện. Hãy thử tạo các đồ thị ER cho các hệ thống bạn quen thuộc - có thể là hệ thống thư viện của trường bạn hoặc dịch vụ giao hàng pizza địa phương. Càng thực hành nhiều, bạn sẽ càng cảm thấy tự nhiên.

Khi chúng ta kết thúc, tôi nhớ lại một câu chuyện hài hước từ những ngày dạy học đầu tiên của tôi. Tôi từng có một học sinh vẽ toàn bộ đồ thị ER của mình bằng biểu tượng cảm xúc thay vì các hình dạng tiêu chuẩn. Mặc dù sáng tạo, nhưng nó không phải là ký hiệu tiêu chuẩn - nhưng nó đã tạo ra một trải nghiệm chấm điểm đáng nhớ!

Hãy tiếp tục khám phá, hỏi câu hỏi, và quan trọng nhất, hãy vui vẻ với thiết kế cơ sở dữ liệu. Đến gặp lại lần sau, chúc các bạn vui vẻ với việc vẽ đồ thị!

Credits: Image by storyset