1c6d8b59749f5ccbd205d848bb16ffa1.ppt
- Количество слайдов: 71
Chương 2 Mô hình liên kết – thực thể Hệ cơ sở dữ liệu 1
Nội dung n n n Mô hình liên kết thực thể Quá trình thiết kế mô hình dữ liệu ý niệm Sơ đồ ER q q Thực thể và kiểu thực thể Thuộc tính Mối liên kết Kiểu thực thể kết hợp Hệ cơ sở dữ liệu 2
Quá trình thiết kế Một CSDL Thế giới thực Tập hợp các yêu cầu và phân tích Các yêu cầu CSDL Thiết kế khái niệm Không phụ thuộc Lược đồ khái niệm (mô hình dữ liệu bậc cao) Vào DBMS Thiết kế lô gic DBMS cụ thể Lược đồ khái niệm (mô hình dữ liệu của 1 DBMS cụ thể) Thiết kế vật lý Lược đồ trong Hệ cơ sở dữ liệu 3
Quá trình thiết kế mô hình dữ liệu khái niệm n n n Bước 1: Nhận dạng các kiểu thực thể Bước 2: Nhận dạng các kiểu liên kết Bước 3: Nhận dạng các thuộc tính của các kiểu thực thể và các mối liên kết Bước 4: Nhận dạng thuộc tính xác định cho mỗi kiểu thực thể Bước 5: Nhận dạng các cấu trúc siêu kiểu/ kiểu con Bước 6: Vẽ sơ đồ ER Hệ cơ sở dữ liệu 4
Mô hình liên kết – thực thể (Entity Relationship Model – ER Model) n n Mô hình ER được dùng để xây dựng mô hình dữ liệu ý niệm (Conceptual data modeling) Mô hình ER như 1 công cụ để trao đổi ý tưởng giữa nhà thiết kế và người dùng cuối trong giai đoạn phân tích. Nó độc lập với DBMS và quá trình thi công database. Hệ cơ sở dữ liệu 5
Tầm quan trọng của mô hình hóa dữ liệu n n n Giúp thâu tóm các đặc tính dữ liệu, nắm bắt quy tắc nghiệp vụ (business rule) và các ràng buộc (constraint) trong quá trình mô hình hóa dữ liệu Thu thập dữ liệu Hệ thống được thiết kế theo hướng dữ liệu (data-oriented) sẽ ổn định hơn hướng xử lý dữ liệu (process oriented) Hệ cơ sở dữ liệu 6
Sơ đồ liên kết – thưc thể n n Mô hình ER được diễn tả bằng sơ đồ liên kết thực thể (entity relationship diagram - ERD) Ba phần tử cơ bản: q q q kiểu thực thể (entity Type) Quan hệ (Relationship) Các thuộc tính (Attribute) Hệ cơ sở dữ liệu 7
Hệ cơ sở dữ liệu 8
Thực thể - Entity n n Thực thể là đối tượng chính mà ta thu thập thông tin xoay quanh chúng. Thực thể có thể là q q Một người như nhân viên, sinh viên, . . Một nơi chốn như thành phố, đất nước, . . Một sự kiện như mua hàng, trả lương, . . Một khái niệm như môn học, tài khoản, … Hệ cơ sở dữ liệu 9
Kiểu thưc thể - Entity Type n n n Kiểu thực thể: là một tập hợp các thực thể có cùng tính chất. Thể hiện (instance) của một kiểu thực thể là một trường hợp cụ thể của kiểu thực thể đó. Ví dụ: kiểu thực thể Customer có các điển hình là Tom và Peter. Mỗi Customer đều có mã khách khác nhau, và có thể thực hiện các dịch vụ như đặt hàng, thanh toán tiền …. Hệ cơ sở dữ liệu 10
Các kiểu thực thể n n n Kiểu thực thể mạnh ( strong entity type): tồn tại độc lập với những kiểu thực thể khác Kiểu thực thể yếu ( weak entity type): tồn tại phụ thuộc vào kiểu thực thể khác Ví dụ: q q EMPLOYEE là kiểu thực thể mạnh. DEPENDENT(lệ thuộc) là kiểu thực thể yếu, lệ thuộc vào EMPLOYEE. Hệ cơ sở dữ liệu 11
Cách đặt tên và ký hiệu n n Mỗi kiểu thực thể phải có một tên gọi, nên là danh từ số ít và viết chữ hoa. Ký hiệu của các kiểu thực thể EMPLOYEE DEPENDENT Thực thể mạnh Thực thể yếu Hệ cơ sở dữ liệu 12
Ví dụ thực thể mạnh/yếu Dependent_Name Employee_ID Employee_Name EMPLOYEE Has Hệ cơ sở dữ liệu Birth. Date DEPENDENT 13
Kiểu thực thể và đầu vào/ra của hệ thống n n Thường nhầm lẫn giữa thực thể dữ liệu (data entity) của lược đồ ER với các thành phần khác trong DFD (data flow diagram) Ví dụ: xét hệ thống chi tiêu của 1 trường cao đẳng. Người thủ quỹ (treasurer) quản lý tài chính, nhận các báo chi tiêu, ghi lại các giao dịch. Treasurer là 1 kiểu thực thể? ? Manages và gives là các quan hệ giữa treasurer với account và expense (phí) Hệ cơ sở dữ liệu 14
Kiểu thực thể và đầu vào/ra của hệ thống TREASURER Gives_to Summaries Manages ACCOUNT EXPENSE REPORT Has Hệ cơ sở dữ liệu EXPENSE 15
Kiểu thực thể và đầu vào/ra của hệ thống n n n Có cần theo dõi dữ liệu về Treasurer? Treasurer là người nhập dữ liệu về tài chính, các khoản chi tiêu và nhận báo cáo là user của CSDL. Chỉ có 1 treasurer duy nhất dữ liệu về treasurer không cần theo dõi. Treasurer không phải là 1 data entity Một thực thể thực sự thì sẽ phải có nhiều instance Hệ cơ sở dữ liệu 16
Kiểu thực thể và đầu vào/ra của hệ thống EXPENSE REPORT có phải là 1 kiểu thực thể không? n Vì báo cáo được tạo ra từ các giao dịch (transaction) và cân đối tài khoản ( account balance) được rút trích dữ liệu từ database EXPENSE REPORT không phải là 1 kiểu thực thể tuy có nhiều instance nhưng được tính toán từ 2 thực thể khác n Hệ cơ sở dữ liệu 17
Kiểu thực thể và đầu vào/ra của hệ thống n Lược đồ ER đúng để thể hiện hệ thống chi tiêu là: ACCOUNT Has Hệ cơ sở dữ liệu EXPENSE 18
Thuộc tính - attribute n n n Mỗi kiểu thực thể có 1 số thuộc tính. Thuộc tính là đặc tính của 1 kiểu thực thể hay 1 mối liên kết. Ví dụ: kiểu thực thể STUDENT có các thuộc tính như Student_ID, Student_Name, Address, Major. STUDENT Student_ID, Student_Name, … Hệ cơ sở dữ liệu 19
Các kiểu thuộc tính Thuộc tính đơn (simple attribute): là thuộc tính không thể phân nhỏ được. Ví dụ: Color, Weight, Horse. Power n Thuộc tính phức hợp (composite attribute): là thuộc tính có thể phân thành nhiều thành phần Ví dụ: Thuộc tính Address bao gồm các thành phần Street, District, City n Hệ cơ sở dữ liệu 20
Các kiểu thuộc tính (tt) Thuộc tính đơn trị (single valued attribute) n Thuộc tính đa trị (multivalued attribute): có thể có nhiều hơn một trị cho một thể hiện của thực thể Ví dụ: Thực thể COURSE có thuộc tính Teacher đa trị, một môn học có thể được dạy bởi nhiều hơn 1 thầy cô. n Hệ cơ sở dữ liệu 21
Các kiểu thuộc tính (tt) Thuộc tính xác định ( identifier attribute): là 1 thuộc tính hoặc 1 tổ hợp các thuộc tính xác định được các thể hiện riêng biệt của 1 kiểu thực thể Ví dụ: Student_ID là thuộc tính xác định của kiểu thực thể STUDENT n Hệ cơ sở dữ liệu 22
Các kiểu thuộc tính (tt) Thuộc tính dẫn xuất ( derived attribute): là thuộc tính mà trị của nó có thể tính ra được từ các thuộc tính khác Ví dụ: Year_Employed là thuộc tính dẫn xuất từ thuộc tính Date_Employed n Hệ cơ sở dữ liệu 23
Cách đặt tên và ký hiệu n n Mỗi thuộc tính nên được biểu diễn là danh từ số ít và viết chữ thường. Ký hiệu của các kiểu thuộc tính: Student_ID Thuộc tính đơn Teacher Thuộc tính đa trị Hệ cơ sở dữ liệu Years_Employed Thuộc tính dẫn xuất 24
Mối liên kết - Relationship n n n Mối liên kết (relationship) diễn tả sự kết hợp giữa một hay nhiều kiểu thực thể với nhau. Kiểu liên kết ( relationship type) là một sự kết hợp có ý nghĩa giữa các kiểu thực thể Một thể hiện (instance) của một kiểu liên kết là một sự kết hợp giữa các thể hiện của các kiểu thực thể tham gia vào mối liên kết đó Hệ cơ sở dữ liệu 25
Ví dụ STUDENT Completes COURSE Date_Completed • Thuộc tính Date_Completed nên đặt ở đâu trong lược đồ trên? Là 1 thuộc tính của mối liên kết Completed (thích hợp hơn là thuộc tính của 2 thực thể STUDENT và COURSE) Hệ cơ sở dữ liệu 26
Kiểu liên kết NH N VIÊN Làm việc cho ĐƠN VỊ Thể hiện liên kết NH N VIÊN làm việc cho Nv 1 Nv 2 Nv 3 Nv 4. . ĐƠN VỊ Đv 1 Đv 2 Hệ cơ sở dữ liệu 27
Bậc và các kiểu liên kết n n Bậc của mối liên kết: là số kiểu thực thể tham gia vào mối liên kết Các kiểu liên kết q q Liên kết 1 ngôi Liên kết 2 ngôi Liên kết 3 ngôi. . Hệ cơ sở dữ liệu 28
Liên kết một ngôi Unary relationship n n n Là mối liên kết giữa các thể hiện của cùng một kiểu thực thể Còn gọi là mối liên kết đệ quy (recursive relationship) Ví dụ: EMPLOYEE Hệ cơ sở dữ liệu Manages 29
Liên kết hai ngôi Binary relationship n Là mối liên kết giữa hai kiểu thực thể STUDENT Registers for Hệ cơ sở dữ liệu COURSE 30
Liên kết ba ngôi Ternary relationship n Là mối liên kết giữa 3 kiểu thực thể PART VENDOR Supplies Shipping mode Hệ cơ sở dữ liệu WAREHOUSE (kho) Unit cost 31
Lượng số của mối liên kết Cardinality n n n Lượng số là số thể hiện của kiểu thực thể B mà có thể liên kết với mỗi thể hiện của kiểu thực thể A Lượng số tối thiểu (minimum cardinality): là số tối thiểu của các thể hiện của kiểu thực thể B mà có thể liên kết với mỗi thể hiện của kiểu thực thể A Lượng số tối đa (maximum cardinality) Hệ cơ sở dữ liệu 32
Lượng số của mối liên kết Cardinality n n n Nếu lượng số tối thiểu là 0, kiểu thực thể B được gọi là nhiệm ý Nếu lượng số tối thiểu và tối đa đều là 1 thì lượng số này được gọi là bắt buộc (mandatory) Ba dạng liên kết: q q q Liên kết 1 -1 Liên kết 1 -n Liên kết n-n Hệ cơ sở dữ liệu 33
Ký hiệu của lượng số n n n Không bắt buộc: ký hiệu là O Bắt buộc: ký hiệu là || Nhiều Hệ cơ sở dữ liệu 34
Ví dụ mối liên kết EMPLOYEE Is_assigned_to Rose PROJECT 1 Peter PROJECT 2 Tom PROJECT 3 Heidi Hệ cơ sở dữ liệu 35
Ví dụ lượng số nhiệm ý trong mối liên kết nhiều Item_No Name Unit Cost ITEM Quantity Contains Hệ cơ sở dữ liệu 36
Dữ liệu phụ thuộc thời gian (Modeling Time-dependent Data) n n n Đơn giá (Unit price) là 1 trong những thuộc tính của sản phẩm (Product) Nếu chỉ quan tâm đến giá cả hiện thời thì Price là 1 thuộc tính đơn trị Nếu giá cả ảnh hưởng đến kế toán, hóa đơn, … thì cần biết 1 chuỗi giá cả kèm theo ngày giờ bị ảnh hưởng bởi giá cả đó Price là 1 thuộc tính đa trị Hệ cơ sở dữ liệu 37
Dữ liệu phụ thuộc thời gian Price Product_ID Effective_Date Price_History PRODUCT Hệ cơ sở dữ liệu 38
Kiểu thực thể kết hợp Associative entity type n Là một kiểu thực thể dùng liên kết một hay nhiều kiểu thực thể và có chứa thêm một số thuộc tính riêng biệt của mối liên kết này STUDENT CERTIFICATE COURSE (Văn bằng) Completed Date Certificate_ID Hệ cơ sở dữ liệu 39
Kiểu thực thể kết hợp Associative entity type n Bốn điều kiện để chuyển đổi mối liên kết thành kiểu thực thể kết hợp q q Là mối liên kết nhiều – nhiều Có thuộc tính xác định riêng Có thêm vài thuộc tính khác Kiểu thực thể kết hợp sẽ tham gia vào 1 số mối liên kết khác trong sơ đồ ER Hệ cơ sở dữ liệu 40
Xây dựng kiểu thực thể kết hợp từ các quy tắc nghiệp vụ Giả sử có các quy tắc nghiệp vụ (business rule) sau: 1. 2. 3. Mỗi người bán (vendor) có thể cung cấp nhiều phụ tùng (part) cho 1 số kho (warehouse) nhưng không cần phải cung cấp bất kỳ phụ tùng nào Mỗi phụ tùng có thể được cung cấp bởi 1 số người bán hàng cho 1 hay nhiều kho, nhưng mỗi phụ tùng nhất thiết phải được cung cấp bởi ít nhất 1 người bán hàng cho 1 kho. Mỗi kho có thể được cung cấp với 1 số phụ tùng từ nhiều hơn một nhà bán hàng nhưng mỗi kho nhất thiết phải được cung cấp với ít nhất 1 phụ tùng. Hệ cơ sở dữ liệu 41
Ví dụ PART VENDOR SUPPLY SCHEDULE Shipping mode WAREHOUSE Unit cost Hệ cơ sở dữ liệu 42
Ràng buộc lượng số của liên kết ba ngôi Trường hợp liên kết 1 -1 -1 Xét quy tắc nghiệp vụ (business rule) sau: “Mỗi kỹ sư dùng chỉ 1 sổ ghi chép cho 1 đề án. Những kỹ sư khác nhau sẽ dùng những sổ ghi chép khác nhau khi làm việc cho cùng một đề án. Không có kỹ sư nào dùng cùng một sổ ghi chép cho nhiều đề án khác nhau” n Hệ cơ sở dữ liệu 43
Ràng buộc lượng số của liên kết ba ngôi n Trường hợp liên kết 1 -1 -1 ENGINEER PROJECT CASEBOOK Hệ cơ sở dữ liệu 44
Quy tắc nghiệp vụ Business Rules n n Lược đồ ER là 1 phương tiện thông dụng để diễn tả các kiểu quy tắc nghiệp vụ nào đó. Nhưng có những quy tắc nghiệp vụ không thể diễn tả được trong lược đồ ER. 45
Quy tắc nghiệp vụ Business Rules Quy tắc nghiệp vụ là “một phát biểu (statement) dùng để định nghĩa hay ràng buộc một số ngữ cảnh của hoạt động nghiệp vụ. Quy tắc này dùng để khẳng định cấu trúc của hoạt động nghiệp vụ hoặc để điều khiển đến hoạt động nghiệp vụ”. Ví dụ: n q q Một sinh viên chỉ được phép đăng ký 1 môn học khi sinh viên đó đã đạt được những môn học tiên quyết cho môn học đó. Một khách quen được giảm giá 10% nếu không nợ quá hạn 46
Quy tắc nghiệp vụ n n Thuật ngữ cũ “data integrity constraints” ( ràng buộc toàn vẹn dữ liệu) Thuật ngữ “ business rule” có phạm vi rộng hơn bao gồm mọi quy tắc có ảnh hưởng đến CSDL trong 1 tổ chức. 47
Quy tắc nghiệp vụ (tt) n n Mô hình quy tắc nghiệp vụ ( business rule paradigm) được xem như mô hình mới trong việc xác định yêu cầu hệ thống thông tin, và có phạm vi rộng hơn. Giới hạn phạm vi của quy tắc nghiệp vụ: chỉ quan tâm đến các quy tắc nghiệp vụ có liên quan đến database. Các quy tắc này được thể hiện thông qua các ràng buộc toàn vẹn (integrity constraint) trong database. 48
Phân loại quy tắc nghiệp vụ n Hai loại chính: q q Ràng buộc về cấu trúc ( structure constraint) Ràng buộc về tác vụ ( operational constraint) 49
Business Rules Structural Constraint Operational Constraint Procedural Declarative Domain Constraints Relationships Definitions Terms Facts Base Constraints Derived Super. Type /Sub. Type ER diagram 50
Phân loại quy tắc nghiệp vụ n Chỉ có 3 loại quy tắc có thể được thể hiện trong lược đồ ER: q q q Terms(thuật ngữ) các thực thể, thuộc tính và mối quan hệ Constraints (ràng buộc) lượng số min và max Supertype/subtype 51
Ràng buộc về cấu trúc n n Là các quy luật để ràng buộc về cấu trúc tĩnh (static) của một tổ chức. Ba loại ràng buộc về cấu trúc: q q q Các định nghĩa ( definitions) Miền trị ( Domains) Mối liên kết (Relationships) 52
Ràng buộc về cấu trúc (tt) n Các định nghĩa (definition): q q q Thuật ngữ (term): một từ hay một nhóm từ có ý nghĩa đặc biệt đối với hoạt động của tổ chức Sự kiện (fact): sự kết hợp giữa hai hay nhiều thuật ngữ Sự kiện dẫn xuất (derived fact): là sự kiện mà dẫn xuất ra từ những sự kiện hoặc quy tắc khác 53
Các định nghĩa trong mô hình dữ liệu n n Lược đồ ER chứa 3 loại đối tượng sau: entity, attribute và relationship. Mỗi loại đều có các thuộc tính (property) đặc trưng. Các term chỉ nên đưa vào lược đồ ER sau khi đã được định nghĩa (definition) cẩn thận. 54
Ví dụ định nghĩa entity n Name: FACULTY (KHOA) q q q n Type: Regular Definition: a university employee who is academically (về mặt lt) qualified (đủ đk) to teach courses Identifier: Faculty_ID Name: STUDENT q q q Type: Regular Definition: a person who has been admitted to the school Identifier: Student_ID 55
Ví dụ định nghĩa attribute n Name: Faculty_ID q q q n Domain: Person_IDs Definition: unique identifier of a faculty member Null: no Name: Faculty_Name q q q Domain: Person_Names Definition: name of faculty member Null: no 56
Ví dụ định nghĩa relationship n Name: Is_registered (đăng kí) q q Type: Binary M: N Description: associates each student with the course sections for which he or she is registered during the current semester(học kì) Constraints: none Attributes: none 57
Ràng buộc về cấu trúc (tt) n Ràng buộc miền trị (domain): xác định tập các giá trị mà một hay nhiều thuộc tính có thể lấy 58
Ràng buộc về tác vụ n n n Là các quy tắc dùng để ràng bụôc những tác vụ nghiệp vụ đang xảy ra Trước đây các ràng buộc tác vụ được thực hiện trong các thủ tục nằm sâu trong chương trình ứng dụng khó sửa đổi Phương pháp mới: dùng khai báo (declarative approach) để xác định các quy tắc nghiệp vụ. 59
Ràng buộc về tác vụ n n Mỗi quy tắc được phát biểu như 1 sự khẳng định (assertion) mà không xác định xem quy lụât đó thực thi như thế nào. Tất cả các quy tắc sẽ được lưu trữ trong một cơ sở ràng buộc ( constraint base). Khi DBMS xử lý 1 transaction, nó truy xuất đến các quy tắc thích hợp trong cơ sở ràng buộc này để áp dụng cho transaction. 60
Ngôn ngữ để xác định ràng buộc n Mỗi quy tắc sẽ được xác định bằng cú pháp của 1 ngôn ngữ đặc biệt có 2 tính chất sau: q q Phải khá đơn giản để người dùng (end user) không chỉ hiểu được mà còn có thể tự mình tạo ra các quy tắc từ ngôn ngữ này Ngôn ngữ phải có cấu trúc thích đáng để có thể chuyển đổi tự động thành mã máy 61
Các đối tượng bị ràng buộc và đối tượng ràng buộc n n Đối tượng bị ràng buộc ( constrained object): là 1 thực thể, thuộc tính hay mối quan hệ mà các thao tác ( như tạo, xóa, cập nhật, đọc, . . ) trên đối tượng đó bị giới hạn Đối tượng ràng buộc ( constraining object): là 1 thực thể, thuộc tính, hay mối quan hệ mà tác động đến khả năng thực thi tác vụ của 1 đối tượng khác 62
Các đối tượng bị ràng buộc và đối tượng ràng buộc Ví dụ: Xét quy tắc nghiệp vụ sau: “ A person can rent a car only if he or she possesses a valid driver’s license” 3 thực thể: PERSON, CAR, DRIVER’S LICENSE 2 mối kết nối: Rents (1 -M optional), Possesses (1 -1 optional) n 63
Lược đồ ER đơn giản DRIVER’S LICENSE CAR Rents PERSON Possesses Chỉ ra cấu trúc của ngữ cảnh nhưng không chỉ ra được các ràng buộc giữa các đối tượng Đối tượng nào là đối tượng bị ràng buộc? ? Rents Đối tượng nào là đối tượng ràng buộc? ? Possesses 64
Lược đồ ER có ràng buộc DRIVER’S LICENSE CAR R Rents PERSON Possesses 65
Biểu diễn quy tắc nghiệp vụ Cú pháp: (constrained object) (condition) (constraining object(s)) Hoặc n Theo ký hiệu của Ross (kí hiệu R: restrictedgiới hạn) n 66
Ví dụ 2 n Bài toán lập lịch lớp học (class scheduling): quy tắc nghiệp vụ như sau: q For a faculty member to be assigned to teach a section of a course, the faculty member must be qualified to teach the course for which that section is scheduled 3 entities: FACULTY, COURSE, SECTION 1 Constrained entity: Is_assigned 2 Constraining entities: Is_qualified(đủ đk) , Is_Scheduled 67
Ví dụ 2 FACULTY (Khoa) STUDENT Is_assigned Is_registered R SECTION (Môn học) Is_qualified COURSE (khóa học) Is_scheduled 68
Ví dụ 2 Quy tắc 2: For a faculty member to be assigned to teach a section of a course, the faculty member must not be assigned to teach a total of more than three course sections Constrained entity: Is_assigned Constraining entity: Is_assigned n 69
Ví dụ 2 Is_qualified FACULTY U 3 STUDENT Is_assigned Is_registered LIM SECTION COURSE Is_scheduled 70
Homework n n Xem ứng dụng mẫu trang 67 của giáo trình LÀm tất cả bài tập chương 3 giáo trình Hệ cơ sở dữ liệu 71


