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