เมื่อเทคโนโลยีได้กลายเป็นปัจจัยที่ 5 ของการดำเนินชีวิต และการทำงานในแต่ละวันของเราไปแล้ว การเรียนรู้เทคโนโลยีใหม่ ๆ อยู่เสมอ จะช่วยให้เราสามารถปรับตัว และนำเทคโนโลยีมาใช้ให้เกิดประโยชน์สูงสุดในทุก ๆ ด้าน ทั้งประโยชน์ในการดำเนินชิวิตประจำวัน การทำงาน และการดำเนินธุรกิจ และจะทำให้เราไม่ตกเทรนด์ค่ะ หลาย ๆ บริษัท ได้นำเครื่องมือ…
ถ้าพูดถึงการทำ 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 วิชารองรับนักเรียนได้หลายคน