Bài giảng Cơ sở dữ liệu - Chương 2: Mô hình thực thể - liên kết - Hoàng Thị Hà

Nội dung

1. QUÁ TRÌNH THIẾT KẾ CƠ SỞ DỮ LIỆU

2. MÔ HÌNH THỰC THỂ LIÊN KẾT (ER)

• Giới thiệu

• Các thành phần cơ bản của mô hình thực thể liên kết

• Lược đồ thực thể - liên kết

pdf36 trang | Chia sẻ: Thục Anh | Ngày: 11/05/2022 | Lượt xem: 543 | Lượt tải: 0download
Bạn đang xem trước 20 trang nội dung tài liệu Bài giảng Cơ sở dữ liệu - Chương 2: Mô hình thực thể - liên kết - Hoàng Thị Hà, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
CHƯƠNG 2: MÔ HÌNH THỰC THỂ - LIÊN KẾT GV: Hoàng Thị Hà Email: htha@vnua.edu.vn Nội dung 1. QUÁ TRÌNH THIẾT KẾ CƠ SỞ DỮ LIỆU 2. MÔ HÌNH THỰC THỂ LIÊN KẾT (ER) • Giới thiệu • Các thành phần cơ bản của mô hình thực thể liên kết • Lược đồ thực thể - liên kết Hoàng Thị Hà 205/10/2018 Hoàng Thị Hà 305/10/2018 I. Quá trình thiết kế CSDL Hoàng Thị Hà 405/10/2018 Bước 1: Tập hợp các yêu cầu và phân tích Người thiết kế cơ sở dữ liệu phỏng vấn những người sử dụng cơ sở dữ liệu để hiểu và làm tài liệu về các yêu cầu về dữ liệu cho bài toán. Kết quả của bước này tập hợp các yêu cầu được ghi chép súc tích. Những yêu cầu sẽ được đặc tả càng đầy đủ và chi tiết càng tốt. Song song với việc đặc tả các yêu cầu dữ liệu, cần phải đặc tả các yêu cầu về chức năng của ứng dụng: đó là các thao tác do người sử dụng định nghĩa sẽ được áp dụng đối với cơ sở dữ liệu. Hoàng Thị Hà 505/10/2018 Bước 2: Thiết kế khái niệm.  Lựa chọn một mô hình dữ liệu, dùng các khái niệm của mô hình đã chọn để chuyển những đặc tả yêu cầu của người dùng sang thành một lược đồ khái niệm.  Lược đồ khái niệm là một mô tả cô đọng về yêu cầu dữ liệu của những người dùng bao gồm mô tả chi tiết các kiểu dữ liệu, các liên kết, các ràng buộc, chúng được biểu diễn bằng các khái niệm do các mô hình dữ liệu bậc cao cung cấp.  Trong quá trình (hoặc sau khi) thiết kế lược đồ quan niệm, chúng ta có thể sử dụng các phép toán cơ bản của mô hình dữ liệu để đặc tả các thao tác của người sử dụng được xác định trong khi phân tích chức năng. Nếu có một số yêu cầu chức năng không thể nêu ra được trong lược đồ ban đầu thì ở bước này có thể có sự sửa đổi lược đồ quan niệm cho phù hợp. Hoàng Thị Hà 605/10/2018 Bước 3: Thiết kế logic (ánh xạ mô hình dữ liệu).  Ở bước này, người thiết kế cài đặt cơ sở dữ liệu bằng một hệ quản trị CSDL.  Hầu hết các hệ quản trị CSDL sử dụng một mô hình dữ liệu cài đặt (còn gọi là mô hình thể hiện),  Kết quả của bước này là một lược đồ cơ sở dữ liệu dưới dạng một mô hình dữ liệu thể hiện của hệ quản trị cơ sở dữ liệu. Hoàng Thị Hà 705/10/2018 2. Mô hình thực thể liên kết (ER) 2. Mô hình ER – Giới thiệu Hoàng Thị Hà 805/10/2018  Giới thiệu: Mô hình ER được dùng để thiết kế CSDL mức khái niệm .  What are the entities and relationships in the enterprise?  What information about these entities and relationships should we store in the database?  What are the integrity constraints or business rules that hold?  A database `schema’ in the ER Model can be represented pictorially (ER diagrams).  Can map an ER diagram into a relational schema. Hoàng Thị Hà 905/10/2018 2. Mô hình ER - Các thành phần  Thực thể: Real-world object distinguishable from other objects. An entity is described (in DB) using a set of attributes.  Tập thực thể: A collection of similar entities. E.g., all employees.  All entities in an entity set have the same set of attributes. (Until we consider ISA hierarchies, anyway!)  Each entity set has a key.  Each attribute has a domain. Employees ssn name lot Hoàng Thị Hà 1005/10/2018 Khái niệm (tt.)  Mối quan hệ: Association among 2 or more entities. E.g., Attishoo works in Pharmacy department.  Tập mối quan hệ: Collection of similar relationships.  An n-ary relationship set R relates n entity sets E1 ... En; each relationship in R involves entities e1 E1, ..., en En  Same entity set could participate in different relationship sets, or in different “roles” in same set. subor- dinate Reports_To lot name Employees super- visor ssn lot dname budgetdid since name Works_In DepartmentsEmployees ssn Relationship Set Hoàng Thị Hà 1105/10/2018 Ví dụ 1  Thiết kế lược đồ ER theo thông tin sau:  Sinh viên  Have an Id, Name, Login, Age, Gpa  Môn học  Have an Id, Name, Credit Hours  Sinh viên đăng ký môn học  Receive a grade Hoàng Thị Hà 1205/10/2018 Ví dụ 1 – Đáp án Students Name Login Id Age Gpa Courses Id Name Credit Enrolled_In Grade Hoàng Thị Hà 1305/10/2018 Ví dụ 2  Thiết kế lược đồ ER theo thông tin sau:  Bệnh nhân  Name, Address, Phone #, Age  Thuốc  Name, Manufacturer , Expiration Date  Bệnh nhân điều trị theo đơn thuốc  Dosage, # Days Hoàng Thị Hà 1405/10/2018 Ví dụ 2 – Đáp án Patients Name Addr Phone Age Drug Name Manuf Exp Prescribed Dosage #days Hoàng Thị Hà 1505/10/2018 Ràng buộc khóa  Xét mối quan hệ Works_In: 1 nhân viên có thể làm việc trong nhiều phòng; 1 phòng có nhiều nhân viên.  Ngược lại, mỗi phònh chỉ có nhiều nhất 1 trưởng phòng. Many-to-Many1-to-1 1-to Many Many-to-1 dname budgetdid since lot name ssn ManagesEmployees Departments Key Constraint Hoàng Thị Hà 1605/10/2018 Participation Constraints  Mọi phòng ban đều có trưởng phòng?  Nếu đúng, đây là ràng buộc participation constraint: the participation of Departments in Manages is said to be total (vs. partial).  Every did value in Departments table must appear in a row of the Manages table (with a non-null ssn value!) lot name dname budgetdid since Manages since DepartmentsEmployees ssn Works_In Total w/key constraint Partial Total Total Hoàng Thị Hà 1705/10/2018 Ví dụ 3  Mô tả lược đồ của ví dụ 1 với đầy đủ ràng buộc:  Students  Have an Id, Name, Login, Age, Gpa  Courses  Have an Id, Name, Credit Hours  Students enroll in courses  Receive a grade Hoàng Thị Hà 1805/10/2018 Ví dụ 3 – Đáp án Students Name Login Id Age Gpa Courses Id Name Credit Enrolled_In Grade totaltotal Hoàng Thị Hà 1905/10/2018 Thực thể yếu  Một thực thể yếu (weak entity) có thể được nhận biết khi xét khóa chính của thực thể chủ nhân khác.  Tập thực thể chủ nhân và tập thực thể yếu cùng tham gia vào 1 mối kết hợp 1-nhiêu (1 chủ nhân, nhiều thực thể yếu).  Tập thực thể yếu phải tham gia đầy đủ vào tập kết hợp identifying relationship set. lot name agepname DependentsEmployees ssn Policy cost Weak EntityIdentifying Relationship Primary Key for weak entity Hoàng Thị Hà 2005/10/2018 Quan hệ phân cấp ISA (`is a’) Contract_Emps name ssn Employees lot hourly_wages ISA Hourly_Emps contractid hours_worked • Nói rằng A isa B (A là một B) nếu tập thực thể B là sự tổng quát hóa của tập thực thể A, hoặc A là loại đặc biệt của B. Điều này có nghĩa là A có thể kế thừa các thuộc tính của B Hoàng Thị Hà 2105/10/2018 Quan hệ phân cấp ISA (`is a’)  Ràng buộc chồng chéo: Liệu Joe vừa là Hourly_Emps vừa là Contract_Emps? )  Ràng buộc phủ: Có phải chỉ có hai loại nhân viên Hourly_Emps hoặc Contract_Emps?  Lý do sử dụng ISA:  Cung cấp thêm thuộc tính cho lớp con .  Nhận biết thực thể tham dự vào mối kết hợp. Hoàng Thị Hà 2205/10/2018 Aggregation  Được dùng khi một mối kết hợp bao hàm nhiều thực thể hoặc mối kết hợp khác.  Aggregation allows us to treat a relationship set as an entity set for purposes of participation in (other) relationships.  Monitors mapped to table like any other relationship set. Mối kết hợp Tam phân và Aggregation:  Monitors is a distinct relationship, with a descriptive attribute.  Also, can say that each sponsorship is monitored by at most one employee. budgetdidpid started_on pbudget dname until DepartmentsProjects Sponsors Employees Monitors lot name ssn Aggregation Hoàng Thị Hà 2305/10/2018 Ví dụ 4  Thiết kế lược đồ ER theo thông tin sau:  Walmart Stores  Store Id, Address, Phone #  Products  Product Id, Description, Price  Manufacturers  Name, Address, Phone #  Walmart Stores carry products  Amount in store  Manufacturers make products  Amount in factory/warehouses  Should we use aggregation or a tertiary relationship? Hoàng Thị Hà 2405/10/2018 Thiết kế mức khái niệm dùng mô hình ER  Các lựa chọn:  Thực thể hoặc thuộc tính?  Thực thể hoặc mối quan hệ?  Nhận biết mối quan hệ: Hai ngôi, ba ngôi hay kết tập (aggregation)? Hoàng Thị Hà 2505/10/2018 Thực thể và Thuộc tính  Liệu address là thuộc tính của Employees hay là một thực thể (nối với Employees bằng một quan hệ)?  Phụ thuộc vào ngữ nghĩa và cấu trúc của dữ liệu address:  Nếu mỗi nhân viên có nhiều địa chỉ thì address phải là một thực thể (vì thuộc tính không thể là một tập giá trị).  Nếu địa chỉ là một dữ liệu có cấu trúc (city, street, etc.) và thông tin từng trường là quan trọng (vd. Ta muốn tuyển chọn nhân viên theo thành phố), thì address phải là một thực thể (vì giá trị thuộc tính phải là nguyên tố). Hoàng Thị Hà 2605/10/2018 Thực thể và Thuộc tính (tt.)  Works_In2 does not allow an employee to work in a department for two or more periods.  Similar to the problem of wanting to record several addresses for an employee: we want to record several values of the descriptive attributes for each instance of this relationship. dname budgetdid name Departments ssn lot Employees Works_In3 Durationfrom to name Employees ssn lot Works_In2 from to dname budgetdid Departments Hoàng Thị Hà 2705/10/2018 Thực thể và Mối Kết Hợp  First ER diagram OK if a manager gets a separate discretionary budget for each dept.  Redundancy of dbudget, which is stored for each dept managed by the manager.  Misleading: suggests dbudget tied to managed dept.  What if a manager gets a discretionary budget that covers all managed depts? budget Manages2 name dname did Employees Departments ssn lot dbudgetsince Employees since name dname budgetdid Departments ssn lot Mgr_Appts Manages3 dbudget apptnum Hoàng Thị Hà 2805/10/2018 Nhị phân hoặc Tam phân  Nếu mỗi chính sách được sở hữu bởi chỉ một nhân viên:  Key constraint on Policies would mean policy can only cover 1 dependent! agepname DependentsCovers name Employees ssn lot Policies policyid cost Beneficiary agepname Dependents policyid cost Policies Purchaser name Employees ssn lot Bad design Better design Hoàng Thị Hà 2905/10/2018 Nhị phân hoặc Tam phân (tt.)  Ví dụ trên minh họa trường hợp hai mối quan hệ hai ngôi thì tốt hơn 1 mối quan hệ ba ngôi.  Một ví dụ khác: mối quan hệ 3 ngôi Contracts giữa 3 thực thể Parts, Departments và Suppliers, với thuộc tính qty. Không có sự thay thế thỏa đáng mối quan hệ 3 ngôi này:  S “can-supply” P, D “needs” P, and D “deals-with” S does not imply that D has agreed to buy P from S.  How do we record qty? 3. Lược đồ thực thể - liên kết  Lược đồ thực thể liên kết là đồ thị biểu diễn các tập thực thể, thuộc tính và mối quan hệ giữa các tập thực thể. Theo phần trình bày trên, ta thấy mô hình thực thể liên kết có các thành phần sau:  Tập các thực thể  Các thuộc tính của tập các thực thể  Các liên kết  Các cung biểu thị mối liên kết giữa các tập thực thể. Hoàng Thị Hà 3005/10/2018 Cách biểu diễn các thành phần trong sơ đồ ER Hoàng Thị Hà 3105/10/2018 Ví dụ 1: Hoàng Thị Hà 3205/10/2018 KHOA LOP MONHOC SINHVIEN được cấp thuo c Quanl y TenK Diachi SDT MaK Ma L Siso Ten Gioitinh MaS V TenM H SoTC Dieukien MaMH Nguoith u Ngaylap Ten L Ngaysinh MaBL BIENLAI chứa 1 n n 1 n n n DOITUONG thuộ c TenD T Mucgiam n MaD T Hodem 1 1 Ví dụ 2: Hoàng Thị Hà 3305/10/2018 Ngaybatdau DONVI NHAN VIEN DUAN MaDV TenDV Điadiem Diachi MaNV Hoten Hodem Ngaysinh Ten CONHodem Ngaysinh có Sogio Ten có NGUOIQUANLY ISA 1 1 1 n 1 n n n MaNN Ten Gioitinh làm việc Hoàng Thị Hà 3405/10/2018 Tóm tắt sơ đồ thực thể liên kết Một sơ đồ thực thể quan hệ bao gồm các thành phần chính dưới đây:  Hình chữ nhật biểu diễn các tập thực thể.  Các hình elip biểu diễn các thuộc tính, chúng được liên kết với tập các thực thể bằng các cạnh vô hướng. Các thuộc tính là khóa sẽ được nhận diện bằng cách thêm dấu # ở trước hoặc gạch chân.  Các hình thoi biểu diễn thực thể liên kết, được liên kết với các tập thành viên.  Những đường kẻ kết nối những thuộc tính với những tập hợp thực thể và giữa những tập hợp thực thể với những tập hợp các liên kết. 35 Câu hỏi và bài tập chương 2  Mô hình ER là gì?. Vai trò của mô hình ER trong quá trình thiết kế cơ sở dữ liệu?.  Thực thể là gì?. Tập thực thể là gì?. Thuộc tính là gì?. Miền giá trị của thuộc tính là gì?.Khoá của tập thực thể là gì?.  Phân biệt giữa tập thực thể mạnh và tập thực thể yếu.  Cách biểu diễn mô hình ER của một bài toán.  Hãy khảo sát và xây dựng mô hình ER cho bài toán quản lý thư viện.  Hãy khảo sát và xây dựng mô hình ER cho bài toán quản lý siêu thị.  Hãy khảo sát và xây dựng mô hình ER cho bài toán quản lý khách sạn.  Hãy khảo sát và xây dựng mô hình ER cho bài toán quản lý kí túc xá sinh viên trường Đại học Nông nghiệp Hà Nội.  Hãy khảo sát và xây dựng mô hình ER cho bài toán quản lý các đề tài nghiên cứu khoa học trường Đại học Nông nghiệp Hà Nội.  Hãy khảo sát và xây dựng mô hình ER cho bài toán quản lý điểm của sinh viên. Hoàng Thị Hà 3605/10/2018

Các file đính kèm theo tài liệu này:

  • pdfbai_giang_co_so_du_lieu_chuong_2_mo_hinh_thuc_the_lien_ket_h.pdf