Chương 3: Thiết kế mô hình ý niệm bằng ORM

Download Report

Transcript Chương 3: Thiết kế mô hình ý niệm bằng ORM

BM HTTT - Khoa CNTT - HUI
1


Nhắc lại mô hình ý niệm
Bảy bước của CSDP
BM HTTT - Khoa CNTT - HUI
2
Modeling = a language + a procedure
(dùng để mô tả làm thế nào sử dụng
ngôn ngữ đó để xây dựng mô hình)
 Language = associated syntax
(marks), semantics (meaning), and
pragmatics (use).

BM HTTT - Khoa CNTT - HUI
3


Mô hình hóa ý niệm dùng để mô tả miền
nghiệp vụ (business domain) ở mức cao,
bằng cách dùng các thuật ngữ (terms ) và các
khái niệm (concepts) liên quan đến người
dùng nghiệp vụ đó, không quan tâm đến
ngữ cảnh bên ngoài ( như form dùng nhập
liệu..)
Có thể dùng ORM, ER, và UML để mô hình
hóa ý niệm
BM HTTT - Khoa CNTT - HUI
4

Mặc dù UML được sử dụng rộng rãi hơn ORM,
nhưng các ký hiệu chu thích dùng trong ORM
thì diễn tả ý nghĩa đầy đủ hơn các lược đồ
UML hay ER.
BM HTTT - Khoa CNTT - HUI
5


Nếu miền nghiệp vụ (business domain) phức
tạp thì đầu tiên phân nó thành các miền con
(subareas). Các miền con này thường xếp thứ
tự ưu tiên để xác định miền nào nên phát
triển trước và mỗi miền sẽ được thiết kế 1
lược đồ con (subschema) bằng CSDP
(Conceptual Schema Design Procedure)
Các đội modeler sẽ thống nhất các thuật ngữ
được dùng trong các lược đồ con.
BM HTTT - Khoa CNTT - HUI
6

Phương pháp thiết kế top-down này gồm 3
bước chính như sau:
◦ Chia miền nghiệp vụ thành các vùng con (subarea)
có thể kiểm soát được.
◦ Áp dụng CSDP cho mỗi vùng con
◦ Tích hợp (Integrate) các lược đồ con (subschema)
lại thành lược đồ ý niệm tổng thể (global
conceptual schema)
BM HTTT - Khoa CNTT - HUI
7
1. Transform familiar examples into elementary
facts.
2. Draw the fact types, and apply a population
check.
3. Check for entity types to be combined, and note
any arithmetic derivations.
4. Add uniqueness constraints, and check the arity of
fact types.
5. Add mandatory role constraints, and check for
logical derivations.
6. Add value, set-comparison, and subtyping
constraints.
7. Add other constraints and perform final checks.
BM HTTT - Khoa CNTT - HUI
8


Nếu mô hình hóa miền nghiệp vụ mà hiện
đang điều hành bằng tay hay máy tính, các số
liệu mẫu (example) luôn sẵn có. Nếu không
thì có thể làm việc với các chuyên gia (domain
expert ) để có được số liệu mẫu (examples).
Ba loại mẫu: output reports, input forms,
và sample queries. Thường chúng ở dạng
bảng, form, lược đồ hay văn bản.
BM HTTT - Khoa CNTT - HUI
9
Luật sơ cấp (Elementary fact) là một xác nhận
(assertion) hay một mệnh đề nhỏ nhất
(atomic proposition) về miền nghiệp vụ.
 Có thể xem miền nghiệp vụ như 1 tập các đối
tượng (object) đóng các vai trò (role) nào đó.
 Loại elementary fact đơn giản nhất ở dạng
“a single object plays a given role” .

◦ Ví dụ: Ann smokes.
BM HTTT - Khoa CNTT - HUI
10


Luật sơ cấp (Elementary fact) không dùng các
kết nối luận lý (như not, and, or) hay các
định lượng ( như all, some).
Ví dụ: các câu sau không phải là elementary
fact.
◦ Ann smokes and Bob smokes.
◦ If Bob smokes then Bob is cancer prone.
◦ All people who smoke are cancer prone.
BM HTTT - Khoa CNTT - HUI
11



Role của 1 đối tượng (object) đôi khi được
gọi là “property”
Nếu 1 đối tượng chỉ có 1 role thì được gọi là
quan hệ đơn phân (unary relationship)
Thường mối quan hệ liên quan ít nhất hai
role  quan hệ nhị phân (binary relationship)
◦ Ví dụ: Ann employs Bob  Ann đóng vai trò
employer và Bob đóng vai trò employee.
BM HTTT - Khoa CNTT - HUI
12

Hai dạng của đối tượng cơ bản (basic object):
◦ Value
◦ Entity

Value là hằng số mà tự nó xác định một ý
nghĩa nào đó. Value có thể được tham khảo
trực tiếp không cần phải mô tả. Hai dạng
thông thường của value có thể là:
◦ character string
◦ number
BM HTTT - Khoa CNTT - HUI
13

Entity được xem như mô tả xác định
(definitive description).
◦ Ví dụ: city có tên là Paris


Hầu hết các entity có thể thay đổi theo thời
gian
Một entity có thể là
◦ Tangible object (e.g., the City named 'Paris')
◦ Abstract object (e.g., the Course with code 'CS
114').

Cả hai loại entity và value đều được xem là
objects và tồn tại trong UoD.
BM HTTT - Khoa CNTT - HUI
14


OO thường sử dụng thuật ngữ "entity“ hơn
”object” và để tham chiếu đến 1 entity nào đó
thì sẽ dùng value.
Ví dụ:
◦ 1. Australia has six states.
◦ 2. "Australia" has nine letters.
Trong (1) từ "Australia" dùng để tham chiếu
đến 1 entity. Trong (2) từ "Australia" đơn giản
chỉ là chú thích tham chiếu đến chính nó. Dấu
“” để chỉ ra 1 biểu tượng (distinction) nào đó.
BM HTTT - Khoa CNTT - HUI
15


Trong giao tiếp hàng ngày, các entity thường
được tham chiếu đến thông qua tên gọi chính
thức (proper name) của nó. Ví dụ tổng thống tiền
nhiệm của Mỹ là Bill Clinton.
Tên gọi chính thức này chỉ đúng khi tên chính
chính thức này tham chiếu đến cái gì trong
những tình huống cụ thể đang được nói đến.
◦ Trong (1) làm mọi người liên tưởng đến 1 country có tên
gọi là "Australia". Tuy nhiên nếu câu này được nói trong
1 hoàn cảnh khác và dùng để chỉ đến 1 dog có tên là
"Australia“, con chó này có 6 tâm trạng (moods) khác
nhau như sleepy, playful, hungry, …
BM HTTT - Khoa CNTT - HUI
16


Các entity cần được định nghĩa rõ ràng bằng mô
tả xác định (definite description)
Mô tả xác định luôn bắt đầu bằng loại thực thể
được tham chiếu đến.
◦ Loại thực thể (Entity type): là một tập hợp các thực thể.
Mỗi entity đều là điển hình (instance) của 1 loại thực thể
nào đó.
 Ví dụ: loại thực thể Person để chỉ tập hợp tất cả mọi người
liên quan đến dự án.

Thường 1 số người gọi tắt "entity" thay cho
entity type“, đôi khi lại dùng "entity" để chỉ
"entity instance" với mục đích tránh nhầm lẫn.
BM HTTT - Khoa CNTT - HUI
17

Ví dụ: khảo sát câu sau:
◦ (3) Lee is located in 10B.
Câu này dùng để nói đến 1 con ngựa trong
chuồng, hay 1 máy tính trong phòng …
 Để tránh nhâm lẫn, mô tả xác định được đưa
thêm vào câu và được viết hoa ký tự đầu tiên
 The Patient 'Lee' is located in the Ward '10B'.
 The Patient 'Lee' has a Temperature of 37.
 Các câu nói trên đã rõ ràng chưa? Có gây
nhầm lẫn cho mọi người không???
BM HTTT - Khoa CNTT - HUI
18



Giả sử UoD có tới 2 patient có tên là "Lee Jones"
và "Mary Lee“
Hoặc nhiệt độ là 37 nhưng nếu là 37 độ Celsius
thì thân nhiệt bình thường như nếu là 37 độ
Fahrenheit thì người đó chắc hẳn đã bị đông
cứng!.
Để tránh mập mờ thì phải đính kèm cả reference
mode vào mỗi entity.
◦ (4) The Patient with surname 'Lee' has a Temperature
of 37 Celsius.
◦ (5) The Patient with firstname 'Lee' has a Temperature
of 37 Fahrenheit.
BM HTTT - Khoa CNTT - HUI
19

Một loại thực thể được mô tả đầy đủ gồm 3
thành phần:
◦ Entity type (e.g., Patient, Temperature)
◦ Reference mode (e.g., surname, Celsius)
◦ Value (e.g., 'Lee', 37)
BM HTTT - Khoa CNTT - HUI
20


Thường role được mô tả bằng vị từ logic
(logical predicate)
Predicate là một câu khai báo (declarative
sentence) có chứa các object trong nó. Nơi
chứa object được gọi là “object hole” hay
“placeholder”
◦ (6) The Person with firstname 'Ann' smokes.
Object term
Predicate có dạng “ …. Smokes”
Object hole
BM HTTT - Khoa CNTT - HUI
21


Vị từ 1 ngôi (unary predicate) nếu câu chỉ có
1 object hole.
Vị từ hai ngôi (binary predicate) là câu có 2
object holes. Để mô tả role đa số là vị từ hai
ngôi.
◦ (7) The Person with firstname 'Ann' employs the
Person with firstname 'Bob'.


Vị từ ba ngôi (ternary predicate) là câu có 3
object hole.
Vị từ n-ngôi (n-ary predicate) là câu có n
object hole (n > 0).
BM HTTT - Khoa CNTT - HUI
22


Thứ tự của các object trong vị từ rất quan
trọng thường được ký hiệu:
Ro1... On
R là vị từ n ngôi, 01...0 n là một chuỗi gồm n
object-term.
BM HTTT - Khoa CNTT - HUI
23

Predicate thường được dùng dạng “mixfix”
(các thuật ngữ được dùng xen kẽ với
predicate)
Ví dụ: The Scientist with surname 'Einstein'
moved to the Country with code 'USA‘ during
the Year 1933 CE
Predicate “…. move to … during…..”
BM HTTT - Khoa CNTT - HUI
24

Bước 1 của CSDP dùng để chuyển đổi các ví
dụ chứa các thông tin liên quan thành các
luật sơ cấp (elementary facts)
The Person with surname
'Wirth'
designed the Language named
Cùng fact nhưng 'Pascal'.
Cú pháp khác nhauThe Language named 'Pascal'
was designed by the Person
with surname 'Wirth'.
BM HTTT - Khoa CNTT - HUI
25

Có thể viết rút gọn như sau:
◦ The Person with surname 'Wirth' designed /
was designed by the Language named 'Pascal'.


Khi nghịch đảo các object term thì predicate
cũng được bị đảo ngược theo designed 
designed by
Predicate nằm bên trái của "/" sẽ được đọc từ
trái sang. Predicate nằm bên phải “/” được
đọc từ phải sang.
BM HTTT - Khoa CNTT - HUI
26
Từ hàng đầu tiên của bảng mẫu, thử diễn tả
thành elementary fact
The Person with surname 'Wirth' designed the
Language named 'Pascal' in the Year 1971
CE.
 Có phải là elementary fact không?

BM HTTT - Khoa CNTT - HUI
27

Từ predicate ba ngôi, chia thành 2 predicate
2 ngôi như sau:
1) The Person with surname 'Wirth' designed the
language named 'Pascal'.
2) The Language named 'Pascal' was designed in
the Year 1971 CE.
Việc phân chia này có làm mất mát thông tin
("no information loss“) hay không?
 Không mất mát thông tin khi biết (1) và (2)
thì có thể suy ra lại predicate trước đó

BM HTTT - Khoa CNTT - HUI
28


Việc phân chia trên sẽ không mất mát thông
tin nếu như ngầm định mỗi ngôn ngữ chỉ
được thiết kế trong vòng 1 năm. Predicate
"was designed in" được hiểu như là "had its
design completed in“
Nhưng nếu việc thiết kế ngôn ngữ kéo dài
nhiều năm và có thể do nhiều người cùng
thiết kế thì việc phân chia trên sẽ không đúng
nữa.
BM HTTT - Khoa CNTT - HUI
29

Sau khi chuyển đổi thành elementary fact thì
nên rút gọn lại bằng cách:
◦ Loại bỏ các từ "the" , "with"
◦ Đặt các Reference modes vào cặp ngoặc đơn ngay
sau object types.
◦ Dấu chấm(dot) đặt trước reference mode name
◦ Dấu : sau reference mode để chỉ đơn vị đo lường
◦ Tên đối tượng bắt đầu chữ hoa, tên reference
modes bắt đầu chữ thường.
BM HTTT - Khoa CNTT - HUI
30

Kết quả của việc chuyển từ ví dụ mẫu thành
elementary fact:
◦ Person (surname) 'Wirth' designed Language
(.name) 'Pascal'.
◦ Language (.name) 'Pascal' was designed in Year
(CE) 1971.
BM HTTT - Khoa CNTT - HUI
31


Hãy phát biểu các elementary fact cho bảng ví
dụ trên
Giả sử các reference schemes sau đã được
khai báo sẵn:
◦ Politician(.name);
◦ Country(.code);
◦ Year(CE).
BM HTTT - Khoa CNTT - HUI
32

Từ 2 bảng trên, có thể đọc thành 2 phát
biểu (fact) sau:
(1) The Politician 'George W. Bush' was born
in the Country 'US' in the Year 1946.
(2) The Politician 'George W. Bush' visited the
Country 'GB' in the Year 2003.

Trong 2 phát biểu trên, phát biểu nào là
elementary??
BM HTTT - Khoa CNTT - HUI
33

(1) vẫn có thể phân thành 2 câu
◦ (1a) The Politician 'George W. Bush' was born in the
Country 'US'.
◦ (1b) The Politician 'George W. Bush' was born in the
Year 1946.
Hai câu 1a và 1b có thể nối lại với nhau bằng
“and”, kết quả tương đương với phát biểu (1)
 (1) có thể phân chia (splitable) nên nó không thể
là elementary
 Nhưng phát biểu (2) là elementary vì khi phân
chia không thể kết hợp lại cho cùng ý nghĩa lúc
đầu
BM HTTT - Khoa CNTT - HUI
34

Kết luận: Có 3 elementary fact:
◦ Politician was born in Country
◦ Politician was born in Year
◦ Politician visited Country in Year.
BM HTTT - Khoa CNTT - HUI
35

Hãy xác định các elementary fact cho bảng
trên?
BM HTTT - Khoa CNTT - HUI
36

Từ hàng đầu tiên của bảng, có thể đọc 4 phát
biểu sau:
◦ The Lecturer with name 'Adams
the Year 1946 CE.
◦ The Lecturer with name 'Adams
years.
◦ The Lecturer with name 'Adams
Degree with code 'BSc'.
◦ The Lecturer with name 'Adams
Degree with code 'PhD'.
JB' was born in
JB' has the Age 42
JB' holds the
JB' holds the
BM HTTT - Khoa CNTT - HUI
37


Có 3 loại entity: Lecturer (.name), Year (CE),
Age (y:),
Có 3 loại elementary fact:
◦ Lecturer was born in Year;
◦ Lecturer has Age
◦ Lecturer holds Degree.

Loại entity Year và Age có ngữ nghĩa hoàn
toàn khác nhau: Year liên quan đến thời điểm
bắt đầu (starting point) còn Age để chỉ 1
khoảng thời gian (tính bằng số năm)
BM HTTT - Khoa CNTT - HUI
38

Bảng phân phối các nhóm thực tập

Phát biểu (verbalize) các Elementary fact cho
bảng trên
BM HTTT - Khoa CNTT - HUI
39

Bước 1a: đọc thông tin từ hàng đầu tiên của
bảng (verbalize the information)
◦ Tute group A meets at 3 p.m. Monday in Room
CS-718.
◦ Student 302156 belongs to group A and is named
'Bloggs FB'.
BM HTTT - Khoa CNTT - HUI
40

Bước 1b: tinh chỉnh các thông tin đọc được
thành elementary facts kết quả là 4
elementary fact:
1. The TuteGroup with code 'A' meets at the Time
with dhcode 'Mon 3 p.m.'.
2. The TuteGroup with code 'A' meets in the
Room with roomNr 'CS-718'.
3. The Student with studentNr 302156 belongs to
the TuteGroup with code 'A'.
4. The Student with studentNr 302156 has the
StudentName 'Bloggs FB'.
BM HTTT - Khoa CNTT - HUI
41

Khi thông dịch từ số liệu mẫu thành
elementary fact, có thể cần đưa ra các giả
định (assumption):
◦ Giả sử các sinh viên có studentNr khác nhau và chỉ
thuộc duy nhất 1 nhóm.
◦ Các sinh viên có thể trùng tên nhau (có tới 2 sinh
viên tên 'Bloggs FB’)
◦ Mỗi nhóm gặp nhau chỉ 1 lần mỗi tuần (each
tutorial group meets only once a week). Nhờ giả sử
này có thể tạo các elementary riêng về thời gian và
phòng.
BM HTTT - Khoa CNTT - HUI
42

Nếu các ví dụ để dịch không quen thuộc với
modeler thì nên giải quyết mọi nghi ngờ bằng
cách hỏi ý kiến các domain expert
BM HTTT - Khoa CNTT - HUI
43

Bài tập trang 93
BM HTTT - Khoa CNTT - HUI
44

Dựa vào luật sơ cấp (elementary fact) của
bước 1, nhiệm vụ của bước 2 bao gồm:
◦ Vẽ lược đồ điển hình
◦ Vẽ lược đồ ý niệm (conceptual schema diagram)
◦ Kiểm tra lược đồ với phân bố mẫu (sample
population).

Lược đồ điển hình (Instance diagram) dùng để
mô tả các điển hình của đối tượng cùng với
mối quan hệ của chúng.
BM HTTT - Khoa CNTT - HUI
45

Từ bảng số liệu mẫu trên, xác định được 3
elementary fact sau
◦ The Person named 'Adams B' drives the Car with
regNr '235PZN'.
◦ The Person named 'Jones E' drives the Car with
regNr '235PZN'.
◦ The Person named 'Jones E' drives the Car with
regNr '108AAQ'.
BM HTTT - Khoa CNTT - HUI
46


Lược đồ điển hình mô tả các đối tượng điển
hình và mối quan hệ giữa chúng với nhau.
Thuận lợi: thể hiện được bản tính cụ thể
(concrete nature) của các thực thể.
◦ Rõ ràng có 2 đối tượng là person và car. Biểu diễn
giá trị (values) của các đối tượng này dưới dạng
chuỗi ký tự
◦ Mối quan hệ (relationship) giữa person và car được
biểu diễn bằng đường liền nét (solid)
◦ Tham chiếu cụ thể giữa 1 giá trị và 1 thực thể được
biểu diễn bằng đường đứt nét (broken line)
BM HTTT - Khoa CNTT - HUI
47

Lược đồ điển hình (instance diagram)
BM HTTT - Khoa CNTT - HUI
48

Lược đồ điển hình (Instance diagrams) và
lược đồ ý niệm (conceptual diagrams ) đều
cùng mô tả:
◦ Loại thực thể (entity type) dưới dạng hình chữ nhật
góc tròn, đường liền nét, có đặt tên. Tên loại đối
tượng (object type) được viết bên trong hộp.
◦ Loại giá trị (value type) dưới dạng hình chữ nhật
góc tròn, đường đứt nét, có đặt tên.

Trong lược đồ điển hình, các đối tượng riêng
lẻ được biểu diễn tường minh bằng biểu
tượng hay text. Còn trong lược đồ ý niệm,
các đối tượng riêng lẻ bị bỏ qua.
BM HTTT - Khoa CNTT - HUI
49
BM HTTT - Khoa CNTT - HUI
50


Role (relationship parts) được biểu diễn
dưới dạng các hộp (box). Role có thể có tên
hay không, nếu có tên role sẽ đặt trong []
như "[driver]“ và nằm kế bên role box.
Mỗi vị từ (predicate) được biểu diễn dưới
dạng 1 hay nhiều hộp role nằm liền kề nhau
và có đặt tên
BM HTTT - Khoa CNTT - HUI
51


Với mối quan hệ 2 ngôi (2 roles), cả 2 cách
đọc predicate thuận và ngược đều được chỉ
ra và phân cách nhau bằng dấu /. Dấu mũi
tên  hay  để chỉ hướng đọc predicate, nếu
không thì mặc định đọc từ trái qua phải và
từ trên xuống dưới
Mỗi role được nối với 1 loại object bởi
đường thẳng (line) để chỉ role được thực thi
chỉ bởi các đối tượng của loại đối tượng đó.
BM HTTT - Khoa CNTT - HUI
52



Luật sơ cấp (Elementary fact) là mối quan hệ
giữa các thực thể (entities)
Mối tham chiếu (References) là mối quan
hệ giữa thực thể (entity) và giá trị (value).
References là cầu nối giữa thế giới các thực
thể và thế giới các giá trị.
BM HTTT - Khoa CNTT - HUI
53
Using reference modes for 1:1 reference: (a) model and (b) abbreviatio
BM HTTT - Khoa CNTT - HUI
54


Mặc dù cả hai vị từ loại tham chiếu (reference
predicate) đều được đọc là "has", nhưng
chúng là các vị từ khác hẳn nhau. Có thể xác
định các vị từ bằng ký tự thay thế (e.g., "P2",
"P3") hay dùng tên mở rộng (e.g.,
"PersonHasPersonName", "CarHasRegNr").
Mặc dù predicate có thể đọc là "has" nhưng
tốt hơn nên tránh nếu có cách đọc khác rõ
ràng hơn. Ví dụ nên dùng "Person drives Car“
tốt hơn là "Person has Car", rất có thể bị hiểu
nhầm thành “Person owns Car”
BM HTTT - Khoa CNTT - HUI
55



Reference mode chỉ ra mode hay cách thức
mà các đối tượng (điển hình là các giá trị)
tham chiếu đến thực thể.
Bằng cách sử dụng reference mode sẽ hạn
chế việc cần phải hiển thị tường minh các loại
giá trị.
Để hiểu được sơ đồ rút gọn cần phải biết làm
thế nào để chuyển đổi giữa reference modes
và các loại giá trị.
BM HTTT - Khoa CNTT - HUI
56



Ký hiệu "E (r)  V" có nghĩa là "Entity type E
with reference mode r generates the Value
type V".
Các reference modes có thể rất thông dụng
như name, code, title, nr, # và id.
Khi đặt trong ngoặc đơn, các reference mode
thông dụng được đặt trước bởi dấu chấm. Để
chuyển thành tên loại giá trị (value type
name) reference mode có ký tự đầu viết hoa
và được thêm vào tên của entity type.
BM HTTT - Khoa CNTT - HUI
57







Product(.name)  ProductName;
Country(.code)  CountryCode;
Item(.code)  ItemCode;
Song(.title)  SongTitle;
Rating(.nr)  RatingNr;
Room(.#)  Room#;
Member(.id)  MemberId.
BM HTTT - Khoa CNTT - HUI
58


Nếu là mode tham chiếu dạng đơn vị (e.g.,
cm, kg, mile) hay dạng tiền tệ (e.g., USD, XEU)
thì đuợc chuyển đổi như sau (kg:) 
kgValue; (USD:) USDValue.
Nếu mode tham chiếu dạng tổng quát thì tên
loại sẽ tương tự như loại giá trị của nó (ISBN)
~ ISBN; (URL) ---> URL.
BM HTTT - Khoa CNTT - HUI
59

Để kiểm tra tính đúng đắn của lược đồ, nên
phân bố mỗi loại quan hệ (fact) trên lược đồ
với 1 số các số liệu điển hình gốc dưới dạng
bảng (fact table) chứa các cột thích hợp.
BM HTTT - Khoa CNTT - HUI
60
Hãy vẽ lược đồ ý niệm cho bảng trên
BM HTTT - Khoa CNTT - HUI
61
BM HTTT - Khoa CNTT - HUI
62
Hãy vẽ lược đồ ý niệm cho bảng trên
BM HTTT - Khoa CNTT - HUI
63


Một cách để biểu diễn fact trên hàng 1 là: Person
(firstname) 'Arnie' smokes; Person (firstname)
'Lee' is a nonsmoker. Mỗi một loại fact này là
điển hình của loại fact 1 ngôi.
Hai fact 1 ngôi này có thể được biến đổi thành 1
fact 2 ngôi bằng cách dùng SmokingStatus như 1
loại thực thể khác với mã "S" dành cho người hút
thuốc và "N" cho người không hút thuốc. Hàng
đầu tiên sẽ được sửa lại thành Person(.firstname)
'Pat' has SmokingStatus(.code) 'S'; Person
'Norma' has SmokingStatus 'N'.
BM HTTT - Khoa CNTT - HUI
64
Unary version
Binary version
BM HTTT - Khoa CNTT - HUI
65



Khảo sát bảng báo cáo sau:
Thuộc loại quan hệ tam phân (ternary fact
type).
Sơ đồ tham chiếu là Student(.nr),
Course(.code), và Rating(.nr).
BM HTTT - Khoa CNTT - HUI
66

Fact của hàng 1 sẽ là:
Bảng phân bố mẫu
Sample population
Student '1001' for Course 'CS 100' scored Rating 4.
BM HTTT - Khoa CNTT - HUI
67

Thay cho câu
Student '1001' for Course 'CS 100' scored Rating 4
Diễn tả mối quan hệ tam phân, có thể chuyển
thành 2 câu sau:
◦ Student ' 1001' enrolled in Course 'CS 100'.
◦ This Enrollment resulted in Rating 4.

"This Enrollment" dùng để chỉ mối quan hệ
đăng ký giữa 1 người và 1 môn học nào đó.
Bất kỳ việc đăng ký nào cũng đều có thể được
xử lý như 1 đối tượng thực sự.
BM HTTT - Khoa CNTT - HUI
68



Hành động tách thành một đối tượng từ mối
quan hệ được gọi là đối tượng hóa
(objectification or reification) .
Đối tượng được tạo bởi đối tượng hóa được
gọi là objectified relationship.
Loại đối tượng được tạo thành gọi là
objectified association (hay objectification
type), được ký hiệu hình chữ nhật góc tròn có
đặt tên nằm trong “”. Loại đối tượng này
thường có 2 role, nhưng có thể chỉ có 1 role
hay nhiều hơn.
BM HTTT - Khoa CNTT - HUI
69

Nested version
BM HTTT - Khoa CNTT - HUI
70


Mối quan hệ đối tượng hóa thường hay dùng khi
mối quan hệ này có 1 role tùy chọn(optional role)
hay khi bổ sung thêm 1 role mới.
Ví dụ: bổ sung thêm ngày đăng ký (enrolment
dates) vào bảng báo cáo.
◦ Nếu dùng quan hệ tam phân thì cần thêm 1 quan hệ tam
phân nữa: Student enrolled in Course on Date.
◦ Nếu dùng dạng objectification (nested version) thì chỉ
cần thêm 1 quan hệ nhị phân: Enrollment occurred on
Date.

Dạng nested version này còn làm đơn giản các
ràng buộc giữa các đối tượng.
BM HTTT - Khoa CNTT - HUI
71
Cần xây dựng 1 CSDL lưu trữ việc bán hàng (sale).
Hai sản phẩm được bán là ACAD và BCAD
Xác định elementary fact và lược đồ ý niệm cho đồ thị trên
BM HTTT - Khoa CNTT - HUI
72

Bước 1a: (verbalize the sales information)
đọc thông tin từ đồ thị
"BCAD in the first quarter had sales of one million dollars".

Bước 1b: (refining this into one or more
elementary facts): phát biểu thành quan hệ
tam phân:
"The Product with code 'BCAD' in the Quarter
numbered 1 had sales of MoneyAmount 1000000
USD".

Dùng loại đối tượng "MoneyAmount" thay cho
"Sales" để làm rõ hơn ý nghiã nghiệp vụ.
BM HTTT - Khoa CNTT - HUI
73
Kết thúc bước 1 (xác định elementary fact):
Product(.code)in Quarter(.nr) had sales of
MoneyAmount (USD:)
 Bước 2: vẽ lược đồ ý niệm

BM HTTT - Khoa CNTT - HUI
74
BM HTTT - Khoa CNTT - HUI
75

Bài tập trang 105
BM HTTT - Khoa CNTT - HUI
76