ระบบจัดการฐานข้อมูล 03/12/2010
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) ที่เหมาะสม
องค์ประกอบของ E – R Model E – R Model เป็นการออกแบบในระดับแนวคิด(Conceptual Design) ในลักษณะจากบนลงล่าง(Top-Down Strategy) โดยผลจากการออกแบบฐานข้อมูล จะได้เค้าร่างในระดับแนวคิดที่ประกอบด้วย
- เอนติตี้ที่ควรจะมีในระบบ(Entity)
- ความสัมพันธ์ระหว่างเอนติตี้ว่าเป็นอย่างไร(Relationship)
- แอททริบิวต์ซึ่งเป็นรายละเอียดที่อธิบายเอนติตี้ และมีความสัมพันธ์กันอย่างไรบ้าง(Attribute)
เอนติตี้(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 คือสี่เหลี่ยมผืนผ้าแทนแต่ละเอนติตี้ ภายในบรรจุชื่อของเอนติตี้นั้น ๆ
รูปที่ 6.1 สัญลักษณ์และตัวอย่างของเอนติตี้แบบปกติ
แอททริบิวต์(Attribute)
แอททริบิวต์(Attribute) หมายถึง ลักษณะหรือคุณสมบัติที่นำมาอธิบายเอนติตี้ และ ความสัมพันธ์ ตัวอย่างของแอททริบิวต์ของเอนติตี้ เช่น
แอททริบิวต์ของเอนติตี้ “นักศึกษา” ได้แก่ รหัสนักศึกษา , คำนำหน้าชื่อ , ชื่อ , นามสกุล , วันเกิด , โปรแกรมวิชาที่สังกัด , เกรดเฉลี่ยสะสม
แอททริบิวต์ของเอนติตี้ “ผู้ป่วย” ได้แก่ รหัสผู้ป่วย , ชื่อ , นามสกุล , สถานภาพ , วันที่เข้ารักษาครั้งแรก , ที่อยู่ , โทรศัพท์
แอททริบิวต์ของเอนติตี้ “สินค้า” ได้แก่ รหัสสินค้า , ชื่อสินค้า , ราคา/หน่วย , จำนวนคงเหลือ
แอททริบิวต์ของเอนติตี้ “วิชาเรียน” ได้แก่ รหัสวิชา , ชื่อวิชา , จำนวนหน่วยกิต
ประเภทของแอททริบิวต์แบ่งออกได้ดังนี้
- Simple Attribute หรือ Atomic Attribute หมายถึง แอททริบิวต์ที่ไม่สามารถแยกข้อมูลออกเป็นข้อมูลย่อย ๆ ได้อีก ตัวอย่างเช่น “รหัสนักศึกษา” , “เงินเดือน” ไม่สามารถแยกออกเป็นข้อมูลอื่น ได้อีก สัญลักษณ์ที่ใช้คือ วงรีเส้นขอบเส้นเดี่ยว มีชื่อแอททริบิวต์บรรจุอยู่ภายใน ดังรูปที่ 6.2
รูปที่ 6.2 สัญลักษณ์และตัวอย่างของแอททริบิวต์แบบ Simple attribute
- Composite Attribute หมายถึง หมายถึง แอททริบิวต์ที่สามารถแบ่งออกเป็นแอททริบิวต์ย่อย ๆ ได้อีก เช่น แอททริบิวต์ “ที่อยู่” สามารถแบ่งออกเป็นแอททริบิวต์ย่อยได้เป็น บ้านเลขที่ , ถนน , ตำบล , อำเภอ , จังหวัด เป็นต้น สัญลักษณ์ที่ใช้แสดง Composite Attribute คือวงรีเส้นขอบเส้นเดี่ยว แต่มีวงรีย่อยมาเชื่อมต่อด้วย ดังรูปที่ 6.3
รูปที่ 6.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 คือวงรีที่มีเส้นขอบเป็นเส้นคู่ บรรจุชื่อ แอททริ บิวต์ภายใน ดังรูปที่ 6.4
รูปที่ 6.4 สัญลักษณ์และตัวอย่างของแอททริบิวต์แบบ Multivalued attribute
- Derived Attribute หมายถึง แอททริบิวต์ที่มีค่าของแอททริบิวต์ประกอบมาจากค่าของแอททริบิวต์อื่นหรือจากเอนติตี้ เช่น แอททริบิวต์ “อายุ” เกิดจาก การนำเอาค่าจากแอททริบิวต์ “วันเกิด” มาลบกับวันเดือนปีปัจจุบัน ก็จะได้ค่าอายุ สัญลักษณ์ที่แสดง Derived Attribute เป็นวงรีที่มีเส้นขอบเป็นเส้นประ มีชื่อแอททริบิวต์บรรจุภายใน ดังรูปที่ 6.5
รูปที่ 6.5 สัญลักษณ์และตัวอย่างของแอททริบิวต์แบบ Derived attribute
รูปที่ 6.6 ตัวอย่างการแสดงเอนติตี้ “พนักงาน” และแอททริบิวต์ของเอนติตี้
ความสัมพันธ์(Relationship)
ความสัมพันธ์(Relationship) หมายถึง ความสัมพันธ์ระหว่างเอนติตี้ต่าง ๆ ตัวอย่างเช่น เราสามารถกำหนดความสัมพันธ์ให้กับอาจารย์ “พนารัตน์” กับนักศึกษา “วนิดา” ให้มีความสัมพันธ์กันโดยอาจารย์ “พนารัตน์” เป็นอาจารย์ที่ปรึกษาของนักศึกษา “วนิดา”
กลุ่มความสัมพันธ์(Relationship set) คือ กลุ่มของความสัมพันธ์ระหว่างกลุ่มของเอนติตี้(Entity type) พิจารณาตัวอย่างความสัมพันธ์ระหว่างอาจารย์กับนักศึกษาที่มีความสัมพันธ์เป็นอาจารย์ที่ปรึกษา ดังรูปที่ 6.7
รูปที่ 6.7 กลุ่มความสัมพันธ์ “เป็นที่ปรึกษา”
สัญลักษณ์ที่ใช้แสดงความสัมพันธ์ใน ERD คือ สี่เหลี่ยมขนมเปียกปูน มีชื่อที่แสดงความสัมพันธ์อยู่ภายใน ดังรูปที่ 6.8
รูปที่ 6.8 ตัวอย่างความสัมพันธ์ระหว่างเอนติตี้
เอนติตี้อ่อนแอ(Weak Entity)
เอนติตี้อ่อนแอ หมายถึง เอนติตี้ที่ไม่สามารถมีแอททริบิวต์ที่นำมากำหนดเป็นคีย์หลัก(Primary key)ของตัวเองได้ ซึ่งแตกต่างจากเอนติตี้ปกติ(Regular Entity) ที่สามารถกำหนดคีย์หลักของเอนติตี้ตัวเองได้
เอนติตี้แบบอ่อนนี้จะคงอยู่หรือมีตัวตนได้ต้องอาศัยการเชื่อมโยงข้อมูลบางส่วนจากเอนติตี้อื่น กล่าวได้ว่า เอนติตี้อ่อนแอมี “การขึ้นต่อกันเชิงปรากฏ(Existence dependency)”กับเอนติตี้ที่เป็นเจ้าของ(Owner Entity) ความสัมพันธ์นี้เรียกว่า “ความสัมพันธ์เชิงระบุ(Identifying relationship)” หมายถึง สมาชิกของเอนติตี้เจ้าของ 1 รายการ สามารถระบุสมาชิกของเอนติตี้อ่อนแอ 1 รายการหรือหลายรายการได้ การกำหนดคีย์หลักของเอนติตี้อ่อนแอ ต้องอาศัยข้อมูลจากแอททริบิวต์ของเอนติตี้ที่สัมพันธ์กัน(Owner Entity)มาประกอบแอททริบิวต์ของเอนติตี้อ่อนแอเป็นคีย์หลัก
พิจารณาความสัมพันธ์ “มีผลการทดสอบ” ระหว่าง “นักศึกษา” และ “ผลการทดสอบ” ดังรูปที่ 6.9 จะสังเกตว่า ข้อมูล ”ครั้งที่” ของ”ผลการทดสอบ” จะมีข้อมูลที่ซ้ำกันบางรายการทำให้ไม่สามารถกำหนดคีย์หลักของเอนติตี้ได้ มีลักษณะเป็น เอนติตี้อ่อนแอ แต่ถ้านำข้อมูลของ “นักศึกษา” มาพิจารณาประกอบจะพบว่า ”ครั้งที่” ของการสอบแต่ละรายการก็จะสามารถระบุได้ว่าเป็นผลการสอบของนักศึกษาคนใด เรียก “ครั้งที่” ว่าเป็นตัวแยก(Discriminator) ซึ่งจะนำแอททริบิวต์ที่เป็นตัวแยกนี้มาประกอบกับแอททริบิวต์ของเอนติตี้เจ้าของเป็นตัวระบุรายการข้อมูลที่แตกต่างกันแต่ละรายการ สามารถเรียกตัวแยกนี้ว่าเป็น ส่วนประกอบของคีย์(Partial key)
สัญลักษณ์ที่ใช้แสดงเอนติตี้อ่อนแอใน ERD คือ สี่เหลี่ยมผืนผ้าที่มีเส้นขอบเป็นเส้นทึบคู่ มีชื่อเอนติตี้อยู่ภายใน ดังรูปที่ 6.10 แอททริบิวต์ที่เป็นส่วนประกอบของคีย์(Partial key) จะขีดเส้นประใต้ชื่อแอททริบิวต์
_clip_image001_0006.gif)
รูปที่ 6.9 กลุ่มความสัมพันธ์ “มีผลการทดสอบ”
รูปที่ 6.10 ตัวอย่างความสัมพันธ์ระหว่างเอนติตี้อ่อนแอและเอนติตี้ปกติ
ข้อกำหนด(Constraints)
ดีกรีของความสัมพันธ์(Degree of Relationship)
ดีกรีของความสัมพันธ์ หมายถึง จำนวนของเอนติตี้ที่มาสัมพันธ์กันในความสัมพันธ์หนึ่งๆ ซึ่งแบ่งออกได้ดังนี้
- ความสัมพันธ์กับเอนติตี้ตนเอง(Unary Relationship หรือ Recursive Relationship)
เป็นความสัมพันธ์ระหว่างเอนติตี้ภายในเอนติตี้เดียวกัน เช่น ความสัมพันธ์ชื่อ “บังคับเรียนก่อน” ซึ่งเป็นความสัมพันธ์ระหว่าง เอนติตี้ “วิชาเรียน” กับเอนติตี้ “วิชาเรียน” ด้วยกันเอง กล่าวคือ วิชาเรียนบางวิชาบังคับให้ต้องเรียนบางวิชาก่อนจึงจะสามารถเรียนวิชาดังกล่าวได้แสดงได้ดังรูปที่ 6.11
รูปที่ 6.11 ตัวอย่างความสัมพันธ์ระหว่างเอนติตี้แบบ Unary Relationship
- ความสัมพันธ์ระหว่างสองเอนติตี้(Binary Relationship)
เป็นความสัมพันธ์ระหว่างเอนติตี้ 2 เอนติตี้ เช่น
- ความสัมพันธ์ที่ชื่อ “สอน” ระหว่างเอนติตี้ “นักศึกษา” กับเอนติตี้ “อาจารย์”
- ความสัมพันธ์ที่ชื่อ “ลงทะเบียน” ระหว่างเอนติตี้ “นักศึกษา” กับเอนติตี้ “วิชาเรียน”
- ความสัมพันธ์ที่ชื่อ “สั่งซื้อ” ระหว่างเอนติตี้ “ลูกค้า” กับเอนติตี้ “สินค้า”
แสดงสัญลักษณ์ใน ERD ดังรูปที่ 6.12
รูปที่ 6.12 ตัวอย่างความสัมพันธ์ระหว่างเอนติตี้แบบ Binary Relationship
- ความสัมพันธ์ระหว่างเอนติตี้มากกว่าสองเอนติตี้(N-ary Relationship)
เป็นความสัมพันธ์ระหว่างเอนติตี้ตั้งแต่ 3 เอนติตี้ขึ้นไป โดย N หมายถึง จำนวนเอนติตี้ที่มาสัมพันธ์กับความสัมพันธ์หนึ่ง ตัวอย่างเช่น ถ้ามีเอนติตี้มีความสัมพันธ์กันในความสัมพันธ์หนึ่งใด 3 เอนติตี้ จะเรียกว่า Ternary Relationship , ถ้ามี 4 เอนติตี้มาสัมพันธ์กัน เรียกว่า Quaternary Relationship ตัวอย่าง N – ary Relationship ดังรูปที่ 6.13
รูปที่ 6.13 ตัวอย่างความสัมพันธ์ระหว่างเอนติตี้แบบ N-ary Relationship
- สัดส่วนจำนวนข้อมูลระหว่างเอนติตี้ที่สัมพันธ์กัน(Cardinality Ratio)
สัดส่วนจำนวนข้อมูลระหว่างเอนติตี้ที่มาสัมพันธ์กันในความสัมพันธ์ใดความสัมพันธ์หนึ่ง สามารถแบ่งออกได้ ดังนี้
- ความสัมพันธ์แบบหนึ่งต่อหนึ่ง(One-to-One Relationship หรือ 1 : 1)
เป็นการแสดงความสัมพันธ์ของจำนวนข้อมูลของเอนติตี้ A ว่า ข้อมูล 1 รายการ มีความสัมพันธ์กับข้อมูลเอนติตี้ B ได้ไม่เกิน 1 รายการ ตัวอย่างเช่น มีเอนติตี้ 2 เอนติตี้ คือ “อาจารย์” และ “คณะวิชา” สัมพันธ์กันด้วยความสัมพันธ์ชื่อ “บริหาร” แบบ 1 : 1 หมายถึง อาจารย์ 1 คน จะสามารถเป็นคณบดีได้ 1 แผนก และในขณะเดียวกัน คณะวิชาแต่ละคณะ ก็มีอาจารย์ที่ทำหน้าที่เป็นคณบดีได้เพียง 1 คนเท่านั้น สามารถแสดงความสัมพันธ์ ได้ดังรูปที่ 6.14
รูปที่ 6.14 ความสัมพันธ์ระหว่างเอนติตี้แบบ One-to-One Relationship
- ความสัมพันธ์แบบหนึ่งต่อกลุ่ม(One-to-Many Relationship หรือ 1 : N)
เป็นการแสดงความสัมพันธ์ของจำนวนข้อมูลของเอนติตี้ A ว่า ข้อมูล 1 รายการ มีความสัมพันธ์กับข้อมูลเอนติตี้ B ได้มากกว่า 1 รายการ ตัวอย่างเช่น มีเอนติตี้ 2 เอนติตี้ คือ “อาจารย์” และ “นักศึกษา” สัมพันธ์กันด้วยความสัมพันธ์ชื่อ “เป็นที่ปรึกษา” แบบ 1 : N หมายถึง อาจารย์ 1 คน จะสามารถมีนักศึกษาที่ปรึกษาได้มากกว่า 1 คน และในขณะเดียวกัน นักศึกษาแต่ละคนต้องมีอาจารย์ที่ปรึกษาคนใดคนหนึ่งเท่านั้น สามารถแสดงความสัมพันธ์ ได้ดังรูป ที่ 6.15
รูปที่ 6.15 ความสัมพันธ์ระหว่างเอนติตี้แบบ One-to-Many Relationship