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