06.09.2015 Views

Relationship Model)

ER Model

ER Model

SHOW MORE
SHOW LESS
  • 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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!