Tips : หลักการในการออกแบบฐานข้อมูล วรวิทย์ พูลสวัสดิ์
หลักปฏิบัติในการออกแบบฐานข้อมูล ควรมีตัวอย่างข้อมูล ต้องพิจารณาว่าต้องเก็บ Attribute ใดบ้าง พิจารณาว่าต้องใช้ข้อมูลนั้นๆเป็น Search Key หรือไม่ Key หมายรวมไปถึง PK , FK หรือ Search Key ควรรู้จักคำศัพท์ภาษาอังกฤษที่เกี่ยวข้อง ตัวอย่างข้อมูลมักศึกษาได้จาก รายงานต่างๆที่เป็น Output ของระบบ
ตัวอย่าง ข้อมูลที่อยู่ : 57 หมู่ 1 ตำบลโขมง อ.ท่าใหม่ จ.จันทบุรี 22170 ข้อมูลที่อยู่ : 57 หมู่ 1 ตำบลโขมง อ.ท่าใหม่ จ.จันทบุรี 22170 จะแยกเก็บเป็น เลขที่ / หมู่ / ตำบล / อำเภอ / จังหวัด / รหัสไปรษณีย์ หรือ Address1 : เลขที่ 57 หมู่ 1 Address2 : ตำบลโขมง อำเภอท่าใหม่ Address3 : จ.จันทบุรี 22170
หลักปฏิบัติในการออกแบบฐานข้อมูล -2 ข้อมูลไม่มีลำดับ ต้องวิเคราะห์ว่าสิ่งที่ออกแบบจะต้องเป็น Filed หรือ ค่าใน Filed ระวังเรื่องค่า 0 / Space / Null อาจมี error ในการประมวลผล
ตัวอย่างข้อมูล : ข้อมูล การขาย จำนวนขายแยกตามขนาดสินค้า (sale) เลขที่การขาย (sale_no) ใหญ่ (bg) กลาง (md) เล็ก (sm) S001 4 S002 2 S003 3 S004 1
โครงสร้างข้อมูลที่ไม่เหมาะสม มีผลกับคำสั่ง SQL และการประมวลผล Select sum(bg), sum(md), sum(sm) from sale ; หากมีการคำนวณมูลค่าการขายจะทำได้อย่างไร? จำนวนขายแยกตามขนาดสินค้า (sale) เลขที่การขาย (sale_no) ใหญ่ (bg) กลาง (md) เล็ก (sm) S001 4 S002 2 S003 3 S004 1
ตัวอย่าง โครงสร้าง และ ข้อมูลที่ไม่เหมาะสม จำนวนขายแยกตามขนาดสินค้า (sale) เลขที่การขาย (sale_no) ใหญ่ (bg) กลาง (md) เล็ก (sm) S001 4 ขวด S002 2 ขวด S003 3 ขวด S004 1 ขวด Filed bg , md , sm ควรมีประเภทเป็น ตัวเลขหรือตัวอักษร? หากเป็นตัวเลขจะคำนวณได้
การเก็บค่าที่เกิดจากการคำนวณ ไม่เก็บค่าที่เกิดจากการคำนวณ เช่น อายุ แต่เก็บค่าที่ใช้ในการคำนวณ คือวันเกิดแทน
พิจารณาถึงการที่ข้อมูลมีการเปลี่ยนแปลง ตามวันเวลาที่เปลี่ยนไป พิจารณาถึงการที่ข้อมูลมีการเปลี่ยนแปลง ตามวันเวลาที่เปลี่ยนไป เช่น ปีการศึกษา ปีงบประมาณ จะมีช่วงเวลาเริ่มต้น เวลาสิ้นสุด จะรู้ได้อย่างไรว่าขณะนี้อยู่ช่วงเวลาใด ต้องตระหนักถึงข้อมูลที่มีการเปลี่ยนแปลงตามเวลา
พิจารณาถึงการที่ข้อมูลมีการเปลี่ยนแปลง ตาม สถานะที่เปลี่ยนแปลงไป พิจารณาถึงการที่ข้อมูลมีการเปลี่ยนแปลง ตาม สถานะที่เปลี่ยนแปลงไป ระบบจะมี Action ต่างๆ ต่อสถานะของข้อมูลที่เปลี่ยนไป การออกแบบต้องพิจารณาจาก Process ควรมีนิยามที่ชัดเจนสำหรับการเปลี่ยนแปลง ของแต่ละสถานะ เช่น สั่งซื้อชำระเงินจัดส่งสินค้า หรือ สั่งซื้อยกเลิกโดยลูกค้า หรือ สั่งซื้อยกเลิกจากเจ้าของร้าน (ก่อนชำระเงิน)
ประเภทของตารางในการเก็บข้อมูล – ตารางหลัก ตารางหลัก (Master Table) เป็นข้อมูลหลักของระบบ หากไม่มีข้อมูลชุดนี้ระบบไม่สามารถทำงานได้ มักเป็นตารางที่มีข้อมูลจำนวนมาก มีการเปลี่ยนแปลงได้ เป็นเพียงบาง Field แต่ทุกครั้งที่มีการเปลี่ยนแปลงต้องมีการบันทึกหลักฐาน เช่น ตารางข้อมูลนิสิต ข้อมูลสินค้า
ประเภทของตารางในการเก็บข้อมูล – ตาราง Transaction เป็นตารางที่ทำหน้าที่บันทึกการทำงานที่เกิดขึ้น การทำงานนั้นๆ จะมีผลต่อข้อมูลหลัก เป็นตารางที่มักต้องมีข้อมูลสถานะมาเสริมการทำงาน (ซึ่งต้องสำรวจจากการทำงาน ไม่ได้ดูจากข้อมูล เพียงอย่างเดียว)
ประเภทของตารางในการเก็บข้อมูล – ตาราง Set Up เป็นตารางที่คล้ายกับตาราง master มีจำนวนข้อมูลไม่มาก มีเพื่อช่วยในการงาน หากไม่มีจะทำให้ทำงานไม่สะดวกเท่า
Homework ทำการออกแบบฐานข้อมูลตามตัวอย่างข้อมูลในแฟ้ม Clothes.zip