Mô hình dữ liệu mối quan hệ thực thể (Entity-Relationship Data Model)

Mô hình dữ liệu mối quan hệ thực thể (Entity-Relationship Data Model)

Ví dụ: Thiết kế mô hình quan hệ thực thể (ER) cho cơ sở dữ liệu của trường đại học

Cơ sở dữ liệu của trường đại học

Lưu trữ thông tin chi tiết về sinh viên đại học (STUDENT), các khóa học (PROGRAM), học kỳ (COURSE) mà sinh viên đã tham gia một khóa học cụ thể (và điểm của sinh viên nếu sinh viên đã hoàn thành nó) và bằng cấp cho mỗi sinh viên đã đăng ký học. Cơ sở dữ liệu mang tính chất minh họa các mối quan hệ để dễ hình dung.

Entities:

  • STUDENT.
  • PROGRAM.
  • COURSE.

Attributes:

  • Sinh viên có một hoặc nhiều tên riêng, họ, mã định danh sinh viên, ngày tháng năm sinh & năm họ ghi danh lần đầu. 
  • Một chương trình có tên, mã định danh chương trình, tổng điểm tín chỉ cần thiết để tốt nghiệp và năm bắt đầu.
  • Một khóa học có tên, mã định danh khóa học, giá trị điểm tín chỉ, một năm (ví dụ: năm 1) và một học kỳ (ví dụ: học kỳ 1).

Relationships:

  • Trường đại học cung cấp một hoặc nhiều chương trình.
  • Một chương trình được tạo thành từ một hoặc nhiều khóa học.
  • Một sinh viên phải ghi danh vào một chương trình.
  • Một sinh viên tham gia các khóa học nằm trong chương trình của mình.
  • Khi một sinh viên tham gia một khóa học, năm học & học kỳ sinh viên đó đã học sẽ được ghi lại. Khi sinh viên kết thúc khóa học, kết quả (điểm số) sẽ được ghi lại.

ER diagram

Giải thích:

  • STUDENT là một thực thể mạnh, với mã số định danh: Student_Id, được tạo ra để làm khóa chính dùng để phân biệt giữa các học sinh (chúng ta có thể có sinh viên cùng tên).
  • PROGRAM là một thực thể mạnh, với mã số định danh: Program_Id, là khóa chính được sử dụng để phân biệt giữa các PROGRAM.
  • Mỗi sinh viên phải đăng ký vào một chương trình, vì vậy thực thể STUDENT tham gia hoàn toàn vào mối quan hệ ENROLLS_IN nhiều-một với PROGRAM. Một chương trình có thể tồn tại mà không cần có bất kỳ sinh viên đăng ký nào, vì vậy nó tham gia một phần vào mối quan hệ này.
  • COURSE có ý nghĩa khi tồn tại PROGRAM, vì vậy nó là một thực thể yếu, với Course_Id như một khóa yếu. Có nghĩa là một thực thể COURSE được xác định duy nhất bằng cách sử dụng thêm mã định danh của PROGRAM: Course_Id và Program_Id. Là một thực thể yếu, COURSE hoàn toàn tham gia vào mối quan hệ xác định nhiều-một với PROGRAM của chính nó.
  • STUDENT và COURSE có liên quan thông qua mối quan hệ nhiều-nhiều: ATTEMPTS; một COURSE có thể tồn tại mà không có sinh viên và một STUDENT có thể được ghi danh mà không cần học bất kỳ khóa học nào.
  • Khi một sinh viên tiếp cận một khóa học, có những thuộc tính cần thiết để ghi nhận như: Year, Semester, Mark, Grade.


Kiến trúc Three-Schema

Ba cấp độ của trừu tượng hóa dữ liệu (Data abstraction).

Mục tiêu của kiến trúc này là tách những ứng dụng người dùng ra khỏi mô hình dữ liệu vật lý.

Kiến trúc three-schemas

Trong kiến trúc này, các lược đồ có thể xác định ở ba cấp độ sau:

1. External Schema

Lược đồ bên ngoài: Là phần cơ sở dữ liệu mà người dùng cụ thể quan tâm. Nó ẩn các chi tiết không liên quan đến người dùng như việc truy xuất hoặc lưu trữ dữ liệu.

Ví dụ: một người dùng phòng kinh doanh sẽ chỉ thấy dữ liệu liên quan đến bán hàng.

2. Conceptual Schema

Lược đồ khái niệm: Mô tả cấu trúc cơ sở dữ liệu của toàn bộ cơ sở dữ liệu cho cộng đồng người dùng. Lược đồ này ẩn thông tin về cấu trúc lưu trữ vật lý và tập trung vào việc mô tả kiểu dữ liệu, thực thể, mối quan hệ,...

3. Internal Schema 

Mô tả cách cơ sở dữ liệu được lưu trữ trên các thiết bị vật lý như ổ cứng. Lược đồ nội bộ sử dụng mô hình dữ liệu vật lý và mô tả chi tiết đầy đủ về đường dẫn truy cập và lưu trữ dữ liệu cho cơ sở dữ liệu.

Ví dụ về kiến trúc three-schemas

Để rõ ràng hơn, hãy xem xét ví dụ về việc truy cập một trang web thông qua máy tính cá nhân.

Trình duyệt web trên máy tính của bạn là cấp bên ngoài (1) vì bạn chỉ nhận được trang web được hiển thị trên màn hình của mình mà không cần biết những gì đang diễn ra bên trong. Máy chủ lưu trữ trang web là cấp độ khái niệm (2) khi nó nhận yêu cầu của bạn, truy xuất dữ liệu bạn muốn từ cơ sở dữ liệu và sau đó gửi dữ liệu đó trở lại máy tính của bạn. Cơ sở dữ liệu (được lưu trữ trên một số phương tiện vật lý) đại diện cho mức vật lý. Nó chứa dữ liệu bạn quan tâm.

Tại sao phải sử dụng three-schemas

  • Nhiều người dùng sẽ truy cập vào cùng một dữ liệu, nhưng có thể xem các tùy chỉnh dữ liệu khác nhau.
  • Người dùng không cần tác động trực tiếp lên cơ sở dữ liệu vật lý.
  • Người quản trị cơ sở dữ liệu có thể thay đổi cấu trúc lưu trữ cơ sở dữ liệu mà không làm ảnh hưởng đến chế độ xem của người dùng.
  • Khi có các thay đổi được thực hiện đối với các khía cạnh vật lý của lưu trữ thì cấu trúc bên trong của cơ sở dữ liệu sẽ không bị ảnh hưởng.


Mô hình dữ liệu (Data models)

Giới thiệu về mô hình dữ liệu

Mô hình dữ liệu là một tập hợp các khái niệm hoặc ký hiệu để mô tả dữ liệu, mối quan hệ dữ liệu (data relationships), ngữ nghĩa dữ liệu (data semantics) & các ràng buộc dữ liệu (constraints data).

Để lưu trữ dữ liệu trên hệ thống cơ sở dữ liệu, chúng ta cần một số cấu trúc dữ liệu. Nhưng hệ thống cơ sở dữ liệu thường bao gồm một số cấu trúc dữ liệu phức tạp mà người dùng không sử dụng. Để hiệu quả về mặt truy xuất dữ liệu và giảm độ phức tạp cho người dùng, các nhà phát triển đã trừu tượng hóa dữ liệu (data abstraction), tức là ẩn các chi tiết không liên quan khỏi người dùng.

Các loại mô hình dữ liệu:

1 - Mô hình dữ liệu High-level conceptual

Mô hình dữ liệu High-level conceptual cung cấp cách trình bày dữ liệu tương tự như cách mọi người nhìn nhận dữ liệu. Một ví dụ điển hình là mô hình mối quan hệ thực thể, sử dụng các khái niệm như thực thể, thuộc tính và mối quan hệ.

Mô hình mối quan hệ thực thể

Một thực thể đại diện cho một đối tượng trong thế giới thực, chẳng hạn như một nhân viên hoặc một dự án. Thực thể có các thuộc tính đại diện như tên, địa chỉ và ngày sinh của nhân viên. Mối quan hệ thể hiện sự liên kết giữa các thực thể; ví dụ, một nhân viên làm việc trong nhiều dự án. Một mối quan hệ tồn tại giữa nhân viên và mỗi dự án.

2 - Mô hình dữ liệu Record-based logical

Các mô hình dữ liệu logic dựa trên bản ghi cung cấp các khái niệm mà người dùng có thể hiểu nhưng vẫn tương tự như cách dữ liệu được lưu trữ trên máy tính. 3 mô hình dữ liệu nổi tiếng thuộc loại này là:

  • Hierarchical: Cấu trúc này bắt buộc mỗi bản ghi CON chỉ có một CHA, trong khi mỗi bản ghi CHA có thể có một hoặc nhiều bản ghi con

Car có hai con là Engine và Body,...

  • Network: Sau này được thay thế bởi mô hình quan hệ.
  • Relational: Mô hình quan hệ biểu diễn dữ liệu dưới dạng quan hệ hoặc bảng. Ví dụ, hệ thống cơ sở dữ liệu trường đại học chứa nhiều bảng (quan hệ) mà lần lượt có một số thuộc tính (cột) và bộ dữ liệu (hàng).

3 - Mô hình dữ liệu Physical.

Biểu thị cách dữ liệu được lưu trữ trong bộ nhớ máy tính, cách nó được phân tán và sắp xếp trong bộ nhớ, và cách nó sẽ được truy xuất từ ​​bộ nhớ. Về cơ bản, mô hình dữ liệu vật lý đại diện cho mỗi bảng, cột và thông số kỹ thuật của nó, v.v. Nó cũng nêu bật cách các bảng được xây dựng và liên quan với nhau trong cơ sở dữ liệu.

Bảng STUDENT có liên quan đến bảng DEPARTMENT thông qua thuộc tính Dep_Id.

Chúng ta có thể thấy bảng STUDENT bao gồm các thuộc tính như Std_Id, Std_Name, Age với các kiểu dữ liệu của chúng, tương tự đối với bảng DEPARTMENT. Mũi tên cho thấy hai bảng này được kết nối như thế nào trong mô hình này.