Blog

ERD (Entity – Relationship Diagram) là gì – Cách thiết kế mô hình thực thể

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. 

Relationship là gì? – Entity là gì?

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.

Vai trò của Entity – Relationship Diagram trong quá trình thiết kế cơ sở dữ liệu

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:

  • Giúp xác định các yêu cầu hệ thống thông tin trong toàn tổ chức và giúp người dùng lập kế hoạch cách tổ chức dữ liệu. Nó hỗ trợ nhà phát triển cơ sở dữ liệu chuẩn bị trước khi bắt đầu xây dựng các bảng.
  • Sơ đồ ERD có thể hoạt động như một tài liệu để làm cho những người khác hiểu được cốt lõi của cơ sở dữ liệu.
  • Sơ đồ ERD phản ánh cấu trúc logic của cơ sở dữ liệu để người dùng nắm được.

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ụ.

Các thành phần cơ bản của mô hình E-R

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.

Thực thể và tập thực thể 

Entity (Thực thể)

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ể:

  • Người: Nhân viên, Sinh viên, Bệnh nhân
  • Địa điểm: Cửa hàng, Tòa nhà
  • Đối tượng: Máy móc, sản phẩm và ô tô
  • Sự kiện: Bán, Đăng ký, Gia hạn

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ể):

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.

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:

  • Thuộc tính đơn giản (Simple attribute): Các thuộc tính đơn giản không thể được phân chia thêm nữa. Ví dụ: số liên lạc của sinh viên. Nó còn được gọi là giá trị nguyên tử.
  • Composite (Thuộc tính tổng hợp): Thuộc tính tổng hợp có thể chia nhỏ được. Ví dụ: tên đầy đủ của học sinh có thể được chia thành họ, tên và họ.
  • Thuộc tính có nguồn gốc (Derived attribute): Loại thuộc tính này không bao gồm trong cơ sở dữ liệu vật lý. Tuy nhiên, giá trị của chúng có nguồn gốc từ các thuộc tính khác có trong cơ sở dữ liệu. Ví dụ, tuổi không nên được lưu trữ trực tiếp. Thay vào đó, nó phải được lấy từ DOB của nhân viên đó.
  • Thuộc tính nhiều giá trị (Multivalued attribute): Các thuộc tính nhiều giá trị có thể có nhiều giá trị. Ví dụ, một sinh viên có thể có nhiều hơn một số điện thoại di động, địa chỉ email, v.v.

Thuộc tính khóa

Thuộc tính khóa chính (Primary key)

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 (Foreign key)

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

Mối quan hệ giữa các tập thực thể

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.

Lược đồ ERD

ERD thường được mô tả trong một hoặc nhiều mô hình sau:

  • Conceptual data model (Mô hình dữ liệu khái niệm)

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.

  • Logical data model (Mô hình dữ liệu logic)

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.

  • Physical data model (Mô hình dữ liệu vật lý)

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.

Các kiểu liên kết trong lược đồ E-R:

Sự liên kết trong lược đồ E-R có các kiểu sau:

  • Quan hệ 1 – 1

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 đó.

  • Quan hệ 1 – 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.

  • Quan hệ n – 1

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.

  • Quan hệ n – n

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.

Xây dựng mô hình ERD

Để 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

Bước 1: Xác định thực thể

Chúng ta có ba thực thể

  • Student (Sinh viên)
  • Course (Khóa học)
  • Professor (Giảng viên)

Bước 2: Xác định mối quan hệ

Chúng ta có hai mối quan hệ sau

  • Sinh viên học 1 khóa học
  • Giảng viên cung cấp một khóa học

Bước 3: Nhận dạng mối liên kết

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:

  • Một sinh viên có thể được chỉ định nhiều khóa học
  • Một giáo sư chỉ có thể cung cấp một khóa học

Bước 4: Xác định các thuộc tính

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ínhThuộc tính
StudentStudent_IDStudentName
ProfessorEmployee_IDProfessorName
CourseCourse_IDCourseName

Đố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.

Bước 5: Tạo sơ đồ ERD

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ể

Kết luận

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ệ). INDA 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. 

>>> Đọc thêm:

KHOÁ HỌC TRUY VẤN VÀ THAO TÁC DỮ LIỆU SQL TỪ CƠ BẢN ĐẾN NÂNG CAO

KHÓA HỌC DATA WAREHOUSE : TỔNG HỢP, CHUẨN HÓA VÀ XÂY DỰNG KHO DỮ LIỆU TRONG DOANH NGHIỆP

KHÓA HỌC DATA MODEL – THIẾT KẾ MÔ HÌNH DỮ LIỆU TRONG DOANH NGHIỆP

LỘ TRÌNH TRỞ THÀNH DATA ENGINEER CHO NGƯỜI MỚI BẮT ĐẦU

DATA ENGINEER LÀ GÌ? CÔNG VIỆC CHÍNH CỦA DATA ENGINEER? CÁC KỸ NĂNG CẦN THIẾT

Nguồn: Internet

Leave a Reply

Your email address will not be published. Required fields are marked *