--- title: หลักการและระบบการจัดการฐานข้อมูล อ.เกวลี วันที่ 20 ธ.ค. 2565 มาริก แมน subtitle: date: วันพุธที่ 29 มีนาคม 2566 เวลา 09.10 น. --- (ข้อความสดจากระบบถอดความเสียงพูดทางไกล) (อาจารย์เกวลี) ล่ามได้ยินไหมคะ โอเคค่ะ อย่างนั้นเดี๋ยววันนี้เริ่มเลยนะคะ วันนี้เนื้อหาไม่เยอะนะคะ เพราะเดี๋ยวจะทำให้ชั่วโมงจะให้ทำงานในห้อง อย่างนั้นสอนเลยนะ วันนี้หลัก ๆ จะมี 3 เรื่อง เราต้องวางแผนก่อนว่าเราจะพัฒนาระบบอะไรนะคะ ทำไมต้องทำ มันมีความจำเป็นกับการทำงานของเราไหมหรืออย่างไรนะคะ หลังจากนั้นมาวิเคราะห์ ว่าไอ้ที่เราวางแผนไปนี่ ครอบคลุมแล้วหรือยังนะคะ กับการทำงานที่เราต้องการหรือผลลัพธ์ที่เราต้องการนี่จากที่เราวางแผนไว้นี่มันครบหรือเปล่านะคะ เราก็จะมาเช็ก หลังจากนั้นพอเราวิเคราะห์ความถูกต้องทุกอย่างแล้วมันครบรายละเอียดที่เราต้องการ เราก็มาออกแบบรายละเอียดของระบบว่าระบบนี้มันจะต้องมีส่วนประกอบอะไรบ้าง ใครสามารถใช้งานระบบนี้ได้บ้าง แต่ละคนใช้งานความ... การเข้าถึงข้อมูลนี่ มากน้อยต่างกันขนาดไหน อันนี้เป็นพื้นฐานเบื้องต้น หรือในระบบของเราต้องการจะเก็บข้อมูลอะไรบ้างนะคะ ต้องมากรอกรายละเอียดหรือเขียนรายละเอียดทั้งระบบ มาดูว่าครบหรือยังส่วนนี้ก็ต้องมีการตรวจสอบด้วยว่าสิ่งที่เราวางแผน การวิเคราะห์และการออกแบบนี่สามารถเกิดขึ้นได้จริงไหมนะคะ หลังจากนั้นวิเคราะห์แล้ว ว่ามันสามารถเกิดขึ้นได้เราก็ไปดำเนินการพัฒนาระบบขึ้นมา ในช่วงนี้ก็จะเป็นการพัฒนา แต่บางคน ก็คือพัฒนาไปด้วย ทดสอบไปด้วย ว่าระบบนี้มันใช้งานได้จริงแล้วเป็นอย่างไรมันมีข้อผิดพลาดตรงไหน ก็ดำเนินงานแก้ไขทั้งสร้างใหม่ไปเรื่อย ๆ แล้วก็ปรับปรุงสิ่งที่ทำไปแล้วให้มันสมบูรณ์ที่สุด หลังจากนั้นเราก็จะได้ระบบมา แต่พอได้มาแล้วมันก็ยังต้องมีในส่วนของการบำรุงรักษามันยังทำงานได้ดีไหม มีข้อผิดพลาดในการทำงานหรือเปล่า อาจจะใส่ข้อมูลราคาสินค้าไป แต่ภาษีผิด ภาษีประเทศไทย คือ 7 เปอร์เซ็นต์ แต่บังเอิญว่าเราพิมพ์ผิด ไปพิมพ์เป็นเลข 4 ผลการคำนวณมันเลยผิด อันนี้ก็ต้องไปแก้ไขนะคะ ก็เป็นส่วนของการบำรุงรักษา หรือว่ามีข้อมูลที่เราต้องการจะเพิ่ม อย่างเช่น ปกติแล้วเก็บกับเบอร์โทรศัพท์มือถือนะคะ เราอยากได้เบอร์โทรศัพท์บ้านด้วยก็อยู่ในส่วนของการบำรุงรักษาค่ะ เพราะว่ามันจะเป็นการที่แก้ไขในตัวระบบปรับปรุงระบบนั่นเองว่าให้เพิ่มเบอร์โทรศัพท์บ้านเข้าไปด้วยอย่างนี้นะคะ ซึ่งจากวัฏจักรการพัฒนาระบบนี่ เราเลยเอามาเป็นตัวตั้งต้นสำหรับการพัฒนาระบบจัดการฐานข้อมูล แต่มันจะมีบางส่วนที่เพิ่มเติมขึ้นมานะคะ ก็คือในส่วนของการทดสอบแล้วก็ประเมินผลนะคะ เมื่อกี้การพัฒนาระบบนี่เราจะมีอยู่ 5 ขั้นตอน แต่ถ้าเป็นการพัฒนาระบบจัดการฐานข้อมูล หรือพัฒนาฐานข้อมูลนี่ เราจะมี 6 ขั้นตอนนะคะ ซึ่งมันก็จะใกล้ ๆ เคียงกันล่ะ โดยเริ่มต้นของการสร้างฐานข้อมูลขึ้นมานี่ เราต้องมีการศึกษาเบื้องต้นก่อน ว่าข้อมูลที่เราต้องการจะเก็บเราจะเก็บอะไร เก็บไปทำไม เก็บมาจากไหนนะคะ แล้วจะเรียกดูข้อมูลทำอย่างไรนะคะ อันนี้เป็นการศึกษาเบื้องต้นก่อนว่า เอ๊ะ ที่เราจะทำนี่มันทำได้ไหม ทำได้จริงหรือเปล่า ข้อมูลคืออะไร หลังจากนั้นเราก็เอาสิ่งที่เราศึกษาเบื้องต้นนี่ มาออกแบบฐานข้อมูลเหมือนที่เราวาดไปนะคะ ที่วาดรูป ER ไป คือเริ่มออกแบบและเหมือนตัวอย่างที่จะยกให้คืนร้านหนังสือ 1 ร้านจะเก็บข้อมูลอะไรบ้างนะคะ อันนี้คือเริ่มออกแบบแล้วนะคะ พอออกแบบได้ปุ๊บ ตรวจสอบข้อมูลครบทุกอย่างนะคะ เราก็จะมาดำเนินการสร้างฐานข้อมูลเพื่อไปติดตั้งในระบบที่เรามีไว้อยู่แล้วนะคะ หรือถ้ายังไม่มีก็สร้างขึ้นมา เพื่อใช้กับฐานข้อมูลที่เรากำลังจัดทำเช่นเดียวกันนะคะ พอสร้างฐานข้อมูลเสร็จเอาไปติดตั้งในระบบแล้วเราก็ต้องมีการทดสอบและประเมินผล ว่าฐานข้อมูลที่เราสร้างมามันใช้งานได้ดีกับระบบที่มีอยู่หรือไม่นะคะ ถ้ามันไม่ดี มันไม่ดีตรงไหน มีตรงไหนต้องแก้ไขหรือเปล่านะคะ หรือใส่ฐานข้อมูลแล้วแต่เรียกข้อมูลขึ้นมาไม่ได้ เราก็ต้องแก้ปัญหานะคะ ว่าทำไมมันไม่ได้ เหมือนถ้าใครเคยใช้ Excel เบอร์โทรศัพท์นำหน้าของเราจะเป็นเลข 0 ใช่ไหมคะ แต่เหมือน Excel เหมือนกัน ถ้าเราไม่เปลี่ยนชนิดของข้อมูลเลข 0 เราจะหายไปทำไม อันนี้ก็เป็นข้อหนึ่งที่เราจะต้องกำหนดรูปแบบของข้อมูลในฐานข้อมูลของเราด้วยนะคะ ว่าให้คอลัมน์นี้เป็นเบอร์โทรศัพท์นะ ไม่ใช่จำนวนเลขจำนวนจริงใด ๆ นะคะ หลังจากนั้นพอเราทดสอบประเมินผลเป็นที่พอใจแล้ว เราก็เอาระบบที่ได้ ที่มีการผสานกับฐานข้อมูลนี่ เอาไปใช้งานจริงก็พอใช้งานจริงทุกระบบที่เกี่ยวกับคอมพิวเตอร์จะต้องมีการบำรุงรักษา หรือปรับปรุงเปลี่ยนแปลงข้อมูลใดใดก็ตามก็ต้องมีเหมือนกัน คล้าย ๆ กับการพัฒนาระบบนะคะ สำหรับการพัฒนาฐานข้อมูล แต่เดี๋ยวอธิบายโดยละเอียด ก็คือในการศึกษาเบื้องต้นนี่ มันก็อย่างที่อาจารย์บอกตอนแรก ก็ต้องดูว่าผู้ใช้งานต้องการอะไร ฐานข้อมูลเขาได้เพื่อไปทำอะไร หรือมีปัญหาอะไรเกิดขึ้นเขาถึงต้องการระบบฐานข้อมูล หรืออาจจะเกี่ยวกับการเก็บข้อมูลให้เป็นระเบียบนะคะ ซึ่งการศึกษาเบื้องต้นนี่ มันจะเป็นแนวทางในการออกแบบต่อไปอย่างน้อยที่เราต้องวิเคราะห์ คือ ในองค์กรเราต้องการเก็บข้อมูลขนาดไหนนะคะ ปัญหาที่เกิดขึ้นในปัจจุบันหรือข้อจำกัด ก็คือตอนนี้ข้อมูลเขียนลงในสมุดตลอดเลย หรือเก็บไว้ในคอมพิวเตอร์เครื่องเดียวนะคะ มันไม่สามารถทำงานร่วมกันได้หลายคน จุดมุ่งหมาย คือ ถ้าเรามีระบบฐานข้อมูลที่ดี คนทำงานช่วยกันจะได้เพิ่มขึ้น หรืออาจจะเป็นการเรียกดูข้อมูลได้สะดวกสบายขึ้นนะคะ ขอบเขตของงาน คือ คนที่สามารถเข้ามาดูข้อมูลได้มีใครบ้างเป็นต้นนะคะ อันนี้คือการศึกษาเบื้องต้นก่อน แล้วก็มาเช็กดูนะคะ ว่าข้อที่เราวิเคราะห์ไว้นี่มันครบหรือยัง ถ้าครบแล้วนะคะ ก็มาออกแบบ ซึ่งรายละเอียดก็จะมาจากขั้นตอนของการศึกษาข้อมูลเบื้องต้นนั่นแหละ มาเป็นแนวทางในการออกแบบ 3 ระดับนะคะ ระดับแนวคิด ระดับภายใน และภายนอก ระดับตรรกะอะไรพวกนี้นะคะ ที่เคยเรียนไปแล้วเมื่อต้นโดยการออกแบบเชิงแนวคิดนี่ เราจะเป็นการพัฒนาแบบจำลองข้อมูลให้ถูกต้อง ต้องมีความละเอียด เข้าใจข้อมูลองค์กรเป็นอย่างดี สมมติว่าถ้าคุณเป็นโปรแกรมเมอร์ คุณก็ต้องรู้ว่าองค์กรของคุณทำอะไรนะคะ ข้อมูลมีอะไรบ้าง นะคะ อาจจะเป็นไปฝึกงานแล้วเขาให้ลองออกแบบฐานข้อมูลเกี่ยวกับการจัดการพนักงาน เราก็ต้องรู้ว่าข้อมูลพนักงาน 1 คนมีอะไรบ้าง นะคะ แน่นอนเหมือนที่เคยสอน มีพนักงาน มีรหัสบัตรประชาชนใช่ไหมคะ มีชื่อ มีนามสกุล มีเบอร์โทรศัพท์ มีที่อยู่ปัจจุบัน ที่อยู่ตามทะเบียนบ้าน เรียนจบอะไรมา ตอนนี้ตำแหน่งอะไร เงินเดือนเท่าไร อันนี้คือข้อมูลเบื้องต้น แต่ถ้าเป็นบริษัทใหญ่ ๆ นี่เขาก็จะทำข้อมูลละเอียดมากว่าที่บ้านทำงานอะไร พ่อแม่อยู่ไหน มีลูกหรือยัง เพราะว่าบางองค์กรมีสวัสดิการให้คนในครอบครัวด้วย อันนี้พวกคุณก็ต้องศึกษาด้วยนะ ถ้าคุณไปทำงานที่ไหน ว่าแต่ละที่เขาอาจจะไม่ได้เก็บข้อมูลเหมือนกัน จะมีเก็บข้อมูลไม่เยอะ หรืออาจจะเก็บข้อมูลนิดเดียว นะคะ ในฐานข้อมูลจัดเก็บรูปภาพพนักงาน รูปภาพต้องเป็นรูปภาพแบบไหน อันนี้ก็คือสิ่งที่เราต้องออกแบบนะคะ ไม่ใช่ว่าอยากทำอะไรก็ทำไม่ได้นะคะ ต้องดูความต้องการขององค์กรที่เราไปทำงานให้เขาด้วยนะคะ ตั้งแต่การออกแบบนี่ เราต้องกำหนดชนิดของข้อมูลที่จะเอาเข้ามา ก็คือชนิดของคอลัมน์แต่ละคอลัมน์ที่เราจะต้องใส่นะคะ มีความสัมพันธ์เป็นอย่างไรบ้าง ตารางพนักงานจะต้องไปเชื่อมโยงกับตารางเงินเดือนไหมนะคะ ต้องเขียนให้ถูก เพราะตำแหน่งแต่ละตำแหน่งคนแต่ละคนเงินเดือนไม่เท่ากันนะคะ ในแต่ละตารางจะเก็บข้อมูลอะไรบ้างนะคะ ขอบเขตของข้อมูลในตารางนั้น ๆ ต้องกำหนดอย่างไร เหมือนที่ฉันชอบยกตัวอย่างบ่อย ๆ เช่น รหัสบัตรประชาชนต้องเป็นเลข 13 หลักเท่านั้นอย่างนี้นะคะ หรือรหัสไปรษณีย์มันก็ควรจะมีแค่ 5 หลักเท่านั้น ไม่ควรเกินใช่ไหม อะไรที่เรารู้อยู่แล้วว่าขอบเขตมันเป็นอย่างไรเราก็สามารถกำหนดได้นะคะ เผื่อป้องกันความผิดพลาดด้วย บางคนพิมพ์รหัสไปรษณีย์ผิด ใส่ 0 เกินไปอย่างนี้มันก็ผิด ข้อมูลที่ได้มาก็จะผิดพลาด ในตารางอะไรเป็นคีย์หลัก ก็คือค่าที่ห้ามซ้ำกันน่ะคืออะไร นะคะ มีการกำหนดความเป็นเอกลักษณ์ของตาราง เป็นตารางทั่วไปหรือตารางเฉพาะ อันนี้ถ้าจำเป็นต้องกำหนดนะคะ มีการเขียน ER diagram คือการวาดรูปที่เราเคยวาดไปนะคะ วาดรูป ER หลังจากนั้นต้องมานั่งประชุมกันค่ะ ว่าสิ่งที่เราออกแบบกับสิ่งที่ผู้ใช้งานต้องการตรงกันหรือเปล่า มีตรงไหนที่เข้าใจไม่ตรงกันไหม หรือมีอะไรที่เราออกแบบขาดไปหรือเปล่า หรือมันเกินความจำเป็น ตัดออกได้ไหมนะคะ อันคือสิ่งที่ต้องมาคุยกัน ไม่ใช่ว่าเราคิดเองทั้งหมดแล้วเราทำเลย สรุปไม่ตรงกันกับที่ผู้ใช้งานต้องการ อันนี้ก็ไม่ได้และเสียเวลาเปล่า เพราะฉะนั้น ควรจะมานั่งคุยกันตั้งแต่เริ่มต้นนะคะ อันนี้ไม่มีอะไร หลังจากนั้นพอออกแบบแล้วนี่ การเลือกโปรแกรมที่จะใช้ในการจัดการข้อมูลนี่ คนออกแบบก็ต้องดูด้วยว่าแต่ละโปรแกรมมันมีข้อจำกัดนะคะ ไม่ใช่ว่าฉันรู้สึกว่าฉันจำชื่อโปรแกรมนี้ได้เลือกเลย เลือกเพราะแค่จำชื่อได้มันไม่พ อมันจะต้องดูด้วยว่าไอ้ที่เราเลือกไปนี่ มันสามารถใช้งานได้ดีกับระบบที่เราต้องการจะใช้หรือเปล่านะคะ เพราะว่าถ้าเราเลือกผิดแล้วเรามาใช้งานจริง ๆ นี่ มันไม่เวิร์กหรือมันใช้งานไม่ได้นี่ งานเราถือว่าล้มเหลวเลยนะคะ เพราะถ้าได้เริ่มทำงานแล้วข้อมูลเริ่มเก็บแล้วจะให้เริ่มใหม่นี่เสียเวลามาก ๆ นะคะ เพราะฉะนั้นรัดกุมตั้งแต่ออกแบบเลยดีที่สุดนะคะ ทั้งการออกแบบทางตรรกะ ก็จะเกี่ยวข้องกับการตัดสินใจในการเลือกใช้ฐานข้อมูลนะคะ ก็ข้อมูลของเรานี่ จะเก็บข้อมูลอย่างไร มีการเชื่อมโยงอะไรบ้าง ทำไมต้องเก็บข้อมูลแบบนี้นะคะ แล้วก็ถ้าจำเป็นจริง ๆ กระบวนการในการเลือกที่เก็บข้อมูลก็สำคัญ คุณจะเก็บข้อมูลอย่างไร เก็บในเครื่อง Server เครื่องเดียว หรือจะมีการสำรองไปไว้ที่อื่น มีการกระจายข้อมูลกันเก็บ แต่ถ้าจำเป็น ก็คือสามารถเรียกใช้งานจากที่ไหนก็ได้ แล้วใครสามารถเรียกใช้งานได้บ้างนะคะ ผู้ใช้งานทั่วไปอาจจะได้แค่ดู แต่ถ้าเป็นผู้ดูแลระบบ หรือระดับหัวหน้างานสามารถแก้ไขข้อมูลได้ด้วยอย่างนี้นะคะ เป็นต้น อย่างเช่น อาจารย์นี่ก็สามารถดูเกรดนักศึกษาได้ทุกคนเลยนะคะ แต่อาจารย์เข้าไปแก้ไขเกรดให้พวกคุณไม่ได้นะ อาจารย์ดูได้อย่างเดียวนะคะ ก็คือสิ่งที่เราออกแบบได้ คนที่แก้ไขได้คืออะไร ก็เป็นเจ้าหน้าที่สำนักทะเบียน ถ้าสมมติว่ามันมีข้อผิดพลาด ก็สามารถท้วงติงได้แล้วเจ้าหน้าที่เท่านั้น ทีจะเข้าไปปรับปรุงข้อมูลได้อาจารย์ทำให้ไม่ได้นะคะ อันนี้ก็เป็นตัวอย่างนะคะ หลังจากนั้น พอเราวิเคราะห์ทุกอย่างเรียบร้อยรัดกุมดีแล้ว เราก็ลงมือสร้างฐานข้อมูลนะคะ เอาโครงร่างที่ได้จากการออกแบบของเรานี่ สร้างข้อมูล... สร้างฐานข้อมูลขึ้นมาเพื่อเก็บข้อมูลจริง หรืออาจจะมีการแปลงข้อมูลในระบบเดิม ให้เข้ากับระบบใหม่ที่เราพัฒนาขึ้นมาก็ได้ ในข้อมูลเดิมนี่ อาจจะเก็บข้อมูลไม่ได้เก็บในระบบจัดการฐานข้อมูลใน Log อาจจะเก็บไว้ใน Excel นะคะ แต่ถามว่าระบบจัดการฐานข้อมูลปัจจุบันนี่ มันสามารถนำเข้าข้อมูลที่เป็น Excel เข้าสู่ระบบจัดการฐานข้อมูลได้แล้วนะคะ อันนี้ก็เป็นความสามารถของระบบที่เราเลือกตั้งแต่แรก ว่าไอ้โปรแกรมที่เราใช้งานนี่ มันมีฟังก์ชันนี้ไหม ถามว่าเพื่ออะไรถ้าเกิดมันเป็นระบบที่ข้อมูลเดิมเราอยู่ใน Excel ทั้งหมดเลยเป็นแบบ เป็นหมื่นเป็นแสนข้อมูล แต่ว่าระบบที่เราเลือกใช้นี่ นำเข้าข้อมูลจาก Excel เข้ามาไม่ได้นี่ แล้วมันจะดีกว่าระบบเดิมอย่างไรนะคะ ในเมื่อมันไม่ได้ทำให้เราทำงานง่ายขึ้นนะคะ หลังจากนั้นนี่ พอมีการพัฒนาฐานข้อมูล หรือปรับปรุงฐานข้อมูลขึ้นมาแล้วนะคะ มันก็จะเป็นขั้นตอนของการติดตั้งระบบนะคะ มันก็ขึ้นอยู่กับว่าเราใช้ระบบจัดการฐานข้อมูลอะไร มีใครเป็นผู้จัดการฐานข้อมูลหรือว่าเป็น Admin นั่นล่ะ จำนวนพื้นที่จัดเก็บข้อมูลที่ต้องการใช้มีขนาดมากน้อยขนาดไหน ตารางต่าง ๆ ที่อยู่ในระบบมีกี่ตาราง มีตารางอะไรบ้างนะคะ อันนี้คือการติดตั้งใช้จริง เดี๋ยวพอเราสอบมิดเทอมเสร็จนะคะ ช่วงหลังปีใหม่อาจารย์จะเริ่มพาทำภาษาที่ใช้ในการจัดการฐานข้อมูลอย่างง่าย ๆ นะคะ พาทำ พิมพ์เอง ลองดูสิว่า วิธีการเรียกใช้ฐานข้อมูลอย่างง่ายนี่มันเป็นอย่างไรนะคะ พอเราติดตั้งเสร็จปุ๊บมันก็ต้องมีการทดสอบหาข้อผิดพลาดนะคะ ทั้งหาข้อผิดพลาด ทั้งประเมินความสามารถของระบบที่เราเอามาใช้นะคะ เพื่อดูสิว่ามันรองรับความต้องการของเราจริง ๆ หรือเปล่า ถูกต้องไหม ครบถ้วนดีไหมนะคะ ถ้ามันไม่ครบเราจะทำอย่างไร หรือบางอย่างมันไม่จำเป็นนี่ เราอาจจะไม่จำเป็นให้ User ใช้งานก็ได้ อาจจะเป็นเฉพาะผู้ดูแลระบบใช้งานฟังก์ชันนั้นคนเดียวก็พอ อะไรอย่างนี้นะคะ ก็การทำงานเหล่านี้จะต้องเตรียมคู่มือ เตรียมข้อมูลทดสอบไว้ล่วงหน้าด้วย เวลาถ้าสมมติว่าเราจบไปนี่ เราพัฒนาโปรแกรมใด ๆ ขึ้นมาก็ตาม เราจะต้องทำคู่มือการใช้งานด้วยนะคะ ไม่อย่างนั้นคนมาใช้งานระบบเราไม่เข้าใจ งงว่า อ้าว ทำไมคุณตั้งชื่อตารางแบบนี้ล่ะ ทำไมตั้งชื่อคอลัมน์แบบนี้ ไอ้ตัวนี้แปลว่าอะไร แล้วจะกดตัวไหนเพื่อบันทึกข้อมูลนะคะ หรือถ้าต้องการแก้ไขข้อมูลต้องกดตรงไหนนะคะ เราต้องเตรียมข้อมูลไว้ให้เขาด้วยเพื่อใช้ในการทดสอบนะคะ หรืออาจจะเป็นตัวอย่างข้อมูลเพื่อลงมาพิมพ์เข้าไปดูสิว่ามันสามารถบันทึกได้ไหม ถูกต้องหรือเปล่ากับสิ่งที่เราต้องการให้มันเป็นนะคะ ไม่ใช่ว่าอาจารย์พิมพ์ข้อมูลเข้าไปเยอะมาก สรุปเรียกดูข้อมูลไม่ได้ มันก็ไม่มีประโยชน์นะคะ มันก็ต้องมีการทดสอบก่อน พอทดสอบแล้วเป็นที่น่าพอใจ เราก็เอาไปติดตั้งใช้งานจริง แต่พอติดตั้งแล้วมันก็ยังต้องมีการประเมินผลเหมือนกัน ว่าเราติดตั้งไปใช้จริงแล้วมันให้การทำงานที่ดี เหมือนตอนที่ทดสอบหรือเปล่า หรือพอตอนทดสอบใช้งานได้ แต่พอมาทำงานจริง โอ้โห ข้อมูลเข้ามาทีละหมื่นละแสนข้อมูลต่อวัน สรุประบบรับไม่ได้ ไม่ทันนะคะ ถอดความก็เจ๊ง รอล่ามแป๊บหนึ่ง โอเคต่อค่ะ หลังจากนั้นนะคะ ถ้าเราทำงานไปแล้วนี่ก็เหมือนที่บอกนะคะ ก็ต้องมีการบำรุงรักษาการปรับปรุง พอทำงานไปแล้วนี่ Admin นะคะ หรือว่าผู้จัดการฐานข้อมูลเขาจะต้องมีการเตรียมตัวบำรุงรักษาฐานข้อมูลไม่ใช่ว่าใช้ไปแล้วก็ไปดูเลยทั้งต้องป้องกันระบบไม่ว่า ถ้าสมมติว่ามีปัญหาเกิดขึ้น เรามีการสำรองข้อมูลไว้หรือเปล่า แล้วตารางในการสำรองข้อมูลจัดทำไว้บ่อยขนาดไหน แล้วแต่ระบบนะคะ บางคนถ้าเป็นระบบที่สำคัญมาก ๆ เขาจะต้องสำรองข้อมูลทุกวันนะคะ หรือถ้าระบบมีปัญหานะคะ ข้อมูลที่สำรองไว้สามารถกู้คืนได้ ภายในระยะเวลาเท่าไรนะคะ เหมือนว่าสมมติวันนี้อาจจะมีภัยธรรมชาตินะคะ เป็นธนาคารแห่งหนึ่งสำนักงานใหญ่ ภัยธรรมชาติ ถ้าสมมติข้อมูลเขาหายเป็นไปไม่ได้นะคะ เงินลูกค้าไม่รู้กี่บาท จะบอกว่า อ๋อ ไม่รู้ค่ะ ว่าตอนนี้คุณมีเงินเท่าไร เพราะเมื่อคืนมีภัยธรรมชาติข้อมูลหาย คำตอบนี้จะต้องไม่เกิดขึ้นนะคะ ข้อมูลทุกอย่างจะต้องถูกเรียกนำมาใช้เร็วที่สุดเท่าที่จะเป็นไปได้นะคะ อันนี้อย่างเช่นองค์กรใหญ่ ๆ เขาจะมีการซ้อมเลยนะคะ ว่าซ้อมสำรองข้อมูลแล้วคุณสามารถกู้คืนข้อมูลขึ้นมาได้เร็วที่สุดเท่าไร บางคนซ้อมทุก ๆ 1 เดือนเลยด้วยซ้ำ เพราะว่าข้อมูลบางอย่างมันสำคัญมาก ๆ นะคะ รวมถึงว่าถ้าระบบแล้วใช้ไปนี่ มันมีการเพิ่มตารางไหม หรือจะมีคอลัมน์เพิ่มเติมที่เพิ่มเข้ามาสามารถทำได้หรือเปล่า สิ่งเหล่านี้ก็ถือว่าเป็นการบำรุงรักษา ปรับปรุงฐานข้อมูลเช่นเดียวกันนะคะ โดยที่หัวข้อที่ 2 เหมือนที่อาจารย์บอก หัวข้อที่ 3 สิเป็นการแปลงแผนภาพ ER นะคะ รูปภาพที่เราเคยวาดให้มาเป็นรีเลชั่นหรือว่าให้เป็นตารางมันเป็นอะไรที่ง่ายมาก เพราะมันจะเริ่มต้นจากชื่อตารางก่อนชื่อ Entity โดยตารางใด ๆ นะคะ หรือรูปภาพใด ๆ นี่ มันสามารถเอามาแปลงเป็นตารางได้ 1 ตารางทันที ตารางคืออะไร หัวข้อตารางเหมือนที่เราเคยทำไปแล้ว หัวข้อตาราง คือ จะเป็นสี่เหลี่ยมผืนผ้าแบบนี้ใช่ไหม แล้วก็ ER จำได้นะ เป็นรูปอย่างนี้นะ แล้วก็มีวงรีวงรีมีแบบนี้ เราคิดว่าไปแล้วนะคะ ไม่ไปแล้วนะคะ ว่าไปแล้วอันนี้น่าจะจำได้ว่า ER คืออะไร ทำไมอาจารย์พูดถึงโดยนะคะ การแปลงนะคะ จากตาราง Entity ปกตินะคะ ชื่อตารางกับชื่อ Entity คือตัวเดียวกัน ชื่อคอลัมน์ก็คือใช้ Attributes ที่อยู่ในเองโดยอันนี้คือ 1 ตารางนะคะ มองเป็น 1 ตาราง เช่นตัวอย่าง ส่วนบนตรงนี้ เราเคยวาดแล้วใช่ไหมคะ อะไรคือชื่อตาราง ชื่อตารางมาจากชื่อในกรอบสี่เหลี่ยมผืนผ้าตัวนี้ แค่นั้นเอง คุณก็ชื่อตรงนี้บอกว่าอันนี้คือชื่อตาราง student นะ ชื่อตารางนักเรียนนะแล้วในตารางนักเรียนเก็บข้อมูลอะไรบ้าง เราก็เอาข้อมูลที่อยู่ในวงรีทุกอันนี้ค่ะ มาใส่เป็นคอลัมน์ตารางแค่นั้นเอง ออกข้อสอบคือทำง่ายมาก ถ้าจำได้นะคะ แต่ในตารางอย่าลืมนะคะ ในรูปมีขีดเส้นใต้ ตารางก็ต้องขีดเส้นใต้ พอเอาตารางมาเขียนเป็นความสัมพันธ์ เราก็จะเอากรอบออกนะคะ เอากรอบออก โดยชื่อตารางจะอยู่หน้าสุดนะคะ หลังจากนั้นคอลัมน์ในตารางทั้งหมดจะอยู่ในวงเล็บนะคะ อันไหนที่เป็นคีย์หลักที่ขีดเส้นใต้ อย่าลืมขีดด้วยนะคะ อย่าลืมขีดด้วยนะ แค่นี้เองในการแปลงรูปภาพให้มันเป็นความสัมพันธ์ ถ้าใครยังไม่แม่น คุณทำเป็นตารางก่อนก็ได้ แต่จริง ๆ แล้วดูจากรูปนี่ เราก็มาเขียนแบบนี้ได้เลย ง่ายมากนะคะ ซึ่งในหนังสือบางเล่มไอ้ตัวการออกแบบนี่ เขาอาจจะเป็นรูปภาพ หรือเขาอาจจะเขียนเป็นความสัมพันธ์แค่บรรทัดเดียวแบบนี้ ความหมายเดียวกันนะคะ อยู่ที่ว่าเขาจะอยากนำเสนอในรูปแบบอะไรตัวหนังสืออย่างเดียว หรือวาดออกมาเป็นภาพให้เห็นง่าย ๆ แล้วแต่เลยนะคะ ตารางนี้ก็เหมือนกัน หลักการทำงานเดียวกันค่ะ อะไรที่อยู่ในกรอบตัวนี้ ก็คือชื่อตารางเอาไว้ข้างหน้า สิ่งที่อยู่ในรีวิว ก็คือเป็นรูปวงรีตัวนี้เอามาใส่ในวงเล็บนะคะ แต่ส่วนมากเวลาสอบนักศึกษาจะจำไม่ได้ เขาว่ามันทำยังไงให้มันที่มันง่ายมากนะคะ ซึ่งอาทิตย์หน้าสอบ อาทิตย์หน้าสอบนะคะ เดี๋ยวอาจารย์จะนัดอีกทีว่าข้อสอบ น่าจะสอบถึงวันนี้นะคะ ข้อสอบที่จะออกตั้งแต่วันแรกจนถึงวันนี้เลยนะคะ รูปนี้ออกสอบแน่ ๆ จำให้ได้นะคะ เพราะมันง่ายมาก แต่ถ้ารูปนั้นนะคะ แผนภาพนะนี่ มันมีส่วนของตารางอ่อนแอนะคะ ก็คือ Weak Entity สัญลักษณ์ของ Weak Entity คือเป็นสี่เหลี่ยมซ้อนกัน 2 วง หลักการคือมันมีส่วนของสีเหลี่ยมผืนผ้าที่มีความอ่อนแอนี่เราจะเอาคีย์หลักของอีกตารางหนึ่งที่มันมีความสำคัญด้วยมาใส่นะคะ เช่น รูปนี้เห็นไหมคะว่ามันจะมีสี่เหลี่ยมซ้อนกัน 2 อันตรงข้างล่าง ถ้าสมมติว่าเราจะมาแปลงเป็นความสัมพันธ์ อันนี้คือคีย์หลักของตารางที่มีค่าอ่อนแอ หลักการ คือ ให้เอาคีย์หลักของอีกตารางหนึ่งที่มันมีความสัมพันธ์ด้วยมาใส่นะคะ ผลลัพธ์ที่ได้จากตารางอ่อนแอตัวนี้ สังเกตไหมคะ ว่าจริง ๆ มันจะมีแค่ 2 Attributes ใช่ไหมคะ ข้อมูลเกี่ยวกับผู้ปกครองนักเรียนนะคะ ข้อมูลผู้ปกครองนักเรียน ถ้าเรามาแปลงเป็นตารางเราจะต้องเอาส่วนของรหัสนักเรียนมาด้วยนะคะ เวลาเขียนก็เพิ่มนะคะ คีย์หลักของตารางที่ผ่านมา ก็คือมีรหัสนักเรียนเข้ามาเพิ่มแค่นั้นเอง อันนี้คือสำหรับตารางที่มีความอ่อนแอ ก็คือการต้องไปพึ่งค่าของตารางอื่นนั่นเองนะคะ อันนี้ก็ไม่ยาก ถ้าจำได้นะคะ ไม่ยากเลย ต่อมาการแปลงแผนภาพนะคะ ให้เป็นความสัมพันธ์ มันจะมีอยู่ 3 รูปแบบนะคะ แบบหนึ่งต่อหนึ่งแบบหนึ่งต่อกลุ่ม แบบกลุ่มต่อกลุ่ม อันนี้เรารู้อยู่แล้วนะคะ อันนี้เราเคยเรียนมาแล้ว โดยการแทนความสัมพันธ์แบบ 1 ต่อ 1 นี่ ก็คือชื่อของตารางนี่ เรารู้อยู่แล้วใช่ไหมคะ ก็จะมาตั้งและความสำคัญก็วาดง่าย ๆ นะคะ โดยการเพิ่มคีย์หลัก คีย์หลักก็คือตัวที่มันขีดเส้นใต้อ่ะค่ะ ของอีกตารางหนึ่งที่เรามีความสำคัญกันเ พื่อให้มันสามารถเชื่อมโยงกันได้ อันนี้คือง่ายมากจากรูปนะคะ คีย์หลัก ก็คือตัวขีดเส้นใต้นักเรียนตารางนี้นะคะ ของบัณฑิตนั่นเอง ของบัณฑิตนะคะ ที่จบการศึกษา ก็จะมีรหัสนักศึกษา เขาทำวิทยานิพนธ์เรื่องอะไรนะคะ ก็จะมีรหัสวิทยานิพนธ์ โดยตารางนี้เห็นไหมคะ ว่ามันมีความสัมพันธ์แบบ 1 ต่อ 1 มีเลข 1 กำกับ ถ้า แบบ 1 ต่อ 1 จะต้องเอาคีย์หลักนะคะ เลือกตารางใดทางหนึ่งก็พอมาใส่ สิ่งที่จะเกิดขึ้น คือ สมมติว่าเราจะเลือกคีย์นะคะ อย่างตัวนี้ สมมติว่าอาจารย์จะเอาคีย์หลักของตารางวิทยานิพนธ์ไปใส่ให้กับตารางนักเรียนก็ได้นะคะ ก็ได้ หรือเอารหัสนักศึกษามาใส่ในตารางวิทยานิพนธ์ก็ได้ อันนี้เฉพาะความสัมพันธ์แบบ 1 ต่อ 1 เท่านั้นนะคะ ที่เลือกตัวใดตัวหนึ่งก็ได้ที่มีความสัมพันธ์กัน แต่ถ้าเป็นความสัมพันธ์แบบหนึ่งต่อกลุ่มนะคะ แบบหนึ่งต่อกลุ่มนะ เราจะเอาคีย์หลัก ก็คือตัวขีดเส้นใต้ที่มีความสัมพันธ์เป็นหนึ่งเท่านั้น ไปใส่ในฝั่งที่มีความสัมพันธ์เป็นกลุ่ม อย่างเช่น รูปนี้นะคะ รูปนี้นะ ความสัมพันธ์เป็น 1 จะอยู่ฝั่งนี้นะคะ อันนี้ความสัมพันธ์เป็นกลุ่ม จะแทนด้วยตัว M เราจะเอาตัวขีดเส้นใต้ ก็คือคีย์หลักของตารางที่มีความสัมพันธ์เป็นหนึ่งเท่านั้น ไปเพิ่มลงในตารางที่มีความสัมพันธ์เป็นกลุ่มนะคะ นั่นก็คือ เห็นไหมคะ ฝั่งนี้ความสัมพันธ์เป็นกลุ่มใช่ไหมคะ คือคีย์หลักตัวขีดเส้นใต้เขามีอันนี้ตัวเดียว เราก็จะเอาของตารางตารางหนึ่งมาเพิ่มให้ ซึ่งตารางนี้มีความสำคัญเป็น 1 มาเพิ่มให้ อันนี้คือความสัมพันธ์แบบ 1 ต่อกลุ่ม อันนี้ก็ยังไม่ยาก แต่ถ้าเป็นความสัมพันธ์แบบกลุ่มต่อกลุ่มนะคะ โดยความสัมพันธ์นี่ บางทีมันอาจจะมีข้อมูลที่เกิดขึ้นของมันเองนะคะ ข้อมูลที่เกิดขึ้น ซึ่งวิธีการแก้ปัญหา ปัญหามันจะอยู่ตรงนี้ ตรงที่อาจารย์กรอบสีแดงนี่ ในความสัมพันธ์ของกลุ่มกับกลุ่มนี่ มันอาจจะมีข้อมูลที่เพิ่มเติมขึ้นมานะคะ ในกรณีนี้เราก็จะสร้างความสัมพันธ์ขึ้นมาใหม่เลยนะคะ โดยวิธีการ คือ เอาคีย์หลักของทั้ง 2 ความสัมพันธ์มาสร้างใหม่ให้กับความสัมพันธ์ตรงนี้นะคะ เอา 2 อันนี้มาใส่เพิ่มทั้ง2ฝั่งเลย เอาจากตาราง 2 ตารางนี่ มาเพิ่มให้กับความสัมพันธ์ใหม่เลยก็จะกลายเป็นแบบนี้ค่ะ อันนี้คือตารางที่เกิดขึ้นใหม่สำหรับความสัมพันธ์แบบกลุ่มต่อกลุ่มนะคะ มันจะเอาข้อมูลรหัสนักเรียน แล้วก็รหัสตารางเรียนวิชานะคะ มาเพิ่มจากทั้ง 2 ฝั่งเลย เมื่อก่อนคือเราต้องเลือกจากฝั่งใดฝั่งหนึ่งเท่านั้นใช่ไหมคะ ถ้าเป็นความสัมพันธ์แบบหนึ่งต่อหนึ่ง ถ้าเป็นความสัมพันธ์แบบหนึ่งต่อกลุ่ม เราจะเอามาจาก เราจะเอาคีย์หลักมาจากความสัมพันธ์ที่เป็นฝั่งหนึ่งต่อหนึ่งเท่านั้นแต่ถ้าเป็นกลุ่มต่อกลุ่ม เราจะเอาคีย์หลักมาจากทั้ง 2 ตารางที่มีความสัมพันธ์กันมาสร้างตารางใหม่ อันนี้คือจุดเด่นของแต่ละการแปลงตารางให้มันเป็นความสัมพันธ์นะคะ วิธีการทำเรารู้แล้ว เดี๋ยวจะให้ลองทำเองสัก 1 ข้อนะคะ ในห้อง เดี๋ยวฉันจะเดินดูนะคะ ทำเลย ทำเองนะคะ เอาแค่ 1 รูป รูปนี้ก็พอ ในรูปนี้มีกี่ตาราง มี 1 ตาราง 2 ตาราง 3 ตาราง ซึ่งในความสัมพันธ์ของรูปนี้ มีความสัมพันธ์แบบหนึ่งต่อกลุ่ม กลับแบบกลุ่มต่อกลุ่ม ลองดูสิว่าทำได้ไหมนะคะ ความสัมพันธ์ที่เกิดขึ้นจะมีอยู่ 2 ความสัมพันธ์ ลองดูสิว่าจากตัวอย่างที่อาจารย์ให้เข้าใจหรือเปล่า เอาอย่างแรกเลย แปลง ERใ ห้เป็นตารางให้ได้ก่อน ลองดูสิว่าจำได้ไหม ที่รักสอนขอบคุณแปลงตารางได้ปุ๊บ คุณถึงค่อยมาเชื่อมโยงความสัมพันธ์ดูแล้วกัน ว่าแต่ละตารางที่คุณทำออกมาได้เนี่ยมันเชื่อมโยงกับตราอื่นเป็นอย่างไร ขั้นตอนแรกเปลี่ยนจากรูปขอเป็นตารางได้ค่อยมาดูความสัมพันธ์นะคะ ลองทำดู ทำเองนะคะ ทำเองเดี๋ยวจะเดินดู กระดาษมีอยู่แล้วทำเลย ล่ามคะวันนี้ก็ประมาณนี้ล่ะค่ะ เนื้อหาจะมีแค่นี้ เดี๋ยวจะให้ทำงานห้องค่ะ วันนี้ขอบคุณมากนะคะ ขอบคุณล่ามด้วยนะคะ ขอบคุณมากค่ะ