A Practical Approach to Database Design
เรียบเรียงจาก
Access 2002
Desktop Developpers Handbook โดย Paul Litwin, Ken Getz,
Mike Gunderloy
- ศึกษาและทำความเข้าใจกับระบบงานที่ต้องการออกแบบ
·
ลักษณะงาน ขั้นตอนวิธีปฏิบัติ
·
ปัญหา - ความต้องการ
·
ข้อมูลสำคัญ ที่ต้องการเก็บบันทึก
- เขียนรายการงาน-หน้าที่
ความต้องการ(Requirements)
ที่จะใช้คอมพิวเตอร์ช่วยในการประมวลผล หรือแก้ปัญหา เป็นแนวทางในการทำงาน
และออกแบบตาราง(Table) เช่น
เป็นระบบติดตาม และเก็บบันทึกประวัติการศึกษา
เพื่อแจ้งผลการเรียนให้ผู้ปกครองทราบทางจดหมาย
เก็บบันทึกผลการเรียนรายวิชาโดยการป้อนข้อมูลลงใน Microsoft Excel เพื่อความสะดวกในการคำนวณค่าระดับคะแนน
- ออกหน้าจอสำหรับการบันทึกข้อมูล โดยการร่างลงในกระดาษ
และค่อย ๆ เพิ่มรายละเอียดให้ครบถ้วนสมบูรณ์
·
ระบบงานที่ไม่ได้ใช้คอมพิวเตอร์มาก่อน
ให้ศึกษารายละเอียดจากแบบฟอร์มเอกสารที่ใช้อยู่ เพื่อเป็นแนวทางในการออกแบบหน้าจอ
และตาราง ซึ่งอาจจะได้ตารางที่เป็น Non- Normalized
·
ระบบที่ใช้คอมพิวเตอร์อยู่แล้ว
สามารถคัดลอกหน้าจอ และตารางที่ใช้อยู่
มาปรับปรุงให้เหมาะสม(Normalized) พิมพ์ หน้าจอ
โครงสร้างตาราง เพื่อใช้เป็นข้อมูลในการออกแบบ จะช่วยให้ทำงานได้เร็วขึ้น
·
ระบบงานใหม่ที่ไม่เคยมีมาก่อน
ให้ร่างรูปแบบหน้าจอตามแนวความคิดที่ต้องการ
- ออกแบบตารางบนกระดาษ
โดยพิจารณาจากรายละเอียดที่ต้องการให้แสดงบนหน้าจอตามที่ร่างไว้ในขั้นตอนที่ 3
สำหรับผู้ที่ไม่มีประสบการในการออกแบบ
ก็อาจจะได้ตารางที่มีขนาดใหญ่ ที่ยังไม่ได้ Normalize ซึ่งสามารถ
Normalize ภายหลังได้ และถ้ายังไม่เข้าใจวิธี Normalize
ก็ให้คิดอยู่ตลอดเวลาว่า
ตารางแต่ละตารางจะแสดงรายละเอียดของสิ่งที่มีอยู่จริง(Entity) เพียงสิ่ง(Entity)เดียว
- ออกแบบรายงาน โดยดูเอกสาร หรือรายงานที่พิมพ์จากคอมพิวเตอร์
ที่ใช้อยู่เดิม พิจารณาร่วมกับผู้ใช้ ถึงความถูกต้อง เหมาะสม และความต้องการ
นำข้อสรุปที่ได้มาเขียนแบบบนกระดาษ
- ตรวจสอบรายละเอียดข้อมูลที่มีอยู่ในรายงาน
ตามที่ออกแบบไว้ตามขั้นตอนที่ 5 ว่ามีปรากฏอยู่ในตาราง
ที่ได้ออกแบบไว้ในขั้นตอนที่ 4 หรือไม่
ถ้ายังไม่มีอยู่ให้เพิ่มเข้าไปในตาราง หรือสร้างตารางขึ้นใหม่
- เขียนรายการข้อมูลลงในแต่ละตารางที่ได้ออกแบบไว้ในกระดาษ
โดยใช้ข้อมูลจริง และมีความเป็นไปได้ ในทุก ๆ กรณี
- เริ่ม Normalize
โดยกำหนด Candidate keys ของแต่ละตาราง และเลือก Pimary Key จาก
Candidates Keys การกำหนด Primary key จะต้องเลือกให้ กระทัดรัด คงที่ ง่าย
และเป็นที่รู้จักโดยทั่วไป ในทุกๆ ตารางจะมี Primary key และต้องป้องกันไม่ให้ Primary key มีข้อมูลซ้ำกัน
- กำหนด foreign keys ลงบนตาราง
ที่สัมพันธ์กัน เขียนความสัมพันธ์ระหว่างตาราง เป็น 1à1
หรือ 1à
M ในกรณีมี่มีความสัมพันธ์เป็นแบบ M
à
M จะต้องสร้างตารางใหม่ขึ้นมาเชื่อม
ระหว่างตารางทั้งสอง
- ตรวจสอบตารางตามหลักเกณฑ์ First Normal
Form โดยพิจารณาจาก Fields ทั้งหมดว่าสามารถแยกออกเป็น Field เล็กๆ
ได้อีกหรือไม่ และยังมี Field ที่เก็บข้อมูลในกลุ่มเดียวกันซ้ำ
ๆ กันอยู่หรือไม่ ถ้ามีอยู่ให้แยกออก จนกว่าจะเป็นไปตามหลักของ 1NF
- ตรวจสอบตารางตามหลักเกณฑ์ Second Normal Form โดยพิจารณาว่าเป็นรายละเอียดของ สิ่ง(Entity) เดียวกันหรือไม่ และข้อมูลในแต่ละคอลัมน์
สัมพันธ์และขึ้นอยู่กับ Primary Key หรือไม่
ถ้าไม่เป็นไปตามหลักเกณฑ์ของ 2NF ให้ทำการแยกตารางออก
และในกรณีที่ Primary Key มีลักษณะเป็นการใช้
Field รวมกัน ให้แยกตาราง โดยการแยก Key
- ตรวจสอบตารางตามหลักเกณฑ์ Third Normal Form โดยพิจารณาว่ามี Field ทีเก็บข้อมูลที่เกิดจากการคำนวณ
หรือมี Field ที่มีค่าแปรผันตามคอลัมน์ที่เป็น Nonkey
อื่นๆ อยู่หรือไม่
ถ้ามีอยู่ให้ตัดคอลัมน์ที่เก็บค่าที่ได้จากการคำนวณทิ้ง
และแยกคอลัมน์ที่มีค่าแปรผันตามคอลัมน์อื่นออกเป็นตารางใหม่
และใช้วิธีการสืบค้นค่าจากตาราง(Lookup Table)แทน
- ใช้วิธีการ Normalize ตาราง
ตามขั้นตอนที่ 12 เพื่อปรับเปลี่ยนความสัมพันธ์ระหว่างตารางให้ถูกต้องเหมาะสมมากขึ้น
- สร้างตารางโดยใช้ Access และสร้างความสัมพันธ์ระหว่างตารางโดยใช้คำสั่ง
Edit Relationships พร้อมทั้งทดลองใส่ข้อมูลลงในตาราง
โดยพยายามใส่ให้ครบทุกกรณีที่มีความเป็นไปได้ตามการใช้งานจริง
เพื่อตรวจสอบความถูกต้อง
- สร้างต้นแบบ Queries, Forms และ
Reports ในขณะที่สร้างต้นแบบ
ถ้าพบข้อบกพร่อง ให้แก้ไขการออกแบบให้ตรงความต้องการ
- แสดงต้นแบบให้ผู้ใช้ดู เพื่อประเมินรายละเอียดบนแบบฟอร์ม
และรายงานว่าถูกต้องตรงความต้องการของผู้ใช้หรือไม่ ถ้าไม่ถูกต้อง
ให้ปรับแก้การออกแบบใหม่ และทำ Normalize ตามขั้นตอน
ที่ 8-12 ใหม่ ตามการเปลี่ยนแปลง
- กลับไปที่หน้าจอของการออกแบบ ตาราง และเพิ่มเงื่อนไข
และการตรวจสอบ ตามกฏเกณฑ์ที่ต้องการ
- สร้าง Forms, Reports และ
Queries โดยพัฒนาให้ตรงตามความต้องการของการประยุกต์ใช้
บางครั้งอาจจำเป็นต้องแก้ไข การออกแบบใหม่ ก็ทำได้ตามความเหมาะสม
- ให้ผู้ใช้ทดสอบการทำงานทั้งระบบ
และปรับปรุงการออกแบบใหม่ให้ตรงตามความต้องการ
- ส่งมอบงาน