ขั้นตอนการพัฒนาระบบฐานข้อมูล

การสร้างฐานข้อมูลเชิงสัมพันธ์จากโมเดลแบบE-R

 

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

1. ขั้นตอนการแปลงฐานข้อมูลที่ออกแบบด้วยอี-อาร์โมเดลเป็นฐานข้อมูลเชิงสัมพันธ์

การแปลงฐานข้อมูลที่ออกแบบด้วยอี-อาร์โมเดลเป็นฐานข้อมูลเชิงสัมพันธ์ประกอบด้วย 3 ขั้นตอน ดังนี้คือ

1. การแปลงเอนทิตีในอี-อาร์โมเดลให้เป็นรีเลชัน และการแปลงความสัมพันธ์ระหว่าง เอนทิตีเป็นความสัมพันธ์ระหว่างรีเลชัน

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

2. การแปลงรายละเอียดของเอนทิตีให้เป็นแอททริบิวต์ของรีเลชัน รวมทั้งการกำหนดคีย์หลักและคีย์นอกของแต่ละรีเลชัน

จากขั้นตอนที่ 1 เมื่อทราบรีเลชันและความสัมพันธ์ระหว่างรีเลชันแล้ว ในขั้นตอนที่ 2 นี้จะเป็นการแปลง Property ของแต่ละเอนทิตีให้เป็นแอททริบิวต์ของแต่ละรีเลชัน รวมทั้งทำการกำหนดคีย์หลักในแต่ละรีเลชัน ตลอดจนกำหนดคีย์นอกที่อ้างอิงถึงคีย์หลักในอีกรีเลชันหนึ่งหากจำเป็นต้องมี และกำหนดข้อจำกัดต่าง ๆ ของคีย์หลักและคีย์นอกในแต่ละรีเลชัน

การแปลงรายละเอียดของเอนทิตีให้เป็นแอททริบิวต์ของรีเลชัน รวมทั้งการกำหนดคีย์หลักและคีย์นอกของแต่ละรีเลชัน ประกอบด้วยขั้นตอนดังนี้คือ

    1. การแปลงรายละเอียดของแต่ละเอนทิตีให้เป็นแอททริบิวต์ของแต่ละรีเลชัน ทำได้โดยกำหนดให้ Property ของแต่ละเอนทิตีเป็นแอททริบิวต์ของแต่ละรีเลชัน และ Key Property ของแต่ละเอนทิตีเป็นคีย์หลักของแต่ละรีเลชัน
    2. การกำหนดคีย์นอกของแต่ละรีเลชันสามารถทำได้โดย
  • หากความสัมพันธ์ระหว่างรีเลชันเป็นความสัมพันธ์แบบหนึ่งต่อหนึ่ง ให้เพิ่มคีย์หลักของรีลเชันหนึ่งลงไปเป็นแอททริบิวต์หนึ่งของอีกรีเลชัน
  • หากความสัมพันธ์ระหว่างรีเลชันเป็นความสัมพันธ์แบบหนึ่งต่อกลุ่ม ให้เพิ่มคีย์หลักของรีเลชันที่อยู่ด้านความสัมพันธ์เป็นหนึ่งไปเป็นแอททริบิวต์หนึ่งของรีเลชันด้านที่มีความสัมพันธ์เป็นกลุ่ม ทั้งนี้กรณีของรีเลชันที่แปลงมาจาก Composite Entity จะปรากฏแอททริบิวต์ดังกล่าวอยู่แล้ว
  • หากรีเลชันมีความสัมพันธ์แบบ Recursive ให้เพิ่มคีย์หลักของรีเลชันที่อยู่ด้านความสัมพันธ์เป็นหนึ่งไปเป็นแอททริบิวต์หนึ่งของรีเลชันด้านที่มีความสัมพันธ์เป็นกลุ่ม โดยเปลี่ยนชื่อของแอททริบิวต์นั้นใหม่
  1. การพิจารณาเค้าร่างข้อมูลในแต่ละรีเลชันที่ได้จากสองขั้นตอนแรก

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

2.ตัวอย่างการแปลงฐานข้อมูลที่ออกแบบด้วยอี-อาร์โมเดลเป็นฐานข้อมูลเชิงสัมพันธ์

เพื่อแสดงให้เห็นถึงขั้นตอนการแปลงฐานข้อมูลที่ออกแบบด้วยอี-อาร์โมเดลเป็นฐานข้อมูลเชิงสัมพันธ์ ในที่นี้ขอนำตัวอย่างการออกแบบฐานข้อมูลภาระงานสอนของอาจารย์ด้วยอี-อาร์โมเดลในเรื่องที่ 3.2.1 มาประกอบดังนี้

    1. การแปลงเอนทิตีในอี-อาร์โมเดลให้เป็นรีเลชัน และการแปลงความสัมพันธ์ระหว่าง เอนทิตีเป็นความสัมพันธ์ระหว่างรีเลชัน

จากตัวอย่างการออกแบบฐานข้อมูลภาระงานสอนของอาจารย์ด้วยอี-อาร์โมเดลจะพบว่า ฐานข้อมูลดังกล่าวประกอบด้วย 4 เอนทิตี คือ

    1. เอนทิตีคณะ ประกอบด้วย Property รหัสคณะ ชื่อคณะ
    2. เอนทิตีภาควิชา ประกอบด้วย Property รหัสภาควิชา ชื่อภาควิชา ที่ทำการ
    3. เอนทิตีอาจารย์ ประกอบด้วย Property รหัสอาจารย์ ชื่ออาจารย์ วันที่เริ่มทำงาน เงินเดือน
    4. เอนทิตีชุดวิชา ประกอบด้วย Property รหัสชุดวิชา ชื่อชุดวิชา จำนวนหน่วยกิต

และฐานข้อมูลดังกล่าวมีความสัมพันธ์ระหว่างเอนทิตี 5 ความสัมพันธ์ คือ

    1. ความสัมพันธ์แบบหนึ่งต่อกลุ่มระหว่างเอนทิตีคณะและเอนทิตีภาควิชา
    2. ความสัมพันธ์แบบหนึ่งต่อกลุ่มระหว่างเอนทิตีภาควิชาและเอนทิตีอาจารย์
    3. ความสัมพันธ์แบบ Recursive ของเอนทิตีอาจารย์
    4. ความสัมพันธ์แบบหนึ่งต่อกลุ่มระหว่างเอนทิตีภาควิชาและเอนทิตีชุดวิชา
    5. ความสัมพันธ์แบบกลุ่มต่อกลุ่มระหว่างเอนทิตีชุดวิชาและเอนทิตีอาจารย์

เนื่องจากความสัมพันธ์ระหว่างเอนทิตีชุดวิชาและเอนทิตีอาจารย์เป็นความสัมพันธ์แบบกลุ่มต่อกลุ่ม ดังนั้น จึงมีการแปลงความสัมพันธ์ดังกล่าวเป็นความสัมพันธ์ระหว่างเอนทิตีแบบหนึ่งต่อกลุ่มโดยการสร้าง Composite Entity การสอน ซึ่งประกอบด้วย Property รหัสชุดวิชา รหัสอาจารย์ ขึ้นมา

ดังนั้น ฐานข้อมูลเชิงสัมพันธ์ภาระงานสอนของอาจารย์จะประกอบด้วย 5 รีเลชัน คือ รีเลชันคณะ รีเลชันภาควิชา รีเลชันอาจารย์ รีเลชันชุดวิชา และรีเลชันการสอน โดยมีความสัมพันธ์ระหว่างรีเลชัน 6 ความสัมพันธ์ คือ

    1. ความสัมพันธ์แบบหนึ่งต่อกลุ่มระหว่างรีเลชันคณะและรีเลชันภาควิชา
    2. ความสัมพันธ์แบบหนึ่งต่อกลุ่มระหว่างรีเลชันภาควิชาและรีเลชันอาจารย์
    3. ความสัมพันธ์แบบ Recursive ของรีเลชันอาจารย์
    4. ความสัมพันธ์แบบหนึ่งต่อกลุ่มระหว่างรีเลชันภาควิชาและรีเลชันชุดวิชา
    5. ความสัมพันธ์แบบหนึ่งต่อกลุ่มระหว่างรีเลชันชุดวิชาและรีเลชันการสอน
    6. ความสัมพันธ์แบบหนึ่งต่อกลุ่มระหว่างรีเลชันอาจารย์และรีเลชันการสอน
    1. การแปลงรายละเอียดของเอนทิตีให้เป็นแอททริบิวต์ของรีเลชัน รวมทั้งการกำหนดคีย์หลักและคีย์นอกของแต่ละรีเลชัน

ดังนั้น จากตัวอย่างภาระงานสอนของอาจารย์ที่กล่าวมาข้างต้น แต่ละรีเลชันจะประกอบด้วย แอททริบิวต์ คีย์หลัก และคีย์นอก ดังต่อไปนี้คือ

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

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

ดังนั้น จากตัวอย่างการออกแบบฐานข้อมูลภาระงานสอนของอาจารย์ด้วยอี-อาร์โมเดลในเรื่องที่ 3.2.1 เมื่อทำการแปลงเป็นฐานข้อมูลเชิงสัมพันธ์จะประกอบด้วย รีเลชัน แอททริบิวต์ และคีย์ดังต่อไปนี้คือ

  • รีเลชันคณะ ประกอบด้วยแอททริบิวต์ รหัสคณะ ชื่อคณะ โดยมีแอททริบิวต์รหัสคณะเป็น คีย์หลัก

รหัสคณะ

ชื่อคณะ

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

รหัสภาควิชา

ชื่อภาควิชา

ที่ทำการ

รหัสคณะ

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

รหัสอาจารย์

ชื่ออาจารย์

วันที่เริ่มทำงาน

เงินเดือน

รหัสภาควิชา

รหัสหัวหน้าภาค

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

รหัสชุดวิชา

ชื่อชุดวิชา

จำนวนหน่วยกิต

รหัสภาควิชา

  • รีเลชันการสอน ประกอบด้วยแอททริบิวต์ รหัสชุดวิชา รหัสอาจารย์ โดยมีแอททริบิวต์รหัส ชุดวิชาและรหัสอาจารย์เป็นคีย์หลัก โดยมีแอททริบิวต์รหัสชุดวิชาเป็นคีย์นอกที่ใช้ในการเชื่อมโยงข้อมูลกับรีเลชันชุดวิชา และแอททริบิวต์รหัสอาจารย์เป็นคีย์นอกที่ใช้ในการเชื่อมโยงข้อมูลกับรีเลชัน อาจารย์

รหัสชุดวิชา

รหัสอาจารย์