Tomorrow Marketers – ERD được sử dụng rất nhiều trong việc quản lý và thiết kế cơ sở dữ liệu. Trong bài viết này, cùng Tomorrow Marketers tìm hiểu về ERD (Entity Relationship Diagram) là gì, khi nào cần sử dụng, các ký hiệu và khái niệm cần biết cũng như các bước phát triển ERD hiệu quả.
Đọc thêm: Data Analysis là gì? Quy trình và phương pháp phân tích dữ liệu bạn cần biết
1. ERD là gì?
Entity Relationship Diagram (ERD) là một dạng flowchart (lưu đồ) minh họa mối quan hệ của các thực thể/đối tượng (entity) trong một hệ thống. ERD chủ yếu được phát triển trong thiết kế cơ sở dữ liệu quan hệ (relational database) nhằm trực quan hóa các khái niệm và thiết kế mối quan hệ của các đối tượng trong cơ sở dữ liệu.
2. Khi nào cần phát triển ERD?
ERD chủ yếu được sử dụng trong nhiều tình huống, ví dụ:
- Thiết kế database – ERD là công cụ hữu ích trong việc trực quan hóa thiết kế của cơ sở dữ liệu quan hệ (relational databases), mô tả logic và quy tắc kinh doanh trong logical data model và các công nghệ được triển khai trong physical data model. Trong ngành kỹ thuật phần mềm, thiết kế ERD thường là bước đầu tiên trong việc xác định các yêu cầu của một hệ thống thông tin. ERD sau đó cũng được sử dụng để thiết kế mô hình cơ sở dữ liệu hoặc cơ sở dữ liệu cụ thể.
- Xác định và gỡ lỗi của database – Việc thay đổi cấu trúc cơ sở dữ liệu trực tiếp trong hệ cơ sở quản trị cơ sở dữ liệu (DBMS – Database Management System) có thể tạo ra một số rủi ro nhất định tùy thuộc vào quy mô thay đổi. Vì vậy, để tránh tạo ra lỗi trong cơ sở dữ liệu, bạn cần lập kế hoạch quản lý những thay đổi này một cách cẩn thận và chính xác.
Việc tìm và gỡ lỗi các sự cố trong quản trị cơ sở dữ liệu cũng là công việc khó nhằn và là thách thức lớn nếu cơ sở dữ liệu chứa quá nhiều bảng, đòi hỏi phải viết query SQL phức tạp để lấy được thông tin bạn cần. ERD sẽ là bức tranh tổng quát và trực quan dưới dạng lược đồ của cơ sở dữ liệu. Từ đó, bạn có thể phân tích cơ sở dữ liệu hiện có, hiểu rõ mối quan hệ giữa các bảng dữ liệu, viết các câu lệnh truy vấn dữ liệu một cách chính xác và tối ưu, đồng thời phát hiện và giải quyết các lỗi logic và các vấn đề về cơ sở dữ liệu dễ dàng hơn.
- Xây dựng tổng quan hệ thống thông tin và hỗ trợ vận hành trong kinh doanh – Xác định các yêu cầu của hệ thống thông tin bằng cách vẽ ERD để định nghĩa các khái niệm và mô tả các đối tượng có trong hệ thống, từ đó tránh việc lưu trữ những thông tin dư thừa hoặc thiếu trường thông tin quan trọng. Mô hình ERD cũng có thể được phát triển thành mô hình cơ sở dữ liệu vật lý hỗ trợ cho quá trình xây dựng cơ sở dữ liệu quan hệ (relational database) hoặc hỗ trợ phát triển các luồng quy trình (process maps) và luồng dữ liệu (data flow modes) trong hệ thống thông tin kinh doanh.
Đọc thêm: Data modeling là gì? Những lợi ích của data modeling đối với doanh nghiệp?
3. Một số khái niệm và thành phần cơ bản của ERD
Một ERD bao gồm các thực thể/đối tượng (entity), các thuộc tính (attribute), và mối quan hệ giữa chúng (relationship).
Thực thể/đối tượng (Entity)
Một thực thể của ERD là một đối tượng hoặc khái niệm có thể xác định trong một hệ thống, ví dụ như: một người/một vai trò (học sinh), một vật thể (hóa đơn), một khái niệm (profile) hoặc một sự kiện (giao dịch).
Chú ý, trong ERD, “thực thể” thường được hiểu tương tự như “bảng dữ liệu”. Khái niệm “thực thể” thường được sử dụng trong Conceptual data model (Mô hình dữ liệu khái niệm) và Logical data model (Mô hình dữ liệu logic), sau khi được phát triển các thuộc tính sẽ được coi là “bảng dữ liệu” và khái niệm này được sử dụng trong Physical data model (Mô hình dữ liệu vật lý). Bạn có thể tìm hiểu sâu hơn về các cấp độ ERD trong phần 4 của bài viết.
Trong mô hình ERD, một thực thể được trực quan với ký hiệu là một hình chữ nhật, với tên ở trên cùng và các thuộc tính sẽ được liệt kê trong hình chữ nhật đó. Ví dụ:

Thuộc tính/đặc tính của thực thể (Entity Attributes)
Thuộc tính của thực thể là một thành phần hoặc đặc tính mô tả chi tiết thực thể đó. Ví dụ: Thực thể Khách hàng sẽ bao gồm các thuộc tính như: Họ và tên, ngày sinh (D.O.B.), địa chỉ liên hệ, email, số điện thoại,…
Một thuộc tính sẽ có tên mô tả và dạng dữ liệu, ví dụ varchar – chuỗi ký tự có độ dài thay đổi (có thể chứa chữ cái, số và ký tự đặc biệt), int – dữ liệu dạng số nguyên.
Ví dụ về các thuộc tính của thực thể:

Primary Key (khóa chính)
Một primary key là một thuộc tính mang ý nghĩa định danh, nhằm xác định duy nhất một bản ghi (record) trong bảng cơ sở dữ liệu. Nói cách khác, primary key sẽ không được có cùng một giá trị ở hai (hoặc nhiều) record.
Ví dụ, ERD dưới đây hiển thị đối tượng Sản phẩm có primary key ID và một số record trong bảng dữ liệu. Mỗi một sản phẩm sẽ có một ID khác nhau để phân biệt. Nhìn vào bảng, có thể thấy record thứ ba được tính là không hợp lệ vì giá trị của ID ‘PDT-0002’ đã xuất hiện ở record khác.

Foreign Key (khóa ngoại)
Foreign key là thuộc tính đối chiếu giữa hai bảng dữ liệu với nhau. Nói cách khác, foreign key là điểm chung để liên kết hai bảng dữ liệu.
Foreign key không nhất thiết phải có giá trị độc nhất. Nhiều record có thể có cùng một giá trị.
Foreign Key sẽ là Primary Key ở một bảng dữ liệu, nhưng lại là Foreign Key ở một bảng dữ liệu khác mà bảng dữ liệu đó liên kết đến.
Ví dụ: Mỗi nhà sản xuất sẽ được gán cho một ID riêng biệt. Mỗi nhà sản xuất có thể cho ra nhiều sản phẩm khác nhau, nhưng một sản phẩm không thể được sản xuất bởi nhiều nhà sản xuất khác nhau. Trong khi đó, các sản phẩm khác nhau cũng có thể trùng nhà sản xuất và có cùng giá trị manufacturerID. Như vậy, bảng Sản phẩm sẽ chứa foreign key là manufacturerID và trùng khớp với primary key của bảng Nhà sản xuất, trong khi bảng Nhà sản xuất sẽ không có foreign key nào liên kết đến bảng Sản phẩm.

Mối quan hệ (Relationship)
Một mối quan hệ giữa hai thực thể miêu tả cách hai thực thể đó được liên kết với nhau. Ví dụ, một nhân viên mới gia nhập công ty. Như vậy, thực thể Nhân viên có mối quan hệ đến thực thể Công ty.
Đọc thêm: Cách xây dựng data relationship trong Power BI
Ví dụ, MỘT khối (Công nghệ thông tin) có thể bao gồm NHIỀU phòng (An toàn thông tin, Dữ liệu, Vận hành, Phát triển,…). Khi được trình bày trong ERD, khối và phòng được kết nối với nhau bằng mối quan hệ một-nhiều (1-n).
Trong ERD, mối quan hệ giữa các bảng được trình bày dưới dạng một đường kẻ có dấu hiệu phân biệt ở đầu các mối nối.

Ba dạng mối quan hệ cơ bản phổ biến là một-một (1-1), một-nhiều (1-n hoặc n-1), và nhiều-nhiều (n-n).
One-to-One (1-1)
Mối quan hệ một-một đề cập liên kết giữa hai thực thể X và Y, trong đó một thuộc tính của X chỉ được liên kết với nhiều nhất một thuộc tính của Y. Mối quan hệ này chỉ cho phép MỘT record ở bảng này kết nối với MỘT record ở bảng kia.
Mối quan hệ 1-1 thường được sử dụng để tạo thêm một thực thể phụ chứa các thông tin chi tiết của một thực thể chính.
Ví dụ: Một nhân viên được tạo duy nhất một tài khoản nhân viên trong hệ thống thông tin của công ty.

One-to-Many (1-n hoặc n-1)
Mối quan hệ một-nhiều đề cập đến mối quan hệ giữa hai thực thể X và Y, trong đó một thuộc tính của X có thể được liên kết với nhiều thuộc tính của Y, nhưng một thuộc tính của Y chỉ được liên kết với một thuộc tính của X. Mối quan hệ này cho phép MỘT record trong một bảng kết nối với NHIỀU record trong một bảng khác.
Ví dụ: Một phòng ban bao gồm nhiều nhân viên và một nhân viên chỉ được thuộc về phòng ban.

Many-to-Many (n-n)
Mối quan hệ nhiều-nhiều đề cập đến liên kết giữa hai thực thể X và Y, trong đó X có thể được liên kết với nhiều thuộc tính của Y và ngược lại.
Mối quan hệ này cho phép NHIỀU record ở bảng này kết nối với NHIỀU record ở bảng kia.
Ví dụ: Một nhân viên có thể tham gia nhiều dự án của công ty và một dự án của công ty có sự tham gia của nhiều nhân viên.

4. Conceptual, Logical và Physical data models
Có ba cấp độ ERD:
- Conceptual ERD / Conceptual data model (Mô hình dữ liệu khái niệm)
- Logical ERD / Logical data model (Mô hình dữ liệu logic)
- Physical ERD / Physical data model (Mô hình dữ liệu vật lý)
Ba cấp độ này đều chứa các thực thể có thuộc tính và mối quan hệ, điểm khác biệt giữa ba mức độ chủ yếu là mục đích và đối tượng mà chúng hướng đến.
Các Business Analyst (BA – chuyên viên phân tích nghiệp vụ) cần có hiểu biết nhất định về conceptual data model và logical data model để lập mô hình mô tả mối quan hệ của các đối tượng nghiệp vụ trong hệ thống. Trong khi đó, các database designer hoặc database engineer thì sẽ thường sử dụng hai cấp độ mô hình ERD này để phát triển physical data model nhằm sử dụng cấu trúc cơ sở dữ liệu để tạo ra cơ sở dữ liệu.
Bảng dưới đây cho thấy sự khác biệt giữa ba cấp độ mô hình dữ liệu.
Thành phần của ERD | Conceptual | Logical | Physical |
Thực thể/Đối tượng | x | x | x |
Mối quan hệ | x | x | x |
Cột dữ liệu | x | x | |
Dạng dữ liệu của cột | Không bắt buộc | x | |
Primary Key | x | ||
Foreign Key | x |
Conceptual data model (Mô hình dữ liệu khái niệm)
Mô hình dữ liệu khái niệm là mô hình tổng quan và khái quát nhất, bao gồm các thực thể chính trong hệ thống dữ liệu và mối quan hệ giữa các thực thể đó, từ đó làm cơ sở cho xây dựng mô hình logic của dữ liệu và việc tích hợp các mô hình dữ liệu. Nói tóm lại, mô hình này tập trung thể hiện phạm vi tổng thể của mô hình và mô tả kiến trúc của hệ thống.
Nếu hệ thống dữ liệu đơn giản, bạn cũng có thể bỏ qua cấp độ mô hình dữ liệu khái niệm và đi thẳng tới mô hình dữ liệu logic.
Lưu ý rằng, mô hình này xác định các thực thể và chưa đi chi tiết vào từng bảng dữ liệu. Ngoài ra, các mối quan hệ n-n cũng không được sử dụng trong mô hình dữ liệu khái niệm.

Logical data model (Mô hình dữ liệu logic)
Mô hình dữ liệu logic được phát triển chi tiết hơn dựa trên mô hình dữ liệu khái niệm, xác định rõ ràng các thuộc tính trong mỗi thực thể, trong đó bao gồm các thực thể vận hành và thực thể giao dịch (oper

Physical data model (Mô hình dữ liệu vật lý)
Mô hình dữ liệu vật lý là bản thiết kế ‘cấu trúc’ của cơ sở dữ liệu quan hệ (relational database). Mô hình dữ liệu vật lý xây dựng trên mô hình dữ liệu logic bằng cách bổ sung chi tiết các trường thông tin chi tiết với các thuộc tính đã được xác định, ví dụ như loại, độ dài, có null không,…
Một mô hình dữ liệu logic có thể phát triển một hoặc nhiều mô hình dữ liệu vật lý.
Bởi đây là mô hình được áp dụng để phát triển cấu trúc của một DBMS (Database Management System – Hệ quản trị cơ sở dữ liệu), vì vậy bạn cần xem lại kỹ lưỡng các quy ước, mối quan hệ giữa các thực thể, các quy ước đặt tên (ví dụ: không đặt tên riêng cho các thực thể và các cột dữ liệu), cũng như đảm bảo rằng các cột dữ liệu đều được DBMS hỗ trợ.

5. 07 bước thiết kế ERD hiệu quả
Bước 1: Hiểu rõ mục đích của việc thiết kế ERD. Bước đầu tiên vô cùng quan trọng để bạn có thể xác định chính xác cấp độ ERD cần xây dựng – Conceptual, Logical hay Physical Data Models.
Bước 2: Hiểu rõ về phạm vi để thiết kế mô hình. Việc biết phạm vi của mô hình giúp bạn tránh được việc đưa các thực thể và mối quan hệ không liên quan, không quan trọng và dư thừa vào mô hình.
Bước 3: Xác định các thực thể chính và trình bày theo các quy tắc của ERD.
Bước 4: Xác định các thành phần và thuộc tính chi tiết của thực thể và phát triển thực thể thành bảng dữ liệu. Xác định primary key và foreign key của các bảng dữ liệu.
Bước 5: Đánh giá lại ERD và đảm bảo đã đầy đủ các bảng dữ liệu và cột thành phần để lưu trữ dữ liệu của hệ thống.
Bước 6: Xác định mối quan hệ giữa các bảng dữ liệu và liên kết chúng với mối quan hệ thích hợp (ví dụ: hai đối tượng Khách hàng và Đơn hàng sẽ có mối quan hệ một-một). Trong các hệ thống ký hiệu khác nhau, mối quan hệ có thể được đánh dấu bằng hình thoi, hình chữ nhật hoặc dấu trên đầu mối nối.
Bước 7: Sử dụng các kỹ thuật chuẩn hóa cơ sở dữ liệu để tái cấu trúc các bảng dữ liệu nhằm tối ưu, giảm bớt các dữ liệu dư thừa và cải thiện tính toàn vẹn của dữ liệu.
Ví dụ: các trường thông tin về nhà sản xuất có thể được lưu trữ trong thực thể Sản phẩm. Trong quá trình tối ưu và chuẩn hóa này, nếu bạn quan sát thấy có nhiều giá trị lặp lại nhiều lần với nhiều record, bạn có thể tách giá trị đó thành một bảng dữ liệu riêng biệt, ví dụ bảng dữ liệu Nhà sản xuất với foreign key sẽ kết nối Sản phẩm với Nhà sản xuất.
Đọc thêm: ELT là gì? Tại sao xu hướng này dần được ưa chuộng?
6. Ví dụ về ERD
ERD của một doanh nghiệp cung cấp dịch vụ cho thuê phim tại nhà

ERD của một hệ thống cho vay

ERD của một cửa hàng trực tuyến

Tạm kết
Thiết kế ERD là là bước đặt nền móng của việc xây dựng data model, cơ sở dữ liệu và việc khai thác dữ liệu của doanh nghiệp. Khi đã xác định được các thực thể, thuộc tính của các thực thể và mối quan hệ của chúng trong ERD, bạn có thể nắm được tổng quan cấu trúc của các bảng dữ liệu, hiểu rõ những liên kết của các dữ liệu. Nhờ đó, dữ liệu sẽ không nằm rải rác và phân mảnh mà đã được tổng hợp về một bức tranh kinh doanh.
Việc hiểu rõ ‘thông tin của dữ liệu’ sẽ giúp bạn có tư duy nhìn các con số trên dashboard, báo cáo một cách tường minh, từ đó đưa ra các phân tích có ý nghĩa hơn. Những nội dung này sẽ được giảng dạy trong khóa học Data Analysis của Tomorrow Marketers, nếu bạn mong muốn trang bị tư duy và kiến thức phân tích dữ liệu trong Marketing/Sales/Product, đừng bỏ lỡ khóa học nhé!

Bài viết được biên dịch từ visual paradigm, xin vui lòng không sao chép dưới mọi hình thức!