การออกแบบฐานข้อมูลเป็นขั้นตอนท่ีมีความสําคัญท่ีสุดในการพัฒนาระบบฐานข้อมูล ปัจจุบัน นิยมใช้แบบจําลองความสัมพันธ์ระหว่างข้อมูล E-R (Entity Relationship Model) ซึ่งเป็นเครื่องมือ ในการออกแบบฐานข้อมูล นําเสนอโดย Peter Chen ในปี ค.ศ.1976 โดยมีวัตถุประสงค์เพื่อนําเสนอ โครงสร้างของฐานข้อมูลในระดับแนวความคิดในลักษณะของแผนภาพ(Diagram) ที่มีโครงสร้างท่ี ง่ายต่อการทําความเข้าใจ ทําให้สามารถมองเห็นภาพรวมของเอนทิตี้ท้ังหมดในระบบ รวมถึง ความสัมพันธ์ระหว่างเอนทิตี้ด้วย เพื่อนําเสนอต่อผู้ใช้งาน และเพื่อให้มั่นใจว่าข้อมูลในระบบงานใหม่ มีความถูกต้อง และครบถ้วน ตรงตามความต้องการของผู้ใช้ระบบอย่างแท้จริง
ในหน่วยที่ 7 น้ีจะกล่าวถึงแนวคิดเก่ียวกับองค์ประกอบของแบบจําลองความสัมพันธ์ ระหว่างข้อมูล (Entity Relationship Model) ความสัมพันธ์ระหว่างเอนทิตี้ การออกแบบฐานข้อมูล โดยใช้แบบจําลองความสัมพันธ์ระหว่างข้อมูล การแปลง E-R Diagram ให้เป็นโครงสร้างตาราง และ พจนานุกรมข้อมูล (Data Dictionary) ซึ่งมีรายละเอียดดังนี้
1.1 เอนทิตี้ (Entity)
เอนทิตี้ (Entity) ใช้อ้างอิงถึง บุคคล ส่ิงของ หรือ สถานท่ี ได้แก่ สิ่งต่างๆ ที่ไม่สามารถ ระบุได้ในความเป็นจริง ซึ่งอาจเป็นส่ิงที่จับต้องได้ หรืออยู่ในรูปนามธรรมที่ไม่สามารถจับต้องได้ เช่น เอนทิตี้เชิงแนวความคิด (Concept) และเอนทิตี้เชิงเหตุการณ์ (Event) จึงขอจําแนกเอนทิตี้ออกเป็น 3 กลุ่ม ดังนี้
1) เอนทิตี้เชิงรูปธรรม ประกอบด้วย (1) เอนทิตี้ที่เป็นบุคคลเช่น“นักศึกษา”“พนักงาน”“ลูกค้า”เป็นต้น
(2) เอนทิตี้ที่เป็นสถานที่ เช่น “โรงเรียน” “ร้านค้า” “บริษทั ” เป็นต้น
(3) เอนทิตี้ท่ีเป็นวัตถุเช่น“สินคา้”“รถยนต์”“วีดีโอ”เป็นต้น
ในหน่วยที่ 7 น้ีจะกล่าวถึงแนวคิดเก่ียวกับองค์ประกอบของแบบจําลองความสัมพันธ์ ระหว่างข้อมูล (Entity Relationship Model) ความสัมพันธ์ระหว่างเอนทิตี้ การออกแบบฐานข้อมูล โดยใช้แบบจําลองความสัมพันธ์ระหว่างข้อมูล การแปลง E-R Diagram ให้เป็นโครงสร้างตาราง และ พจนานุกรมข้อมูล (Data Dictionary) ซึ่งมีรายละเอียดดังนี้
1. องค์ประกอบของแบบจาํ ลองความสัมพันธ์ระหว่างข้อมูล(Entity Relationship Model)
E–R Model เป็นการออกแบบในระดับแนวคิด (Conceptual Design) ในลักษณะจากบนลงล่าง (Top-Down Strategy) โดยผลจากการออกแบบฐานข้อมูลจะได้เค้าร่างในระดับแนวคิดที่ ประกอบด้วย1.1 เอนทิตี้ (Entity)
เอนทิตี้ (Entity) ใช้อ้างอิงถึง บุคคล ส่ิงของ หรือ สถานท่ี ได้แก่ สิ่งต่างๆ ที่ไม่สามารถ ระบุได้ในความเป็นจริง ซึ่งอาจเป็นส่ิงที่จับต้องได้ หรืออยู่ในรูปนามธรรมที่ไม่สามารถจับต้องได้ เช่น เอนทิตี้เชิงแนวความคิด (Concept) และเอนทิตี้เชิงเหตุการณ์ (Event) จึงขอจําแนกเอนทิตี้ออกเป็น 3 กลุ่ม ดังนี้
1) เอนทิตี้เชิงรูปธรรม ประกอบด้วย (1) เอนทิตี้ที่เป็นบุคคลเช่น“นักศึกษา”“พนักงาน”“ลูกค้า”เป็นต้น
(2) เอนทิตี้ที่เป็นสถานที่ เช่น “โรงเรียน” “ร้านค้า” “บริษทั ” เป็นต้น
(3) เอนทิตี้ท่ีเป็นวัตถุเช่น“สินคา้”“รถยนต์”“วีดีโอ”เป็นต้น
2) เอนทิตี้เชิงแนวความคิด เช่น “แผนก” “วิชา” “คณะ” เป็นต้น 3) เอนทิตี้เชิงเหตุการณ์ เช่น “การสั่งซื้อ” “การยืม” “การคนื ” “การลงทะเบียน” เป็นต้น
1.2 แอททริบิวต์ (Attribute)
แอททริบิวต์ (Attribute) คือ ข้อมูลที่ใช้อธิบายคุณสมบัติหรือคุณลักษณะของเอนทิตี้ ซึ่งเอนทิตี้หนึ่งอาจประกอบไปด้วยแอททริบิวต์ได้มากกว่า 1 แอททริบิวต์ เช่น
เอนทิตี้ “พนักงาน” ประกอบด้วยแอททริบิวต์ รหัสประจําตัว ชื่อพนักงาน ตําแหน่ง เงินเดือน
เอนทิตี้ “ลูกค้า” ประกอบด้วยแอททริบิวต์ รหัสลูกค้า ชื่อลูกค้า ที่อยู่ เบอร์โทรศัพท์
เอนทิตี้ “สินค้า” ประกอบด้วยแอททริบิวต์ รหัสสินค้า ชื้อสินค้า ราคาต่อหน่วย
1.2 แอททริบิวต์ (Attribute)
แอททริบิวต์ (Attribute) คือ ข้อมูลที่ใช้อธิบายคุณสมบัติหรือคุณลักษณะของเอนทิตี้ ซึ่งเอนทิตี้หนึ่งอาจประกอบไปด้วยแอททริบิวต์ได้มากกว่า 1 แอททริบิวต์ เช่น
เอนทิตี้ “พนักงาน” ประกอบด้วยแอททริบิวต์ รหัสประจําตัว ชื่อพนักงาน ตําแหน่ง เงินเดือน
เอนทิตี้ “ลูกค้า” ประกอบด้วยแอททริบิวต์ รหัสลูกค้า ชื่อลูกค้า ที่อยู่ เบอร์โทรศัพท์
เอนทิตี้ “สินค้า” ประกอบด้วยแอททริบิวต์ รหัสสินค้า ชื้อสินค้า ราคาต่อหน่วย
ประเภทของแอททริบิวต์
สามารถจําแนกประเภทของแอททริบิวต์เป็น 4 ประเภท ดังนี้
1) แอททริบิวต์แบบธรรมดา (Simple of Atomic Attribute) หมายถึง แอททริบิวต์ที่ไม่สามารถแบ่งเป็นส่วนประกอบย่อยๆ ได้อีก เช่น รหัสนักศึกษา และเพศ เป็นต้น
2) แอททริบิวต์แบบผสม (Composite Attribute) หมายถึง แอททริบิวต์ท่ีสามารถแบ่งออกเป็นแอททริบิวต์ย่อยๆ ที่เป็นแอททริบิวต์แบบธรรมดาได้
ที่อยู่ : อาจแบ่งเป็น 5 แอททริบิวต์ย่อย ได้แก่ บ้านเลขท่ี ตําบล อําเภอ จังหวัด และรหัสไปรษณีย์ แสดงดังรูปที่ 7.2
สามารถจําแนกประเภทของแอททริบิวต์เป็น 4 ประเภท ดังนี้
1) แอททริบิวต์แบบธรรมดา (Simple of Atomic Attribute) หมายถึง แอททริบิวต์ที่ไม่สามารถแบ่งเป็นส่วนประกอบย่อยๆ ได้อีก เช่น รหัสนักศึกษา และเพศ เป็นต้น
2) แอททริบิวต์แบบผสม (Composite Attribute) หมายถึง แอททริบิวต์ท่ีสามารถแบ่งออกเป็นแอททริบิวต์ย่อยๆ ที่เป็นแอททริบิวต์แบบธรรมดาได้
ที่อยู่ : อาจแบ่งเป็น 5 แอททริบิวต์ย่อย ได้แก่ บ้านเลขท่ี ตําบล อําเภอ จังหวัด และรหัสไปรษณีย์ แสดงดังรูปที่ 7.2
3) แอททริบิวต์ที่มีค่าข้อมูลเพียงค่าเดียว (Single-Valued Attribute) หมายถึง แอททริบิวต์ท่ีมีค่าข้อมูล (Value) เพียงค่าเดียวเท่านั้น เช่น เอนทิตี้ “นักศึกษา” ประกอบด้วย แอททริบิวต์ รหัสนักศึกษา ช่ือนักศึกษา แผนกวิชา ระดับช้ัน ซึ่งแต่ละแอททริบิวต์มีค่าข้อมูลเพียงค่า เดียว
4) แอททริบิวต์ที่มีค่าข้อมูลหลายค่า (Multi-Valued Attribute) หมายถึง แอททริบิวต์ ที่มีค่าข้อมูล (Valued) ได้มากกว่าหนึ่งค่า เช่น แอททริบิวต์ หมายเลขโทรศัพท์ เป็นสมาชิกของ เอนทิตี้ “นักศึกษา” ซึ่งนักศึกษาหนึ่งคนสามารถมีหมายเลขโทรศัพท์ได้มากกว่าหน่ึงหมายเลข แอททริบิวต์ที่มีค่าข้อมูลหลายค่าใช้สัญลักษณ์รูปวงรีเส้นคู่แทนแอททริบิวต์ และมีชื่อแอททริบิวต์ท่ี เป็นคํานามกํากับอยู่ในวงรี แสดงดังรูปที่ 7.3
4) แอททริบิวต์ที่มีค่าข้อมูลหลายค่า (Multi-Valued Attribute) หมายถึง แอททริบิวต์ ที่มีค่าข้อมูล (Valued) ได้มากกว่าหนึ่งค่า เช่น แอททริบิวต์ หมายเลขโทรศัพท์ เป็นสมาชิกของ เอนทิตี้ “นักศึกษา” ซึ่งนักศึกษาหนึ่งคนสามารถมีหมายเลขโทรศัพท์ได้มากกว่าหน่ึงหมายเลข แอททริบิวต์ที่มีค่าข้อมูลหลายค่าใช้สัญลักษณ์รูปวงรีเส้นคู่แทนแอททริบิวต์ และมีชื่อแอททริบิวต์ท่ี เป็นคํานามกํากับอยู่ในวงรี แสดงดังรูปที่ 7.3
แอททริบิวต์ที่เป็นตัวชี้เฉพาะ (Identifier) ทําหน้าที่ชี้เฉพาะถึงสมาชิกของเอนทิตี้ได้มีคุณสมบัติ คือ เป็นแอททริบิวต์ที่มีค่าข้อมูลไม่ซํ้ากัน และค่าข้อมูลมีค่าคงที่ตลอด เรียกแอททริบิวต์นี้ว่า ตัวชี้เฉพาะ (Identifier)
ตัวอย่าง เอนทิตี้“นักศึกษา” ประกอบด้วยแอททริบิวต์ รหัสนักศึกษา ชื่อนักศึกษา แผนกวิชา ระดับชั้น แอททริบิวต์ที่ควรเลือกเป็นตัวชี้เฉพาะ ได้แก่ รหัสนักศึกษา เนื่องจากแต่ละสมาชิกของ เอนทิตี้มีรหัสนักศึกษาไม่ซ้ำกัน และเป็นค่าคงท่ีไม่มีการเปลี่ยนแปลงในแผนภาพ E-R จะทําการขีด เส้นใต้แอททริบิวต์ที่ทําหน้าที่เป็นตัวชี้เฉพาะ แสดงดังรูปที่ 7.4
1.3 ความสัมพันธ์
ฐานข้อมูลหนึ่งๆ อาจประกอบด้วยหลายเอนทิตี้ ซึ่งข้อมูลของแอททริบิวต์เหล่าน้ี มีความสัมพันธ์กันในการสร้างแบบจําลองความสัมพันธ์ระหว่างข้อมูล จะต้องระบุว่าเอนทิตี้ต่างๆ มีความสัมพันธ์กันอย่างไรบ้าง เพื่อประโยชน์ในการกําหนดโครงสร้างการเช่ือมโยงข้อมูล และลด ความซ้ำซ้อนของข้อมูล การเชื่อมโยงความสัมพันธ์ (Relationships) ระหว่างเอนทิตี้หน่ึงกับอีก เอนทิตี้หนึ่ง เช่น
เอนทิตี้ “นักศึกษา” ประกอบด้วยแอททริบิวต์ รหัสนักศึกษา ช่ือนักศึกษา รหัสแผนกวิชา
เอนทิตี้ “แผนกวิชา” ประกอบด้วยแอททริบิวต์ รหัสแผนกวิชา ชื่อแผนกวิชา
ความสัมพันธ์ “สังกัด” ในแผนภาพแบบจําลอง E-R ใช้สัญลักษณ์รูปสี่เหลี่ยมข้าวหลาม ตัด แทนความสัมพันธ์ระหว่างเอนทิตี้ และมีชื่อความสัมพันธ์กํากับอยู่ภายใน โดยช่ือของ ความสัมพันธ์จะเป็น “คํากริยา” ซึ่งแสดงถึงการกระทําระหว่างเอนทิตี้หน่ึงท่ีมีต่ออีกเอนทิตี้หนึ่ง แสดงดังรูปที่ 7.5
ความสัมพันธ์ระหว่างเอนทิตี้เป็นความสัมพันธ์ระหว่างสมาชิกของเอนทิตี้ สามารถแบ่ง ประเภทของความสัมพันธ์ระหว่างเอนทิตี้ได้เป็น 3 ประเภท ดังน้ี
1) ความสัมพันธ์แบบหน่ึงต่อหนึ่ง (one to one)
2) ความสัมพันธ์แบบหนึ่งต่อกลุ่ม (one to many)
3) ความสัมพันธ์แบบกลุ่มต่อกลุ่ม (manytomany)
1) ความสัมพันธ์แบบหนึ่งต่อหน่ึง(onetoone)
ความสัมพันธ์แบบหนึ่งต่อหนึ่งเป็นความสัมพันธ์ระหว่างสมาชิกหนึ่งรายการของ เอนทิต้ีหนึ่งกับสมาชิกเพียงหน่ึงรายการของอีกเอนทิตี้หน่ึง
มีเอนทิตี้ 2 เอนทิตี้ คือ “อาจารย์” และ “คณะวิชา” สัมพันธ์กันด้วยความสัมพันธ์ ช่ือ “บริหาร” แบบ 1 : 1 หมายถึง อาจารย์ 1 คน จะสามารถเป็นหัวหน้าแผนกวิชาได้ 1 แผนกวิชา และในขณะเดียวกัน แผนกวิชาแต่ละแผนกวิชา ก็มีอาจารย์ที่ทําหน้าที่เป็นหัวหน้าแผนกวิชาได้เพียง 1 คนเท่าน้ัน สามารถแสดงความสัมพันธ์ แสดงดังรูปท่ี 7.6
1.3 ความสัมพันธ์
ฐานข้อมูลหนึ่งๆ อาจประกอบด้วยหลายเอนทิตี้ ซึ่งข้อมูลของแอททริบิวต์เหล่าน้ี มีความสัมพันธ์กันในการสร้างแบบจําลองความสัมพันธ์ระหว่างข้อมูล จะต้องระบุว่าเอนทิตี้ต่างๆ มีความสัมพันธ์กันอย่างไรบ้าง เพื่อประโยชน์ในการกําหนดโครงสร้างการเช่ือมโยงข้อมูล และลด ความซ้ำซ้อนของข้อมูล การเชื่อมโยงความสัมพันธ์ (Relationships) ระหว่างเอนทิตี้หน่ึงกับอีก เอนทิตี้หนึ่ง เช่น
เอนทิตี้ “นักศึกษา” ประกอบด้วยแอททริบิวต์ รหัสนักศึกษา ช่ือนักศึกษา รหัสแผนกวิชา
เอนทิตี้ “แผนกวิชา” ประกอบด้วยแอททริบิวต์ รหัสแผนกวิชา ชื่อแผนกวิชา
ความสัมพันธ์ “สังกัด” ในแผนภาพแบบจําลอง E-R ใช้สัญลักษณ์รูปสี่เหลี่ยมข้าวหลาม ตัด แทนความสัมพันธ์ระหว่างเอนทิตี้ และมีชื่อความสัมพันธ์กํากับอยู่ภายใน โดยช่ือของ ความสัมพันธ์จะเป็น “คํากริยา” ซึ่งแสดงถึงการกระทําระหว่างเอนทิตี้หน่ึงท่ีมีต่ออีกเอนทิตี้หนึ่ง แสดงดังรูปที่ 7.5
2. ความสัมพันธ์ระหว่างเอนทิตี้
2.1 ประเภทของความสัมพนัธ์ระหว่างเอนทิตี้ความสัมพันธ์ระหว่างเอนทิตี้เป็นความสัมพันธ์ระหว่างสมาชิกของเอนทิตี้ สามารถแบ่ง ประเภทของความสัมพันธ์ระหว่างเอนทิตี้ได้เป็น 3 ประเภท ดังน้ี
1) ความสัมพันธ์แบบหน่ึงต่อหนึ่ง (one to one)
2) ความสัมพันธ์แบบหนึ่งต่อกลุ่ม (one to many)
3) ความสัมพันธ์แบบกลุ่มต่อกลุ่ม (manytomany)
1) ความสัมพันธ์แบบหนึ่งต่อหน่ึง(onetoone)
ความสัมพันธ์แบบหนึ่งต่อหนึ่งเป็นความสัมพันธ์ระหว่างสมาชิกหนึ่งรายการของ เอนทิต้ีหนึ่งกับสมาชิกเพียงหน่ึงรายการของอีกเอนทิตี้หน่ึง
มีเอนทิตี้ 2 เอนทิตี้ คือ “อาจารย์” และ “คณะวิชา” สัมพันธ์กันด้วยความสัมพันธ์ ช่ือ “บริหาร” แบบ 1 : 1 หมายถึง อาจารย์ 1 คน จะสามารถเป็นหัวหน้าแผนกวิชาได้ 1 แผนกวิชา และในขณะเดียวกัน แผนกวิชาแต่ละแผนกวิชา ก็มีอาจารย์ที่ทําหน้าที่เป็นหัวหน้าแผนกวิชาได้เพียง 1 คนเท่าน้ัน สามารถแสดงความสัมพันธ์ แสดงดังรูปท่ี 7.6
2) ความสัมพันธ์แบบหนึ่งต่อกลุ่ม (onetomany)
ความสัมพันธ์แบบหนึ่งต่อกลุ่ม เป็นความสัมพันธ์ท่ีสมาชิกหนึ่งรายการของเอนทิตี้ หน่ึงมีความสัมพันธ์กับสมาชิกหลายรายการในอีกเอนทิตี้หนึ่ง
มีเอนทิตี้ 2 เอนทิตี้ คือ “อาจารย์” และ “นักศึกษา” สัมพันธ์กันด้วยความสัมพันธ์ ช่ือ “เป็นท่ีปรึกษา” แบบ 1 : N หมายถึง อาจารย์ 1 คน จะสามารถมีนักศึกษาท่ีปรึกษาได้มากกว่า 1 คน และในขณะเดียวกัน นักศึกษาแต่ละคนต้องมีอาจารย์ท่ีปรึกษาคนใดคนหนึ่งเท่านั้น สามารถ แสดงความสัมพันธ์ แสดงดังรูปท่ี 7.7
มีเอนทิตี้ 2 เอนทิตี้ คือ “อาจารย์” และ “นักศึกษา” สัมพันธ์กันด้วยความสัมพันธ์ ช่ือ “เป็นท่ีปรึกษา” แบบ 1 : N หมายถึง อาจารย์ 1 คน จะสามารถมีนักศึกษาท่ีปรึกษาได้มากกว่า 1 คน และในขณะเดียวกัน นักศึกษาแต่ละคนต้องมีอาจารย์ท่ีปรึกษาคนใดคนหนึ่งเท่านั้น สามารถ แสดงความสัมพันธ์ แสดงดังรูปท่ี 7.7
3) ความสัมพันธ์แบบกลุ่มต่อกลุ่ม (many to many)
ความสัมพันธ์แบบกลุ่มต่อกลุ่ม คือ ความสัมพันธ์ท่ีสมาชิกหลายรายการในเอนทิตี้ หน่ึงมีความสัมพันธ์กับสมาชิกหลายรายการในเอนทิตี้หนึ่ง
มีเอนทิตี้ 2 เอนทิตี้ คือ “นักศึกษา” และ “วิชาเรียน” สัมพันธ์กันด้วยความสัมพันธ์ ช่ือ “ลงทะเบียน” แบบ M : N กล่าวคือ นักศึกษา 1 คน จะสามารถลงทะเบียนเรียนในวิชาเรียนได้ มากกว่า 1 วิชา ในขณะเดียวกัน วิชาเรียนแต่ละวิชาก็สามารถมีนักศึกษาลงทะเบียนเรียนได้มากกว่า 1 คน เช่นกัน สามารถแสดงความสัมพันธ์ แสดงดังรูปที่ 7.8
มีเอนทิตี้ 2 เอนทิตี้ คือ “นักศึกษา” และ “วิชาเรียน” สัมพันธ์กันด้วยความสัมพันธ์ ช่ือ “ลงทะเบียน” แบบ M : N กล่าวคือ นักศึกษา 1 คน จะสามารถลงทะเบียนเรียนในวิชาเรียนได้ มากกว่า 1 วิชา ในขณะเดียวกัน วิชาเรียนแต่ละวิชาก็สามารถมีนักศึกษาลงทะเบียนเรียนได้มากกว่า 1 คน เช่นกัน สามารถแสดงความสัมพันธ์ แสดงดังรูปที่ 7.8
3. การออกแบบฐานข้อมูลโดยใช้แบบจําลองความสัมพันธ์ระหว่างข้อมูล
การออกแบบฐานข้อมูลโดยใช้แบบจําลองความสัมพันธ์ระหว่างข้อมูล (E-R Model) มีขั้นตอน ที่เกี่ยวข้องหลายขั้นตอน และต้องใช้ความรอบคอบในการออกแบบเพื่อให้ได้ E-R Diagram ท่ีถูกต้อง เหมาะสมกับระบบงาน ในขั้นตอนการออกแบบฐานข้อมูลนี้ จะใช้ตัวอย่างฐานข้อมูลลงทะเบียน แสดงดังตารางที่ 7.1
ขั้นตอนท่ี 1 กําหนดเอนทิตี้
ขั้นตอนที่ 2 กําหนดแอททริบิวต์ของแต่ละเอนทิตี้
ขั้นตอนท่ี 3 กําหนดความสัมพันธ์ระหว่างเอนทิตี้(Relationships)
ขั้นตอนที่ 4 เขียนเป็นแบบจําลองแผนภาพEntityRelationshipDiagram(ERD)
ขั้นตอนท่ี 1 กําหนดเอนทิตี้
ขั้นตอนที่ 2 กําหนดแอททริบิวต์ของแต่ละเอนทิตี้
ขั้นตอนท่ี 3 กําหนดความสัมพันธ์ระหว่างเอนทิตี้(Relationships)
ขั้นตอนที่ 4 เขียนเป็นแบบจําลองแผนภาพEntityRelationshipDiagram(ERD)
ขั้นตอนที่ 1 กําหนดเอนทิตี้
กําหนดเอนทิตี้ท่ีมีในระบบงาน โดยดูจากลักษณะหน้าที่ของระบบงาน ว่ามีรายละเอียดในการ ทํางานอย่างไร ในการกําหนดเอนทิตี้จะต้องพิจารณาด้วยว่าเป็นเอนทิตี้ประเภทใด เช่น เป็นเอนทิตี้ แบบปกติ (Regular Entity) หรือว่าเป็นเอนทิตี้แบบอ่อน (Weak Entity) เช่น ฐานข้อมูลลงทะเบียน ประกอบด้วยเอนทิตี้รายวิชา นักศึกษา และลงทะเบียน แสดงดังรูปที่ 7.9
กําหนดเอนทิตี้ท่ีมีในระบบงาน โดยดูจากลักษณะหน้าที่ของระบบงาน ว่ามีรายละเอียดในการ ทํางานอย่างไร ในการกําหนดเอนทิตี้จะต้องพิจารณาด้วยว่าเป็นเอนทิตี้ประเภทใด เช่น เป็นเอนทิตี้ แบบปกติ (Regular Entity) หรือว่าเป็นเอนทิตี้แบบอ่อน (Weak Entity) เช่น ฐานข้อมูลลงทะเบียน ประกอบด้วยเอนทิตี้รายวิชา นักศึกษา และลงทะเบียน แสดงดังรูปที่ 7.9
ขั้นตอนท่ี 2 กําหนดแอททริบิวต์ของแต่ละเอนทิตี้
กําหนดแอททริบิวต์ต่างๆ ของแต่ละเอนทิตี้ รวมทั้งพิจารณาแอททริบวิ ต์ท่ีจะทําหน้าท่ีเป็นคีย์ หลักของเอนทิตี้ด้วย แสดงดังรูปที่ 7.10
เอนทิตี้ รายวิชา ประกอบด้วย รหัสวิชา ช่ือวิชา หน่วยกิต
เอนทิตี้ นักศึกษา ประกอบด้วย รหัสนักศึกษา ชื่อนักศึกษา
เอนทิตี้ ลงทะเบียน ประกอบด้วย รหัสนักศึกษา รหัสวิชา เกรด
กําหนดคีย์หลัก (Primary Key) เป็นการกําหนดคีย์ของแต่ละเอนทิตี้ว่าในแต่ละเอนทตี้ใช้ แอททริบิวต์ใดเป็นคีย์หลัก โดยการขีดเส้นใต้ชื่อแอททริบิวต์ท่ีเป็นคีย์หลัก เช่น
กําหนดแอททริบิวต์ต่างๆ ของแต่ละเอนทิตี้ รวมทั้งพิจารณาแอททริบวิ ต์ท่ีจะทําหน้าท่ีเป็นคีย์ หลักของเอนทิตี้ด้วย แสดงดังรูปที่ 7.10
เอนทิตี้ รายวิชา ประกอบด้วย รหัสวิชา ช่ือวิชา หน่วยกิต
เอนทิตี้ นักศึกษา ประกอบด้วย รหัสนักศึกษา ชื่อนักศึกษา
เอนทิตี้ ลงทะเบียน ประกอบด้วย รหัสนักศึกษา รหัสวิชา เกรด
กําหนดคีย์หลัก (Primary Key) เป็นการกําหนดคีย์ของแต่ละเอนทิตี้ว่าในแต่ละเอนทตี้ใช้ แอททริบิวต์ใดเป็นคีย์หลัก โดยการขีดเส้นใต้ชื่อแอททริบิวต์ท่ีเป็นคีย์หลัก เช่น
เอนทิตี้ รายวิชา มีรหัสวิชา เป็นคีย์หลัก
เอนทิตี้ นักศึกษา มีรหัสนักศึกษา เป็นคีย์หลัก
เอนทิตี้ ลงทะเบียน มีรหัสนักศึกษา รหัสวิชา เป็นคีย์หลัก
กําหนดความสัมพันธ์ระหว่างเอนทิตี้ว่ามีความสัมพันธ์แบบใดบ้าง ความสัมพันธ์แบบหนึ่งต่อ หนึ่งแบบหน่ึงต่อกลุ่มหรือแบบกลุ่มต่อกลมุ่ เช่น
เอนทิตี้รายวิชา มีความสัมพันธ์กับเอนทิตี้ลงทะเบียน แบบหนึ่งต่อกลุ่ม (1 : N) หมายความว่า รายวิชา 1 รายวิชา มีการลงทะเบียนหลายครั้ง แสดงดังรูปที่ 7.11
เอนทิตี้ นักศึกษา มีรหัสนักศึกษา เป็นคีย์หลัก
เอนทิตี้ ลงทะเบียน มีรหัสนักศึกษา รหัสวิชา เป็นคีย์หลัก
ขั้นตอนท่ี 3 กําหนดความสัมพันธ์ระหว่างเอนทิตี้ (Relationships)
เอนทิตี้รายวิชา มีความสัมพันธ์กับเอนทิตี้ลงทะเบียน แบบหนึ่งต่อกลุ่ม (1 : N) หมายความว่า รายวิชา 1 รายวิชา มีการลงทะเบียนหลายครั้ง แสดงดังรูปที่ 7.11
ขั้นตอนที่ 4 เขียนเป็นแบบจําลองแผนภาพ Entity Relationship Diagram (ERD)
นํารายละเอียดการออกแบบตั้งแต่ข้อที่ 1-3 มาวาดประกอบกันเป็น E-R Diagram กําหนด ความสัมพันธ์ระหว่างเอนทิตี้ ทบทวนการออกแบบว่าถูกต้องหรือไม่ แสดงดังรูปที่ 7.13
นํารายละเอียดการออกแบบตั้งแต่ข้อที่ 1-3 มาวาดประกอบกันเป็น E-R Diagram กําหนด ความสัมพันธ์ระหว่างเอนทิตี้ ทบทวนการออกแบบว่าถูกต้องหรือไม่ แสดงดังรูปที่ 7.13
เอนทิตี้ที่ประกอบด้วย Multivalued Attribute
ถ้าในเอนทิตี้ประกอบด้วย Multivalued Attribute ในการแปลง จะได้รีเลชั่น 2 รีเลชั่น คือ รีเลชั่นแรกเป็นรีเลชั่นท่ีเกิดจากการแปลงเอนทิตี้ปกติและแอททริบิวต์ของเอนทิตี้ ยกเว้น แอททริบิวต์ที่เป็น Multivalue Attribute ส่วนรีเลชั่นท่ี 2 ประกอบด้วย 2 แอททริบิวต์ คือ คีย์หลัก ของเอนทิตี้และแอททริบิวต์ท่ีเป็น Multivalued Attribute ซึ่งทั้ง 2 แอททริบิวต์นี้จะทําหน้าที่เป็น คีย์หลักของรีเลชั่นใหม่ ส่วนคีย์นอก (foreign key) ของรีเลชั่นใหม่คือ แอททริบิวต์ที่เป็นคีย์หลักของ เอนทิตี้ที่ยกมาด้วย จะเชื่อมโยงไปยังรีเลชั่นแรก แสดงดังรูปท่ี 7.16
ถ้าในเอนทิตี้ประกอบด้วย Multivalued Attribute ในการแปลง จะได้รีเลชั่น 2 รีเลชั่น คือ รีเลชั่นแรกเป็นรีเลชั่นท่ีเกิดจากการแปลงเอนทิตี้ปกติและแอททริบิวต์ของเอนทิตี้ ยกเว้น แอททริบิวต์ที่เป็น Multivalue Attribute ส่วนรีเลชั่นท่ี 2 ประกอบด้วย 2 แอททริบิวต์ คือ คีย์หลัก ของเอนทิตี้และแอททริบิวต์ท่ีเป็น Multivalued Attribute ซึ่งทั้ง 2 แอททริบิวต์นี้จะทําหน้าที่เป็น คีย์หลักของรีเลชั่นใหม่ ส่วนคีย์นอก (foreign key) ของรีเลชั่นใหม่คือ แอททริบิวต์ที่เป็นคีย์หลักของ เอนทิตี้ที่ยกมาด้วย จะเชื่อมโยงไปยังรีเลชั่นแรก แสดงดังรูปท่ี 7.16
กรณีที่ 3 แปลงความสัมพันธ์ (Relationship) ให้เป็น Relational Schema
1) การแปลงความสัมพันธ์แบบ 1 : 1
ในการแปลงความสัมพันธ์แบบ 1:1 ไม่จําเป็นต้องสร้างรีเลชั่นข้ึนใหม่ สามารถ แปลงโดยใช้วิธีการดังนี้
ถ้าเป็นความสัมพันธ์แบบ Total participation หรือ Partial participation ทั้ง สองฝั่ง ให้นําเอาคีย์หลักของรีเลชั่นฝั่งใดฝั่งหนึ่งมาไว้ในรีเลชั่นอีกฝั่ง เพื่อทําหน้าที่เป็นคีย์นอกในการ เช่ือมโยงรีเลชั่น ถ้ามีแอททริบิวต์เกิดขึ้นบนความสัมพันธ์ให้นําแอททริบิวต์นั้นไปไว้ในรีเลชั่นฝั่งที่มี คีย์นอก แสดงดังรูปท่ี 7.18
1) การแปลงความสัมพันธ์แบบ 1 : 1
ในการแปลงความสัมพันธ์แบบ 1:1 ไม่จําเป็นต้องสร้างรีเลชั่นข้ึนใหม่ สามารถ แปลงโดยใช้วิธีการดังนี้
ถ้าเป็นความสัมพันธ์แบบ Total participation หรือ Partial participation ทั้ง สองฝั่ง ให้นําเอาคีย์หลักของรีเลชั่นฝั่งใดฝั่งหนึ่งมาไว้ในรีเลชั่นอีกฝั่ง เพื่อทําหน้าที่เป็นคีย์นอกในการ เช่ือมโยงรีเลชั่น ถ้ามีแอททริบิวต์เกิดขึ้นบนความสัมพันธ์ให้นําแอททริบิวต์นั้นไปไว้ในรีเลชั่นฝั่งที่มี คีย์นอก แสดงดังรูปท่ี 7.18
2) การแปลงความสัมพันธ์แบบ 1 : N
ในการแปลงความสัมพันธ์แบบ 1 : N ไม่จําเป็นต้องสร้างรีเลชั่นข้ึนใหม่ สามารถ แปลงโดยใช้วิธีการดังน้ี
ถ้าเป็นความสัมพันธ์ที่มีดีกรีแบบ Binary Relationship ให้นําคีย์หลักฝั่ง ความสัมพันธ์ 1 ไปไว้ที่ฝั่งความสัมพันธ์ N ทําหน้าที่เป็นคีย์นอกของรีเลชั่น ถ้ามีแอททริบิวต์บน ความสัมพันธ์ให้นํามาไว้ฝั่งที่มีคีย์นอก แสดงดังรูปที่ 7.19
ในการแปลงความสัมพันธ์แบบ 1 : N ไม่จําเป็นต้องสร้างรีเลชั่นข้ึนใหม่ สามารถ แปลงโดยใช้วิธีการดังน้ี
ถ้าเป็นความสัมพันธ์ที่มีดีกรีแบบ Binary Relationship ให้นําคีย์หลักฝั่ง ความสัมพันธ์ 1 ไปไว้ที่ฝั่งความสัมพันธ์ N ทําหน้าที่เป็นคีย์นอกของรีเลชั่น ถ้ามีแอททริบิวต์บน ความสัมพันธ์ให้นํามาไว้ฝั่งที่มีคีย์นอก แสดงดังรูปที่ 7.19
3) การแปลงความสัมพันธ์แบบ M : N
ต้องสร้างรีเลชั่นเพิ่มขี้นอีก 1 รีเลชั่น สามารถแปลงโดยใช้วิธีการดังน้ี
ถ้าเป็นความสัมพันธ์แบบBinary Relationship สร้างรีเลชั่นใหม่โดยเอาคีย์ หลักของทั้ง 2 รีเลชั่น มารวมกันเป็นคีย์หลักของรีเลชั่นใหม่ที่สร้างขึ้น ถ้าความสัมพันธ์มีแอททริบิวต์ เกิดขึ้นบนความสัมพันธ์ให้นําแอททริบิวต์น้ันมาใส่ไว้ในรีเลชั่นใหม่ที่สร้างขึ้นด้วย แสดงดังรูปที่ 7.20
แผนกวิชา (รหัส แผนกวิชา, ชื่อแผนกวิชา) วิชา (รหัสวิชา, ช่ือวิชา, จํานวนหน่วยกิต) นักศึกษา (รหสั นักศึกษา, ชื่อ , นามสกุล, ระดับช้ัน, ที่อยู่, รหัสแผนกวิชา)
ลงทะเบียน (รหัสนักศึกษา , ภาคเรียน, ปีการศึกษา, รหัสวิชา, เกรด)
จากโครงสร้างของตารางแผนกวิชา วิชา นักศึกษา ลงทะเบียน ได้อธิบายรายละเอียดให้อยู่ใน รูปแบบพจนานุกรมข้อมูล แสดงดังตารางท่ี 7.2
ต้องสร้างรีเลชั่นเพิ่มขี้นอีก 1 รีเลชั่น สามารถแปลงโดยใช้วิธีการดังน้ี
ถ้าเป็นความสัมพันธ์แบบBinary Relationship สร้างรีเลชั่นใหม่โดยเอาคีย์ หลักของทั้ง 2 รีเลชั่น มารวมกันเป็นคีย์หลักของรีเลชั่นใหม่ที่สร้างขึ้น ถ้าความสัมพันธ์มีแอททริบิวต์ เกิดขึ้นบนความสัมพันธ์ให้นําแอททริบิวต์น้ันมาใส่ไว้ในรีเลชั่นใหม่ที่สร้างขึ้นด้วย แสดงดังรูปที่ 7.20
5. พจนานุกรมข้อมูล (Data Dictionary)
การอธิบายรายละเอียดโครงสร้างของตารางเชิงสัมพันธ์ให้อยู่ในรูปแบบพจนานุกรมข้อมูล(Data Dictionary) จากตัวอย่างโครงสร้างของตารางแผนกวิชา วิชา นักศึกษา ลงทะเบียน ซึ่งแต่ละ ตารางประกอบด้วยรายละเอียดดังนี้แผนกวิชา (รหัส แผนกวิชา, ชื่อแผนกวิชา) วิชา (รหัสวิชา, ช่ือวิชา, จํานวนหน่วยกิต) นักศึกษา (รหสั นักศึกษา, ชื่อ , นามสกุล, ระดับช้ัน, ที่อยู่, รหัสแผนกวิชา)
ลงทะเบียน (รหัสนักศึกษา , ภาคเรียน, ปีการศึกษา, รหัสวิชา, เกรด)
จากโครงสร้างของตารางแผนกวิชา วิชา นักศึกษา ลงทะเบียน ได้อธิบายรายละเอียดให้อยู่ใน รูปแบบพจนานุกรมข้อมูล แสดงดังตารางท่ี 7.2
สรุป
โมเดลแบบ E-R เป็นแนวคิดที่ใช้เป็นเครื่องมือในการนําเสนอ เพื่อแสดงให้เห็นถึงเอนทิตี้ต่างๆ แอททริบิวต์ของแต่ละเอนทิตี้ และความสัมพันธ์ระหว่างเอนทิตี้ เป็นการออกแบบข้อมูลในระดับ แนวคิด (Conceptual Data Modeling) โดยแสดงถึงรายละเอียดและความสัมพันธ์ของข้อมูลต่างๆ ในระบบในลักษณะท่ีเป็นภาพรวม ซึ่งเป็นประโยชน์ในด้านการรวบรวมและวิเคราะห์ข้อมูลว่ามี รายละเอียดและความสัมพันธ์อย่างไรซึ่งมีขั้นตอนการออกแบบฐานข้อมูลโดยใช้แบบจําลองE-R มี ขั้นตอนดังน้ี คือ ศึกษาถึงลักษณะหน้าท่ีงานของระบบ แล้วนํามากําหนดเอนทิตี้ท่ีควรจะมีอยู่ใน ฐานข้อมูล กําหนดประเภทของความสัมพันธ์ระหว่างเอนทิตี้ว่ามีความสัมพันธ์กันอย่างไรบ้าง กําหนด คุณลักษณะของเอนทิตี้ว่าควรจะมีรายละเอียดอะไรบ้าง กําหนดคีย์ของแต่ละเอนทิตี้ว่าจะใช้ แอททริบิวต์ใดเป็นคีย์หลักของเอนทิตี้นั้นๆ ซึ่งจะต้องเป็นรายละเอียดของข้อมูลที่มีค่าเป็นเอกลักษณ์ หรือค่าเฉพาะไม่ซํ้าซ้อนในเอนทิตี้น้ันๆ กําหนดความสัมพันธ์ระหว่างเอนทิตี้ ออกแบบฐานข้อมูลโดย ใช้แบบจําลอง E-R โดยใช้สัญลักษณ์เป็นการอธิบายความสัมพันธ์ระหว่างข้อมูล ซึ่งเขียนเป็น แบบจําลองแผนภาพ Entity Relationship Diagram (ERD) จากนั้นก็แปลง (ERD) ให้อยู่ในรูปแบบ โครงสร้างตาราง (Relational Schema) ขั้นตอนสุดท้าย คือ อธิบายรายละเอียดโครงสร้างของ ฐานข้อมูลในรูปแบบพจนานุกรมข้อมูล (Data Dictionary)