83
1 Bai giang BM HTTT - Khoa CNTT - HUI

Chuong 4 lien_he_giua_uml_va_orm

  • Upload
    thai

  • View
    23

  • Download
    3

Embed Size (px)

Citation preview

Page 1: Chuong 4 lien_he_giua_uml_va_orm

1Bai giang BM HTTT - Khoa CNTT -

HUI

Page 2: Chuong 4 lien_he_giua_uml_va_orm

• Cac phương phap ngư nghia đê mô hinh hoa hê thông thông tin xuât hiên ngay cang nhiêu

• Hinh anh "Yama" (Yet Another Modeling Approach) theo nghia tiêng Nhât la "Mountain".

2Bai giang BM HTTT - Khoa CNTT - HUI

Page 3: Chuong 4 lien_he_giua_uml_va_orm

Gân đây, UML đươc xem như 1 phương phap thich hơp đê mô hinh hoa CTUD.

Đa co đê xuât "the modeling wars are over--UML has won".

3Bai giang BM HTTT - Khoa CNTT - HUI

Page 4: Chuong 4 lien_he_giua_uml_va_orm

UML đươc ưng dung chu yêu trong thiêt kê ma chương trinh hương đôi tương.

Hiên nay UML cung đươc dung trong thiêt kê database nhưng chưa thay thê đươc phương phap ER. Tuy nhiên trong tương lai khi phat triên HT theo hương đôi tương thi UML la 1 ngôn ngư quan trong đê thiêt kê database.

4Bai giang BM HTTT - Khoa CNTT - HUI

Page 5: Chuong 4 lien_he_giua_uml_va_orm

Tương tư ER, UML sư dung attributes, tuy sô lương attribute co thê qua lơn nhưng dung attribute thi dê mô hinh đươc môi quan hê giưa cac thưc thê, it bi anh hương khi thưc thê thay đôi.

Cach tôt nhât đê phat triên mô hinh dư liêu băng UML la “first do an ORM model and then map it to UML”.

5Bai giang BM HTTT - Khoa CNTT - HUI

Page 6: Chuong 4 lien_he_giua_uml_va_orm

No language is perfect, ORM cung không ngoai lê.◦ UML cung câp 1 loat cac ky hiêu đê mô hinh hoa

ca dư liêu va qui trinh (process)◦ ORM hiên chi tâp trung vao viêc mô hinh hoa dư

liêu.

6Bai giang BM HTTT - Khoa CNTT - HUI

Page 7: Chuong 4 lien_he_giua_uml_va_orm

Vi du cua 1 lươc đô class UML

7Bai giang BM HTTT - Khoa CNTT - HUI

Page 8: Chuong 4 lien_he_giua_uml_va_orm

Lươc đô class mô ta cac lơp Employee va Car va môi kêt hơp giưa chung.

Tương ưng vơi quan hê ORM Employee drives Car

8Bai giang BM HTTT - Khoa CNTT - HUI

Page 9: Chuong 4 lien_he_giua_uml_va_orm

Role "driver" phia bên trai môi kêt hơp lam ro ngư nghia

Mui tên ơ bên phai môi kêt hơp đê chi răng môt điên hinh cua employee co thê truy xuât đên 1 điên hinh car cua no. Môi kêt hơp nay chi liên quan đên viêc thưc thi va không chi ra y niêm cua mô hinh nghiêp vu.

9Bai giang BM HTTT - Khoa CNTT - HUI

Page 10: Chuong 4 lien_he_giua_uml_va_orm

Băng cach bo qua chi tiêt, lươc đô class co thê đươc dung đê phân tich y niêm. Khi dung theo cach nay thi lươc đô class rât giông vơi mô hinh ER.

Nhưng co 1 sư khac biêt đang kê nêu xet theo hương OO

Khac biêt gi??

10Bai giang BM HTTT - Khoa CNTT - HUI

Page 11: Chuong 4 lien_he_giua_uml_va_orm

Không co sơ đô xac đinh (identification schemas) trong class. Vơi lâp trinh OO, cac đôi tương co thê đươc nhân biêt thông qua đia chi bô nhơ, vi vây UML không cân đên sơ đô nay.

Nhưng nêu dung đê phân tich y niêm thi cân phai co sơ đô tham chiêu hương ngươi dung.

11Bai giang BM HTTT - Khoa CNTT - HUI

Page 12: Chuong 4 lien_he_giua_uml_va_orm

UML cho phep thêm 1 sô thuôc tinh vơi cac ky hiêu không theo tiêu chuân đê khai bao cach nhân biêt va rang buôc cua class◦ “{P}” đê chi tham chiêu hay dung (preferred

reference )◦ "{ Un }" đê chi tinh duy nhât (n > 0), vơi n la sô

trương hơp co cung nghia khi cung rang buôc U đươc ap dung cho 1 tô hơp cac thuôc tinh.

12Bai giang BM HTTT - Khoa CNTT - HUI

Page 13: Chuong 4 lien_he_giua_uml_va_orm

Lươc đô class vơi cac ky hiêu không theo tiêu chuân đê chi khoa Primary key va rang buôc duy nhât

13Bai giang BM HTTT - Khoa CNTT - HUI

Page 14: Chuong 4 lien_he_giua_uml_va_orm

• ORM chia object thanh 2 loai: entities (non-lexical objects) va values (lexical objects) va băt buôc môi entity phai đươc xac đinh bơi môt sơ đô tham chiêu (reference scheme ). ORM sư dung "object", "entity", va "value" đê chi "object instance", "entity instance“va "value instance“.

• Cac entities co thê đươc tham chiêu theo nhiêu cach, va co thê thay đôi trang thai (state) theo thơi gian

14Bai giang BM HTTT - Khoa CNTT - HUI

Page 15: Chuong 4 lien_he_giua_uml_va_orm

• UML chia cac instances thanh objects va data values.

• Cac UML objects tương ưng vơi cac ORM entities. Cac UML data values tương ưng vơi cac ORM values, chung đêu la hăng sô.

• Cac loai entity trong UML đươc goi la classes va cac loai value thi đươc goi la data types.

• "object" co nghia la 1 "object instance", chư không phai la "object type".

• Môi điên hinh quan hê (relationship instance) trong UML đươc goi la 1 link, va loai quan hê đươc goi la môt association.

15Bai giang BM HTTT - Khoa CNTT - HUI

Page 16: Chuong 4 lien_he_giua_uml_va_orm

16Bai giang BM HTTT - Khoa CNTT - HUI

Page 17: Chuong 4 lien_he_giua_uml_va_orm

• Trong UML, măc đinh cac thuôc tinh (attribute) la băt buôc (mandatory) va co gia tri đơn.

• Trong ORM, predicate 1 ngôi "smokes" la tuy chon (optional). UML không hô trơ quan hê 1 ngôi, ma chi dung thuôc tinh Boolean "isSmoker“.

• Trong UML, domain cua môi thuôc tinh co thê đươc hiên thi ngay sau tên thuôc tinh, ngăn cach bơi dâu : .

17Bai giang BM HTTT - Khoa CNTT - HUI

Page 18: Chuong 4 lien_he_giua_uml_va_orm

• Attribute multiplicity constraint– Trong mô hinh ORM, birth country, social security

number, hay passport number đêu la tuy chon. Trong UML tuy chon nay đươc thê hiên thông qua viêc thêm multiplicity [0..1] vao môi thuôc tinh tương ưng.

• Uniqueness constraints (UC):– Trong ORM, cac UC dung đê chi môi employee number,

social security number, va passport number chi tham chiêu duy nhât đên 1 employee ma thôi.

– UML không co ky hiêu chuân đê chi "attribute uniqueness constraints", vi vây no đươc bô sung bơi ky hiêu do ta tư quy đinh lây, chăng han {P} va {Un }

18Bai giang BM HTTT - Khoa CNTT - HUI

Page 19: Chuong 4 lien_he_giua_uml_va_orm

UML cung không co ky hiêu đê chi rang buôc loai trư (inclusive-or constraint), rang buôc nay co thê diên ta băng note đinh kem, hay đăt rang buôc vao {}.

19Bai giang BM HTTT - Khoa CNTT - HUI

Page 20: Chuong 4 lien_he_giua_uml_va_orm

Loai quan hê ORM Employee was born in Country đươc mô hinh như thuôc tinh birthcountry trong lươc đô class UML.

Nêu sau nay khi cân lưu trư lai phân bô cua country thi cân phai đưa vao lơp Country va đê lam ro kêt nôi giưa birthcountry va Country co thê cân phai biên đôi thuôc tinh birthcountry thanh môi kêt hơp giưa 2 class Employee va Country.

ORM tranh đươc sư bât ôn ngư nghia nay vi no luôn sư dung quan hê thay vi dung thuôc tinh.

20Bai giang BM HTTT - Khoa CNTT - HUI

Page 21: Chuong 4 lien_he_giua_uml_va_orm

Co giai thuât đê phat triên lươc đô UML va ER tư lươc đô ORM.

Cac giai thuât nay gan cac mưc đô quan trong khac nhau vao cac loai đôi tương tuy thuôc vao role va cac rang buôc.

Mưc đô quan trong nay co thê thay đôi theo thơi gian khi ta kham pha đươc nhiêu hơn mô hinh tông thê va ban thân nghiêp vu cung bi thay đôi theo thơi gian.

21Bai giang BM HTTT - Khoa CNTT - HUI

Page 22: Chuong 4 lien_he_giua_uml_va_orm

Thuôc tinh đa tri “sports“ trong UML đươc chi ra băng rang buôc "[0..*]" (môt ngươi co thê chơi nhiêu môn thê thao khac nhau hoăc không chơi môn nao)

Trong sơ đô ORM tương đương, loai quan hê many:many đươc dung thay cho thuôc tinh đa tri sports.

22Bai giang BM HTTT - Khoa CNTT - HUI

Page 23: Chuong 4 lien_he_giua_uml_va_orm

Class Flag dung đê lưu trư nickname va mau cơ cua cac quôc gia

Cac rang buôc:◦ Môi flag co nhiêu nhât 2

nickname◦ Môi Flag co it nhât 1 mau

Môt UC phu khac cung cân xac đinh la môi nickname tham chiêu nhiêu nhât đên môt flag.

23Bai giang BM HTTT - Khoa CNTT -

HUI

Page 24: Chuong 4 lien_he_giua_uml_va_orm

Không chi môi nicknames phai la duy nhât đôi vơi môi flag ma môi phân tư trong môi tâp hơp cung phai duy nhât. Môi rang buôc phưc nay đươc xac đinh trong UML dươi dang 1 note đinh kem (attached note)

24Bai giang BM HTTT - Khoa CNTT - HUI

Page 25: Chuong 4 lien_he_giua_uml_va_orm

Thuôc tinh Nickname: miên gia tri la môt loai dư liêu nao đo, co thê la string

Thuôc tinh countries hay colors:◦ Nêu không cân lưu trư thêm thông tin , co thê

chon string như miên gia tri (domain) ◦ Nêu muôn co thêm thông tin đê dung sau nay, tôt

hơn la nên dung class Country va Color đê xac đinh domain cho no.

25Bai giang BM HTTT - Khoa CNTT - HUI

Page 26: Chuong 4 lien_he_giua_uml_va_orm

26Bai giang BM HTTT - Khoa CNTT - HUI

Page 27: Chuong 4 lien_he_giua_uml_va_orm

UML cho phep ta mô hinh 1 tinh chât nao đo như môt attribute hay môt association. Đê phân tich y niêm thi dung association thương co nhiêu thuân lơi hơn so vơi attributes, đăc biêt la vơi thuôc tinh đa tri. ◦ Dê mô hinh hoa va tao phân bô cho association

hơn.◦ Cho phep diên ta cac rang buôc co dang "role

played by the attribute" ơ dang chuân hơn la phai dung cac mơ rông không đung tiêu chuân.

27Bai giang BM HTTT - Khoa CNTT - HUI

Page 28: Chuong 4 lien_he_giua_uml_va_orm

Nêu dung association Flag is of Country thi rang buôc each country has at most one flag co thê đưa vao thông qua rang buôc "0..1" đăt bên trai môi kêt hơp nay.

Dung associations thi ôn đinh hơn attributes. Thay vi mô hinh 1 tinh chât thanh 1 attribute, đâu tiên thay thê attribute nay thanh 1 association. Sau đo du la UML hay ORM đêu đê dang tao ra đôi tương tư môt association va đinh kem vao no 1 sô chi tiêt mơi.

28Bai giang BM HTTT - Khoa CNTT - HUI

Page 29: Chuong 4 lien_he_giua_uml_va_orm

Khao sat association Employee plays Sport. Nêu cân lưu trư lai skill level cho môt lân chơi nao đo play, ta co thê đôi tương hoa association nay thanh Play, va đưa thêm vao 1 loai quan hê: Play has SkillLevel. Trong mô hinh UML viêc nay đươc thưc hiên dê dang nêu play đươc mô hinh như 1 association.

Trong vi du thi play đươc mô hinh như attribute sports , thi cân thay thê thanh 1 association tương đương trươc khi thêm chi tiêt mơi skill level vao.

29Bai giang BM HTTT - Khoa CNTT - HUI

Page 30: Chuong 4 lien_he_giua_uml_va_orm

Khi truy vân đên cac thuôc tinh đa tri thi se phưc tap hơn thuôc tinh đơn tri.

Vi du: so sanh cac truy vân Q1,

30Bai giang BM HTTT - Khoa CNTT - HUI

Page 31: Chuong 4 lien_he_giua_uml_va_orm

Thuôc tinh đa tri (multivalued attribute) nên tranh dung trong mô hinh phân tich. Tuy nhiên vân co thê sư dung thuôc tinh đa tri trong thưc thi sau nay.

31Bai giang BM HTTT - Khoa CNTT - HUI

Page 32: Chuong 4 lien_he_giua_uml_va_orm

UML dung thuôc tinh Boolean đê chi môi quan hê 1 chiêu (unary relationship).

Vơi cac quan hê 2 chiêu trơ lên (association):◦ Thương đươc đăt tên băt đâu băng 1 ky tư chư

hoa. ◦ Cac associations 2 chiêu đươc ky hiêu la đương

thăng nôi giưa 2 class.◦ Association role đươc ky hiêu như đâu cuôi cua

đương thăng (line end) thay vi la cac box.

32Bai giang BM HTTT - Khoa CNTT - HUI

Page 33: Chuong 4 lien_he_giua_uml_va_orm

Trong UML, tên association la tuy chon nhưng tên role la băt buôc. Nêu không đăt tên role thi tên lơp cung đươc xem la tên role. Nêu co 2 hay nhiêu role cho cung 1 class thi cac role phai co cac tên khac nhau đê phân biêt.

Trong ORM, cac predicate thuân va ngươc cân đươc chi ro, hoăc chi cân chi ro 1 trong 2 loai. Tên role la tuy chon va đươc đăt trong ngoăc vuông.

33Bai giang BM HTTT - Khoa CNTT - HUI

Page 34: Chuong 4 lien_he_giua_uml_va_orm

34Bai giang BM HTTT - Khoa CNTT - HUI

Page 35: Chuong 4 lien_he_giua_uml_va_orm

35Bai giang BM HTTT - Khoa CNTT - HUI

Page 36: Chuong 4 lien_he_giua_uml_va_orm

36Bai giang BM HTTT - Khoa CNTT - HUI

Page 37: Chuong 4 lien_he_giua_uml_va_orm

Association tư 3 ngôi trơ lên đươc ky hiêu như 1 diamond va nôi đên cac class băng cac đương thăng.

37Bai giang BM HTTT - Khoa CNTT - HUI

Page 38: Chuong 4 lien_he_giua_uml_va_orm

Thương không co ky hiêu chi hương đoc (reading direction indicator), nên cac lươc đô class cua UML không đươc dung đê giao tiêp trong dang câu noi thông thương. Lươc đô class cung không thuân tiên trong viêc tao phân bô cho cac association nêu không đăt tên role cho cac côt tương ưng trong bang phân bô.

38Bai giang BM HTTT - Khoa CNTT - HUI

Page 39: Chuong 4 lien_he_giua_uml_va_orm

Tương tư như cac rang buôc trong thuôc tinh39Bai giang BM HTTT - Khoa CNTT - HUI

Page 40: Chuong 4 lien_he_giua_uml_va_orm

Trong lươc đô UML, ca hai căp Room-HourSlot va HourSlot-Activity đêu la duy nhât. Trong ORM la cac UC tương ưng.

40Bai giang BM HTTT - Khoa CNTT - HUI

Page 41: Chuong 4 lien_he_giua_uml_va_orm

Cac ky hiêu rang buôc multiplicity cua UML thi phong phu hơn cua ER. Tuy nhiên co nhiêu trương hơp ky hiêu multiplicity cua UML không thê diên đat đươc rang buôc cua role băt buôc hay rang buôc thương xuyên tôi thiêu lơn hơn 1 (minimum frequency constraint above 1).

Cac ky hiêu rang buôc cua ORM co thê diên đat đươc bât ky rang buôc nao trên cac role hay cac predicate nhiêu ngôi. Vi vây ORM phong phu hơn trong viêc diên đat rang buôc.

41Bai giang BM HTTT - Khoa CNTT - HUI

Page 42: Chuong 4 lien_he_giua_uml_va_orm

Vi UML cô đưa ca hai loai rang buôc băt buôc va duy nhât vao cung 1 ky hiêu nên không thê diên đat đươc cho tưng hoat đông book phong buôc phai đưa thêm 1 note vao lươc đô.

Lươc đô ORM tương ưng co thê diên đat đươc rang buôc role băt buôc môt cach dê dang.

42Bai giang BM HTTT - Khoa CNTT - HUI

Page 43: Chuong 4 lien_he_giua_uml_va_orm

Nguyên nhân cua viêc kho diên đat rang buôc trong UML la do đinh kem rang buôc multiplicity tôi thiêu vao role ma không qua 1 role trung gian.

Vơi cung ly do nay, UML không thê diên đat đươc cac rang buôc thương xuyên (frequency constraints )khac cua ORM.

43Bai giang BM HTTT - Khoa CNTT - HUI

Page 44: Chuong 4 lien_he_giua_uml_va_orm

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.

44Bai giang BM HTTT - Khoa CNTT - HUI

Page 45: Chuong 4 lien_he_giua_uml_va_orm

45Bai giang BM HTTT - Khoa CNTT - HUI

Page 46: Chuong 4 lien_he_giua_uml_va_orm

Ca UML va ORM đêu cho phep đôi tương hoa cac môi kêt hơp (association) thanh cac loai đôi tương.◦ Trong UML: tao thanh cac association class nhưng

cân phai giư nguyên tên trong association gôc luc đâu va association class tương ưng

◦ Trong ORM: tao thanh cac objectified association hay cac loai nested object, không băt buôc môi kêt hơp va đôi tương lông nhau phai cung tên (1 cum đông tư đươc đôi tương hoa thanh cum danh tư, nên ca hai đêu co thê phat biêu thanh câu co đu ngư nghia thông thương)

46Bai giang BM HTTT - Khoa CNTT - HUI

Page 47: Chuong 4 lien_he_giua_uml_va_orm

Trong UML, thuôc tinh period chi ra môt person mât bao nhiêu lâu đê viêt 1 paper.

Trong ORM, Writing đươc đanh dâu đôc lâp bơi ky hiêu "!“ đê chi ra đôi tương writing co thê tôn tai môt cach đôc lâp không cân quan tâm đên viêc co lưu trư lai period hay không. ORM hiên thi Period như 1 loai đôi tương, không phai la thuôc tinh.

47Bai giang BM HTTT - Khoa CNTT - HUI

Page 48: Chuong 4 lien_he_giua_uml_va_orm

Rang buôc Set-comparison bao gôm:◦ Rang buôc tâp con (subset)◦ Rang buôc ngang băng (equality)◦ Rang buôc quan hê loai trư (exclusion

relationship) ◦ giưa cac phân bô cua cac role khac nhau.

UML cho phep tao cac rang buôc subset giưa cac môi kêt hơp băng cach đinh kem nhan rang buôc "{ subset }" kê bên mui tên đưt net nôi giưa cac môi kêt hơp (association)

48Bai giang BM HTTT - Khoa CNTT - HUI

Page 49: Chuong 4 lien_he_giua_uml_va_orm

Rang buôc subset “any person who chairs a committee must be a member of that committee”

49Bai giang BM HTTT - Khoa CNTT - HUI

Page 50: Chuong 4 lien_he_giua_uml_va_orm

Trong ORM, rang buôc equality giưa hai quan hê co thê tich hơp (compatible), la cach viêt tăt cua 2 rang buôc subset theo 2 chiêu ngươc nhau, đươc ky hiêu "=“ khoanh tron. Phân bô ưng vơi môi rang buôc subset phai băng nhau.

Nêu 2 role cua cung 1 object đêu băt buôc thi giưa chung se ngâm đinh co 1 rang buôc equality

UML không co ky hiêu danh cho rang buôc equality, co thê dung note đê chu thich rang buôc loai nay.

50Bai giang BM HTTT - Khoa CNTT - HUI

Page 51: Chuong 4 lien_he_giua_uml_va_orm

Nêu đo đuơc ap lưc mau vê tim (systolic) thi cung se đo đươc ap lưc mau đi tư tim ra (diastolic) va ngươc lai.

51Bai giang BM HTTT - Khoa CNTT - HUI

Page 52: Chuong 4 lien_he_giua_uml_va_orm

Trong UML, co 1 ky hiêu đê chi rang buôc exclusive-or: môi điên hinh (instance) cua 1 class phai co chinh xac 1 role trong sô 1 tâp cac role khac nhau (set of alternatives). Ky hiêu "{xor}" đăt bên canh đương đưt net nôi cac association vơi nhau.

Trong ORM, ky hiêu tương ưng se la 1 tô hơp vuông goc cua rang buôc inclusive-or (châm đươc khoanh tron) va rang buôc exclusion (X đươc khoanh tron)

52Bai giang BM HTTT - Khoa CNTT - HUI

Page 53: Chuong 4 lien_he_giua_uml_va_orm

Môi account đươc dung bơi 1 person hay 1 corporation nhưng không thê cung luc cho ca hai.

53Bai giang BM HTTT - Khoa CNTT - HUI

Page 54: Chuong 4 lien_he_giua_uml_va_orm

Ca hai UML va ORM đêu hô trơ kiêu con (subtyping), môi điên hinh kiêu con cung la 1 điên hinh cua siêu kiêu (supertype).

Cho 2 loai đôi tương A va B, A la subtype cua B nêu vơi môi trang thai cua database, phân bô cua A đươc bao gôm trong phân bô cua B.

A la proper subtype cua B nêu va chi nêu A la subtype cua B va co thê tôn tai 1 trang thai sao cho phân bô cua B chưa 1 điên hinh không co trong A.

Viêt tăt "subtype" thay cho "proper subtype".

54Bai giang BM HTTT - Khoa CNTT - HUI

Page 55: Chuong 4 lien_he_giua_uml_va_orm

Trong ca UML va ORM, chuyên biêt hoa (specialization) la qua trinh giơi thiêu cac subtypes, va tông quat hoa (generalization) la qua trinh ngươc lai đê giơi thiêu môt supertype.

Ca UML va ORM đêu cho phep sư dung kê thưa đơn (single inheritance) cung như đa kê thưa (multiple inheritance) (môt subtype co nhiêu hơn 1 supertype). ◦ Vi du đa kê thưa: AsianWoman co thê la

subtype cua ca AsianPerson va Woman.

55Bai giang BM HTTT - Khoa CNTT - HUI

Page 56: Chuong 4 lien_he_giua_uml_va_orm

Trong UML, "subclass" va "superclass" đông nghia vơi "subtype" va "supertype", tông quat hoa không chi ap dung cho class ma cho ca interfaces, use case actors, va packages

56Bai giang BM HTTT - Khoa CNTT - HUI

Page 57: Chuong 4 lien_he_giua_uml_va_orm

Trong ORM, subtype kê thưa tât ca role cua supertype cua no.

Trong UML, subclass kê thưa tât attributes, associations, va operations/methods cua supertype cua no.

Đê mô hinh hoa dư liêu, chi tâp trung vao kê thưa cac thuôc tinh tinh không xet đên tinh kê thưa cua operations hay methods.

57Bai giang BM HTTT - Khoa CNTT - HUI

Page 58: Chuong 4 lien_he_giua_uml_va_orm

Subtypes đươc dung trong mô hinh hoa dư liêu đê đanh gia cac rang buôc vê kiêu, hô trơ viêc sư dung lai cac thanh phân cua mô hinh va chi ra sơ đô phân loai.

Rang buôc kiêu (typing constraint) bao đam la cac role xac đinh subtype chi đươc dung trong cac subtype phu hơp.

58Bai giang BM HTTT - Khoa CNTT - HUI

Page 59: Chuong 4 lien_he_giua_uml_va_orm

Ca UML va ORM hiên thi subtye dươi dang cây (acyclic graphs).

Mui tên đi tư node subtype đên supertype.

59Bai giang BM HTTT - Khoa CNTT - HUI

Page 60: Chuong 4 lien_he_giua_uml_va_orm

60Bai giang BM HTTT - Khoa CNTT - HUI

Page 61: Chuong 4 lien_he_giua_uml_va_orm

Nêu dung đương thăng vơi mui tên riêng biêt đê kêt nôi cac subtype thi rang buôc se đươc đăt trong {} kê bên đương đưt net nôi đên link cua subtype.

61Bai giang BM HTTT - Khoa CNTT - HUI

Page 62: Chuong 4 lien_he_giua_uml_va_orm

UML co 4 rang buôc đinh săn danh cho subtype◦ {overlapping} va {disjoint} đê chi cac subtype

co thê trung lăp (overlap) hay loai trư lân nhau (mutually exclusive)

◦ {complete} co nghia la exhaustive (i.e., supertype băng vơi hơp cua tât ca subtype cua no, hay tât ca subtype đêu đươc chi ra .

◦ {incomplete } co nghia la supertype co nhiêu hơn la hơp cac subtype cua no

Măc đinh la {disjoint, incomplete}

62Bai giang BM HTTT - Khoa CNTT - HUI

Page 63: Chuong 4 lien_he_giua_uml_va_orm

Măc đinh cac subtypes cua ORM co thê overlap va không cân phai xac đinh triêt đê cac supertype cua 1 subtype.

Môt sô ky hiêu rang buôc cua ORM:◦ Mutually exclusive: "X" đươc khoanh tron nôi đên

link cua subtype ◦ Complete (collectively exhaustive): dâu châm

khoanh tron◦ Ca hai rang buôc: môt châm đanh cheo va đươc

khoanh tron.

63Bai giang BM HTTT - Khoa CNTT - HUI

Page 64: Chuong 4 lien_he_giua_uml_va_orm

Trong ORM, cac rang buôc loai trư hay toan bô se đươc thê hiên trong bang phân bô hơn la trong cac loai (type)

Môt rang buôc overlap không co nghia la bang phân bô phai overlap, ma chi la chung co thê overlap. Vi vây no không thưc sư la 1 rang buôc va không cân mô ta chung.

64Bai giang BM HTTT - Khoa CNTT - HUI

Page 65: Chuong 4 lien_he_giua_uml_va_orm

Discriminator đươc đăt kê bên mui tên cua subtype đê chi ra 1 sư phân loai cho cac subtype.

Vi du: discriminator "gender" dung đê phân loai Person thanh MalePerson va FemalePerson.

Discriminator không co nghia la subtypes phai thuôc rang buôc complete

65Bai giang BM HTTT - Khoa CNTT - HUI

Page 66: Chuong 4 lien_he_giua_uml_va_orm

Gender đươc dung như discriminator đê phân loai patient

66Bai giang BM HTTT - Khoa CNTT - HUI

Page 67: Chuong 4 lien_he_giua_uml_va_orm

Viêc phân loai phai đươc thưc thi ca trên subtype va loai quan hê dung đê phân loai. Ca hai phai đông bô vơi nhau.◦ Hoăc subtype đươc suy dân tư 1 đinh nghia

subtype chinh thưc ◦ Hoăc loai quan hê dung đê phân loai phai đươc

suy dân tư cac subtype xac đinh nao đo.

67Bai giang BM HTTT - Khoa CNTT - HUI

Page 68: Chuong 4 lien_he_giua_uml_va_orm

Dung theo cach 1 (suy dân cac subtype) Rang buôc phân loai đươc ngâm đinh bơi tô

hơp cua đinh nghia subtype cung vơi 3 rang buôc khac trên loai quan hê Patient is of Gender.

68Bai giang BM HTTT - Khoa CNTT - HUI

Page 69: Chuong 4 lien_he_giua_uml_va_orm

69Bai giang BM HTTT - Khoa CNTT - HUI

Page 70: Chuong 4 lien_he_giua_uml_va_orm

Bươc 1: tao quan hê nhi phân cho bât ky tâp cac căp loai trư nao (sets of exclusive binaries)

70Bai giang BM HTTT - Khoa CNTT - HUI

Page 71: Chuong 4 lien_he_giua_uml_va_orm

Ta nên quyêt đinh xem loai object nao nên mô hinh thanh class va association n: 1 va 1:1 nao cua ORM nên chuyên thanh attributes. Thương cac loai entity co đong vai tro la quan hê chưc năng thi se trơ thanh class. Quan hê chưc năng nhi phân (n:l and 1:1) tư 1 loai entity A đên 1 loai gia tri B, hay đên 1 loai thưc thê B ma vơi loai thưc thê nay ta không muôn phai lưu trư chi tiêt thi nên anh xa thanh 1 thuôc tinh cua A la đu.

71Bai giang BM HTTT - Khoa CNTT - HUI

Page 72: Chuong 4 lien_he_giua_uml_va_orm

72Bai giang BM HTTT - Khoa CNTT - HUI

Page 73: Chuong 4 lien_he_giua_uml_va_orm

Trương hơp đăc biêt: nêu loai gia tri la đôc lâp, va đong 1 vai tro băt buôc tương minh, hay giư 1 vai tro chưc năng nao đo trong loai quan hê 1 :n đươc anh xa thanh class.

Vi du: biên loai gia tri PersonTitle thanh class Title

73Bai giang BM HTTT - Khoa CNTT - HUI

Page 74: Chuong 4 lien_he_giua_uml_va_orm

Hinh a xet đên rang buôc title-gender (e.g. title 'Mr' bi giơi han thanh male)

Hinh b sư dung thuôc tinh đa tri đê lưu trư tât ca gender co thê ap dung vao title (e.g., title 'Dr.' ap dung cho ca male va female).

74Bai giang BM HTTT - Khoa CNTT - HUI

Page 75: Chuong 4 lien_he_giua_uml_va_orm

Anh xa cac quan hê 1 ngôi thanh thuôc tinh Boolean hay cac subclass.

75Bai giang BM HTTT - Khoa CNTT - HUI

Page 76: Chuong 4 lien_he_giua_uml_va_orm

Cac loai quan hê con lai đươc anh xa thanh associations.

76Bai giang BM HTTT - Khoa CNTT - HUI

Page 77: Chuong 4 lien_he_giua_uml_va_orm

Nêu môi kêt hơp m:n co liên quan đên loai gia tri (e.g., Employee has PhoneNr) thay vi dung thuôc tinh đa tri, co thê biên đôi môi kêt hơp m:n thanh nhiêu môi kêt hơp n: 1 (e.g. Employee has Ph0neNrl; Employee has Ph0neNr2, etc.).

77Bai giang BM HTTT - Khoa CNTT - HUI

Page 78: Chuong 4 lien_he_giua_uml_va_orm

Nêu môi loai object trong loai quan hê n chiêu đươc anh xa thanh 1 class, khi đo loai quan hê n chiêu se đươc anh xa thanh môi kêt hơp n chiêu (vd1).

Nêu môt object trong loai quan hê tam ngôi không đươc anh xa thanh class thi đôi tương hoa phân con lai cua association như môt association class va anh xa role cua no như 1 thuôc tinh (vd2)

78Bai giang BM HTTT - Khoa CNTT - HUI

Page 79: Chuong 4 lien_he_giua_uml_va_orm

79Bai giang BM HTTT - Khoa CNTT - HUI

Page 80: Chuong 4 lien_he_giua_uml_va_orm

80Bai giang BM HTTT - Khoa CNTT - HUI

Page 81: Chuong 4 lien_he_giua_uml_va_orm

Rang buôc đơn gian nhât thương đươc anh xa thanh cac rang buôc multiplicity

Cac rang buôc phưc tap hơn không co ky hiêu tương ưng trong UML, vi vây cân ghi nhân lai chung trong dang note.

81Bai giang BM HTTT - Khoa CNTT - HUI

Page 82: Chuong 4 lien_he_giua_uml_va_orm

82Bai giang BM HTTT - Khoa CNTT - HUI

Page 83: Chuong 4 lien_he_giua_uml_va_orm

Cac subtype đươc anh xa thanh subclass, sau đo bô sung cac rang buôc thich hơp

83Bai giang BM HTTT - Khoa CNTT - HUI