คุณลักษณะของ ER Diagram
1. แสดงได้ด้วยแผนภาพ (Graphical Diagrams) ไม่ว่าจะเป็นเทคนิคโมเดลข้อมูลแบบใดก็ตามจะมีภาษาและรูปภาพทางกราฟฟิกโดยเฉพาะ เพื่อใช้แสดงรายละเอียดข้อมูลทั้งกลุ่มใหญ่และรายละเอียดส่วนย่อย ซึ่งทำ ให้ง่ายต่อการแปลความ เช่น ใช้วงกลม หรือสี่เหลี่ยมแทนเอนทิตีใช้เส้นโค้งหรือเส้นตรงแทนรีเลชันชิป
2. แสดงชัดเจนถึงความหมายของข้อมูล (Explicit Representation of Semantic) มีทางเลือกในการแสดงความหมายของข้อมูล เราอาจใช้สัญลักษณ์ที่ต่างกันจำ นวนมากบ้างน้อยบ้างเพื่อแสดง แต่จุดสำ คัญคือแผนภาพที่ได้ออกมาควรง่าย ไม่ซับซ้อน และเห็นความหมายของข้อมูลชัดเจน
3. แสดงรายละเอียดในระดับที่เหมาะสม (Appropriate Level of Detail) กล่าวคือโมเดลระดับตรรกะจะมีรายละเอียดที่เพียงพอที่จะชี้จุดที่ทำ ให้เกิดความแตกต่างระหว่างชนิดของข้อมูลรีเลชันชิปและข้อบังคับต่าง ๆ แต่จะน้อยกว่าโมเดลทางกายภาพโดยเฉพาะอย่างยิ่งสัญลักษณ์หนึ่ง ๆ ไม่ควรมีหลายความหมาย
4. ไม่พึ่งพิงกับระบบจัดการฐานข้อมูลแบบใดแบบหนึ่ง (DBMS Independence) โมเดลที่ได้จากการออกแบบแล้วควรใช้ได้กับระบบฐานข้อมูลหลายแบบ ได้แก่ แบบความสัมพันธ์, แบบลำ ดับชั้นและแบบเครือข่าย
5. ง่ายต่อการศึกษาและใช้งาน ในที่นี้จะต้องง่ายเพียงพอสำ หรับผู้ใช้ทุกประเภทจะทำ
ความเข้าใจและนำ ไปใช้ได้
ขั้นตอนการ ออกแบบ ER Model
ในการออกแบบ ER-Diagram มีด้วยกันหลายขั้นตอนสำ หรับใน 5 ขั้นตอนแรกจะเป็นการออกแบบทางด้านโครงสร้างพื้นฐานของโมเดล ได้แก่ พวกเอนทิตี, รีเลชันชิป, คีย์หลัก, คีย์สำ รอง, คีย์ภายนอก, กฎเกณฑ์ พื้นฐาน จากนั้นจึงเริ่มเพิ่มรายละเอียดในระดับที่ผู้ใช้มองเห็น (User View) และรวมรายละเอียดเหล่านั้นเข้าด้วยกันจึงได้เป็นโมเดลข้อมูลเชิงตรรกะที่สมบูรณ์
ขั้นตอนที่ 1 การกำ หนดเอนทิตีหลัก
จากตัวอย่างทั้งหมด สามารถออกแบบฐานข้อมูลโดยเริ่มจากการนำ Requirement ในข้างต้นที่กล่าวมาแล้ว การกำ หนดเอนทิตีนั้นเป็นงานที่ยาก และต้องอาศัยความร่วมมือของผู้ที่เข้าใจระบบที่เราออกแบบ เพื่อ คัดเลือกสิ่งที่ถูกต้อง มีความสำ คัญและเหมาะสมที่สุดมาเป็นเอนทิตี วิธีการอย่างคร่าว ๆ ก็คือให้พิจารณาข้อมูลทั้งหมดที่มี และจัดกลุ่มของข้อมูล โดยดูจากค่า และความหมายถ้าสามารถรวมกลุ่มกันได้ก็ให้รวมเข้าไว้ในเอนทิตีเดียวกัน แล้ว จึงนำ ไป กำ หนดชื่อและความหมายลงในพจนานุกรมข้อมูล และเขียนลงโมเดลข้อมูลด้วยการตั้งชื่อไม่ควรเกิน 20 ตัวอักษร
ขั้นตอนที่ 2 การกำ หนดความสัมพันธ์ ระหว่างเอนทิตี
กำ หนดชื่อ ความหมาย รีเลชันชิป ทิศทาง และขนาดอัตราส่วนที่เกิดรีเลชันชิปนั้น ๆ พร้อมทั้งบันทึกลงในพจนานุกรมข้อมูลด้วยสำ หรับชื่อก็ไม่ควรเกิน 20 หลังจากที่เราสามารถแบ่งกลุ่มรีเลชันชิประหว่างเอนทิตีได้ เรียบร้อยแล้ว จะพบว่ารีเลชันชิปแบบ 1:Many เป็นสิ่งที่เราต้อง สนใจมากที่สุดเพราะเป็นตัว ทำ ให้การสร้างฐาน ข้อมูลเชิงตรรกะมีความยุ่งยากซับซ้อนมากขึ้น
ตัวอย่างเช่น
จงเขียนเป็น ER diagram ของ ฐานข้อมูล COMPANY (ที่กล่าวในข้างต้น) ประกอบด้วย 4
Entity (EMPLOYEE , DEPARTMENT , PROJECT , DEPENDENT)
โดยมีความสัมพันธ์ (Relation type) ดังต่อไปนี้
1. MANAGES เป็นความสัมพันธ์แบบ 1:1 ระหว่าง Employee กับ Department กล่าวคือ แต่ละ Department ต้องมีผู้จัดการ (Manages) บริหาร 1 คน เสมอ และมีการเก็บข้อมูลวันแรกของการทำ งานของพนักงานทุกคนโดยใช้ Startdate Attribute
2. WORK_FOR เป็นความสัมพันธ์แบบ 1: N ระหว่าง DEPARTMENT และ EMPLOYEE
3. SUPERVISION เป็นความสัมพันธ์แบบ 1: N ระหว่าง (ฝ่ายบริหารเช่น ผู้จัดการหรือหัวหน้าแผนก) กับ EMPLOYEE (ผู้ใต้บังคับบัญชา)
4. CONTROLS เป็นความสัมพันธ์แบบ 1:N ระหว่าง DEPARTMENT กับ PROJECT
5. WORKS_FOR เป็นความสัมพันธ์แบบM:N ระหว่าง EMPLOYEE กับ DEPARTMENTเพราะ แต่ละ PROJECT มีพนักงานหลายคนทำ งานอยูในเวลาเดียวกับพนักงาน 1 คน สามารถทำ งานได้หลาน PROJECT เช่นกัน
6. DEPENDENTS_OF เป็นความสัมพันธ์แบบ 1: N ระหว่าง EMPLOYEE กับ
DEPARTMENT โดยความสัมพันธ์เป็นแบบ DEPENDENT
ขั้นตอนที่ 3 การกำ หนดคีย์หลักและคีย์รอง
หลังจากที่ได้กำ หนดเอนทิตีต่าง ๆ แล้ว ขั้นตอนต่อไปของการสร้างโมเดลข้อมูลทางตรรกะคือ การเพิ่ม ข้อมูลที่เรียกว่า แอตตริบิวลงในทุก ๆ เอนทิตีสิ่งที่สำ คัญอีกประการหนึ่ง คือ เอนทิตีที่เป็นซับไทป์จะต้องมีคีย์หลักอันเดียวกับเอนทิตีที่เป็นซุปเปอร์ไทป์ของมัน หลังจากกำ หนดแล้วให้ตั้งชื่อระบุในโมเดลข้อมูลเชิงตรรกะพร้อมทั้งใส่ในพจนานุกรมข้อมูลด้วย การตั้งชื่อควรกำ หนดสั้น ๆ ง่าย ๆ อาจใช้ชื่อย่อก็ได้ และควรหลีกเลี่ยงการตั้งชื่อแอตตริบิวของสองสิ่งที่ไม่เหมือนกันด้วยชื่อเดียวกัน
ขั้นตอนที่ 4 การกำ หนดคีย์ภายนอก
เมื่อกำ หนดคีย์หลักและคีย์รองได้แล้ว ให้กำ หนดคีย์ภายนอกสำ หรับเอนทิตีที่มีรีเลชันชิปกันทุกอันคีย์ภายนอก คือ แอตตริบิวในเอนทิตีระดับลูกที่แทนคีย์หลักของเอนทิตีระดับพ่อแม่ เพื่อใช้ในการอ้างถึงระเบียนในเอนทิตีระดับพ่อแม่และแสดงถึงรีเลชันชิประหว่างเอนทิตีต่าง ๆ ซึ่งอาจให้คีย์หลักเป็นคีย์ภายนอกด้วยก็ได้
ขั้นตอนที่ 5 พิจารณาขอบเขตค่าโดเมนของแอตตริบิว
ให้กำ หนดโดเมนของแอตตริบิวทุกตัวในเอนทิตีแล้วบันทึกในพจนานุกรมข้อมูลโดเมน คือกลุ่มค่าที่ถูกต้องเป็นไปได้สำ หรับแอตตริบิวแต่ละตัว อันได้แก่
1. ชนิดของข้อมูล (Data Type) เช่น จำ นวนเต็ม, วันที่, ตัวอักษร, ทศนิยม
2. ความยาว (Length) เช่น 5 หลัก, 35 ตัวอักษร
3. รูปแบบข้อมูล (Format) เช่น dd/mm/yy (วันที่)
4. ค่าที่อนุญาต (Allowable value) เช่น เป็นได้เฉพาะวันศุกร์ต้นเดือน
5. ช่วงของข้อมูลหรือข้อกำ หนดอื่น ๆ (Range, Constraints)
6. ความหมาย (Meaning) อธิบายความหมายของแอตตริบิวนั้นว่าคืออะไร
7. ความเป็นหนึ่งเดียว (Uniqueness) ต้องมีค่าเป็นหนึ่งเดียว
8. ความเป็นนัล (Null support) อนุญาตให้เป็นนัลได้หรือไม่
9. ค่าโดยปริยาย (Default value) กำ หนดให้มีค่าเป็น 0
ขั้นตอนที่ 6 การวิเคราะห์ความมีเสถียรภาพและการเติบโตในอนาคต
การออกแบบโมเดลที่ดี ตอ้ งคำ นึงการเปลี่ยนแปลงในอนาคตเสมอ และ ควรจะยืดหยุน่ ตอ่ การเปลี่ยนแปลงนั้น
การเขียน ER Diagram
Data model หมายถึงกลุ่มของ แนวคิดที่ช่วยเรากำ หนดโครงสร้างของฐานข้อมูลและ ชุดเซทที่เกี่ยวข้องกับชุดคำ สั่งที่ใช้ในการเรียกใช้ และ เปลี่ยนแปลง ข้อมูล และ ในบทนี้นำ เสนอแนวคิด Conceptual Data Modeling ที่เรียกว่า แบบจำ ลอง Entity Relation (ER Model) ที่สามารถ อธิบายภาพรวม (Data View) ของทั้งองค์กรได้ดีในรูปแบบ ER Diagram แบบจำ ลองแบบ E-R Model ถูกออกแบบให้ง่ายต่อความเข้าความเข้าใจของผู้ใช้งาน โดยไม่คำ นึงถึงลักษณะการเก็บทางกายภาพของข้อมูลว่าเก็บอย่างไรที่ใด
หลังจากที่ได้ความสัมพันธ์ทั้งหมดแล้ว พยายามขจัดความซับซ้อนของ Attribute ในแต่ละ Entity ให้มากที่สุดเพื่อเขียนเป็น Conceptual Schema และเพื่อให้เกิดความเข้าใจง่าย มนุษย์จึงคิด ER Diagram เพื่ออธิบาย Conceptual Schema ให้ง่ายต่อการเข้าใจและตีความ โดยใช้สัญลักษณ์ดังต่อไปนี้
สัญลักษณ์ที่ใช้เขียน ER Diagram
การแปลง ER-DIagram ให้เป็น SubSchema ( Mapping ER Diagram )
หลังจากที่เราได้ ER Schema เรียบร้อยจะเข้าสู่ Mapping เพื่อให้เขียนอยู่ในรูปสมการง่าย ๆ
ขั้นตอนที่ 1 ทุก ๆ Entity type E ใน ER Schema เราจะสร้าง Relation R ที่รวบรวม Attribute ของ E นั้นเข้าไว้ในรูปสมการแล้วเลือกเอาหนึ่งใน Attribute ของ R เป็น Key เพื่อใช้เป็นตัวแทนและง่ายต่อการค้นหา โดยใช้สัญลักษณ์ขีดเส้นใต้ และเป็นตัวหนา ส่วนคีย์ภายนอก (Foreign Key) คือ สัญลักษณ์ตัวเอียง
• EMPLOYEE (FNAME , MINIT ,LNAME ,SSN , BDATE ,ADDRESS ,SEX
, SUPERSSN, DNO, BIRTHDATE)
• DEPARTMENT (DNO, DNAM, MGRSSN, MGRSTARTDATE)
• PROJECT (PNAME, PNUMBER, PLOCATION, DNO )
• DEPENDENT (SSN, D_NAME, SEX, BDATE, RELATIONSHIP)
• WORK_FOR (SSN, DNO , HOURS)
ขั้นตอนที่ 2 สำหรับ weak entity type ใน ER schema เราสร้าง relation R และเอา primary key attribute ของ owner entity W เพื่อเป็นความสัมพันธ์ระหว่างกัน ตัวอย่างเช่น DEPENDENTประกอบด้วย 3 attribute(Dependent_name , sex , และ Birthdate) เราจะเอา ESSN(Primary key attribute ของ EMPLOYEE) มาใส่ใน R ดังนั้น ESSN และ DEPENDENT_NAME รวมกันจะกลายเป็น Primary key
ขั้นตอนที่ 3 ถ้าความสัมพันธ์ 1:1 ให้เลือกเอา Primary key จากหนึ่ง entity ทั้งสองมาเป็น Foreign key ของ อีก Entity หนึ่ง ในตัวอย่างนี้เรารวมเอา Primary key ของ EMPLOYEE เป็น Foreign key ของ EMPLOYEE เป็น Foreign key ของ DEPARTMENT
ถ้าความสัมพันธ์ 1:Manay ให้เลือกเอา Primary key จากหนึ่ง entity ด้าน 1 มา เป็น Foreign key ของ อีก Entity หนึ่ง
ถ้าความสัมพันธ์ Many:Many ให้สร้างรีเลชั่นนั้นเพิ่มเติม โดย เอา Primary key จากหนึ่ง entity ทั้งสองมาเป็น Foreign key
ตัวอย่าง 1 E-R Diagram ระหว่าง อาจารย์ ที่ปรึกษากับนักศึกษา
รูปแสดง ER Diagram ระหว่างอาจารย์ที่ปรึกษากับนักศึกษา ส่วนความสัมพันธ์นั้นหมายถึง ความสัมพันธ์ระหว่าง entity ตัวอย่างเช่น ความสัมพันธ์ระหว่างนักศึกษาและอาจารย์ ที่ปรึกษา โดยอาจารย์ที่ปรึกษา หนึ่งคนสามารถให้คำ แนะนำ นักศึกษาได้มากกว่า หนึ่งคนและ อาจเขียนในรูปของ Relational Schema ดังต่อไปนี้
อาจารย์ (SSN , ชื่อ อ.จ. , นามสกุล )
นักศึกษา(ชื่อ น.ศ . , นามสกุล น.ศ., SSN) โดยมี SSN เป็น Foreign Key
ตัวอย่างที่ 2 ความสัมพันธ์ระหว่าง อาจารย์กับนักศึกษา ซึ่งสามารถแสดงในรูปแบบของ ER-Diagram
1. Entity Set หมายถึง กลุ่มของสิ่งใดสิ่งหนึ่งที่เหมือนกัน โดยเราใช้กรอบสี่เหลี่ยมล้อมคำ ใช้เป็นสัญลักษณ์ แทนกลุ่มนั้น
2. Relationship set หมายถึง ความสัมพันธ์ระหว่าง Entity โดยเราใช้กรอบรูป Diamond แทน สัญลักษณ์ของ Relationship เช่น 
3. Attribute คุณสมบัติของ Entity set หรือ Relationship set เช่น 
ปัญหาใน ER โมเดล
ปัญหาหลายอย่างที่เกิดขึ้นจากการออกแบบฐานข้อมูลด้วย ER-Diagram ซึ่งเป็นที่เข้าว่าการออกแบบในขั้นตอนนี้เป็นการออกแบบในเชิงความคิดหรือทางลอจิคัล จึงอาจทำให้เกิดช่องหรือหลุมพรางในการสร้างความสัมพันธ์ระหว่างเอ็นติตี้ ก่อให้เกิดการแปลความหมายความสัมพันธ์ผิดพลาดได้ โดยความผิดพลาดหรือปัญหาใน ER โมเดลจะมีอยู่สองรูปแบบด้วยกันคือ
1. Fan Traps
2. Chasm Traps
Fan Traps
เป็นปัญหาที่ทำให้เกิดความกำกวม(ambiguous) หรือความไม่ชัดเจนในการแสดงข้อมูลที่เราสนใจ โดยปัญหาดังกล่าวเป็นปัญหาที่เกี่ยวข้องกับการจัดความสัมพันธ์ระหว่างเอ็นติตี้ที่มักพบในความสัมพันธ์แบบ one-to-many
Chasm Traps
เป็นปัญหาที่ความลึกซึ้งกว่าปัญหา Fan Traps กล่าวคือปัญหาของ Chasm Traps นั้นเกิดขึ้นเนื่องจากไม่มีความโยงความสัมพันธ์ระหว่างเอ็นติตี้หรือความสัมพันธ์ขาดหายไป ซึ่งปัญหาดังกล่าวมักจะเกิดกรณีที่มีความสัมพันธ์แบบ Partial Participation
นางสาวอมรรัตน์ โพธิ์มาก รหัสนักศึกษา 49473140043
คณะวิทยาการจัดการ โปรแกรมบริหารธุรกิจ (คอมพิวเตอร์ธุรกิจ) หมู่ 01
มหาวิทยาลัยราชภัฏสวนสุนันทา
E-MAIL : tujung_zeed@hotmail.com