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

การสร้างแบบจำลอง 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.
กรณีศึกษา: แผนภาพ ER สำหรับคลังวิดีโอ “MyFlix”
ต่อไปนี้เราจะมาทำงานกับระบบฐานข้อมูล MyFlix Video Library เพื่อช่วยให้เข้าใจแนวคิดของแผนภาพ ER มากขึ้น เราจะใช้ฐานข้อมูลนี้สำหรับการฝึกปฏิบัติทั้งหมดในบทเรียนนี้
MyFlix เป็นองค์กรธุรกิจที่ให้เช่าภาพยนตร์แก่สมาชิก MyFlix ได้จัดเก็บบันทึกด้วยตนเอง ขณะนี้ฝ่ายบริหารต้องการย้ายไปที่ DBMS.
เรามาดูขั้นตอนการสร้างแผนภาพ EER สำหรับฐานข้อมูลนี้กัน:
- ระบุเอนทิตีและกำหนดความสัมพันธ์ที่มีอยู่ระหว่างกัน
- แต่ละองค์ประกอบ คุณลักษณะ และความสัมพันธ์ ควรมีชื่อที่เหมาะสมซึ่งบุคคลทั่วไปที่ไม่ใช่ผู้เชี่ยวชาญด้านเทคนิคสามารถเข้าใจได้ง่ายเช่นกัน
- ความสัมพันธ์ไม่ควรเชื่อมโยงถึงกันโดยตรง ความสัมพันธ์ควรเชื่อมโยงเอนทิตี
- แต่ละแอตทริบิวต์ในเอนทิตีที่กำหนดควรมีชื่อไม่ซ้ำกัน
เอนทิตี้ในไลบรารี “MyFlix”
หน่วยงานที่จะรวมอยู่ในของเรา แผนภาพเอ้อ คือ:
- สมาชิก – หน่วยงานนี้จะเก็บรักษาข้อมูลของสมาชิก
- ภาพยนตร์ – ส่วนนี้จะเก็บข้อมูลเกี่ยวกับภาพยนตร์
- หมวดหมู่ – ส่วนนี้จะเก็บข้อมูลที่จัดประเภทภาพยนตร์ออกเป็นหมวดหมู่ต่างๆ เช่น “ดราม่า”, “แอ็คชั่น” และ “มหากาพย์” เป็นต้น
- บริการเช่าภาพยนตร์ – ส่วนนี้จะเก็บข้อมูลเกี่ยวกับภาพยนตร์ที่สมาชิกเช่าไป
- การชำระเงิน – ส่วนนี้จะเก็บข้อมูลเกี่ยวกับการชำระเงินที่สมาชิกได้ทำการชำระ
การกำหนดความสัมพันธ์ระหว่างเอนทิตี
สมาชิกและภาพยนตร์
สิ่งต่อไปนี้ถือเป็นจริงเกี่ยวกับปฏิสัมพันธ์ระหว่างสองหน่วยงาน
- สมาชิกสามารถเช่าภาพยนตร์ได้มากกว่าหนึ่งเรื่องในช่วงเวลาที่กำหนด
- สมาชิกสามารถเช่าภาพยนตร์ได้มากกว่าหนึ่งคนในช่วงเวลาที่กำหนด
จากสถานการณ์ข้างต้น เราจะเห็นว่าลักษณะของความสัมพันธ์เป็นแบบหลายต่อหลาย (many-to-many) ฐานข้อมูลเชิงสัมพันธ์ไม่รองรับความสัมพันธ์แบบหลายต่อหลาย เราจึงจำเป็นต้องแนะนำเอนทิตีเชื่อมโยง ซึ่งเอนทิตี MovieRentals ก็ทำหน้าที่นี้ โดยมีความสัมพันธ์แบบหนึ่งต่อหลาย (one-to-many) กับตาราง Members และความสัมพันธ์แบบหนึ่งต่อหลายอีกความสัมพันธ์หนึ่งกับตาราง Movies
เอนทิตีภาพยนตร์และหมวดหมู่
สิ่งต่อไปนี้ถือเป็นจริงเกี่ยวกับภาพยนตร์และหมวดหมู่
- ภาพยนตร์เรื่องหนึ่งสามารถจัดอยู่ในหมวดหมู่ได้เพียงหมวดหมู่เดียว แต่หมวดหมู่หนึ่งสามารถมีภาพยนตร์ได้มากกว่าหนึ่งเรื่อง
จากข้อมูลนี้ เราสามารถสรุปได้ว่า ความสัมพันธ์ระหว่างหมวดหมู่และตารางภาพยนตร์เป็นแบบหนึ่งต่อหลาย
สมาชิกและหน่วยงานการชำระเงิน
ต่อไปนี้เป็นข้อเท็จจริงเกี่ยวกับสมาชิกและการชำระเงิน
- สมาชิกสามารถมีได้เพียงบัญชีเดียว แต่สามารถชำระเงินได้หลายรายการ
จากข้อมูลนี้ เราสามารถสรุปได้ว่าลักษณะความสัมพันธ์ระหว่างสมาชิกและหน่วยงานที่ชำระเงินเป็นแบบหนึ่งต่อหลาย
สร้างแบบจำลอง EER โดยใช้ MySQL ม้านั่งทำงานของช่างเครื่อง
In MySQL ม้านั่งทำงานของช่างเครื่องคลิกปุ่ม “+”
Double คลิกที่ปุ่ม "เพิ่มแผนภาพ" เพื่อเปิดพื้นที่ทำงานสำหรับแผนภาพ ER
หน้าต่างต่อไปนี้จะปรากฏขึ้น
มาดูวัตถุสองชิ้นที่เราจะใช้งานกัน
- วัตถุตาราง
ช่วยให้เราสามารถสร้างเอนทิตีและกำหนดคุณลักษณะที่เกี่ยวข้องกับเอนทิตีนั้นๆ ได้
- ความสัมพันธ์ของสถานที่
ปุ่มนี้ช่วยให้เราสามารถกำหนดความสัมพันธ์ระหว่างเอนทิตีต่างๆ ได้
เอนทิตีสมาชิกจะมีคุณลักษณะดังต่อไปนี้
- หมายเลขสมาชิก
- ชื่อเต็ม
- เพศ
- วันเดือนปีเกิด
- ที่อยู่ทางกายภาพ
- รหัสไปรษณีย์
ต่อไปเรามาสร้างตารางสมาชิกกัน
1. ลากวัตถุตารางจากแผงเครื่องมือ
2. ลากไปวางในพื้นที่ทำงาน จะมีเอนทิตีชื่อตาราง 1 ปรากฏขึ้น
3. Double คลิกที่ไอคอนนั้น หน้าต่างคุณสมบัติที่แสดงด้านล่างจะปรากฏขึ้น
ถัดไป
- เปลี่ยนตารางที่ 1 เป็น สมาชิก
- แก้ไขค่าเริ่มต้นของ idtable1 เป็น membership_number
- คลิกที่บรรทัดถัดไปเพื่อเพิ่มช่องข้อมูลถัดไป
- ทำเช่นเดียวกันกับแอตทริบิวต์ทั้งหมดที่ระบุไว้ในเอนทิตีสมาชิก
หน้าต่างคุณสมบัติของคุณควรมีลักษณะเช่นนี้
ทำซ้ำขั้นตอนข้างต้นสำหรับเอนทิตีที่ระบุทั้งหมด
ตอนนี้พื้นที่ทำงานไดอะแกรมของคุณควรมีลักษณะเหมือนกับที่แสดงด้านล่าง
เรามาสร้างความสัมพันธ์ที่ดีระหว่างสมาชิกและบริการเช่าภาพยนตร์กันเถอะ
- เลือกความสัมพันธ์ของสถานที่โดยใช้เครื่องมือคอลัมน์ที่มีอยู่
- คลิกที่หมายเลขสมาชิกในตารางสมาชิก
- คลิกที่หมายเลขอ้างอิงในตาราง MovieRentals
ทำซ้ำขั้นตอนข้างต้นสำหรับความสัมพันธ์อื่นๆ แผนภาพ ER ของคุณควรมีลักษณะดังนี้ –









