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