Post on 15-Jan-2016
description
LOGO
1
Chapter 8 : Chapter 8 : ขั้��นตอนการแปลงแผนภาพ ER มาเป�นร�เลชั่��น
ER-to-Relational Mapping Algorithm
Chapter 8 : Chapter 8 : ขั้��นตอนการแปลงแผนภาพ ER มาเป�นร�เลชั่��น
ER-to-Relational Mapping Algorithm4121203A ระบบฐานขั้�อม�ล
สร�ปขั้��นตอนการสร�าง E-R Diagram
1. กำ��หนดว่��มีเอนทีตีอะไรบ้��ง2. กำ��หนดคว่�มีสั�มีพั�นธ์�ระหว่��งเอนทีตี3. กำ��หนดแอทีร�บ้�ว่ตี�ของเอนทีตีให�ครบ้4. พั�จ�รณ�แอทีร�บ้�ว่ตี�ที"ข#$นกำ�บ้คว่�มี
สั�มีพั�นธ์�5. เลื&อกำคย์�หลื�กำ
การแปลง E-R Model เป�น Table
1Step Entity
ขั้��นตอนการแปลง Entity กรณี� Simple Attribute
- สัร��งตี�ร�งสั��หร�บ้ Entity- ชื่&"อของตี�ร�ง น��มี�จ�กำ ชื่&"อของ Entity- ชื่&"อของคอลื�มีน� น��มี�จ�กำชื่&"อของ Attribute ของ Entity- Primary Key ของ ตี�ร�ง น��มี�จ�กำ Primary Key ของ Entity
Students
S_IDFirst_name
Last_name
BirthYear
Students
S_ID
First_name
Last_name
BirthYear
1Step Entityขั้��นตอนการแปลง
Entity กรณี� Composite
Attributes
- น��เพัย์งแอตีทีร�บ้�ว่ตี�แบ้บ้ simple ที"บ้รรจ*อย์+�ในแอตีทีร�บ้�ว่ตี�แบ้บ้ Composite มี�เที��น�$น
Customer
cus_ID
First_name
Last_name
Address
Customercus_ID
First_name
Last_name
street
city
State
zipcode
street
city st
ateZipCode
1Step Entityขั้��นตอนการแปลง Entity
กรณี� Multivalued Attribute
- ตี�องมีกำ�รสัร��งรเลืชื่�"นสัองรเลืชื่�"น- รเลืชื่�"นแรกำจะบ้รรจ*ค��แอตีทีร�บ้�ว่ตี�ที"มีอย์+�ใน Entity ที�$งหมีด ย์กำเว่�นแอตีทีร�บ้�ว่ตี�ที"เป็-นแบ้บ้ Multivalued
- รเลืชื่�"นที"สัองให�บ้รรจ* 2 แอตีทีร�บ้�ว่ตี� - แอตีทีร�บ้�ว่ตี�แรกำค&อ คย์�หลื�กำที"
อย์+�ในรเลืชื่�"นแรกำ- แอตีทีร�บ้�ว่ตี�สัอง ค&อ
แอตีทีร�บ้�ว่ตี�ที"เป็-น Multivalued
Students
S_IDFirst_name
Last_name
Tel
Students
S_ID
First_name
Last_name
Tel
Students_Tel
S_ID
Tel
Multivalued Attributes- Relational
Model จะย์อมีให�มีเพัย์ง 1 ข�อมี+ลืในแตี�ลื�ะ attribute- Multivalued attribute ใน ER Model จะถู+กำสัร��งเป็-นตี�ร�งใหมี� เพั&"อเกำ/บ้ข�อมี+ลืโดย์เฉพั�ะ
Instructor
IDName
Tel
Instructor
ID Name
Degrees
Instructor_degree
ID Degree
SSSS 2 SSSS SSSSSSขั้��นตอนการแปลง Weak Entity- สัร��งตี�ร�งใหมี�สั��หร�บ้ Weak Entity
น�� Primary Key จ�กำ Master Entityมี�เป็-น Primary Key ร�ว่มีกำ�บ้ Primary
Key เด�มีของ Weak Entity Attribute น�$นจะมี�เป็-น Foreign Key
สั��หร�บ้ชื่$ไป็ย์�ง ตี�ร�งของ Master Entity
SSSS 2 SSSS SSSSSS
EMPLOYEE
emp_ID
emp_firstName
emp_LastName
DEPENDENT
firstNam
e
lastname
emp_ID
birthDate
gender
EMPLOYEE
emp_ID
emp_firstName
claims
emp_LastName
1 M
dependentnam
e
birthDate
gender
First
Name
LastName
DEPENDENT
SSSS 2 SSSS SSSSSS
Building
Building_name
…
Room
Building_name
Room_number
…
Building
Building_name
has1 M Room
…Room_number …
SSSS 3 SSS-SS-SSSS :SSSSSSSSSSSS
แปลงความส�มพ�นธ์%แบบ One- -to Many- น�� Primary Key ฝั่3" ง One ไป็เพั�"มีเป็-นคอลื�มีน� ในฝั่3" ง Many- คอลื�มีน� น�$นจะเป็-น Foreign
Key อ��งถู#ง Primary Keyของตี�ร�งที"ตี�องกำ�รอ��งถู#ง(ฝั่3" ง One)- กำ�รแป็ลืง - - Many to One กำ/กำระที��อย์��งเดย์ว่กำ�น
SSSS 4 - -: Many to Many Rel ati onshi p
แปลงความส�มพ�นธ์%แบบ - -Many to Many- สัร��งตี�ร�งของคว่�มีสั�มีพั�นธ์�ข#$นมี� 1 ตี�ร�งเพั&"อเกำ/บ้ Primary Key ของที�$ง 2 ตี�ร�ง- คอลื�มีน�ที"ได�ใหมี�ที�$ง 2 คอลื�มีน�จะเป็-น
Foreign Key ชื่$ไป็ย์�งตี�ร�งที"ด#งมี� - ใชื่� Entity ใหมี� ที"ได�มี�เป็-นที�$ง 2 Entity เป็-น
Primary Key ของตี�ร�งคว่�มีสั�มีพั�นธ์�
SSSS 4 - -: Many to Many Rel ati onshi p
STUDENT
S_ID …
STUDENT
S_ID
takesM N COURS
E
C_ID
……
COURSE
C_ID …
STUDENT_COURSE
S_ID C_ID
STUDENT
S_ID
takes 1 M
M 1
COURSE
C_ID
……
SSSS 4 - -: Many to Many Rel ati onshi pในกำรณที"คว่�มีสั�มีพั�นธ์�มีแอตีทีร�บ้�ว่ที� ให�น��แอตี
ทีร�บ้�ว่ที� น�$นไป็ตี�อที��ย์แอตีทีร�บ้�ว่ที�ที"น��มี�จ�กำตี�ร�งที�$ง 2 ฝั่3" ง
STUDENT
S_ID …
STUDENT
S_ID
takesM N COURS
E
C_ID
……
COURSE
C_ID
…
STUDENT_COURSE
S_ID
C_ID
Registration_date
STUDENT
S_ID
takes 1 M
M 1
COURSE
C_ID
……
Registration_date
Registration_date
ขั้�อส�งเกตขั้�อส�งเกตคอลื�มีน�ของตี�ร�งที"คลื��ย์ๆ กำ�น คว่รมีชื่&"อที"แตีกำตี��ง
กำ�นเชื่�น ID เป็-นชื่&"อของ Primary Key ของตี�ร�ง 2
ตี�ร�ง 1 ใน 2 ตี�ร�งน�$นคว่รจะเป็ลื"ย์นชื่&"อกำ�อนที"จะเพั�"มีตี�ร�งใหมี�ลืงไป็
กำ�รเป็ลื"ย์นคว่รจะ ที��โดย์กำ�รเพั�"มีชื่&"อของ Entityลืงไป็ ใน ชื่&"อ Attribute น�$น เชื่�น Student_id,Instructor_id
ขั้�อส�งเกต
SSSS 5 - - : One to OneRel ati onshi p
โดย์ที�"ว่ไป็ กำ�รแป็ลืงเหมี&อนกำ�บ้กำ�รแป็ลืงแบ้บ้ - - One to Many Relationship ค&อ เพั�"มี
Primary Key จ�กำด��นใดด��นหน#"งไป็เป็-น Attri bute ของอกำด��น
SSSS 5 - - : One to OneRel ati onshi p
สั��หร�บ้กำ�รออกำแบ้บ้ที"ดข#$น กำ�รแป็ลืง - - One to One Relationship จะแบ้�งออกำเป็-น 3 กำรณ
SSSS 5 - - : One to OneRel ati onshi p - - 01Transforming One to One Relationship : ( , ) และ
11( , )
- จะดที"สั*ดถู��น�� Primary Key ฝั่3" ง 01( , ) ไป็เพั�"มีเป็-น Attribut e ที�งฝั่3" ง 11( , ) เพั&"อหลืกำเลื"ย์ง Null
SSSS 5 - - : One to OneRel ati onshi p
- - Transforming One to One Relationship : 01( , ) และ 01( , )
- น�� Primary Key ของฝั่3" งใดฝั่3" งหน#"ง ไป็เป็-น attributeของอกำฝั่3" งหน#"ง(ไมี�สั�มี�รถูหลืกำเลื"ย์งค�� Null ได�
SSSS 5 - - : One to OneRel ati onshi p
หร&อเป็ลื"ย์นคว่�มีสั�มีพั�นธ์�ให�เป็-นตี�ร�งใหมี� โดย์น�� Primary Key ของที�$ง 2 ฝั่3" งไป็เป็-น attributeเพั&"อหลืกำเลื"ย์งค�� Null
SSSS 5 - - : One to OneRel ati onshi pTransforming One-to-One Relationship :
(1,1) แลืะ (11, )- รว่มี 2 ตี�ร�งเป็-น 1 ตี�ร�ง- เลื&อกำ Primary key จ�กำ Primary Key ของตี�ร�งใดตี�ร�งหน#"ง- Primary Key ของตี�ร�งที"เหลื&อจะเป็-น Alternate Key
SSSS 6 : การแปลงความส�มพ�นธ์%แบบ Unary คว่�มีสั�มีพั�นธ์�แบ้บ้ Unary เป็-นคว่�มีสั�มีพั�นธ์�
ระหว่��งเอ/นที�ตี$เดย์ว่ หร&อเรย์กำว่�� คว่�มีสั�มีพั�นธ์�แบ้บ้รเคอร�ซีพั
คว่�มีสั�มีพั�นธ์� คว่�มีสั�มีพั�นธ์�แบ้บ้ Unary ชื่น�ดหน#"งตี�อกำลื*�มี
(1:M) คว่�มีสั�มีพั�นธ์�แบ้บ้ Unary ชื่น�ดกำลื*�มีตี�อกำลื*�มี
(M:N)
SSSS 6 : การแปลงความส�มพ�นธ์%แบบ Unary ความส�มพ�นธ์%แบบ Unary ชั่น&ดหน)�งต*อ
กล�*ม (1:M)
EMPLOYEE
emp_ID emp_Name
birthDate
managerID
EMPLOYEE
emp_ID
manages
M
1
emp_Name birthDa
te
SSSS 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 ก1ค2อค*าขั้�อม�ลเด�ยวก�นก�บค�ย%หล�กในเอ1นท&ต��แรก แต*เปล��ยนชั่2�อให�แตกต*างก�น
SSSS 7 : การแปลงความส�มพ�นธ์%แบบ Ternary
(and n-ary) คว่�มีสั�มีพั�นธ์�แบ้บ้ Ternary เป็-นคว่�มีสั�มีพั�นธ์�ระหว่��งเอ/นที�ตี$ 3 ตี�ว่ด�ว่ย์กำ�น
PATIENT
patient_ID
Patient_Treatment
M
patient_Name
PHYSICAIN
physician_ID
physician
_Name
M
TREATMENT
treatmentCode
description
Mresul
tsdate
time
SSSS 7 : การแปลงความส�มพ�นธ์%แบบ Ternary
(and n-ary) ข�$นที" 1 ในกำ�รแป็ลืง
PATIENT
patient_ID
Patient_Treatment
1 M
patient_Name
PHYSICAIN
physician_ID
physician
_Name
M 1
TREATMENT
treatmentCode
description
M
1
results
date
time
SSSS 7 : การแปลงความส�มพ�นธ์%แบบ Ternary (and
n-ary)PATIENT
patient_ID
patient_Nam
ePHYSICIAN
physician_ID
physicianName
จะต�องสร�างร�เลชั่��น 4 ร�เลชั่��นด�วยก�น
โดยจะม�เอ1นท&ต��หน)�งเชั่2�อมโยงระหว*าง 3 เอ1นท&ต��เขั้�าด�วยก�น
เอ1นท&ต��น��นจะน3าค�ย%หล�กใน 3เอ1นท&ต��มาเป�นค�ย%หล�ก และอาจเพ&�มเต&มค�ย%หล�กได�
ข�$นที" 2 ในกำ�รแป็ลืง
PATIENT_TREATMENT
patient_ID
physician_ID
treatmentCod
e
date
time
resultsTREATMENT
treatmentCode
description
SSSS 8 : การแปลงความส�มพ�นธ์%แบบ Supertype
และ Subtype
ป็กำตี�แลื�ว่แบ้บ้จ��ลืองข�อมี+ลืเชื่�งสั�มีพั�นธ์�จะไมี�สัน�บ้สัน*นคว่�มีสั�มีพั�นธ์�แบ้บ้ Supertype/Subtype แตี�อย์��งไรกำ/ตี�มี กำ/ย์�งมีแนว่ที�งในกำ�รออกำแบ้บ้เพั&"อรองร�บ้คว่�มีสั�มีพั�นธ์�ด�งกำลื��ว่ได�ด�งน$ ให�สัร��งรเลืชื่�"นแย์กำออกำตี��งห�กำ สั��หร�บ้ซี+เป็อร�
ไทีป็6แลืะแตี�ลืะซี�บ้ไทีป็6 แอตีตีร�บ้�ว่ตี�ของซี�บ้ไทีป็6จะได�ร�บ้กำ�รถู��ย์ทีอดจ�
กำรเลืชื่�"นที"เป็-นซี+เป็อร�ไทีป็6 รว่มีถู#งแอตีตีร�บ้�ว่ตี�ที"เป็-นคย์�หลื�กำด�ว่ย์
กำ��หนดคย์�หลื�กำให�กำ�บ้แตี�ลืะรเลืชื่�"นที"เป็-นซี�บ้ไทีป็6 โดย์จะตี�องมีแอตีตีร�บ้�ว่ตี�ที"แตีกำตี��งกำ�น เพั&"อใชื่�ระบ้*คว่�มีแตีกำตี��งของแตี�ลืะซี�บ้ไทีป็6
กำ��หนด Subtype Discriminator ให�กำ�บ้ Supertype
Step8 : การแปลงความส�มพ�นธ์%แบบ Supertype และ Subtype
empNo
hourlyRatesalary
SALARIED_EMP HOURLY_EMP
EMPLOYEE
d
CONSULTANT
bonus
name address
dataHired
contractNo BillingRate
Step8 : การแปลงความส�มพ�นธ์%แบบ Supertype และ Subtype
HOURLY_EMP
hempNo hourlyRate
SALARIED_EMP
sempNo
salary bonus
EMPLOYEE
empNo name address
dataHired
CONSULTANT
cempNo contractNo
BillingRate
ป5ญหาในอ�อาร%โมเดล (Problem with ER Model)
เป็-นป็3ญห�ที"เกำ�ดจ�กำในข�$นตีอนกำ�รออกำแบ้บ้ในเชื่�งคว่�มีค�ดหร&อที�งลือจ�คอลื เป็-นกำ�รสัร��งคว่�มีสั�มีพั�นธ์�ระหว่��งเอ/นตี�ตี$ที"ผิ�ดกำ�อให�เกำ�ดกำ�รแป็ลืคว่�มีหมี�ย์คว่�มีสั�มีพั�นธ์�สั�มีพั�นธ์�ผิ�ดพัลื�ดได� โดย์คว่�มีผิ�ดพัลื�ดหร&อป็3ญห�ใน ER Model จะมีอย์+�สัองร+ป็แบ้บ้ด�ว่ย์กำ�นค&อ
1 Fan Traps
2. Chasm Traps
ป5ญหาจากการออกแบบฐานขั้�อม�ลด�วยอ�-อาร%โมเดล
1. Fan Trap เป็-นป็3ญห�ที"เกำ"ย์ว่ข�องกำ�บ้ลื�กำษณะกำ�รจ�ดคว่�มีสั�มีพั�นธ์�ระหว่��งเอนที�ตี ที��ให�เกำ�ดคว่�มีไมี�ชื่�ดเจนในกำ�รแสัดงข�อมี+ลืที"สันใจออกำมี� ซี#"งมี�กำพับ้ในกำรณที"เอนที�ตีหน#"งมีคว่�มีสั�มีพั�นธ์�แบ้บ้หน#"งตี�อกำลื*�มีกำ�บ้เอนที�ตีอ&"นตี�$งแตี�สัองเอนที�ตีข#$นไป็
ตี�ว่อย์��งป็3ญห� Fan Trap สัถู�บ้�นกำ�รศึ#กำษ�แห�งหน#"งเป็;ดที��กำ�รสัอนหลื�ย์คณะ โดย์ในแตี�ลืะคณะป็ระกำอบ้ด�ว่ย์ภ�คว่�ชื่�ตี��ง ๆ หลื�ย์ภ�คว่�ชื่� แลืะอ�จ�รย์�หลื�ย์คน ซี#"งอ�จ�รย์�แตี�ลืะคนจะสั�งกำ�ดคณะใดคณะหน#"งเที��น�$น ห�กำกำ��หนดให�คว่�มีสั�มีพั�นธ์�ระหว่��งแตี�ลืะเอนที�ตีเป็-นด�งน$
อาจารย%ส�งก�ดภาคว&ชั่าใด?? เน2�องจากไม*ม�ความส�มพ�นธ์%ระหว*างเอนท�ต�
ภาคว&ชั่า
ป5ญหาจากการออกแบบฐานขั้�อม�ลด�วยอ�-อาร%โมเดล
2. Chasm Trap เป็-นป็3ญห�ที"เกำ"ย์ว่ข�องกำ�บ้กำ�รแสัดงข�อมี+ลืที"คว่รจะมีไมี�ได� หร&อไมี�สั�มี�รถูเชื่&"อมีโย์งเพั&"อให�ได�ข�อมี+ลืที"ครบ้ถู�ว่นได� โดย์ป็3ญห�น$มี�กำพับ้เมี&"อเอนทีตีหน#"งมีคว่�มีสั�มีพั�นธ์�กำ�บ้เอนที�ตีอ&"นตี�$งแตี�สัองเอนที�ตี ข#$นไป็ แตี�ไมี�สั�มี�รถูเชื่&"อมีโย์งคว่�มีสั�มีพั�นธ์�ระหว่��งข�อมี+ลืได�
ตี�ว่อย์��ง Chasm Trap กำ��หนดให�แตี�ลืะภ�คว่�ชื่�ป็ระกำอบ้ด�ว่ย์อ�จ�รย์�หลื�ย์คน ซี#"งอ�จ�รย์�แตี�ลืะคนจะสั�งกำ�ดภ�คว่�ชื่�ใดภ�คว่�ชื่�หน#"งเที��น�$น แลืะอ�จ�รย์�แตี�ลืะคนอ�จที��กำ�รสัอนได�มี�กำกำว่��หน#"งชื่*ดว่�ชื่� โดย์แตี�ลืะชื่*ดว่�ชื่�อ�จมีอ�จ�รย์�ผิ+�สัอนมี�กำกำว่��หน#"งคนกำ/ได� ห�กำกำ��หนดให�คว่�มีสั�มีพั�นธ์�ระหว่��งแตี�ลืะเอนที�ตีเป็-นด�งน$
ถู��ชื่*ดว่�ชื่�ไมี�เคย์เป็;ดสัอน กำ/จะไมี�มีอ�จ�รย์�คนใดสัอน ที��ให�ไมี�ทีร�บ้ว่��ชื่*ดว่�ชื่�น�$นอย์+�ในภ�คว่�ชื่�ใด
แบบฝึ8กห�ด1. จงว่�ดร+ป็ ER Diagram ของระบ้บ้ร��นเชื่��ว่ดโอ
แห�งหน#"ง ป็ระกำอบ้ด�ว่ย์แฟ้>มีสัมี�ชื่�กำ(member) ข�อมี+ลืที"เกำ/บ้ รห�สัลื+กำค�� ,
ชื่&"อ , ที"อย์+�,เบ้อร�โทีรแฟ้>มีชื่&"อเร&"อง(title) ข�อมี+ลืที"เกำ/บ้ รห�สัเร&"อง , ชื่&"อเร&"อง
, ผิ+�กำ��กำ�บ้ , น�กำแสัดง (Mutivalue attribute)แฟ้>มีป็ระเภที(category) ข�อมี+ลืที"เกำ/บ้ รห�สั
ป็ระเภที,ร�ย์ลืะเอย์ดจ�กำน�$นให�แป็ลืง ER Diagram ข��งตี�น ให�เป็-นตี�ร�ง
ให�ถู+กำตี�อง
2. จงแปลง ER Diagram ต*อไปน��ให�เป�นตาราง
NM 1 M
M
1
3. จงแปลง ER Diagram ต*อไปน��ให�เป�นตาราง
อ�จ�รย์�ที"ป็ร#กำษ�
น�กำศึ#กำษ�ป็ระว่�ตี�น�กำศึ#กำษ�
ว่�ชื่�มี ลืงทีะเบ้ย์
น
มี
รห�สัอ�จ�รย์� ชื่&"อ
อ�จ�รย์�
ห�องพั�กำ
เลืขที"บ้�ตีร
ว่�นเกำ�ด
เชื่&$อชื่�ตี�
ที"อย์+�
ว่�นที"เข��เรย์น
รห�สัน�กำศึ#กำษ�
ชื่&"อ
คณะ
ชื่�$นป็?
รห�สัว่�ชื่�
ชื่&"อว่�ชื่� หน�ว่ย์กำ�
ตี
11 M N
M
1
4. จงแปลง ER Diagram ต*อไปน��ให�เป�นตาราง
M N
1
MM N