การออกแบบฐานข้อมูล


การออกแบบฐานข้อมูลเพื่อนำมาใช้ภายในองค์การจำแนกได้เป็น 2 วิธีใหญ่ๆคือวิธีการอุปนัย (Bottom-up)และวิธีการนิรนัย (top-down) ดังนี้
1.วิธีการอุปนัย (Bottom-up หรือ inductive approach) เป็นการออกแบบสร้างฐานข้อมูลโดยอาศัยวิธีการรวบรวมข้อมูล และ/หรือโปรแกรมที่มีอยู่แล้วจากหลายๆหน่วยงานในองค์การ แนวคิดพื้นฐานของการออกแบบประเภทนี้คือ ถือว่าลักษณะงานของแต่ละหน่วยงาน มีความซับซ้อนสมบูรณ์ต่างกัน ข้อเสียของวิธีการนี้คือ การรวบรวมวิธีการย่อยๆ เข้าด้วยกันทำได้ไม่ง่ายนักและเสียเวลามากในการที่จะออกแบบ และสร้างระบบฐานข้อมูลที่สมบูรณ์


2.วิธีการนิรนัย (Top-down หรือ deductive approach) คือเลือกเอาผู้ที่เข้าใจระบบทั้งหมด ศึกษาว่าองค์กรมีข้อมูลอะไรบ้าง ต้องการอะไรบ้าง แล้วจึงนำมาออกแบบเป็นโครงสร้างทั้งหมดของฐานข้อมูล ปัญหาของวิธีการนี้คือ จะต้องได้ผู้ที่ศึกษาและเข้าใจระบบทั้งหมดจริง แต่ก็เป็นวิธีการที่เหมาะสมสำหรับการจัดวางระบบฐานข้อมูลที่มีความยุ่งยาก มีความหลากหลายของหน่วยงานต่างๆภายในองค์การ

1.Database Administrator (DBA) เป็นบุคคลที่ทำหน้าที่อำนวยการจัดการควบคลุมโครงงานทั้งหมด เป็นผู้รับผิดชอบ กำหนดควบคุมการใช้งานของฐานข้อมูลภายในองค์การ โดยปกติ DBA จะเป็นหัวหน้าทีมออกแบบ หรืออาจอยู่ในฐานะที่ปรึกษาโครงการเท่านั้น
2.Database System Analysts เป็นผู้เชี่ยวชาญมีหน้าที่ความรับผิดชอบที่จะศึกษาทำความเข้าใจระบบที่องค์การต้องการ
3.Computer Operation Staff ในองค์การขนาดเล็ก เจ้าหน้าที่ผู้ควบคุมเครื่องอาจจะทำหน้าที่ควบคุมการใช้เครื่องพื้นฐาน จัดทำ Backup เท่านั้น ซึ่งในบางกรณี องค์การอาจไม่มีเจ้าหน้าที่ฝ่ายนี้โดยตรง แต่ให้ผู้ใช้ระบบปลายทางเป็นผู้ควบคุมการทำงานด้วยตนเอง สำหรับในองค์การขนาดใหญ่ที่มีระบบซับซ้อน ผู้ที่เป็นผู้ควบคลุมเครื่องอาจจะต้องทำหน้าที่มากมาย
4.End User เป็นผู้ใช้ระบบที่อยู่ปลายทางสุดของระบบ

ขั้นตอนการออกแบบระบบฐานข้อมูล
1.รวบรวมข้อมูล

2.ทำความเข้าใจกับข้อมูลและการประยุกต์ใช้งาน
3.จัดรูปแบบของข้อมูลเพื่อวางโครงร่างของระบบขั้นต้น
4.วิเคราะห์และลงมือสร้างระบบที่ต้องการใช้งาน
ขั้นตอนที่ 1 การรวบรวมข้อมูล ในการออกแบบระบบฐานข้อมูล ทีมผู้ออกแบบระบบจะต้องเข้าใจระบบที่ต้องการสร้างทั้งระบบ ต้องรู้ว่ามีข้อมูลอะไรบ้างอยู่ในระบบ และต้องการผลลัพธ์ใดบ้าง ดังนั้นทีมผู้ออกแบบจึงจำเป็นต้องรวบรวมข้อมูลต่างๆทั้งหมดที่มีอยู่ในระบบจากผู้ที่เกี่ยวข้องทุกคนหรือถ้าเป็นไปไม่ได้ก็อางจะต้องเลือกตัวแทนของผู้ที่เกี่ยวข้องแต่ละฝ่ายเข้ามาเป็นผู้ให้ขอ้มูลดังกล่าว
วิธีการที่ใช้ในการรวบรวมข้อมูลมีหลายวิธีเช่นวิธีการใช้แบบสอบถาม สัมภาษณ์ สังเกตการปฏิบัติงานการทำงานของผู้ใช้ หรือวิธีการประชุมสัมมนาร่วมกัน เป็นต้นสิ่งที่ทีมผู้ออกแบบจะต้องศึกษารวบรวมข้อเท็จจริงของระบบประกอบด้วย กฏเกณฑ์การสร้างข้อมูล กฏเกณฑ์การเรียกใช้ข้อมูล วิธีการจัดการข้อมูล กฏเกณฑ์การเช็คความถูกต้องแม่นตรงของข้อมูล และกฏเกณฑ์การยกเลิกการใช้ข้อมูลของชุดนั้นๆ
คำถาม ที่ทีมผู้ออกแบบควรจะใช้เป็นหลักเกณฑ์ในการศึกษา มีดังนี้
1.คุณมีส่วนร่วมในการประมวลผลข้อมูล มากน้อยเพียงใด?
2.คุณมีส่วนเกี่ยวข้องอย่างไร?
3.คุณใช้เวลาในการสร้าง หรือเรียกข้อมูลต่างๆมากน้อยเพียงใด ใช้บ่อยแค่ไหน?
4.คุณเกี่ยวข้องกับข้อมูลในลักษณะใดบ้างในงานของคุณ?อย่างไร?
- รูปแบบของหน้าจอ
- การผลิต/ใส่ข้อมูลเป็นอินพุต
- การออกเอาต์พุต
- การแสดงรายการผลลัพธ์จากเครื่องคอมพิวเตอร์
- การใช้แบบ on-line หรือ batch processing
- การใช้แฟ้มข้อมูลร่วมกัน หรือเป็นไฟล์เฉพาะส่วนตัว เฉพาะหน่วยงาน
- การใช้แฟ้มของข้อมูลที่ไม่ใช่ computer files
5.คุณคิดว่าลักษณะใด ในเรื่องใดหรือรูปแบบใดที่ทำให้คุณทำงานได้อย่างมีประสิทธิภาพมากที่สุด
6.คุณต้องการสารสนเทศหรือข้อมูลข้อเท็จจริงใดๆเพิ่มเติม ที่จะทำให้การทำงานของคุณสะดวกขึ้น
7.คุณต้องการให้คำตอบของคุณในข้อ 6 ถูกนำเสนอในลักษณะใด?เช่นเสนอทางหน้าจอหรือทางเครื่องพิมพ์
ขั้นตอนที่ 2:การทำความเข้าใจกับข้อมูล วิธีการที่นิยมกันมากในการศึกษาเพื่อวางรูปแบบระบบฐานข้อมูล คือวิธีการแยกแยะความสัมพันธ์ซึ่งอาจแบ่งได้เป็น 4 ลักษณะคือ
1.task-data relationship จุดมุ่งหมายของฐานข้อมูลคืออะไร ชิ้นงานผลลัธ์ที่ต้องการคืออะไร จะต้องใช้ข้อมูลใดบ้างในการออกเอาต์พุต ดังกล่าว
2.field-field/key-field/key-key relationship การจัดข้อมูลเป็นฟิลด์ต่างๆนั้นมีกี่ฟิลด์มีฟิลด์ใดที่จะใช้เป็นฟิลด์หลัก (Key) ในการกำหนดรูปแบบหรือลักษณะของเรคอร์ด และถ้ามีมากกว่า 1 ฟิลด์หลัก แต่ละฟิลด์หลักจะมีความสำพันธ์กันอย่างไร
3.field-record relationship ลักษณะการจัดกลุ่มฟิลด์ที่สัมพันธ์กันเป็นเรคอร์ดเป็นไปในลักษณะใดทำอย่างไรจึงจะไม่ซ้ำซ้อนกัน
4.file-file relationship ถ้าแยกข้อมูลเก็บไว้ในหลายๆไฟล์จะเชื่อมโยงความสัมพันธ์ระหว่างไฟล์ได้อย่างไร ใช้ฟิลด์หลักใดบ้าง
ขั้นตอนที่ 3:การกำหนดรูปแบบระบบขั้นต้น ขั้นตอนถัดมาหลังจากที่ทีมงานตกลงกันเรียบร้อยแล้วในเรื่องของฟิลด์และไฟล์ (table) ที่จะใช้ภายในระบบ ทีมงานจะต้องกำหนดร่างของระบบคร่าวๆว่า ภายในระบบจะมีการส่งผ่านข้อมูล และแสดงผลลัพธ์เป็นเอาต์พุต ในลักษณะใดนั่นคือเป็นการกำหนดรูปแบบขั้นต้น (initial model) ของระบบ ในตัวอย่างใบ invoice เดิมเมื่อกำหนดความสัมพันธ์ระหว่าง table ต่างๆได้แล้วคณะผู้ออกแบบได้วางรูปแบบของระบบขั้นต้น การอ่านข้อมูลเป็นอินพุตเข้ามาจาก customer table และจากการใส่ข้อมูลโดยตรงจากเสมียนผู้ใส่ข้อมูลใบสั่งสินค้า และเอาต์พุตที่จะได้จากระบบนี้มี 3 เอาต์พุตด้วยกันคือ 2 tables (lineitem และ product) และใบ invoice ที่จะใช้ข้อมูลจาก table ต่างๆอีกทอดหนึ่ง
ขั้นตอนที่ 4 :วิเคราะห์รายละเอียดและลงมือสร้างระบบ หลังจากที่ได้รูปแบบของระบบขั้นต้นแล้ว ทีมงานจะต้องศึกษาอย่างละเอียดว่าจะต้องมีการจัดการอย่างไรตามลำดับขั้นตอน แล้วจึงวางรูปแบบของระบบในรายละเอียดเป็นขั้นตอนสุดท้าย
ขั้นตอนสุดท้ายของระบบการออกใบ invoice ทีมงานกำหนดรายละเอียดดังแสดงในรูปที่ 2.3 ตามลำดับขั้นดังนี้ คือ
- เสมียนใส่ชื่อลูกค้าเป็นอินพุตเข้ามา
- ระบบเช็คชื่อลูกค้า แล้วเสนอรายละเอียดของข้อมูลลูกค้าจากใน customer table
- เสมียนตรวจสอบความถูกต้องข้อมูลของลูกค้าบนหน้าจอ (เช่น ตำบล ที่อยู่ ของลูกค้า)
- เสมียนใส่ข้อมูลเป็นรหัสสินค้าที่ลูกค้าสั่งเข้ามา
- ระบบเช็ครหัสสินค้ากับข้อมูลที่มีอยู่ใน product table
- ระบบเช็คและปรับค่าของข้อมูลเกี่ยวกับเครดิตของลูกค้าจาก customer table
- ถ้าเครดิตไม่มีปัญหา ประมวลผลต่อเพื่อออกเอาต์พุต คือออกใบinvoice ปรับรายการสินค้าใน lineitem table และปรับจำนวนสินค้าใน product table ตามลำดับต่อไปนี้ ในการวิเคราะห์รายละเอียดของระบบการออกใบ invoice ดังกล่าวนี้ ผู้ออกแบบและวิเคราะห์ระบบได้กำหนดใช้ 2 table เป็นอินพุต คือ customer table และ product table และจะมี 4 table เป็นเอาต์พุต คือ invoice,lineitem,product และ customer มีข้อสังเกตว่า customer และ product นั้นเป็น table ที่ทำหน้าที่ทั้งในช่วงที่เป็นอินพุต (ในขั้นตอนเช็ครายละเอียดเกี่ยวกับตัวลูกค้า เครดิตของลูกค้า และเกี่ยวกับตัวสินค้า) และในช่วงที่เป็นเอาต์พุต (ในขั้นตอนการปรับเครดิตของลูกค้าใน customerและการปรับจำนวนสินค้าใน product)
ขั้นตอนการกำหนดวิเคราะห์รายละเอียดของระบบที่จะสร้างนี้เป็นขั้นตอนที่สำคัญเป็นการกำหนดว่าจะมีการใช้ tableใดอย่างไรและจะมีขั้นตอนการดำเนินงานของระบบในภาพรวมอย่างไร ทั้งนี้เพื่อที่จะเป็นแนวทางสำหรับผู้ที่จะลงมือสร้างระบบต่อไปนี้
การพัฒนาระบบฐานข้อมูลภายในองค์การ ในการที่จะพัฒนาระบบฐานข้อมูลขึ้นมาใช้ภายในองค์การ จะต้องมีการวางแผนดำเนินการเป็นขั้นตอน กำหนดว่าช่วงไหนจะทำอะไร จะต้องใช้เวลาในการดำเนินการแต่ละขั้นตอนนานเท่าใด การดำเนินการในแต่ละช่วงนั้นจะกินเวลานานเท่าใด คงจะกำหนดเป็นกฎเกณฑ์ตายตัวไม่ได้ ขึ้นอยู่กับว่าระบบที่พัฒนานั้นมีความซับซ้อนเพียงใด จะต้องมีส่วนเกี่ยวพันกับบุคลากรกี่ฝ่าย ใครบ้างและปัญหาสำคัญคือ จะได้รับความร่วมมือจากบุคลากรในส่วนต่างๆ มากน้อยเพียงใด โดยเฉพาะอย่างยิ่งหถ้าเป็นระบบใหม่ที่ถูกแนะนำเสนอเพื่อพัฒนาขึ้นมาใช้งานในบริษัท อาจเกิดปฏิกิริยาต่อต้านจากบุคลากรในบริษัทได้ง่าย การวางแผนเพื่อพัฒนาออกแบบระบบควรจะใช้บุคลากรจากหลายๆ ฝ่ายร่วมมือกัน ร่วมกันเป็นคณะกรรมการพิจารณาดำเนินงานในแต่ละขั้นตอน โดยเฉพาะอย่างยิ่งในองค์การขนาดใหญ่ที่ต้องการสร้างระบบที่ซับซ้อน
ขั้นตอนในการพัฒนาระบบฐานข้อมูลในองค์การอาจแบ่งได้เป็นลำดับขั้นดังนี้
1. กำหนดจุดมุ่งหมายของระบบฐานข้อมูล
2. กำหนดขอบข่าย/หน้าที่ของ DBA
3. กำหนดแผนปฏิบัติงานการรวบรวมข้อมูลที่ต้องการ
4. กำหนดมาตรฐานของการรวบรวมข้อมูลที่ต้องการ
5. กำหนดโครงสร้างขั้นตอนของระบบฐานข้อมูล และกำหนดรูปแบบฟิลด์-เรคอร์ด-ไฟล์
6. วิเคราะห์ระบบการประมวลและการใช้ข้อมูลที่ใช้อยู่ในปัจจุบัน และคำนึงถึงการเปลี่ยนแปลงในอนาคต
7. เลือกซื้อ หรือจัดสร้างระบบฐานข้อมูลที่ต้องการ หลังจากนำระบบฐานข้อมูลมาติดตั้ง/ใช้งานภายในองค์การแล้ว ยังคงจะต้องมีขั้นตอนการดำเนินงานต่อไปคือ
8. สำรวจติดตามผลการใช้/พฤติกรรมการใช้ระบบฐานข้อมูลของบุคลากร
9. ปรับปรุง/เปลี่ยนแปลง โครงสร้างตามความต้องการที่เปลี่ยนไปภายในองค์การ หรือตามเทคโนโลยีที่เปลี่ยนแปลงไปตามกาลเวลา
ลักษณะของระบบฐานข้อมูลที่ดี
- นำเสนอและสนองตอบต่อความต้องการของผู้ใช้ระบบ ในหลายรูปแบบตรงตามความต้องการผู้ใช้หลายระดับ
- ผู้ใช้ระบบสามารถเรียกใช้ข้อมูลขึ้นมาใช้ได้หลายวิธี ตามความเหมาะสมของแต่ละหน่วยงาน
- มีการควบคุมการทำงานของหน่วยเก็บรักษาข้อมูลภายในระบบทั้งหมด
- ข้อมูลและโปรแกรมมีความเป็นอิสระต่อกัน(เมื่อมีการเปลี่ยนแปลงค่าของข้อมูล ก็ไม่ต้องแก้ไขโปรแกรม หรือเมื่อแก้ไขโปรแกรมก็ไม่ต้องแก้ไขโครงสร้างของข้อมูลด้วย)
- มีความสมบูรณ์/เชื่อถือได้ของข้อมูลที่เก็บอยู่ในแฟ้มข้อมูลต่างๆ ในระบบฐานข้อมูล
เพื่อที่จะพัฒนาระบบฐานข้อมูลให้มีคุณสมบัติตามความต้องการของผู้ใช้ระบบ และได้ระบบที่ทำงานได้อย่างมีประสิทธิภาพภายในองค์การ ทีมผู้ออกแบบระบบควรคำนึงถึงหลักการพื้นฐานในการออกแบบระบบ (design principles) ดังนี้
- long-team adaptability : สามารถปรับปรุงแก้ไขในระยะยาวได้ง่าย โดยไม่กระทบกระเทือนต่อโครงสร้างทั้งหมดที่สร้างไว้แล้วมากนัก
- short-team flexibility : สะดวกและง่ายในการติดตั้งและใช้งาน
- completeness : มีคำอธิบาย ความหมายและความสัมพันธ์ของข้อมูลชัดเจน ทำให้ผู้ใช้เข้าใจระบบได้ดี
- parsimony : ไม่มีความซ้ำซ้อนในการออกแบบ ไม่มีข้อจำกัดในการสร้างความสัมพันธ์ระหว่างข้อมูล
- history : มีคำอธิบายบอกวิธีการตรวจสอบติดตาม (trace) ข้อมูลหรือเรคอร์ดที่สูญหาย หรือบอกความหมายของข้อมูลที่อาจแปรเปลี่ยนไปตามกาลเวลาที่ใช้ระบบฐานข้อมูลนั้นๆ
- local properties : แฟ้มข้อมูลต้องมีความถูกต้อง มั่นคง และสมบูรณ์ เมื่อปรับเปลี่ยน (update) ข้อมูลตัวใดก็ไม่กระทบกระเทือนโครงสร้างทั้งหมด
- comparability : ข้อมูลที่เก็บไว้มีค่าตรงกับในคำจำกัดความของฟิลด์และเรคอร์ด และสามารถเปรียบเทียบกันได้ถูกต้อง




HOME. หน้าแรกของdbms