รายวิชาการจัดการฐานข้อมูล (Database Management System) ง30250 สำหรับใช้เป็นสื่อการสอน ยินดีต้อนรับนักเรียนทุกคนนะค่ะ โดย อ.พรหมพร เพิ่มพูล

วันอังคารที่ 17 กันยายน พ.ศ. 2556

หน่วยการเรียนรู้ที่ 5 แบบจำลองเอนทิตี้ั - ความสัมพันธ์


หน่วยการเรียนรู้ที่ 5  

แบบจำลองเอนทิตี้ั - ความสัมพันธ์


5.1   บทนำ

Entity – Relationship Model หรือที่นิยมเรียกสั้น ๆว่า E-R Model ถูกคิดค้นโดย Chen(1976)  ถือว่าเป็นแบบจำลองที่ใช้ในการแสดงการออกแบบฐานข้อมูลในระดับแนวคิด(High – level Conceptual Data Model)  ซึ่งเป็นอิสระจากระบบจัดการฐานข้อมูล(Database Management System : DBMS)  โดย E-R Model จะแสดงเค้าร่างฐานข้อมูล (Conceptual Database Schema) ที่ประกอบด้วย เอนติตี้(Entity) , แอททริบิวต์(Attribute) และความสัมพันธ์ระหว่างแอททริบิวต์(Relationship)  ผลการออกแบบโดยใช้ E-R Model สามารถแสดงได้ด้วยการเขียนแผนภาพที่เรียกว่า Entity Relationship  Diagram(ERD)  ซึ่งถือว่าเป็นเครื่องมือที่ใช้อธิบายองค์ประกอบและข้อกำหนดของฐานข้อมูล ที่นักวิเคราะห์และออกแบบระบบใช้เป็นสื่อกลางในการสื่อสารระหว่างผู้ใช้และนักพัฒนาโปรแกรม  เนื่องจากมีสัญลักษณ์ที่สื่อความหมายให้เข้าใจได้ง่าย

หลังจากออกแบบฐานข้อมูลและเขียนแผนภาพ ERD ที่ถูกต้องเหมาะสมกับระบบงานแล้ว  และเลือกระบบจัดการฐานข้อมูล (DBMS) ที่จะนำมาใช้งานได้แล้ว  ก็จะทำการแปลง(Mapping Data Model)แผนภาพ ERD  ให้เป็นเค้าร่างฐานข้อมูลให้สอดคล้องกับระบบการจัดการฐานข้อมูลที่เลือกใช้  เช่น  สมมุติว่าเลือกระบบการจัดการฐานข้อมูลแบบเชิงสัมพันธ์(Relational Database Management System : RDBMS) ซึ่งได้แก่ Oracle หรือ Microsoft SQL Server เป็นต้น  ก็จะนำ E- R Diagram มาเทียบแปลงเป็นเค้าร่างฐานข้อมูลเชิงสัมพันธ์( Relational Schema) ที่เหมาะสม

5.2   องค์ประกอบของ  E – R Model

E – R Model  เป็นการออกแบบในระดับแนวคิด(Conceptual Design)  ในลักษณะจากบนลงล่าง(Top-Down Strategy) โดยผลจากการออกแบบฐานข้อมูล  จะได้เค้าร่างในระดับแนวคิดที่ประกอบด้วย
·       เอนติตี้ที่ควรจะมีในระบบ(Entity)
·       ความสัมพันธ์ระหว่างเอนติตี้ว่าเป็นอย่างไร(Relationship)
·       แอททริบิวต์ซึ่งเป็นรายละเอียดที่อธิบายเอนติตี้ และมีความสัมพันธ์กันอย่างไรบ้าง(Attribute)

5.2.1        เอนติตี้(Entity)

เอนติตี้(Entity หรือ Entity type) หมายถึง  กลุ่มของสิ่งต่าง ๆ ที่เราสนใจจะเก็บข้อมูลไว้ในฐานข้อมูล  ซึ่งอาจจะเป็น บุคคล  สถานที่  การกระทำ  หรือ กิจกรรมต่าง ๆ ตัวอย่างของเอนติตี้ ได้แก่
·       เอนติตี้ที่เป็น บุคคล เช่น พนักงาน , นักศึกษา , อาจารย์  , แพทย์ , พยาบาล , ผู้ป่วย , นักบิน , พนักงานขับรถ   เป็นต้น
·       เอนติตี้ที่เป็น สถานที่ เช่น ประเทศ , จังหวัด , อำเภอ , น้ำตก , ภูเขา , โรงแรม , ห้องพัก , ห้องเช่า , ห้องเรียน   เป็นต้น
·       เอนติตี้ที่เป็น วัตถุ , สิ่งของ , อุปกรณ์ เช่น  รถ , สินค้า , หนังสือ , อะไหล่ , วัตถุดิบ , อาหาร , เครื่องใช้   เป็นต้น
·       เอนติตี้ที่เป็น นามธรรม  เช่น  วัน , วิชา , ความสามารถพิเศษ , คำทำนาย , คำพยากรณ์  เป็นต้น
Entity instance หรือ Entity occurrence หมายถึง  กรณีตัวอย่างที่แตกต่างกันของเอนติตี้ เช่น นักศึกษา 1 คน , รถยนต์ 1 คัน , การเจ็บป่วย 1 ครั้ง , หนังสือ 1 เล่ม , ภาพยนตร์ 1 เรื่อง , เหตุการณ์ 1 เหตุการณ์  ดังนั้น เอนติตี้(Entity type) “นักศึกษา มีนักศึกษา  100 คน ก็หมายถึง  มี Entity instance 100 ข้อมูลที่แตกต่างกันคนละคน เป็นต้น
เอนติตี้แบบปกติ(Regular Entity หรือ Strong Entity) คือ เอนติตี้ที่เราสามารถกำหนดให้มีในระบบได้อย่างอิสระ ไม่ขึ้นกับข้อมูลของเอนติตี้อื่น  สามารถกำหนดแอททริบิวต์หรือฟิลด์ที่อยู่ในเอนติตี้ให้เป็นคีย์หลัก(Primary Key)   เพื่อจำแนกข้อมูลแต่ละรายการได้   สัญลักษณ์ที่แทนเอนติตี้แบบปกติ ใน ERD คือสี่เหลี่ยมผืนผ้าแทนแต่ละเอนติตี้ ภายในบรรจุชื่อของเอนติตี้นั้น ๆ 

รูปที่ 5.1 สัญลักษณ์และตัวอย่างของเอนติตี้แบบปกติ

5.2.2  แอททริบิวต์(Attribute)

แอททริบิวต์(Attribute)  หมายถึง ลักษณะหรือคุณสมบัติที่นำมาอธิบายเอนติตี้ และ ความสัมพันธ์  ตัวอย่างของแอททริบิวต์ของเอนติตี้  เช่น
แอททริบิวต์ของเอนติตี้ นักศึกษา ได้แก่  รหัสนักศึกษา , คำนำหน้าชื่อ , ชื่อ , นามสกุล , วันเกิด , โปรแกรมวิชาที่สังกัด , เกรดเฉลี่ยสะสม 
แอททริบิวต์ของเอนติตี้ ผู้ป่วย  ได้แก่ รหัสผู้ป่วย , ชื่อ , นามสกุล , สถานภาพ , วันที่เข้ารักษาครั้งแรก , ที่อยู่ , โทรศัพท์
แอททริบิวต์ของเอนติตี้ สินค้า ได้แก่ รหัสสินค้า , ชื่อสินค้า , ราคา/หน่วย , จำนวนคงเหลือ
แอททริบิวต์ของเอนติตี้  วิชาเรียน  ได้แก่  รหัสวิชา , ชื่อวิชา , จำนวนหน่วยกิต

ประเภทของแอททริบิวต์แบ่งออกได้ดังนี้
·       Simple Attribute หรือ Atomic Attribute  หมายถึง  แอททริบิวต์ที่ไม่สามารถแยกข้อมูลออกเป็นข้อมูลย่อย ๆ ได้อีก ตัวอย่างเช่น รหัสนักศึกษา , เงินเดือน  ไม่สามารถแยกออกเป็นข้อมูลอื่น ได้อีก สัญลักษณ์ที่ใช้คือ วงรีเส้นขอบเส้นเดี่ยว มีชื่อแอททริบิวต์บรรจุอยู่ภายใน ดังรูป




รูปที่ 5.2  สัญลักษณ์และตัวอย่างของแอททริบิวต์แบบ Simple attribute

·        Composite Attribute  หมายถึง  หมายถึง แอททริบิวต์ที่สามารถแบ่งออกเป็นแอททริบิวต์ย่อย ๆ ได้อีก เช่น   แอททริบิวต์ ที่อยู่  สามารถแบ่งออกเป็นแอททริบิวต์ย่อยได้เป็น บ้านเลขที่ , ถนน , ตำบล , อำเภอ , จังหวัด เป็นต้น  สัญลักษณ์ที่ใช้แสดง Composite Attribute คือวงรีเส้นขอบเส้นเดี่ยว แต่มีวงรีย่อยมาเชื่อมต่อด้วย ดังรูป




รูปที่ 5.3  สัญลักษณ์และตัวอย่างของแอททริบิวต์แบบ Composite attribute

·       Single-valued Attribute  หมายถึง  แอททริบิวต์ที่ค่าของข้อมูลได้เพียงค่าเดียวในแต่ละแอททริบิวต์  เช่น แอททริบิวต์ รหัสนักศึกษา ของนักศึกษาแต่ละคนก็จะมีรหัสนักศึกษาเพียงรหัสเดียว  สัญลักษณ์ที่ใช้คือ วงรีเส้นขอบเส้นเดี่ยว มีชื่อแอททริบิวต์บรรจุอยู่ภายในเช่นเดียวกันกับ Atomic หรือ Simple attribute (รูปที่ 6.2) สำหรับแอททริบิวต์ที่ถูกกำหนดให้ทำหน้าที่เป็นคีย์หลัก(primary key) ของเอนติตี้ก็จะขีดเส้นทึบใต้ชื่อของแอททริบิวต์ เพื่อแสดงให้รู้ว่าเป็นคีย์หลัก

·       Multivalued Attribute  หมายถึง  แอททริบิวต์เดียวที่กำหนดให้สามารถมีค่าได้มากกว่า 1 ค่า เช่น ในเอนติตี้ พนักงาน ประกอบด้วย แอททริบิวต์ รหัสพนักงาน , ชื่อ-นามสกุล , เงินเดือน , ความสามารถพิเศษ  เมื่อพิจารณาแล้วพบว่า พนักงาน 1 คน ก็จะมีรหัสพนักงาน 1 ค่า , ชื่อและนามสกุล 1 ค่า , เงินเดือนมี 1 ค่า แต่อาจจะมีค่าข้อมูลความสามารถพิเศษมากกว่า 1 อย่าง หรือ มีแค่ความสามารถพิเศษเดียว หรือ ไม่มีความสามารถพิเศษเลยก็ได้ ดังนั้น แอททริบิวต์ ความสามารถพิเศษ จึงถือว่าเป็น Multivalued Attribute เพราะสามารถมีค่าข้อมูลได้มากกว่า 1 ค่าข้อมูล สัญลักษณ์ที่ใช้แสดง Multivalued Attribute คือวงรีที่มีเส้นขอบเป็นเส้นคู่ บรรจุชื่อ แอททริ บิวต์ภายใน ดังรูป
 



รูปที่ 5.4  สัญลักษณ์และตัวอย่างของแอททริบิวต์แบบ Multivalued attribute

·       Derived Attribute  หมายถึง แอททริบิวต์ที่มีค่าของแอททริบิวต์ประกอบมาจากค่าของแอททริบิวต์อื่นหรือจากเอนติตี้  เช่น แอททริบิวต์ อายุ เกิดจาก การนำเอาค่าจากแอททริบิวต์ วันเกิด มาลบกับวันเดือนปีปัจจุบัน ก็จะได้ค่าอายุ  สัญลักษณ์ที่แสดง Derived Attribute เป็นวงรีที่มีเส้นขอบเป็นเส้นประ มีชื่อแอททริบิวต์บรรจุภายใน ดังรูป



รูปที่ 5.5  สัญลักษณ์และตัวอย่างของแอททริบิวต์แบบ Derived attribute


 




รูปที่ 5.6 ตัวอย่างการแสดงเอนติตี้ พนักงาน และแอททริบิวต์ของเอนติตี้


5.2.3  ความสัมพันธ์(Relationship)
ความสัมพันธ์(Relationship) หมายถึง  ความสัมพันธ์ระหว่างเอนติตี้ต่าง ๆ   ตัวอย่างเช่น   เราสามารถกำหนดความสัมพันธ์ให้กับอาจารย์ พนารัตน์ กับนักศึกษา วนิดาให้มีความสัมพันธ์กันโดยอาจารย์ พนารัตน์ เป็นอาจารย์ที่ปรึกษาของนักศึกษา วนิดา
กลุ่มความสัมพันธ์(Relationship set)  คือ กลุ่มของความสัมพันธ์ระหว่างกลุ่มของเอนติตี้(Entity type) พิจารณาตัวอย่างความสัมพันธ์ระหว่างอาจารย์กับนักศึกษาที่มีความสัมพันธ์เป็นอาจารย์ที่ปรึกษา ดังรูป



รูปที่ 5.7 กลุ่มความสัมพันธ์ เป็นที่ปรึกษา

สัญลักษณ์ที่ใช้แสดงความสัมพันธ์ใน ERD คือ สี่เหลี่ยมขนมเปียกปูน มีชื่อที่แสดงความสัมพันธ์อยู่ภายใน ดังรูป
 
 
รูปที่ 5.8 ตัวอย่างความสัมพันธ์ระหว่างเอนติตี้



5.2.4  เอนติตี้อ่อนแอ(Weak Entity)

เอนติตี้อ่อนแอ หมายถึง เอนติตี้ที่ไม่สามารถมีแอททริบิวต์ที่นำมากำหนดเป็นคีย์หลัก(Primary key)ของตัวเองได้  ซึ่งแตกต่างจากเอนติตี้ปกติ(Regular Entity) ที่สามารถกำหนดคีย์หลักของเอนติตี้ตัวเองได้
เอนติตี้แบบอ่อนนี้จะคงอยู่หรือมีตัวตนได้ต้องอาศัยการเชื่อมโยงข้อมูลบางส่วนจากเอนติตี้อื่น กล่าวได้ว่า  เอนติตี้อ่อนแอมี การขึ้นต่อกันเชิงปรากฏ(Existence dependency)”กับเอนติตี้ที่เป็นเจ้าของ(Owner Entity)     ความสัมพันธ์นี้เรียกว่า ความสัมพันธ์เชิงระบุ(Identifying relationship)”  หมายถึง สมาชิกของเอนติตี้เจ้าของ 1 รายการ สามารถระบุสมาชิกของเอนติตี้อ่อนแอ 1 รายการหรือหลายรายการได้    การกำหนดคีย์หลักของเอนติตี้อ่อนแอ ต้องอาศัยข้อมูลจากแอททริบิวต์ของเอนติตี้ที่สัมพันธ์กัน(Owner Entity)มาประกอบแอททริบิวต์ของเอนติตี้อ่อนแอเป็นคีย์หลัก
พิจารณาความสัมพันธ์ มีผลการทดสอบ ระหว่าง นักศึกษา และ ผลการทดสอบ ดังรูปที่ 5.9  จะสังเกตว่า ข้อมูล ครั้งที่ ของผลการทดสอบ จะมีข้อมูลที่ซ้ำกันบางรายการทำให้ไม่สามารถกำหนดคีย์หลักของเอนติตี้ได้ มีลักษณะเป็น เอนติตี้อ่อนแอ    แต่ถ้านำข้อมูลของ นักศึกษา มาพิจารณาประกอบจะพบว่า ครั้งที่ ของการสอบแต่ละรายการก็จะสามารถระบุได้ว่าเป็นผลการสอบของนักศึกษาคนใด   เรียก ครั้งที่ ว่าเป็นตัวแยก(Discriminator)  ซึ่งจะนำแอททริบิวต์ที่เป็นตัวแยกนี้มาประกอบกับแอททริบิวต์ของเอนติตี้เจ้าของเป็นตัวระบุรายการข้อมูลที่แตกต่างกันแต่ละรายการ  สามารถเรียกตัวแยกนี้ว่าเป็น ส่วนประกอบของคีย์(Partial key)
สัญลักษณ์ที่ใช้แสดงเอนติตี้อ่อนแอใน ERD คือ สี่เหลี่ยมผืนผ้าที่มีเส้นขอบเป็นเส้นทึบคู่ มีชื่อเอนติตี้อยู่ภายใน ดังรูปที่ 5.10  แอททริบิวต์ที่เป็นส่วนประกอบของคีย์(Partial key) จะขีดเส้นประใต้ชื่อแอททริบิวต์
 

รูปที่ 5.9  กลุ่มความสัมพันธ์ มีผลการทดสอบ


รูปที่ 5.10 ตัวอย่างความสัมพันธ์ระหว่างเอนติตี้อ่อนแอและเอนติตี้ปกติ


5.3       ข้อกำหนด(Constraints)

5.3.1  ดีกรีของความสัมพันธ์(Degree of  Relationship)
ดีกรีของความสัมพันธ์  หมายถึง  จำนวนของเอนติตี้ที่มาสัมพันธ์กันในความสัมพันธ์หนึ่งๆ  ซึ่งแบ่งออกได้ดังนี้
·       ความสัมพันธ์กับเอนติตี้ตนเอง(Unary Relationship หรือ Recursive Relationship)
เป็นความสัมพันธ์ระหว่างเอนติตี้ภายในเอนติตี้เดียวกัน  เช่น ความสัมพันธ์ชื่อ บังคับเรียนก่อน ซึ่งเป็นความสัมพันธ์ระหว่าง เอนติตี้ วิชาเรียน  กับเอนติตี้ วิชาเรียน ด้วยกันเอง  กล่าวคือ  วิชาเรียนบางวิชาบังคับให้ต้องเรียนบางวิชาก่อนจึงจะสามารถเรียนวิชาดังกล่าวได้แสดงได้ดังรูปที่ 5.11


รูปที่ 5.11 ตัวอย่างความสัมพันธ์ระหว่างเอนติตี้แบบ Unary Relationship

·       ความสัมพันธ์ระหว่างสองเอนติตี้(Binary Relationship)
เป็นความสัมพันธ์ระหว่างเอนติตี้ 2 เอนติตี้  เช่น 
-    ความสัมพันธ์ที่ชื่อ สอน ระหว่างเอนติตี้ นักศึกษา กับเอนติตี้ อาจารย์
-    ความสัมพันธ์ที่ชื่อ ลงทะเบียน ระหว่างเอนติตี้ นักศึกษา กับเอนติตี้ วิชาเรียน
-    ความสัมพันธ์ที่ชื่อ สั่งซื้อ ระหว่างเอนติตี้ ลูกค้า กับเอนติตี้ สินค้า
แสดงสัญลักษณ์ใน ERD ดังรูปที่  5.12
 
รูปที่ 5.12 ตัวอย่างความสัมพันธ์ระหว่างเอนติตี้แบบ Binary Relationship

·       ความสัมพันธ์ระหว่างเอนติตี้มากกว่าสองเอนติตี้(N-ary Relationship)
เป็นความสัมพันธ์ระหว่างเอนติตี้ตั้งแต่ 3 เอนติตี้ขึ้นไป โดย หมายถึง  จำนวนเอนติตี้ที่มาสัมพันธ์กับความสัมพันธ์หนึ่ง  ตัวอย่างเช่น ถ้ามีเอนติตี้มีความสัมพันธ์กันในความสัมพันธ์หนึ่งใด 3 เอนติตี้ จะเรียกว่า Ternary Relationship  , ถ้ามี 4 เอนติตี้มาสัมพันธ์กัน เรียกว่า Quaternary Relationship ตัวอย่าง N – ary Relationship ดังรูปที่ 5.13

 
รูปที่ 5.13 ตัวอย่างความสัมพันธ์ระหว่างเอนติตี้แบบ N-ary Relationship

5.3.2  สัดส่วนจำนวนข้อมูลระหว่างเอนติตี้ที่สัมพันธ์กัน(Cardinality Ratio)
สัดส่วนจำนวนข้อมูลระหว่างเอนติตี้ที่มาสัมพันธ์กันในความสัมพันธ์ใดความสัมพันธ์หนึ่ง  สามารถแบ่งออกได้ ดังนี้
·       ความสัมพันธ์แบบหนึ่งต่อหนึ่ง(One-to-One Relationship หรือ 1 : 1)
เป็นการแสดงความสัมพันธ์ของจำนวนข้อมูลของเอนติตี้ A ว่า ข้อมูล 1 รายการ มีความสัมพันธ์กับข้อมูลเอนติตี้ B ได้ไม่เกิน 1 รายการ  ตัวอย่างเช่น  มีเอนติตี้ 2 เอนติตี้ คือ อาจารย์และ คณะวิชาสัมพันธ์กันด้วยความสัมพันธ์ชื่อ บริหารแบบ 1 : 1 หมายถึง อาจารย์ 1 คน จะสามารถเป็นคณบดีได้ 1 แผนก และในขณะเดียวกัน คณะวิชาแต่ละคณะ ก็มีอาจารย์ที่ทำหน้าที่เป็นคณบดีได้เพียง 1 คนเท่านั้น  สามารถแสดงความสัมพันธ์ ได้ดังรูปที่ 5.14                

รูปที่ 6.14 ความสัมพันธ์ระหว่างเอนติตี้แบบ One-to-One Relationship

·       ความสัมพันธ์แบบหนึ่งต่อกลุ่ม(One-to-Many Relationship หรือ 1 : N)
เป็นการแสดงความสัมพันธ์ของจำนวนข้อมูลของเอนติตี้ A ว่า ข้อมูล 1 รายการ มีความสัมพันธ์กับข้อมูลเอนติตี้ B ได้มากกว่า 1 รายการ ตัวอย่างเช่น  มีเอนติตี้ 2 เอนติตี้ คือ อาจารย์และ นักศึกษาสัมพันธ์กันด้วยความสัมพันธ์ชื่อ เป็นที่ปรึกษาแบบ 1 : N หมายถึง  อาจารย์ 1 คน จะสามารถมีนักศึกษาที่ปรึกษาได้มากกว่า 1 คน และในขณะเดียวกัน นักศึกษาแต่ละคนต้องมีอาจารย์ที่ปรึกษาคนใดคนหนึ่งเท่านั้น  สามารถแสดงความสัมพันธ์ ได้ดังรูป ที่ 5.15



รูปที่ 5.15 ความสัมพันธ์ระหว่างเอนติตี้แบบ One-to-Many Relationship

·       ความสัมพันธ์แบบกลุ่มต่อหนึ่ง(Many-to-One Relationship หรือ N : 1)
เป็นการแสดงความสัมพันธ์ของจำนวนข้อมูลของเอนติตี้ A ว่า ข้อมูล 1 รายการ มีความสัมพันธ์กับข้อมูลเอนติตี้ B ได้แค่ 1 รายการ  ในขณะที่ข้อมูลเอนติตี้ B มีความสัมพันธ์กับเอนติตี้ A ได้มากกว่า 1 รายการ  ตัวอย่างเช่น มีเอนติตี้ 2 เอนติตี้ คือ เอนติตี้ คณะวิชา และ เอนติตี้ นักศึกษา มีความสัมพันธ์กันชื่อ สังกัด แบบ N : 1 หมายถึง  โดยนักศึกษาแต่ละคนจะสามารถสังกัดคณะวิชาได้แค่  1 คณะ ในขณะที่ 1 คณะวิชาสามารถมีนักศึกษามาสังกัดได้หลายคน  สามารถแสดงความสัมพันธ์ ได้ดังรูป ที่ 5.16



รูปที่ 5.16 ความสัมพันธ์ระหว่างเอนติตี้แบบ Many-to-One Relationship

·       แบบกลุ่มต่อกลุ่ม(Many-to-Many Relationship หรือ M : N)
เป็นการแสดงความสัมพันธ์ของจำนวนข้อมูลของเอนติตี้ A ว่า ข้อมูล 1 รายการ มีความสัมพันธ์กับข้อมูลเอนติตี้ B ได้มากกว่า 1 รายการ และในทางกลับกัน ข้อมูล 1 รายการของเอนติตี้ B ก็มีความสัมพันธ์กับเอนติตี้ A ได้มากกว่า 1 รายการเช่นกัน  ตัวอย่างเช่น  มีเอนติตี้ 2 เอนติตี้ คือ นักศึกษาและ วิชาเรียนสัมพันธ์กันด้วยความสัมพันธ์ชื่อ ลงทะเบียนแบบ M : N กล่าวคือ นักศึกษา 1 คน จะสามารถลงทะเบียนเรียนในวิชาเรียนได้มากกว่า 1 วิชา ในขณะเดียวกัน วิชาเรียนแต่ละวิชาก็สามารถมีนักศึกษาลงทะเบียนเรียนได้มากกว่า 1 คน เช่นกัน สามารถแสดงความสัมพันธ์โดยใช้ Semantic Net      ได้ดังรูป ที่ 5.17



รูปที่ 5.17 ความสัมพันธ์ระหว่างเอนติตี้แบบ Many-to-Many Relationship



5.3.3  ข้อกำหนดการมีส่วนร่วมในความสัมพันธ์(Participation Constraints)
ในการวิเคราะห์ความสัมพันธ์ระหว่างเอนติตี ในเรื่องสัดส่วนของข้อมูลที่เกี่ยวข้องกับความสัมพันธ์(Cardinality Ratio) ยังสามารถพิจารณาละเอียดถึงข้อกำหนดของการมีส่วนร่วมในความสัมพันธ์ระหว่างเอนติตี้  ซึ่งการกำหนดนี้ใช้เพื่อกำหนดคุณสมบัติของคีย์นอก(Foreign Key) ว่าจะเป็นค่าว่าง(Null) หรือไม่เป็นค่าว่าง(Not Null) ซึ่งข้อกำหนดนี้ขึ้นอยู่กับเกณฑ์ที่ถือปฎิบัติในการทำงานของระบบงาน(Business Rule) แบ่งออกได้ดังนี้
·       การมีส่วนร่วมทั้งหมด(Total Participation หรือ Mandatory Participation)
เป็นข้อกำหนดว่า ทุกรายการข้อมูลในเอนติตี้  A  จะต้องมีความสัมพันธ์กับรายการข้อมูลในเอนติตี้ B เสมอ  ตัวอย่างเช่น  หากกำหนดเกณฑ์ถือปฏิบัติว่า นักศึกษาทุกคนต้องสังกัดคณะวิชา  และสังกัดได้เพียงแค่ 1 คณะ และในขณะที่แต่ละคณะก็ต้องมีนักศึกษาสังกัดอย่างน้อย 1 คน ด้วยเช่นกัน สามารถแสดงได้ดังรูปที่ 5.18




รูปที่ 5.18  ตัวอย่างการมีส่วนความสัมพันธ์แบบ Total Participation ด้วยสัดส่วน M : 1


·       การมีส่วนร่วมบางส่วน(Partial Participation หรือ Optional Participation)
เป็นข้อกำหนดว่า  รายการข้อมูลในเอนติตี้  A  อาจมีความสัมพันธ์กับรายการข้อมูลในเอนติตี้ B หรือไม่ก็ได้   ตัวอย่างเช่น  หากกำหนดเกณฑ์ถือปฏิบัติว่า   นักศึกษาแต่ละคนอาจจะลงทะเบียนเรียนในวิชาใดๆ หรือไม่ก็ได้ และวิชาเรียนบางวิชาก็อาจจะมีคนลงทะเบียนเรียนหรือไม่ก็ได้  สามารถแสดงดังรูปที่ 5.17

5.4       สัญลักษณ์ที่ใช้ในการเขียนแผนภาพ E-R (ERD Notation)

ในการเขียนแผนภาพ E-R Diagram จะมีสัญลักษณ์ที่ใช้ในการสื่อความหมายของ เอนติตี้(Entity),แอททริบิวต์(Attribute)ประเภทต่าง ๆ และ ความสัมพันธ์(Relationship) รวมทั้งข้อกำหนดต่าง ๆ ที่ได้กล่าวในหัวข้อที่ผ่านมา โดยใช้สัญลักษณ์ของ Chen  ซึ่งถือว่าเป็นสัญลักษณ์ที่ได้รับความนิยมในการเขียน E-R Diagram มานาน  สรุปได้ดังนี้

ตารางที่ 5.1  สัญลักษณ์ในการเขียน ERD


นอกจากนี้ยังมีสัญลักษณ์ในการเขียนแผนภาพ ER แบบอื่น ๆ ที่มีการพัฒนาเพิ่มเติม เช่น สัญลักษณ์ของ Crow’s foot , Bachman , UML เป็นต้น


รูปที่ 5.24 สัญลักษณ์ ERD ที่ใช้ใน Oracle Designer CASE Tool
(ที่มา http://cisnet.baruch.cuny.edu/holowczak/classes/9440/entityrelationship/#erdiagrams)


รูปที่ 5.25 สัญลักษณ์ ERD แบบ Visible Analyst Notation




รูปที่ 5.26 สัญลักษณ์ ERD ที่ใช้ใน Sybase  PowerDesigner
(ที่มา http://cisnet.baruch.cuny.edu/holowczak/classes/9440/entityrelationship/#erdiagrams)



รูปที่ 5.27 สัญลักษณ์ ERD แบบ UML
(ที่มา http://cisnet.baruch.cuny.edu/holowczak/classes/9440/entityrelationship/#erdiagrams)


                ในการสร้างแผนภาพ ER โดยการใช้ CASE Tool มักมีลักษณะคล้าย Class Diagram โดยเขียนชื่อเอนติตี้และแอททริบิวต์ไว้ภายใน รูปสี่เหลี่ยมผืนผ้า   และแสดงชื่อความสัมพันธ์ไว้บนเส้นที่เชื่อมโยงระหว่างเอนติตี้  แสดงตัวอย่างดังรูปที่ 5.28
               

รูปที่ 5.28  ตัวอย่าง ERD ที่พัฒนาโดยใช้เครื่องมือ Popkin System Architect CASE Tool
(ที่มา http://cisnet.baruch.cuny.edu/holowczak/classes/9440/entityrelationship/#erdiagrams)


6.5 ขั้นตอนการพัฒนาแบบจำลองข้อมูล
การออกแบบฐานข้อมูลโดยใช้ E-R Model มีขั้นตอนที่เกี่ยวข้องหลายขั้นตอน  และต้องใช้ความรอบคอบในการออกแบบเพื่อให้ได้ E-R  Diagram ที่ถูกต้องเหมาะสมกับระบบงาน  โดยมีขั้นตอนในการพัฒนาดังนี้
1.      กำหนดเอนติตี้ที่มีในระบบงาน โดยดูจากลักษณะหน้าที่ของระบบงาน ว่ามีรายละเอียดในการทำงานอย่างไร  ในการกำหนดเอนติตี้จะต้องพิจารณาด้วยว่าเป็นเอนติตี้ประเภทใด เช่นเป็นเอนติตี้แบบปกติ(Regular Entity) หรือว่าเป็นเอนติตี้แบบอ่อน(Weak Entity)
2.      กำหนดแอททริวบิวต์ต่าง ๆ ของแต่ละเอนติตี้  รวมทั้งพิจารณาแอททริบิวต์ที่จะทำหน้าที่เป็นคีย์หลักของเอนติตี้ด้วย
3.      กำหนดความสัมพันธ์ระหว่างเอนติตี้ว่ามีความสัมพันธ์แบบใดบ้าง  รวมทั้งข้อกำหนดของความสัมพันธ์(Participation Constraint) ด้วย
4.      นำรายละเอียดการออกแบบตั้งข้อ 1 - 3 มาวาดประกอบกันเป็น E-R Diagram  ทบทวนการออกแบบว่าถูกต้องหรือไม่

6.6 กรณีศึกษา  การพัฒนา E-R Model
            บริษัท R.T. Trading Co.Ltd. เป็นบริษัทค้าส่งรายใหญ่ ต้องการพัฒนาระบบงานฐานข้อมูลเพื่อจัดเก็บข้อมูล โดยระบบงานที่สร้างขึ้นต้องสามารถรองรับการทำงานด้านต่างๆ ของบริษัท  โดยมีขอบเขตของกาจัดเก็บข้อมูลของบริษัทมีการจัดเก็บข้อมูลเกี่ยวกับ แผนกการทำงานของบริษัท , พนักงาน , ลูกค้าของบริษัท , สินค้าที่นำมาจำหน่าย , ผู้ผลิตสินค้า, การสั่งซื้อสินค้าเข้ามาจำหน่ายและการออกใบเสร็จให้กับลูกค้า  โดยมีรายละเอียดในการจัดเก็บข้อมูลดังนี้
-          ข้อมูลแผนกการทำงาน ประกอบด้วยข้อมูล  รหัสแผนกที่ไม่ซ้ำกัน , ชื่อแผนก , เบอร์โทรศัพท์ติดต่อ ซึ่งสามารถมีได้หลายเบอร์
-          ข้อมูลพนักงาน ประกอบด้วย รหัสพนักงานที่ไม่ซ้ำกัน , ชื่อพนักงาน(คำนำชื่อ , ชื่อ , นามสกุล) , ตำแหน่งงาน , เงินเดือน , เบอร์โทรศัพท์ , วันเกิด , อายุ(คำนวณจากวันเกิดได้) , วันที่รับตำแหน่ง
-          ข้อมูลลูกค้า ประกอบด้วย รหัสลูกค้าที่ไม่ซ้ำกัน , ชื่อลูกค้า(คำนำชื่อ , ชื่อ , นามสกุล) , ที่อยู่(บ้านเลขที่ , ถนน , อำเภอ/เมือง , จังหวัด/รัฐ , รหัสไปรษณีย์) , เบอร์โทรศัพท์(บ้าน , มือถือ) , E-Mail Address
-          -ข้อมูลสินค้า ประกอบด้วย รหัสสินค้าที่ไม่ซ้ำกัน , ชื่อสินค้า , ราคา , จำนวนคงเหลือ , ระดับคงเหลือสั่งซื้อ
-          ข้อมูลผู้ผลิตสินค้า ประกอบด้วย รหัสผู้ผลิตที่ไม่ซ้ำกัน , ชื่อบริษัท , เบอร์โทรศัพท์ติดต่อ , E-Mail Address ,ที่อยู่(เลขที่ , ถนน , อำเภอ/เมือง , จังหวัด/รัฐ , รหัสไปรษณีย์)
-          ข้อมูลใบสั่งซื้อสินค้าของบริษัท ประกอบด้วย หมายเลขใบสั่งซื้อที่ไม่ซ้ำกัน , วันที่สั่งซื้อ ,ยอดรวมทั้งหมด(คำนวณจากรายการที่สั่งทั้งหมดได้)
-          ข้อมูลใบเสร็จรับเงินของลูกค้า ประกอบด้วย หมายเลขใบเสร็จที่ไม้ซ้ำกัน , วันที่ออกใบเสร็จ , ยอดรวมทั้งหมด(คำนวณจากรายการที่สั่งทั้งหมดได้)
ข้อกำหนดการทำงานของบริษัท(Business rule) มีลักษณะดังนี้
-          การทำงานของบริษัท พนักงาน แต่ละคนต้องสังกัดแผนกใดแผนกหนึ่ง เพียงแค่ 1 แผนกเท่านั้น  ซึ่งในทุก ๆ แผนกก็ต้องมีพนักงานที่สังกัดอย่างน้อย 1 คน
-          การบริหารงานของแผนก  จะมีพนักงานบางคนที่ถูกแต่งตั้งให้ดำรงตำแหน่งผู้จัดการแผนก โดยแต่ละแผนกจะมีผู้จัดการแผนกละ 1 คน ไม่ซ้ำคนกันในแต่ละแผนก
-          การบริหารงานของพนักงาน  จะมีการแบ่งสายงานของพนักงานออกเป็นกลุ่มงาน  โดยจะมีพนักงานบางคนถูกคัดเลือกให้ทำหน้าที่เป็นหัวหน้าสายงานที่ดูแลพนักงานในสายงานของตนเอง  ทำให้ทราบว่าพนักงานแต่ละคนมีใครเป็นหัวหน้าสายงานของตนเอง
-          ในการนำสินค้าเข้ามาขายของบริษัท  บริษัทจะสั่งซื้อสินค้าจากผู้ผลิตเข้ามาขาย ในการสั่งซื้อแต่ละครั้งจะสั่งจากผู้ผลิต 1 ราย แต่สามารถสั่งซื้อสินค้าเข้ามาได้หลายรายการ โดยระบุจำนวนที่สั่งในแต่ละครั้งที่สั่งซื้อ
-          ในการขายสินค้าให้กับลูกค้า บริษัทจะออกใบเสร็จรับเงินเพื่อยืนยันการขาย โดยใน 1ใบเสร็จสามารถระบุรายการสินค้าที่ซื้อได้หลายรายการ และระบุจำนวนที่ซื้อแต่ละรายการ ราคารวม และยอดขายสุทธิ(คำนวณจากราคาสินค้าได้ตัวอย่างใบเสร็จรับเงินดังรูปที่ 4.29
-          ในการออกใบเสร็จรับเงินจะมีพนักงานเป็นผู้ยืนยันการขายในแต่ละครั้งด้วยเสมอ


รูปที่ 5.29  ตัวอย่างใบเสร็จรับเงิน
                                                                                                                                                         
การออกแบบแบบจำลองข้อมูล
1.      กำหนดเอนติตี้ของระบบงาน  ประกอบด้วย
·       แผนก
·       พนักงาน
·       ลูกค้า
·       สินค้า
·       ผู้ผลิต
·       ใบสั่งซื้อ
·       ใบเสร็จรับเงิน
2.      กำหนดแอททริบิวต์ให้กับแต่ละเอนติตี้



รูปที่ 5.30เอนติตี้และแอททริบิวต์ของระบบงานตัวอย่าง


3.      กำหนดความสัมพันธ์ในแต่ละเอนติตี้ที่มีความสัมพันธ์ตามขอบเขตงาน
·       การทำงานของบริษัท พนักงาน แต่ละคนต้องสังกัดแผนกใดแผนกหนึ่ง เพียงแค่ 1 แผนกเท่านั้น  ซึ่งในทุก ๆ แผนกก็ต้องมีพนักงานที่สังกัดอย่างน้อย 1 คน  เป็นความสัมพันธ์ระหว่าง เอนติตี้ พนักงานกับเอนติตี้ แผนกใช้ชื่อความสัมพันธ์ว่า  สังกัดเป็นแบบ N : 1 ดังรูปที่ 5.31

  
รูปที่ 5.31 ความสัมพันธ์ชื่อ สังกัดระหว่างเอนติตี้ พนักงานกับเอนติตี้ แผนก


·       การบริหารงานของแผนกจะมีผู้จัดการแผนกทำหน้าที่บริหารงาน โดยแต่ละแผนกจะมีผู้จัดการแผนกละ 1 คน ไม่ซ้ำคนกันในแต่ละแผนก  เป็นความสัมพันธ์ระหว่าง เอนติตี้ พนักงานกับเอนติตี้ แผนกใช้ชื่อความสัมพันธ์ว่า  บริหารเป็นแบบ 1 : 1 ดังรูปที่ 5.32

 




รูปที่ 5.32 ความสัมพันธ์ชื่อ บริหารระหว่างเอนติตี้ พนักงานกับเอนติตี้ แผนก

·       การบริหารงานของพนักงาน  จะมีการแบ่งสายงานของพนักงานออกเป็นกลุ่มงาน  โดยจะมีพนักงานบางคนถูกคัดเลือกให้ทำหน้าที่เป็นหัวหน้าสายงานที่ดูแลพนักงานในสายงานของตนเอง  ทำให้ทราบว่าพนักงานแต่ละคนมีใครเป็นหัวหน้าสายงานของตนเอง  เป็นความสัมพันธ์ระหว่าง เอนติตี้ พนักงานกับเอนติตี้ พนักงานด้วยกันเอง  ใช้ชื่อความสัมพันธ์ว่า  ควบคุมเป็นแบบ 1 : N  โดยความสัมพันธ์ด้าน  1 เป็นของเอนติตี้ พนักงานที่ทำหน้าที่เป็น หัวหน้าสายงาน  ส่วนความสัมพันธ์ด้าน N เป็นของเอนติตี้ พนักงานที่เป็นลูกน้องในสายงาน  ดังรูปที่ 5.33


รูปที่ 5.33  ความสัมพันธ์ชื่อ ควบคุมระหว่างเอนติตี้ พนักงานกับเอนติตี้ พนักงาน

·       ในการนำสินค้าเข้ามาขายของบริษัท  บริษัทจะสั่งซื้อสินค้าจากผู้ผลิตเข้ามาขาย ในการสั่งซื้อแต่ละครั้งจะสั่งจากผู้ผลิต 1 ราย แต่สามารถสั่งซื้อสินค้าเข้ามาได้หลายรายการ ซึ่งจะระบุจำนวนที่สั่งในแต่ละครั้งที่สั่งซื้อ   เป็นความสัมพันธ์ระหว่าง เอนติตี้ ผู้ผลิตกับ เอนติตี้ ใบสั่งซื้อใช้ความสัมพันธ์ชื่อว่า รับเป็นความสัมพันธ์แบบ 1 : N  และความสัมพันธ์ชื่อ มีรายการสั่งซื้อเป็นความสัมพันธ์ระหว่างเอนติตี้ ใบสั่งซื้อกับเอนติตี้ สินค้าเป็นความสัมพันธ์แบบ M:N ดังรูปที่ 5.34

 


รูปที่ 5.34  ความสัมพันธ์ชื่อ รับระหว่างเอนติตี้ ผู้ผลิตกับเอนติตี้ ใบสั่งซื้อ
                              และความสัมพันธ์ชื่อ มีรายการระหว่างเอนติตี้ ใบสั่งซื้อกับเอนติตี้ สินค้า

·       ในการขายสินค้าให้กับลูกค้า บริษัทจะออกใบเสร็จรับเงินเพื่อยืนยันการขาย โดยใน 1 ใบเสร็จสามารถระบุรายการสินค้าที่ซื้อได้หลายรายการ และระบุจำนวนที่ซื้อแต่ละรายการ ราคารวม และยอดขายสุทธิ(คำนวณจากราคาสินค้าได้) เป็นความสัมพันธ์ระหว่าง เอนติตี้ ลูกค้ากับ เอนติตี้ ใบเสร็จใช้ความสัมพันธ์ชื่อว่า ได้รับเป็นความสัมพันธ์แบบ 1 : N  และความสัมพันธ์ชื่อ มีรายการสินค้าเป็นความสัมพันธ์ระหว่างเอนติตี้ ใบเสร็จกับเอนติตี้ สินค้าเป็นความสัมพันธ์แบบ M:N ดังรูปที่ 5.35



 
รูปที่ 5.35  ความสัมพันธ์ชื่อ รับระหว่างเอนติตี้ ลูกค้ากับเอนติตี้ ใบเสร็จ
                              และความสัมพันธ์ชื่อ มีรายการระหว่างเอนติตี้ ใบเสร็จกับเอนติตี้ สินค้า

·       ในการออกใบเสร็จรับเงินจะมีพนักงานทั่วไปเป็นผู้ยืนยันการขายในแต่ละครั้งด้วยเสมอ  เป็นความสัมพันธ์ระหว่างเอนติตี้ พนักงานกับเอนติตี้ ใบเสร็จให้ความสัมพันธ์ชื่อ ออกเป็นแบบ 1:N ดังรูปที่ 5.36

 


 รูปที่ 5.36  ความสัมพันธ์ชื่อ ออกระหว่างเอนติตี้ พนักงานทั่วไปกับเอนติตี้ ใบเสร็จ

4.       นำองค์ประกอบต่าง ๆ ที่วิเคราะห์แล้วมารวมกันเป็นแผนภาพ E-R ดังรูปที่ 5.37



รูปที่ 5.37  ตัวอย่างแผนภาพ E-R ของระบบงานฐานข้อมูล


5.7  การแปลง E-R Diagram  ให้เป็นโครงสร้างตาราง(Relational Schema)

การเปลี่ยน E-R Diagram ให้เป็นโครงสร้างตารางเชิงสัมพันธ์แบ่งออกเป็น 4 กรณี ดังนี้
กรณีที่ แปลงเอนติตี้ปกติ(Regular Entity) 
กรณีที่ 2 แปลงเอนติตี้แบบอ่อนแอ  Weak Entity
กรณีที่ 3 แปลงความสัมพันธ์(Relationship) 

5.6.1      แปลงเอนติตี้ปกติ(Regular Entity)  ให้เป็น Relational Schema
ถ้า  เป็นเอนติตี้ปกติ(Regular Entity)  ประกอบด้วยแอททริบิวต์ { a1 , a2 , … , an}  สามารถแปลงเป็นรีเลชัน  1 รีเลชัน  ชื่อรีเลชันว่า  ประกอบด้วยแอททริบิวต์ของรีเลชัน  ซึ่ง 1 แอททริบิวต์  แทนด้วย 1 แอททริบิวต์ของเอนติตี้  หมายความว่า  ถ้า  เป็น เอนติตี้ปกติ(Regular Entity)  ที่มีแอททริบิวต์ แบบ Simple Attribute หรือ Atomic Attribute จำนวน n แอททริบิวต์ สามารถแปลงเป็นรีเลชันชื่อ  ที่ประกอบด้วยแอททริบิวต์  แอททริบิวต์



รูปที่ 5.39 การแปลง เอนติตี้ปกติ(Regular Entity)  ให้เป็น Relational Schema

ตัวอย่าง

 



รูปที่ 5.40ตัวอย่างการแปลงเอนติตี้ นักศึกษา”  ให้เป็น Relational Schema

*** ถ้าสมมุติ  คีย์หลักของเอนติตี้  คือ แอททริบิวต์  a1   ภายหลังจากที่แปลงเป็นรีเลชันแล้ว แอททริบิวต์  a1 ก็จะกลายเป็นคีย์หลักของรีเลชัน  ด้วย
·             เอนติตี้ที่ประกอบด้วย Composite Attribute
ถ้าในเอนติตี้ประกอบด้วย Composite Attribute  ให้แปลงแอททริบิวต์ที่เป็นแอททริบิวต์เป็นแอททริบิวต์แต่ละคอลัมน์ของรีเลชัน

 

รูปที่ 5.41 การแปลง เอนติตี้ปกติ(Regular Entity)  ที่มี Composite Attribute ให้เป็น Relational Schema
ตัวอย่าง





รูปที่ 5.42 การแปลง เอนติตี้ นักศึกษา”  ที่มี Composite Attribute ให้เป็น Relational Schema
·                เอนติตี้ที่ประกอบด้วย Multivalued Attribute
ถ้าในเอนติตี้ประกอบด้วย Multivalued Attribute  ในการแปลง จะได้รีเลชัน 2 รีชัน  คือ รีเลชันแรกเป็นรีเลชันที่เกิดจากการแปลงเอนติตี้ปกติและแอททริบิวต์ของเอนติตี้ ยกเว้นแอททริบิวต์ที่เป็น Multivalue Attribute  ส่วนรีเลชัน ที่ 2 ประกอบด้วย 2 แอททริบิวต์ คือ  คีย์หลักของเอนติตี้และแอททริบิวต์ที่เป็น Multivalued Attribute  ซึ่งทั้งสองแอททริ-บิวต์นี้จะทำหน้าที่เป็นคีย์หลักของรีเลชันใหม่  ส่วนคีย์นอก(foreign key) ของรีเลชันใหม่คือ แอททริบิวต์ที่เป็นคีย์หลักของเอนติตี้ที่ยกมาด้วย จะเชื่อมโยงไปยังรีเลชันแรก




รูปที่ 5.43 การแปลง เอนติตี้ปกติ(Regular Entity)  ที่มี Multivalued Attribute ให้เป็น Relational Schema

ตัวอย่าง

 




รูปที่ 5.44 การแปลง เอนติตี้ นักศึกษาที่มี Multivalued Attribute ให้เป็น Relational Schema


5.6.2  แปลง เอนติตี้แบบอ่อนแอ(Weak Entity) ให้เป็น Relational Schema
ในการแปลงเอนติตี้แบบอ่อนแอเป็น Relational Schema  ให้กำหนดแต่ละเอนติตี้แบบอ่อนเป็นแต่ละรีเลชันที่ประกอบด้วยแอททริบิวต์ของเอนติตี้แบบอ่อนแอ  โดยคีย์หลักของรีเลชันคือ คีย์หลักจากรีเลชันหลักที่มีความสัมพันธ์แบบเชิงระบุ(Identifying Relationship)กับเอนติตี้แบบอ่อนแอ  และแอททริบิวต์ที่เป็นส่วนประกอบของคีย์(Partial key)จากเอนติตี้แบบอ่อนแอประกอบกันเป็นคีย์หลักของรีเลชัน




                รูปที่ 5.45 การแปลง เอนติตี้แบบอ่อนแอ(Weak  Entity) ให้เป็น Relational Schema

ตัวอย่าง






รูปที่ 5.46 การแปลง เอนติตี้ ผลการทดสอบให้เป็น Relational Schema

5.6.3  แปลง ความสัมพันธ์(Relationship) ให้เป็น Relational Schema
·       การแปลงความสัมพันธ์แบบ 1 : 1
ในการแปลงความสัมพันธ์แบบ 1 : 1  ไม่จำเป็นต้องสร้างรีเลชันขึ้นใหม่   สามารถแปลงโดยใช้วิธีการดังนี้
-    ถ้าเป็นความสัมพันธ์แบบ Total participation หรือ Partial participation ทั้งสองฝั่ง  ให้นำเอาคีย์หลักของรีเลชันฝั่งใดฝั่งหนึ่งมาไว้ในรีเลชันอีกฝั่ง เพื่อทำหน้าที่เป็นคีย์นอกในการเชื่อมโยงรีเลชัน  ถ้ามีแอททริบิวต์บนความสัมพันธ์ให้ย้ายไปไว้ในรีเลชันฝั่งที่มีคีย์นอก 






รูปที่ 5.47 การแปลง ความสัมพันธ์แบบ 1 : 1 ให้เป็น Relational Schema

-          ถ้าเป็นความสัมพันธ์แบบฝั่งหนึ่งเป็น Total participation อีกฝั่ง เป็น Partial participation  ให้นำคีย์หลักฝั่งที่เป็น Partial participation มาไว้ที่ฝั่งที่เป็น Total participation ทำหน้าที่เป็นคีย์นอก  ถ้ามีแอททริบิวต์บนความสัมพันธ์ ให้นำมาไว้ฝั่งที่มีคีย์นอก






รูปที่ 5.48 การแปลง ความสัมพันธ์แบบ 1 : 1 ให้เป็น Relational Schema

ตัวอย่าง



รูปที่ 5.49 การแปลง ความสัมพันธ์บริหารแบบ 1 : 1 ระหว่างให้เป็น Relational Schema

·                         การแปลงความสัมพันธ์แบบ 1 : N
ในการแปลงความสัมพันธ์แบบ 1 : N  ไม่จำเป็นต้องสร้างรีเลชันขึ้นใหม่   สามารถแปลงโดยใช้วิธีการดังนี้
-                ถ้าเป็นความสัมพันธ์ที่มีดีกรีแบบ Binary Relationship ให้นำคีย์หลักฝั่งความสัมพันธ์ 1 ไปไว้ที่ฝั่งความสัมพันธ์ N ทำหน้าที่เป็นคีย์นอกของรีเลชัน  ถ้ามีแอททริบิวต์บนความสัมพันธ์ให้นำมาไว้ฝั่งที่มีคีย์นอก
 
รูปที่ 5.50 การแปลง ความสัมพันธ์ Binary  Degree แบบ 1 : N ให้เป็น Relational Schema

ตัวอย่าง




รูปที่ 5.51 การแปลง ความสัมพันธ์ สังกัด”  แบบ 1 : N ให้เป็น Relational Schema
-          ถ้าเป็นความสัมพันธ์ที่มีดีกรีแบบ Unary Relationship หรือ Recursive Relationship  ให้นำเอาคีย์หลักของรีเลชันมาสร้างเป็นคีย์นอกไว้ในรีเลชันรีเลชันเดิม    แต่ต้องเปลี่ยนชื่อแอททริบิวต์ที่เป็นคีย์นอกให้ต่างจากชื่อของแอท-ทริบิวต์ที่เป็นคีย์หลัก


 



รูปที่ 5.52 การแปลง ความสัมพันธ์ Unary  Degree  แบบ 1 : N  ให้เป็น Relational Schema

ตัวอย่าง

รูปที่ 5.53 การแปลง ความสัมพันธ์ ควบคุม”  แบบ 1 : N  ให้เป็น Relational Schema

·                         การแปลงความสัมพันธ์แบบ M : N
ต้องสร้างรีเลชันเพิ่มขี้นอีก 1 รีเลชัน  สามารถแปลงโดยใช้วิธีการดังนี้
ถ้าเป็นความสัมพันธ์แบบ Binary Relationship สร้างรีเลชันใหม่  โดยเอาคีย์หลักของทั้ง 2 รีเลชัน มารวมกันเป็นคีย์หลักของรีเลชันใหม่ที่สร้างขึ้น  ถ้าความสัมพันธ์มีแอททริบิวต์เกิดขึ้นบนความสัมพันธ์  ให้นำแอททริบิวต์นั้นมาใส่ไว้ในรีเลชันใหม่ที่สร้างขึ้นด้วย


                                         รูปที่ 5.54 การแปลง ความสัมพันธ์ Binary  Degree แบบ M : N ให้เป็น                                                                          Relational Schema



รูปที่ 5.55 การแปลง ความสัมพันธ์ ลงทะเบียนแบบ M : N ให้เป็น Relational Schema


ถ้าเป็นความสัมพันธ์แบบ Unary Relationship สร้างรีเลชันใหม่  โดยเอาคีย์หลักของรีเลชันเดิม  มารวมกันเป็นคีย์หลักของรีเลชันใหม่ที่สร้างขึ้น  โดยคีย์หลักตัวแรกใช้ชื่อเดิม  ส่วนอีกตัวให้เปลี่ยนชื่อใหม่ที่ไม่ซ้ำ

รูปที่ 5.56 การแปลง ความสัมพันธ์แบบ M : N แบบ Unary  Degree ให้เป็น Relational Schema

ตัวอย่าง

รูปที่ 5.57 การแปลง ความสัมพันธ์ บังคับเรียนก่อนแบบ M : N ให้เป็น Relational Schema


·                         การแปลงความสัมพันธ์แบบ N- ary Relationship
ในการแปลงความสัมพันธ์แบบ N-ary Relationship ให้สร้างรีเลชันใหม่ โดยนำเอาคีย์หลักของแต่ละเอนติตี้มารวมกันเป็นคีย์หลักของรีเลชันใหม่แต่ละแอททริบิวต์ทำหน้าที่เป็นคีย์นอกที่เชื่อมโยงรีชันใหม่ไปยังรีเลชันเดิม



รูปที่ 5.58 การแปลง ความสัมพันธ์ N-ary Relationship ให้เป็น Relational Schema

  
ตัวอย่าง


รูปที่ 5.59 การแปลง ความสัมพันธ์ ทำงานแบบ N-ary Relationship ให้เป็น Relational Schema

จากตัวอย่างในรูปที่ 6.38  แปลงเป็น Relational Schema ได้ 10 รีเลชัน ดังนี้
แผนก (รหัสแผนก , ชื่อแผนก , เบอร์ติดต่อ , รหัสพนักงาน , วันที่รับตำแหน่ง)
เบอร์โทรแผนก(รหัสแผนก , เบอร์โทรศัพท์)
พนักงาน (รหัสพนักงาน , คำนำชื่อ ,ชื่อหน้า , นามสกุล , ตำแหน่ง , เงินเดือน , วันเกิด , รหัสแผนก ,
   รหัสหัว หน้าสายงาน)
ลูกค้า (รหัสลูกค้า , ำนำชื่อ , ชื่อหน้า ,นามสกุล เลขที่ ,ถนน , อำเภอ , จังหวัด , รหัสไปรษณีย์, โทรศัพท์(มือถือ) , โทรศัพท์บ้าน , Email)
ผู้ผลิต (รหัสผู้ผลิต, ชื่อบริษัท , เลขที่ , ถนน , อำเภอ , จังหวัด , รหัสไปรษณีย์ , เบอร์โทรศัพท์ , EMail)
สินค้า (รหัสสินค้า , ชื่อสินค้า , ราคา , จำนวนคงเหลือ)
ใบสั่งซื้อ (หมายเลขใบสั่งซื้อ , วันที่สั่งซื้อ , รหัสผู้ผลิต)
รายการสั่งซื้อ (หมายเลขใบสั่งซื้อ , รหัสสินค้า , จำนวนที่สั่งซื้อ)
ใบเสร็จรับเงิน (หมายเลขใบเสร็จ , วันที่สั่งซื้อ , รหัสลูกค้า , รหัสพนักงาน)
รายการที่ซื้อ (หมายเลขใบเสร็จ , รหัสสินค้า , จำนวนที่สั่งซื้อ)


รูปที่ 5.60  Relational Schema Diagram

 5.8  พจนานุกรมข้อมูล(Data Dictionary)

ตารางที่ 6.2 ตัวอย่างพจนานุกรมข้อมูล(Data Dictionary)
Table Name
Attribute Name
Description
Data Type
Size/Format

Null

Key

Reference
Department
Dept_No
รหัสแผนก
CHAR
3
N
PK


Dept_Name
ชื่อแผนก
VARCHAR
20
N



Emp_NO
รหัสผู้จัดการแผนก
CHAR
5
Y
FK
Employee

Start_Date
วันที่รับตำแหน่ง
DATE
dd/mm/yyyy
Y


Dept_Phone
Dept_No
รหัสแผนก
CHAR
3
N
PK,FK
Department

Dept_Phone
เบอร์โทรศัพท์
CHAR
10
N
PK

Employee
Emp_NO
รหัสพนักงาน
CAHR
5
N
PK


Title
คำนำชื่อ
VARCHAR
10
Y



Emp_Fname
ชื่อ
VARCHAR
20
N



Emp_Lname
นามสกุล
VARCHAR
30
N



Position
ตำแหน่ง
VARCHAR
20
Y



Salary
เงินเดือน
DECIMAL
8,2
Y



Phone
เบอร์โทรศัพท์
CHAR
10
Y



Bdate
วันเกิด
DATE
dd/mm/yyy
Y



Dept_No
รหัสแผนกที่สังกัด
CHAR
3
Y
FK
Department

SEmp_NO
รหัสหัวหน้างาน
CHAR
5
Y
FK
Employee
Customer
Cus_NO
รหัสลูกค้า
CHAR
5
N
PK


Title
คำนำชื่อ
VARCHAR
10
Y



Cus_Fname
ชื่อ
VARCHAR
20
N



Cus_LName
นามสกุล
VARCHAR
30
N








ตารางที่ 6.2 ตัวอย่างพจนานุกรมข้อมูล(Data Dictionary) (ต่อ)
Table Name
Attribute Name
Description
Data Type
Size/Format

Null

Key

Reference
Customer
Address
บ้านเลขที่
VARCHAR
10
Y



Street
ถนน
VARCHAR
20
Y



City
อำเภอ/เมือง
VARCHAR
20
Y



Province
จังหวัด
VARCHAR
25
Y



Zipcode
รหัสไปรษณีย์
VARCHAR
15
Y



H_Phone
เบอร์โทรบ้าน
CHAR
10
Y



M_Phone
เบอร์มือถือ
CHAR
10
Y



EMail
อีเมลล์
VARCHAR
35
Y


Product
Prod_NO
รหัสสินค้า
CHAR
5
N
PK


Prod_Name
ชื่อสินค้า
VARCHAR
20
Y



Price
ราคา
DECIMAL
8,2
Y



P_On_Hand
จำนวนคงเหลือ
NUMBER

Y



Stock_Level
ระดับคงเหลือคลัง
NUMBER

Y


Receipt
Rec_NO
หมายเลขใบเสร็จ
NUMBER

N
PK


Rec_Date
วันที่ออก
DATE
dd/mm/yyyy
N



Cus_NO
รหัสลูกค้า
CHAR
5
Y
FK
Customer

Emp_NO
รหัสพนักงานผู้ออก
CHAR
5
Y
FK
Employee
Rec_Detail
Rec_NO
หมายเลขใบเสร็จ
NUMBER

N
PK,FK
Receipt

Prod_NO
รหัสสินค้า
CHAR
5
N
PK.FK
Product

QTY
จำนวนซื้อ
NUMBER

Y


 



ที่มา : อ.นราวิชญ์ คำหมั่น



ไม่มีความคิดเห็น:

แสดงความคิดเห็น