ตัวอย่างการออกแบบฐานข้อมูลด้วย ER Model

Download Report

Transcript ตัวอย่างการออกแบบฐานข้อมูลด้วย ER Model

1
บทที่ 2
E-R MODEL
(ENTITY RELATIONSHIP MODEL)
แบบจำลองควำมสั มพันธ์ ระหว่ ำงข้ อมูล
สิ่งที่จะได้เรียนในสัปดาห์นี้
สั ปดำห์ ที่ 1 :
นักศึกษารู ้จกั คาศัพท์พ้นื ฐาน เช่น Table ,Filed ,Record, การ Normalization เป็ นต้น
สั ปดำห์ ที่ 2 :
นักศึกษารู้จกั Relational Database ,และสร้างความสัมพันธ์ได้
นักศึกษาสามารถเขียน E-R diagram ได้
สั ปดำห์ ที่ 3 :
นักศึกษารู ้จกั กับ SQL สามารถสร้างฐานข้อมูลและป้ อนข้อมูลได้
สั ปดำห์ ที่ 4 :
SQL : สามารถเพิ่มข้อมูล ลบข้อมูลเปลี่ยนแปลงข้อมูลได้
สัปดำห์ ที่ 5 เป็ นต้นไป:
มอบหมายงานให้ และเสนอผลงาน
ขั้นตอนการออกแบบฐานข้อมูล :
3
1. รวบรวมควำมต้ องกำรของผู้ใช้
2. วิเครำะห์
3. สร้ ำง ER Model
4. เปลีย่ น ER Diagram เป็ นโครงสร้ ำงแบบ Relation (Table)
5. ทำกำร Normalization
Entity Relationship Model (ER-Model)
4
เป็ นแบบจาลองเชิงแนวคิด (Conceptual Data Model)
 ใช้อธิ บายโครงสร้างของฐานข้อมูลโดยนาเสนอในรู ปแบบแผนภาพหรื อ
ไดอะแกรมที่เรี ยกว่า แผนภาพ E-R หรื อ E-R Diagram
 ใช้สาหรับสื่ อสารกับผูใ้ ช้ให้เกิดความเข้าใจตรงกันในเรื่ องของข้อมูลและ
ความสัมพันธ์ของข้อมูลที่มีอยูใ่ นระบบ
 ทาให้มองภาพระบบได้ง่ายขึ้น
่ บั ซอฟต์แวร์ที่ใช้พฒั นาฐานข้อมูล
 ไม่ข้ ึนอยูก

ตัวอย่าง E-R Diagram
แสดงข้อมูลของพนักงาน (EMPLOYEE) และ หน่ วยงานหรือแผนก ( Department) ในองค์กรแห่งหนึ่ ง
5
NAME
EMPLOYEE
SALARY
DepID
EMP_ID
M
POSITION
Work-for
1
Department
DNAME
LOCATION
6
ตัวอย่าง
7

ตัวอย่าง E-R Diagram
ตัวอย่ ำง
8
Model ระหว่าง
Chen Model
&
Crow’s Foot Model
9
สั ญลักษณ์ ทใี่ ช้ ในกำรเขียน E-R Diagram
A Comparison of ER Modeling Symbols
ตัวอย่าง E-R Diagram ของรูปแบบ Chen Model
10
ตัวอย่าง E-R Diagram ของรูปแบบ Crow’s Foot Model
11
สัญลักษณ์ที่ใช้ใน E-R Diagram
12
แบบจาลองความสัมพันธ์เอนทิตี
13


แบบจาลองความสัมพันธ์เอนทิตี หรือ อี-อาร์ โมเดล (อังกฤษ: Entityrelationship model ,คาย่อ ERM) หรือ อี-อาร์ไดอะแกรม (E-R Diagram)
เป็ นวิธีที่ช่วยในการออกแบบฐานข้อมูล และได้รบั ความนิ ยมอย่างมาก นาเสนอโดย Peter
ซึ่งวิธีการนี้ อยูใ่ นระดับ Conceptual level และมีหลักการคล้ายกับ Relational
model เพียงแต่ E-R model แสดงในรูปแบบกราฟิ ก บางระบบจะใช้ E-R model
ได้เหมาะสมกว่า แต่บางระบบจะใช้ Relational model ได้เหมาะสมกว่าเป็ นต้น ซึ่ง
แล้วแต่การพิจารณาของผูอ้ อกแบบว่าจะเลือกใช้แบบใด
ส่ วนประกอบของ E-R Model
14
ส่ วนประกอบของ ER-Model
เอ็นติตี้
(Entity)
แอตตริบิวต์
(Attribute)
ควำมสั มพันธ์
(Relationship)
เอนทิตี้ (Entity)
สั ญลักษณ์ Entity
ชื่อเอนทิต้ ี
15
 เอนติตี้ หมำยถึง สิ่ งต่ ำง ๆ หรื อ วัตถุ ทีถ
่ ูกรวบรวมเป็ นข้ อมูล เพือ่ ใช้ กบั
ระบบงำนทีก่ ำลังพัฒนำอยู่ มี 3 กลุ่ม
 1)เอนติตเี้ ชิงรู ปธรรม มองเห็นได้ ด้วยตำ
เอนติตที้ เี ป็ นบุคคล เช่ น นักศึกษำ พนักงำน อำจำรย์
เอนติตที้ เี ป็ นสถำนที เช่ น ร้ ำนค้ ำ บริษัท โรงพยำบำล
เอนติตที้ เี ป็ นวัตถุ เช่ น เครื่องจักร รถยนต์ หนังสื อ
 2) เอนติตเี้ ชิงแนวคิด เช่ น วิชำ คณะ แผนก
 3) เอนติตเี้ ชิงเหตุกำรณ์ เช่ น กำรลงทะเบียน กำรซื้อ กำรขำย กำรยืม กำร
คืน
 กำรแสดงถึงเอนติตใี้ นแผนภำพ E-R จะใช้ สัญญลักษณ์ รูสี่เหลีย
่ มผืนผ้ำมี
ชื่อเอนติตเี้ ป็ นคำนำม กำกับอยู่ในรูปสี่เหลีย่ มผืนผ้ำ
ประเภทของเอ็นติต้ ี
16
ประเภทของเอ็นติตี้
เอนติต้ ีปกติ
(Strong Entity)
เอนติต้ ีแบบอ่อน
(Weak Entity)
เอนติตีเ้ ชิงควำมสั มพันธ์
(Associate Entity)
เอนทิตี้ (Entity)
17

ประเภทของ ของ Entity
 1 Regular Entity อาจจะเรี ยกอีกชื่อว่า Strong Entity
เป็ น Entity ที่อยูไ่ ด้โดยไม่ตอ้ งอาศัย Entity อื่นในการคงอยู่ ไม่
ต้องพึ่งหรื อขึ้นอยูก่ บั Entity อื่น
 2 Week Entity
นักเรี ยน
เป็ น Entity ที่อยูไ่ ด้โดยต้องอาศัย Entity อื่นในการคงอยู่
ข้อมูลการลงทะเบียนเรี ยน
ภำพอธิบำย Strong & Weak Entity
Student (Strong)
รหัส
Subject (Strong)
ชื่อ
คณะ
รหัสวิชำ
ชื่อวิชำ
45001
เดชา
บริ หารธุรกิจ
01
ฐานข้อมูล
45002
สมชาย
เกษตร
02
โครงสร้าง
Regis_Detail(Weak)
รหัส
ปี กำรศึกษำ
รหัสวิชำ
45001
1/53
01
45002
1/54
01
45001
1/55
02
45002
1/53
02
ภำพอธิบำย Strong Entity & Weak Entity
19
1
พนักงาน
รหัสพนักงาน
ชื่อพนักงาน
มี
M
สมาชิกในครอบครัว
รหัสพนักงาน
วันเดือนปี เกิด
พนักงำน (รหัสพนักงาน, ชื่อพนักงาน, ชื่อสมาชิก)
สมำชิกในครอบครัว (รหัสพนักงาน, ลาดับที่, ชื่อสมาชิก)
ลาดับที่
ชื่อสมาชิก
ภำพอธิบำย Strong Entity & Weak Entity
พนักงำน
รหัสพนักงาน
ชื่อพนักงาน
1001
นายใจดี สมชาย
1002
นางสาวฟ้ าใส วิมาน
สมำชิกในครอบครัว
รหัสพนักงาน ลาดับที่
ชื่อสมาชิก
1001
1
นางสมศรี สมชาย
1001
2
ดช.วิมน สมชาย
1001
3
ดญ.จันจิรา สมชาย
1002
1
นางมนัสนันท์ สมบูรณ์
วันเดือนปี เกิด
12/3/2528
23/11/2526
2
0
เอนทิตี้ (Entity)
21

3.เอนติตเี้ ชิงควำมสั มพันธ์
 เป็ น Entity ทีถ
่ ูกสร้ ำงขึน้ เพือ่ แปลงควำมสั มพันธ์ แบบ M:M ให้ เป็ น แบบ
1:M (เพรำะแบบ M:M นั้นค่ อนข้ ำงยำกแก่กำรเข้ ำใจ)
 สั ญลักษณ์ ของ Composite Entity คือ สี่ เหลีย
่ มผืนผ้ำซ้ อนด้ วยสี่ เหลีย่ มรู ปข้ ำว
หลำมตัด

ตัวอย่ ำง
22
นักเรียน
Studen
M
นักเรียน
1
M
Learning
เรียน
M
เรียน
M
วิชำ
Subject
1
ภาพแสดงการเปลี่ยนแปลงจาก M:M มาเป็ น 1:M
วิชำ
แอททริบิวต์ (Attribute)
23
แอททริบิวต์ คือ ข้ อมูลทีใ่ ช้ อธิบำยคุณสมบัติหรือลักษณะของแต่ ละ Entity
 เอนติตห
ี้ นึ่ง ๆ อำจประกอบด้ วยแอททริบิวต์ ได้ มำกกว่ ำหนึ่งแอททริบิวต์
ขึน้ กับว่ ำระบบงำนที่กำลังจะพัฒนำนั้นต้ องกำรรำยละเอียดของเอนติตมี้ ำก
หรือน้ อยเพียงใด
 กำรแสดงถึงแอททริ บิวต์ ในแผนภำพ E-R จะใช้ สัญญลักษณ์ รูปวงรี แทน
แอททริบิวต์ 1 แอททริบิวต์ และมี ชื่อแอททริบิวต์ เป็ นคำนำม กำกับอยู่ในรู ป
วงรี

แอททริบิวต์ (Attribute)
24
ตัวอย่ ำงเช่ น
 เอนติต้ ี นักศึ กษำ ประกอบด้วยแอททริ บิวต์ รหัสนักศึกษา ชื่อนักศึกษา ที่อยู่ เพศ
 เอนติต้ ี พนักงำน ประกอบด้วยแอททริ บิวต์ รหัสพนักงาน ชื่อพนักงาน ตาแหน่ง ที่อยู่
 เอนติต้ ี แผนก ประกอบด้วยแอททริ บิวต์ รหัสแผนก และ ชื่อแผนก
เพศ
ชื่อ
รหัสนักศึกษำ
ทีอ่ ยู่
นักศึกษำ
ตำแหน่ ง
ชื่อ
รหัสพนักงำน
ทีอ่ ยู่
พนักงำน
รหัสแผนก
ชื่อแผนก
แผนก
ควำมสั มพันธ์ ระหว่ ำงของเอนติตี้ แอททริบิวต์ และสมำชิกของเอนติตี้
25
เพศ
ชื่อ
ชื่อ
รหัสพนักงำน
นักศึกษำ
รหัสนักศึกษำ
5210093434
..
ชื่อ
พนักงำน
ที่อยู่
ที่อยู่
รหัสนักศึกษำ
ตำแหน่ ง
เพศ
ที่อยู่
นำยทัศน์ บุญมี หญิง
กรุงเทพ
รหัสพนักงำน
..
..
ชื่อ
ตำแหน่ ง
ที่อยู่
ประเภทของ Attribute
1) Simple Attribute
2) Composite Attributes
3) Key Attributes
4) Single – Valued Attributes
5 ) Multi - Valued Attributes
26
Attribute หรือ Property

คือคุณสมบัติตา่ ง ๆ ของ Entity
Attribute
27
แอททริบิวต์ (Attribute)
28
1) Simple Attribute หรือ แอททริบิวต์ แบบธรรมดำ
 Attributes ทีไ่ ม่ สำมำรถแบ่ งแยกย่ อยได้ อก
ี เช่ น รหัสพนักงำน เพศ
เพศ
รหัสพนักงำน
พนักงำน
แอททริบิวต์ (Attribute)
29
2) Composite Attributes
 มีลก
ั ษณะตรงข้ ำมกับแบบ Simple ทีส่ ำมำรถแบ่ งแยกย่อยไปได้ อกี เช่ น ชื่อสกุล ที่
สำมำรถแบ่ งออกได้ เป็ น Attributes ชื่อ และ สกุล
Composite Attributes
รหัสพนักงำน
สกุล
ชื่อ
ชื่อพนักงำน
พนักงำน
เพศ
เงินเดือน
แอททริบิวต์ (Attribute)
3) Key Attributes แอททริบิวต์ ทเี่ ป็ นตัวชี้เฉพำะ
 เป็ น Attributes ทีส
่ ำมำรถบ่ งบอกถึงเอกลักษณ์ ของ Entity นั้นได้ (มีค่ำไม่ ซ้ำกัน)
 เวลำเขียน ER Diagram ต้ องขีดเส้ นใต้ Attributes ทีเ่ ป็ น Key ด้ วย
Key Attributes
รหัสพนักงำน
สกุล
ชื่อ
ชื่อพนักงำน
พนักงำน
30
เพศ
เงินเดือน
แอททริบิวต์ (Attribute)
4) Single - Valued Attributes
 หมายถึง แอททริ บิวต์หนึ่ ง ๆ ของเอนติต้ ีใด ๆ ที่มีค่าข้อมูลเพียง
ค่าเดียว เช่น พนักงานคนหนึ่ง ๆ ซึ่งเป็ นสมาชิกของเอนติต้ ี
พนักงาน จะประกอบด้วยแอททริ บิวต์ รหัสพนักงาน ชื่อ
พนักงาน ตาแหน่ง และที่อยู่ ที่มีค่าเดียว ไม่มีพนักงานที่มีชื่อได้
สองชื่อ หรื อ Attributes เพศ ที่ระบุได้เพียง ชาย หรือ หญิง
เท่านั้น เพราะมนุ ษย์มีเพียงเพศเดียว
 สัญลักษณ์เป็ นวงรี เส้นเชื่อมเป็ นเส้นเดี่ยว
 ใช้สญ
ั ลักษณ์แบบเดียวกับ Simple Property
31
แอททริบิวต์ (Attribute)
5 ) Multi - Valued Attributes
 มีลก
ั ษณะตรงข้ามกับแบบ Single ที่สามารถมีค่าของข้อมูลได้หลายค่า เช่น วุฒิการศึกษา
หรือ เบอร์โทรที่ประกอบด้วยรหัสพื้ นที่และตามด้วยหมายเลขโทรศัพท์
 สัญลักษณ์เป็ นวงรีสองเส้น
สกุล
ชื่อ
Multi - Valued Attributes
รหัสพนักงำน
ชื่อพนักงำน
พนักงำน
32
เพศ
วุฒิกำรศึกษำ
แอททริบิวต์ (Attribute)
33
6 Derived Attributes
 เป็ น Property ที่ได้มาจากการคานวณ โดยอาศัยค่าใน Property อื่น ๆ เช่น ค่าของอายุ ที่ได้มา
จาก Property วันเกิด
 สัญลักษณ์เป็ นวงรีเส้นประ
ตัวอย่าง

ตัวอย่างภาพ Attributes ชนิดต่าง ๆ
Composite
Name
Surname
Name_Surname
ID
key
Sex
Birthday
Student
Age
Tel
Multi - Valued
Derived
หลักกำรกำหนด Attribute ให้ Entity
35

แอททริ บิวต์ของเอนติต้ ีใด จะมีเฉพาะรายละเอียดของเอนติต้ ีน้ นั เช่น เอนติต้ ี
นักศึกษา จะมีแต่แอททริ บิวต์ที่เกี่ยวกับนักศึกษา จะไม่เอา แอททริ บิวต์ที่
เกี่ยวกับคณะมาใส่ ในเอนติต้ ีนกั ศึกษา
รหัสนักศึกษำ
ชื่อ สกุล
รหัสคณะ
รหัสคณะ
นักศึกษำ
สั งกัด
ชื่อคณะ
คณะ
เพศ
เป็ นคุณสมบัติของคณะไม่นาไปใส่ เป็ นรายละเอียดให้
นักศึกษา แต่จะแทนในรู ปแบบความสัมพันธ์ สังกัด แทน
ควำมสั มพันธ์ (Relationship)
36
 เป็ นความสัมพันธ์ระหว่างเอนติต้ ี (Relationship) ในระบบ
 เช่น ในระบบบุคลากร ประกอบด้วย
เอนติต้ ี พนักงาน และ เอนติต้ ี แผนก
ที่มีความสัมพันธ์ในลักษณะ พนักงานแต่ละคน สังกัดอยูใ่ นแผนกใด
พนักงาน
สั งกัด
แผนก
 โดยแต่ละความสัมพันธ์จะถูกระบุดว้ ยสัญลักษณ์สี่เหลี่ยมข้าวหลามตัด
ที่อธิบายถึงความสัมพันธ์น้ นั ๆ ระบุความสัมพันธ์ขา้ งในเป็ นคา กริยำ
และคา

อำจำรย์
37
ตัวอย่างความสัมพันธ์
ให้ คำปรึกษำ
นักศึกษำ
ประเภทของ Relationship
38

1. One-to-One
 เป็ นความสัมพันธ์ของ สมำชิ กแต่ ละตัวของ Entity หนึ่ งไปสัมพันธ์
กับ กับสมาชิกของ Entity อีกอันหนึ่ง เพียงหนึ่งเดียวเท่านั้น
พนักงาน
1
มี
1
ที่จอดรถ
ประเภทของควำมสั มพันธ์ (Relationship)
39

2. One-to-Many
 เป็ นความสัมพันธ์ของสมาชิกแต่ละตัวของ Entity หนึ่ งไปสัมพันธ์
กับ กับสมาชิกของใน Entity อีกอันหนึ่ง มากกว่า 1 สมาชิก
นักศึกษา
1
เป็ นเจ้าของ
M
รองเท้า
ประเภทของ Relationship
40

3. Many-to-Many
 เป็ นความสัมพันธ์ของสมาชิกมากกว่า 1 สมาชิก ของใน Entity หนึ่ ง
ไปสัมพันธ์กบั กับสมาชิกของใน Entity อีกอันหนึ่ง มากกว่า 1
สมาชิก
นักศึกษา
M
ลงทะเบียน
N
คณิตศำสตร์
ภำษำไทย
ภำษำอังกฤษ
วิชา
Many to Many
41

เป็ นการแสดงความสัมพันธ์ของข้อมูลของสองเอนติตี้ในลักษณะแบบกลุ่มต่อ
กลุ่ม เช่น ความสัมพันธ์ระหว่างคาสัง่ ซื้ อกับสินค้าเป็ นแบบกลุ่มต่อกลุ่ม คือ
แต่ละคาสัง่ ซื้ ออาจสัง่ ซื้ อสินค้าได้มากกว่า 1 ชนิ ด และในสินค้าแต่ละชนิ ด
อาจปรากฏอยูใ่ นคาสัง่ ซื้ อได้มากกว่า 1 คาสัง่ ซื้ อ
Order
M
มี
N
Product
Many to Many

2. Many-to-Many Relationship
1 สมาชิก ของใน Entity หนึ่ งไป
สัมพันธ์กบั กับสมาชิกของใน Entity อีกอันหนึ่ ง มากกว่า 1 สมาชิก
 เป็ นความสัมพันธ์ของสมาชิกมากกว่า
M
Customer
N
Belong_to
Account
Many to Many

Composite Entity
เป็ น Entity ที่ถกู สร้างขึ้ นเพื่อแปลงความสัมพันธ์แบบ M:M ให้เป็ น แบบ 1:M
(เพราะแบบ M:M นั้นค่อนข้างยากแก่การเข้าใจ)
 ซึ่ง Composite Entity จะกลายเป็ น Entity ใหม่ที่รวมเอาไว้ดว้ ย Key
Property ของทั้ง 2 Entity หลัก และส่วนสนใจอื่น ๆ
 ซึ่ง Key Property ของ Composite Entity ก็คือ Key Property ของ
ทั้ง 2 Entity หลักนัน่ เอง (เป็ น PK ที่มีลกั ษณะเป็ น Super Key : คียร์ ่วม)
 สัญลักษณ์ของ Composite Entity คือ สี่เหลี่ยมผืนผ้าซ้อนด้วยสี่เหลี่ยมรูปข้าว
หลามตัด

Many to Many
Studen
Studen
M
1
M
Learning
M
Learning
M
1
Subject
Subject
ภาพแสดงการเปลี่ยนแปลงจาก M:M มาเป็ น 1:M
ควำมสั มพันธ์ ทมี่ ขี ้ อมูลขึน้ กับเวลำ
45


บางระบบงานต้องการเก็บข้อมูลเพื่อดูยอ้ นหลัง จึงจาเป็ นต้องมีการบันทึกข้อมูลของเวลาไว้ดว้ ย
เรี ยกข้อมูลที่ถูกบันทึกควบคู่กบั เวลานี้วา่ เป็ น ข้ อมูลที่ขนึ้ กับเวลำ
ในกำรที่จะใส่ ข้อมูลเกีย่ วกับเวลำหรือไม่ ขนึ้ อยู่กบั ควำมต้ องกำรของระบบ ว่ ำต้ องกำรเก็บรำคำที่
ขำยสิ นค้ ำในช่ วงเวลำต่ ำงกันหรือไม่ ถ้ ำใช่ ก็ เพิม่ รำยละเอียดวันที่ซื้อ และรำคำขำยไว้ ที่
ควำมสั มพันธ์ ซื้อ ไว้ ด้วย
แบบที่ 2 มีเงือ่ นไขเวลำ
แบบที่ 1 ไม่ มเี งือ่ นไขเวลำ
รหัสลูกค้ ำ
ลูกค้ ำ
ชื่อลูกค้ ำ
รหัสสิ นค้ ำ
M
ซื้อ
N
สิ นค้ ำ
รำคำสิ นค้ ำ
ชื่อสิ นค้ ำ
รหัสลูกค้ ำ
ลูกค้ ำ
ชื่อลูกค้ ำ
รหัสสิ นค้ ำ
วันทีช่ ื้อ
M
ซื้อ
รำคำขำย
N
สิ นค้ ำ
ชื่อสิ นค้ ำ รำคำสิ นค้ ำ
แอททริบิวต์ ของควำมสั มพันธ์
46
บางความสัมพันธ์อาจทาหน้าทีเ่ หมือนเอนติตค้ี อื สามารถกาหนดแอททริ
บิวต์ให้กบั ความสัมพันธ์ได้

ปี กำรศึกษำ
รหัสนักศึกษำ
ชื่อ สกุล
นักศึกษำ
ลงทะเบียน
รหัสวิชำ
ชื่อวิชำ
วิชำ
หน่ วยกิต
เพศ
เทอม
กำรกำหนดแอททริบิวต์ ให้ กบั ควำมสั มพันธ์
กำรออกแบบฐำนข้ อมูล ด้ วย E-R Model
47
1. ศึกษำรำยละเอียดและลักษณะหน้ ำที่งำนของระบบ
 เพื่อรวบรวมรายละเอียด
ลักษณะการทางานของระบบ
ขั้นตอนการทางาน
เอกสารรายงานต่างๆ
กำรออกแบบฐำนข้ อมูลด้ วย E-R Model
48
2. กำหนด Entity ทีค่ วรมีในระบบฐำนข้ อมูล
 โดยคานึ งถึงข้อมูลทั้งหมดที่จะจัดเก็บลงไปในฐานข้อมูล ว่าสามารถ
แบ่งออกได้เป็ นกี่ Entity
 ภายในฐานข้อมูลหนึ่ ง ๆ อาจจะมีจานวน Entity เป็ นจานวนมาก ซึ่ งก็
ขึ้นอยูท่ ี่ผใู ้ ช้วา่ ต้องการจัดเก็บข้อมูลมากเพียงใด
 โดยการกาหนด Entity จะต้องคานึ งถึง Entity ทั้งแบบอ่อนแอและแบบ
แข็งแรงด้วย
กำรออกแบบฐำนข้ อมูลด้ วย E-R Model
49
3. กำรกำหนดควำมสั มพันธ์ ระหว่ ำง Entity
ั นั้น จะสัมพันธ์กนั ด้วยเงื่อนไขใด
 ว่าแต่ละ Entity ที่มีความสัมพันธ์กน
และชนิดความสัมพันธ์เป็ นอย่างไร
 One to One Relationship
 One to Many Relationship
 Many to Many Relationship
กำรออกแบบฐำนข้ อมูลด้ วย E-R Model
50
4. กำรกำหนดคุณลักษณะของ Entity
ั Entity ว่าควรจะ
 เป็ นการกาหนดคุณสมบัติ (Attributes) ให้กบ
ประกอบไปด้วย Attributes ใดบ้าง
 พร้อมทั้งพิจารณาด้วยว่า Attributes นั้นว่าเป็ นชนิ ดใด (ปกติ อ่อนแอ
เชิงความสัมพันธ์)
กำรออกแบบฐำนข้ อมูลด้ วย E-R Model
51
5. กำรกำหนด key attribute ของแต่ ละ Entity
 เป็ นการกาหนดให้ Entity แต่ละ Entity มีเอกลักษณ์เฉพาะที่
สามารถอ้างอิงได้อย่างไม่ซ้ าซ้อน
 โดย แอททริ บิวต์ทีเป็ น Key Attribute จะต้องขัดเส้นใต้ที่ชื่อ
ของ แอททริ บิวต์
ตัวอย่ ำงกำรออกแบบ ER-Model
52
มหาวิทยาลัยแห่งหนึ่ง เปิ ดสอนหลักสู ตรปริ ญญาตรี หลายคณะ แต่ละคณะเปิ ด
สอนหลายรายวิชา แต่จะเปิ ดรายวิชาซ้ ากันกับคณะอื่นไม่ได้ อาจารย์ 1 ท่านสอน
ได้หลายวิชา แต่ละวิชาจะเปิ ดสอนได้กต็ ่อเมื่อมีนกั ศึกษาลงทะเบียนในรายวิชานั้น
อย่างน้อย 20 คน และห้องเรี ยนแต่ละห้องสามารถใช้สอนวิชาต่าง ๆ ได้หลายวิชา
ขั้นที่ 1 กำหนด Entity ทั้งหมดในระบบ
53

โดยค้นหาคานามจากข้อมูลความต้องการของระบบ พบคานามดังนี้คือ คณะ
รายวิชา อาจารย์ นักเรี ยน ห้องเรี ยน กาหนดเป็ น Entity ดังนี้
1 คณะ (FACULTY)
2 รำยวิชำ (SUBJECT)
3 อำจำรย์ (TEACHER)
4 นักเรียน (STUDENT)
5 ห้ องเรียน (ROOM)
FACULTY
SUBJECT
TEACHER
STUDENT
ROOM
ขั้นที่ 2 สร้ ำงควำมสั มพันธ์ ให้ กบั Entity
54

1.
2.
3.
4.
จำก Entity และข้ อมูลข้ ำงต้ น นำมำเขียนเป็ นควำมสั มพันธ์
(Relationship) ระหว่ ำง Entity ดังรำยละเอียดต่ อไปนี้
แต่ ละคณะเปิ ดสอนหลำยรำยวิชำและซ้ำกับคณะอืน่ ไม่ ได้
อำจำรย์ สอนได้ หลำยวิชำ
ห้ องเรียน เปิ ดทำกำรเรียนกำรสอนทุกรำยวิชำ
รำยวิชำจะเปิ ดสอนได้ กต็ ่ อเมื่อมีนักเรียนลงทะเบียนเรียนอย่ ำง
น้ อย 20 คน
ขั้นที่ 2 กำหนดควำมสั มพันธ์ ให้ กบั Entity
55
FACULTY
have
ROOM
use
SUBJECT
register
STUDENT
teach
TEACHER
นำเงื่อนไขควำมสั มพันธ์ ระหว่ ำง Entity มำกำหนดประเภทของ
ควำมสั มพันธ์
56
FACULTY
1
have
M
ROOM
M
use
N
SUBJECT
M
register
N
STUDENT
M
teach
N
TEACHER
กำหนด Attribute และ Primary Key
57
1. FACULTY (FacId,FacName)
2. SUBJECT (Subid,SubName)
3 .TEACHER (TeacherId,TeacherName)
4. STUDENT (Stdid,StdName,Major)
5. ROOM (RoomNo,RoomDetail)
Facid
FacName
FACULTY
1
RoomNo
have
Subid
TeacherId
SubName
M
ROOM
M
use
N
SUBJECT
M
teach
N
TEACHER
M
RoomDetai
58
TeacherName
register
Stdid
Stdname
N
STUDENT
Major
การเปลี่ยน E-R diagram เป็ น Table

Strong Entity
SID
SName
GPA
Student
ตำรำง Student
SID
SName
GPA
59
การเปลี่ยน E-R diagram เป็ น Table

Entity ที่มี Composite Attribute
FirstName
LastName
SName
SID
GPA
Student
ตำรำง Student
SID
FirstName
LastName
GPA
60
การเปลี่ยน E-R diagram เป็ น Table

Weak Entity
EmpID
EName
Employee
TDate
Salary
stamp
T_In
T_out
TimeStamp
ตำรำง Timestamp
EmpID
TDate
T_In
T_Out
61
การเปลี่ยน E-R diagram เป็ น Table แบบมีความสัมพันธ์

ความสัมพันธ์แบบหนึ่งต่อหนึ่ง (One to One, 1:1)
รหัสตัวแทน
ชื่อตัวแทน
ตัวแทน
ตัวแทน
รหัสตัวแทน ชื่อตัวแทน
ที่อยู่
ทีอ่ ยู่
รหัสลูกค้ า
1
1
ดูแล
ชื่อลูกค้า
ลูกค้ า
รหัสลูกค้า
รหัสตัวแทน ชื่อตัวแทน
ลูกค้ า
รหัสลูกค้า
ชื่อลูกค้า
หรือ
ที่อยู่
ตัวแทน
ลูกค้ า
รหัสลูกค้า
ชื่อลูกค้า
รหัสตัวแทน
62
การเปลี่ยน E-R diagram เป็ น Table แบบมีความสัมพันธ์

ความสัมพันธ์แบบหนึ่งต่อกลุม่ (One to Many, 1:M)
รหัสตัวแทน
ชื่อตัวแทน
ตัวแทน
ตัวแทน
ลูกค้ า
ทีอ่ ยู่
รหัสลูกค้ า
1
M
รหัสตัวแทน ชื่อตัวแทน
รหัสลูกค้า
ดูแล
ที่อยู่
ชื่อลูกค้า
ชื่อลูกค้า
ลูกค้ า
รหัสลูกค้า
รหัสตัวแทน
63
การเปลี่ยน E-R diagram เป็ น Table แบบมีความสัมพันธ์

ความสัมพันธ์แบบกลุม่ ต่อกลุม่ (Many to Many, M:N)
เลขที่ใบสั่ ง
ใบสั่ งซื้อ
วันที่สงั่
วันที่ส่งของ
ใบสั่ งซื้อ
M
เลขที่ใบสั ่ง
วันที่สั ่ง
สัง่ รายการ
สั่ งรายการ
N
สิ นค้ า
วันที่ส่ง
เลขที่ใบสั ่ง
ชื่อสิ นค้า
รหัสสิ นค้ า
ราคา
สิ นค้ า
รหัสสินค้า
ชื่อสินค้า
รหัสสินค้า
64
ราคา
65
ใบสัง่ ซื้ อ
M
ใบสัง่ ซื้ อ
1
สั่งรายการ
M
รำยกำรสั่ งซื้อ
M
N
สิ นค้า
1
สิ นค้า
ภาพแสดงการเปลี่ยนแปลงจาก M:M มาเป็ น 1:M
66
ขั้นตอนการออกแบบฐานข้อมูล :
67
1. รวบรวมความต้องการของผูใ้ ช้
2. วิเคราะห์
3. สร้าง ER Model
4. เปลี่ยน ER Diagram เป็ นโครงสร้างแบบ Relation
5. ทาการ Normalization
2. Data Analysis :
68
- สารวจระบบงาน
-ในงานนั้นมีขอ้ มูลอะไรบ้าง
- ใครเกี่ยวข้อง
- สารสนเทศที่ได้จากข้อมูลคืออะไร?
3. การสร้าง ER Diagram :
69
ประกอบไปด้วย :
- กำหนดเอนทิต ี้ (Entity)
- กำหนดแอตตริบว้ิ ต ์ (Attribute) ให้แตละเอนทิ
ต ี้
่
- กำหนดควำมสั มพันธ ์ (Relationship) ระหวำงเอนทิ
ต ี้
่
4. วิธีการแปลง ER :
70
ประกอบไปด้ วย :
- วิธีกำรแปลงเอนติตที้ ี่ประกอบด้ วยแอททริบิวท์ ชนิดปกติ
-วิธีกำรแปลงเอนติตที้ ี่ประกอบด้ วยแอททริบิวท์ ชนิดกลุ่ม
-วิธีกำรแปลง ER ที่มีควำมสั มพันธ์ แบบ 1:1
-วิธีกำรแปลง ER ที่มีควำมสั มพันธ์ แบบ 1:M
-วิธีกำรแปลง ER ที่มีควำมสั มพันธ์ แบบ M : N
5. กำรแปลงเอนทิตที้ ปี่ ระกอบไปด้วยแอททริบิวต์ชนิดปกติ :
71
วิธีกำรแปลงเอนติตที้ ปี่ ระกอบด้ วยแอททริบิวท์ ชนิดปกติ
ตัวอย่างต่อไปนี้เป็ นการแปลงเอนติต้ ีวชิ ำ ให้เป็ นรี เลชัน(ตาราง)วิชา ซึ่ งเป็ นการ
แปลงในกรณี ที่มีแอททริ บิวท์ชนิดปกติ
6. กำรแปลงเอนทิตที้ ปี่ ระกอบไปด้วยแอททริบิวต์ชนิดกลุ่ม :
72
วิธีกำรแปลงเอนติตที้ ปี่ ระกอบด้ วยแอททริบิวท์ ชนิดกลุ่ม
ตัวอย่างต่อไปนี้เป็ นการแปลงเอนติต้ ีนักศึกษำ ให้เป็ นรี เลชัน(ตาราง)นักศึกษา ซึ่ ง
เป็ นการแปลงในกรณี ที่มีแอททริ บิวท์ชนิ ดกลุ่ม
7. กำรแปลง ER ทีม่ ีควำมสัมพันธ์ แบบ 1:1
73
วิธีกำรแปลง ER ทีม่ ีควำมสั มพันธ์ แบบ 1:1
ตัวอย่างต่อไปนี้เป็ นการแปลงเอนติต้ ีนักศึกษำ ให้เป็ นรี เลชัน(ตาราง)นักศึกษา ซึ่ ง
เป็ นการแปลงในกรณี ที่มีแอททริ บิวท์ชนิ ดกลุ่ม
7. กำรแปลง ER ทีม่ ีควำมสัมพันธ์ แบบ 1:1 (cont.)
74
การแปลงเป็ นตารางนั้นจะต้องนาคียห์ ลัก (primary key : pk) ของ
ตารางหนึ่งไปเป็ นคียน์ อก (foreign key : fk) ของอีกตารางหนึ่ง
เพื่อให้ตารางทั้งสองมีความสัมพันธ์กนั จากตัวอย่างข้างต้นแปลงแล้วได้ดงั รู ป
ต่อไปนี้
8. กำรแปลง ER ทีม่ ีควำมสัมพันธ์ แบบ 1:M
75
ตัวอย่างต่อไปนี้เป็ นภาพ ER Diagram ทีมีความสัมพันธ์ระหว่างเอนติต้ ีแผนกกับเอนติต้ ีพนักงานเป็ นแบบ 1:
M
เมื่อแปลง ER แบบ 1: M ให้เป็ นตารางแล้ว ให้นาคียห์ ลัก (primary key: pk) จากตารางที่เป็ น 1 ไป
ไว้ที่ตารางที่เป็ น M ซึ่งจะกลายเป็ นคียน์ อก (foreign key : fk) ของตารางที่เป็ น M นัน่ เอง ดังรู ป
ต่อไปนี้
8. กำรแปลง ER ทีม่ ีควำมสัมพันธ์ แบบ 1:M (cont.)
76
9. กำรแปลง ER ทีม่ ีควำมสัมพันธ์ แบบ M:N
77
ตัวอย่างต่อไปนี้เป็ นภาพ ER Diagram ทีมีความสัมพันธ์ระหว่างเอนติต้ ี
นักศึกษากับเอนติต้ ีวิชาเป็ นแบบ M: N
9. กำรแปลง ER ทีม่ ีควำมสัมพันธ์ แบบ M:N (cont.)
78
ในการแปลง ER Diagram ที่มีความสัมพันธ์แบบ M:N เมื่อแปลงเป็ นตารางแล้วจะ
เกิดตารางเพิ่มขึ้นมาอีก 1 ตาราง ดังรู ปต่อไปนี้
กิจกรรม บทที่ 2
79

สถาบันการศึกษาแห่งหนึ่ งมีการสอนอยู่ 3 คณะ คือ เกษตร,
วิทยาศาสตร์, ศึกษาศาสตร์ ซึ่งในแต่ละคณะจะประกอบไปด้วย
ภาควิชาต่าง ๆ
 แต่ละภาควิชาก็จะประกอบไปด้วยอาจารย์หลาย ๆ คน อาจารย์แต่
ละคนสอนได้หลายวิชา
 แต่สามารถสังกัดได้เพียงแค่ภาควิชาเดียวและอาจารย์แต่ละคนแต่ละ
ภาคก็จะมีหวั หน้าภาค
ให้นาข้อมูลไปเขียนเป็ น ER Model
เฉลย - แสดงเป็ น ER Model
80
ขั้นตอน กำรออกแบบฐำนข้ อมูลด้ วย E-R Model
81
กำหนด Entity ทีค่ วรมีในระบบฐำนข้ อมูล
Entity Faculty แสดงรายละเอียดของคณะ
Entity Department แสดงรายละเอียดของแผนก
Entity Teacher แสดงรายละเอียดของอาจารย์
Entity Subject แสดงรายละเอียดของวิชา
ขั้นตอน กำรออกแบบฐำนข้ อมูลด้ วย E-R Model

กาหนดความสัมพันธ์ระหว่าง Entity
82
ขั้นตอน กำรออกแบบฐำนข้ อมูลด้ วย E-R Model
83
ขั้นตอน กำรออกแบบฐำนข้ อมูลด้ วย E-R Model
กาหนดคุณลักษณะของ Entity
Faculty_ID
 Faculty
Faculty_Name
Faculty

Department
Dep_ID
Dep_Name
Department
84
ขั้นตอน กำรออกแบบฐำนข้ อมูลด้ วย E-R Model
85
Teacher_ID
 Teacher
Teacher_Name
Salary
Teacher
 Subject
Subject
Subject_ID
Subject_Name
Unit
ขั้นตอน กำรออกแบบฐำนข้ อมูลด้ วย ER Model
86
กำรกำหนด Primary Key ของ Entity
 Entity Faculty
คือ Faculty_ID
 Entity Department คือ Dep_ID
 Entity Teacher
คือ Teacher_ID
 Entity Subject
คือ Subject_ID
ตัวอย่ ำงกำรออกแบบฐำนข้ อมูลด้ วย E-R Model
87
แบบฝึ กหัดสาหรับนักศึกษา
88
ให้นาข้อมูลไปเขียน ER-Diagram , แล้วเปลี่ยน ER Diagram เป็ นโครงสร้ ำงแบบ
Relation (Table)
ข้อ 1.ให้เขียน ER-Diagram ของระบบการขายสิ นค้า ร้านขายคอมพิวเตอร์ แห่ง
หนึ่ง คอมพิวเตอร์ โดยที่ลกู ค้าหลายคนสามารถที่จะซื้ อสิ นค้าได้หลายอัน
ใบเสร็ จรับเงินหลายใบมีสินค้าได้หลายชิ้น ในใบเสร็ จแต่ละใบจะมีพนักขายเพียง
คนเดียวเท่านั้น สิ นค้าแต่ละอันจะมีการกาหนดประเภทของสิ นค้า
แบบฝึ กหัดสาหรับนักศึกษา
89
ข้อ 2 บริ ษทั DesignWeb เป็ นบริ ษทั รับจ้างออกแบบเว็บไซต์ โดยภายในบริ ษทั
แบ่งการทางานออกเป็ นหลายแผนก โดยมีการกาหนดแต่ละแผนกออกเป็ นรหัส
เพื่อง่ายแก่การจัดเก็บข้อมูล ในแต่ละแผนกต้องการจัดเก็บข้อมูลพนักงานที่ยา้ ยเข้า
อยูใ่ นแผนก โดยจะต้องรู ้วา่ พนักงานคนดังกล่าว ย้ายเข้ามาในแผนกเมื่อไร
พนักงานทุกคนต้องสังกัดอยูใ่ นแผนก สาหรับข้อมูลพนักงานที่บริ ษทั ต้องการ
จัดเก็บได้แก่ รหัสของพนักงาน ชื่อ นามสกุล เงินเดือน และที่อยูข่ องพนักงาน
อย่างละเอียด เพื่อที่จะจัดส่ งเอกสารไปให้พนักงาน และต้องการทราบด้วยว่า
พนักงานแต่ละคนมีเบอร์ โทรศัพท์กี่เบอร์ เบอร์ อะไรบ้าง เพื่อสะดวกในการติดต่อ
งาน นอกจากนี้บริ ษทั ยังต้องการทราบว่าในแต่ละแผนกมีพนักงานรวมทั้งหมดกี่
คน และมีเงินเดือนรวมเท่าไร