ระบบฐานข้อมูลการซื้อขายสินค้าของสหกรณ์...

24

Upload: chainarong-maharak

Post on 27-Jan-2017

227 views

Category:

Education


0 download

TRANSCRIPT

สหกรณ์แห่งหนึ่งต้องการพัฒนาระบบฐานข้อมูลการซื้อขายสินค้าโดยมีรายละเอียด

ตารางดังนี ้

1. ตารางข้อมูลสมาชิก ประกอบด้วย รหัสสมาชิก, ชื่อสมาชิก, วันที่เริ่มเป็นสมาชิก, อายุ

การเป็นสมาชิก

2. ตารางข้อมูลประเภทสมาชิก ประกอบด้วย รหัสประเภทสมาชิก, ชื่อประเภท สมาชิก,

เปอร์เซนต์ส่วนลด

3. ตารางข้อมูลสินค้า ประกอบด้วย รหัสสินค้า, ชื่อสินค้า, ราคาสินค้า

4. ตารางข้อมูลประเภทสินค้า ประกอบด้วย รหัสประเภทสินค้า, ชื่อประเภทสินค้า

5. ตารางข้อมูลการซื้อสินค้า มีข้อมูลเพิ่มเติม วันที่ซื้อสินค้า, จ านวนที่ซื้อ

6. ตารางข้อมูลการสะสมแต้ม มีข้อมูลเพิ่มเติม จ านวนแต้มที่สะสมเพิ่ม

ระบบฐานขอ้มูลการซือ้ขายสนิคา้ของสหกรณ์

ความต้องการของระบบ มีดังนี้

- สหกรณ์นี้มีสมาชิกจ านวนมาก และมีประเภทสมาชิกอยู่ 2 แบบ

- สมาชิกแต่ละคนจะต้องเป็นประเภทสมาชิกแบบใดแบบหนึ่ง แต่ประเภทสมาชิก

หนึ่ง ๆ สามารถมีสมาชิกได้หลายคน

- สมาชิกสามารถซื้อสินค้าของสหกรณ์ในราคาพิเศษได้ซ่ึงแล้วแต่ประเภทสมาชิก

- สินค้าแต่ละชนิดต้องสังกัดอยู่ในประเภทสินค้าใดสินค้าหนึ่ง แต่ประเภทสินค้า

หนึ่ง ๆ สามารถมีสินค้าได้หลายสินค้า

- ในการซื้อสินค้าของสมาชิก สมาชิกสามารถสะสมแต้มได้

การวิเคราะห์หาความสัมพันธ์อีอาร์ไดอะแกรม

- สหกรณ์นี้มีสมาชิกจ านวนมาก และมีประเภทสมาชิกอยู่ 2 แบบ

- สมาชิกแต่ละคนจะต้องเป็นประเภทสมาชิกแบบใดแบบหนึ่ง แต่ประเภทสมาชิกหนึ่ง ๆ

สามารถมีสมาชิกได้หลายคน สามารถเขียนแผนภาพอีอาร์ไดอะแกรม ได้ดังนี้

สมาชิก เป็น ประเภท

สมาชิก (1,1) (1, 2)

1 M

การวิเคราะห์หาความสัมพันธ์อีอาร์ไดอะแกรม (ต่อ)

- สมาชิกสามารถซื้อสินค้าของสหกรณ์ในราคาพิเศษได้ซ่ึงแล้วแต่ประเภทสมาชิก

สินค้า ซื้อ สมาชิก (1, N)

M M

(1, N)

การวิเคราะห์หาความสัมพันธ์อีอาร์ไดอะแกรม (ต่อ)

- สินค้าแต่ละชนิดต้องสังกัดอยู่ในประเภทสินค้าใดสินค้าหนึ่ง แต่ประเภทสินค้าหนึ่ง ๆสามารถมีสินค้าได้หลายสินค้า

สินค้า อยู ่ประเภท

สินค้า (0,N)

1

(1,1)

M

การวิเคราะห์หาความสัมพันธ์อีอาร์ไดอะแกรม (ต่อ)

- ในการซื้อสินค้าของสมาชิก สมาชิกสามารถสะสมแต้มได้

สินค้า ซื้อ สมาชิก (1, N)

M M

(1, N)

ภาพความสัมพันธ์อีอาร์ไดอะแกรมระบบฐานข้อมูลการซื้อขายสินค้าของสหกรณ์

รหัสสมาชิก ชื่อสมาชิก นามสกุล

สมาชิก

รหัส

ประเภท

ส่วนลด

อัตรา

ประเภท

ส่วนลด

รหัสใบสั่ง

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

จ านวน

เงินรวม

สั่งซื้อ

รหัสสินค้า ชื่อสินค้า ราคาสินค้า

ต่อหน่วย จ านวนที่ซื้อ

M001 นาสมชาย ยอดด ี DT01 10% O001 01/01/2556 2500 P005 ดินสอ 50 5

P010 กระดาษ

ปอนต ์65 12

P015 ยางลบ 10 100

M005 นางสมใจ ใจดี DT03 15% O006 10/01/2556 1200 P001 ปากกา 25 150

P005 ดินสอ 25 5

P012 ไส้ดินสอ 20 100

การท านอร์มัลไลเซชัน

การท านอร์มัลไลเซชัน : 1NF ก าจัด Repeating Groups

รหัสสมาชิก ชื่อสมาชิก นามสกุล

สมาชิก

รหัส

ประเภท

ส่วนลด

อัตรา

ประเภท

ส่วนลด

รหัสใบสั่ง

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

จ านวน

เงินรวม

สั่งซื้อ

รหัสสินค้า ชื่อสินค้า ราคาสินค้า

ต่อหน่วย จ านวนที่ซื้อ

M001 นาสมชาย ยอดด ี DT01 10% O001 01/01/2556 2500 P005 ดินสอ 50 5

M001 นาสมชาย ยอดด ี DT01 10% O001 01/01/2556 2500 P010 กระดาษ

ปอนต ์65 12

M001 นาสมชาย ยอดด ี DT01 10% O001 01/01/2556 2500 P015 ยางลบ 10 100

M005 นางสมใจ ใจด ี DT03 15% O006 10/01/2556 1200 P001 ปากกา 25 150

M005 นางสมใจ ใจดี DT03 15% O006 10/01/2556 1200 P005 ดินสอ 25 5

M005 นางสมใจ ใจดี DT03 15% O006 10/01/2556 1200 P012 ไส้ดินสอ 20 100

• มีการก าหนดแอตทริบิวตท์ี่เป็นคีย ์• ต้องไม่มีรพีีทติ้งกรุ๊ป แต่ละแถวหรือคอลัมน์จะมีค่าได้เพียง 1 ค่าเท่านั้น • แอตทริบิวตท์ุกตัวต้องขึ้นอยู่กับคีย์หลัก

รหัสสมาชิก รหัสใบสั่งซื้อ

ชื่อสมาชิก

นามสกลุสมาชิก

รหสัประเภทส่วนลด

อตัราประเภทส่วนลด

วันที่สั่งซื้อ รหสัสินคา้

จ านวนเงนิรวมสั่งซื้อ

ชื่อสนิค้า

ราคาสนิค้าต่อหน่วย

จ านวนที่ซื้อ

ปัญหาที่เกิดกับโครงสร้างของตารางหลังจากที่ท า 1NF แล้ว คือการมีสิ่งที่เรียกว่า พาร์เชียลดเีพนเดนซี (Partial Dependency)

พาร์เชียลดีเพนเดนซี (Partial Dependency) หมายถึง การที่มีแอตทริบิวตบ์างแอตทริบิวต์ ที่ขึ้นอยู่กับเพียงบางส่วนของคีย์หลักเท่านั้น

รหัสสมาชิก -> ชื่อสมาชิก,นามสกุลสมาชิก,รหัสประเภทส่วนลด,อัตราประเภทส่วนลด

รหัสใบสั่งซื้อ -> วันทีส่ั่งซื้อ,จ านวนเงินรวมสั่งซื้อ

รหัสสินค้า -> ชื่อสินค้า,ราคาสินค้าต่อหน่วย

รหัสสมาชิก รหัสใบสั่งซื้อ

ชื่อสมาชิก นามสกุลสมาชิก

รหัสประเภทส่วนลด

อัตราประเภทส่วนลด

วันท่ีสั่งซื้อ รหัสสินค้า

จ านวนเงินรวมสั่งซื้อ

ชื่อสินค้า

ราคาสินค้าต่อหน่วย

จ านวนท่ีซื้อ

การท านอร์มัลไลเซชัน : 2NF

วิธีการก าจัดพาร์เชียลดีเพนเดนซี ท าได้ดังนี ้

1. เขียนแต่ละองค์ประกอบของคีย์หลักที่มีทั้งหมดอยู่คนละบรรทัด และ

เขียนคีย์หลักเดิมในบรรทัดสุดท้าย

- รหัสสมาชิก

- รหัสใบสั่งซื้อ

- รหัสสินค้า

- รหัสสมาชิก , รหัสใบสั่งซื้อ , รหัสสินค้า

วิธีการก าจัดพาร์เชียลดีเพนเดนซี ท าได้ดังนี ้(ต่อ)

2. แต่ละองค์ประกอบจะกลายเป็นคีย์หลักในรีเลชันใหม่

- รหัสสมาชิก >> รีเลชันชื่อ member

- รหัสใบสั่งซื้อ >> รีเลชันชื่อ order

- รหัสสินค้า >> รีเลชันชื่อ goods

- รหัสสมาชิก , รหัสใบสั่งซื้อ , รหัสสินค้า >> รีเลชันชื่อ trade

วิธีการก าจัดพาร์เชียลดีเพนเดนซี ท าได้ดังนี้ (ต่อ)

3. เขียนแอตทริบิวตท์ี่ขึ้นอยู่กับแต่ละคีย์หลักลงไป

- member (รหัสสมาชิก , ชื่อสมาชิก,นามสกุลสมาชิก,รหัสประเภทส่วนลด

,อัตราประเภทส่วนลด)

- order (รหัสใบสั่งซื้อ ,วันที่สั่งซ้ือ,จ านวนเงินรวมสั่งซื้อ)

- goods (รหัสสินค้า ,ชื่อสินค้า,ราคาสินค้าต่อหน่วย)

- trade (รหัสสมาชิก , รหัสใบสั่งซื้อ , รหัสสินค้า , จ านวนท่ีซื้อ)

รหัสสมาชิก

ชื่อสมาชิก

นามสกุลสมาชิก

รหัสประเภทส่วนลด

อัตราประเภทส่วนลด

member

order รหัสใบสั่งซ้ือ วันที่สั่งซ้ือ

จ านวนเงินรวมสั่งซื้อ

goods รหัสสินค้า ชื่อสินค้า

ราคาสินค้าต่อหน่วย

trade จ านวนที่ซ้ือ

– ตรวจสอบดูในรายละเอียดเราจะพบว่า อัตราประเภทส่วนลด เป็นฟังก์ชันนัลดิเพนเดนซีกับรหัสประเภทส่วนลด คือ ถ้าเรารู้ รหัสประเภทส่วนลด เราก็จะทราบ อัตราประเภทส่วนลด

– เราสามารถเรียกได้ว่า รหัสประเภทส่วนลด และ อัตราประเภทส่วนลด มีฟังก์ชันนัลดีเพนเดนซีแบบทรานซิทีฟดีเพนเดนซีอยู่ในตาราง member

รหัสสมาชิก

ชื่อสมาชิก

นามสกุลสมาชิก

รหัสประเภทส่วนลด

อัตราประเภทส่วนลด

member

การท านอร์มัลไลเซชัน : 3NF

จากความผิดปกติหลังจากท า 2NF คืออาจจะได้ความสัมพันธ์แบบทรานซิทีฟดิเพนเดนซ ี

นิยามของ 3NF มีดังนี้

- รีเลชันต้องเป็น 2NF

- รีเลชันนั้นต้องไมม่ีทรานซทิีฟดิเพนเดนซ ี

วิธีการก าจัดทรานซทีิฟดีเพนเดนซี ท าได้ดังนี้

- แยกข้อมูลทีเ่ป็นทรานซทิีฟดิเพนเดนซีออกมาสร้างรีเลชันใหม่

- ให้คงแอตทริบิวตท์ี่จะท าหน้าที่เป็นคีย์นอกไว้ที่รีเลชันเดิม

รหัสประเภทส่วนลด

รหัสสมาชิก

ชื่อสมาชิก

นามสกุลสมาชิก

รหัสประเภทส่วนลด

อัตราประเภทส่วนลด

member

อัตราประเภทส่วนลด

รหัสสมาชิก

ชื่อสมาชิก

นามสกุลสมาชิก

รหัสประเภทส่วนลด

member

order รหัสใบสั่งซ้ือ วันที่สั่งซ้ือ

จ านวนเงินรวมสั่งซ้ือ

goods รหัสสินค้า ชื่อสินค้า

ราคาสินค้าต่อหน่วย

trade จ านวนที่ซ้ือ

discount รหัสประเภท

ส่วนลด อัตราประเภทส่วนลด