Huy Bui
1,652
02-10-2022
ERD (Entity – Relationship Diagram, Sơ đồ mối quan hệ thực thể) là một dạng trực quan của cơ sở dữ liệu quan hệ. Mọi người sử dụng ERD để mô hình hóa và thiết kế cơ sở dữ liệu quan hệ. Trong bài viết này, hãy cùng Cole tìm hiểu về mô hình quan hệ và thực thể.
Relational database (Cơ sở dữ liệu quan hệ) là một loại cơ sở dữ liệu lưu trữ và cung cấp quyền truy cập vào các điểm dữ liệu bằng cách tổ chức dữ liệu thành các hàng và cột, gọi chung tạo thành một bảng.
Sơ đồ mối quan hệ thực thể (ERD) là một loại lưu đồ minh họa cách các “thực thể” như người, đối tượng hoặc khái niệm liên quan với nhau trong một hệ thống. Sơ đồ ERD thường được sử dụng để thiết kế hoặc gỡ lỗi trong relational database (cơ sở dữ liệu quan hệ) trong các lĩnh vực kỹ thuật phần mềm, hệ thống thông tin kinh doanh, giáo dục và nghiên cứu.
ERD sử dụng một tập hợp các ký hiệu như hình chữ nhật, hình thoi, hình bầu dục và các đường kết nối để mô tả tính liên kết của các thực thể, mối quan hệ và các thuộc tính của chúng.
Ví dụ ERD
Sơ đồ mối quan hệ thực thể có thể coi là bản vẽ thiết kế của cơ sở dữ liệu. ERD cung cấp trực quan cho thiết kế cơ sở dữ liệu, và do đó, nó đóng những vai trò sau:
Sau khi cơ sở dữ liệu quan hệ được triển khai, ERD vẫn có thể đóng vai trò là điểm tham chiếu, nếu sau này cần thiết lập lại quy trình gỡ lỗi hoặc quy trình nghiệp vụ.
>> Tìm hiểu về quy trình triển khai kho dữ liệu
Mô hình quan hệ và thực thể bao gồm các entity (thực thể), relationship (mối quan hệ) và thuộc tính.
Entity hay thực thể là bất cứ các đối tượng, sự vật hay sự việc. Một thực thể có thể là địa điểm, người, đối tượng, sự kiện hoặc một khái niệm, lưu trữ dữ liệu trong cơ sở dữ liệu. Đặc điểm của các thực thể là phải có một thuộc tính và một khóa duy nhất. Mọi thực thể đều được tạo thành từ một số ‘thuộc tính’ đại diện cho thực thể đó.
Ví dụ về các thực thể:
Các thực thể được phân loại là Thực thể mạnh (Strong entity) và thực thể yếu (Weak entity). Một thực thể mạnh chỉ có thể được xác định bằng các thuộc tính của chính nó, trong khi một thực thể yếu thì không thể. Thực thể yếu là một loại thực thể không có thuộc tính khóa của nó. Nó có thể được xác định duy nhất bằng cách xem xét khóa chính của một thực thể khác. Vì vậy, các tập hợp thực thể yếu cần phải tham gia cùng các thực thể khác.
Thực thể thường được hiển thị dưới dạng hình chữ nhật.
Entity set (Tập thực thể) là một nhóm các thực thể giống nhau. Nó có thể chứa các thực thể với những thuộc tính tương tự. Tất cả các thuộc tính đều có giá trị riêng biệt. Ví dụ, một thực thể sinh viên có thể có tên, tuổi, lớp, dưới dạng các thuộc tính.
Attributes (Thuộc tính) là những đặc điểm đại diện cho mội kiểu thực thể hoặc kiểu quan hệ nào đấy.
Ví dụ: một bài giảng có thể có các thuộc tính: thời gian, ngày tháng, thời lượng, địa điểm, v.v.
Một thuộc tính trong các ví dụ về Sơ đồ ER, được biểu thị bằng một hình Elip
Các loại thuộc tính:
Khóa chính là một loại thuộc tính riêng biệt xác định duy nhất một bản ghi trong bảng cơ sở dữ liệu. Nói cách khác, không được có hai (hoặc nhiều) bản ghi chia sẻ cùng một giá trị cho thuộc tính khóa chính. Ví dụ ERD bên dưới hiển thị một thực thể ‘Sản phẩm’ có thuộc tính khóa chính ‘ID’ và bản xem trước các bản ghi bảng trong cơ sở dữ liệu. Bản ghi thứ ba không hợp lệ vì giá trị của ID ‘PDT-0002’ đã được sử dụng bởi một người khác
Khóa ngoại là một tham chiếu đến chính khóa trong bảng. Nó được sử dụng để xác định các mối quan hệ giữa các thực thể. Khóa ngoại không cần thiết phải là duy nhất. Nhiều bản ghi có thể chia sẻ các giá trị giống nhau. Ví dụ về ERD dưới đây cho thấy một thực tế có thể có một số cột, trong đó khóa ngoại lai được sử dụng để tham chiếu đến một thực thể khác
Relationship (mối quan hệ) là sự liên kết giữa hai hoặc nhiều thực thể.
Ví dụ, sinh viên được nêu tên có thể đăng ký một khóa học. Hai thực thể sẽ là sinh viên và khóa học, và mối quan hệ được mô tả là hành động ghi danh, kết nối hai thực thể theo cách đó.
Các mối quan hệ thường được thể hiện dưới dạng kim cương hoặc nhãn trực tiếp trên các đường kết nối.
ERD thường được mô tả trong một hoặc nhiều mô hình sau:
Cung cấp nền tảng cho các mô hình logic của dữ liệu hoặc chỉ ra các mối quan hệ tương đồng giữa các mô hình ERD. Từ đó làm cơ sở cho việc tích hợp mô hình dữ liệu.
Tuy nhiên nó lại thiếu chi tiết cụ thể nhưng cung cấp cái nhìn tổng quan về phạm vi của dự án và cách các tập dữ liệu liên quan với nhau.
Loại này chi tiết hơn mô hình dữ liệu khái niệm. Nó minh họa các thuộc tính và mối quan hệ cụ thể giữa các điểm dữ liệu. Trong khi mô hình dữ liệu khái niệm không cần được thiết kế trước mô hình dữ liệu lôgic, thì mô hình dữ liệu vật lý dựa trên mô hình dữ liệu lôgic.
Cung cấp bản thiết kế cho một biểu hiện vật lý – chẳng hạn như cơ sở dữ liệu quan hệ – của mô hình dữ liệu lôgic. Một hoặc nhiều mô hình dữ liệu vật lý có thể được phát triển dựa trên mô hình dữ liệu logic.
Sự liên kết trong lược đồ E-R có các kiểu sau:
Một thực thể từ tập thực thể X có thể được liên kết với nhiều nhất một thực thể của tập thực thể Y và ngược lại.
Ví dụ: Một sinh viên có thể đăng ký nhiều khóa học. Tuy nhiên, tất cả các khóa học đó đều có một dòng duy nhất quay lại một sinh viên đó.
Một thực thể từ tập thực thể X có thể được liên kết với nhiều thực thể của tập thực thể Y, nhưng một thực thể từ tập thực thể Y có thể được liên kết với ít nhất một thực thể.
Ví dụ, một lớp học bao gồm nhiều sinh viên.
Nhiều thực thể từ tập thực thể X có thể được liên kết với nhiều nhất một thực thể của tập thực thể Y. Tuy nhiên, một thực thể từ tập thực thể Y có thể được liên kết hoặc không với nhiều thực thể từ tập thực thể X.
Ví dụ, nhiều học sinh thuộc cùng một lớp.
Một thực thể từ X có thể được liên kết với nhiều thực thể từ Y và ngược lại.
Ví dụ: Sinh viên là một nhóm được liên kết với nhiều giảng viên và các thành viên trong giảng viên có thể được liên kết với nhiều sinh viên.
Để giúp các bạn hình dung cách xây dựng mô hình thực thể quan hệ ERD, Cole đã đưa ra 1 ví dụ và trình bày cách làm theo từng bước ở dưới đây.
Ví dụ về Sơ đồ Mối quan hệ Thực thể:
Trong một trường đại học, một Sinh viên đăng ký các Khóa học. Một sinh viên phải được chỉ định cho ít nhất một hoặc nhiều Khóa học. Mỗi khóa học được giảng dạy bởi một Giảng viên duy nhất. Để duy trì chất lượng giảng dạy, một Giảng viên chỉ có thể cung cấp một khóa học
Chúng ta có ba thực thể
Chúng ta có hai mối quan hệ sau
Theo như đề bài, chúng ta xác định mối ràng buộc giữa các thực thể là như sau:
Bạn cần nghiên cứu các tệp, biểu mẫu, báo cáo, dữ liệu hiện đang được tổ chức lưu trữ, dử dụng để xác định các thuộc tính. Bạn cũng có thể thực hiện các cuộc phỏng vấn với các bên liên quan khác nhau để xác định các thực thể. Ban đầu, điều quan trọng là xác định các thuộc tính mà không tham chiếu chúng với một thực thể cụ thể.
Khi bạn đã có danh sách các Thuộc tính, bạn cần tham chiếu chúng tới các thực thể đã xác định. Đảm bảo một thuộc tính được ghép nối với chính xác một thực thể. Nếu bạn cho rằng một thuộc tính phải thuộc về nhiều thực thể, hãy sử dụng một công cụ sửa đổi để làm cho nó trở thành duy nhất.
Sau khi tham chiếu xong, hãy xác định các Khóa chính. Nếu không có sẵn một khóa duy nhất, hãy tạo một khóa.
Thực thể | Khóa chính | Thuộc tính |
Student | Student_ID | StudentName |
Professor | Employee_ID | ProfessorName |
Course | Course_ID | CourseName |
Đối với Thực thể khóa học, các thuộc tính có thể là Thời lượng, Tín chỉ, Bài tập, v.v. Để dễ hiểu, chúng ta chỉ xem xét một thuộc tính.
Từ các bước trên chúng ta có thể vẽ lên 1 mô hình như sau về Sơ đồ Mối quan hệ Thực thể
Bài viết này đã đưa ra nhiều thông tin về mô hình quan hệ thực thể (ERD) của relational database (cơ sở dữ liệu quan hệ). Cole hi vọng là mọi người có thể hiểu được mô hình quan hệ thực thể (Entity-relationship Diagram) và áp dụng những ca kiến thức được chia sẻ trong bài viết này để tự tay thiết kế được một ERD.
>> Xem thêm khóa học data analysis
Cảm nhận học viên
Câu chuyện doanh nghiệp