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