การสร้างแบบจำลอง ER คืออะไร? เรียนรู้ด้วยตัวอย่าง

⚡ สรุปอย่างชาญฉลาด

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

  • 🧩 มันคืออะไร: การสร้างแบบจำลอง ER เป็นแบบจำลองข้อมูลเชิงกราฟิกในระดับสูงที่กำหนดองค์ประกอบข้อมูลและความสัมพันธ์ระหว่างกัน
  • 🗂️ การก่อสร้างตึก: เอนทิตีแสดงถึงสิ่งต่างๆ ในโลกแห่งความเป็นจริง คุณลักษณะอธิบายถึงคุณสมบัติของเอนทิตี และความสัมพันธ์แสดงถึงวิธีการที่เอนทิตีเหล่านี้มีปฏิสัมพันธ์กัน
  • 🔗 จำนวนสมาชิก: ความสัมพันธ์อาจเป็นแบบหนึ่งต่อหนึ่ง หนึ่งต่อหลาย หรือหลายต่อหลาย โดยจะแก้ไขด้วยเอนทิตีเชื่อมโยง
  • 🚀 แบบจำลอง EER: โมเดล ER ที่ได้รับการปรับปรุงใช้สัญลักษณ์ UML และโครงสร้างเพิ่มเติมสำหรับฐานข้อมูลที่มีความซับซ้อนสูง
  • 🎬 กรณีศึกษา MyFlix: ตัวอย่างห้องสมุดวิดีโอแสดงแผนผังความสัมพันธ์ระหว่างสมาชิก ภาพยนตร์ หมวดหมู่ การเช่า และการชำระเงินในแผนภาพ ER
  • 🤖 ความช่วยเหลือจากเอไอ: เครื่องมือ AI และ GitHub Copilot แปลงคำอธิบายภาษาธรรมชาติให้เป็นแผนภาพ ER และสคีมา SQL

การสร้างแบบจำลอง ER

การสร้างแบบจำลอง ER คืออะไร?

แบบจำลองความสัมพันธ์เอนทิตี (ER Modeling) เป็นแนวทางการออกแบบฐานข้อมูลแบบกราฟิก เป็นแบบจำลองข้อมูลระดับสูงที่กำหนดองค์ประกอบข้อมูลและความสัมพันธ์สำหรับระบบซอฟต์แวร์ที่ระบุ แบบจำลอง ER ถูกใช้เพื่อแสดงวัตถุในโลกแห่งความเป็นจริง

เอนทิตี คือ สิ่งหรือวัตถุในโลกแห่งความเป็นจริงที่สามารถแยกแยะได้จากสภาพแวดล้อมโดยรอบ ตัวอย่างเช่น พนักงานแต่ละคนในองค์กรถือเป็นเอนทิตีที่แยกจากกัน ต่อไปนี้คือลักษณะสำคัญบางประการของเอนทิตี

  • เอนทิตีมีชุดของคุณสมบัติ
  • คุณสมบัติเอนทิตีสามารถมีค่าได้

ลองพิจารณาตัวอย่างแรกอีกครั้ง พนักงานขององค์กรถือเป็นหน่วยหนึ่ง หาก "ปีเตอร์" เป็นโปรแกรมเมอร์ (พนักงาน) ที่... Microsoftเขาสามารถมีคุณลักษณะ (คุณสมบัติ) เช่น ชื่อ อายุ น้ำหนัก ส่วนสูง เป็นต้น ซึ่งเห็นได้ชัดว่าคุณลักษณะเหล่านั้นมีค่าที่เกี่ยวข้องกับตัวเขา

แต่ละแอตทริบิวต์สามารถมีค่าได้ ในกรณีส่วนใหญ่ แอตทริบิวต์เดียวจะมีค่าเดียว แต่ก็เป็นไปได้ที่แอตทริบิวต์จะมีหลายค่าเช่นกัน ตัวอย่างเช่น อายุของปีเตอร์มีค่าเดียว แต่คุณสมบัติ "หมายเลขโทรศัพท์" ของเขาสามารถมีได้หลายค่า

เอนทิตีสามารถมีความสัมพันธ์ระหว่างกันได้ ลองพิจารณาตัวอย่างที่ง่ายที่สุด สมมติว่าแต่ละเอนทิตี Microsoft โปรแกรมเมอร์ได้รับคอมพิวเตอร์เครื่องหนึ่ง เห็นได้ชัดว่าคอมพิวเตอร์ของปีเตอร์ก็เป็นสิ่งที่มีอยู่เช่นกัน ปีเตอร์กำลังใช้คอมพิวเตอร์เครื่องนั้น และคอมพิวเตอร์เครื่องเดียวกันนี้ก็ถูกใช้โดยปีเตอร์ กล่าวอีกนัยหนึ่งคือ มีความสัมพันธ์ซึ่งกันและกันระหว่างปีเตอร์กับคอมพิวเตอร์ของเขา

ในการสร้างแบบจำลองความสัมพันธ์ระหว่างเอนทิตี เราจะสร้างแบบจำลองของเอนทิตี คุณลักษณะของเอนทิตี และความสัมพันธ์ระหว่างเอนทิตีต่างๆ

เหตุใดจึงต้องใช้แบบจำลอง ER?

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

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

แผนภาพ ER ยังช่วยเพิ่มประสิทธิภาพการทำงานของผู้ใช้ เนื่องจากสามารถแปลงเป็นตารางเชิงสัมพันธ์ได้อย่างง่ายดาย

แบบจำลองความสัมพันธ์เอนทิตีขั้นสูง (EER)

แบบจำลองความสัมพันธ์ระหว่างเอนทิตีขั้นสูง (Enhanced Entity Relationship Model: EER) เป็นแบบจำลองข้อมูลระดับสูงที่ต่อยอดจากแบบจำลองความสัมพันธ์ระหว่างเอนทิตี (Entity Relationship: ER) ดั้งเดิม แบบจำลอง EER รองรับการออกแบบที่มีรายละเอียดมากขึ้น การสร้างแบบจำลอง EER เกิดขึ้นมาเพื่อเป็นแนวทางแก้ไขปัญหาการสร้างแบบจำลองฐานข้อมูลที่มีความซับซ้อนสูง

EER ใช้สัญลักษณ์ UML UML เป็นตัวย่อของ ภาษาการสร้างแบบจำลองแบบรวม- มันเป็นภาษาการสร้างแบบจำลองวัตถุประสงค์ทั่วไปที่ใช้เมื่อออกแบบระบบเชิงวัตถุ เอนทิตีจะแสดงเป็นไดอะแกรมคลาส ความสัมพันธ์จะแสดงเป็นความสัมพันธ์ระหว่างเอนทิตี แผนภาพที่แสดงด้านล่างแสดงแผนภาพ ER โดยใช้ สัญกรณ์ UML.

แบบจำลองความสัมพันธ์เอนทิตีขั้นสูง (EER)

กรณีศึกษา: แผนภาพ ER สำหรับคลังวิดีโอ “MyFlix”

ต่อไปนี้เราจะมาทำงานกับระบบฐานข้อมูล MyFlix Video Library เพื่อช่วยให้เข้าใจแนวคิดของแผนภาพ ER มากขึ้น เราจะใช้ฐานข้อมูลนี้สำหรับการฝึกปฏิบัติทั้งหมดในบทเรียนนี้

MyFlix เป็นองค์กรธุรกิจที่ให้เช่าภาพยนตร์แก่สมาชิก MyFlix ได้จัดเก็บบันทึกด้วยตนเอง ขณะนี้ฝ่ายบริหารต้องการย้ายไปที่ DBMS.

เรามาดูขั้นตอนการสร้างแผนภาพ EER สำหรับฐานข้อมูลนี้กัน:

  1. ระบุเอนทิตีและกำหนดความสัมพันธ์ที่มีอยู่ระหว่างกัน
  2. แต่ละองค์ประกอบ คุณลักษณะ และความสัมพันธ์ ควรมีชื่อที่เหมาะสมซึ่งบุคคลทั่วไปที่ไม่ใช่ผู้เชี่ยวชาญด้านเทคนิคสามารถเข้าใจได้ง่ายเช่นกัน
  3. ความสัมพันธ์ไม่ควรเชื่อมโยงถึงกันโดยตรง ความสัมพันธ์ควรเชื่อมโยงเอนทิตี
  4. แต่ละแอตทริบิวต์ในเอนทิตีที่กำหนดควรมีชื่อไม่ซ้ำกัน

เอนทิตี้ในไลบรารี “MyFlix”

หน่วยงานที่จะรวมอยู่ในของเรา แผนภาพเอ้อ คือ:

  • สมาชิก – หน่วยงานนี้จะเก็บรักษาข้อมูลของสมาชิก
  • ภาพยนตร์ – ส่วนนี้จะเก็บข้อมูลเกี่ยวกับภาพยนตร์
  • หมวดหมู่ – ส่วนนี้จะเก็บข้อมูลที่จัดประเภทภาพยนตร์ออกเป็นหมวดหมู่ต่างๆ เช่น “ดราม่า”, “แอ็คชั่น” และ “มหากาพย์” เป็นต้น
  • บริการเช่าภาพยนตร์ – ส่วนนี้จะเก็บข้อมูลเกี่ยวกับภาพยนตร์ที่สมาชิกเช่าไป
  • การชำระเงิน – ส่วนนี้จะเก็บข้อมูลเกี่ยวกับการชำระเงินที่สมาชิกได้ทำการชำระ

การกำหนดความสัมพันธ์ระหว่างเอนทิตี

สมาชิกและภาพยนตร์

สิ่งต่อไปนี้ถือเป็นจริงเกี่ยวกับปฏิสัมพันธ์ระหว่างสองหน่วยงาน

  • สมาชิกสามารถเช่าภาพยนตร์ได้มากกว่าหนึ่งเรื่องในช่วงเวลาที่กำหนด
  • สมาชิกสามารถเช่าภาพยนตร์ได้มากกว่าหนึ่งคนในช่วงเวลาที่กำหนด

จากสถานการณ์ข้างต้น เราจะเห็นว่าลักษณะของความสัมพันธ์เป็นแบบหลายต่อหลาย (many-to-many) ฐานข้อมูลเชิงสัมพันธ์ไม่รองรับความสัมพันธ์แบบหลายต่อหลาย เราจึงจำเป็นต้องแนะนำเอนทิตีเชื่อมโยง ซึ่งเอนทิตี MovieRentals ก็ทำหน้าที่นี้ โดยมีความสัมพันธ์แบบหนึ่งต่อหลาย (one-to-many) กับตาราง Members และความสัมพันธ์แบบหนึ่งต่อหลายอีกความสัมพันธ์หนึ่งกับตาราง Movies

เอนทิตีภาพยนตร์และหมวดหมู่

สิ่งต่อไปนี้ถือเป็นจริงเกี่ยวกับภาพยนตร์และหมวดหมู่

  • ภาพยนตร์เรื่องหนึ่งสามารถจัดอยู่ในหมวดหมู่ได้เพียงหมวดหมู่เดียว แต่หมวดหมู่หนึ่งสามารถมีภาพยนตร์ได้มากกว่าหนึ่งเรื่อง

จากข้อมูลนี้ เราสามารถสรุปได้ว่า ความสัมพันธ์ระหว่างหมวดหมู่และตารางภาพยนตร์เป็นแบบหนึ่งต่อหลาย

สมาชิกและหน่วยงานการชำระเงิน

ต่อไปนี้เป็นข้อเท็จจริงเกี่ยวกับสมาชิกและการชำระเงิน

  • สมาชิกสามารถมีได้เพียงบัญชีเดียว แต่สามารถชำระเงินได้หลายรายการ

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

สร้างแบบจำลอง EER โดยใช้ MySQL ม้านั่งทำงานของช่างเครื่อง

In MySQL ม้านั่งทำงานของช่างเครื่องคลิกปุ่ม “+”

สร้างแบบจำลอง EER โดยใช้ MySQL ม้านั่งทำงานของช่างเครื่อง

Double คลิกที่ปุ่ม "เพิ่มแผนภาพ" เพื่อเปิดพื้นที่ทำงานสำหรับแผนภาพ ER

เพิ่มไดอะแกรมใน MySQL ม้านั่งทำงานของช่างเครื่อง

หน้าต่างต่อไปนี้จะปรากฏขึ้น

MySQL สภาพแวดล้อมการสร้างแบบจำลอง EER ของ Workbench

มาดูวัตถุสองชิ้นที่เราจะใช้งานกัน

  • วัตถุตาราง เครื่องมือโต๊ะ ช่วยให้เราสามารถสร้างเอนทิตีและกำหนดคุณลักษณะที่เกี่ยวข้องกับเอนทิตีนั้นๆ ได้
  • ความสัมพันธ์ของสถานที่ เครื่องมือความสัมพันธ์สถานที่ ปุ่มนี้ช่วยให้เราสามารถกำหนดความสัมพันธ์ระหว่างเอนทิตีต่างๆ ได้

เอนทิตีสมาชิกจะมีคุณลักษณะดังต่อไปนี้

  • หมายเลขสมาชิก
  • ชื่อเต็ม
  • เพศ
  • วันเดือนปีเกิด
  • ที่อยู่ทางกายภาพ
  • รหัสไปรษณีย์

ต่อไปเรามาสร้างตารางสมาชิกกัน

1. ลากวัตถุตารางจากแผงเครื่องมือ

2. ลากไปวางในพื้นที่ทำงาน จะมีเอนทิตีชื่อตาราง 1 ปรากฏขึ้น

3. Double คลิกที่ไอคอนนั้น หน้าต่างคุณสมบัติที่แสดงด้านล่างจะปรากฏขึ้น

คุณสมบัติของตารางสมาชิกใน MySQL ม้านั่งทำงานของช่างเครื่อง

ถัดไป

  1. เปลี่ยนตารางที่ 1 เป็น สมาชิก
  2. แก้ไขค่าเริ่มต้นของ idtable1 เป็น membership_number
  3. คลิกที่บรรทัดถัดไปเพื่อเพิ่มช่องข้อมูลถัดไป
  4. ทำเช่นเดียวกันกับแอตทริบิวต์ทั้งหมดที่ระบุไว้ในเอนทิตีสมาชิก

หน้าต่างคุณสมบัติของคุณควรมีลักษณะเช่นนี้

คุณลักษณะของเอนทิตีสมาชิกที่กำหนดไว้

ทำซ้ำขั้นตอนข้างต้นสำหรับเอนทิตีที่ระบุทั้งหมด

ตอนนี้พื้นที่ทำงานไดอะแกรมของคุณควรมีลักษณะเหมือนกับที่แสดงด้านล่าง

เอนทิตี MyFlix ในพื้นที่ทำงานไดอะแกรม

เรามาสร้างความสัมพันธ์ที่ดีระหว่างสมาชิกและบริการเช่าภาพยนตร์กันเถอะ

  1. เลือกความสัมพันธ์ของสถานที่โดยใช้เครื่องมือคอลัมน์ที่มีอยู่
  2. คลิกที่หมายเลขสมาชิกในตารางสมาชิก
  3. คลิกที่หมายเลขอ้างอิงในตาราง MovieRentals

สร้างความสัมพันธ์ระหว่างสมาชิกและ MovieRentals

ทำซ้ำขั้นตอนข้างต้นสำหรับความสัมพันธ์อื่นๆ แผนภาพ ER ของคุณควรมีลักษณะดังนี้ –

แผนภาพ MyFlix ER เสร็จสมบูรณ์แล้ว

คำถามที่พบบ่อย

แผนภาพ ER ใช้ส่วนประกอบหลักสามส่วน ได้แก่ เอนทิตี (แสดงด้วยรูปสี่เหลี่ยมผืนผ้า) แอตทริบิวต์ (แสดงด้วยรูปวงรี) และความสัมพันธ์ (แสดงด้วยรูปเพชร) แอตทริบิวต์ที่ขีดเส้นใต้แสดงถึงคีย์หลัก

ประเภทของแอตทริบิวต์ทั่วไป ได้แก่ แอตทริบิวต์แบบง่าย (อะตอมิก), แอตทริบิวต์แบบผสม (หารลงตัว), แอตทริบิวต์แบบคำนวณ (ได้มา), แอตทริบิวต์แบบหลายค่า (หลายค่า) และแอตทริบิวต์หลักที่ใช้ระบุตัวตนของเอนทิตี

คาร์ดินาลิตี้ (Cardinality) กำหนดว่าเอนทิตีหนึ่งมีความสัมพันธ์กับเอนทิตีอื่นกี่แบบ: หนึ่งต่อหนึ่ง หนึ่งต่อหลาย หรือหลายต่อหลาย เอนทิตีเชื่อมโยง (Junction entity) จะช่วยแก้ไขความสัมพันธ์แบบหลายต่อหลายที่ไม่รองรับ

เอนทิตีที่แข็งแกร่งจะมีคีย์หลักของตัวเองและเป็นอิสระ ในขณะที่เอนทิตีที่อ่อนแอจะไม่มีคีย์ที่สมบูรณ์และต้องพึ่งพาเอนทิตีที่เป็นเจ้าของ

สัญลักษณ์ Crow's Foot แสดงจำนวนสมาชิก โดยปลายเส้นจะคล้ายเท้าของนก ส่วนแท่งและวงกลมแสดงจำนวนสมาชิกที่มาก และจำนวนสมาชิกที่ไม่มากก็น้อย

แบบจำลอง ER คือแบบแผนภาพรวมระดับสูงของเอนทิตีและความสัมพันธ์ แบบจำลองเชิงสัมพันธ์นำไปใช้ในรูปแบบของตาราง แถว คอลัมน์ และคีย์ภายในระบบจัดการฐานข้อมูล (DBMS)

เครื่องมือ AI แปลงคำอธิบายภาษาธรรมชาติให้เป็นแผนภาพ ER แนะนำเอนทิตีและความสัมพันธ์ และสร้างสคีมา SQL นักออกแบบจะตรวจสอบและแก้ไขผลลัพธ์ก่อนนำไปใช้งาน

ใช่. นักบิน GitHub โปรแกรมนี้เสนอแนวคิดเกี่ยวกับเอนทิตี ความสัมพันธ์ และโครงสร้างตาราง พร้อมทั้งสร้างคำสั่ง SQL เพื่อใช้ในการสร้างโครงสร้างเหล่านั้น นอกจากนี้ยังสามารถร่างแผนภาพในรูปแบบโค้ด เช่น Mermaid ซึ่งแสดงผลออกมาเป็นแผนภาพ ER ได้อีกด้วย

สรุปโพสต์นี้ด้วย: