Transcript Chương 4

Bai giang BM HTTT - Khoa CNTT HUI
1
•
•
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
2
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".

Bai giang BM HTTT - Khoa CNTT - HUI
3


UML đượ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 - HUI
4


Tươ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 - HUI
5

No 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 - HUI
6

Ví dụ của 1 lược đố class UML
Bai giang BM HTTT - Khoa CNTT - HUI
7


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
8


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 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 - HUI
9



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ó 1 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


Khô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 - HUI
11

UML 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 - HUI
12

Lượ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 - HUI
13
•
•
ORM chia object thành 2 loại: entities (nonlexical 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 - 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 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
15
Bai giang BM HTTT - Khoa CNTT - HUI
16
•
•
•
Trong 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 - HUI
17
•
Attribute multiplicity constraint
– Trong 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 - HUI
18

UML 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 - HUI
19



Loạ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 - HUI
20



Có 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 - HUI
21


Thuộ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 - HUI
22


Class Flag dùng để lưu
trữ nickname và màu cờ
của các quốc gia
Các ràng buộc:
◦ Mỗi flag có nhiều nhất 2
nickname
◦ Mỗ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 HUI
23

Khô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 - HUI
24


Thuộc tính Nickname: miền giá trị là một loại
dữ liệu nào đó, có thể là string
Thuộ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
25
Bai giang BM HTTT - Khoa CNTT - HUI
26

UML 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 - HUI
27


Nế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 - HUI
28


Khả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 - HUI
29


Khi 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 - HUI
30

Thuộ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 - HUI
31


UML 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 - HUI
32


Trong 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
33
Bai giang BM HTTT - Khoa CNTT - HUI
34
Bai giang BM HTTT - Khoa CNTT - HUI
35
Bai giang BM HTTT - Khoa CNTT - HUI
36

Association 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 - HUI
37

Thườ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 - HUI
38

Tương tự như các ràng buộc trong thuộc tính
Bai giang BM HTTT - Khoa CNTT - HUI
39

Trong lược đồ UML, cả hai cặp RoomHourSlot và HourSlot-Activity đều là duy
nhất. Trong ORM là các UC tương ứng.
Bai giang BM HTTT - Khoa CNTT - HUI
40


Cá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 - HUI
41


Vì 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 - HUI
42


Nguyê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 - HUI
43

In 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
44
Bai giang BM HTTT - Khoa CNTT - HUI
45

Cả 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 - HUI
46


Trong 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 - HUI
47

Rà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 - HUI
48

Ràng buộc subset “any person who chairs a
committee must be a member of that
committee”
Bai giang BM HTTT - Khoa CNTT - HUI
49



Trong 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
equality
UML 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 - HUI
50

Nế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 - HUI
51


Trong 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 - HUI
52

Mỗ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 - HUI
53




Cả 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 - HUI
54


Trong 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 - HUI
55

Trong 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 - HUI
56



Trong 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 - HUI
57


Subtypes đượ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 - HUI
58


Cả 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
59
Bai giang BM HTTT - Khoa CNTT - HUI
60

Nế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 - HUI
61

UML 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 - HUI
62


Mặ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òn
◦ Cả hai ràng buộc: một chấm đánh chéo và được
khoanh tròn.
Bai giang BM HTTT - Khoa CNTT - HUI
63


Trong 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 - HUI
64



Discriminator đượ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 - HUI
65

Gender được dùng như discriminator để phân
loại patient
Bai giang BM HTTT - Khoa CNTT - HUI
66

Việ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 - HUI
67


Dù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
68
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: 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
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 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 - 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ệ 1 ngôi 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: 1 (e.g. Employee has
Ph0neNrl; Employee has Ph0neNr2,
etc.).
Bai giang BM HTTT - Khoa CNTT - HUI
77


Nế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
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 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
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