UML (1) — Entity Relationship Diagram

1. Structural vs Behavioral UML

Structural UML DiagramBehavioral UML Diagram
เครื่องมือออกแบบจำลอง เชิงโครงสร้าง — แสดงโครงสร้างและกระบวนการของระบบและความสัมพันธ์
  • ER Diagram — โครงสร้างและความสัมพันธ์ของข้อมูล
  • Class Diagram — คุณลักษณะ การดำเนินงานของคลาส และข้อจำกัด
เครื่องมือออกแบบจำลอง เชิงลักษณะการทำงาน
  • Use Case Diagram
  • Activity Diagram
  • Sequence Diagram
ข้อสังเกต: Sequence Diagram เป็น Behavioral ไม่ใช่ Structural — ส่วน ER และ Class เป็น Structural

2. ER Diagram คืออะไร

Entity Relationship Diagram (ER Diagram) = แผนภาพโครงสร้างและความสัมพันธ์ของข้อมูล (Database) อธิบายโครงสร้าง องค์ประกอบ และข้อกำหนดของฐานข้อมูลของระบบที่ออกแบบ ใช้เป็น สื่อกลางในการสื่อสารระหว่างผู้ใช้และนักพัฒนาโปรแกรม เพราะสัญลักษณ์เข้าใจง่าย

องค์ประกอบหลัก 3 อย่าง: 1. Entity   2. Attribute   3. Relationship

3. สัญลักษณ์ ER-Diagram

Entity สี่เหลี่ยมผืนผ้า Attribute วงรี Relationship สี่เหลี่ยมข้าวหลามตัด student_id Primary key (ขีดเส้นใต้) phone Multi Value (วงรีซ้อน) age Derived (วงรีเส้นประ)
สัญลักษณ์หลักของ ER-Diagram

Entity (เอนทิตี)

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

Attribute (แอททริบิวท์)

ลักษณะหรือคุณสมบัติที่อธิบาย Entity และความสัมพันธ์ — สัญลักษณ์คือ วงรี
ตัวอย่าง Attribute ของ Entity "นักศึกษา": รหัสนักศึกษา, คำนำหน้าชื่อ, ชื่อ, นามสกุล, วันเกิด, คณะที่เรียน, เกรดเฉลี่ยสะสม

ชนิด Attributeความหมายตัวอย่าง
Attribute (ปกติ)ค่าเดียว ไม่แตกย่อยชื่อ
Primary key Attributeระบุแต่ละ record ได้ไม่ซ้ำ (ขีดเส้นใต้)รหัสนักศึกษา
Multi Value Attributeมีได้หลายค่า (วงรีซ้อน)เบอร์โทรศัพท์หลายเบอร์
Composite Attributeแตกย่อยเป็นหลาย attribute ได้ชื่อเต็ม = คำนำหน้า + ชื่อ + นามสกุล
Derived Attributeคำนวณได้จาก attribute อื่น (วงรีเส้นประ)อายุ คำนวณจากวันเกิด

Key

Relationship (ความสัมพันธ์)

ความสัมพันธ์ระหว่าง Entity — สัญลักษณ์คือ สี่เหลี่ยมข้าวหลามตัด
เอนทิตีหนึ่ง มีความสัมพันธ์ได้มากกว่าหนึ่ง และเอนทิตี มีความสัมพันธ์กับตัวเองได้ (Recursive) เช่น พนักงาน "Lead" พนักงาน

4. รูปแบบความสัมพันธ์ 3 แบบ

พนักงาน ใช้ ล็อกเกอร์ 1 1 One-to-One (1:1) ลูกค้า สั่งซื้อ ใบสั่งซื้อ 1 N One-to-Many (1:N) นักศึกษา ลงทะเบียน วิชา M N Many-to-Many (M:N)
ความสัมพันธ์ 3 แบบหลักใน ER-Diagram
แบบเขียนว่าความหมาย
One-to-One1 : 1ข้อมูล 1 รายการของ Entity A สัมพันธ์กับข้อมูลของ Entity B ได้ 1 รายการเท่านั้น
One-to-Many1 : N หรือ 1 : Mข้อมูล 1 รายการของ A สัมพันธ์กับข้อมูลของ B ได้ มากกว่า 1 รายการ
Many-to-ManyM : N หรือ M : Mข้อมูลหลายรายการของ A สัมพันธ์กับข้อมูลของ B หลายรายการ และ B ก็สัมพันธ์กับ A ได้หลายรายการเช่นกัน

5. แปลง ER-Diagram เป็นตาราง

ตัวอย่าง: นักศึกษา (M) — ลงทะเบียน — (N) วิชา

ความสัมพันธ์ M:N ต้องแตกเป็น ตารางกลาง ที่เก็บ Foreign key ของทั้งสองฝั่ง และใช้คู่ FK เป็น Composite key

Student    (student_id PK, first_name, last_name, faculty, gpa)
Course     (course_id PK, course_name, credit)
Enrollment (student_id PK FK, course_id PK FK, semester, grade)

ส่วนความสัมพันธ์ 1:N เช่น ลูกค้า — ใบสั่งซื้อ: ใส่ FK ไว้ที่ฝั่ง N

Customer (customer_id PK, name, phone)
Orders   (order_id PK, order_date, customer_id FK)
กฎแปลง: 1:1 ใส่ FK ฝั่งใดฝั่งหนึ่ง / 1:N ใส่ FK ฝั่ง N / M:N สร้างตารางกลาง

โจทย์ฝึก (Activity #2 จากสไลด์): ระบบยิม

สมาชิกจองคลาสออกกำลังกาย (body pump, body combat, yoga) แต่ละคลาสต้องมีเทรนเนอร์นำ สมาชิกเข้าร่วมตามตารางเวลาและห้องกิจกรรมที่กำหนด

Member   (member_id PK, name, phone)
Trainer  (trainer_id PK, name, specialty)
Room     (room_id PK, room_name, capacity)
Class    (class_id PK, class_name, schedule_time, trainer_id FK, room_id FK)
Booking  (member_id PK FK, class_id PK FK, booking_date)

Trainer 1 : N Class      (เทรนเนอร์หนึ่งคนสอนได้หลายคลาส)
Room    1 : N Class      (ห้องหนึ่งใช้ได้หลายคลาส)
Member  M : N Class      ผ่านตาราง Booking