Database System--บทที่ 3 โมเดลจำลองความสัมพันธ์ระหว่างข้อมูล

Download Report

Transcript Database System--บทที่ 3 โมเดลจำลองความสัมพันธ์ระหว่างข้อมูล

แบบจำลองควำมสั มพันธ์ ระหว่ ำงข้ อมูล
The Entity-Relationship Model
1
แนวคิดเกีย่ วกับแบบจำลองควำมสั มพันธ์ ระหว่ ำงข้ อมูล
 Semantic Model
 อี-อาร์ โมเดล
2
แนวคิดเกี่ยวกับแบบจาลองความสัมพันธ์ระหว่างข้อมูล

Semantic Model เป็ นแบบจาลองข้อมูลที่กล่าวถึงแนวคิดหรื อความหมายของ
คาต่างๆ คือ
 Entity หมายถึง สิ่ งที่สนใจสามารถระบุได้ในความเป็ นจริ ง และต้องการ
เก็บข้อมูลที่เกี่ยวข้องกับสิ่ งนั้นๆด้วย
 Property หมายถึง คุณสมบัติหรื อคุณลักษณะของ Entity
• Property ที่เป็ นเอกลักษณ์เฉพาะของแต่ละ Entity เรี ยกว่า Identity
 Relation หมายถึง Entity Typeที่แสดงความสัมพันธ์ระหว่าง 2 Entity
Type ขึ้นไป
 Subtype หมายถึง Entity Type ที่มีขอ
้ มูลเป็ นส่ วนหนึ่งของ Entity หลัก
3
ความหมายของคาต่ าง ๆ
4
แนวคิดเกี่ยวกับแบบจาลองความสัมพันธ์ระหว่างข้อมูล
 อี-อาร์ โมเดล (Entity-Relationship Model)


เป็ นแบบจาลองข้อมูลซึ่งแสดงถึงโครงสร้างของฐานข้อมูล
สัญลักษณ์ต่างๆที่ใช้ในอี-อาร์โมเดลเรี ยกว่า อี-อาร์ไดอะแกรม
• Entity ใช้สัญลักษณ์รูปสี่ เหลี่ยมผืนผ้า
• Property ใช้สัญลักษณ์รูปวงรี
• Relation ใช้สญ
ั ลักษณ์รูปสี่ เหลี่ยมข้าวหลามตัด และเชื่อมต่อ Entity
อื่นด้วยเส้นตรง
• SubType และ SuperType
5
Entity Relationship Diagram
 เป็ นแผนภาพสัญลักษณ์ ที่แสดงความสัมพันธ์ขององค์ประกอบ
ต่างๆ เพื่อสร้างฐานข้อมูลเชิงสัมพันธ์ ได้แก่ เอนติต้ ี แอตทริ บิวต์
และความสัมพันธ์ระหว่างเอนติต้ ี
 จุดเด่นของ ER



ช่วยให้การออกแบบทาได้ง่ายขึ้น ด้วยการจัดระเบียบความคิดของคนที่ทา
การออกแบบ ที่มีต่อองค์ประกอบต่างๆให้ชดั เจน
ช่วยนาให้เกิดความคิดอย่างเป็ นขั้นตอน ลดความซับซ้อนของระบบได้
อย่างดี
มองเห็นความสัมพันธ์ระหว่างข้อมูล มองเห็นแอตทริ บิวต์ของข้อมูลได้
ชัดเจน
6
สัญลักษณ์ของ ER Model
สัญลักษณ์
ความหมาย
สี่ เหลี่ยมผืนผ้า
เอนติต้ ี
สี่ เหลี่ยมผืนผ้าเส้นคู่
เอนติต้ ีแบบอ่อน
(Weak Entity)
สี่ เหลี่ยมข้าวหลามตัด
ความสัมพันธ์
ER-Model ตำมแบบของ Peter Pin Shan Chen
7
สัญลักษณ์ของ ER model(ต่อ)
สัญลักษณ์
ความหมาย
ความสัมพันธ์แบบอ่อน
(Weak Relationship)
แอตทริ บิวต์
แอตทริ บิวต์ที่เป็ น primary key
8
สัญลักษณ์ของ ER model(ต่อ)
สัญลักษณ์
ความหมาย
แอตทริ บิวต์ที่มีหลายค่า
แอตทริ บิวต์ประกอบ (แอตทริ บิวต์ดา้ นบน
เป็ นส่ วนประกอบของแอตทริ บิวต์
ด้านล่าง)
9
สัญลักษณ์ของ ER model(ต่อ)
สัญลักษณ์
ความหมาย
ดีไรฟ์ แอตทริ บิ่วต์(derived attribute) เก็บ
ผลของการคานวณหรื อแปลงค่ามาจากแอต
ทริ บิวต์เดิม
E1
R
E2
ความสัมพันธ์ที่ขอ้ มูลทุกๆแถวในเอนติต้ ี
E2 สามารถจับคู่ได้กบั ข้อมูลแถวใดแถว
หนึ่งของ E1 ได้ เรี ยกว่า ข้อมูลใน E2 เป็ น
total participation กับ E1
10
สัญลักษณ์ของ ER model(ต่อ)
สัญลักษณ์
E1
R
ความหมาย
E2
ความสัมพันธ์ที่ขอ้ มูลทุกๆแถวในเอนติต้ ี
E1 สามารถจับคู่ได้กบั ข้อมูลแถวใดแถว
หนึ่งของ E2 ได้เรี ยกว่า ข้อมูลใน E2 เป็ น
partial participation กับ E1
11
ส่ วนประกอบของ E-R diagram
 Entity ใช้สญ
ั ลักษณ์รูปสี่ เหลี่ยมผืนผ้า

บุคคล เช่น Customer, department, division, employee

สถานที่ เช่น building, room, branch, campus

วัตถุ เช่น book, machine, product, raw material

เหตุการณ์ เช่น invoice, order, registration, reservation

แนวความคิด เช่น account, bond, course, stock
12
ส่ วนประกอบของ E-R diagram
 Entity สามารถแบ่งได้เป็ น 2 ประเภท


Strong Entity เป็ นเอนติต้ ีที่เกิดขึ้นได้ดว้ ยตัวเอง โดยไม่ข้ ึนกับเอนติต้ ี
ใดๆ ใช้สญ
ั ลักษณ์รูปสี่ เหลี่ยมผืนผ้าปกติ
Weak Entity เป็ นเอนติต้ ีอ่อนแอ คือ จะขึ้นอยูก่ บั เอนติต้ ีอื่นๆ ใช้
สัญลักษณ์รูปสี่ เหลี่ยมผืนผ้าเส้นคู่
วิชาทีส
่ อน
13
ส่ วนประกอบของ E-R diagram
 Attributes ใช้สญ
ั ลักษณ์รูปวงรี

คุณสมบัติของ Entity เช่น attribute ของ entity นักศึกษา ประกอบด้วย
รหัสประจาตัว ชื่อ-สกุล เพศ คณะ เป็ นต้น
14
ส่ วนประกอบของ E-R diagram
Attribute Domain : คือการกาหนดขอบเขตค่าข้อมูลและชนิดข้อมูลของ
แต่ละ attribute นัน่ หมายถึงโดเมนจะกาหนดความเป็ นไปได้ของข้อมูล

Attribute แบ่งได้เป็ น 6 ประเภท คือ
1. Simple Attribute: มีองค์ประกอบเดียวที่เป็ นอิสระ เช่น attribute sex
และ salary บางที่เรี ยกว่า atomic attribute
2. Key Attribute : แอททริ บิวต์หรื อกลุ่มของแอททริ บิวต์ที่มีค่าของข้อมูล
ในแต่ละสมาชิกไม่ซ้ ากัน เช่น รหัสประชาชน หรื อ รหัสนักศึกษา
ID_people , ID_student ซึ่งจะขีดเส้นใต้ที่ชื่อนั้น
15
ส่ วนประกอบของ E-R diagram
 Attribute แบ่งได้เป็ น 6 ประเภท คือ
3. Composite Attribute: มีองค์ประกอบอยูห่ ลายตัว โดยแต่ละตัวจะมีความ
เป็ นอิสระต่อกัน เช่น attribute address ประกอบด้วย street, area, city
และ zipcode
16
ส่ วนประกอบของ E-R diagram
 Attribute แบ่งได้เป็ น 6 ประเภท คือ
4. Single-Value Attribute: บรรจุค่าเพียงค่าเดียว เช่น entity branch จะมี
attribute Bno เป็ น Single-Value Attribute เช่น รหัสสาขา B3 หมายถึง
Bno (Branch_no) จะนาไปอ้างอิงได้ค่าเพียงหนึ่งค่าเท่านั้น
17
ส่ วนประกอบของ E-R diagram
 Attribute แบ่งได้เป็ น 6 ประเภท คือ
5. Multi-value Attribute: ประกอบด้วยค่าหลายๆค่า ผสมกัน เช่น บุคคล
หนึ่งคนอาจมีวฒ
ุ ิการศึกษาได้หลายระดับ หรื อ บ้านหลังหนึ่ งมีเบอร์
โทรศัพท์หลายเบอร์ จะเชื่อมต่อ attribute ด้วยเส้นคู่
18
ส่ วนประกอบของ E-R diagram
 Attribute แบ่งได้เป็ น 6 ประเภท คือ
6. Derived Attribute: ค่าของข้อมูลในแต่ละสมาชิกของ entity ได้มาจากการนาค่า
ของข้อมูลใน attribute อื่นที่มีอยูใ่ นแต่ละสมาชิกของ entity มาทาการคานวณ
เช่น attribute อายุปัจจุบนั สามารถคานวณได้จาก attribute วัน/เดือน/ปี /เกิด
เป็ นต้น จะเชื่อมต่อ attribute ด้วยเส้นประ
19
ส่ วนประกอบของ E-R diagram
 Relation (ความสัมพันธ์)ใช้สัญลักษณ์รูปสี่ เหลี่ยมข้าวหลามตัด และ
เชื่อมต่อ Entity อื่นด้วยเส้นตรง

แสดงความสัมพันธ์ระหว่าง 2 entity ขึ้นไป ซึ่งโดยทัว่ ไปเป็ น
ความสัมพันธ์ระหว่าง entity ที่มี attribute ร่ วมกัน โดยแต่ละ
ความสัมพันธ์จะถูกระบุดว้ ยชื่อที่ถูกอธิบายถึงความสัมพันธ์น้ นั ๆ เช่น
ความสัมพันธ์สงั กัด แสดงความสัมพันธ์ระหว่าง entity นักศึกษา และ
entity คณะ
20
กฎเกณฑ์ขอ้ กาหนดในความสัมพันธ์

Cardinality Constraints (ratio)

ความสัมพันธ์แบบหนึ่งต่อหนึ่ง (one-to-one relationship) : เป็ น
ความสัมพันธ์ระหว่าง entity หนึ่งไปมีความสัมพันธ์กบั อีก entity หนึ่ง
เพียงหนึ่งรายการเท่านั้น
21
กฎเกณฑ์ขอ้ กาหนดในความสัมพันธ์
 Cardinality Constraints (ratio)

ความสัมพันธ์แบบหนึ่งต่อกลุ่ม (one-to-many relationship): เป็ น
ความสัมพันธ์ระหว่าง entity หนึ่งไปมีความสัมพันธ์กบั อีก entity หนึ่ง
มากกว่าหนึ่งรายการ
22
กฎเกณฑ์ขอ้ กาหนดในความสัมพันธ์
 Cardinality Constraints (ratio)

ความสัมพันธ์แบบกลุ่มต่อกลุ่ม (many- to- many relationship):
เป็ นความสัมพันธ์แบบหลายรายการระหว่าง entity ทั้งสอง
23
จำนวน entity ต่ อ entity ในควำมสั มพันธ์
(Cardinality of Relationships)
One to One relationship (1 : 1)
One to Many relationship (1 : M)
Many to Many relationship (M : M)
24
Mapping Cardinalities
One to one
One to many
25
Mapping Cardinalities
Many to one
Many to many
26
One to One Relationship
ั
 ความสัมพันธ์ที่แต่ละแถวของข้อมูลในเอนติต้ ีแรก สามารถจับคู่กบ
ข้อมูลในเอนติต้ ีที่สองได้เพียงแถวเดียวเท่านั้น
 เช่น ระบบข้อมูลมหาวิทยาลัย
อาจารย์

1
เป็ นคณบดี
1
คณะ
แต่ละคณะจะมีอาจารย์ที่เป็ นคณบดีได้คนเดียวเท่านั้น
27
One to Many
ั
 ความสัมพันธ์ที่แต่ละแถวของข้อมูลในเอนติต้ ีแรก สามารถจับคู่กบ
ข้อมูลในเอนติต้ ีที่สองได้มากกว่าหนึ่งแถว
 เช่น ระบบสัง่ ซื้ อสิ นค้าของลูกค้า
ลูกค้า

1
สัง่ ซื้อ
M
ใบสัง่ ซื่อ
ลูกค้าหนึ่งคนสัง่ ซื้อใบสัง่ ซื้อได้หลายใบ และใบสัง่ ซื้อแต่ละใบถูกลูกค้าสัง่ ซื้อได้เพียงคน
เดียว
28
Many to Many
สามารถจับคู่กบั
ข้อมูลในเอนติต้ ีที่สองได้มากกว่าหนึ่งแถวและในทางกลับกันข้อมูลแต่
ละแถวของฝั่งเอนติต้ ีที่สองก็สามารถจับคู่กบั ข้อมูลในเอนติต้ ีแรกได้
มากกว่าหนึ่งแถว
 เช่น ระบบสัง่ ซื้ อสิ นค้าของลูกค้า
 ความสัมพันธ์ที่แต่ละแถวของข้อมูลในเอนติต้ ีแรก
สิ นค้า

M
ถูกสัง่ ซื้อ
M
ใบสัง่ ซื่อ
สิ นค้า 1 ชนิดถูกสั่งซื้ อตามใบสั่งซื้ อได้หลายใบ และใบสั่งซื้ อ 1 ใบสั่งซื้ อ
สิ นค้าได้หลายชนิด
29
จานวนชนิดของ Entity
(Degree of Relationship)
 Unary

(Recursive) Relationship
เอนติต้ ีมาเกี่ยวข้องเพียงชนิดเดียวเท่านั้น
 Binary Relationship

เอนติต้ ีมาเกี่ยวข้อง 2 ชนิด
 Ternary Relationship

มีเอนติต้ ีมาเกี่ยวข้อง 3 ชนิด
30
จานวนชนิดของ Entity
(Degree of Relationship) ต่อ
Unary
1
พนักงาน
หัวหน้างาน
M
m
ลงทะเบียน
M
อำจำรย์
Ternary
วิชาเรี ยน
M
วิชำเรียน
นักศึกษา
M
สอน
M
หนังสื อ
Binary
31
ปัญหาจากการออกแบบฐานข้อมูลด้วยอี-อาร์โมเดล
 Fan Trap เป็ นปั ญหาที่เกิดจากลักษณะการจัดความสัมพันธ์
ระหว่าง Entity
 Chasm Trap เป็ นปั ญหาที่เกิดจากการเชื่อมโยงความสัมพันธ์
ระหว่างข้อมูลไม่ได้
32
ปัญหาจากการออกแบบฐานข้อมูลด้วยอี-อาร์โมเดล
 Fan Trap เป็ นปั ญหาที่เกิดจากลักษณะการจัดความสัมพันธ์
ระหว่าง Entity ทาให้เกิดความกากวม มักเกิดกับ
ความสัมพันธ์ แบบ one-to-many
33
ปัญหาจากการออกแบบฐานข้อมูลด้วยอี-อาร์โมเดล
34
ปัญหาจากการออกแบบฐานข้อมูลด้วยอี-อาร์โมเดล
35
ปัญหาจากการออกแบบฐานข้อมูลด้วยอี-อาร์โมเดล
 Chasm Trap เป็ นปั ญหาที่เกิดจากการเชื่อมโยงความสัมพันธ์
ระหว่างข้อมูลไม่ได้ โดยปัญหานี้มกั พบเมื่อ entity หนึ่งมี
ความสัมพันธ์กบั entity อื่น ตั้งแต่ 2 entity ขึ้นไป แต่ไม่
สามารถเชื่อมโยงความสัมพันธ์ได้
36
ปัญหาจากการออกแบบฐานข้อมูลด้วยอี-อาร์โมเดล
37
ปัญหาจากการออกแบบฐานข้อมูลด้วยอี-อาร์โมเดล
38
อี-อาร์โมเดลกับฐานข้อมูลเชิงสัมพันธ์
 การออกแบบฐานข้อมูลด้วยอี-อาร์ โมเดล มีข้ น
ั ตอนดังนี้






ศึกษารายละเอียดและลักษณะหน้าที่งานของระบบ
กาหนด Entity ที่ควรมีในระบบฐานข้อมูล
กาหนดความสัมพันธ์ระหว่าง Entity
กาหนดคุณลักษณะของ Entity
กาหนดคียห์ ลักของแต่ละ Entity
นาสัญลักษณ์ที่ใช้ในอี-อาร์โมเดลมาอธิบายความสัมพันธ์
ระหว่างข้อมูล
39
อี-อาร์โมเดลกับฐานข้อมูลเชิงสัมพันธ์
 การแปลงฐานข้อมูลที่ออกแบบด้วยอี-อาร์ โมเดลเป็ นฐานข้อมูล
เชิงสัมพันธ์ มีข้ นั ตอนดังนี้



แปลงเอนติต้ ีให้เป็ นรี เลชัน และแปลงความสัมพันธ์ระหว่างเอนทิต้ ี
เป็ นความสัมพันธ์ระหว่างรี เลชัน
แปลงรายละเอียดของเอนติต้ ีให้เป็ นแอททริ บิวต์ของรี เลชันและ
กาหนดคียต์ ่างๆให้แก่รีเลชัน
การพิจารณาเค้าร่ างข้อมูลของแต่ละรี เลชันที่ได้จาก 2 ขั้นตอนแรก
40
หลักการแปลง ER เป็ นรี เลชัน่
1. ให้แปลงเอนติต้ ีทุกตัวเป็ นรี เลชัน่ และแปลงแอตทริ บิวต์
ทุกตัวของเอนติต้ ีให้เป็ นแอตทริ บิวต์ของรี เลชัน่
Customer
CusID
CusName
CusAdd
CusSurName
Customer (CusID, CusName, CusSurName, CusAdd)
41
หลักการแปลง ER เป็ นรี เลชัน่ (ต่อ)
2. เพิ่มแอตทริ บิวต์ให้กบั รี เลชัน่
2.1 ถ้าความสัมพันธ์เป็ นแบบ 1 to 1 ให้นา pk ของรี เลชัน่ ฝั่งใดฝั่งหนึ่ง
ไปอยูใ่ นรี เลชัน่ ของอีกฝั่งหนึ่ง
Teacher
ThID
1
เป็ นคณบดี
ThName
ThSurName
1
Faculty
FacID
FacName
Teacher (ThID, ThName, ThSurName)
Faculty (FacID,FacName,ThID*)
42
หลักการแปลง ER เป็ นรี เลชัน่ (ต่อ)
2. เพิ่มแอตทริ บิวต์ให้กบั รี เลชัน่
2.2 ถ้าความสัมพันธ์เป็ นแบบ 1 to Mให้นา pk ของรี เลชัน่ ฝั่งที่เป็ น
1ไปอยูใ่ นรี เลชัน่ ของฝั่งที่เป็ น M
CusName
Customer
1
สัง่ ซื้ อ
ReqDate
CusID
CusSurName
M
Orders
OrderDate
OID
Customer (CusID, CusName, CusSurName)
Orders (OID,OrderDate, ReqDate ,CusID*)
43
หลักการแปลง ER เป็ นรี เลชัน่ (ต่อ)
2. เพิ่มแอตทริ บิวต์ให้กบั รี เลชัน่
2.3 แอตทริ บิวต์ที่อยูบ่ นความสัมพันธ์ จะนาไปใส่ ในรี เลชัน่ ใด ก็ข้ ึนอยูก่ บั ว่า
เมื่อใส่ ลงในรี เลชัน่ นั้นแล้ว จะมีบางแถวหรื อไม่มีแถวข้อมูลใดเลยที่มี
ค่าในแอตทริ บิวต์เป็ น Null
CusName
Customer
1
สัง่ ซื้ อ
ReqDate
CusID
CusSurName
M
Orders
OrderDate
OID
Customer (CusID, CusName, CusSurName)
Orders (OID,OrderDate, ReqDate ,CusID*)
44
หลักการแปลง ER เป็ นรี เลชัน่ (ต่อ)
3. สร้างรี เลชัน่ ใหม่สาหรับความสัมพันธ์แบบ M to M
โดยสร้าง PK ได้จาก การนาเอา PK ของแต่ละรี เลชัน่
Discount
มาประกอบกัน
PName
Products
M
รายการสัง่ ซื่อ
Amount
PID
M
Orders
UnitPrice
Price
OID
Product (PID, PName, Price) Orders (OID,OrderDate, ReqDate ,CusID*)
OrderDetail (OID*, PID*, Discount, Amount, UnitPrice) หรื อ ในทางปฏิบตั ิมกั จะสร้าง pk มาใหม่
OrderDetail (id,OID*, PID*, Discount, Amount, UnitPrice)
45
หลักการแปลง ER เป็ นรี เลชัน่ (ต่อ)
4. สาหรับเอนติติ้ที่มีแอตทริ บิวต์แบบหลายค่า
 ให้สร้างรี เลชัน
่ เพิ่ม ที่มีแอตทริ บิวต์แบบหลายค่านั้น
 PK ของรี เลชัน
่ ใหม่เกิดจาก PK ของรี เลชัน่ เดิมประกอบกับ แอตทริ บิวต์ที่เกิด
จากแอตทริ บิวต์แบบหลายค่า
CusName
Customer
CreditNum
CusID
CusSurName
Customer (CusID, CusName, CusSurName)
CusCredit (CusID*, CreditNum)
46
หลักการแปลง ER เป็ นรี เลชัน่ (ต่อ)
5. สาหรับเอนติต้ ีแบบอ่อน ให้สร้างเป็ นรี เลชัน่ และมี PK ที่มาจาก PK
ของรี เลชัน่ หนึ่งรวมกับ PK ของเอนติต้ ีแบบอ่อน
Invoice
Inv no
1
M
has
Date
Invoice
Detail
Line
Invoice (Inv no, Date)
InvoiceDetail ( Inv no* ,Line)
47