ER-Diagram คืออะไร?

ถ้าพูดถึงการทำ Web Application ในปัจจุบันแล้ว ไม่ว่าจะเป็นระบบใหญ่ ปานกลาง หรือแม้กระทั่งระบบเล็กๆ ทุกระบบล้วนมี Database ที่ไว้เก็บข้อมูลกันทั้งนั้น แต่ไม่ใช่ว่าอยู่ๆจะได้ Database นี้มาง่ายๆนะครับ จะต้องมีการเก็บความต้องการของผู้ใช้งานแล้วนำมาออกมาแบบมันอีกทีนึง ความยากง่ายก็แล้วแต่ระบบเลย ซึ่งสิ่งที่จะมาพูดถึงก็เรื่องการออกแบบ Database นี้ละครับ สำหรับวันนี้จะพามาให้รู้จัก Diagram ที่ใช้ออกแบบตัวนึงนั่นคือ ER-Diagram

 

ER-Diagram คืออะไร?

ER-Diagram หรือ Entity–relationship model (ER model) หรือที่นิยมเรียกสั้น ๆว่า E-R Model เป็น Diagram ที่จะช่วยอธิบายโครงสร้าง Database ของระบบต่างๆที่ออกแบบมา อธิบายความสัมพันธ์ (Relationship) ของแต่ละ Entity รวมถึง attributes ของ Entity นั้นๆ ถ้าอธิบายในมุมของ DBMS Entity คือ table และ attributes คือ field ที่อยู่ใน table นั่นเองครับ ผลการออกแบบโดยใช้ E-R Model สามารถแสดงได้ด้วยการเขียนแผนภาพที่เรียกว่า Entity Relationship  Diagram(ERD)  ซึ่งถือว่าเป็นเครื่องมือที่ใช้อธิบายองค์ประกอบและข้อกำหนดของฐานข้อมูล ที่นักวิเคราะห์และออกแบบระบบใช้เป็นสื่อกลางในการสื่อสารระหว่างผู้ใช้และนักพัฒนาโปรแกรม  เนื่องจากมีสัญลักษณ์ที่สื่อความหมายให้เข้าใจได้ง่าย ซึ่งในปัจจุบันมี Tool ที่สามารถแปลงจาก ER-Diagram กลายเป็น Database ได้ในภายหลังด้วย เป็นอะไรที่สะดวกมากเลยใช่ไหมล่ะ โดยจะมีองค์ประกอบหลักๆอยู่ 3 ส่วนคือ

  • Entity
  • Attribute
  • Relationship

 

Simple ER-Diagram

 

จากภาพ Diagram ด้านบนเป็นตัวอย่าง ER-Diagram แบบง่ายๆที่ยกมาให้เห็นภาพกันก่อน เป็นความสัมพันธ์ระหว่าง 2 Entity Student กับ Course โดยความสัมพันธ์ที่มีคือ  นักเรียน 1 คนสามารถลงเรียนได้ตั้งแต่ 1 ถึงหลายรายวิชา และใน 1 วิชารองรับนักเรียนได้หลายคนเป็นความสัมพันธ์แบบ Many-to-Many

 

Component of an ER-Diagram

ทีนี้เรามาทำความรู้จักองค์ประกอบต่างๆของ ER Diagram กัน

1. Entity

เอนติตี้(Entity) หมายถึง  กลุ่มของสิ่งต่าง ๆ ที่เราสนใจจะเก็บข้อมูลไว้ในฐานข้อมูล  ซึ่งอาจจะเป็น บุคคล  สถานที่  การกระทำ  หรือกิจกรรมต่าง ๆ ซึ่งสัญลักษณ์ที่ใช้ใน ERD คือสี่เหลี่ยมผืนผ้า ตัวอย่างของเอนติตี้ ได้แก่

  • เอนติตี้ที่เป็น บุคคล เช่น พนักงาน , นักศึกษา , อาจารย์ , แพทย์ , พยาบาล , ผู้ป่วย , นักบิน , พนักงานขับรถ   เป็นต้น
  • เอนติตี้ที่เป็น สถานที่ เช่น ประเทศ , จังหวัด , อำเภอ , น้ำตก , ภูเขา , โรงแรม , ห้องพัก , ห้องเช่า , ห้องเรียน เป็นต้น

สัญลักษณ์และตัวอย่าง Entity

 

2. Attribute

แอททริบิวต์(Attribute)  หมายถึง ลักษณะหรือคุณสมบัติที่นำมาอธิบาย Entity และ ความสัมพันธ์  ตัวอย่างของแอททริบิวต์ของ Entity ซึ่งสัญลักษณ์ที่ใช้ใน ERD คือวงรี สำหรับแอททริบิวต์ที่ถูกกำหนดให้ทำหน้าที่เป็นคีย์หลัก มีค่าได้เพียงค่าเดียวห้ามซ้ำกัน(primary key) ของ Entity ก็จะขีดเส้นทึบใต้ชื่อของแอททริบิวต์ เพื่อแสดงให้รู้ว่าเป็นคีย์หลัก เช่น

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

สัญลักษณ์และตัวอย่าง Attribute

 

3. Relationship

ความสัมพันธ์ (Relationship) หมายถึง  ความสัมพันธ์ระหว่าง Entity ต่าง ๆ  ซึ่งสัญลักษณ์ที่ใช้ใน ERD คือสี่เหลี่ยมผืนผ้า มีอยู่ด้วยกัน 4 แบบ

สัญลักษณ์และตัวอย่าง Relationship

  • One-to-One Relationship หรือ 1 : 1

เป็นการแสดงความสัมพันธ์ของจำนวนข้อมูลของ Entity A ว่า ข้อมูล 1 รายการ มีความสัมพันธ์กับข้อมูล Entity B ได้ไม่เกิน 1 รายการ ตัวอย่าง เช่น บุคคล 1 คน จะสามารถมี passport ได้ 1 ใบ และในขณะเดียวกัน passport 1 ใบมีข้อมูลได้แค่ 1   คนเท่านั้น

 

  • One-to-Many Relationship หรือ 1 : N

เป็นการแสดงความสัมพันธ์ของจำนวนข้อมูลของ Entity A ว่า ข้อมูล 1 รายการ มีความสัมพันธ์กับข้อมูล Entity B ได้มากกว่า 1 รายการ ตัวอย่างเช่น อาจารย์ 1 คน จะสามารถมีนักศึกษาที่ปรึกษาได้มากกว่า 1 คน และในขณะเดียวกัน นักศึกษาแต่ละคนต้องมีอาจารย์ที่ปรึกษาคนใดคนหนึ่งเท่านั้น

 

  • Many-to-One Relationship หรือ N : 1

เป็นการแสดงความสัมพันธ์ของจำนวนข้อมูลของ Entity A ว่า ข้อมูล 1 รายการ มีความสัมพันธ์กับข้อมูล Entity B ได้แค่ 1 รายการ ในขณะที่ข้อมูล Entity B  มีความสัมพันธ์กับ Entity A ได้มากกว่า 1 รายการ ตัวอย่างเช่น นักเรียน 1 คน จะสามารถเข้าเรียนที่โรงเรียนได้แค่ 1 โรงเรียนเท่านั้น แต่ในขณะเดียวกันโรงเรียน 1 โรงเรียนมีจำนวนนักเรียนได้หลายคน

 

  • Many-to-Many Relationship หรือ M : N

เป็นการแสดงความสัมพันธ์ของจำนวนข้อมูลของ Entity A ว่า ข้อมูล 1 รายการ มีความสัมพันธ์กับข้อมูลเอนติตี้ B ได้แค่หลายรายการ ในขณะที่ข้อมูล Entity B  มีความสัมพันธ์กับ Entity A ได้มากกว่า 1 รายการเช่นเดียว ตัวอย่างเช่น นักเรียน 1 คนสามารถลงเรียนได้หลายรายวิชา และใน 1 วิชารองรับนักเรียนได้หลายคน



Related Articles

See All Post
Loading