Chương 5: Relational mapping

49
1 Giao trinh BM HTTT - Khoa CNTT - HUI

description

Chương 5: Relational mapping. Các bước triển khai sơ đồ ý niệm. Design the conceptual schema Annotate the conceptual schema with mapping choices as needed Map the design to a logical schema Finesse the logical schema as needed Generate the physical schema - PowerPoint PPT Presentation

Transcript of Chương 5: Relational mapping

Page 1: Chương 5: Relational mapping

1Giao trinh BM HTTT - Khoa CNTT -

HUI

Page 2: Chương 5: Relational mapping

1. Design the conceptual schema 2. Annotate the conceptual schema with

mapping choices as needed 3. Map the design to a logical schema4. Finesse the logical schema as needed5. Generate the physical schema6. Create external schema(s) (e.g., forms,

reports) 7. Enforce security levels as needed 8. Populate the database 9. Issue queries and updates 10. Update the schemas as needed

2Giao trinh BM HTTT - Khoa CNTT - HUI

Page 3: Chương 5: Relational mapping

• Sơ đô quan hê (relational schema) la 1 tâp cac đinh nghia bang quan hê, cac rang buôc va ca quy luât suy diên

• Câu truc cua 1 bang quan hê đươc goi la table scheme hay biên quan hê (relation variable), No chưa 1 tâp hơp cac thuôc tinh va miên gia tri tương ưng (domain) cua môi thuôc tinh.

• Ưng vơi môi sơ đô bang co thê đươc phân bô bơi 1 tâp hơp cac hang (tuple) , nhưng phân bô nay không thuôc vao chinh sơ đô bang

3Giao trinh BM HTTT - Khoa CNTT - HUI

Page 4: Chương 5: Relational mapping

4Giao trinh BM HTTT - Khoa CNTT - HUI

Page 5: Chương 5: Relational mapping

Rang buôc duy nhât (uniqueness constraint) đươc chi ra băng đương gach dươi. ◦Khoa dư tuyên (candidate key)◦Khoa chinh (primary key): la 1 trong cac

khoa dư tuyên, cac khoa dư tuyên con lai goi la "alternate keys“ hay "secondary keys“. Khoa chinh ky hiêu băng đương gach dươi đôi nêu co tôn tai cac alternate key khac.

5Giao trinh BM HTTT - Khoa CNTT - HUI

Page 6: Chương 5: Relational mapping

Nêu chi co 1 candidate key thi măc đinh no la primary key

Nêu co nhiêu hơn 1 candidate key

empNr la khoa chinh

6Giao trinh BM HTTT - Khoa CNTT - HUI

Primary key Secondary key

Page 7: Chương 5: Relational mapping

Côt không cho phep co gia tri null đươc goi la băt buôc (mandatory)

Côt cho phep gia tri null đươc goi la tuy chon (optional), ky hiêu []

Vi du: Employee( empNr, salary, [tax] ) , tax la côt optional

7Giao trinh BM HTTT - Khoa CNTT - HUI

Page 8: Chương 5: Relational mapping

Anh xa tư mô hinh ORM thanh sơ đô quan hê

Do tax co quan hê la tuy chon trong ORM nên khi chuyên sang ER no thanh côt tuy chon [tax]

8Giao trinh BM HTTT - Khoa CNTT - HUI

Page 9: Chương 5: Relational mapping

Rang buôc vai tro băt buôc (Mandatory role) đươc chuyên thanh côt băt buôc trong bang va rang buôc subset se đươc chuyên vao bang khac (nêu cân) chưa gia tri vê loai đôi tương đo.

9Giao trinh BM HTTT - Khoa CNTT - HUI

Page 10: Chương 5: Relational mapping

Do luât cơ ban drives la m:n nên no đươc map thanh 1 bang quan hê khac.

Rang buôc vai tro băt buôc chi đươc thê hiên 1 phân 1 nghiêp vu: không co 1 han chê nao khi đưa ma sô nhân viên vao bang Drive ma ma sô nay không co trong bang Employee.

Employee( empNrg, gender, salary, [tax] )Drive(EmpNr, CarRegNo)

10Giao trinh BM HTTT - Khoa CNTT - HUI

Page 11: Chương 5: Relational mapping

Lam thê nao đê anh xa rang buôc role băt buôc?

Môt role r la băt buôc đôi vơi đôi tương loai O chi nêu phân bô cua môi role khac bơi O phai la 1 subset cua phân bô cua r. Vi vây môi role tuy chon cua 1 đôi tương đêu co 1 rang buôc subset ngâm đinh.

11Giao trinh BM HTTT - Khoa CNTT - HUI

Page 12: Chương 5: Relational mapping

Đê thê hiên rang buôc subset cua role drives, thêm vao lươc đô quan hê 1 rang buôc subset tư côt empNr cua bang Drives vao côt empNr cua bang Employee

12Giao trinh BM HTTT - Khoa CNTT - HUI

Page 13: Chương 5: Relational mapping

Rang buôc subset trong lươc đô quan hê thê hiên băng mui tên đưt net bao đam “any employee listed as driving a car is also listed in the Employee table”

13Giao trinh BM HTTT - Khoa CNTT - HUI

Page 14: Chương 5: Relational mapping

Theo thuât ngư quan hê, rang buôc subset đươc goi la rang buôc bao toan tham chiêu (referential integrity constraint).

Thuôc tinh empNr cua bang Drives la khoa ngoai (foreign key) tham chiêu đên thuôc tinh empNr cua bang Employee.

14Giao trinh BM HTTT - Khoa CNTT - HUI

Page 15: Chương 5: Relational mapping

Hai quy luât bao toan cơ ban (integrity rules)◦ Bao toan thưc thê (entity integrity): yêu câu khoa

chinh không đươc chưa gia tri nulls◦ Bao toan tham chiêu (Referential integrity): môi

gia tri khac null cua khoa ngoai phai khơp vơi 1 gia tri nao đo cua khoa chinh.

Ngươi dung cung co thê đưa ra cac rang buôc cua ngươi dung (user-defined constraint) va cac quy luât suy diên.

15Giao trinh BM HTTT - Khoa CNTT - HUI

Page 16: Chương 5: Relational mapping

Hay anh xa lươc đô ORM trên thanh lươc đô ER

16Giao trinh BM HTTT - Khoa CNTT - HUI

Page 17: Chương 5: Relational mapping

17Giao trinh BM HTTT - Khoa CNTT - HUI

Page 18: Chương 5: Relational mapping

Page 492

18Giao trinh BM HTTT - Khoa CNTT - HUI

Page 19: Chương 5: Relational mapping

Tư môt lươc đô y niêm co thê co nhiêu thiêt kê lươc đô quan hê khac nhau.

Đê chon 1 lươc đô quan hê, cân dưa vao 3 tiêu chuân: correct, efficient, and clear. ◦ Correct: phai tương đương vơi lươc đô y niêm◦ Efficient: thơi gian đap ưng truy vân nhanh va đoi

hoi không gian lưu trư hơp ly◦ Clear: lươc đô phai tương đôi dê hiêu va dê lam

viêc vơi no

Tiêu chuân nao la quan trong nhât???

19Giao trinh BM HTTT - Khoa CNTT - HUI

Page 20: Chương 5: Relational mapping

Correct:la tiêu chuân quan trong nhât. Đê bao đam tinh đung đăn cua dư liêu trong

lươc đô quan hê thi cân phai tranh dư thưa (avoid redundancy)

Môt thu tuc mơi đê anh xa la Rmap (Relational mapping).

Rmap bao đam lươc đô quan hê không bi dư thưa va han chê sô bang.

Rmap mơ rông va tinh chinh thu tuc cu hơn "Optimal Normal Form" (ONF) .

20Giao trinh BM HTTT - Khoa CNTT - HUI

Page 21: Chương 5: Relational mapping

Bươc cơ ban cua Rmap la :” Redundancy is repetition of an atomic fact. ”. Nêu bao đam loai quan hê la atomic thi dê dang tranh đươc dư thưa trong cac bang quan hê.

Thương môi hang cua bang quan hê se chưa 1 hay nhiêu luât cơ ban (elementary facts). Ngươc lai hang cua bang chưa 1 loai tham chiêu.

21Giao trinh BM HTTT - Khoa CNTT - HUI

Page 22: Chương 5: Relational mapping

Đê tranh dư thưa trong cac bang phai bao đam “each fact type maps to only one table in such a way that its instances appear only once”.

Hai quy luât nhom (grouping) cơ ban đê thưc thi qui đinh trên

22Giao trinh BM HTTT - Khoa CNTT - HUI

Page 23: Chương 5: Relational mapping

23Giao trinh BM HTTT - Khoa CNTT - HUI

Page 24: Chương 5: Relational mapping

Co 2 loai quan hê chưc năng (functional role) đươc găn vơi loai đôi tương A.

24Giao trinh BM HTTT - Khoa CNTT - HUI

Page 25: Chương 5: Relational mapping

Giao trinh BM HTTT - Khoa CNTT - HUI 25

Page 26: Chương 5: Relational mapping

Giao trinh BM HTTT - Khoa CNTT - HUI 26

Rang buôc ngang băng (equality constraint) đươc chi ra băng đương mui tên đưt net nôi giưa cac trương empNr cua ca 2 bang. Vi ca 2 role cua Academic đêu la băt buôc va môi role anh xa thanh 1 bang riêng biêt. Rang buôc ngang băng đươc xem như la 2 rang buôc subset ngươc chiêu nhau, tao ra 1 vong tham chiêu (referential cycle)

Page 27: Chương 5: Relational mapping

Rang buôc subset tư Qualification.empNr đên Academic.empNr la rang buôc foreign key vi no tham chiêu đên 1 primary key. Nhưng rang buôc subset tư Academic.empNr đên Qualification.empNr không phai la rang buôc foreign key vi no chi tham chiêu đên 1 phân cua primary key.

27Giao trinh BM HTTT - Khoa CNTT - HUI

Page 28: Chương 5: Relational mapping

Giao trinh BM HTTT - Khoa CNTT - HUI 28

Môi race co nhiêu nhât 1 winner. Gender va weight la cac role chưc năng găn vơi Horse.Tên côt "winner" đươc dung thay thê "horseName" đê phu hơp vơi ngư nghia hơn.

Page 29: Chương 5: Relational mapping

Trong ORM, Bankcard va Client co môi kêt hơp 1:1. Nêu Bankcard không co thêm 1 role chưc năng nao khac, nên nhom vơi cac loai chưc năng khac vao cung 1 bang.

29Giao trinh BM HTTT - Khoa CNTT - HUI

Page 30: Chương 5: Relational mapping

Côt bankcard la tuy chon, co thê co gia tri null, nên se gây bât lơi nhiêu hơn khi gom cac côt vao cung 1 bang.

Bankcard đươc gach dươi đê chi ra UC vơi cac gia tri khac null nhưng no co thê chưa 1 hay nhiêu gia tri null côt bankcard không thê lam khoa chinh.

30Giao trinh BM HTTT - Khoa CNTT - HUI

Page 31: Chương 5: Relational mapping

Vơi 2 UC, clientNr đươc gach dươi băng net đôi đê chi no la primary key.

Nhưng nêu Bankcard co thêm cac role chưc năng khac thi nên nhom cac môi quan hê cua bankcard thanh 1 bang khac.

31Giao trinh BM HTTT - Khoa CNTT - HUI

Page 32: Chương 5: Relational mapping

32Giao trinh BM HTTT - Khoa CNTT - HUI

Page 33: Chương 5: Relational mapping

Trong môi kêt hơp 1:1, thương chi co 1 role la băt buôc, tôt hơn hêt la hay nhom trên phia role băt buôc.

33Giao trinh BM HTTT - Khoa CNTT - HUI

Page 34: Chương 5: Relational mapping

Trong môi kêt hơp 1:1 giưa Employee va Department thi Employee la tuy chon va Department la băt buôc. Vi vây thương thi nên nhom bên phia băt buôc, đưa côt headEmpNr vao trong bang Department

34Giao trinh BM HTTT - Khoa CNTT - HUI

Page 35: Chương 5: Relational mapping

Nhom bên phia role băt buôc

Nêu nhom bên phia tuy chon, đưa côt deptHeaded vao bang Employee.

35Giao trinh BM HTTT - Khoa CNTT - HUI

Page 36: Chương 5: Relational mapping

Nêu theo cach nhom theo phia tuy chon thi co 2 nhươc điêm sau:◦Côt tuy chon deptHeaded cho phep gia

tri null, ma gia tri null thi nên tranh dung vi ngoai viêc tôn không gian lưu trư, no thương bât tiên cho ngươi dung.

◦Rang buôc equality giưa cac bang thay cho rang buôc subset.

36Giao trinh BM HTTT - Khoa CNTT - HUI

Page 37: Chương 5: Relational mapping

Rang buôc duy nhât ngoai thương co 2 dang:◦ Dang lươc đô tham chiêu phưc◦ Dang UC ngoai thưc sư liên quan đên cac loai

quan hê (fact type) khac nhau trong lươc đô

37Giao trinh BM HTTT - Khoa CNTT - HUI

Page 38: Chương 5: Relational mapping

Cac bươc đê anh xa rang buôc duy nhât ngoai dang sơ đô tham chiêu phưc:◦ Bo qua sơ đô tham chiêu cua môi loai đôi tương◦ Nhom cac quan hê vao cac bang băng cach

dung ky tư thay thê đơn gian cho cac role cua đôi tương.

◦ Thay thê môi ky hiêu băng cac thuôc tinh đươc dung trong bang đê xac đinh đôi tương.

38Giao trinh BM HTTT - Khoa CNTT - HUI

Page 39: Chương 5: Relational mapping

Tư môi quan hê “Employee e is of Gender g” anh xa thanh Employee(e,g)

Thay thê g thanh gender, vi e liên quan đên sơ đô tham chiêu phưc nên no đươc anh xa thanh familyName, initials

39Giao trinh BM HTTT - Khoa CNTT - HUI

Page 40: Chương 5: Relational mapping

40Giao trinh BM HTTT - Khoa CNTT - HUI

Page 41: Chương 5: Relational mapping

Khac 2 sơ đô trên, Employee co khoa chinh đơn. UC ngoai liên quan đên 2 loai quan hê

UC nay đươc anh xa thanh UC chưa ca surname va initials trong bang quan hê.

Khi đo UC trên khoa chinh se chưa ca 3 UC đơn tương ưng vơi 3 UC trong ORM.

41Giao trinh BM HTTT - Khoa CNTT - HUI

Page 42: Chương 5: Relational mapping

42Giao trinh BM HTTT - Khoa CNTT - HUI

Page 43: Chương 5: Relational mapping

Nêu UC ngoai liên quan đên 1 tâp cac role co 1 role m:n (LabSession is assigned to Student).

43Giao trinh BM HTTT - Khoa CNTT - HUI

Page 44: Chương 5: Relational mapping

Vi loai quan hê m:n đươc anh xa thanh 1 bang, UC ngoai se liên quan đên ca 2 bang tương đương vơi 1 UC nôi nôi courseCode va studentNr trong kêt nôi nôi cua 2 bang.

44Giao trinh BM HTTT - Khoa CNTT - HUI

Page 45: Chương 5: Relational mapping

45Giao trinh BM HTTT - Khoa CNTT - HUI

Page 46: Chương 5: Relational mapping

Môi kêt hơp Employee worked on Project đươc đôi tương hoa thanh Work.

Loai đôi tương hoa nay co 1 role băt buôc va 1 role tuy chon, ca hai role đêu role chưc năng.

46Giao trinh BM HTTT - Khoa CNTT - HUI

Page 47: Chương 5: Relational mapping

Xem môi kêt hơp đôi tương hoa nay như 1 "black box", va loai đôi tương Work chi co 2 loai quan hê chưc năng nên đươc nhom vao cung 1 bang. Ky hiêu Work như 1 black box

Bang kêt qua Work( , startdate, [enddate] )

Thay thê thanh cac thuôc tinh empNr va projectNameWork(empNr, projectName, startdate,

[enddate])

47Giao trinh BM HTTT - Khoa CNTT - HUI

Page 48: Chương 5: Relational mapping

48Giao trinh BM HTTT - Khoa CNTT - HUI

Page 49: Chương 5: Relational mapping

Page 514

49Giao trinh BM HTTT - Khoa CNTT - HUI