ERD là viết tắt của Entity-Relationship Diagram (sơ đồ thực thể và quan hệ). Đây là cách trực quan để thể hiện cấu trúc database của bạn, cho thấy các thực thể (bảng) liên kết với nhau như thế nào.
Hãy tưởng tượng ERD giống như bản đồ tàu điện ngầm cho database. Các ga là bảng, còn các đường nối giữa chúng là quan hệ. Bản đồ này giúp bạn hiểu cách di chuyển giữa các ga (và cách các bảng tương tác với nhau).
ERD gồm có:
- Thực thể: là các đối tượng hoặc bảng, ví dụ như "Sinh viên", "Khóa học", "Giảng viên".
- Thuộc tính: là các cột trong bảng, như
ID,Tên,Họ. - Quan hệ: là các đường nối giữa bảng, thể hiện mối liên kết, ví dụ một sinh viên đăng ký nhiều khóa học.
Với ERD, bạn không chỉ lên kế hoạch cho database mà còn có thể show cho đồng nghiệp hoặc sếp cách nó hoạt động. Đây là công cụ cực mạnh cho bất kỳ dev nào!
Thành phần chính của ERD
- Thực thể
Thực thể giống như một database thu nhỏ. Mỗi thực thể tương ứng với một đối tượng hoặc khái niệm thực tế mà bạn muốn quản lý trong hệ thống. Ví dụ:
- Bảng "Sinh viên".
- Bảng "Khóa học".
- Bảng "Mượn sách" (trong hệ thống thư viện).
Ví dụ:
+---------------+
| Sinh viên |
+---------------+
| ID |
| Tên |
| Họ |
| Ngày sinh |
+---------------+
- Thuộc tính Thuộc tính là các đặc điểm hoặc tính chất riêng của thực thể. Chúng được thể hiện dưới dạng cột trong bảng database. Ví dụ:
- Với bảng "Sinh viên" có thể là
ID,Tên,Họ. - Với bảng "Khóa học" là
ID Khóa học,Tên khóa học.
Trong ERD, chúng thường được ghi bên trong hình chữ nhật đại diện cho thực thể.
Quan hệ giữa các thực thể
Quan hệ cho thấy hai thực thể tương tác với nhau như thế nào. Nhắc lại các loại quan hệ cơ bản:
- Một-một (1:1): ví dụ, mỗi sinh viên có một thẻ sinh viên duy nhất.
- Một-nhiều (1:N): ví dụ, một giảng viên có thể dạy nhiều khóa học.
- Nhiều-nhiều (M:N): ví dụ, nhiều sinh viên đăng ký nhiều khóa học.
Ví dụ quan hệ "Một-nhiều":
Sinh viên (1) <----- đăng ký -----> (N) Khóa học
Để thực hiện quan hệ trong database, thường dùng khóa ngoại.
Làm sao để vẽ ERD?
Cùng xem từng bước tạo ERD, và ví dụ cho hệ thống thư viện nhé.
Bước 1: Xác định thực thể
Nhiệm vụ của bạn là chia hệ thống thành các đối tượng chính. Ví dụ, với hệ thống thư viện là:
- "Sách".
- "Độc giả".
- "Mượn sách".
Ví dụ:
+-------------+ +--------------+ +------------+
| Sách | | Độc giả | | Mượn sách |
+-------------+ +--------------+ +------------+
| ID | | ID | | ID |
| Tên sách | | Tên | | Độc giả |
| Tác giả | | Họ | | Sách |
| ISBN | | Ngày sinh | | Ngày mượn |
+-------------+ +--------------+ +------------+
Bước 2: Thêm thuộc tính
Mỗi thực thể cần có các thuộc tính chính. Ví dụ:
- Bảng "Sách" nên có
ID(khóa chính),Tên sách,Tác giả,ISBN. - Bảng "Độc giả" —
ID,Tên,Họ.
Bước 3: Thiết lập quan hệ
Bây giờ thêm quan hệ giữa các thực thể:
- "Mượn sách" liên kết với "Sách" (một cuốn sách có thể được mượn nhiều lần).
- "Mượn sách" liên kết với "Độc giả" (một độc giả có thể mượn nhiều sách).
Bước 4: Vẽ sơ đồ
Dùng bất kỳ công cụ nào để vẽ sơ đồ, ví dụ:
- draw.io
- dbdiagram.io
- Lucidchart
- Microsoft Visio
Sơ đồ sẽ trông như này:
[Độc giả] ----(1:N)---- [Mượn sách] ----(N:1)---- [Sách]
Với mỗi quan hệ, thêm kiểu dữ liệu và chú thích, ví dụ:
- ID Độc giả trong "Mượn sách" liên kết với khóa chính của bảng "Độc giả".
Ví dụ: ERD cho shop online
Với shop online, bạn cần cấu trúc logic gồm:
- Người dùng (khách hàng đã đăng ký).
- Sản phẩm (hàng hóa).
- Đơn hàng.
Bước 1: Thực thể
- Người dùng:
ID Người dùng,Tên,Email. - Sản phẩm:
ID Sản phẩm,Tên,Giá. - Đơn hàng:
ID Đơn hàng,ID Người dùng,Ngày đặt hàng.
Bước 2: Thiết lập quan hệ
- Một người dùng có thể tạo nhiều đơn hàng (1:N).
- Một đơn hàng có thể chứa nhiều sản phẩm (M:N).
Sơ đồ ERD đầy đủ:
[Người dùng] ----(1:N)---- [Đơn hàng] ----(N:M)---- [Sản phẩm]
Để thực hiện quan hệ nhiều-nhiều, thêm bảng trung gian:
- Chi tiết đơn hàng:
ID Đơn hàng,ID Sản phẩm,Số lượng.
Mẹo khi tạo ERD
Trước tiên hãy nghĩ xem bạn muốn thấy gì trong database của mình. Mọi thứ bắt đầu từ việc hiểu rõ lĩnh vực của bạn.
Chỉ thêm những thuộc tính và thực thể thực sự quan trọng. Chi tiết thừa dễ gây rối.
Đảm bảo mọi quan hệ đều hợp lý. Nếu thấy quan hệ nào lạ, hãy xem lại nó.
Dùng các công cụ giúp vẽ sơ đồ cho dễ nhìn. Đỡ tốn thời gian và công sức.
GO TO FULL VERSION