โปรแกรมการจัดการฐานข้อมูล เป็นสิ่งที่ซับซ้อนกว่าการใช้งานตามปกติทั่วไป และมีความแตกต่างจากโปรแกรมทางด้านเวิร์ดโปรเซสเซอร์ หรือสเปรทชีทอยู่มาก ซึ่งคนทั่วไปอาจสามารถใช้โปรแกรมเวิร์ดโปรเซสเซอร์พิมพ์งานเอกสารและสิ่งพิมพ์ โดยมีการเรียนรู้รายละเอียดเกี่ยวกับโปรแกรมเพียงเล็กน้อยก็ใช้งานได้ หรืออาจใช้โปรแกรมสเปรทชีททำตารางงบดุล โดยมีพื้นความรู้นิดหน่อยก็สามารถสร้างตารางงบดุลที่สมบูรณ์ออกมาได้ ซึ่งอาจจะทำไปแก้ไขไปก็ได้ แต่สำหรับโปรแกรมการจัดการฐานข้อมูลนั้น เราไม่สามารถทำเช่นนั้นได้เพราะผลที่ได้รับมักเป็นสิ่งที่เกิดภายหลังจากขบวนการอันยืดยาวที่ได้กระทำไว้แล้วก่อนหน้า เช่น กว่าที่เราจะพิมพ์ รายงานออกมาให้เห็นได้ เราจะต้องทำขั้นตอนอื่นๆ มาก่อนมากมายไม่ว่าจะเป็นการสร้างตาราง ข้อมูล จัดแบบฟอร์มสำหรับกรอกข้อมูล ทำดัชนี หรืออื่นๆ ซึ่งสิ่งเหล่านี้จะไม่ปรากฏเป็นผลลัพธ์ให้เห็นโดยทันที ต่างจากโปรแกรมประเภทเวิร์ดโปรเซสเซอร์หรือ สเปรทชีทที่แสดงผลสิ่งที่ทำได้โดยทันทีเมื่อพิมพ์หรือใช้คำสั่งใดๆ กระบวนการออกแบบโครงสร้างฐานข้อมูล เป็นส่วนที่สำคัญมากที่สุดในขั้นตอนทั้งหมด หากการออกแบบฐานข้อมูลไม่ดีแล้วจะทำให้ประสิทธิภาพในการทำงานของโปรแกรมลดลง และจะส่งผลให้การแก้ไขสิ่งที่ออกแบบไปแล้วย่อมทำได้ยาก การแก้ไขโครงสร้างของฐานข้อมูลอาจต้องทำให้เราต้องไปแก้ไขในส่วนอื่น ๆ ทั้งหมดไปด้วย เพราะในโปรแกรมการจัดการฐาน ข้อมูล ส่วนประกอบต่างๆ ไม่ว่าจะเป็นการคำนวณ รายงาน หรือแบบฟอร์มจะถูกออกแบบให้อยู่ล้อมรอบโครงสร้างฐานข้อมูล และยิ่งถ้าได้ใช้ฐานข้อมูลเป็นเวลานานๆ แล้วการแก้ไขยิ่งเป็นปัญหามากยิ่งขึ้น โดยเฉพาะความเข้ากันได้ของข้อมูลในโครงสร้างแบบเก่าและแบบใหม่
ข้อมูล (Data) คืออะไร ข้อเท็จจริงเกี่ยวกับบุคคล สิ่งของ สถานที่ หรือเหตุการณ์ใดๆ ที่เราสนใจศึกษา ซึ่งข้อมูล (Data) อาจจะได้มาจากการสังเกต การนับ หรือการวัด และข้อมูลอาจเป็นไปได้ทั้งตัวเลขหรือเป็นข้อความก็ได้ ที่สำคัญคือ ข้อมูล (Data) จะต้องเป็นสิ่งที่เป็นความจริง โครงสร้างข้อมูลข้อมูลที่จะนำมาใช้สำหรับเครื่องคอมพิวเตอร์เพื่อประมวลผล จะต้องจัดให้อยู่ในลักษณะที่เครื่องคอมพิวเตอร์จะรับได้ กล่าวคือ ต้องมีโครงสร้างข้อมูลซึ่งประกอบด้วย หน่วยข้อมูล (Data item) คือ ส่วนที่เล็กที่สุดของข้อมูล ซึ่งประกอบด้วยตัวอักษร และตัวเลขหรือสัญลักษณ์พิเศษ เช่น ชื่อ เลขที่บ้าน ฐานข้อมูล คือ กลุ่มของข้อมูลที่ถูกรวบรวมเข้าไว้ด้วยกัน จะครอบคลุมเรื่องราวตั้งแต่หมายเลขโทรศัพท์ของลูกค้าจนถึงห้องสมุดใหญ่ การนิยามความหมายของฐานข้อมูลเป็นเรื่องที่พ้นวิสัยที่จะให้ครอบคลุมได้ทั้งหมด แต่สำหรับการออกแแบบฐานข้อมูลเพื่อใช้กับคอมพิวเตอร์มีการนิยามที่ใช้สำหรับจุดประสงค์นี้ คือ กลุ่มของข้อมูลที่มีการจัดโครงสร้างในวิถีทางที่ให้เราสามารถนำเอาส่วนประกอบของสิ่งที่สัมพันธ์กันและเป็นที่ต้องการออกมาใช้ให้เป็นประโยชน์
หลักการพื้นฐานของการออกแบบโครงสร้างของฐานข้อมูลถูก เรียกว่า สถาปัตยกรรมของฐานข้อมูล สถาปัตยกรรม หมายถึง แนวความคิดหรือวิธีในโครงสร้างของฐานข้อมูล ในประวัติศาสตร์ที่ผ่านมามีการออกแบบสถาปัตยกรรมของฐานข้อมูลอยู่หลายแบบดังต่อไปนี้ 1. โครงร่างแบบต้นไม้ หรือ โครงร่างแบบลำดับชั้น (tree หรือ hierarchical structure) เป็นโครงร่างที่เขตข้อมูลต่าง ๆ ถูกกำหนดไว้เป็นลำดับขั้นเหนือกับรากต้นไม้ที่มีการแตกรากงอกจากรากแก้ว และ รากฝอยแตกออกจากกิ่งซึ่งเป็นฟิลด์ในลำดับสุดท้ายที่ไม่มีการแตกออกไปอีก ดังแสดงจากภาพด้านล่าง 2. โครงร่างแบบเครือข่าย (network structure) 3. โครงร่างแบบแบนราบ (flat-file structure) 4. โครงสร้างแบบสัมพันธ์ (relational structure) โครงร่างแบบนี้มีลักษณะเหมือนกับโครงร่างแบบแบนราบ แต่โปรแกรมที่ใช้โครงร่างแบบนี้สามารถทำงานกับฐานข้อมูลได้หลายกลุ่มในเวลาเดียวกันทำให้ลดการเก็บข้อมูลที่ซ้ำซ้อนกัน การใช้งานมีความยืดหยุ่นสูง ใน Access 2007 ใช้การจัดโครงสร้างแบบนี้ด้วย แต่ละตารางจะสามารถเชื่อมโยงถึงกันได้อย่างง่ายดาย ฐานข้อมูลแบบสัมพันธ์ คือ กลุ่มของข้อมูลที่มีการจัดโครงสร้างในตารางที่สัมพันธ์กัน แต่ละตารางเป็นกลุ่มของแบบแผนของสิ่งที่สนใจซึ่งอาจได้แก่ กลุ่มนักเรียน วิชาที่ลงทะเบียน ซึ่งแต่ละตารางประกอบด้วยชุดของแถว และ คอลัมน์ที่แสดงถึงข้อมูลในตาราง แต่ละคอลัมน์แสดงถึงข้อมูลชนิดเดียวกันเช่น ชื่อ-สกุล, อายุ, ที่อยู่ แต่ละแถวประกอบด้วยชุดของข้อมูลที่สมบูรณ์หนึ่งรายการ ความสัมพันธ์ระหว่างตาราง Microsoft Access 2007 สามารถเชื่อมโยงข้อมูลจากตารางต่าง ๆ เพื่อออกรายงานหรือแสดงข้อความ (Query) ได้นั้น เพราะตารางดังกล่าวมีความสัมพันธ์ (Relation) โดยสามารถสร้างความสัมพันธ์เพราะในตารางแต่ละตารางมีการกำหนดเขตข้อมูลที่เป็นเขตข้อมูลหลัก โดยเขตข้อมูลดังกล่าวต้องอยู่เหมือนกันทั้ง 2 ตารางจึงสามารถเชื่อมความสัมพันธ์ได้ Primary key และ Foreign key การทำให้ตารางสองตาราง หรือมากกว่าเชื่อมโยงถึงกันได้ จำเป็นที่จะต้องมีสิ่งที่ใช้เชื่อมโดยเราจะต้องกำหนดว่าจะใช้ฟิลด์ใดของตารางเป็นส่วนเชื่อมต่อ เช่น ในตาราง ข้อมูลนักศึกษามีข้อมูล เช่น รหัสประจำตัว, ปีการศึกษา, ที่อยู่, เพศ เป็นต้น กับตารางข้อมูลการลงทะเบียนซึ่งมีเขตข้อมูลของรหัสประจำตัว, ปีการศึกษา, เทอม และรหัสวิชา ส่วนที่ใช้เชื่อมต่อระหว่างตารางทั้งสอง คือ รหัสประจำตัว ในตารางข้อมูลนักศึกษา เขตข้อมูลของรหัสประจำตัว คือ ส่วนที่เรียกว่า Primary key แต่เมื่ออยู่ในตารางฐานข้อมูลการลงทะเบียนจะเรียกว่า Foreign key ทำหน้าที่เหมือนกับเป็นดัชนี เพื่อช่วยในการค้นหาข้อมูลทำได้รวดเร็วขึ้น คอลัมน์หรือเขตข้อมูลที่ใช้เป็น Primary key จะต้องมีค่าที่ไม่ซ้ำกันแต่เมื่อเป็น Foreign key ค่าในเขตข้อมูลนั้นจะมีค่าที่ซ้ำกันได้ เช่นรหัสประจำตัวของนักศึกษาจะต้องไม่มีตัวเลขที่ซ้ำกัน แต่เมื่อใช้รหัสประจำตัวเป็น Foreign key ในตารางการลงทะเบียนมันสามารถมีค่าซ้ำกันได้ เพราะถ้าตารางสองตารางมี Primary key ที่เหมือนกันโดยสิ้นเชิงแล้ว เราควรจะรวมตารางทั้งสองเข้าด้วยกันให้เหลือเพียงตารางเดียว เพราะการแยกเป็น 2 ตาราง จะทำให้ยากต่อการใช้งาน
- ทำให้คีย์เล็กที่สุดเท่าที่เป็นได้ เนื่องจากมีการใช้คีย์เป็นตัวเชื่อมตารางเข้าด้วยกัน ดังนั้นส่วนที่ใช้เป็น Primary key จะต้องมีการซ้ำกันของข้อมูลกับ Foreign key ของอีกตารางหนึ่ง ดังนั้น ถ้าขนาดของคีย์เล็กการทำงานจะง่าย เช่น การพิมพ์รหัสประจำตัวจะง่ายกว่าการพิมพ์ชื่อ และนามสกุล การวางแผนการสร้างฐานข้อมูลนั้น เป็นขั้นตอนแรกที่สำคัญมาก แม้ว่าเราจะสามารถเปลี่ยนแปลงแก้ไขได้ทีหลังก็ตาม หากวางแผนไว้ดีตั้งแต่ต้นก็จะช่วยประหยัดเวลาได้มาก เช่น ถ้าจะสร้าง Table (ตาราง) ขึ้นมาใหม่ เราต้องทราบก่อนว่าชนิดของข้อมูลในแต่ละเขตข้อมูลนั้นเป็นอะไรบ้าง แม้ว่าจะสามารถทำการแก้ไขเปลี่ยนแปลงในภายหลังได้ (เช่น เปลี่ยนจากชนิดข้อความเป็นชนิดตัวเลข) แต่ถ้าไม่เปลี่ยนชนิดของข้อมูลในเขตข้อมูลที่มีค่าอยู่แล้วเราอาจจะต้องป้อนข้อมูลในเขตข้อมูลนั้นใหม่ทุกระเบียนใน Table(ตาราง) ก็ได้ ดังนั้นวิธีการที่ดีที่สุดก็คือการวางแผนล่วงหน้ารวมถึงการคาดคะเนความเป็นไปได้ในการใช้ข้อมูลต่างๆ ด้วย ซึ่งจำเป็นต้องคิดว่าจะเก็บระเบียนข้อมูลอย่างไรและทำอะไรกับข้อมูลนั้นได้บ้าง อันที่จริงแล้วการสร้างฐานข้อมูลใหม่ใน Microsoft Access 2007 นั้นจะทำให้เรามีโอกาสคิดทบทวนความต้องการใช้ข้อมูลของเราใหม่อีกครั้ง โปรแกรม Microsoft Access 2007 ใช้สถาปัตยกรรมของข้อมูลในแบบสัมพันธ์ (Relation structure) ซึ่งจะมีขบวนการในการออกแบบฐานข้อมูลแตกต่างจากโปรแกรมอื่นอยู่บ้าง ในการออกแบบฐานข้อมูลสามารถแบ่งออกเป็นขั้นตอนหลาย ๆ ขั้นตอน ขั้นตอนของการออกแบบฐานข้อมูลใน Access 2007 มีดังต่อไปนี้
เมื่อแรกที่ตั้งใจสร้างฐานข้อมูล จุดประสงค์ยังค่อนข้างกว้าง เช่น ต้องการคิดการติดตามข้อมูลของนักเรียนการเริ่มต้นออกแบบฐานข้อมูลให้จดรายการขององค์ประกอบทุกอย่างที่ต้องการ ติดตาม อย่ากังวลถึงโครงสร้างขององค์ประกอบเหล่านั้น ถ้าเราพอจะมองเห็นกลุ่มของข้อมูลให้เดินหน้าต่อไปและจัดกลุ่มเข้าด้วยกันแต่ในชั้นนี้มันไม่ใช้เรื่องที่สำคัญมากนักโครงร่างของข้อมูลที่ได้อาจใช้ประโยชน์ได้ รายการบางอันที่จดไว้ อาจกลายเป็นคอลัมน์บางอันอาจกลายเป็นตาราง บางอันอาจกลายเป็นความสัมพันธ์ ในขั้นต่อ ๆ ไปท่านจะแก้ไขการออกแบบให้ดีขึ้นและเจาะลึกลงไปในรายละเอียด แต่ในขณะนี้เป็นเพียงการระดมความคิดถึงสิ่งที่เกี่ยวข้อง ให้เราจดรายการขององค์ประกอบของข้อมูลที่ใส่ในฐานข้อมูลโดยไม่ต้องสนใจว่าจะใส่อย่างไร การจัดองค์ประกอบในขั้นตอนต่างหากจากการจัดโครงสร้างข้อมูล รายการที่ได้ทำขึ้นนี้จะถูก ปรับปรุงในภายหลังแม้ว่ารายการที่ได้จะตอบสนองความต้องการในปัจจุบันได้เป็นที่น่าพอใจ แต่ในอนาคตเมื่อท่านค้นพบวิธีใช้ประโยชน์จากฐานข้อมูลนี้มากขึ้นท่านอาจต้องการในปัจจุบันได้เป็นที่น่าพอใจ แต่ในอนาคตเมื่อท่านค้นพบวิธีใช้ประโยชน์จากฐานข้อมูลนี้มากขึ้นท่านอาจต้องการมันไปใช้ในแบบอื่น ๆ ที่เกินกว่าที่ตั้งใจในตอนแรก ถ้าท่านออกแบบฐานข้อมูลตามแนวทางที่เสนอในที่นี้ ท่านจะสามารถเพิ่มเติม โดยไม่ต้องแก้ไขโครงสร้างทั้งหมดที่ท่านได้ทำไว้ถ้าท่านยึดติดกับการออกแบบในครั้งแรกเพียงเพื่อตอบสนองความต้องการเฉพาะหน้าในปัจุบันเราจะพบว่ามันยากที่มันปรับปรุงฐานข้อมูลในภายหลังเมื่อความต้องการมีมากขึ้นโปรแกรมฐานข้อมูลส่วนใหญ่มักถูกใช้กับคนหมู่มาก เช่น ข้อมูลที่ใช้ระหว่างแผนกหลาย ๆ แผนก หากเราต้องรับหน้าที่ออกแบบฐานข้อมูลแล้วอาจไม่ทราบถึงความต้องการในทุก ๆ แบบ ในกรณีเช่นนี้มีวิธีที่ช่วยเราได้โดย
- ชนิดและรูปแบบรายงานที่ต้องการ หลังจากได้รวบรวมข้อมูลเกี่ยวกับลักษณะงานในแง่มุมต่าง ๆ ให้จดรายการองค์ประกอบของข้อมูลที่มีทั้งหมดขึ้นมา ลองจัดมันรวมเข้าเป็นกลุ่มก้อนที่สัมพันธ์กัน แต่ละกลุ่มจะกลายเป็นตารางในฐานข้อมูลที่เสร็จสมบูรณ์ อย่าพึ่งเกี่ยวข้องกับการสร้างโครงสร้างที่ถูกต้องในขั้นนี้ กลุ่มที่จัดได้บางกลุ่มค่อนข้างแจ่มแจ้ง เช่น รหัสประจำตัว ,ชื่อ, ที่อยู่และชั้นถูกจัดอยู่ในกลุ่มนักเรียน บางองค์ประกอบไม่สามารถจัดเข้ากับกลุ่มโดยทั่วไปได้ ให้เก็บมันไว้ในกลุ่มเบ็ดเตล็ดไว้เสียก่อนให้แน่ใจว่าแต่ละองค์ประกอบของข้อมูลเป็นส่วนที่เล็กที่สุดของข้อมูลที่จะใช้ ตัวอย่างเช่นการเก็บชื่อและนามสกุลสองอย่างเข้าด้วยกันเพื่อทำให้เกิดผลลัพธ์แทนที่แยกองค์ประกอบอันยิ่งใหญ่เพียงอันเดียวออกจากกันเป็นองค์ประกอบย่อยสองอัน ให้เราจัดทำบัญชีรายละเอียดของข้อมูลสำหรับแต่ละองค์ประกอบที่จัดขึ้นมา บันทึกข้อมูลข่าวสารเหล่านี้โดยให้มี
ไม่กี่ร้อยระเบียน ความล่าช้าจะไม่เป็นปัญหาใหญ่ทีเดียว ดังนั้นควรกำหนดให้พอเหมาะ
การกำหนด Primary key ให้แก่ตาราง ฐานข้อมูลที่ได้ออกแบบไว้ในเบื้องต้นอาจยังไม่สมบูรณ์หรือมีข้อบกพร่องที่คาด ตัวอย่างการทดลองสร้างฐานข้อมูลตัวอย่างที่ใช้ในหนังสือเล่มนี้เป็นการสร้างแบบจำลองง่าย ๆ ของการออกแบบและพัฒนาฐานข้อมูลของสถาบันการศึกษา สมมติว่าตัวเราเป็นเจ้าหน้าที่ฝ่ายทะเบียนที่ต้องดูแลข้อมูลของสถาบันการศึกษาแห่งนั้น 1. วัตถุประสงค์ของการใช้ฐานข้อมูลในฐานข้อมูลที่ออกแบบนี้มีเป้าหมายอยู่ 2 ประเภท คือ เก็บข้อมูลทางการเงินจากการลงทะเบียนของนักเรียนเพื่อให้ฝ่ายการเงินและเก็บข้อมูลการศึกษาของนักเรียนให้แก่ฝ่ายทะเบียนเพื่อเป็นประวัติการศึกษา 2. การจดรายการองค์ประกอบข้อมูลขั้นตอนแรกของการออกแบบฐานข้อมูล คือ ให้เราจดรายการข้อมูลที่จำเป็นต้องใช้ ลอกแจกแจงองค์ประกอบต่างๆ ที่มีทั้งหมด
บางที่เราสามารถคิดถึงองค์ประกอบของข้อมูลอื่น ๆ แต่ตอนนี้เพียงพอที่จะเป็นตัวอย่างสำหรับขั้นตอนต่อ ๆ ไป 3. การจักกลุ่มขององคืประกอบของข้อมูล ตารางข้อมูลกลุ่มของวิชา รหัสวิชา ตารางเกรดวิชารหัสประจำตัวนักเรียน ------------------Primary key ตารางวิชาที่ลงทะเบียน รหัสประจำตัวนักเรียน ------------------Foreign key พิจารณาถึงตารางที่ได้ออกแบบไว้ ตารางวิชาที่ลงทะเบียนและเกรดที่ได้รับ รหัสประจำตัวนักศึกษา ------------------Primary key
|