Relationship Model)
ER Model
ER Model
- No tags were found...
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
ข้อมูลหลักและความสัมพันธ์<br />
ระหว่างข้อมูลหลัก<br />
(Entity and<br />
<strong>Relationship</strong> <strong>Model</strong>)<br />
1
ข้อมูลหลัก (entity)<br />
•คือวัตถุต่าง ๆ ที่เราสนใจและใช้อธิบายสิ่งต่างๆ ที่แตกต่างกัน<br />
เช่น คน สิ่งของ เหตุการณ์ ซึ่งข้อมูลหลักจะมีคุณสมบัติที่แตกต่าง<br />
กันออกไป ข้อมูลหลักที่มีคุณสมบัติเหมือน ๆ กัน จะมีค่าทุกค่า<br />
เหมือนกัน เรียกข้อมูลหลักนั้นว่า เอนทิตีเซต คือ ข้อมูล 1 ตาราง<br />
ที่ประกอบด้วยหลาย ๆ เรคคอร์ดนั่นเอง<br />
2
แอททริบิวต์ (attribute)<br />
•คือคุณสมบัติ(property) ของข้อมูลหลักที่มีคุณสมบัติที่แตกต่าง<br />
กันออกไป เช่น ข้อมูลสมาชิก มีแอททริบิวต์ รหัสสมาชิก ชื่อ<br />
นามสกุล ต าแหน่ง เงินเดือน วันที่สมัครสมาชิก จ านวนเงินหุ้น<br />
จ านวนเงินสะสม เป็นต้น ซึ่งแต่ละแอททริบิวต์จะต้องมีชนิดของ<br />
ข้อมูลและขนาดของข้อมูลก ากับอยู่ เช่น รหัสนักศึกษา มีชนิด<br />
ข้อมูลเป็นตัวอักษร(string) ขนาด 8 ตัวอักษร เงินเดือนมีชนิด<br />
ข้อมูลเป็นตัวเลขจ านวนเต็ม (integer) หรือวันที่สมัครสมาชิก มี<br />
ชนิดข้อมูลเป็นวันที่ (date)<br />
3
ความสัมพันธ์ระหว่างข้อมูลหลัก (<strong>Relationship</strong>)<br />
•ตารางส าหรับข้อมูลหลักมีหลายตาราง หนึ่งตารางจะเก็บข้อมูลหลัก<br />
เพียงเรื่องเดียว<br />
•เช่น ตารางสมาชิกก็จะเก็บเฉพาะข้อมูลสมาชิก<br />
•ตารางใบสัญญาเงินกู้ก็จะเก็บเฉพาะข้อมูลใบสัญญาเงินกู้<br />
• ไม่น าข้อมูลรายละเอียดสมาชิกมาเก็บในตารางใบสัญญาเงินกู้เพื่อลด<br />
ความซ้ าซ้อนในการเก็บข้อมูล<br />
• ต้องทราบว่าใบสัญญาเงินกู้แต่ละใบสมาชิกคนใดเป็นผู้กู้จึงจ าเป็นที่<br />
จะต้องให้ตารางสมาชิกกับตารางใบสัญญาเงินกู้นั้นมีความสัมพันธ์กัน<br />
โดยมีคีย์นอกเป็นตัวเชื่อมความสัมพันธ์ระหว่างตาราง<br />
4
ข้อมูลหลัก (Entity)<br />
• ข้อมูลหลักมีด้วยกัน 2 รูปแบบคือ<br />
•Strong Entity คือข้อมูลหลักที่มีอยู่จริงและสามารถมีอยู่ได้ด้วย<br />
ตัวเอง เช่น ข้อมูลสมาชิก ซึ่งในระบบสหกรณ์ออมทรัพย์จะต้อง<br />
มีข้อมูลสมาชิกอยู่แล้ว<br />
•Weak Entity คือข้อมูลหลักที่มีอยู่จริงแต่ข้อมูลจะมีอยู่ได้ต้อง<br />
ขึ้นอยู่กับ Strong Entity เช่น การช าระเงินกู้จะเกิดขึ้นไม่ได้ถ้า<br />
สมาชิกไม่มีการกู้เงิน ดังนั้นจึงถือว่าการช าระเงินกู้เป็น weak<br />
entity<br />
5
แอททริบิวต์ (attribute)<br />
•คีย์แอททริบิวต์(key attribute) เป็นแอททริบิวต์ที่มีค่าเฉพาะ มีค่าไม่<br />
ซ้ ากับใคร เช่น รหัสสมาชิก หรือเลขที่ใบสัญญา<br />
•แอททริบิวต์เชิงเดี่ยว (simple attribute) และแอททริบิวต์เชิง<br />
ประกอบ(composite attribute)<br />
•แอททริบิวต์เชิงเดี่ยว (simple attribute) เป็นแอททริบิวต์ที่มีค่าได้<br />
เพียงค่าเดียว และไม่สามารถแตกย่อยออกไปได้อีก เช่น รหัสสมาชิก<br />
หรือ เงินเดือน<br />
•แอททริบิวต์เชิงประกอบ(composite attribute) เป็นแอททริบิวต์ที่<br />
ประกอบด้วยหลาย ๆ แอททริบิวต์ เช่น ชื่อสมาชิกที่สมบูรณ์ควร<br />
ประกอบด้วย ค าน าหน้าชื่อ ชื่อ และนามสกุล หรือ ที่อยู่ ประกอบด้วย<br />
บ้านเลขที่ ถนน ต าบล อ าเภอ จังหวัด รหัสไปรษณีย์ เป็นต้น<br />
6
•แอททริบิวต์แบบค่าเดี่ยว(single valued attribute) และแอทท<br />
ริบิวต์แบบหลายค่า(multi-valued attribute)<br />
•- แอททริบิวต์แบบค่าเดี่ยว(single valued attribute) มีค่าได้<br />
เพียงค่าเดียว เช่น ชื่อ อายุ ข้อมูล นี้จะมีค่าอยู่เพียงค่าเดียว<br />
•- แอททริบิวต์แบบหลายค่า(multi-valued attribute) มีค่าได้<br />
หลายค่า เช่น เบอร์โทรศัพท์ หนึ่งคนสามารถมีได้หลายเบอร์<br />
หรือ การช าระค่าสมาชิก หนึ่งคนต้องช าระค่าสมาชิกทุก ๆ เดือน<br />
7
•. แอททริบิวต์ที่เก็บไว้ (stored attribute) และแอททริบิวต์ที่ได้<br />
จาการอนุมาน (derived attribute)<br />
• แอททริบิวต์ที่เก็บไว้ (stored attribute) เป็นข้อมูลพื้นฐาน มี<br />
ค่าข้อมูลที่รู้ค่าตั้งแต่ครั้งแรก สามารถเก็บค่าได้เลย เช่น ชื่อ<br />
นามสกุล ที่อยู่<br />
• แอททริบิวต์ที่ได้จาการอนุมาน (derived attribute) แอททริ<br />
บิวต์ที่ได้มาจากแอททริบิวต์อื่น หรือค านวณมาจากแอททริบิวต์<br />
อื่น เช่น อายุ ค านวณมาจากวันเดือนปีเกิดกับวันเดือนปี ปัจจุบัน<br />
หรือ ดอกเบี้ย ค านวณมาจากยอดเงินกู้คงเหลือกับอัตราดอกเบี้ย<br />
จึงจะท าให้ทราบว่าดอกเบี้ยที่ต้องช าระในเดือนนั้นเป็นเท่าไร<br />
8
•ค่าว่าง (null values) บางแอททริบิวต์อาจมีค่าว่างได้ในกรณีที่<br />
ไม่ทราบค่าของข้อมูล เช่น เบอร์โทรศัพท์ บางคนอาจมีข้อมูลหรือ<br />
บางคนไม่มีข้อมูล<br />
9
สัญลักษณ์ที่ใช่ใน ER <strong>Model</strong> แบบ Chen <strong>Model</strong><br />
10
Crow’s Foot <strong>Model</strong><br />
ความหมาย<br />
สัญลักษณ์<br />
Strong entity<br />
Weak entity<br />
13
ความหมาย<br />
สัญลักษณ์<br />
<strong>Relationship</strong><br />
1:1 แบบ Total<br />
participation<br />
1:1 แบบ E1 เป็น<br />
Partial participation<br />
E2 เป็น Total<br />
participation<br />
E1<br />
E1<br />
E2<br />
E2<br />
14
ความหมาย<br />
สัญลักษณ์<br />
1:N แบบ E1 เป็นPartial<br />
participation<br />
E2 เป็น Total<br />
participation<br />
1:N แบบ E1,E2 เป็น<br />
Partial participation<br />
E1<br />
E2<br />
15
ความสัมพันธ์ระหว่างข้อมูลหลัก (<strong>Relationship</strong>)<br />
•ความสัมพันธ์ระหว่างสองข้อมูลหลัก (Binary <strong>Relationship</strong>)<br />
เช่นข้อมูลสมาชิกสัมพันธ์กับข้อมูลใบสัญญาเงินกู้<br />
สมาชิก ใบสัญญาเงินกู้<br />
16
•ความสัมพันธ์ระหว่างข้อมูลหลักที่มากกว่าสองข้อมูลหลัก<br />
(Ternary <strong>Relationship</strong>) เช่น ข้อมูลคนไข้สัมพันธ์กับข้อมูล<br />
แพทย์ที่รักษาและสัมพันธ์กับยาที่ใช้<br />
17
Ternary <strong>Relationship</strong> แบบ Crow’s foot <strong>Model</strong><br />
แพทย์<br />
คนไข้ รักษา ยา<br />
18
•ความสัมพันธ์ระหว่างตัวเอง (Recursive <strong>Relationship</strong> หรือ<br />
Unary <strong>Relationship</strong>) เช่นข้อมูลพนักงานสัมพันธ์กับตนเองโดย<br />
พนักงานบางคนเป็นผู้จัดการ<br />
พนักงาน<br />
เป็นผู้จัดการ<br />
พนักงาน<br />
มีผู้จัดการ<br />
19
Connectivity<br />
•แบบหนึ่งต่อหนึ่ง (One to One <strong>Relationship</strong>) เป็น<br />
ความสัมพันธ์ของข้อมูลเอ็นทิตี้หนึ่งที่สัมพันธ์กับข้อมูลของอีก<br />
เอ็นทิตี้หนึ่งเพียงเรคคอร์ดเดียว<br />
A1<br />
A2<br />
A3<br />
A4<br />
A5<br />
A6<br />
E1<br />
R1<br />
1 1<br />
E2<br />
A7<br />
20
Chen model<br />
A1<br />
A2<br />
A3<br />
A4<br />
A5<br />
A6<br />
E1<br />
Crow’s foot model<br />
R1<br />
1 1<br />
E2<br />
A7<br />
E1<br />
E2<br />
E1<br />
E2<br />
21
หมายเลขบัตร<br />
ประชาชน<br />
เจ้าของ<br />
ชื่อ-สกุล<br />
ที่อยู่<br />
บ้านเลขที่<br />
ต าบล<br />
อ าเภอ<br />
จังหวัด<br />
1 รถยนต์<br />
มี<br />
รุ่น<br />
1<br />
ทะเบียน<br />
ยี่ห้อ<br />
สี หมายเลขเครื่อง<br />
เจ้าของ 1 คน มีรถได้ 1 คัน<br />
รถ 1 คัน มีเจ้าของได้ 1 คน<br />
22
-<br />
1 1<br />
ประชาชนหนึ่งคน มีประวัติการเกิด 1 รายการ<br />
ประวัติการเกิดหนึ่งรายการ เป็นของประชาชน 1<br />
คน<br />
23
•แบบหนึ่งต่อกลุ่ม (One to Many <strong>Relationship</strong>) เป็น<br />
ความสัมพันธ์ของข้อมูลเอ็นทิตี้หนึ่งที่สัมพันธ์กับข้อมูลของอีก<br />
เอ็นทิตี้หนึ่งได้หลายเรคคอร์ด<br />
24
Chen model<br />
A1<br />
A2<br />
A3<br />
A4<br />
A5<br />
A6<br />
E1<br />
R1<br />
1 m<br />
E2<br />
A7<br />
Crow’s foot model<br />
25
รหัสนักศึกษา<br />
นักศึกษา<br />
ชื่อ-สกุล<br />
ที่อยู่<br />
m<br />
บ้านเลขที่ ต าบล<br />
อ าเภอ<br />
จังหวัด<br />
1<br />
มี<br />
เงินเดือน<br />
อาจารย์ที่ปรึกษา<br />
นักศึกษา 1 คน มีอาจารย์ที่ปรึกษาได้ 1 คน<br />
รหัสอาจารย์<br />
อาจารย์ที่ปรึกษา 1 คน มีนักศึกษาได้ หลาย คน<br />
ชื่อ-สกุล<br />
ต าแหน่ง<br />
26
-<br />
1 m<br />
สมาชิก 1 คน มีใบสัญญาเงินกู้ได้ หลายใบ<br />
ใบสัญญาเงินกู้ 1 ใบ เป็นของสมาชิกได้เพียง 1 คน<br />
28
•แบบกลุ่มต่อกลุ่ม (Many to Many <strong>Relationship</strong>) เป็น<br />
ความสัมพันธ์ของข้อมูลเอ็นทิตี้หนึ่งที่สัมพันธ์กับข้อมูลของอีก<br />
เอ็นทิตี้หนึ่งได้หลายเรคคอร์ด และข้อมูลของอีกเอ็นทิตี้หนึ่ง<br />
สัมพันธ์กับข้อมูลเอ็นทิตี้แรกได้หลายเรคคอร์ดเช่นกัน<br />
30
A1<br />
A2<br />
A3<br />
A4<br />
A5<br />
A6<br />
E1<br />
1 m<br />
m 1<br />
R1<br />
E2<br />
A7<br />
31
ookid<br />
title<br />
book<br />
M M<br />
N<br />
เขียน<br />
writerid<br />
M<br />
writername<br />
writer<br />
pubid<br />
publishing<br />
เป็น<br />
พิมพ์<br />
1<br />
publishing<br />
1<br />
booktype<br />
typeid<br />
typename<br />
33
ระบบหอพัก<br />
•ข้อมูลนักศึกษา =>รหัสนักศึกษา,ชื่อ-สกุล,ที่อยู่,โปรแกรม,ชั้นปี<br />
•ข้อมูลหอพัก =>รหัสหอพัก,ชื่อหอพัก,จ านวนห้อง<br />
•ข้อมูลห้องพัก=>หมายเลข,ราคาห้อง,จ านวนคน<br />
• ระบบทัวร์ ข้อมูลหลักคือ พนักงาน โปรแกรมทัวร์ ที่พัก รถ ลูกค้า<br />
สถานที่<br />
35
นักศึกษา<br />
m<br />
พัก<br />
1<br />
ห ้องพัก<br />
m 1<br />
มี<br />
หอพัก
• ระบบทัวร์ ข้อมูลหลักคือ พนักงาน โปรแกรมทัวร์ ที่พัก รถ ลูกค้า<br />
สถานที่<br />
พนักงาน<br />
ที่พัก<br />
รับผิด<br />
ชอบ<br />
มี<br />
โปรแกรมทัวร์<br />
มี<br />
รถ<br />
จอง<br />
มี<br />
ลูกค ้า สถานที่
ร้านซ่อมรถร้านหนึ่งต้องการเก็บข้อมูลของลูกค้าที่เข้ามาซ่อมรถในร้าน<br />
ว่ามีใครน ารถมาซ่อมบ้างและซ่อมกับพนักงานคนใด เมื่อใด และค่า<br />
ซ่อมเป็นเท่าไร<br />
ลูกค้า => ชื่อ นามสกุล ที่อยู่ เบอร์โทรศัพท์ เลขบัตรประชาชน<br />
พนักงาน => รหัสพนักงาน ชื่อ นามสกุล เบอร์โทร ที่อยู่<br />
รถ => ยี่ห้อ ทะเบียน สี รุ่น หมายเลขเครื่อง<br />
ซ่อม =>วันที่ซ่อม ค่าซ่อม อาการ<br />
38
พนักงาน<br />
m<br />
ซ่อม<br />
รถ<br />
n<br />
m 1<br />
เป็ น<br />
เจ ้าของ<br />
เจ ้าของ
การแปลง E/R (chen model) ให้เป็นตาราง<br />
1. แปลง 1 entity เป็น 1 ตาราง<br />
2. แปลงจากความสัมพันธ์<br />
40
ความสัมพันธ์แบบ one to one<br />
ให้น า primary key ของตารางด้านหนึ่งไปใส่ในตารางอีกด้านหนึ่งเพียงด้านเดียว<br />
attribute1<br />
attribute2<br />
attribute3<br />
attribute5<br />
attribute6<br />
attribute7<br />
attribute4<br />
Entity1<br />
1 1<br />
<strong>Relationship</strong><br />
Entity2<br />
Entity1<br />
Attribute1 Attribute2 Attribute3 Attribute4 Attribute5<br />
Entity2<br />
Attribute5 Attribute6 Attribute7<br />
41
attribute1<br />
attribute2<br />
attribute3<br />
attribute5<br />
attribute6<br />
attribute7<br />
attribute4<br />
Entity1<br />
1 1<br />
<strong>Relationship</strong><br />
Entity2<br />
Attribute1 Attribute2 Attribute3 Attribute4<br />
Attribute5 Attribute6 Attribute7 Attribute1<br />
42
-<br />
1 1<br />
ตารางประชาชน<br />
เ ล ข บั ต ร<br />
ประชาชน<br />
เ ล ข บั ต ร<br />
ประชาชน<br />
ชื่อ-สกุล บิดา มารดา บ้านเลขที่ ต าบล อ าเภอ จังหวัด<br />
ตารางประวัติการเกิด<br />
วันที่เกิด เวลา สถานที่ สัญชาติ เชื้อชาติ<br />
43
-<br />
1 1<br />
ตารางเจ้าของรถยนต์<br />
เ ล ข บั ต ร<br />
ประชาชน<br />
ชื่อ-สกุล บ้านเลขที่ ต าบล อ าเภอ จังหวัด<br />
ตารางรถยนต์<br />
เ ล ข บั ต ร<br />
ประชาชน<br />
ทะเบียน ยี่ห้อ รุ่น สี เครื่องยนต์<br />
44
ความสัมพันธ์แบบ one to many<br />
ให้น า primary key ของตารางด้าน one ไปใส่ในตารางด้านmany<br />
A1<br />
A2<br />
A4<br />
A5<br />
A3<br />
A6<br />
E1<br />
R1<br />
1 m<br />
E2<br />
A7<br />
Table E1<br />
Table E2<br />
A1 A2 A3 A4 A5 A6 A7 A1<br />
45
รหัสนักศึกษา<br />
นักศึกษา<br />
ชื่อ-สกุล<br />
ที่อยู่<br />
m<br />
บ้านเลขที่ ต าบล<br />
อ าเภอ<br />
รหัสอาจารย์ ชื่อ-สกุล<br />
จังหวัด 1<br />
อาจารย์ที่ปรึกษา<br />
มี<br />
เงินเดือน ต าแหน่ง<br />
รหัส<br />
นักศึกษา<br />
ชื่อ-สกุล บ้านเลขที่ ต าบล อ าเภอ จังหวัด รหัส<br />
อาจารย์<br />
รหัสอาจารย์ ชื่อ-สกุล เงินเดือน ต าแหน่ง<br />
46
-<br />
1 m<br />
รหัสสมาชิก ชื่อ-สกุล ต าแหน่ง เงินเดือน วันที่สมัคร<br />
สมาชิก<br />
จ านวนเงินหุ้น จ านวนเงิน<br />
สะสม<br />
เลขที่ใบ<br />
สัญญา<br />
รหัสสมาชิก วันที่กู้ ประเภท<br />
การกู้<br />
จ านวน<br />
เงินที่กู้<br />
จ านวนงวด ผู้ค้ า สถานะการกู้<br />
47
ความสัมพันธ์แบบ many to many<br />
ให้แปลงความสัมพันธ์เป็นอีกหนึ่งตารางและน า primary<br />
key ของตารางทั้งสองด้านไปใส่ในตารางความสัมพันธ์<br />
A1<br />
A2<br />
A3<br />
A8<br />
A4<br />
A5<br />
A6<br />
E1<br />
m<br />
Table E1<br />
Table E2<br />
A1 A2 A3 A4 A5 A6 A7<br />
R1<br />
n<br />
E2<br />
A7<br />
Table R1<br />
A1 A4 A8<br />
48
รหัสนักศึกษา ชื่อ-สกุล หลักสูตร คณะ<br />
รหัสวิชา ชื่อวิชา หน่วยกิต<br />
รหัสนักศึกษา รหัสวิชา ภาคเรียน เกรด<br />
49
ookid<br />
1<br />
title<br />
book<br />
M M<br />
เป็น<br />
N<br />
เขียน<br />
พิมพ์<br />
booktype<br />
writerid<br />
M<br />
1<br />
writername<br />
writer<br />
pubid<br />
publishing<br />
typeid<br />
publishing<br />
typename<br />
Pubid<br />
publishing<br />
Writerid<br />
writername<br />
Bookid title typeid pubid<br />
Typeid<br />
typename<br />
Writerid<br />
bookid<br />
50
รหัสสมาชิก ชื่อ-สกุล<br />
ที่อยู่<br />
รหัสหนังสือ ชื่อหนังสือ<br />
สมาชิก<br />
n<br />
ยืม<br />
m<br />
หนังสือ<br />
วันที่ยืม วันที่คืนจริง<br />
วันก าหนดคืน<br />
รหัสสมาชิก ชื่อ-สกุล ที่อยู่<br />
1 กนกวรรณ อยุธยา<br />
2 ขวัญศิริ อ่างทอง<br />
รหัสหนังสือ ชื่อหนังสือ<br />
B001 ฐานข้อมูล<br />
B002 ภาษาจาวา<br />
รหัส<br />
สมาชิก<br />
รหัส<br />
หนังสือ<br />
วันที่ยืม วันที่ก าหนดคืน วันที่คืนจริง<br />
1 B001 30/06/2551 6/07/2551 5/07/2551<br />
1 B002 30/06/2551 6/07/2551 5/07/2551<br />
51