A Practical Approach to Database Design

เรียบเรียงจาก Access 2002 Desktop Developper’s Handbook โดย Paul Litwin, Ken Getz, Mike Gunderloy

  1. ศึกษาและทำความเข้าใจกับระบบงานที่ต้องการออกแบบ

·        ลักษณะงาน ขั้นตอนวิธีปฏิบัติ

·        ปัญหา - ความต้องการ

·        ข้อมูลสำคัญ ที่ต้องการเก็บบันทึก

  1. เขียนรายการงาน-หน้าที่ ความต้องการ(Requirements) ที่จะใช้คอมพิวเตอร์ช่วยในการประมวลผล หรือแก้ปัญหา เป็นแนวทางในการทำงาน และออกแบบตาราง(Table) เช่น เป็นระบบติดตาม และเก็บบันทึกประวัติการศึกษา เพื่อแจ้งผลการเรียนให้ผู้ปกครองทราบทางจดหมาย เก็บบันทึกผลการเรียนรายวิชาโดยการป้อนข้อมูลลงใน Microsoft Excel เพื่อความสะดวกในการคำนวณค่าระดับคะแนน
  2. ออกหน้าจอสำหรับการบันทึกข้อมูล โดยการร่างลงในกระดาษ และค่อย ๆ เพิ่มรายละเอียดให้ครบถ้วนสมบูรณ์

·        ระบบงานที่ไม่ได้ใช้คอมพิวเตอร์มาก่อน ให้ศึกษารายละเอียดจากแบบฟอร์มเอกสารที่ใช้อยู่ เพื่อเป็นแนวทางในการออกแบบหน้าจอ และตาราง ซึ่งอาจจะได้ตารางที่เป็น Non- Normalized

·        ระบบที่ใช้คอมพิวเตอร์อยู่แล้ว สามารถคัดลอกหน้าจอ และตารางที่ใช้อยู่  มาปรับปรุงให้เหมาะสม(Normalized) พิมพ์ หน้าจอ โครงสร้างตาราง เพื่อใช้เป็นข้อมูลในการออกแบบ จะช่วยให้ทำงานได้เร็วขึ้น

·        ระบบงานใหม่ที่ไม่เคยมีมาก่อน ให้ร่างรูปแบบหน้าจอตามแนวความคิดที่ต้องการ

  1. ออกแบบตารางบนกระดาษ โดยพิจารณาจากรายละเอียดที่ต้องการให้แสดงบนหน้าจอตามที่ร่างไว้ในขั้นตอนที่ 3 สำหรับผู้ที่ไม่มีประสบการในการออกแบบ ก็อาจจะได้ตารางที่มีขนาดใหญ่ ที่ยังไม่ได้ Normalize ซึ่งสามารถ Normalize ภายหลังได้  และถ้ายังไม่เข้าใจวิธี Normalize ก็ให้คิดอยู่ตลอดเวลาว่า ตารางแต่ละตารางจะแสดงรายละเอียดของสิ่งที่มีอยู่จริง(Entity) เพียงสิ่ง(Entity)เดียว
  2. ออกแบบรายงาน โดยดูเอกสาร หรือรายงานที่พิมพ์จากคอมพิวเตอร์ ที่ใช้อยู่เดิม พิจารณาร่วมกับผู้ใช้ ถึงความถูกต้อง เหมาะสม และความต้องการ นำข้อสรุปที่ได้มาเขียนแบบบนกระดาษ
  3. ตรวจสอบรายละเอียดข้อมูลที่มีอยู่ในรายงาน ตามที่ออกแบบไว้ตามขั้นตอนที่ 5 ว่ามีปรากฏอยู่ในตาราง ที่ได้ออกแบบไว้ในขั้นตอนที่ 4 หรือไม่ ถ้ายังไม่มีอยู่ให้เพิ่มเข้าไปในตาราง หรือสร้างตารางขึ้นใหม่
  4. เขียนรายการข้อมูลลงในแต่ละตารางที่ได้ออกแบบไว้ในกระดาษ โดยใช้ข้อมูลจริง และมีความเป็นไปได้ ในทุก ๆ กรณี
  5. เริ่ม  Normalize โดยกำหนด Candidate keys ของแต่ละตาราง และเลือก Pimary Key จาก Candidates Keys การกำหนด Primary key จะต้องเลือกให้ กระทัดรัด คงที่ ง่าย และเป็นที่รู้จักโดยทั่วไป ในทุกๆ ตารางจะมี Primary key และต้องป้องกันไม่ให้ Primary key มีข้อมูลซ้ำกัน
  6. กำหนด foreign keys ลงบนตาราง ที่สัมพันธ์กัน เขียนความสัมพันธ์ระหว่างตาราง เป็น 1à1 หรือ 1à M  ในกรณีมี่มีความสัมพันธ์เป็นแบบ M à M จะต้องสร้างตารางใหม่ขึ้นมาเชื่อม ระหว่างตารางทั้งสอง
  7. ตรวจสอบตารางตามหลักเกณฑ์ First Normal Form โดยพิจารณาจาก Fields ทั้งหมดว่าสามารถแยกออกเป็น Field เล็กๆ ได้อีกหรือไม่ และยังมี Field ที่เก็บข้อมูลในกลุ่มเดียวกันซ้ำ ๆ กันอยู่หรือไม่ ถ้ามีอยู่ให้แยกออก จนกว่าจะเป็นไปตามหลักของ 1NF
  8. ตรวจสอบตารางตามหลักเกณฑ์ Second Normal Form โดยพิจารณาว่าเป็นรายละเอียดของ สิ่ง(Entity) เดียวกันหรือไม่  และข้อมูลในแต่ละคอลัมน์ สัมพันธ์และขึ้นอยู่กับ Primary Key หรือไม่ ถ้าไม่เป็นไปตามหลักเกณฑ์ของ 2NF ให้ทำการแยกตารางออก และในกรณีที่ Primary Key มีลักษณะเป็นการใช้ Field รวมกัน ให้แยกตาราง โดยการแยก Key
  9. ตรวจสอบตารางตามหลักเกณฑ์ Third Normal Form โดยพิจารณาว่ามี Field ทีเก็บข้อมูลที่เกิดจากการคำนวณ หรือมี Field ที่มีค่าแปรผันตามคอลัมน์ที่เป็น Nonkey อื่นๆ อยู่หรือไม่ ถ้ามีอยู่ให้ตัดคอลัมน์ที่เก็บค่าที่ได้จากการคำนวณทิ้ง และแยกคอลัมน์ที่มีค่าแปรผันตามคอลัมน์อื่นออกเป็นตารางใหม่ และใช้วิธีการสืบค้นค่าจากตาราง(Lookup Table)แทน
  10. ใช้วิธีการ Normalize ตาราง ตามขั้นตอนที่ 12 เพื่อปรับเปลี่ยนความสัมพันธ์ระหว่างตารางให้ถูกต้องเหมาะสมมากขึ้น
  11. สร้างตารางโดยใช้ Access และสร้างความสัมพันธ์ระหว่างตารางโดยใช้คำสั่ง Edit Relationships พร้อมทั้งทดลองใส่ข้อมูลลงในตาราง โดยพยายามใส่ให้ครบทุกกรณีที่มีความเป็นไปได้ตามการใช้งานจริง เพื่อตรวจสอบความถูกต้อง
  12. สร้างต้นแบบ Queries, Forms และ Reports ในขณะที่สร้างต้นแบบ ถ้าพบข้อบกพร่อง ให้แก้ไขการออกแบบให้ตรงความต้องการ
  13. แสดงต้นแบบให้ผู้ใช้ดู เพื่อประเมินรายละเอียดบนแบบฟอร์ม และรายงานว่าถูกต้องตรงความต้องการของผู้ใช้หรือไม่ ถ้าไม่ถูกต้อง ให้ปรับแก้การออกแบบใหม่ และทำ Normalize ตามขั้นตอน ที่ 8-12 ใหม่ ตามการเปลี่ยนแปลง
  14. กลับไปที่หน้าจอของการออกแบบ ตาราง และเพิ่มเงื่อนไข และการตรวจสอบ ตามกฏเกณฑ์ที่ต้องการ
  15. สร้าง Forms, Reports และ Queries โดยพัฒนาให้ตรงตามความต้องการของการประยุกต์ใช้ บางครั้งอาจจำเป็นต้องแก้ไข การออกแบบใหม่ ก็ทำได้ตามความเหมาะสม
  16. ให้ผู้ใช้ทดสอบการทำงานทั้งระบบ และปรับปรุงการออกแบบใหม่ให้ตรงตามความต้องการ
  17. ส่งมอบงาน