Transcript Entity

Lecture 7
Entity-Relationship
Modeling
The Entity-Relationship Model
คือ แบบจำลองทีใ่ ช้อธิบำยโครงสร้ำงของฐำนข้อมูลซึง่ เขียนออกมำใน
ลักษณะของรูปภำพ ซึง่ พัฒนำโดย Peter Chen
 ใช้สำหรับกำรออกแบบฐำนข้อมูลในระดับ Conceptual
 เมือ
่ นำมำเขียนแสดงเป็ นแผนภำพ เรียกว่ำ E-R Diagram
 ช่วยให้กำรนำเสนอเกิดควำมเข้ำใจระหว่ำงผูอ
้ อกแบบและผูใ้ ช้งำน


จะช่วยให้กำรออกแบบได้งำ่ ยขึน้ ด้วยกำรจัดระเบียบควำมคิดของคนที่
ทำกำรออกแบบ และลดควำมซับซ้อนของระบบได้เป็ นอย่ำงดี
2
Entity
คือสิง่ ทีค่ งอยู่ สำมำรถระบุได้ในควำมจริง เช่น บุคคล เหตุกำรณ์
และสถำนที่ เป็ นต้น
 มักจะอยูใ่ นรูปของคำนำม (Noun)
 สำมำรถมีคุณสมบัต ิ (Property) หรือแอททริบวิ ต์ (Attribute)
ได้ เช่น บุคคล จะมี Attribute ชือ่ ทีอ่ ยู่ อำยุ เพศ ฯลฯ

EMPLOYEE
3
Example
Entity Group
Entities Example
place
room, office, college, building
person
student, employee, supplier
object
book, product, car
event
registration, sale, reservation
concepts
account, course, inventory
4
Symbol of E-R
Entity
Composite
Attribute
Weak Entity
Multivalued
Attribute
Relationship
Derived
Attribute
Attribute
Association
5
Entity Type

Strong Entity คือเอ็นติตเ้ี กิดขึน้ ได้ดว้ ยตัวเอง เป็ นอิสระไม่ขน้ึ กับ
เอ็นติตใ้ี ดๆ บำงครัง้ เรียกอีกชื่อ Regular Entity

Weak Entity เอ็นติตช้ี นิดนี้อยูก่ บั เอ็นติตช้ี นิดอื่นๆ ไม่สำมำรถเกิดขึน้
ได้ตำมลำพัง และจะถูกลบเมือ่ เอ็นติตห้ี ลักถูกลบออกไป
EMPLOYEE
Strong Entity
NEXT_OF_KIN
Weak Entity
6
Attributes
เป็ นคุณสมบัตหิ รือลักษณะของ Entity
 เช่น Attributes ของ พนักงำน ประกอบด้วย
• เลขทีพ่ นักงำน
• ชื่อ-นำมสกุล
• เพศ
• เงินเดือน
 สัญลักษณ์ Attributes นัน
้ จะแทนด้วยวงรี โดยมีช่อื ของ Attributes
กำกับอยูภ่ ำยใน และมีเส้นเชื่อมต่อกับ Entity ของมัน
empNo

7
Example
Entity
Attributes
building buildingno, buildingname, yearbuild, contractor
student
stu_no, name, address, faculty
book
code, title, publisher, authorname, year, ISBN
order
ordernum, sendto, producedby, date
course
coursecode, name, credit, faculty
8
Example
Employee (empNo, name, salary, sex)
sex
name
empNo
Employee
salary
9
Type of Attributes
 Simple Attribute
Attributes ทีม่ อี งค์ประกอบเดียวไม่สำมำรถแบ่งแยกย่อยได้อกี แล้ว เช่น
แอตตริบวิ ต์ sex และ salary เป็ นต้น
 Composite Attribute
Attributes ทีม่ อี งค์ประกอบอยูห่ ลำยตัว มีขอ้ มูลมำกกว่ำหนึ่ง เช่น
แอตตริบวิ ต์ address ประกอบด้วย street, city และ postcode
10
Type of Attributes
 Single - Valued Attribute
Attributes ทีบ่ รรจุคำ่ เพียงค่ำเดียว เช่น แอตตริบวิ ต์รหัสพนักงำน
สำมำรถอ้ำงอิงข้อมูลพนักงำนได้หนึ่งคนเท่ำนัน้
 Multi - Valued Attribute
Attributes ทีส่ ำมำรถมีหลำยค่ำได้ เช่น พนักงำนคนหนึ่งสำมำรถมีวฒ
ุ ิ
กำรศึกษำได้หลำยระดับ
 Derived Attribute
Attributes ทีเ่ กิดจำกกำรประยุกต์ดว้ ยแอตตริบวิ ต์อ่นื ๆ เช่น แอตตริบวิ ต์
age ทีไ่ ด้มำจำกกำรนำแอตตริบวิ ต์วนั เกิด มำประยุกต์ใช้งำนด้วยนำปี
11
ปจั จุบนั หักด้วยปี เกิดก็จะได้แอตตริบวิ ต์ age
Simple Attribute
empName
empNo
Employee
address
12
Composite Attribute
empName
empNo
Employee
address
street
city
postcode
13
Single-valued Attribute, Multi-valued Attribute
and Derived Attribute
empName
empNo
Single - Valued
sex
birthday
Employee
Age
Derived
degree
Multi - Valued
14
Relationship
หมำยถึง Entity ทีแ่ สดงควำมสัมพันธ์ระหว่ำง 2 Entity ขึน้ ไป
 เป็ นควำมสัมพันธ์ระหว่ำง Entity ทีม
่ ี Attributes ร่วมกัน
 โดยแต่ละควำมสัมพันธ์จะถูกระบุดว้ ยสัญลักษณ์สเ่ี หลีย
่ มข้ำวหลำมตัด
(Diamond) และคำทีอ่ ธิบำยถึงควำมสัมพันธ์นนั ้ ๆ
 พร้อมทัง้ ระบุชนิดของควำมสัมพันธ์ระหว่ำง Entity นัน
้ ๆ ด้วย

15
Example Relationship
Lecturer
1
teaches
M
Subject_item
16
Relationship Degree
ดีกรีของควำมสัมพันธ์เป็ นตัวแสดงถึงจำนวนเอ็นติตท้ี ่มี คี วำมสัมพันธ์
ระหว่ำงกัน โดยจำนวนควำมสัมพันธ์ระหว่ำงเอ็นติตม้ี อี ยู่ 3 รูปแบบ
 Unary Relationships
เป็ นควำมสัมพันธ์ระหว่ำง entity เดียว ตัวอย่ำงเช่น ผูจ้ ดั กำร <จัดกำร>
พนักงำนของตน (ผูจ้ ดั กำรก็คอื พนักงำน) โดยควำมสัมพันธ์แบบยูนำรีกค็ อื
ควำมสัมพันธ์แบบรีเคอร์ซพี (Recursive) ทีเ่ รียกใช้ตวั เอง
1
manages
Employee
M
17
Relationship Degree
 Binary Relationships
เป็ นควำมสัมพันธ์ระหว่ำงเอ็นติต้ี 2 เอ็นติตท้ี เ่ี กีย่ วข้องกัน
ตัวอย่ำงเช่น คณะ <ประกอบด้วย> หลำยสำขำ
Faculty
1
inculdes
M
Major
18
Relationship Degree
 Ternary Relationships
เป็ นควำมสัมพันธ์ทม่ี เี อ็นติตเ้ี ข้ำมำเกีย่ วข้อง 3 เอ็นติตด้ี ว้ ยกัน
Doctor
1
writes
M
Prescription
M
recives
1
Patient
M
appears in
1
Drug
• แพทย์ (Doctor) <เขียน> ใบสังยำ
่ (Prescription) ได้หลำยรำยกำร
• ผูป้ ว่ ย (Patient) <รับ> ใบสังยำได้
่
หลำยรำยกำร
• ยำ (Drug) ทีแ่ พทย์ระบุลงไป <ปรำกฏ> อยูใ่ นใบสังยำได้
่
หลำยรำยกำร
19
Structural Constraints (โครงสร้ างข้ อบังคับ)
เป็ นกระบวนกำรนำควำมสัมพันธ์และกฎเกณฑ์มำบังคับใช้ เพื่อเป็ น
เงือ่ นไขกำรจัดเก็บข้อมูลในฐำนข้อมูลให้เป็ นไปอย่ำงเหมำะสมและถูกต้อง
สำหรับข้อบังคับบนควำมสัมพันธ์มอี ยู่ 2 ชนิด ด้วยกัน คือ
 Cardinality Constraints
 Participation Constraints
20
Cardinality Constraints
ตำมปกติแล้วดีกรีของควำมสัมพันธ์สว่ นใหญ่มกั เป็ นในรูปแบบไบนำรี
และควำมสัมพันธ์แบบไบนำรีมอี ยูด่ ว้ ยกัน 3 รูปแบบ
1
1
1
M
M
N
one-to-one (1:1)
one-to-many (1:M)
many-to-many (M:N)
21
One-to-One Relationships
Semantic Net Model
• พนักงำนรหัส SG05 <จัดกำร> สำขำ B003
• พนักงำนรหัส SL21 <จัดกำร> สำขำ B005
• พนักงำนรหัส SG37 ไม่ได้รบั มอบหมำยให้ <จัดกำร> สำขำใดๆ
22
One-to-One Relationships
• แต่ละสำขำจะถูกจัดกำรโดยพนักงำนหนึ่งคน one and only one (1,1) และ
พนักงำนจะจัดกำรสำขำหรือไม่กไ็ ด้ ซึง่ เป็ นไปในลักษณะ zero or one (0,1)
23
One-to-One Relationships
24
One-to-Many Relationships
• พนักงำนรหัส SG37 <ดูแล> บ้ำนเช่ำรหัส PG21 และ PG36
• พนักงำนรหัส SA09 <ดูแล> บ้ำนเช่ำรหัส PA14
• พนักงำนรหัส SG05 ไม่ได้ <ดูแล> บ้ำนเช่ำใดๆ เลย
• บ้ำนเช่ำรหัส PG04 ไม่ได้รบั กำร <ดูแล> จำกพนักงำนคนใดเลย
25
One-to-Many Relationships
• พนักงำนสำมำรถดูแลบ้ำนเช่ำได้หลำยหลังหรือไม่ได้ดแู ลก็ได้ ซึง่ เป็นไปใน
ลักษณะ zero or more และบ้ำนเช่ำจะถูกดูแลโดยพนักงำนหนึ่งคนหรือไม่ได้รบั
กำรดูแลก็ได้ ซึง่ เป็ นไปในลักษณะ zero or one
26
One-to-Many Relationships
27
Many-to-Many Relationships
• หนังสือพิมพ์ The Nation <โฆษณำ> บ้ำนเช่ำรหัส PG21 และ PG36
• หนังสือพิมพ์ Daily News <โฆษณำ> บ้ำนเช่ำรหัส PG36
• หนังสือพิมพ์ Bangkok Post <โฆษณำ> บ้ำนเช่ำรหัส PA14
• บ้ำนเช่ำรหัส PG04 ไม่ได้ลง <โฆษณำ> ในหนังสือพิมพ์ใดๆ เลย
28
Many-to-Many Relationships
• หนังสือพิมพ์แต่ละฉบับโฆษณำบ้ำนเช่ำได้หนึ่งหลังหรือมำกกว่ำ ซึง่ เป็นไปใน
ลักษณะ one or more ในขณะทีบ่ ำ้ นเช่ำหนึ่งหลังสำมำรถลงโฆษณำในหนังสือ
พิมพ์ได้หลำยฉบับหรือไม่ได้ลงโฆษณำในหนังสือพิมพ์เลย ซึง่ เป็ นในลักษณะ
zero or more
29
Many-to-Many Relationships
30
Cardinality Notations
สัญลักษณ์ข้อบังคับบนความสัมพันธ์ในรูปแบบต่างๆ
31
Participation Constraints
ข้อบังคับของกำรมีสว่ นร่วม หมำยถึงกำรทีเ่ อ็นติตห้ี นึ่งจะยังคงอยูไ่ ด้ดว้ ย
กำรพึง่ พิงจำกเอ็นติตห้ี นึ่ง ซึง่ มีอยู่ 2 ชนิดด้วยกัน
 Total Participation
หรือ Mandatory คือควำมสัมพันธ์ชนิดบังคับ ซึง่ แต่ละควำมสัมพันธ์จะ
ทำกำรเชื่อมโยงด้วยเส้นคู่
 Partial Participation
หรือ Optional คือควำมสัมพันธ์ชนิดเลือกได้ ซึง่ แต่ละควำมสัมพันธ์จะ
ทำกำรเชื่อมโยงด้วยเส้นเดีย่ ว
32
Participation Constraints
• BRANCH ในควำมสัมพันธ์ของ <has> คือแบบ Total Participation
• EMPLOYEE ในควำมสัมพันธ์ของ <has> คือแบบ Partial Participation
• BRANCH ต้องมีพนักงำนอย่ำงน้อยหนึ่ง
• พนักงำนบำงคนอำจไม่จำเป็นต้องประจำอยูใ่ น BRANCH ก็ได้
33
Participation Constraints
• BRANCH จะต้องมีพนักงำนอย่ำงน้อย 5 คน (Min=5) หรือมำกกว่ำโดย
ไม่จำกัด (Max=N)
• พนักงำนอำจไม่ได้ประจำอยูใ่ น BRANCH (Min=0) กับพนักงำนทีต่ อ้ งประจำ
อยูใ่ น BRANCH ทีต่ นสังกัดอยู่ (Max=1)
34
Problems with ER Models
กำรเขียนแผนภำพ E-R จัดเป็ นขัน้ ตอนกำรออกแบบในระดับตรรกะ
ดังนัน้ จึงอำจเกิดปญั หำบำงอย่ำงได้ในระยะของกำรออกแบบ โดยเฉพำะ
ในกำรสร้ำงควำมสัมพันธ์ระหว่ำงเอ็นติต้ี ซึง่ ก่อให้เกิดกำรแปลควำมหมำย
ควำมสัมพันธ์ผดิ พลำด โดยปญั หำใน E-R Model มีอยู่ 2 รูปแบบ
 Fan Traps
 Chasm Traps
35
Fan Traps
เป็ นปญั หำทีก่ ่อให้เกิดควำมกำกวม หรือมีควำมไม่ชดั เจนในกำรแสดง
ข้อมูลทีเ่ รำสนใจ โดยปญั หำดังกล่ำวเป็ นปญั หำทีเ่ กีย่ วข้องกับกำรจัดควำม
สัมพันธ์ระหว่ำงเอ็นติต้ี ทีม่ กั พบบนควำมสัมพันธ์แบบ one-to-many
36
An Example of a Fan Trap
จำกภำพจะเห็นว่ำมีฝำ่ ยงำนหนึ่ง (Division) ปฏิบตั กิ ำร <operates> อยู่
ในหลำยสำขำ (Branch) ขณะเดียวกันฝำ่ ยงำนนัน้ ก็มพี นักงำนสังกัดอยู่
หลำยคน
37
An Example of a Fan Trap
 คาถาม : พนักงำนรหัส
SG37 ทำงำนอยูส่ ำขำใด
 คาตอบ : B003 หรือ B007
38
Restructuring ER model to remove Fan Trap
39
Semantic Net of Restructured ER Model with
Fan Trap Removed
พนักงาน SG37 ทางานอยู่ในสาขา B003
40
Chasm Traps
เป็ นปญั หำทีเ่ กิดขึน้ จำกกำรไม่ได้โยงควำมสัมพันธ์ระหว่ำงเอ็นติต้ี จึงส่ง
ผลให้ควำมสัมพันธ์ขำดหำยไป ซึง่ ปญั หำดังกล่ำวมักจะปรำกฎบนควำม
สัมพันธ์แบบ Partial ในรูปแบบของเส้นควำมสัมพันธ์นนั ้ ไม่ได้เชื่อมโยงกับ
เอ็นติตท้ี เ่ี กีย่ วข้องตำมทีค่ วรจะเป็ น
41
An Example of a Chasm Trap
จำกภำพอธิบำยได้วำ่ สำขำหนึ่ง <มี> พนักงำนได้หลำยคน โดยพนักงำน
แต่ละคนจะ <ดูแล> บ้ำนเช่ำทีต่ นได้รบั มอบหมำย และจำกกำรมีสว่ นร่วมใน
ควำมสัมพันธ์ ก็จะทรำบได้วำ่ ไม่ใช่พนักงำนทุกคนต้องดูแลบ้ำนเช่ำ และไม่
ใช่บำ้ นเช่ำทุกหลังจะต้องถูกดูแลโดยพนักงำน
42
An Example of a Chasm Trap

คาถาม : บ้ำนเช่ำรหัส PA14 อยูส่ ำขำใด และพนักงำนคนใดเป็ นผูด้ แู ล

คาตอบ : ไม่ทรำบ
43
ER Model Restructured to Remove
Chasm Trap
44
Restructured ER Model with Chasm Trap Removed
45
An Example E-R Model
46
An Example E-R Model
47
An Example E-R Model
48
Data Dictionary
• Referenced Documentation that descript
component of data
• Show Data element
49
Data Dictionary
• Consist of :
–
–
–
–
–
Data Name
Key
Data Types
Length
Description
50
Customer
Name
Key Types Length Description
Cus_ID
PK Number 5 รหัสลูกค้า
Cus_name
Varchar 30 ชื่อลูกค้า
Cus_add
Varchar 50 ที่อยู่
Cus_sex
Char
1 เพศ : M,F
Cus_position
Varchar 20 ตาแหน่งงาน
51
Tool create E-R
• Navicat
52
Tool create E-R
• MySQL Workbench
53
Tool create E-R
• Microsoft Visio
54