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

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

Attribute

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

Relationship

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

สัญลักษณ์และตัวอย่าง 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 วิชารองรับนักเรียนได้หลายคน