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