เนื่องจากอี-อาร์โมเดลเป็นการออกแบบฐานข้อมูลในระดับแนวคิดซึ่งจะทำให้ทราบว่า ในฐานข้อมูลนั้นประกอบด้วยเอนทิตีและรายละเอียดอะไรบ้าง ดังนั้น เพื่อให้สามารถใช้งานฐานข้อมูลต่อไปได้ จึงต้องทำการแปลงความสัมพันธ์และอี-อาร์โมเดลให้อยู่ในรูปแบบของแบบจำลองอื่นที่สอดคล้องกับระบบจัดการฐานข้อมูลที่เลือกใช้ ซึ่งในที่นี้จะมุ่งเน้นให้ความสนใจกับฐานข้อมูลเชิงสัมพันธ์เท่านั้น
1. ขั้นตอนการแปลงฐานข้อมูลที่ออกแบบด้วยอี-อาร์โมเดลเป็นฐานข้อมูลเชิงสัมพันธ์
การแปลงฐานข้อมูลที่ออกแบบด้วยอี-อาร์โมเดลเป็นฐานข้อมูลเชิงสัมพันธ์ประกอบด้วย 3 ขั้นตอน ดังนี้คือ
1. การแปลงเอนทิตีในอี-อาร์โมเดลให้เป็นรีเลชัน และการแปลงความสัมพันธ์ระหว่าง เอนทิตีเป็นความสัมพันธ์ระหว่างรีเลชัน
การแปลงเอนทิตีในอี-อาร์โมเดลให้เป็นรีเลชันในฐานข้อมูลเชิงสัมพันธ์ และการแปลงความสัมพันธ์ระหว่างเอนทิตีเป็นความสัมพันธ์ระหว่างรีเลชันในฐานข้อมูลเชิงสัมพันธ์ ประกอบด้วยขั้นตอนดังนี้คือ
- การแปลงเอนทิตีในอี-อาร์โมเดลเป็นรีเลชันในฐานข้อมูลเชิงสัมพันธ์ โดยการกำหนดชื่อของ เอนทิตีเป็นชื่อของรีเลชัน
- การแปลงความสัมพันธ์ระหว่างเอนทิตีเป็นความสัมพันธ์ระหว่างรีเลชันในฐานข้อมูลเชิงสัมพันธ์ หากความสัมพันธ์ระหว่างเอนทิตีในอี-อาร์โมเดลเป็นความสัมพันธ์แบบกลุ่มต่อกลุ่ม จะมีการแปลง ความสัมพันธ์ดังกล่าวเป็นความสัมพันธ์ระหว่างเอนทิตีแบบหนึ่งต่อกลุ่มด้วยการสร้าง Composite Entity ขึ้น จากนั้นจึงทำการแปลง Composite Entity ที่สร้างขึ้นให้เป็นรีเลชันในฐานข้อมูลเชิงสัมพันธ์ โดยการกำหนดชื่อของ Composite Entity เป็นชื่อของรีเลชัน
2. การแปลงรายละเอียดของเอนทิตีให้เป็นแอททริบิวต์ของรีเลชัน รวมทั้งการกำหนดคีย์หลักและคีย์นอกของแต่ละรีเลชัน
จากขั้นตอนที่ 1 เมื่อทราบรีเลชันและความสัมพันธ์ระหว่างรีเลชันแล้ว ในขั้นตอนที่ 2 นี้จะเป็นการแปลง Property ของแต่ละเอนทิตีให้เป็นแอททริบิวต์ของแต่ละรีเลชัน รวมทั้งทำการกำหนดคีย์หลักในแต่ละรีเลชัน ตลอดจนกำหนดคีย์นอกที่อ้างอิงถึงคีย์หลักในอีกรีเลชันหนึ่งหากจำเป็นต้องมี และกำหนดข้อจำกัดต่าง ๆ ของคีย์หลักและคีย์นอกในแต่ละรีเลชัน
การแปลงรายละเอียดของเอนทิตีให้เป็นแอททริบิวต์ของรีเลชัน รวมทั้งการกำหนดคีย์หลักและคีย์นอกของแต่ละรีเลชัน ประกอบด้วยขั้นตอนดังนี้คือ
- การแปลงรายละเอียดของแต่ละเอนทิตีให้เป็นแอททริบิวต์ของแต่ละรีเลชัน ทำได้โดยกำหนดให้ Property ของแต่ละเอนทิตีเป็นแอททริบิวต์ของแต่ละรีเลชัน และ Key Property ของแต่ละเอนทิตีเป็นคีย์หลักของแต่ละรีเลชัน
- การกำหนดคีย์นอกของแต่ละรีเลชันสามารถทำได้โดย
- หากความสัมพันธ์ระหว่างรีเลชันเป็นความสัมพันธ์แบบหนึ่งต่อหนึ่ง ให้เพิ่มคีย์หลักของรีลเชันหนึ่งลงไปเป็นแอททริบิวต์หนึ่งของอีกรีเลชัน
- หากความสัมพันธ์ระหว่างรีเลชันเป็นความสัมพันธ์แบบหนึ่งต่อกลุ่ม ให้เพิ่มคีย์หลักของรีเลชันที่อยู่ด้านความสัมพันธ์เป็นหนึ่งไปเป็นแอททริบิวต์หนึ่งของรีเลชันด้านที่มีความสัมพันธ์เป็นกลุ่ม ทั้งนี้กรณีของรีเลชันที่แปลงมาจาก Composite Entity จะปรากฏแอททริบิวต์ดังกล่าวอยู่แล้ว
- หากรีเลชันมีความสัมพันธ์แบบ Recursive ให้เพิ่มคีย์หลักของรีเลชันที่อยู่ด้านความสัมพันธ์เป็นหนึ่งไปเป็นแอททริบิวต์หนึ่งของรีเลชันด้านที่มีความสัมพันธ์เป็นกลุ่ม โดยเปลี่ยนชื่อของแอททริบิวต์นั้นใหม่
- การพิจารณาเค้าร่างข้อมูลในแต่ละรีเลชันที่ได้จากสองขั้นตอนแรก
ขั้นตอนนี้เป็นการทบทวนเค้าร่างข้อมูลในแต่ละรีเลชันที่ได้มาจากสองขั้นตอนแรก โดยทำการพิจารณาเรื่องของความซ้ำซ้อนหรือปัญหาที่อาจจะเกิดขึ้นในการเพิ่มเติม ลบ หรือปรับปรุงข้อมูล
2.ตัวอย่างการแปลงฐานข้อมูลที่ออกแบบด้วยอี-อาร์โมเดลเป็นฐานข้อมูลเชิงสัมพันธ์
เพื่อแสดงให้เห็นถึงขั้นตอนการแปลงฐานข้อมูลที่ออกแบบด้วยอี-อาร์โมเดลเป็นฐานข้อมูลเชิงสัมพันธ์ ในที่นี้ขอนำตัวอย่างการออกแบบฐานข้อมูลภาระงานสอนของอาจารย์ด้วยอี-อาร์โมเดลในเรื่องที่ 3.2.1 มาประกอบดังนี้
-
การแปลงเอนทิตีในอี-อาร์โมเดลให้เป็นรีเลชัน และการแปลงความสัมพันธ์ระหว่าง เอนทิตีเป็นความสัมพันธ์ระหว่างรีเลชัน
จากตัวอย่างการออกแบบฐานข้อมูลภาระงานสอนของอาจารย์ด้วยอี-อาร์โมเดลจะพบว่า ฐานข้อมูลดังกล่าวประกอบด้วย 4 เอนทิตี คือ
- เอนทิตีคณะ ประกอบด้วย Property รหัสคณะ ชื่อคณะ
- เอนทิตีภาควิชา ประกอบด้วย Property รหัสภาควิชา ชื่อภาควิชา ที่ทำการ
- เอนทิตีอาจารย์ ประกอบด้วย Property รหัสอาจารย์ ชื่ออาจารย์ วันที่เริ่มทำงาน เงินเดือน
- เอนทิตีชุดวิชา ประกอบด้วย Property รหัสชุดวิชา ชื่อชุดวิชา จำนวนหน่วยกิต
และฐานข้อมูลดังกล่าวมีความสัมพันธ์ระหว่างเอนทิตี 5 ความสัมพันธ์ คือ
- ความสัมพันธ์แบบหนึ่งต่อกลุ่มระหว่างเอนทิตีคณะและเอนทิตีภาควิชา
- ความสัมพันธ์แบบหนึ่งต่อกลุ่มระหว่างเอนทิตีภาควิชาและเอนทิตีอาจารย์
- ความสัมพันธ์แบบ Recursive ของเอนทิตีอาจารย์
- ความสัมพันธ์แบบหนึ่งต่อกลุ่มระหว่างเอนทิตีภาควิชาและเอนทิตีชุดวิชา
- ความสัมพันธ์แบบกลุ่มต่อกลุ่มระหว่างเอนทิตีชุดวิชาและเอนทิตีอาจารย์
เนื่องจากความสัมพันธ์ระหว่างเอนทิตีชุดวิชาและเอนทิตีอาจารย์เป็นความสัมพันธ์แบบกลุ่มต่อกลุ่ม ดังนั้น จึงมีการแปลงความสัมพันธ์ดังกล่าวเป็นความสัมพันธ์ระหว่างเอนทิตีแบบหนึ่งต่อกลุ่มโดยการสร้าง Composite Entity การสอน ซึ่งประกอบด้วย Property รหัสชุดวิชา รหัสอาจารย์ ขึ้นมา
ดังนั้น ฐานข้อมูลเชิงสัมพันธ์ภาระงานสอนของอาจารย์จะประกอบด้วย 5 รีเลชัน คือ รีเลชันคณะ รีเลชันภาควิชา รีเลชันอาจารย์ รีเลชันชุดวิชา และรีเลชันการสอน โดยมีความสัมพันธ์ระหว่างรีเลชัน 6 ความสัมพันธ์ คือ
- ความสัมพันธ์แบบหนึ่งต่อกลุ่มระหว่างรีเลชันคณะและรีเลชันภาควิชา
- ความสัมพันธ์แบบหนึ่งต่อกลุ่มระหว่างรีเลชันภาควิชาและรีเลชันอาจารย์
- ความสัมพันธ์แบบ Recursive ของรีเลชันอาจารย์
- ความสัมพันธ์แบบหนึ่งต่อกลุ่มระหว่างรีเลชันภาควิชาและรีเลชันชุดวิชา
- ความสัมพันธ์แบบหนึ่งต่อกลุ่มระหว่างรีเลชันชุดวิชาและรีเลชันการสอน
- ความสัมพันธ์แบบหนึ่งต่อกลุ่มระหว่างรีเลชันอาจารย์และรีเลชันการสอน
-
การแปลงรายละเอียดของเอนทิตีให้เป็นแอททริบิวต์ของรีเลชัน รวมทั้งการกำหนดคีย์หลักและคีย์นอกของแต่ละรีเลชัน
ดังนั้น จากตัวอย่างภาระงานสอนของอาจารย์ที่กล่าวมาข้างต้น แต่ละรีเลชันจะประกอบด้วย แอททริบิวต์ คีย์หลัก และคีย์นอก ดังต่อไปนี้คือ
- รีเลชันคณะ ประกอบด้วยแอททริบิวต์ รหัสคณะ ชื่อคณะ โดยมีแอททริบิวต์รหัสคณะเป็น คีย์หลัก
- รีเลชันภาควิชา ประกอบด้วยแอททริบิวต์ รหัสภาควิชา ชื่อภาควิชา ที่ทำการ โดยมี แอททริบิวต์รหัสภาควิชาเป็นคีย์หลัก และเนื่องจากรีเลชันคณะมีความสัมพันธ์แบบหนึ่งต่อกลุ่มกับรีเลชัน ภาควิชา รีเลชันภาควิชาจึงต้องมีแอททริบิวต์รหัสคณะเพิ่มขึ้นด้วย โดยแอททริบิวต์รหัสคณะเป็นคีย์นอกที่ใช้ในการเชื่อมโยงข้อมูลกับรีเลชันคณะ
- รีเลชันอาจารย์ ประกอบด้วยแอททริบิวต์ รหัสอาจารย์ ชื่ออาจารย์ วันที่เริ่มทำงาน เงินเดือน โดยมีแอททริบิวต์รหัสอาจารย์เป็นคีย์หลัก และเนื่องจากรีเลชันภาควิชามีความสัมพันธ์แบบหนึ่งต่อกลุ่มกับ รีเลชันอาจารย์ รีเลชันอาจารย์จึงต้องมีแอททริบิวต์รหัสภาควิชาเพิ่มขึ้นด้วย โดยแอททริบิวต์รหัสภาควิชาเป็นคีย์นอกที่ใช้ในการเชื่อมโยงข้อมูลกับรีเลชันภาควิชา
เนื่องจากรีเลชันอาจารย์มีความสัมพันธ์แบบ Recursive เป็นความสัมพันธ์หัวหน้าภาคปรากฏอยู่อีกหนึ่งความสัมพันธ์ ฉะนั้น รีเลชันอาจารย์จึงต้องมีแอททริบิวต์ที่แสดงรหัสของอาจารย์ที่เป็นหัวหน้าภาควิชาเพิ่มขึ้นอีกหนึ่งแอททริบิวต์ ซึ่งแอททริบิวต์ดังกล่าวตั้งชื่อว่า รหัสหัวหน้าภาค
- รีเลชันชุดวิชา ประกอบด้วยแอททริบิวต์ รหัสชุดวิชา ชื่อชุดวิชา จำนวนหน่วยกิต โดยมี แอททริบิวต์รหัสชุดวิชาเป็นคีย์หลัก และเนื่องจากรีเลชันภาควิชามีความสัมพันธ์แบบหนึ่งต่อกลุ่มกับรีเลชันชุดวิชา รีเลชันชุดวิชาจึงต้องมีแอททริบิวต์รหัสภาควิชาเพิ่มขึ้นด้วย โดยแอททริบิวต์รหัสภาควิชาเป็นคีย์นอกที่ใช้ในการเชื่อมโยงข้อมูลกับรีเลชันภาควิชา
- รีเลชันการสอน ประกอบด้วยแอททริบิวต์ รหัสชุดวิชา รหัสอาจารย์ โดยมีแอททริบิวต์รหัส ชุดวิชาและรหัสอาจารย์เป็นคีย์หลัก แอททริบิวต์รหัสชุดวิชาเป็นคีย์นอกที่ใช้ในการเชื่อมโยงข้อมูลกับรีเลชันชุดวิชา และแอททริบิวต์รหัสอาจารย์เป็นคีย์นอกที่ใช้ในการเชื่อมโยงข้อมูลกับรีเลชันอาจารย์
-
การพิจารณาเค้าร่างข้อมูลในแต่ละรีเลชันที่ได้จากสองขั้นตอนแรก
ดังนั้น จากตัวอย่างการออกแบบฐานข้อมูลภาระงานสอนของอาจารย์ด้วยอี-อาร์โมเดลในเรื่องที่ 3.2.1 เมื่อทำการแปลงเป็นฐานข้อมูลเชิงสัมพันธ์จะประกอบด้วย รีเลชัน แอททริบิวต์ และคีย์ดังต่อไปนี้คือ
- รีเลชันคณะ ประกอบด้วยแอททริบิวต์ รหัสคณะ ชื่อคณะ โดยมีแอททริบิวต์รหัสคณะเป็น คีย์หลัก
- รีเลชันภาควิชา ประกอบด้วยแอททริบิวต์ รหัสภาควิชา ชื่อภาควิชา ที่ทำการ รหัสคณะโดยมีแอททริบิวต์รหัสภาควิชาเป็นคีย์หลัก และแอททริบิวต์รหัสคณะเป็นคีย์นอกที่ใช้ในการเชื่อมโยงข้อมูลกับรีเลชันคณะ
รหัสภาควิชา |
ชื่อภาควิชา |
ที่ทำการ |
รหัสคณะ |
- รีเลชันอาจารย์ ประกอบด้วยแอททริบิวต์ รหัสอาจารย์ ชื่ออาจารย์ วันที่เริ่มทำงาน เงินเดือน รหัสภาควิชา รหัสหัวหน้าภาค โดยมีแอททริบิวต์รหัสอาจารย์เป็นคีย์หลัก และแอททริบิวต์รหัสภาควิชาเป็นคีย์นอกที่ใช้ในการเชื่อมโยงข้อมูลกับรีเลชันภาควิชา
รหัสอาจารย์ |
ชื่ออาจารย์ |
วันที่เริ่มทำงาน |
เงินเดือน |
รหัสภาควิชา |
รหัสหัวหน้าภาค |
- รีเลชันชุดวิชา ประกอบด้วยแอททริบิวต์ รหัสชุดวิชา ชื่อชุดวิชา จำนวนหน่วยกิต รหัสภาควิชา โดยมีแอททริบิวต์รหัสชุดวิชาเป็นคีย์หลัก และแอททริบิวต์รหัสภาควิชาเป็นคีย์นอกที่ใช้ในการเชื่อมโยงข้อมูลกับรีเลชันภาควิชา
รหัสชุดวิชา |
ชื่อชุดวิชา |
จำนวนหน่วยกิต |
รหัสภาควิชา |
- รีเลชันการสอน ประกอบด้วยแอททริบิวต์ รหัสชุดวิชา รหัสอาจารย์ โดยมีแอททริบิวต์รหัส ชุดวิชาและรหัสอาจารย์เป็นคีย์หลัก โดยมีแอททริบิวต์รหัสชุดวิชาเป็นคีย์นอกที่ใช้ในการเชื่อมโยงข้อมูลกับรีเลชันชุดวิชา และแอททริบิวต์รหัสอาจารย์เป็นคีย์นอกที่ใช้ในการเชื่อมโยงข้อมูลกับรีเลชัน อาจารย์
|