การทำให้ฐานข้อมูลเป็นรูปแบบที่เป็นบรรทัดฐาน

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

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

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

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

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

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

รหัสบริษัท

ชื่อบริษัท

ที่อยู่

โทรศัพท์

รหัสสินค้า

ชื่อสินค้า

สินค้าในคลัง

ราคาขายต่อหน่วย

จุดสั่งซื้อ

รหัสบริษัท

เลขที่ใบสั่งซื้อ

วันที่สั่งซื้อ

รหัสบริษัท

เลขที่ใบสั่งซื้อ

รหัสสินค้า

จำนวนที่สั่งซื้อ

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

เลขที่ใบส่งสินค้า

วันที่ส่งสินค้า

ราคาขายส่งต่อหน่วย

เลขที่ใบสั่งซื้อ

รหัสบริษัท

เลขที่ใบสั่งซื้อ

รหัสสินค้า

เลขที่ใบเสร็จรับเงิน

วันที่ออกใบเสร็จ

เลขที่ใบเสร็จรับเงิน

รหัสสินค้า

จำนวนที่ขาย

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

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

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

จากการตรวจสอบโครงร่างฐานข้อมูลเชิงสัมพันธ์ของระบบฐานข้อมูลงานซื้อขายสินค้าในซุปเปอร์ สโตร์จะพบว่า

รหัสบริษัท

ชื่อบริษัท

ที่อยู่

โทรศัพท์

รหัสสินค้า

ชื่อสินค้า

สินค้าในคลัง

ราคาขายต่อหน่วย

จุดสั่งซื้อ

รหัสบริษัท

เลขที่ใบสั่งซื้อ

วันที่สั่งซื้อ

รหัสบริษัท

เลขที่ใบส่งสินค้า

วันที่ส่งสินค้า

ราคาขายส่งต่อหน่วย

เลขที่ใบสั่งซื้อ

รหัสบริษัท

เลขที่ใบเสร็จรับเงิน

วันที่ออกใบเสร็จ

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

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

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

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

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

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

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

ส่วนรีเลชันอื่น ๆ อีก 3 รีเลชัน คือ รีเลชันการจัดทำ รีเลชันการส่ง และรีเลชันการขาย

เลขที่ใบสั่งซื้อ

รหัสสินค้า

จำนวนที่สั่งซื้อ

เลขที่ใบสั่งซื้อ

รหัสสินค้า

เลขที่ใบเสร็จรับเงิน

รหัสสินค้า

จำนวนที่ขาย

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

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

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

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

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

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

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