|
|
ตัวแบบจำลองความสัมพันธ์ระหว่างข้อมูล
ถึงแม้ว่า ตัวแบบจำลองความสัมพันธ์ระหว่างข้อมูล จะมีหลายตัวแบบ เช่น NI-AM (Nijssen’s Information Analysis Methodology), หรือ ตัวแบบอี-อาร์ (Entity-Relationship Model) และแต่ละแบบยังมีผู้เสนอรายละเอียดปลีกย่อยต่างกันไปอีกก็ตาม แต่แบบที่ได้รับความนิยมมากที่สุดตัวหนึ่งก็คือ ตัวแบบอี-อาร์ หรือ เอ็นทิตี้-รีเลชั่นชิพ โมเดล ซึ่งแนะนำโดย ปีเตอร์ เชน (Peter-Shan Chen) เมื่อปี ค.ศ. 1976 ที่ได้รับความนิยมมากเพราะมีแผนภาพช่วยแสดงให้เข้าใจได้ง่ายขึ้น
8.1 ตัวแบบอี-อาร์
ตัวแบบอี-อาร์ ประกอบด้วยลักษณะที่สำคัญอย่างน้อย 2 ประการ ได้แก่ แนวคิดเกี่ยวกับวัตถุต่าง ๆ ในระบบฐานข้อมูลเชิงสัมพันธ์ และแผนภาพอี-อาร์ (E-R Diagram : Entity-Relationship Diagram) ซึ่งเป็นการนำเอาวัตถุเหล่านั้นมาจำลองเป็นรูปทรงต่างๆ และแสดงความสัมพันธ์กันระหว่างวัตถุเหล่านั้น ซึ่งวัตถุส่วนใหญ่ก็คือ เอ็นทิตี้ นั่นเอง ส่วนความสัมพันธ์ก็คือ “สัมพันธภาพ” (Relationship) ในหมู่เอ็นทิตี้นั่นเอง
8.1.1 แผนภาพอี-อาร์ (E-R Diagram/Entity-Relationship Diagram)
แผนภาพอี-อาร์ เป็นแผนภาพแสดงโครงสร้างเชิงตรรกโดยรวมของฐานข้อมูล ความง่ายและความชัดเจนของแผนภาพนี้ทำให้เทคนิคการสร้างแผนภาพอี-อาร์ถูกนำไปใช้กันทั่วไป ตัวอย่างแผนภาพอี-อาร์ซึ่งเป็นที่มาของตาราง Supplier, Product และ Shipment

SNO SNAME STATUS CITY
SUPPLIER
QTY
SHIP
MENT
SNO
PNO
PRODUCT
CITY
PNO
WEIGHT
PNAME COLOR
ตัวอย่างที่ 2 มีที่มาจากตาราง SPJ ในบทที่ผ่านมา ซึ่งมีข้อมูลจาก 3 ตารางกลัก คือ S, P และ J เมื่อ
ตาราง S เก็บข้อมูลเกี่ยวกับผู้จัดส่ง (Supplier)
ตาราง P เก็บข้อมูลเกี่ยวกับสินค้าหรือวัสดุ (Product)
ตาราง J เก็บข้อมูลเกี่ยวกับโครงการ (Project) ซึ่งต้องมีการใช้วัสดุจากผู้จัดส่งรายต่างๆ
ถ้าเราทราบว่า มีผู้จัดส่งรายหนึ่ง คือ Smith จากข้อมูลในตาราง S
มีวัสดุอย่างหนึ่ง คือ ประแจ จากข้อมูลในตาราง P
Smith ส่งวัสดุอย่างหนึ่ง คือ ประแจ จากข้อมูลในตาราง SP
มีโครงการหนึ่ง คือ โครงการแมนฮัตตัน จากข้อมูลในตาราง J
แต่เราไม่ทราบว่าผู้จัดส่งรายใดส่งวัสดุอะไรไปใช้ในโครงการใดบ้าง
ถ้าเราต้องการทราบเพื่อตอบการสอบถาม (Query) เราจะต้องออกแบบให้ตาราง S, P, SP และ J มีความสัมพันธ์กันเพื่อเก็บข้อมูลดังกล่าวไว้สำหรับตอบการสอบถามในกรณีที่ต้องการทราบว่ามีผู้จัดส่งรายใดส่งวัสดุอะไรไปใช้ในโครงการใดบ้างดังกล่าวข้างต้น ซึ่งเราอาจออกแบบได้ 2 วิธี ดังแผนภาพอี-อาร์ ดังต่อไปนี้
วิธีที่ 1
S

N
N M
SP SPJ J
M
P
วิธีที่ 2
S
N
SPJ N J
M
P
สังเกตว่า วิธีที่ 2 นี้ ไม่มีตาราง SP ซึ่งอาจจะทำให้ขาดข้อมูลที่จะตอบการสอบถามที่ว่า ผู้จัดส่งรายใดส่งสินค้าอะไรบ้างในปริมาณเท่าใด ซึ่งการออกแบบว่าจะเลือกแบบใดนั้นขึ้นอยู่กับกฎเกณฑ์ทางธุรกิจ หรือระเบียบวิธีในการดำเนินกิจกรรมในองค์การแต่ละแห่ง สำหรับในชั้นนี้นักศึกษาควรเลือกออกแบบวิธีที่ 1 เพราะจะทำให้มีข้อมูลครบทุกอย่าง กล่าวคือ ให้มีรายละเอียดเกินกว่าที่ต้องการทราบดีกว่าที่จะให้ขาดรายละเอียดบางอย่างไปแล้วไม่สามารถตอบการสอบถามได้อย่างสะดวกและง่าย
8.1.2 สัญลักษณ์ต่าง ๆ
วิธีการออกแบบด้วยตัวแบบอี-อาร์จะมีการแสดงกลุ่มของข้อมูล และความสัมพันธ์ออกมาเป็นแผนภาพ โดยใช้สัญลักษณ์ต่าง ๆ ดังนี้
สัญลักษณ์พื้นฐาน ความหมาย
1. เอนทิตี้ (Regular Entity : สิ่งที่สามารถระบุได้อย่างแจ้ง ชัด เป็นวัตถุที่เป็นรูปธรรม หรือนามธรรมก็ได้ เป็นสิ่งที่เราสนใจจะนำมาไว้เป็นตารางในฐานข้อมูล แบ่งเป็น 2 ชนิด คือ ชนิดอ่อนแอ กับชนิดธรรมดา)
2. รีเลชั่นชิพ หรือความสัมพันธ์ระดับปรกติ (Regular Relationship : เป็นความสัมพัน์ระหว่างเอนทิตี้ปรกติตั้งแต่ 2 เอนทิตี้ขึ้นไป
3. พร็อบเพอร์ตี้ หรือคุณสมบัติ (Property : คือ รายละเอียดซึ่งปรากฏได้ทั้งในเอนทิตี้ หรือรีเลชั่นชิพ ซึ่งภายหลังจะถูกกำหนดให้เป็นแอตทริบิวต์)
4. อัตราส่วนความสัมพันธ์ของแถวข้อมูลระหว่างสองเอนทิตี้ (Cardinality Ratio) มี 3 ชนิด คือ 1 ต่อ 1 (One to One)
1 ต่อ หลาย (One to Many) หรือ กลับกัน
และหลายต่อหลาย (Many to Many
ต่อ 1 (to One)
ต่อหลาย (to Many) คือ ต่อ 1 หรือมากกว่า
ต่อ 0 หรือ 1 (to zero or one)
ต่อ 0 หรือมากกว่า (to zero or more)
ต่อมากกว่า 1 (to More than 1) คือ ต่อมากกว่า 1
สัญลักษณ์เพิ่มเติม ความหมาย
5. เอนทิตี้ชนิดอ่อนแอ (Weak Entity : เป็นเอนทิตี้ที่ขึ้นอยู่
กับเอนทิตี้อื่น ถ้าไม่มีเอนทิตี้นั้นก็จะไม่มีเอนทิตี้ชนิด
อ่อนแอนี้)
 6. เอนทิตี้ที่แปลงมาจากรีเลชั่นชิพ (Associative Entity :
เป็นความสัมพันธ์ระหว่าง 2 เอนทิตี้ขึ้นไป ซึ่งเป็นแบบ
หลายต่อหลาย และจะถูกแปลงให้เป็นตารางในที่สุด)

7. วีครีเลชั่นชิพ หรือความสัมพันธ์ระดับอ่อนแอ (Weak
Relationship : เป็นความสัมพันธ์ระหว่างเอนทิตี้ที่เป็น
ชนิดอ่อนแออย่างน้อย 1 เอนทิตี้
 8. คุณสมบัติแบบมีหลายค่า (Multi-Value Property เช่น ถ้า
ในตาราง Supplier โดยผู้จัดส่งแต่ละรายมีเมืองที่ตั้งหลาย
แห่ง CITY ก็จะกลายเป็นคุณสมบัติแบบมีหลายค่า)
9. เส้นคู่แสดงความสัมพันธ์แบบ Total Participation เช่น
พนักงานทุกคนในตาราง Emp ต้องสังกัดแผนกใดแผนก
หนึ่งในตาราง Dept อย่างนี้ถือว่าเป็น Total Participation แต่ถ้าบางแผนกไม่มีพนักงานในสังกัดเลยถือว่าเป็นความ
สัมพันธ์แบบ Partial Participation
8.1.3 ลักษณะของตัวแบบอี-อาร์ ประกอบด้วย
1. เอนทิตี้
2. คุณสมบัติ (Property) ของเอนทิตี้ ซึ่งก็คือ แอตทริบิวต์ของรีเลชั่น เป็นรายละเอียดของข้อมูลในเอนทิตี้ใด ๆ โดยอาจจะมีหน้าที่เป็นคีย์หลัก (Primary Key) คีย์ประกอบ (Composite Keys) คีย์นอก (Foreign Key) หรือเป็นแอตทริบิวต์ธรรมดา (Nonkeys)
3. ความสัมพันธ์ระหว่างเอนทิตี้ (หรืออัตราส่วนความสัมพันธ์ของแถวข้อมูลระหว่างสองเอนทิตี้) อาจเป็นความสัมพันธ์แบบใดแบบหนึ่งดังต่อไปนี้เป็นอย่างน้อย
3.1 แบบหนึ่งต่อหนึ่ง (One to One) ใช้ตัวย่อว่า 1:1
3.2 แบบหนึ่งต่อหลาย (One to Many) ใช้ตัวย่อว่า 1:N
3.3 แบบหลายต่อหลาย (Many to Many) ใช้ตัวย่อว่า M:N
8.1.4 ขั้นตอนในการออกแบบฐานข้อมูลโดยใช้แผนภาพอี-อาร์
1. วิเคราะห์งานในระบบธุรกิจ
2. กำหนดเอนทิตี้ในระบบและคุณสมบัติเบื้องต้น
3. กำหนดความสัมพันธ์ระหว่างเอนทิตี้
4. ร่างแผนภาพอี-อาร์ ตามเอนทิตี้และความสัมพันธ์ที่กำหนดไว้
5. ทบทวนและปรับปรุงรายละเอียดของเอนทิตี้ คุณสมบัติ และความสัมพันธ์ รวมทั้งกำหนดคีย์
ต่าง ๆ
6. แปลงแผนภาพอี-อาร์ เป็นรีเลชั่น ตามหลักเกณฑ์ที่แนะนำ
7. จัดทำพจนานุกรมข้อมูลจากรีเลชั่นและรายละเอียดที่เตรียมไว้
ตัวอย่างการออกแบบโดยใช้แผนภาพอี-อาร์ ตามขั้นตอนที่เสนอแนะข้างต้น
1. วิเคราะห์งานในระบบ
ระบบงานจริงย่อมจะมีความละเอียดซับซ้อนและจะเป็นระบบใหญ่เป็นส่วนมาก แต่เพื่อเป็นแนวทางในการทำความเข้าใจตามข้อจำกัดของเวลาในการเรียนรู้และพื้นที่หน้ากระดาษ จึงจะขอนำมาเป็นตัวอย่างเฉพาะบางส่วนของระบบงานทั้งหมด
ระบบงานที่จะนำมาเป็นตัวอย่างต่อไปนี้เป็นระบบบริหารสถานศึกษา เพียงบางลักษณะที่สนใจเท่านั้น
2. กำหนดเอนทิตี้และคุณสมบัติเบื้องต้น
2.1 TEACHER เป็นเอนทิตี้ที่แสดงรายละเอียดของอาจารย์ในสถานศึกษา มีคุณสมบัติเบื้องต้น คือ รหัสอาจารย์ ชื่อ นามสกุล เป็นต้น
2.2 DEPARTMENT เป็นเอนทิตี้ที่แสดงรายละเอียดของแผนกวิชา หรือแผนกงาน มีคุณสมบัติเบื้องต้น คือ รหัสแผนก ชื่อแผนก เป็นต้น
2.3 DEPENDANT เป็นเอนทิตี้ที่แสดงรายละเอียดของสมาชิกในครอบครัวขออาจารย์ โดยที่เป็นเอนทิตี้ชนิดอ่อนแอ (Weak Entity) มีความสัมพันธ์โดยตรงกับเอนทิตี้ TEACHER มีคุณสมบัติเบื้องต้น คือ รหัสคนในครอบครัว ชื่อ นามสกุล ความสัมพันธ์ เป็นต้น
2.4 CLASS เป็นเอนทิตี้ที่แสดงรายละเอียดของชั้นเรียนที่อยู่ภายใต้การให้คำปรึกษาของอาจารย์ มีคุณสมบัติเบื้องต้น คือ รหัสชั้น ชื่อชั้น ภาคเรียนเริ่มต้น ภาคเรียนปัจจุบัน เป็นต้น
สมมติว่าระเบียบปฏบิตของสถานศึกษากำหนดไว้ดังนี้
- อาจารย์หนึ่งคนจะต้องสังกัดอยู่เพียงหนึ่งแผนกเท่านั้
- ชั้นเรียนหนึ่ง ๆ จะมีอาจารย์หลายคนจากแผนกใด ๆ มาเป็นที่ปรึกษาก็ได้ ปรกติชั้นละ 3 คน
- ชั้นเรียนหนึ่ง ๆ จะมีรหัสเฉพาะไม่ซ้ำกันเลยในระบบ เมื่อชั้นเรียนเลื่อนระดับไป เช่น ชั้นปีที่ 2 ชื่อชั้นจะเปลี่ยนไป แต่เลขรหัสจะยังคงเดิม
- อาจารย์คนหนึ่งเป็นที่ปรึกษาได้หลายชั้น แต่เป็นได้เพียงปีละ 1 ชั้น เท่านั้น
3. กำหนดความสัมพันธ์ระหว่างเอนทิตี้
3.1 ความสัมพันธ์ชื่อ “WORK-IN” (ทำงานสังกัดในแผนกใด) เป็นความสัมพันธ์แบบหนึ่งต่อหลาย ระหว่างเอนทิตี้ DEPARTMENT กับ TEACHER ดังรูป

1 N
DEPARTMENT WORK-IN TECHER
3.2 ความสัมพันธ์ชื่อ “SUPERVISE” (บังคับบัญชา) เป็นความสัมพันธ์แบบหนึ่งต่อหลายระหว่างเอนทิตี้ TEACHER (SUPERVISOR ในฐานะผู้บังคับบัญชา) กับ TEACHER (SOBORDINATE ในฐานะผู้ใต้บังคับบัญชา) ดังรูป

TEACHER
1 N
SUPERVISOR SUBORDINATE
SUPERVISE
3.3 ความสัมพันธ์ชื่อ “ADVISE” (ให้คำปรึกษา) เป็นความสัมพันธ์แบบหลายต่อหลายระหว่างเอนทิตี้ CLASS กับ TEACHER ดังรูป

M N
TEACHER ADVISE CLASS
ซึ่งอาจเขียนได้อีกแบบหนึ่ง ดังนี้
 1 N N 1
TEACHER ADVISE CLASS
3.4 ความสัมพันธ์ชื่อ “SUPPORT” (อุปการะ) เป็นความสัมพันธ์แบบหนึ่งต่อหลาย ระหว่างเอนทิตี้ TEACHER กับ DEPEMDANT ดังรูป

1 N
TEACHER SUPPORT DEPARTMENT
- ร่างแผนภาพอี-อาร์ ตามเอนทิตี้และความสัมพันธ์ที่กำหนดไว้ ซึ่งอาจยังไม่ครบถ้วนสมบูรณ์ดังภาพ
- ทบทวนและปรับปรุงรายละเอียดของเอนทิตี้ คุณสมบัติ และความสัมพันธ์ รวมทั้งกำหนดคีย์ต่าง
หลังจากที่เราได้ร่างแผนภาพอี-อาร์ขึ้นมาแล้ว จะทำให้เราสามารถมองเห็นภาพรวม ช่วยให้สะดวกในการที่จะเพิ่มเติมหรือแก้ไขการออกแบบให้ดียิ่งขึ้น เช่น อาจมีการแก้ไขเพิ่มเติมเอนทิตี้ คุณสมบัติ และความสัมพันธ์ระหว่างเอนทิตี้ เพื่อให้ถูกต้องและเหมาะสมกับระบบงานมากที่สุด เป็นต้น
6. แปลงแผนภาพอี-อาร์ เป็นรีเลชั่น ตามหลักเกณฑ์ที่แนะนำ ให้ศึกษาจากหัวข้อ 8.2 เรื่อง หลักการสร้างฐานข้อมูลจากแผนภาพอี-อาร์ ซึ่งจะได้รีเลชั่น แอตทริบิวต์ และคีย์ต่าง ๆ ดังนี้
ตารางที่ 1 DEPARTMENT (รหัสแผนก,ชื่อแผนก)
ตารางที่ 2 TEACHER (รหัสอาจารย์,ชื่ออาจารย์,สกุลอาจารย์,รหัสหัวหน้า,รหัสแผนก*)
ตารางที่ 3 CLASS (รหัสชั้น,ชื่อชั้น,ภาคเริ่มต้น,ภาคสุดท้าย)
ตารางที่ 4 ADVISE (รหัสอาจารย์*,รหัสชั้น*,ปีที่ปรึกษา)
ตารางที่ 5 DEPENDANT (รหัสคนในอุปการะ,ชื่อ,สกุล,รหัสอาจารย์*)
แอตทริบิวต์ที่มีเครื่องหมาย * แสดงว่าเป็นคีย์นอก (Foreign Key)
7. จัดทำพจนานุกรมข้อมูลจากรีเลชั่นและรายละเอียดที่เตรียมไว้ ให้ทบทวนจากหัวข้อ 5.1 พจนานุกรมข้อมูล ซึ่งจะได้รายละเอียดพจนานุกรม ดังนี้ป็นตารางข้อมูลและแอตทริบิวต์ต่าง ๆ โดยมีหลักเกณฑ์สำคัญ ดังนี้
1. เอนทิตี้ปรกติ หรือ Regular Entity จะถูกนำมาสร้างเป็นโครงสร้างตาราง (Relvar) ได้เลยโดยคุณสมบัติที่ถูกขีดเส้นใต้เอาไว้จะต้องทำเป็นคีย์หลัก (Primary Key) ส่วนเอนทิตี้ชนิดอ่อนแอให้เก็บไว้พิจารณาภายหลังก็ได้
2. ความสัมพันธ์แบบหลายต่อหลาย หรือ Many to Many จะถูกนำไปสร้างเป็นโครงสร้างตาราง ซึ่งก็คือ เอนทิตี้ที่แปลงมาจากความสัมพันธ์ (Associative Entity)นั่นเอง โดยให้นำเอาคีย์หลักของเอนทิตี้ทั้งสองฝั่งมาเป็นคีย์หลักแบบประสม (Composite Primary Keys) หรืออาจสร้างแอตทริบิวต์ใหม่สำหรับเก็บหมายเลขรหัสที่กำหนดขึ้นใหม่โดยเฉพาะก็ได้ ตัวอย่างเช่น ตาราง SP หรือ Shipment
3. ความสัมพันธ์แบบหนึ่งต่อหลาย หรือหลายต่อหนึ่ง ไม่ต้องสร้างตารางใหม่ขึ้นมา แต่ให้เอาคีย์หลักของตารางด้านที่เป็นหนึ่งไปเป็นคีย์นอก (Foregin Key) ในตารางด้านที่เป็นหลาย
4. เอนทิตี้ชนิดอ่อนแอ หรือ Weak Entity ควรสร้างตารางใหม่ขึ้นมา โดยให้นำเอาคีย์หลักของเอนทิตี้ปกติ ไปเป็นคีย์นอกอยู่ในเอนทิตี้ชนิดอ่อนแอ
5. ความสัมพันธ์แบบหนึ่งต่อหนึ่ง ให้พิจารณาให้รอบคอบว่าเอนทิตี้ด้านใดสำคัญกว่า หรือให้ดูว่าด้านใดในอนาคตอาจมีข้อมูลใหม่เพิ่มขึ้นมาทำให้กลายเป็นแบบต่อหลายได้ ก็ให้อนุโลมทำตามวิธีการในข้อ 3
6. ตารางที่ได้มาตามขั้นตอนดังกล่าวข้างต้นเชื่อได้ว่าจะอยู่ในรูปแบบปรกติขั้นที่ 1 แน่นอน นอกจากนั้นจะพบว่าตารางที่สร้างมาจากเอนทิตี้ปรกติทุกตารางจะอยู่ในรูปแบบปรกติขี้นที่ 2 ส่วนการสร้างคีย์หลักขึ้นมาโดยการกำหนดแอตทริบิวต์ใหม่บางตารางอาจอยู่ในรูปแบบปรกติขั้นที่ 3 เลยก็เป็นได้
ตัวอย่างเช่น แผนภาพอี-อาร์ ที่แสดงไว้ในหน้า 1 ของบทนี้ สามารถจะนำมาแปลงเป็นตารางข้อมูลและแอตทริบิวต์ต่าง ๆ ดังนี้
SUPPLIER [SNO, SNAME, STATUS, CITY]
SHIPMENT [SNO, PNO, QTY]
PRODUCT [PNO, PNAME, COLOR, WEIGHT, CITY]
8.3 เครื่องมือที่ใช้สร้างแผนภาพอี-อาร์
ในปัจจุบันมีโปรแกรมที่ช่วยอำนวยความสะดวกในการออกแบบฐานข้อมูลหลายโปรแกรม ดังต่อไปนี้
- โปรแกรม Micorsoft Word
- โปรแกรม Visio
- โปรแกรม ER Win
8.3.1 โปรแกรม Microsoft Word
เป็นโปรแกรมประมวลผลคำที่มีผู้ใช้กันมากที่สุดในปัจจุบันบนระบบปฏิบัติการประเภทติดต่อกับผู้ใช้ด้วยภาพ (Graphical User Interface : GUI) ผู้ใช้สามารถสร้างแผนภาพอี-อาร์ได้จากการใช้ปุ่มคำสั่ง AutoShapes แล้วเลือก Basic Shapes และเลือกรูปทรงที่ต้องการได้ การคลิกขวาจะมี Pop-up menu ขึ้นมาทำให้เลือกได้ว่าจะพิมพ์ข้อความอะไรลงไปในรูปทรงนั้น ๆ ดังภาพ
8.3.2 โปรแกรม Visio
เป็นโปรแกรมที่ใช้สำหรับวาดแผนภาพต่าง ๆ เป็นการเฉพาะ ซึ่งจะมี Template ให้เลือกมากมาย วิธีใช้ให้เลือก Template ชื่อ Database และคลิกเลือก Chen ERD ดังภาพ
8.3.3 โปรแกรม ER Win
เป็นโปรแกรมที่ใช้สำหรับวาดแผนภาพอี-อาร์ โดยเฉพาะ และมีความสามารถในการสร้าง (Generate) คำสั่งภาษา SQL เพื่อสร้างตารางข้อมูลพร้อมเขตข้อมูลต่าง ๆ จนเป็นฐานข้อมูลในที่สุด ดังภาพ |
 |
|
|