กรณีศึกษาระบบฐานข้อมูลนักศึกษา

เพื่อแสดงให้เห็นถึงการออกแบบฐานข้อมูลในระดับแนวคิด ในที่นี้ขอนำตัวอย่างระบบฐานข้อมูล นักศึกษามาประกอบดังนี้

1. รายละเอียดและลักษณะหน้าที่ของระบบงาน

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

นอกจากนี้ในแต่ละภาควิชาประกอบด้วยนักศึกษาหลายคน ซึ่งนักศึกษาแต่ละคนจะสังกัดภาควิชาใดภาควิชาหนึ่งเท่านั้น โดยนักศึกษาแต่ละคนจะมีอาจารย์ที่ปรึกษาหนึ่งคน

ในหนึ่งภาคการศึกษา จะมีชุดวิชาในหลักสูตรที่เปิดให้นักศึกษาลงทะเบียนเรียนได้หลายชุดวิชา ซึ่งนักศึกษาทุกคนจะต้องลงทะเบียนเรียนอย่างน้อยหนึ่งชุดวิชา โดยในแต่ละชุดวิชาที่เปิดทำการสอนอาจมีได้มากกว่าหนึ่งหมู่เรียน ซึ่งในแต่ละหมู่เรียนจะมีอาจารย์ผู้สอนเพียงหนึ่งคนเท่านั้น

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

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

จากรายละเอียดข้างต้น เมื่อทำการวิเคราะห์เพื่อหาเอนทิตีที่เกี่ยวข้องจะพบว่า มี 4 เอนทิตีคือ

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

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

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

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

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

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

4. การกำหนดแอททริบิวต์ต่าง ๆ คีย์หลัก และคีย์นอกในแต่ละรีเลชัน

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

รหัสภาควิชา

ชื่อภาควิชา

ที่ตั้งของภาควิชา

รหัสอาจารย์

ชื่ออาจารย์

ที่อยู่

โทรศัพท์

เงินเดือน

รหัสภาควิชา

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

รหัสนักศึกษา

ชื่อนักศึกษา

ที่อยู่

โทรศัพท์

รหัสภาควิชา

รหัสอาจารย์

รหัสชุดวิชา

ชื่อชุดวิชา

หน่วยกิต

คำอธิบายรายวิชา

ภาค/ปีการศึกษา

รหัสนักศึกษา

รหัสชุดวิชา

หมู่เรียน

ผลการสอบ

ภาค/ปีการศึกษา

รหัสชุดวิชา

หมู่เรียน

รหัสอาจารย์

5. การทำให้รีเลชันมีคุณสมบัติอยู่ในรูปแบบที่เป็นบรรทัดฐาน

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

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

รหัสภาควิชา

ชื่อภาควิชา

ที่ตั้งของภาควิชา

จากการตรวจสอบพบว่า รีเลชันภาควิชามีคุณสมบัติอยู่ในรูปแบบที่เป็นบรรทัดฐานขั้นที่ 5 แล้ว เนื่องจาก

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

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

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

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

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

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

รหัสอาจารย์

ชื่ออาจารย์

ที่อยู่

โทรศัพท์

เงินเดือน

รหัสภาควิชา

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

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

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

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

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

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

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

รหัสนักศึกษา

ชื่อนักศึกษา

ที่อยู่

โทรศัพท์

รหัสภาควิชา

รหัสอาจารย์

จากการตรวจสอบพบว่า รีเลชันนักศึกษามีคุณสมบัติอยู่ในรูปแบบที่เป็นบรรทัดฐานขั้นที่ 5 แล้ว เนื่องจาก

รีเลชันนักศึกษามีคุณสมบัติอยู่ในรูปแบบที่เป็นบรรทัดฐานขั้นที่ 1 แล้ว เนื่องจากทุกแอททริบิวต์ในแต่ละทูเพิลมีค่าของข้อมูลเพียงค่าเดียว

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

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

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

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

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

รหัสชุดวิชา

ชื่อชุดวิชา

หน่วยกิต

คำอธิบายรายวิชา

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

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

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

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

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

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

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

ภาค/ปีการศึกษา

รหัสนักศึกษา

รหัสชุดวิชา

หมู่เรียน

ผลการสอบ

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

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

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

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

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

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

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

ภาค/ปีการศึกษา

รหัสชุดวิชา

หมู่เรียน

รหัสอาจารย์

จากการตรวจสอบพบว่า รีเลชันการสอนมีคุณสมบัติอยู่ในรูปแบบที่เป็นบรรทัดฐานขั้นที่ 5 แล้ว เนื่องจาก

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

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

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

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

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

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

6. รวบรวมและทบทวนการออกแบบฐานข้อมูลในระดับแนวคิด

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

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