ภัยคุกคามทางไซเบอร์ในโรงพยาบาลเพิ่มขึ้นอย่างรวดเร็ว! และเป็นที่น่าตกใจเมื่อหลายโรงพยาบาลในไทยถูกโจรกรรมข้อมูลในระยะเวลาใกล้เคียงกัน ซึ่งไม่เพียงแต่จะกระทบต่อความปลอดภัยของระบบและข้อมูลเท่านั้น แต่ยังส่งผลทำให้โรงพยาบาลได้รับความเสียหาย การให้บริการคนไข้ล่าช้า ค้นหาประวัติเก่าไม่ได้ ผู้ป่วยนับพันล้นโรงพยาบาล และยังกระทบต่อความปลอดภัยของผู้ป่วยอีกด้วย ทำไมโรงพยาบาล จึงตกเป็นเป้าหมายของการโจมตี? แฮกเกอร์สามารถขายข้อมูลทางการแพทย์ และการเรียกเงินค่าไถ่จากผู้ป่วยได้อย่างรวดเร็วบน Dark web ด้วยความสามารถของ Ransomware ในการล็อคข้อมูลการรักษาพยาบาลของผู้ป่วย และระบบการให้บริการผู้ป่วย ทำให้ระบบใช้งานไม่ได้…

ถ้าพูดถึงการทำ 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 วิชารองรับนักเรียนได้หลายคน