สถานการณ์
บริษัท WeLoveShopping เป็นบริษัทที่ทำธุรกิจค้าปลีกค้าส่ง มีสาขาอยู่ทั่วประเทศไทย ร้าน WeLoveShopping จำหน่ายสินค้าตั้งแต่ อุปโภคบริโภค สินค้าอิเล็กโทรนิค เครื่องนุ่งห่ม เครื่องนอน ฯลฯ
ในการดำเนิน WeloveShopping จะมีคำสั่งซื้อสินค้าจาก Suppliers แล้วนำมาเก็บไว้ในคลังสินค้าของแต่ละสาขา จากนั้นเมื่อสินค้าหน้าร้านถูกขายอออกไปพนักงานจะนำสินค้ามาเติมเข้าไปเพื่อให้สินค้ามีจำหน่ายตลอดเวลา โดย WeLoveShopping มีระบบสมาชิกเพื่อเป็นส่วนลดแก่ลูกค้าที่มาใช้บริการ
ผู้บริหารของ WeLoveShopping ได้เรียนวิชา Management of IT (BA.560) จากนิด้า จึงทราบว่าการประยุกต์ใช้ IT ในองค์กรมีความสำคัญที่จะช่วยให้การจัดเก็บข้อมูลเป็นไปด้วยความสะดวกและสร้างข้อได้เปรียบในการแข่งขัน จึงได้ว่าจ้างให้บริษัท XinniXsoft ผู้นำด้านการผลิตซอฟแวร์มาเป็นผู้ออกแบบ database เพื่อใช้กับร้านค้าของ WeLoveShopping โดยมี Business Logic ดังต่อไปนี้
1. สมาชิกสามารถซื้อสินค้าจากสาขาไหนก็ได้
2. การสั่งซื้อสินค้าจากสมาชิกจะต้องจัดเก็บข้อมูลว่าสินค้าอะไร ชนิดใด จากสาขาไหน
3. ผู้บริหารสามารถเรียกดูรายงานสินค้าคงคลังของแต่สาขาได้
4. คำสั่งซื้อจาก supplier ต้องจัดเก็บข้อมูลไว้เช่น จำนวณที่สั่งซื้อ ลำดับการสั่งซื้อ วันที่สั่งซื้อ
5. พนักงานที่ทำงานในร้านสามารถประจำได้สาขาใดสาขานึงในช่วงเวลานึงเท่านั้น โดยแม้จะลาออกไป ID ของนักพนักงานคนนั้นจะยังเหมือนเดิมถ้ากลับมาสมัครงานใหม่
6. สาขาแต่ละแห่งจะเก็บสินค้าไว้ที่ตัวเอง โดยมีระบบคลังสินค้าเป็นของตัวเอง
7. สินค้าทุกอย่างต้องระบบได้ว่าซื้อจาก suppliers เจ้าใด ลำดับการสั่งซื้ออะไรเพื่อนำไปใช้เป็น tag number
ผู้บริหารทราบดีว่าการนำ Database มาใช้ในธุรกิจต้องออกแบบให้มีความสอดคล้องกับธุรกิจที่ดำเนินอยู่ ซึ่งในอนาคตระบบนี้ต้องจัดเก็บข้อมูลเป็นจำนวนมาก ซึ่งอาจจะมีผลต่อความเร็วในการทำงานของ database ทางผู้จัดทำงานของ XinniXsoft จึงแนะนำว่าต้องระวังการทำ normalization database ให้ดี หากแบ่งยากตารางมากเกินไปจะทำให้ระบบต้องจัดเก็บ overhead มากขึ้นตามลำดับซึ่งจะพิจารณาหลังจากดำเนินการทดสอบใช้งานไประยะหนึ่งแล้ว
ในการประชุมหัวหน้าทีมประจำปี ฝ่าย IT ของ weloveshopping ได้แจ้งให้แต่ละทีมทดสอบการใช้งาน database โดยให้ตั้งคำถามที่ต้องการได้จาก database สรุปได้ดังต่อไปนี้
ฝ่ายการเงิน : ให้หาตัวเลข Total sale ของทุกสาขา รวมกันเป็นเท่าไร
ฝ่ายการตลาด : สินค้าอะไรมียอดขายสูงสุด และยอดขายเป็นจำนวนเท่าไร
ฝ่ายจัดซื้อ : สินค้าที่เหลืออยู่ในคลัง มีสินค้าอะไรบ้าง คิดเป็นต้นทุนเท่าไร แยกตามสาขา และ เรียงตามลำดับตัวอักษร เพื่อให้นำข้อมูลไปใช้ได้ง่าย เพื่อนำไปคำนวณต้นทุนของคลังสินค้า
ER-Diagram

ตารางแสดงข้อมูลทั้งหมด 10 ตาราง
1. Member
บอกข้อมูลเกี่ยวกับผู้ที่เข้ามาเป็นสมาชิกของร้านค้า
Attributes
- Mem_ID Primary key
- Mem_Firstname
- Mem_Lastname
- Mem_Province
-Mem_Email
มีข้อมูลในตารางทั้งหมด 50 records
2. Employee
บอกข้อมูลเกี่ยวกับพนักงานของบริษัท
Attributes
- Emp_ID Primary key
- Emp_Firstname
- Emp_Lastname
- Emp_Tel
- Emp_Email
- Emp_Salary
มีข้อมูลในตารางทั้งหมด 30 records
3. Supplier
บอกข้อมูลเกี่ยวกับบริษัทผู้ผลิตที่ผลิตของให้กับบริษัท
Attributes
- Sup_ID Primary key
- Sup_Com_Name
- Sup_Tel
- Sup_Email
- Sup_Contact_Name
มีข้อมูลทั้งหมด 5 records
4. Product
บอกข้อมูลเกี่ยวกับผลิตภัณฑ์ที่มีอยู่ในบริษัท
Attributes
- Pro_ID Primary key
- Pro_Name
- Pro_Des
- Cost
- Price
- Sup_ID Foreign Key
- Cate_ID Foreign Key
มีข้อมูลทั้งหมด 30 records
5. Branch
บอกข้อมูลเกี่ยวกับสาขาของบริษัทว่า บริษัทมีสาขาอยู่ที่จังหวัดใดบ้าง
Attributes
- Bra_ID Primary key
- Bra_Province
- Bra_Tel
- Bra_Area
- Bra_Rental
มีข้อมูลทั้งหมด 10 records
6. Inventory
บอกเกี่ยวกับข้อมูลคลังสินค้าแต่ละสาขามีสินค้าเก็บไว้จำนวนเท่าไร
Attributes
- Order_ID Primary key
- Remain
- Bra_ID Foreign Key
มีข้อมูลทั้งหมด 20 records
7. Order
แสดงข้อมูลเกี่ยวกับประวัติการสั่งสินค้าว่า สั่งสินค้าล๊อตไหนมาจากผู้ผลิตบ้าง เมื่อวันไหน ปริมาณเท่าไหร่
Attributes
- Order_ID Primary key
- Quantity
- DateToOrder
- Pro_ID Foreign Key
แสดงข้อมูลทั้งหมด 50 records
8. Category
แสดงข้อมูลเกี่ยวกับประเภทของสินค้าว่าสินค้าแต่ละชนิดจัดอยู่ในหมวดใด
Attributes
- Cate_ID Primary key
- Cate_Name
แสดงข้อมูลทั้งหมด 6 records
9. Selling Transaction
แสดงข้อมูลเกี่ยวกับ transaction เกี่ยวกับการขายว่าขายให้สมาชิกท่านใด ขายที่สาขาอะไร ขายสินค้าชนิดใด ขายปริมาณเท่าไหร่ และขายไปเมื่อวันใด
Attributes
- Trans_ID Primary key
- Mem_ID Foreign Key
- Bra_ID Foreign Key
- Pro_ID Foreign Key
- Quantity_sold
- DateToSold
แสดงข้อมูลทั้งหมด 40 records
10. Employee Registration
แสดงข้อมูลเกี่ยวกับพนักงานว่าเข้าทำงานเมื่อไหร่ เข้าทำงานที่สาขาอะไร
Attributes
- Emp_ID Primary key
- Bra_ID Primary key
- Start_Job_Date Primary key
แสดงข้อมูลทั้งหมด 30 records
Relationship
Query1
ค้นหาว่าผลิตภัณฑ์ใดสามารถทำยอดขายได้มากที่สุด เป็นจำนวนเท่าไหร่
ใช้ข้อมูลในตาราง Product, Branch, Selling Transaction
ผลลัพธ์: ผลิตภัณฑ์ที่มียอดขายมากที่สุดคือ Compaq ซึ่งมียอดขายทั้งหมด $9,087
Query2
ค้นหาว่า Total sale ของทุกสาขา รวมกันเป็นเท่าไร
ใช้ข้อมูลในตาราง Product, Selling Transaction
ผลลัพธ์ : ยอดขายทั้งหมดของทุกผลิตภัณฑ์คือ $33,956
Query3
ค้นหาว่าสินค้าที่เหลืออยู่ในคลัง มีสินค้าอะไรบ้าง คิดเป็นต้นทุนเท่าไร แยกตามสาขา และ เรียงตามลำดับตัวอักษร เพื่อให้นำข้อมูลไปใช้ได้ง่าย เพื่อนำไปคำนวณต้นทุนของคลังสินค้า
ใช้ข้อมูลในตาราง Product, Inventory, Branch
ผลลัพธ์ : ตัวอย่างข้อมูลคำตอบในข้อ 3
Data Dictionary
Branch
Catergory
Employee
Employee Registration
Inventory
Member
Order
Product
Selling Transaction
Supplier





