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