Professional Documents
Culture Documents
Mapping
1
Mapping Terminology
Object Mapping
Xác định cách thức lưu trữ các đối tượng và các quan hệ của
chúng vào kho dữ liệu thường trú mà trong trường hợp này là cơ
sở dữ liệu quan hệ.
Property: thuộc tính dữ liệu của đối tượng
Hoặc là thuộc tính vật lý, ví dụ chuỗi firstName
hoặc là các thuôc tính ảo (thuôc tính suy dẫn) được cài đặt qua
một phép toán, ví dụ getTotal() trả về tổng tiền của một hóa đơn.
Property mapping:
Cách thức lưu trữ các thuộc tính của đối tượng.
Relationship mapping:
Cách thức lưu trữ các quan hệ (association, aggregation,
composition) giữa 2 hay nhiều đối tượng.
2
Shadow Information
Shadow information là dữ liệu nào đó mà đối tượng
cần bảo trì, ngoài các dữ liệu miền thông thường.
Chẳng hạn:
Thông tin khóa chính mà là khóa đại diện (surrogate key) không
có ý nghĩa gi trong thương mại.
Việc điều khiển đồng thời (concurrency control) cần dùng các
thông tin đánh dấu chằng hạn timestamps hay bộ đếm tăng
(incremental counters), và số phiên bản (versioning numbers).
To persist an object properly the class would need to implement
shadow attributes that maintain these values.
Quy ước chung:
Các thông tin shadow không trình bày trong lược đồ lớp.
3
Mapping Entity Class
Ánh xạ trực tiếp thành một quan hệ (bảng)
Các thuộc tính đơn giản được ánh xạ thành các cột của bảng
Các thuộc tính tạm thời dùng trong chương trình (thuộc tính suy dẫn)
không cần lưu trữ, ngoại trừ để tăng hiệu quả xử lý.
Ví dụ: thuộc averageMark của Student.
Khóa chính:
Chọn thuộc tính định danh (ObjectIDs) của lớp thực thể
ví dụ name
Hoặc thông thường chọn một khóa đại diện (surrogate key)
Student
Khóa đại diện
name : String
dateOfBirth : Date
Student (StuID, Name, DateOfBirth, Address, PhoneNo)
address : String
phoneNo : String 1 Hoang 1/4/1969 12 Nguyen Trai 4324345
/averageMark : double 2 Lan 8/16/1975 14/5 Ly Thai To 8754231
4
Mapping Collection
Employee
name : String
address : String
phoneList : List<String>
…
5
Mapping Component
Student Name
name:Name has 1 firstName
phoneNo
lastName
…
6
Mapping Association 1-1
Khởi tạo khóa chính của một quan hệ vào quan hệ
còn lại.
Được gọi là khóa ngoại (Foreign Key).
TAIXE XE
được giao
tenTX SoDKXe
soDT 1 0..1 HieuXe
xe: XE MauXe
… …
8
Mapping Association 1-n
Khởi tạo khóa chính của quan hệ mặt “một” trong
quan hệ mặt “nhiều.
Ví dụ:
Staff Department
thuộc
name 0..n 0..1 name
sex location
… …
9
Mapping Association 1-n dùng Join table
Customer Order
name has
1 0..n orderedDate
address shipDate
… …
10
Biểu diễn quan hệ n-n
Mối quan hệ n-n được biểu diễn bằng một quan hệ
mới có khóa chính là tổ hợp các khóa chính của 2
quan hệ gốc.
Lecture Offering
teach
name 1..n 0..n startDate
email daysTimes
… …
grade
Record
relationship by
storing key of
LoanNumber CustomerNumber AmountBorrowed one side in the
123 456 32,000 table on the
156 321 13,000 many side
15
Quan hệ đệ quy 1-1
EMPLOYEE
name 0..1
sex
…
married
0..1
Customer introducing
name person
0..1
address
…
0..n
contain
quantity
20
Quan hệ Generalization - Specialization
SINHVIEN
tenSV
gioitinh
diachi
…
hệ đào tạo
21
Quan hệ Tổng quát hóa – Đặc biệt hóa
EMPLOYEE
name
address
hiredDate
…
22
Quan hệ Tổng quát hóa – Đặc biệt hóa
Giải pháp 1:
EMPLOYEE (EmployeeID, Name, Address, HiredDate, EmployeeType,
HourLyRate, AnnalSalary, StockOption, ContractNumber, BillingRate)
Giải pháp 2:
EMPLOYEE (EmployeeID, Name, Address, HiredDate)
HOURLYEMPLOYEE (EmployeeID, HourlyRate)
SALARYEMPLOYEE (EmployeeID , AnnalSalary, StockOption)
CONSULTANT (EmployeeID, ContractNumber, BillingRate)
Giải pháp 3:
HOURLYEMPLOYEE (HourlyEmployeeID, Name, Address, HiredDate
HourlyRate)
SALARYEMPLOYEE (SalaryEmployeeID , Name, Address, HiredDate
AnnalSalary, StockOption)
CONSULTANT (ConsultantEmployeeID, Name, Address, HiredDate
ContractNumber, BillingRate)
23
Các quan hệ đặc biệt khác
Player Team
name in
1..22 1 name
address coachName
… …
24
Các quan hệ đặc biệt khác
Lecture Offering
name teach startDate
1..2 0..n
email daysTimes
… …