Bai giang BM HTTT - Khoa CNTT HUI • Các phương pháp ngữ nghĩa để mô hình hóa hệ thống thông tin xuất hiện ngày càng nhiều • Hình ảnh "Yama" (Yet Another Modeling Approach) theo nghĩa tiếng Nhật là "Mountain" Bai giang BM HTTT - Khoa CNTT - HUI Gần đây, UML được xem phương pháp thích hợp để mô hình hóa CTUD Đã có đề xuất "the modeling wars are over UML has won" Bai giang BM HTTT - Khoa CNTT - HUI UML được ứng dụng chủ yếu thiết kế mã chương trình hướng đối tượng Hiện UML cũng được dùng thiết kế database chưa thay thế được phương pháp ER Tuy nhiên tương lai phát triển HT theo hướng đối tượng thì UML là ngôn ngữ quan trọng để thiết kế database Bai giang BM HTTT - Khoa CNTT - HUI Tương tự ER, UML sử dụng attributes, số lượng attribute có thể quá lớn dùng attribute thì dễ mô hình được mối quan hệ giữa các thực thể, ít bị ảnh hưởng thực thể thay đổi Cách tốt nhất để phát triển mô hình dữ liệu bằng UML là “first an ORM model and then map it to UML” Bai giang BM HTTT - Khoa CNTT - HUI No language is perfect, ORM cũng không ngoại lệ ◦ UML cung cấp loạt các ký hiệu để mô hình hóa cả dữ liệu và qui trình (process) ◦ ORM hiện chỉ tập trung vào việc mô hình hóa dữ liệu Bai giang BM HTTT - Khoa CNTT - HUI Ví dụ của lược đố class UML Bai giang BM HTTT - Khoa CNTT - HUI Lược đồ class mô tả các lớp Employee và Car và mối kết hợp giữa chúng Tương ứng với quan hệ ORM Employee drives Car Bai giang BM HTTT - Khoa CNTT - HUI Role "driver" phía bên trái mối kết hợp làm rõ ngữ nghĩa Mũi tên ở bên phải mối kết hợp để chỉ rằng một điển hình của employee có thể truy xuất đến điển hình car của nó Mối kết hợp này chỉ liên quan đến việc thực thi và không chỉ ý niệm của mô hình nghiệp vụ Bai giang BM HTTT - Khoa CNTT - HUI Bằng cách bỏ qua chi tiết, lược đồ class có thể được dùng để phân tích ý niệm Khi dùng theo cách này thì lược đồ class rất giống với mô hình ER Nhưng có sự khác biệt đáng kế nếu xét theo hướng OO Khác biệt gì?? Bai giang BM HTTT - Khoa CNTT - HUI 10 Bai giang BM HTTT - Khoa CNTT - HUI 69 Bước 1: tạo quan hệ nhị phân cho bất kỳ tập các cặp loại trừ nào (sets of exclusive binaries) Bai giang BM HTTT - Khoa CNTT - HUI 70 Ta nên quyết định xem loại object nào nên mô hình thành class và association n: và 1:1 nào của ORM nên chuyển thành attributes Thường các loại entity có đóng vai trò là quan hệ chức thì sẽ trở thành class Quan hệ chức nhị phân (n:l and 1:1) từ loại entity A đến loại giá trị B, hay đến loại thực thể B mà với loại thực thể này ta không muốn phải lưu trữ chi tiết thì nên ánh xạ thành thuộc tính của A là đủ Bai giang BM HTTT - Khoa CNTT - HUI 71 Bai giang BM HTTT - Khoa CNTT - HUI 72 Trường hợp đặc biệt: nếu loại giá trị là độc lập, và đóng vai trò bắt buộc tường minh, hay giữ vai trò chức nào đó loại quan hệ :n được ánh xạ thành class Ví dụ: biến loại giá trị PersonTitle thành class Title Bai giang BM HTTT - Khoa CNTT - HUI 73 Hình a xét đến ràng buộc title-gender (e.g title 'Mr' bị giới hạn thành male) Hình b sử dụng thuộc tính đa trị để lưu trữ tất cả gender có thể áp dụng vào title (e.g., title 'Dr.' áp dụng cho cả male và female) Bai giang BM HTTT - Khoa CNTT - HUI 74 Ánh xạ các quan hệ thành thuộc tính Boolean hay các subclass Bai giang BM HTTT - Khoa CNTT - HUI 75 Các loại quan hệ còn lại được ánh xạ thành associations Bai giang BM HTTT - Khoa CNTT - HUI 76 Nếu mối kết hợp m:n có liên quan đến loại giá trị (e.g., Employee has PhoneNr) thay vì dùng thuộc tính đa trị, có thể biến đổi mối kết hợp m:n thành nhiều mối kết hợp n: (e.g Employee has Ph0neNrl; Employee has Ph0neNr2, etc.) Bai giang BM HTTT - Khoa CNTT - HUI 77 Nếu mỗi loại object loại quan hệ n chiều được ánh xạ thành class, đó loại quan hệ n chiều sẽ được ánh xạ thành mối kết hợp n chiều (vd1) Nếu một object loại quan hệ tam không được ánh xạ thành class thì đối tượng hóa phần còn lại của association một association class và ánh xạ role của nó thuộc tính (vd2) Bai giang BM HTTT - Khoa CNTT - HUI 78 Bai giang BM HTTT - Khoa CNTT - HUI 79 Bai giang BM HTTT - Khoa CNTT - HUI 80 Ràng buộc đơn giản nhất thường được ánh xạ thành các ràng buộc multiplicity Các ràng buộc phức tạp không có ký hiệu tương ứng UML, vì vậy cần ghi nhận lại chúng dạng note Bai giang BM HTTT - Khoa CNTT - HUI 81 Bai giang BM HTTT - Khoa CNTT - HUI 82 Các subtype được ánh xạ thành subclass, sau đó bổ sung các ràng buộc thích hợp Bai giang BM HTTT - Khoa CNTT - HUI 83 ... CNTT - HUI 14 • • • • • UML chia các instances thành objects và data values Các UML objects tương ứng với các ORM entities Các UML data values tương ứng với các ORM values, chúng đều... để phát triển lược đồ UML và ER từ lược đồ ORM Các giải thuật này gán các mức độ quan trọng khác vào các loại đối tượng tùy thuộc vào role và các ràng buộc Mức... đưa vào lớp Country và để làm rõ kết nối giữa birthcountry và Country có thể cần phải biến đổi thuộc tính birthcountry thành mối kết hợp giữa class Employee và Country ORM