วิธีออกแบบฐานข้อมูล : ตอน 2

 

 
Home Page  |   รายการบทความ   |   ลิงค์ที่เกี่ยวข้อง   |   laploy.com  |  เกี่ยวกับผู้เขียน

 

วิธีออกแบบฐานข้อมูล : ตอน 2

 

4.4. การออกแบบฐานข้อมูลในโลกจริง
ในโลกของความเป็นจริงการออกแบบฐานข้อมูลจะต้องคำนึงถึงผู้ใช้งานเป็นหลัก โดยการกระทำต่างๆ ข้อผู้ใช้จะมีผลมาจากกฎทางธุรกิจ กฎทางธุรกิจคือสิ่งที่เกิดจากธรรมชาติของกิจกรรมในหน่วยงานนั้นๆ เช่นบริษัทที่ผลิตไอศกรีมย่อมมีกฎทางธุรกิจที่แตกต่างจากธนาคาร  กฎทางธุรกิจคือตัวกำหนดการทำงาน ยกตัวอย่างเช่นหากกฎทางธุรกิจกำหนดไว้ว่าไอศกรีมหางเสือจัดเป็นสินค้าประเภท ฮ พนักงานย่อมจะจัดเก็บข้อมูลสินค้าประเภทนี้ไว้ในฐานข้อมูลของสินค้าประเภท ฮ

บางครั้งมุมมองของผู้ใช้กับมุมมองของผู้ออกแบบฐานข้อมูลอาจแตกต่างกัน ขึ้นอยู่กับการตีความกฎทางธุรกิจ แม้จะมองต่างมุมแต่ทั้งผู้ใช้และผู้ออกแบบฐานข้อมูลอาจถูกทั้งคู่ ที่เห็นต่างกันเป็นเพียงการมองปัญหาจากคนละด้าน

คนที่สำคัญสุดในการออกแบบฐานข้อมูลไม่ใช่ตัวท่าน แต่เป็น "ผู้ใช้ระดับล่างสุด" (end-user ผู้ใช้ที่ไม่มีความรู้ด้านคอมพิวเตอร์เลย แต่มักมีความรู้เกี่ยวกับกฎทางธุรกิจเป็นอย่างดี เช่นเจ้าหน้าที่บริหารระดับสูง) ท่านจึงต้องค้นหาความต้องการที่แท้จริงของผู้ใช้ระดับล่างสุดให้ได้ เคล็ดลับคือต้องคุยให้ถูกคน คนที่ท่านควรคุยด้วยคือผู้ใช้ระดับล่างสุดที่รู้ความต้องการทางธุรกิจอย่างรอบด้าน

ท่านต้องสืบให้รู้ว่าพนักงานระดับใดได้รับข้อมูลในขอบเขตใด เพราะบางครั้งผู้ใช้อาจเป็นนักพัฒนาซอฟต์แวร์ หรือเป็นผู้ใช้ระดับล่างสุด หรือแม้กระทั้งเป็นคนจากทั้งสองกลุ่ม พนักงานเหล่านี้ย่อมได้รับข้อมูลในขอบเขตที่แตกต่างกัน ยกตัวอย่างเช่น  พนักงานระดับล่างจะได้รับข้อมูลแคบๆ เฉพาะในส่วนที่ตนเกี่ยวข้อง ขณะที่พนักงานระดับบริหารจะได้รับข้อมูลในมุมกว้างแต่เป็นข้อมูลรวบยอด ท่านจำเป็นต้องรู้ว่าหากต้องการรายละเอียดต้องไปคุยกับพนักงานระดับล่างในแต่ละแผนก หากต้องการภาพรวมต้องไปคุยกับพนักงานระดับบริหาร

 

4.5. กฎทางธุรกิจ
กฎทางธุรกิจ (Business Rules) คือนิยามของกระบวนการ คำจำกัดความและข้อกำหนดต่างๆ ที่จำเป็นต้องนำมาใช้เพื่อให้หน่วยงานสามารถทำงานได้บรรลุเป้าหมาย ยกตัวอย่างกฎทางธุรกิจเช่น "ยอมให้ลูกค้านำสินค้าที่มีปัญหามาเปลี่ยนได้ภายในเจ็ดวันหลังจากซื้อ" หากเราออกแบบฐานข้อมูลมาอย่างสวยงามตามหลักการออกแบบทุกประการ แต่ฐานข้อมูลนั้นไม่สามารถตอบสนองกฎทางธุรกิจได้ฐานข้อมูลนั้นก็ไร้ค่า

โปรดพิจารณาแผนภูมิ ERD ในภาพ 4-2 อันเป็นโครงสร้างฐานข้อมูลร้านขายหนังสือออนไลน์ (ขายในอินเตอร์เน็ต) จะเห็นว่าข้อมูลของหนังสือหนึ่งเล่มถูกแบ่งแยกออกเป็นหกตาราง แต่ละตารางถูกเชื่อมโยงด้วยตัวเชื่อมที่ต่างกัน ยกตัวอย่างเช่นตาราง Publication (เป็นตารางหลักเก็บข้อมูลหนังสือ) ถูกกำหนดให้มีสี่คอลัมน์ คอลัมน์แรกคือ publication_id เป็นคีย์หลักของตารางนี้ subject_id เป็นฟอร์เรนคีย ทำหน้าที่เชื่อมกับตาราง subject ซึ่งเก็บข้อมูลประเภทหรือชนิดของหนังสือ author_id เป็นฟอร์เรนคียเช่นกันทำหน้าที่เชื่อมกับตาราง Author ซึ่งเก็บข้อมูลผู้แต่งหนังสือ และสุดท้ายคือคอลัมน์ title ที่ไม่ได้เชื่อมโยงกับใคร ทำหน้าที่เก็บชื่อหนังสือ

ฐานข้อมูลมีคุณสมบัติต่างๆ อย่างที่กล่าวถึงในย่อหน้าบนเพราะผู้ออกแบบพิจารณากฎทางธุรกิจแล้วนำมาใช้ออกแบบฐานข้อมูล หากเป็นแผนภูมิ ERD ของร้านขายหนังสือออนไลน์ร้านอื่น ที่มีกฎทางธุรกิจแตกต่างจากนี้ โครงสร้างต่างๆ ในแผนภูมิ ERD ย่อมจะแตกต่างไปจากนี้ การทำความเข้าใจกฎทางธุรกิจจะช่วยให้เข้าใจการไหลของข้อมูลที่เกิดขึ้นในการทำงานประจำวัน สิ่งนี่แหละคือหัวใจของการออกแบบฐานข้อมูล

 

4.6. นิยามกฎทางธุรกิจ
นิยามกฎทางธุรกิจคือกระบวนการต่างๆ ที่เกิดขึ้นในการทำงานประจำวัน การที่องค์กรตัดสินใจว่างานต่างๆ จะดำเนินการด้วยกรรมวิธีใด หรือองค์กรมีขึ้นเพื่อทำหน้าที่อะไร มีงานอะไรที่เกี่ยวข้องบ้าง มีรายได้จากอะไร และทำกำไรได้ด้วยวิธีใดมีผลมาจากการนิยามกฎทางธุรกิจ

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

นิยามกฎทางธุรกิจจะเป็นตัวกำหนดโครงสร้างของฐานข้อมูล ยกตัวอย่างเช่นในฐานข้อมูลของร้านขายหนังสือออนไลน์ที่แสดงในแผนภูมิ ERD ที่ผ่านมา มีกฎทางธุรกิจว่าในตาราง Publication หนังสือทุกเล่มอย่างน้อยต้องมีผู้แต่งหนึ่งคน และหนังสือบางเล่มอาจมีผู้แต่งสองคนหรือมากกว่าก็ได้  แต่หนังสือทุกๆ เล่มจะมีผู้แต่งจำนวนศูนย์คนไม่ได้

ตาราง edition เกิดจากกฎทางธุรกิจว่าหนังสือหนึ่งเล่มอาจมีการปรับปรุงและพิมพ์ใหม่ได้หลายครั้ง ดังนั้นหนังสือหนึ่งเล่มจึงมีข้อมูลในตาราง edition ได้หลายบรรทัด แต่จะเป็นศูนย์ไม่ได้  (ต้องมีการพิมพ์อย่างน้อยหนึ่งครั้ง) ส่วนข้อมูลผู้เขียน (ตาราง Author) มีข้อกำหนดว่าผู้เขียนหนึ่งคนอาจมีจำนวนเล่มของหนังสือที่เกี่ยวข้องเป็น ศูนย์ หนึ่ง สอง หรือมากกว่าก็ได้ (แม้ผู้เขียนที่มีหนังสือศูนย์เล่มยังไม่จัดว่าเป็นผู้เขียนจริงๆ แต่กฎทางธุรกิจอนุโลมให้)

 

4.7. ความสำคัญของกฎทางธุรกิจ
ในขั้นตอนการออกแบบฐานข้อมูลผู้เขียนเคยเจอทั้งลูกค้าที่บอกว่า "อย่าใส่กฎทางธุรกิจไว้ในฐานข้อมูล" และลูกค้าที่บอกว่า "กรุณาใส่กฎทางธุรกิจไว้เยอะๆ" ทั้งสองเงื่อนไขที่ว่ามานั้นล้วนเหลวไหล เพราะการออกแบบฐานข้อมูลอย่างไรก็ต้องใส่กฎทางธุรกิจไว้เสมอ แต่การใส่กฎทางธุรกิจไว้เยอะๆ ก็ทำไม่ได้เช่นกัน บางคนอาจต้องการให้สพร็อกซ์เป็นตัวกำหนดกฎทางธุรกิจ ผู้เขียนไม่แนะนำให้ทำเช่นนั้นเพราะจะทำให้ฐานข้อมูลทำงานอย่างไม่มีประสิทธิภาพ (โดยเฉพาะอย่างยิ่งในแบบจำลองฐานข้อมูลสัมพันธ์) แต่การใส่เมธอดไว้คู่กับออพเจ็กต์ฐานข้อมูลกลับให้ผลตรงกันข้าม คือทำให้ฐานข้อมูลมีประสิทธิภาพดีขึ้น (ในแบบจำลองฐานข้อมูลแบบวัตถุ)

เนื่องจากหนังสือเล่มนี้เน้นเฉพาะฐานข้อมูลสัมพันธ์ ผู้เขียนจึงไม่แนะนำให้ใส่กฎทางธุรกิจไว้ในสพร็อกซ์ แต่ให้ใช้โครงสร้างของตาราง และความสัมพันธ์ระหว่างตาราง เป็นตัวสะท้อนกฎทางธุรกิจ ส่วนกฎทางธุรกิจที่มีตรรกะซับซ้อนให้ทำในระดับโค้ดของโปรแกรมประยุกต์ ควรใช้สพร็อกซ์เพื่อทำหน้าที่เชื่อมต่อระหว่างฐานข้อมูลและโปรแกรมประยุกต์ ในหนังสือนี้ท่านจะได้เรียนวิธีสร้างและใช้งานสพร็อกซ์โดยละเอียด ทั้งสพร็อกซ์ ภาษา T-SQL และสพร็อกซ์ภาษา C#

 

4.8. ความสัมพันธ์กับมนุษย์
ฐานข้อมูลและโปรแกรมประยุกต์ล้วนจะถูกใช้งานโดยมนุษย์ทั้งสิ้น ท่านจึงหลีกเลี่ยงไม่ได้ที่จะต้องมีปฏิสัมพันธ์กับมนุษย์ โดยเฉพาะอย่างยิ่งผู้ใช้งานระดับปลายแถวเพราะเป็นเจ้าหน้าที่ระดับที่รู้รายละเอียดปลีกย่อยดีกว่าใคร และเป็นเป็นกลุ่มผู้ใช้กลุ่มใหญ่ที่สุด การพูดคุยและการรับฟังผู้ใช้งานระดับปลายแถวจะทำให้ท่านออกแบบฐานข้อมูลได้ดีขึ้น สิ่งที่ควรคำนึงด้านความสัมพันธ์กับมนุษย์มีดังนี้

•    เปลี่ยนลักษณะเฉพาะให้เป็นลักษณะทั่วไป: นักออกแบบฐานข้อมูลต้องแปลงสิ่งผู้ใช้มองว่าเฉพาะเจาะจงให้เป็น แอบสเทรก (abstract การลดทอนรายละเอียดให้เป็นนามธรรมเพื่อให้เกิดความไม่จำเพาะเจาะจง) ยกตัวอย่างเช่นผู้ใช้มองว่าการขายรถยี่ห้อโตโยต้ากับยี่ห้อฟอร์ดเป็นกระบวนการที่แตกต่างกันโดยสิ้นเชิง เพราะบริษัทผู้ผลิตคนละรายกัน ของแถมต่างๆ ก็ไม่เหมือนกัน บริการหลังการขายก็แตกต่างกัน ฯลฯ แต่ในมุมมองนักออกแบบฐานข้อมูลท่านจะต้องมองว่าทั้งโตโยต้าและฟอร์ดเป็นรถยนต์เหมือนกัน การขายรถยนต์อะไรก็ตามเป็นธุรกรรมแบบเดียวกัน หากต้องแบ่งแยกอาจก็อาจแบ่งว่าเป็นรถเก๋งหรือรถกระบะ แต่ไม่ได้มองว่าการขายรถคนละยี่ห้อเป็นธุรกรรมที่แตกต่างกันโดยสิ้นเชิง

•    คุยให้ถูกคน: จากประสบการของผู้เขียนพบว่าพนักงานบางคนจะมีความรู้ทางเทคนิคดี ขณะที่บางคนไม่ แต่พนักงานที่มีความรู้ทางเทคนิคดีใช่ว่าจะเป็นแหล่งข้อมูลเพื่อการออกแบบฐานข้อมูลดีกว่าคนที่รู้เทคนิคน้อยกว่า ปรกติแล้วในองค์กรเล็กๆ พนักงานที่รู้รายละเอียดของธุรกิจดีที่สุดคือเจ้าหน้าที่บริหารระดับสูง ถ้าเป็นองค์ที่ใหญ่ขึ้นพนักงานที่มีความรู้ในรายละเอียดของธุรกิจดีที่สุดคือเจ้าหน้าระดับผู้จัดการ ถ้าเป็นองค์กรเล็กๆ การเข้าพบเจ้าหน้าที่บริหารระดับสูงจะทำได้ง่าย ในองค์ที่ใหญ่ขึ้นการเข้าพบเจ้าหน้าที่บริหารระดับสูงทำได้ยากหรือทำไม่ได้เลย แต่ถึงจะทำได้ก็อาจไม่เป็นประโยชน์ต่อการออกแบบฐานข้อมูลมากนัก

•    คุยกับคนคอมพิวเตอร์: เจ้าหน้าที่ฝ่ายคอมพิวเตอร์บางครั้งก็ให้ข้อมูลที่มีค่า บางครั้งก็ทำตัวเป็นอุปสรรค เพราะบางครั้งพนักงานภายในอาจจะอ่านความต้องการของผู้ใช้ได้ไม่ชัดเจนเท่าคนนอกที่มักมีมุมมองซึ่งสดใหม่กว่า แต่อย่าเหมาว่าท่านรู้ดีกว่าพนักงานภายในไปเสียทุกเรื่อง ให้ตระหนักว่าท่านมีความรู้ความชำนาญในการออกแบบฐานข้อมูลมากกว่า (ถ้าไม่เป็นเช่นนั้นคงไม่ถูกจ้างให้ไปทำ) แต่ในเรื่องกฏทางธุรกิจแล้วย่อมรู้น้อยกว่า

•    รับแต่ข้อมูลที่ถูกต้อง: นักออกแบบฐานข้อมูลจะต้องรู้ว่าควรฟังใครหรือไม่ควรฟังใคร ผู้ใช้บางระดับอาจมีภาพมุมกว้างแต่ขาดรายละเอียด ในขณะที่บางระดับมีภาพมุมแคบแต่มีรายเอียดมาก การพบปะพูดคุยกับผู้ใช้หลายๆ ระดับๆ ละหลายๆ คนจะช่วยให้ได้รับข้อมูลมากขึ้นซึ่งจะช่วยให้ท่านกลั่นกรองได้ว่าข้อมูลใดถูก ข้อมูลใดผิด

•    ระวังการใช้คำ: คำเฉพาะหรือคำจาร์กอนในองค์กรต่างๆ อาจทำให้ไขว้เขวได้ง่าย ผู้เขียนเคยพบโครงการหนึ่งที่ผู้ออกแบบฐานข้อมูลออกแบบผิด เพราะตอนสัมภาษณ์ผู้ใช้เพื่อเก็บข้อมูลเข้าใจผิดความหมายของคำๆ หนึ่งผิดไป  ต่อมาภายหลังเมื่อรู้ว่าผิดก็สายไปแล้ว (เพราะฐานข้อมูลและแอพลิเกชันพัฒนาเสร็จแล้วและระบบเริ่มเดินเครื่องแล้ว) คำที่เข้าใจผิดคือคำว่า "ผนึก" เป็นคำจาร์กอนในองค์กรนั้นหมายถึงขั้นตอนระหว่างกลางในสายการผลิต เป็นการห่อหุ้มชิ้นส่วนก่อนส่งไปยังกระบวนการถัดไป แต่นักออกแบบฐานข้อมูลเข้าใจผิด คิดว่าคำนี้หมายถึงขั้นตอนบรรจุหีบห่ออันเป็นขั้นตอนสุดท้าย การพูดคุยกับผู้ใช้ท่านจะต้องสอบถามความหมายของคำต่างๆ ให้ชัดเจน อย่าอนุมานความหมายไปเอง

 

4.9. ศึกษาจากระบบเดิม
บ่อยครั้งหน่วยงานที่ท่านจะออกแบบสร้างฐานข้อมูลมีระบบฐานข้อมูลเดิมอยู่แล้ว มันอาจเป็นแหล่งข้อมูลที่มีค่าให้ท่านใช้หาข้อมูลสำหรับออกแบบฐานข้อมูลได้ดี ระบบฐานข้อมูลเดิมอาจเป็นเพียงเอกสารกระดาษ ระบบฐานข้อมูลเก่าในเมนเฟรม หรือแม้แต่การจัดเก็บข้อมูลด้วยโปรแกรมเวิร์คชีต จงศึกษาจากระบบเดิมในสิ่งต่างๆ ต่อไปนี้

•    เอกสารกระดาษ: หากระบบเดิมทำงานโดยใช้เอกสารกระดาษ ให้รวบรวมเอกสารให้ได้มากที่สุดแล้วศึกษาจากเอกสารเหล่านั้น การทำเช่นนี้จะทำได้ง่ายขึ้นหากมีพนักงานในองค์กรนั้น ซึ่งเป็นผู้มีความรู้ในระบบเป็นอย่างดี ให้ความช่วยเหลือในการรวมรวมและแยกแยะเอกสาร

•    ระบบฐานข้อมูลเดิม: การศึกษาระบบงานจากฐานข้อมูลเดิมมักทำได้อย่างยากลำบาก เพราะโครงสร้างของฐานข้อมูลเดิมอาจมีขนาดใหญ่และซับซ้อน หรือเข้าถึงได้ยากหรือไม่ได้เลย เช่นเดียวกับเอกสารกระดาษ การศึกษาระบบฐานข้อมูลเดิมจะทำได้ง่ายขึ้นหากได้รับความช่วยเหลือจากพนักงานที่มีความรู้ในระบบเป็นอย่างดี

•    ระบบผสม: มีบางกรณีที่ระบบฐานข้อมูลเดิมขององค์กรเป็นระบบผสม ที่มีข้อมูลจากแผนกต่างๆ ซึ่งใช้เทคโนโลยีแตกต่างกัน เช่นแผนกการผลิตใช้แอพลิเกชันที่สร้างจากภาษา C# แผนกบัญชีใช้ออราเคิล และแผนกบริหารใช้ไมโครซอฟต์เอกเซล ฐานข้อมูลในระบบต่างๆ เหล่านี้เชื่อมโยงกันผ่านฐานข้อมูลกลางหรือเกตเวย์ อันเป็นฐานข้อมูลกลางที่รับข้อมูลจากทุกหน่วยงานมาผสมกัน

•    แปลงจากเวิร์คชีต: เวิร์คชีต (worksheet)หรือสเปรดชีต (spreadsheet) แม้จะคล้ายแฟลตไฟล์แต่เมื่อพิจารณาโดยละเอียดจะพบว่าอาจมีความซับซ้อนกว่า เพราะอาจมีเวิร์คชีตซ้อนกันหลายระดับและอาจมีสูตรคำนวณมากมาย แต่โดยทั่วไปแล้วการศึกษาจากเวิร์คชีตจะง่ายกว่าการศึกษาจากระบบข้อมูลเดิมในเมนเฟรมและระบบผสม

•    ฐานข้อมูลสัมพันธ์เดิม: ในกรณีที่หน่วยงานมีฐานข้อมูลสัมพันธ์อยู่แล้ว แต่ต้องการสร้างฐานข้อมูลใหม่เพราะของเก่ายุ่งเหยิงไม่มีประสิทธิภาพ ในกรณีนี้การศึกษาระบบงานจากฐานข้อมูลเดิมคือการหาว่าปัญหาคืออะไร และมีวิธีแก้ไขอย่างไรบ้าง โดยปรกติแล้วผู้ใช้ที่ไม่พอใจในระบบเดิมจะมีแนวคิดอยู่ในใจแล้วว่าต้องการปรับปรุงอะไรบ้าง

 

4.10. ข้อจำกัดและการตรวจสอบ
ข้อจำกัดคือสิ่งที่กำหนดว่าอะไรทำได้อะไรทำไม่ได้ ยกตัวข้อจำกัดคือ  "ตัวแทนฝ่ายขายภาคกลางจะขายสินค้าที่ภาคเหนือไม่ได้แต่ขายที่ภาคตะวันออกได้" ส่วนการตรวจสอบคือการคัดกรองข้อมูล เพื่อให้ฐานข้อมูลมีความถูกต้อง ยกตัวอย่างการตรวจสอบคือ "ยอดสั่งซื้อต่ำสุดของไอศกรีมหางเสือคือหนึ่งกล่อง"

ท่านสามารถใส่ข้อกำหนดของข้อจำกัดและการตรวจสอบในฐานข้อมูลสัมพันธ์ได้ โดยจะทำในระดับคอลัมน์หรือในระดับตารางก็ได้ ยกตัวอย่างเช่น

•    NOT NULL: ทำหน้าที่กำหนดว่าคอลัมน์นั้นจะเป็น NULL ไม่ได้ คือจะต้องมีข้อมูลอยู่เสมอ
•    Validate Check: ทำหน้าที่ตรวจสอบการใส่ข้อมูลว่าตรงกับข้อกำหนดหรือไม่ ยกตัวอย่างเช่นคอลัมน์ที่ใช้เก็บข้อมูลเพศ กำหนดไว้ว่าให้เป็นตัวอักษรหนึ่งตัว จะต้องเป็น M หรือ F เท่านั้น
•    Key: กำหนดการเป็นกุญแจหรือคีย์ของคอลัมน์ใดๆ เช่นเป็นไพรมารีคีย์ ฟอร์เรนคีย์ และคีย์ที่ห้ามมีค่าซ้ำกัน

 

4.11. สรุปท้ายบท
การออกแบบฐานข้อมูลจำเป็นต้องมีการวางแผนที่ดี โครงสร้างของฐานข้อมูลที่ดีควรเรียบง่าย มีบูรณภาพดี สนับสนุนคิวรีทั้งแบบประจำและแบบเฉพาะกิจ ไม่ควรทำนอร์มัลไลซ์เข้มข้นเกินไปจนยากแก่การเขียนคิวรี สามารถรองรับการเพิ่มขยายและเปลี่ยนแปลงในอนาคตได้ หากท่านออกแบบได้ดังนี้จะมีผลให้ฐานข้อมูลทำงานได้อย่างมีประสิทธิภาพ มีความยืดหยุ่น สร้างแอพลิเกชันได้ง่าย

การวางแผนสร้างฐานข้อมูลจะต้องคำนึงถึงกฎทางธุรกิจ เนื่องจากองค์กรแต่ละแห่งย่อมมีกฎเกณฑ์ในการดำเนินงานที่แตกต่างกัน ดังนั้นในฐานะนักออกแบบฐานข้อมูล ท่านจะต้องรวบรวมข้อมูลจากผู้ใช้งานในองค์กรนั้นๆ รวมทั้งศึกษาระบบงานเดิมที่องค์กรนั้นๆ ใช้อยู่ รับฟังความต้องการและความคาดหวัง เพื่อนำมาออกแบบฐานข้อมูลใหม่ที่สามารถตอบสนองความต้องการทางธุรกิจได้ตรงตามจุดมุ่งหมาย

ในบทต่อไปท่านจะได้เรียนวิธีใช้แผนภูมิ ERD เพื่อการออกแบบฐานข้อมูล

 

4.12. คำถามท้ายบท

1.    ขั้นตอนที่สำคัญสุดในการออกแบบฐานข้อมูลคืออะไร
2.    บูรณภาพของข้อมูลคืออะไร
3.    คิวรีแบบ ad-hoc คืออะไร
4.    ฐานข้อมูลควรเชื่อมต่อกับแอพลิเกชันอย่างไร
5.    ฐานข้อมูลที่มีประสิทธิภาพเป็นอย่างไร
6.    การออกแบบทางแนวคิดคืออะไร
7.    การออกแบบทางตรรกะคืออะไร
8.    กฎทางธุรกิจคืออะไร
9.    การออกแบบฐานข้อมูลสัมพันธ์ควรสะท้อนกฎทางธุรกิจด้วยอะไร
10.    การศึกษาจากระบบเดิมอาจศึกษาจากอะไรได้บ้าง

 

4.13. แบบฝึกหัดท้ายบท
สมมุติว่าท่านไปเก็บข้อมูลเพื่อออกแบบสร้างฐานข้อมูลที่สโมสรกอล์ฟแห่งหนึ่ง เมื่อตรวจสอบแอพลิเกชันฐานข้อมูลเดิมที่ใช้งานอยู่ท่านพบว่ามีหน้าจอให้ป้อนพิมพ์ข้อมูลสมาชิกดังภาพ 4-3

ภาพ 4-3: หน้าจอให้ป้อนพิมพ์ข้อมูลสมาชิกของแอพลิเกชันฐานข้อมูลเดิมที่ใช้งานอยู่

จงออกแบบตารางเพื่อเก็บข้อมูลจากหน้าจอนี้ โดยแบ่งออกเป็นสองตารางคือ ตาราง Member เก็บข้อมูลสมาชิก และตาราง Type เก็บชนิดสมาชิกและจำนวนเงินค่าสมาชิก สองตารางนี้เชื่อมโยงกันด้วยคีย์ที่เหมาะสม

 

โฆษณา

ใส่ความเห็น

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  เปลี่ยนแปลง )

Google photo

You are commenting using your Google account. Log Out /  เปลี่ยนแปลง )

Twitter picture

You are commenting using your Twitter account. Log Out /  เปลี่ยนแปลง )

Facebook photo

You are commenting using your Facebook account. Log Out /  เปลี่ยนแปลง )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.

%d bloggers like this: