er-to-relational to relation db · สรุปขั้นตอนการสร้าง e-r...

43
ER-to-Relational to Relation DB ผศ.ดร.อนันตกุล อินทรผดุง [email protected]

Upload: others

Post on 06-Feb-2020

5 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: ER-to-Relational to Relation DB · สรุปขั้นตอนการสร้าง E-R Diagram 1. กำหนดว่ำมีเอนทีตีอะไรบำ้ง

ER-to-Relational to Relation DB

ผศ.ดร.อนนตกล อนทรผดง

[email protected]

Page 2: ER-to-Relational to Relation DB · สรุปขั้นตอนการสร้าง E-R Diagram 1. กำหนดว่ำมีเอนทีตีอะไรบำ้ง

สรปขนตอนการสราง E-R Diagram

1. ก ำหนดวำมเอนทตอะไรบำง2. ก ำหนดควำมสมพนธระหวำงเอนทต3. ก ำหนดแอทรบวตของเอนทตใหครบ4. พจำรณำแอทรบวตทขนกบควำมสมพนธ5. เลอกคยหลก

Page 3: ER-to-Relational to Relation DB · สรุปขั้นตอนการสร้าง E-R Diagram 1. กำหนดว่ำมีเอนทีตีอะไรบำ้ง

Step 1 Entity

Students

S_ID

First name Last_name

BirthYear

Students

S_ID First_name Last_name BirthYear

⚫ ขนตอนการแปลง Entity

กรณ Simple Attribute

- สรางตารางส าหรบ Entity

- ชอของตาราง น ามาจาก ชอของ Entity

- ชอของคอลมน น ามาจากชอของ Attribute ของ Entity

- Primary Key ของ ตาราง น ามาจาก Primary Key ของ Entity

Page 4: ER-to-Relational to Relation DB · สรุปขั้นตอนการสร้าง E-R Diagram 1. กำหนดว่ำมีเอนทีตีอะไรบำ้ง

Step 1 Entity

ขนตอนการแปลง Entity

กรณ Composite Attributes

- น าเพยงแอตทรบวตแบบ simple ทบรรจอยในแอตทรบวตแบบ Composite มาเทานน

Customer

cus_ID

First_name Last_name

Address

Customer

cus_ID First_name Last_name street city State zipcode

street city

state

ZipCode

Page 5: ER-to-Relational to Relation DB · สรุปขั้นตอนการสร้าง E-R Diagram 1. กำหนดว่ำมีเอนทีตีอะไรบำ้ง

Step 1 Entity

⚫ ขนตอนการแปลง Entity กรณ Multivalued Attribute

- ตองมการสรางรเลชนสองรเลชน

- รเลชนแรกจะบรรจคาแอตทรบวตทมอยใน Entity ทงหมด ยกเวนแอตทรบวตทเปนแบบ Multivalued

- รเลชนทสองใหบรรจ 2 แอตทรบวต

- แอตทรบวตแรกคอ คยหลกทอยในรเลชนแรก

- แอตทรบวตสอง คอ แอตทรบวตทเปน Multivalued

Students

S_ID

First_name Last_name

Tel

Students

S_ID First_name Last_name

Tel

Students_Tel

S_ID Tel

Page 6: ER-to-Relational to Relation DB · สรุปขั้นตอนการสร้าง E-R Diagram 1. กำหนดว่ำมีเอนทีตีอะไรบำ้ง

Multivalued Attributes- Relational Model จะยอมใหมเพยง 1 ขอมลในแตละ attribute- Multivalued attribute ใน ER Model จะถกสรางเปนตารางใหม เพอเกบขอมลโดยเฉพาะ

Instructor

ID

Name

Tel

Instructor

ID Name

Degrees

Instructor_degree

ID Degree

Page 7: ER-to-Relational to Relation DB · สรุปขั้นตอนการสร้าง E-R Diagram 1. กำหนดว่ำมีเอนทีตีอะไรบำ้ง

Step 2 Weak Entity

ขนตอนการแปลง Weak Entity

⚫ - สรำงตำรำงใหมส ำหรบ Weak Entity น ำ Primary Key จำก Master Entity มำเปน Primary Key รวมกบ Primary Key เดมของ Weak Entity

⚫ Attribute นนจะมำเปน Foreign Key ส ำหรบชไปยง ตำรำงของ Master Entity

Page 8: ER-to-Relational to Relation DB · สรุปขั้นตอนการสร้าง E-R Diagram 1. กำหนดว่ำมีเอนทีตีอะไรบำ้ง

Step 2 Weak Entity

EMPLOYEE

emp_ID emp_firstName emp_LastName

DEPENDENT

firstName lastname emp_ID birthDate gender

EMPLOYEE

emp_ID

emp_firstName

claims

emp_LastName

1 M

dependentnamebirthDate

gender

First Name

LastName

DEPENDENT

Page 9: ER-to-Relational to Relation DB · สรุปขั้นตอนการสร้าง E-R Diagram 1. กำหนดว่ำมีเอนทีตีอะไรบำ้ง

Step 2 Weak Entity

Building

Building_name …

Room

Building_name Room_number …

Building

Building_name

has1 M

Room

… Room_number …

Page 10: ER-to-Relational to Relation DB · สรุปขั้นตอนการสร้าง E-R Diagram 1. กำหนดว่ำมีเอนทีตีอะไรบำ้ง

Step 3 : One-to-Many Relationship

แปลงความสมพนธแบบ One-to-Many

- น ำ Primary Key ฝง One ไปเพมเปนคอลมน ในฝง Many- คอลมน นนจะเปน Foreign Keyอำงถง Primary Key ของตำรำงทตองกำรอำงถง(ฝง One)- กำรแปลง Many-to-One กกระท ำอยำงเดยวกน

Page 11: ER-to-Relational to Relation DB · สรุปขั้นตอนการสร้าง E-R Diagram 1. กำหนดว่ำมีเอนทีตีอะไรบำ้ง

Step 4 : Many -to-Many Relationship

⚫ แปลงความสมพนธแบบ Many-to-Many

- สรำงตำรำงของควำมสมพนธขนมำ 1 ตำรำงเพอเกบPrimary Key ของทง 2 ตำรำง- คอลมนทไดใหมทง 2 คอลมนจะเปน Foreign Key ชไปยงตำรำงทดงมำ - ใช Entity ใหม ทไดมำเปนทง 2 Entity เปน Primary Key ของตำรำงควำมสมพนธ

Page 12: ER-to-Relational to Relation DB · สรุปขั้นตอนการสร้าง E-R Diagram 1. กำหนดว่ำมีเอนทีตีอะไรบำ้ง

Step 4 : Many -to-Many Relationship

STUDENT

S_ID …

STUDENT

S_ID

takesM N

COURSE

C_ID…

COURSE

C_ID …

STUDENT_COURSE

S_ID C_ID

STUDENT

S_ID

takes1 M M 1

COURSE

C_ID ……

Page 13: ER-to-Relational to Relation DB · สรุปขั้นตอนการสร้าง E-R Diagram 1. กำหนดว่ำมีเอนทีตีอะไรบำ้ง

Step 4 : Many -to-Many Relationship

STUDENT

S_ID …

STUDENT

S_ID

takesM N

COURSE

C_ID…

COURSE

C_ID …

STUDENT_COURSE

S_ID C_ID Registration_date

STUDENT

S_ID

takes1 M M 1

COURSE

C_ID ……

Registration_date

Registration_date

Page 14: ER-to-Relational to Relation DB · สรุปขั้นตอนการสร้าง E-R Diagram 1. กำหนดว่ำมีเอนทีตีอะไรบำ้ง

ขอสงเกต

ขอสงเกต

⚫ คอลมนของตำรำงทคลำยๆ กน ควรมชอทแตกตำงกน⚫ เชน ID เปนชอของ Primary Key ของตำรำง 2 ตำรำง 1 ใน 2

ตำรำงนนควรจะเปลยนชอกอนทจะเพมตำรำงใหมลงไป⚫ กำรเปลยนควรจะ ท ำโดยกำรเพมชอของ Entity ลงไป ใน ชอ

Attribute นน เชน Student_id, Instructor_id

Page 15: ER-to-Relational to Relation DB · สรุปขั้นตอนการสร้าง E-R Diagram 1. กำหนดว่ำมีเอนทีตีอะไรบำ้ง

ขอสงเกต

Page 16: ER-to-Relational to Relation DB · สรุปขั้นตอนการสร้าง E-R Diagram 1. กำหนดว่ำมีเอนทีตีอะไรบำ้ง

Step 5 : One-to-One Relationship

โดยทวไป กำรแปลงเหมอนกบกำรแปลงแบบ One-to-Many Relationship คอ เพม Primary Key จำกดำนใดดำนหนงไปเปน Attribute ของอกดำน

Page 17: ER-to-Relational to Relation DB · สรุปขั้นตอนการสร้าง E-R Diagram 1. กำหนดว่ำมีเอนทีตีอะไรบำ้ง

Step 5 : One-to-One Relationship

⚫ ส ำหรบกำรออกแบบทดขน กำรแปลง One-to-One Relationship จะแบงออกเปน 3 กรณ

Page 18: ER-to-Relational to Relation DB · สรุปขั้นตอนการสร้าง E-R Diagram 1. กำหนดว่ำมีเอนทีตีอะไรบำ้ง

Step 5 : One-to-One Relationship

⚫ Transforming One-to-One Relationship : (0,1) และ (1,1)

- จะดทสดถำน ำ Primary Key ฝง (0,1) ไปเพมเปน Attribute ทำงฝง (1,1) เพอหลกเลยง Null

Page 19: ER-to-Relational to Relation DB · สรุปขั้นตอนการสร้าง E-R Diagram 1. กำหนดว่ำมีเอนทีตีอะไรบำ้ง

Step 5 : One-to-One Relationship

⚫ Transforming One-to-One Relationship : (0,1) และ (0,1)

⚫ - น ำ Primary Key ของฝงใดฝงหนง ไปเปน attribute ของอกฝงหนง(ไมสำมำรถหลกเลยงคำ Null ได

Page 20: ER-to-Relational to Relation DB · สรุปขั้นตอนการสร้าง E-R Diagram 1. กำหนดว่ำมีเอนทีตีอะไรบำ้ง

Step 5 : One-to-One Relationship

⚫ หรอเปลยนควำมสมพนธใหเปนตำรำงใหม โดยน ำ Primary Keyของทง 2 ฝงไปเปน attribute เพอหลกเลยงคำ Null

Page 21: ER-to-Relational to Relation DB · สรุปขั้นตอนการสร้าง E-R Diagram 1. กำหนดว่ำมีเอนทีตีอะไรบำ้ง

Step 5 : One-to-One Relationship

Transforming One-to-One Relationship : (1,1) และ (1,1)- รวม 2 ตารางเปน 1 ตาราง- เลอก Primary key จาก Primary Key ของตารางใดตารางหนง- Primary Key ของตารางทเหลอจะเปน Alternate Key

Page 22: ER-to-Relational to Relation DB · สรุปขั้นตอนการสร้าง E-R Diagram 1. กำหนดว่ำมีเอนทีตีอะไรบำ้ง

Step 6 : การแปลงความสมพนธแบบ Unary

❖ ความสมพนธแบบ Unary เปนความสมพนธระหวางเอนทตเดยว หรอเรยกวา ความสมพนธแบบรเคอรซพ

❖ ความสมพนธ❖ ความสมพนธแบบ Unary ชนดหนงตอกลม (1:M)❖ ความสมพนธแบบ Unary ชนดกลมตอกลม (M:N)

Page 23: ER-to-Relational to Relation DB · สรุปขั้นตอนการสร้าง E-R Diagram 1. กำหนดว่ำมีเอนทีตีอะไรบำ้ง

Step 6 : การแปลงความสมพนธแบบ Unary

❖ ความสมพนธแบบ Unary ชนดหนงตอกลม (1:M)

EMPLOYEE

emp_ID emp_Name birthDate managerID

EMPLOYEE

emp_ID

manages

M

1

emp_Name

birthDate

Page 24: ER-to-Relational to Relation DB · สรุปขั้นตอนการสร้าง E-R Diagram 1. กำหนดว่ำมีเอนทีตีอะไรบำ้ง

Step 6 : การแปลงความสมพนธแบบ Unary❖ ความสมพนธแบบ Unary ชนดกลมตอกลม (M:N)

ITEM

item_ID item_Name unitCost

ITEM

item_No

contains

N

M

item_Name

unitCost

quantity

ITEM_Component

item_ID Component_NO quantity

❖ จะตองสรางรเลชน 2 รเลชนดวยกน

❖ โดยรเลชนแรกจะมคยหลกพรอมแอตทรบวตทเกยวของ

❖ สวนอกรเลชนประกอบดวย 2 แอตทรบวตทใชเปนคยหลก ซงแอตทรบวททง 2 กคอคาขอมลเดยวกนกบคยหลกในเอนทตแรก แตเปลยนชอใหแตกตางกน

Page 25: ER-to-Relational to Relation DB · สรุปขั้นตอนการสร้าง E-R Diagram 1. กำหนดว่ำมีเอนทีตีอะไรบำ้ง

Step 7 : การแปลงความสมพนธแบบ Ternary (and n-ary)❖ ความสมพนธแบบ Ternary เปนความสมพนธระหวางเอนทต 3 ตว

ดวยกน

PATIENT

patient_ID

Patient_Treatment

M

patient_Name

PHYSICAIN

physician_IDphysician

_Name

M

TREATMENTtreatmentCode description

Mresults date

time

Page 26: ER-to-Relational to Relation DB · สรุปขั้นตอนการสร้าง E-R Diagram 1. กำหนดว่ำมีเอนทีตีอะไรบำ้ง

Step 7 : การแปลงความสมพนธแบบ Ternary (and n-ary)❖ ขนท 1 ในการแปลง

PATIENT

patient_ID

Patient_Treatment

1 M

patient_Name

PHYSICAIN

physician_IDphysician

_Name

M 1

TREATMENTtreatmentCode description

M

1results date

time

Page 27: ER-to-Relational to Relation DB · สรุปขั้นตอนการสร้าง E-R Diagram 1. กำหนดว่ำมีเอนทีตีอะไรบำ้ง

Step 7 : การแปลงความสมพนธแบบ Ternary (and n-ary)

PATIENT

patient_ID patient_Name

PHYSICIAN

physician_ID physicianName

❖ จะตองสรางรเลชน 4 รเลชนดวยกน

❖ โดยจะมเอนทตหนงเชอมโยงระหวาง 3 เอนทตเขาดวยกน

❖ เอนทตนนจะน าคยหลกใน 3เอนทตมาเปนคยหลก และอาจเพมเตมคยหลกได

❖ ขนท 2 ในการแปลง

PATIENT_TREATMENT

patient_ID physician_ID treatmentCode date time results

TREATMENT

treatmentCode description

Page 28: ER-to-Relational to Relation DB · สรุปขั้นตอนการสร้าง E-R Diagram 1. กำหนดว่ำมีเอนทีตีอะไรบำ้ง

Step 8 : การแปลงความสมพนธแบบ Supertypeและ Subtype

❖ ปกตแลวแบบจ าลองขอมลเชงสมพนธจะไมสนบสนนความสมพนธแบบ Supertype/Subtype แตอยางไรกตาม กยงมแนวทางในการออกแบบเพอรองรบความสมพนธดงกลาวไดดงน❖ ใหสรางรเลชนแยกออกตางหาก ส าหรบซเปอรไทปและแตละซบไทป❖ แอตตรบวตของซบไทปจะไดรบการถายทอดจากรเลชนทเปนซเปอร

ไทป รวมถงแอตตรบวตทเปนคยหลกดวย❖ ก าหนดคยหลกใหกบแตละรเลชนทเปนซบไทป โดยจะตองมแอตตร

บวตทแตกตางกน เพอใชระบความแตกตางของแตละซบไทป❖ ก าหนด Subtype Discriminator ใหกบ Supertype

Page 29: ER-to-Relational to Relation DB · สรุปขั้นตอนการสร้าง E-R Diagram 1. กำหนดว่ำมีเอนทีตีอะไรบำ้ง

Step 8 : การแปลงความสมพนธแบบ Supertype และ Subtype

empNo

hourlyRatesalary

SALARIED_EMP HOURLY_EMP

EMPLOYEE

d

CONSULTANT

bonus

name address

dataHired

contractNo BillingRate

Page 30: ER-to-Relational to Relation DB · สรุปขั้นตอนการสร้าง E-R Diagram 1. กำหนดว่ำมีเอนทีตีอะไรบำ้ง

Step 8 : การแปลงความสมพนธแบบ Supertype และ Subtype

HOURLY_EMP

hempNo hourlyRate

SALARIED_EMP

sempNo salary bonus

EMPLOYEE

empNo name address dataHired

CONSULTANT

cempNo contractNo BillingRate

Page 31: ER-to-Relational to Relation DB · สรุปขั้นตอนการสร้าง E-R Diagram 1. กำหนดว่ำมีเอนทีตีอะไรบำ้ง

ปญหาในออารโมเดล (Problem with ER Model)

เปนปญหาทเกดจากในขนตอนการออกแบบในเชงความคดหรอทางลอจคอล เปนการสรางความสมพนธระหวางเอนตตทผดกอใหเกดการแปลความหมายความสมพนธสมพนธผดพลาดได โดยความผดพลาดหรอปญหาใน ER Model จะมอยสองรปแบบดวยกนคอ

1. Fan Traps

2. Chasm Traps

Page 32: ER-to-Relational to Relation DB · สรุปขั้นตอนการสร้าง E-R Diagram 1. กำหนดว่ำมีเอนทีตีอะไรบำ้ง

ปญหาจากการออกแบบฐานขอมลดวยอ-อารโมเดล

1. Fan Trap เปนปญหาทเกยวของกบลกษณะการจดความสมพนธระหวางเอนทต ท าใหเกดความไมชดเจนในการแสดงขอมลทสนใจออกมา ซงมกพบในกรณทเอนทตหนงมความสมพนธแบบหนงตอกลมกบเอนทตอนตงแตสองเอนทตขนไป

Page 33: ER-to-Relational to Relation DB · สรุปขั้นตอนการสร้าง E-R Diagram 1. กำหนดว่ำมีเอนทีตีอะไรบำ้ง

ตวอยางปญหา Fan Trap สถาบนการศกษาแหงหนงเปดท าการสอนหลายคณะ โดยในแตละคณะประกอบดวยภาควชาตาง ๆ หลายภาควชา และอาจารยหลายคน ซงอาจารยแตละคนจะสงกดคณะใดคณะหนงเทานน หากก าหนดใหความสมพนธระหวางแตละเอนทตเปนดงน

Page 34: ER-to-Relational to Relation DB · สรุปขั้นตอนการสร้าง E-R Diagram 1. กำหนดว่ำมีเอนทีตีอะไรบำ้ง

อาจารยสงกดภาควชาใด?? เนองจากไมมความสมพนธระหวางเอนทตภาควชา

Page 35: ER-to-Relational to Relation DB · สรุปขั้นตอนการสร้าง E-R Diagram 1. กำหนดว่ำมีเอนทีตีอะไรบำ้ง
Page 36: ER-to-Relational to Relation DB · สรุปขั้นตอนการสร้าง E-R Diagram 1. กำหนดว่ำมีเอนทีตีอะไรบำ้ง

ปญหาจากการออกแบบฐานขอมลดวยอ-อารโมเดล

2. Chasm Trap เปนปญหาทเกยวของกบการแสดงขอมลทควรจะมไมได หรอไมสามารถเชอมโยงเพอใหไดขอมลทครบถวนได โดยปญหานมกพบเมอเอนทตหนงมความสมพนธกบเอนทตอนตงแตสองเอนทต ขนไป แตไมสามารถเชอมโยงความสมพนธระหวางขอมลได

Page 37: ER-to-Relational to Relation DB · สรุปขั้นตอนการสร้าง E-R Diagram 1. กำหนดว่ำมีเอนทีตีอะไรบำ้ง

ตวอยาง Chasm Trap ก าหนดใหแตละภาควชาประกอบดวยอาจารยหลายคน ซงอาจารยแตละคนจะสงกดภาควชาใดภาควชาหนงเทานน และอาจารยแตละคนอาจท าการสอนไดมากกวาหนงชดวชา โดยแตละชดวชาอาจมอาจารยผสอนมากกวาหนงคนกได หากก าหนดใหความสมพนธระหวางแตละเอนทตเปนดงน

Page 38: ER-to-Relational to Relation DB · สรุปขั้นตอนการสร้าง E-R Diagram 1. กำหนดว่ำมีเอนทีตีอะไรบำ้ง

ถำชดวชำไมเคยเปดสอน กจะไมมอำจำรยคนใดสอน ท ำใหไมทรำบวำชดวชำนนอยในภำควชำใด

Page 39: ER-to-Relational to Relation DB · สรุปขั้นตอนการสร้าง E-R Diagram 1. กำหนดว่ำมีเอนทีตีอะไรบำ้ง
Page 40: ER-to-Relational to Relation DB · สรุปขั้นตอนการสร้าง E-R Diagram 1. กำหนดว่ำมีเอนทีตีอะไรบำ้ง

แบบฝกหด

1. จงวำดรป ER Diagram ของระบบรำนเชำวดโอแหงหนง ประกอบดวย

⚫ แฟมสมำชก(member) ขอมลทเกบ รหสลกคำ , ชอ , ทอย,เบอรโทร⚫ แฟมชอเรอง(title) ขอมลทเกบ รหสเรอง, ชอเรอง , ผก ำกบ ,

นกแสดง (Mutivalue attribute)⚫ แฟมประเภท(category) ขอมลทเกบ รหสประเภท,รำยละเอยดจำกนนใหแปลง ER Diagram ขำงตน ใหเปนตำรำงใหถกตอง

Page 41: ER-to-Relational to Relation DB · สรุปขั้นตอนการสร้าง E-R Diagram 1. กำหนดว่ำมีเอนทีตีอะไรบำ้ง

2. จงแปลง ER Diagram ตอไปนใหเปนตาราง

NM 1 M

M

1

Page 42: ER-to-Relational to Relation DB · สรุปขั้นตอนการสร้าง E-R Diagram 1. กำหนดว่ำมีเอนทีตีอะไรบำ้ง

3. จงแปลง ER Diagram ตอไปนใหเปนตาราง

อำจำรยทปรกษำ

นกศกษำประวตนกศกษำ วชำม ลงทะเบยน

รหสอำจำรยชออำจำรย หองพก

เลขทบตร วนเกด

เชอชำต ทอย

วนทเขำเรยน

รหสนกศกษำ ชอ

คณะ

ชนป

รหสวชำ

ชอวชำ

หนวยกต

11 M N

M

1

Page 43: ER-to-Relational to Relation DB · สรุปขั้นตอนการสร้าง E-R Diagram 1. กำหนดว่ำมีเอนทีตีอะไรบำ้ง

4. จงแปลง ER Diagram ตอไปนใหเปนตาราง

M N

1

MM N