การแปลงความสัมพันธ์แบบ Unary

Download Report

Transcript การแปลงความสัมพันธ์แบบ Unary

LOGO
้
ขันตอนการแปลงแผนภาพ
ER
่
มาเป็ นรีเลชน
ั
ER-to-Relational Mapping
Algorithm
1
้
สรุปขันตอนการสร
้าง E-R
Diagram
1. กำหนดว่ำมีเอนทีตอี ะไรบ ้ำง
2. กำหนดควำมสัมพันธ ์ระหว่ำงเอนทีตี
3. กำหนดแอทริบวิ ต ์ของเอนทีตใี ห ้ครบ
่ นกั
้ บควำมสัมพันธ ์
4. พิจำรณำแอทริบวิ ต ์ทีขึ
5. เลือกคีย ์หลัก
การแปลง E-R Model
เป็ น Table
Step 1 Entity
้
ขันตอนการแปลง
Entity
 กรณี Simple Attribute
- สร ้ำงตำรำงสำหร ับ
Entity
่
- ชือของตำรำง
นำมำ
่
จำก ชือของ
Entity
่
มน์ นำมำ
- ชือของคอลั
่
จำกชือของ
Attribute
Studen
ts
S_I
D
First_n
ame
Students
S_I First_nam
D
e
BirthY
ear
Last_n
ame
Last_nam
e
BirthYear
Step 1 Entity
้
ขันตอนการแปลง
Entity
 กรณี Composite
Attributes
cus_I
D
Custo
mer
stre
et
cit
y
Zip
Co
Addre de
ss
Last_n
First_n
- นำเพียงแอตทริบวิ ต ์
ame
ame
่
แบบ simple ทีบรรจุอยู่
ในแอตทริบวิ ต ์แบบ
Customer
Composite มำเท่ำนั้น
cus_I
First_name Last_na
stree city Stat
D
sta
te
me
t
e
zipcod
e
Step 1 Entity
้
ขันตอนการแปลง
Entity
 กรณี Multivalued
Attribute
่
- ต ้องมีกำรสร ้ำงรีเลชันสอง
่
รีเลชัน
่
- รีเลชันแรกจะบรรจุ
คำ่ แอตทริ
่ อยูใ่ น Entity ทังหมด
้
บิวต ์ทีมี
่ นแบบ
ยกเว ้นแอตทริบวิ ต ์ทีเป็
Multivalued
่ สองให
่
- รีเลชันที
้บรรจุ 2 แอ
Studen
ts
S_I
D
First_n
ame
Tel
Last_n
ame
Students
S_I First_nam
D
e
Students_Tel
S_ID
Tel
Last_nam
e
Multivalued Attributes
- Relational Model
จะยอมให ้มีเพียง 1
ข ้อมูลในแต่ละ
attribute
- Multivalued
attribute ใน ER
Model จะถูกสร ้ำง
เป็ นตำรำงใหม่ เพือ่
เก็บข ้อมูลโดยเฉพำะ
Instruc
tor
ID
Name
Instructor
ID Name
Instructor_degr
ee
ID
Degree
Degr
Tel
ees
Step 2 Weak Entity
้
ขันตอนการแปลง
Weak Entity
- สร ้ำงตำรำงใหม่สำหร ับ Weak Entity นำ
Primary Key จำก Master Entity มำเป็ น
Primary Key ร่วมกับ Primary Key เดิมของ
Weak Entity
Attribute นั้นจะมำเป็ น Foreign Key
้ ง ตำรำงของ Master Entity
สำหร ับชีไปยั
Step 2 WeakFirst
Entity
Last
emp_first
Name
emp
_ID
EMPLOY
EE
emp_Last
Name
1
claims
EMPLOYEE
emp_ID emp_firstNam
e
Nam
e
Nam
e
dependen
tname
M
DEPENDE
NT
emp_LastNam
e
DEPENDENT
firstNa lastnam emp_ID
me
e
birthDate
gender
birthD
ate
gen
der
Step 2 Weak Entity
Building_
ID
Building
Building
Building_ID
Room
Building_ID
Room_nu
mber
…
1
has
M
Room
…
Room_numb
er
…
…
Step 3 : One-to-Many
Relationship
แปลงความสัมพันธ ์แบบ
One-to-Many
- นำ Primary Key ฝั่ง
่ นคอลัมน์
One ไปเพิมเป็
ในฝั่ง Many
- คอลัมน์ นั้นจะเป็ น
Foreign Key อ ้ำงถึง
Primary Key ของตำรำง
่ ้องกำรอ ้ำงถึง(ฝั่ง One)
ทีต
Step 4 : Many -to-Many
Relationship
แปลงความสัมพันธ ์แบบ Many-toMany
้
- สร ้ำงตำรำงของควำมสัมพันธ ์ขึนมำ
1 ตำรำง
่ บ Primary Key ของทัง้ 2 ตำรำง
เพือเก็
- คอลัมน์ทได
ี่ ้ใหม่ทง้ั 2 คอลัมน์จะเป็ น
้ งตำรำงทีดึ
่ งมำ
Foreign Key ชีไปยั
่ ้มำเป็ นทัง้ 2 Entity เป็ น
- ใช ้ Entity ใหม่ ทีได
Primary Key ของตำรำงควำมสัมพันธ ์
Step 4 : Many -to-Many
Relationship C_ID
…
S_ID
…
S_ID
STUDEN M
T
takes
N
…
COURSE
C_ID
STUDEN 1
M
T
takes
M
1
…
COURSE
STUDENT_COURSE
STUDENT
S_ID
…
S_ID
C_ID
COURSE
C_ID
…
Step 4 : Many -to-Many
ในกรณี ทควำมสั
ี่ Relationship
มพันธ ์มีแอตทริบวิ ท ์ ให ้นำแอ
่ ำมำจำก
ตทริบวิ …ท ์ นั้นไปต่อท ้ำยแอตทริบวิ ท ์ทีน
Registratio
C_ID
้ 2 ฝั่ง
ตำรำงทั
ง
…
S_ID
n_date
STUDEN M takes N
COURSE
T
…
S_ID
C_ID
STUDEN 1
M
T
takes
STUDENT_COURSE
S_ID
STUDENT
S_ID
…
C_ID
M
1
…
COURSE
Registratio
n_date
Registration_da
te
COURSE
C_ID …
ข้อสังเกต
ข้อสังเกต
่ ้ำยๆ กัน ควรมีชอที
คอลัมน์ของตำรำงทีคล
ื่ ่
แตกต่ำงกัน
่
เช่น ID เป็ นชือของ
Primary Key ของตำรำง
่
2 ตำรำง 1 ใน 2 ตำรำงนั้นควรจะเปลียนชื
อ่
่
่
ก่อนทีจะเพิ
มตำรำงใหม่
ลงไป
่
่ อของ
่
ทำโดยกำรเพิมชื
กำรเปลียนควรจะ
Entity ลงไป ใน ชือ่ Attribute นั้น เช่น
ข้อสังเกต
Step 6 : การแปลง
 ควำมสั
มพันธม
์แบบ
เป็ นควำมสั
มพันธ ์
ความสั
พัUnary
นธ ์แบบ
Unary
ระหว่ำงเอ็นทิตเดี
ี ้ ยว หรือเรียกว่ำ ควำมสัมพันธ ์
แบบรีเคอร ์ซีพ
 ควำมสัมพันธ ์
 ควำมสัมพันธ ์แบบ Unary ชนิ ดหนึ่ งต่อกลุม
่
(1:M)
 ควำมสัมพันธ ์แบบ Unary ชนิ ดกลุม
่ ต่อกลุ่ม
(M:N)
Step 6 : การแปลง
นธUnary
์แบบ ชนิ
Unary
ความสั
ความสัมพัม
นพั
ธ ์แบบ
ดหนึ่งต่อ
กลุ่ม (1:M)
emp_I
D
emp_Na
me
EMPLOY M
EE
birthDat
e
1
manages
EMPLOYEE
emp_ID
emp_Name
birthDate
managerID
Step 6 : การแปลง
่ั 2

จะต้
อ
งสร
้างรี
เ
ลช
น
ความสั
ความสัมพัม
นพั
ธ ์แบบ
ดกลุ่มต่อ
นธUnary
์แบบชนิ
Unary
่ ั วยก ัน
รีเลชนด้
item_I
D
กลุ่มitem_Na
(M:N)
me
ITEM
quan
tity
ITEM
item_ID
N
unitC
ost
M
contains
item_Name
unitCost
ITEM_Component
item_ID
Component_
NO
quantity
่ั
 โดยรีเลชนแรกจะมี
คีย ์หลักพร ้อมแอ
่ ยวข้
่
ตทริบวิ ต ์ทีเกี
อง
่ั
 ส่วนอีกรีเลชน
ประกอบด้วย 2 แอ
่ เป็ นคีย ์
ตทริบวิ ต ์ทีใช้
่
หลัก ซึงแอตทริ
บวิ ท ์
ทัง้ 2 ก็คอ
ื ค่าข้อมู ล
เดียวก ันก ับคีย ์หลัก
ในเอ็นทิตแรก
ี้
แต่
่
่
เปลียนชื
อให้
Step 7 : การแปลง
ความสัมพันธ ์แบบ Ternary
n-ary)
 ควำมสัมพันธ(and
์แบบ Ternary
เป็ นควำมสัมพันธ ์
ระหว่ำงเอ็นทิต ี ้ 3 ตัวด ้วยกัน
patien
t_ID
patient_
Name
PATIEN
T
M
result
s
treatment
Code
physicia
n_ID
Patient_
Treatment
dat
Me
TREATMEN
T
physic
ian
_Nam
e
M PHYSIC
AIN
tim
e
descripti
on
Step 7 : การแปลง
ความสัมพันธ ์แบบ Ternary
้ ่ 1 ในกำรแปลง
(and n-ary)
 ขันที
patien
t_ID
patient_
Name
M PHYSIC
1 AIN
M
tim
result
dat
e
s
e
1
descripti
TREATMEN
on
T
PATIEN 1
M
T
treatment
Code
physicia
n_ID
physic
ian
_Nam
e
Patient_
Treatment
Step 7 : การแปลง
ความสัมพันธ ์แบบ Ternary่
 จะต้องสร ้างรีเลชน
ั 4
่
(and
n-ary)
้
่
รี
เ
ลช
ั วยก ัน
นด้
 ขันที 2 ในกำรแปลง
PATIENT
patient_ID
PHYSICIAN
physician_ID
patient_Na
me
physicianNa
me
PATIENT_TREATMENT
patient_ID physician_I
D
TREATMENT
treatmentCod
e
 โดยจะมีเอ็นทิตหนึ
ี ้ ่ง
่
เชือมโยงระหว่
าง 3
เอ็นทิตเข้
ี ้ าด้วยก ัน
้
 เอ็นทิตนั
ี ้ นจะน
าคีย ์
หลักใน 3เอ็นทิตมา
ี้
เป็ นคีย ์หลัก และอาจ
่
เพิมเติ
มคีย ์หลักได้
treatmentCo date time
de
description
results
Step 8 : การแปลง
 ปกติแล ้วแบบจ
ำลองข ้อมู
เชิงน
สัมธ
พัน์แบบ
ธ ์จะไม่สนับสนุ น
ความสั
มลพั
ควำมสัมพันธ ์แบบ Supertype/Subtype แต่อย่ำงไรก็
และ Subtype
่
ตำมSupertype
ก็ยงั มีแนวทำงในกำรออกแบบเพื
อรองร
ับ
ควำมสัมพันธ ์ดังกล่ำวได ้ดังนี ้
่ั
 ให ้สร ้ำงรีเลชนแยกออกต่
ำงหำก สำหร ับซูเปอร ์ไทป์
และแต่ละซ ับไทป์
 แอตตริบวิ ต ์ของซ ับไทป์ จะได ้ร ับกำรถ่ำยทอดจำก
่ ั เป็
่ นซูเปอร ์ไทป์ รวมถึงแอตตริบวิ ต ์ทีเป็
่ นคีย ์
รีเลชนที
หลักด ้วย
่ ั เป็
่ นซ ับไทป์ โดย
 กำหนดคีย ์หลักให ้กับแต่ละรีเลชนที
่
่ ้ระบุควำม
จะต ้องมีแอตตริบวิ ต ์ทีแตกต่
ำงกัน เพือใช
แตกต่ำงของแต่ละซ ับไทป์
Step 8 : การแปลงความสัมพันธ ์แบบ
Supertype และ Subtype
name
address
empNo
dataHired
EMPLOYEE
d
SALARIED_EMP
salary
bonus
HOURLY_EMP
hourlyRate
CONSULTANT
contractNo
BillingRate
Step 8 : การแปลงความสัมพันธ ์แบบ
Supertype และ Subtype
EMPLOYEE
empNo
name
address
SALARIED_EMP
sempNo
salary
HOURLY_EMP
hempNo
dataHired
bonus
hourlyRate
CONSULTANT
cempNo contractNo BillingRate
แบบฝึ กหัด
1. จงวำดรูป ER Diagram ของระบบร ้ำนเช่ำดีวด
ี ี
แห่งหนึ่ ง ประกอบด ้วย
่ บ รหัสลูกค ้ำ ,
แฟ้ มสมำชิก(member) ข ้อมูลทีเก็
่ ่,เบอร ์โทร
ชือ่ , ทีอยู
่ อง(title)
่
่ บ รหัสเรือง,
่ ชือ่
แฟ้ มชือเรื
ข ้อมูลทีเก็
่ , ผูก้ ำกับ , นักแสดง (Mutivalue
เรือง
attribute)
่ บ รหัส
แฟ้ มประเภท(category) ข ้อมูลทีเก็
ประเภท,รำยละเอียด
และทำกำรแปลง ER Diagram เป็ น Table พร ้อม
2. จงแปลง ER Diagram
้ เป็ นตาราง
ต่อไปนี ให้
M
1
N
M
1
พร ้อมใส่ข ้อมูลใน Table อย่ำงละ 3 เรคคอร ์ด
M
3. จงแปลง ER Diagram ต่อไปน
ให้
เ
ป็
นตาราง
่
เลขที่
บัตร
วันทีเข ้ำ
เรียน
ประวัติ
นักศึกษำ
เชือ้
ชำติ
คณะ
วันเกิด
1
มี
่ ่
ทีอยู
พร ้อมใส่ข ้อมูลใน Table
อย่ำงละ 3 เรคคอร ์ด
รหัส
อำจำรย ์
รหัส
นักศึกษำ
1 นักศึกษำ
M
มี
ชือ่
M
ลงทะเบี
ยน
้ั
ชนปี
1
อำจำรย ์ที่
ปรึกษำ
ชือ่
อำจำร
ห ้องพัก
N
ชือ่
วิชำ
รหัส
วิชำ
วิชำ
หน่ วย
กิต
4. จงแปลง ER Diagram
้ เป็ นตาราง
ต่อไปนี ให้
M
N
M
N
1
M
พร ้อมใส่ข ้อมูลใน Table
อย่ำงละ 3 เรคคอร ์ด