Kỹ thuật lập trình - Chương 4: ORM và UML

Gần đây, UML được xem như 1 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".

 

ppt83 trang | Chia sẻ: Mr Hưng | Lượt xem: 1061 | Lượt tải: 0download
Bạn đang xem trước 20 trang nội dung tài liệu Kỹ thuật lập trình - Chương 4: ORM và UML, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
*Bai giang BM HTTT - Khoa CNTT - HUICá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ềuHình ảnh "Yama" (Yet Another Modeling Approach) theo nghĩa tiếng Nhật là "Mountain". *Bai giang BM HTTT - Khoa CNTT - HUIGần đây, UML được xem như 1 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 - HUIUML được ứng dụng chủ yếu trong thiết kế mã chương trình hướng đối tượng.Hiện nay UML cũng được dùng trong thiết kế database nhưng chưa thay thế được phương pháp ER. Tuy nhiên trong tương lai khi phát triển HT theo hướng đối tượng thì UML là 1 ngôn ngữ quan trọng để thiết kế database.*Bai giang BM HTTT - Khoa CNTT - HUITương tự ER, UML sử dụng attributes, tuy số lượng attribute có thể quá lớn nhưng 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 khi 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 do an ORM model and then map it to UML”. *Bai giang BM HTTT - Khoa CNTT - HUINo language is perfect, ORM cũng không ngoại lệ.UML cung cấp 1 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 - HUIVí dụ của 1 lược đố class UML*Bai giang BM HTTT - Khoa CNTT - HUILượ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 - HUIRole "driver" phía bên trái mối kết hợp làm rõ ngữ nghĩaMũ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 1 đ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ỉ ra ý niệm của mô hình nghiệp vụ. *Bai giang BM HTTT - Khoa CNTT - HUIBằ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ó 1 sự khác biệt đáng kế nếu xét theo hướng OOKhác biệt gì??*Bai giang BM HTTT - Khoa CNTT - HUIKhông có sơ đồ xác định (identification schemas) trong class. Với lập trình OO, các đối tượng có thể được nhận biết thông qua địa chỉ bộ nhớ, vì vậy UML không cần đến sơ đồ này. Nhưng nếu dùng để phân tích ý niệm thì cần phải có sơ đồ tham chiếu hướng người dùng. *Bai giang BM HTTT - Khoa CNTT - HUIUML cho phép thêm 1 số thuộc tính với các ký hiệu không theo tiêu chuẩn để khai báo cách nhận biết và ràng buộc của class“{P}” để chỉ tham chiếu hay dùng (preferred reference ) "{ Un }" để chỉ tính duy nhất (n > 0), với n là số trường hợp có cùng nghĩa khi cùng ràng buộc U được áp dụng cho 1 tổ hợp các thuộc tính.*Bai giang BM HTTT - Khoa CNTT - HUILược đồ class với các ký hiệu không theo tiêu chuẩn để chỉ khóa Primary key và ràng buộc duy nhất*Bai giang BM HTTT - Khoa CNTT - HUIORM chia object thành 2 loại: entities (non-lexical objects) và values (lexical objects) và bắt buộc mỗi entity phải được xác định bởi một sơ đồ tham chiếu (reference scheme ). ORM sử dụng "object", "entity", và "value" để chỉ "object instance", "entity instance“và "value instance“. Các entities có thể được tham chiếu theo nhiều cách, và có thể thay đổi trạng thái (state) theo thời gian*Bai giang BM HTTT - Khoa CNTT - HUIUML 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 là hằng số. Các loại entity trong UML được gọi là classes và các loại value thì được gọi là data types. "object" có nghĩa là 1 "object instance", chứ không phải là "object type".Mối điển hình quan hệ (relationship instance) trong UML được gọi là 1 link, và loại quan hệ được gọi là một association. *Bai giang BM HTTT - Khoa CNTT - HUI*Bai giang BM HTTT - Khoa CNTT - HUITrong UML, mặc định các thuộc tính (attribute) là bắt buộc (mandatory) và có giá trị đơn. Trong ORM, predicate 1 ngôi "smokes" là tùy chọn (optional). UML không hỗ trợ quan hệ 1 ngôi, mà chỉ dùng thuộc tính Boolean "isSmoker“. Trong UML, domain của mỗi thuộc tính có thể được hiển thị ngay sau tên thuộc tính, ngăn cách bởi dấu : .*Bai giang BM HTTT - Khoa CNTT - HUIAttribute multiplicity constraintTrong mô hình ORM, birth country, social security number, hay passport number đều là tùy chọn. Trong UML tùy chọn này được thể hiện thông qua việc thêm multiplicity [0..1] vào mỗi thuộc tính tương ứng. Uniqueness constraints (UC):Trong ORM, các UC dùng để chỉ mỗi employee number, social security number, và passport number chỉ tham chiếu duy nhất đến 1 employee mà thôi. UML không có ký hiệu chuẩn để chỉ "attribute uniqueness constraints", vì vậy nó được bổ sung bởi ký hiệu do ta tự quy định lấy, chẳng hạn {P} và {Un } *Bai giang BM HTTT - Khoa CNTT - HUIUML cũng không có ký hiệu để chỉ ràng buộc loại trừ (inclusive-or constraint), ràng buộc này có thể diễn tả bằng note đính kèm, hay đặt ràng buộc vào {}.*Bai giang BM HTTT - Khoa CNTT - HUILoại quan hệ ORM Employee was born in Country được mô hình như thuộc tính birthcountry trong lược đồ class UML. Nếu sau này khi cần lưu trữ lại phân bố của country thì cần phải đư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 2 class Employee và Country. ORM tránh được sự bất ổn ngữ nghĩa này vì nó luôn sử dụng quan hệ thay vì dùng thuộc tính. *Bai giang BM HTTT - Khoa CNTT - HUICó giải thuật để 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 nhau 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 độ quan trọng này có thể thay đổi theo thời gian khi ta khám phá được nhiều hơn mô hình tổng thể và bản thân nghiệp vụ cũng bị thay đổi theo thời gian. *Bai giang BM HTTT - Khoa CNTT - HUIThuộc tính đa trị “sports“ trong UML được chỉ ra bằng ràng buộc "[0..*]" (một người có thể chơi nhiều môn thể thao khác nhau hoặc không chơi môn nào) Trong sơ đồ ORM tương đương, loại quan hệ many:many được dùng thay cho thuộc tính đa trị sports.*Bai giang BM HTTT - Khoa CNTT - HUIClass Flag dùng để lưu trữ nickname và màu cờ của các quốc giaCác ràng buộc:Mỗi flag có nhiều nhất 2 nicknameMỗi Flag có ít nhất 1 màu Một UC phụ khác cũng cần xác định là mỗi nickname tham chiếu nhiều nhất đến một flag. *Bai giang BM HTTT - Khoa CNTT - HUIKhông chỉ mỗi nicknames phải là duy nhất đối với mỗi flag mà mỗi phần tử trong mỗi tập hợp cũng phải duy nhất. Mối ràng buộc phức này được xác định trong UML dưới dạng 1 note đính kèm (attached note)*Bai giang BM HTTT - Khoa CNTT - HUIThuộc tính Nickname: miền giá trị là một loại dữ liệu nào đó, có thể là stringThuộc tính countries hay colors:Nếu không cần lưu trữ thêm thông tin , có thể chọn string như miền giá trị (domain) Nếu muốn có thêm thông tin để dùng sau này, tốt hơn là nên dùng class Country và Color để xác định domain cho nó. *Bai giang BM HTTT - Khoa CNTT - HUI*Bai giang BM HTTT - Khoa CNTT - HUIUML cho phép ta mô hình 1 tính chất nào đó như một attribute hay một association. Để phân tích ý niệm thì dùng association thường có nhiều thuận lợi hơn so với attributes, đặc biệt là với thuộc tính đa trị. Dễ mô hình hóa và tạo phân bổ cho association hơn.Cho phép diễn tả các ràng buộc có dạng "role played by the attribute" ở dạng chuẩn hơn là phải dùng các mở rộng không đúng tiêu chuẩn. *Bai giang BM HTTT - Khoa CNTT - HUINếu dùng association Flag is of Country thì ràng buộc each country has at most one flag có thể đưa vào thông qua ràng buộc "0..1" đặt bên trái mối kết hợp này. Dùng associations thì ổn định hơn attributes. Thay vì mô hình 1 tính chất thành 1 attribute, đầu tiên thay thế attribute này thành 1 association. Sau đó dù là UML hay ORM đều đễ dàng tạo ra đối tượng từ một association và đính kèm vào nó 1 số chi tiết mới. *Bai giang BM HTTT - Khoa CNTT - HUIKhảo sát association Employee plays Sport. Nếu cần lưu trữ lại skill level cho một lần chơi nào đó play, ta có thể đối tượng hóa association này thành Play, và đưa thêm vào 1 loại quan hệ: Play has SkillLevel. Trong mô hình UML việc này được thực hiện dễ dàng nếu play được mô hình như 1 association. Trong ví dụ thì play được mô hình như attribute sports , thì cần thay thế thành 1 association tương đương trước khi thêm chi tiết mới skill level vào. *Bai giang BM HTTT - Khoa CNTT - HUIKhi truy vấn đến các thuộc tính đa trị thì sẽ phức tạp hơn thuộc tính đơn trị. Ví dụ: so sánh các truy vấn Q1, *Bai giang BM HTTT - Khoa CNTT - HUIThuộc tính đa trị (multivalued attribute) nên tránh dùng trong mô hình phân tích. Tuy nhiên vẫn có thể sử dụng thuộc tính đa trị trong thực thi sau này. *Bai giang BM HTTT - Khoa CNTT - HUIUML dùng thuộc tính Boolean để chỉ mối quan hệ 1 chiều (unary relationship).Với các quan hệ 2 chiều trở lên (association):Thường được đặt tên bắt đầu bằng 1 ký tự chữ hoa. Các associations 2 chiều được ký hiệu là đường thẳng nối giữa 2 class.Association role được ký hiệu như đầu cuối của đường thẳng (line end) thay vì là các box. *Bai giang BM HTTT - Khoa CNTT - HUITrong UML, tên association là tùy chọn nhưng tên role là bắt buộc. Nếu không đặt tên role thì tên lớp cũng được xem là tên role. Nếu có 2 hay nhiều role cho cùng 1 class thì các role phải có các tên khác nhau để phân biệt.Trong ORM, các predicate thuận và ngược cần được chỉ rõ, hoặc chỉ cần chỉ rõ 1 trong 2 loại. Tên role là tùy chọn và được đặt trong ngoặc vuông. *Bai giang BM HTTT - Khoa CNTT - HUI*Bai giang BM HTTT - Khoa CNTT - HUI*Bai giang BM HTTT - Khoa CNTT - HUI*Bai giang BM HTTT - Khoa CNTT - HUIAssociation từ 3 ngôi trở lên được ký hiệu như 1 diamond và nối đến các class bằng các đường thẳng. *Bai giang BM HTTT - Khoa CNTT - HUIThường không có ký hiệu chỉ hươńg đọc (reading direction indicator), nên các lược đồ class của UML không được dùng để giao tiếp trong dạng câu nói thông thường. Lược đồ class cũng không thuận tiện trong việc tạo phân bố cho các association nếu không đặt tên role cho các cột tương ứng trong bảng phân bố. *Bai giang BM HTTT - Khoa CNTT - HUITương tự như các ràng buộc trong thuộc tính*Bai giang BM HTTT - Khoa CNTT - HUITrong lược đồ UML, cả hai cặp Room-HourSlot và HourSlot-Activity đều là duy nhất. Trong ORM là các UC tương ứng. *Bai giang BM HTTT - Khoa CNTT - HUICác ký hiệu ràng buộc multiplicity của UML thì phong phú hơn của ER. Tuy nhiên có nhiều trường hợp ký hiệu multiplicity của UML không thể diễn đạt được ràng buộc của role bắt buộc hay ràng buộc thường xuyên tối thiểu lớn hơn 1 (minimum frequency constraint above 1). Các ký hiệu ràng buộc của ORM có thể diễn đạt được bất kỳ ràng buộc nào trên các role hay các predicate nhiều ngôi. Vì vậy ORM phong phú hơn trong việc diễn đạt ràng buộc. *Bai giang BM HTTT - Khoa CNTT - HUIVì UML cố đưa cả hai loại ràng buộc bắt buộc và duy nhất vào cùng 1 ký hiệu nên không thể diễn đạt được cho từng hoạt động book phòng  buộc phải đưa thêm 1 note vào lược đồ. Lược đồ ORM tương ứng có thể diễn đạt được ràng buộc role bắt buộc một cách dễ dàng. *Bai giang BM HTTT - Khoa CNTT - HUINguyên nhân của việc khó diễn đạt ràng buộc trong UML là do đính kèm ràng buộc multiplicity tối thiểu vào role mà không qua 1 role trung gian.Với cùng lý do này, UML không thể diễn đạt được các ràng buộc thường xuyên (frequency constraints )khác của ORM. *Bai giang BM HTTT - Khoa CNTT - HUIIn general, given any n-ary (n > 2) association, if an ORM mandatory or frequency constraint applies to at least 1 and at most n - 2 roles, this cannot be captured by a UML multiplicity constraint. *Bai giang BM HTTT - Khoa CNTT - HUI*Bai giang BM HTTT - Khoa CNTT - HUICả UML và ORM đều cho phép đối tượng hóa các mối kết hợp (association) thành các loại đối tượng.Trong UML: tạo thành các association class nhưng cần phải giữ nguyên tên trong association gốc lúc đầu và association class tương ứng Trong ORM: tạo thành các objectified association hay các loại nested object, không bắt buộc mối kết hợp và đối tượng lồng nhau phải cùng tên (1 cụm động từ được đối tượng hóa thành cụm danh từ, nên cả hai đều có thể phát biểu thành câu có đủ ngữ nghĩa thông thường)*Bai giang BM HTTT - Khoa CNTT - HUITrong UML, thuộc tính period chỉ ra một person mất bao nhiêu lâu để viết 1 paper. Trong ORM, Writing được đánh dấu độc lập bởi ký hiệu "!“ để chỉ ra đối tượng writing có thể tồn tại một cách độc lập không cần quan tâm đến việc có lưu trữ lại period hay không. ORM hiển thị Period như 1 loại đối tượng, không phải là thuộc tính. *Bai giang BM HTTT - Khoa CNTT - HUIRàng buộc Set-comparison bao gồm:Ràng buộc tập con (subset)Ràng buộc ngang bằng (equality)Ràng buộc quan hệ loại trừ (exclusion relationship) giữa các phân bố của các role khác nhau. UML cho phép tạo các ràng buộc subset giữa các mối kết hợp bằng cách đính kèm nhãn ràng buộc "{ subset }" kế bên mũi tên đứt nét nối giữa các mối kết hợp (association)*Bai giang BM HTTT - Khoa CNTT - HUIRàng buộc subset “any person who chairs a committee must be a member of that committee”*Bai giang BM HTTT - Khoa CNTT - HUITrong ORM, ràng buộc equality giữa hai quan hệ có thể tích hợp (compatible), là cách viết tắt của 2 ràng buộc subset theo 2 chiều ngược nhau, được ký hiệu "=“ khoanh tròn. Phân bổ ứng với mỗi ràng buộc subset phải bằng nhau.Nếu 2 role của cùng 1 object đều bắt buộc thì giữa chúng sẽ ngầm định có 1 ràng buộc equalityUML không có ký hiệu dành cho ràng buộc equality, có thể dùng note để chú thích ràng buộc loại này. *Bai giang BM HTTT - Khoa CNTT - HUINếu đo đuợc áp lực máu về tim (systolic) thì cũng sẽ đo được áp lực máu đi từ tim ra (diastolic) và ngược lại. *Bai giang BM HTTT - Khoa CNTT - HUITrong UML, có 1 ký hiệu để chỉ ràng buộc exclusive-or: mỗi điển hình (instance) của 1 class phải có chính xác 1 role trong số 1 tập các role khác nhau (set of alternatives). Ký hiệu "{xor}" đặt bên cạnh đường đứt nét nối các association với nhau. Trong ORM, ký hiệu tương ứng sẽ là 1 tổ hợp vuông góc của ràng buộc inclusive-or (chấm được khoanh tròn) và ràng buộc exclusion (X được khoanh tròn)*Bai giang BM HTTT - Khoa CNTT - HUIMỗi account được dùng bởi 1 person hay 1 corporation nhưng không thể cùng lúc cho cả hai. *Bai giang BM HTTT - Khoa CNTT - HUICả hai UML và ORM đều hỗ trợ kiểu con (subtyping), mỗi điển hình kiểu con cũng là 1 điển hình của siêu kiểu (supertype). Cho 2 loại đối tượng A và B, A là subtype của B nếu với mỗi trạng thái của database, phân bố của A được bao gồm trong phân bố của B.A là proper subtype của B nếu và chỉ nếu A là subtype của B và có thể tồn tại 1 trạng thái sao cho phân bố của B chứa 1 điển hình không có trong A. Viết tắt "subtype" thay cho "proper subtype". *Bai giang BM HTTT - Khoa CNTT - HUITrong cả UML và ORM, chuyên biệt hóa (specialization) là quá trình giới thiệu các subtypes, và tổng quát hóa (generalization) là quá trình ngược lại để giới thiệu một supertype. Cả UML và ORM đều cho phép sử dụng kế thừa đơn (single inheritance) cũng như đa kế thừa (multiple inheritance) (một subtype có nhiều hơn 1 supertype). Ví dụ đa kế thừa: AsianWoman có thể là subtype của cả AsianPerson và Woman.*Bai giang BM HTTT - Khoa CNTT - HUITrong UML, "subclass" và "superclass" đồng nghĩa với "subtype" và "supertype", tổng quát hóa không chỉ áp dụng cho class mà cho cả interfaces, use case actors, và packages*Bai giang BM HTTT - Khoa CNTT - HUITrong ORM, subtype kế thừa tất cả role của supertype của nó. Trong UML, subclass kế thừa tất attributes, associations, và operations/methods của supertype của nó. Để mô hình hóa dữ liệu, chỉ tập trung vào kế thừa các thuộc tính tĩnh không xét đến tính kế thừa của operations hay methods. *Bai giang BM HTTT - Khoa CNTT - HUISubtypes được dùng trong mô hình hóa dữ liệu để đánh giá các ràng buộc về kiểu, hỗ trợ việc sử dụng lại các thành phần của mô hình và chỉ ra sơ đồ phân loại. Ràng buộc kiểu (typing constraint) bảo đảm là các role xác định subtype chỉ được dùng trong các subtype phù hợp.*Bai giang BM HTTT - Khoa CNTT - HUICả UML và ORM hiển thị subtye dưới dạng cây (acyclic graphs).Mũi tên đi từ node subtype đến supertype. *Bai giang BM HTTT - Khoa CNTT - HUI*Bai giang BM HTTT - Khoa CNTT - HUINếu dùng đường thẳng với mũi tên riêng biệt để kết nối các subtype thì ràng buộc sẽ được đặt trong {} kế bên đường đứt nét nối đến link của subtype. *Bai giang BM HTTT - Khoa CNTT - HUIUML có 4 ràng buộc định sẵn dành cho subtype{overlapping} và {disjoint} để chỉ các subtype có thể trùng lắp (overlap) hay loại trừ lẫn nhau (mutually exclusive){complete} có nghĩa là exhaustive (i.e., supertype bằng với hợp của tất cả subtype của nó, hay tất cả subtype đều được chỉ ra . {incomplete } có nghĩa là supertype có nhiều hơn là hợp các subtype của nóMặc định là {disjoint, incomplete}*Bai giang BM HTTT - Khoa CNTT - HUIMặc định các subtypes của ORM có thể overlap và không cần phải xác định triệt để các supertype của 1 subtype. Một số ký hiệu ràng buộc của ORM:Mutually exclusive: "X" được khoanh tròn nối đến link của subtype Complete (collectively exhaustive): dấu chấm khoanh trònCả hai ràng buộc: một chấm đánh chéo và được khoanh tròn. *Bai giang BM HTTT - Khoa CNTT - HUITrong ORM, các ràng buộc loại trừ hay toàn bộ sẽ được thể hiện trong bảng phân bố hơn là trong các loại (type)Một ràng buộc overlap không có nghĩa là bảng phân bố phải overlap, mà chỉ là chúng có thể overlap. Vì vậy nó không thực sự là 1 ràng buộc và không cần mô tả chúng. *Bai giang BM HTTT - Khoa CNTT - HUIDiscriminator được đặt kế bên mũi tên của subtype để chỉ ra 1 sự phân loại cho các subtype. Ví dụ: discriminator "gender" dùng để phân loại Person thành MalePerson và FemalePerson. Discriminator không có nghĩa là subtypes phải thuộc ràng buộc complete*Bai giang BM HTTT - Khoa CNTT - HUIGender được dùng như discriminator để phân loại patient*Bai giang BM HTTT - Khoa CNTT - HUIViệc phân loại phải được thực thi cả trên subtype và loại quan hệ dùng để phân loại. Cả hai phải đồng bộ với nhau.Hoặc subtype được suy dẫn từ 1 định nghĩa subtype chính thức Hoặc loại quan hệ dùng để phân loại phải được suy dẫn từ các subtype xác định nào đó. *Bai giang BM HTTT - Khoa CNTT - HUIDùng theo cách 1 (suy dẫn các subtype)Ràng buộc phân loại được ngầm định bởi tổ hợp của định nghĩa subtype cùng với 3 ràng buộc khác trên loại quan hệ Patient is of Gender. *Bai giang BM HTTT - Khoa CNTT - HUI*Bai giang BM HTTT - Khoa CNTT - HUI 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 - HUITa nên quyết định xem loại object nào nên mô hình thành class và association n: 1 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 năng thì sẽ trở thành class. Quan hệ chức năng nhị phân (n:l and 1:1) từ 1 loại entity A đến 1 loại giá trị B, hay đến 1 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 1 thuộc tính của A là đủ. *Bai giang BM HTTT - Khoa CNTT - HUI*Bai giang BM HTTT - Khoa CNTT - HUITrường hợp đặc biệt: nếu loại giá trị là độc lập, và đóng 1 vai trò bắt buộc tường minh, hay giữ 1 vai trò chức năng nào đó trong loại quan hệ 1 :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 - HUIHì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Ánh xạ các quan hệ 1 ngôi thành thuộc tính Boolean hay các subclass.*Bai giang BM HTTT - Khoa CNTT - HUICác loại quan hệ còn lại được ánh xạ thành associations. *Bai giang BM HTTT - Khoa CNTT - HUINế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: 1 (e.g. Employee has Ph0neNrl; Employee has Ph0neNr2, etc.). *Bai giang BM HTTT - Khoa CNTT - HUINếu mỗi loại object trong loại quan hệ n chiều được ánh xạ thành 1 class, khi đó 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 trong loại quan hệ tam ngôi không được ánh xạ thành class thì đối tượng hóa phần còn lại của association như một association class và ánh xạ role của nó như 1 thuộc tính (vd2)*Bai giang BM HTTT - Khoa CNTT - HUI*Bai giang BM HTTT - Khoa CNTT - HUI*Bai giang BM HTTT - Khoa CNTT - HUIRàng buộc đơn giản nhất thường được ánh xạ thành các ràng buộc multiplicityCác ràng buộc phức tạp hơn không có ký hiệu tương ứng trong UML, vì vậy cần ghi nhận lại chúng trong dạng note. *Bai giang BM HTTT - Khoa CNTT - HUI*Bai giang BM HTTT - Khoa CNTT - HUICá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

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

  • pptchuong_4_lien_he_giua_uml_va_orm_9679.ppt