(อาจารย์เกวลี) โอเคค่ะ อย่างนั้นเดี๋ยวเริ่มเลยนะคะ วันนี้จะเป็นบทที่ 8 เหลืออีก 2 บท เราก็ได้ปฏิบัติ วันนี้จะเป็นเกี่ยวกับกระบวนการทำงานของฐานข้อมูลนี่ มันก็จะมีการเปลี่ยนแปลงข้อมูลมันเป็นการเพิ่มลบแก้ไข เราจะเรียกว่าเป็นการเปลี่ยนแปลง รวมถึงถ้าสมมติว่าระบบฐานข้อมูลเรามีปัญหา เราจะทำการกู้คืนระบบอย่างไร หรือจะสำรองข้อมูลอย่างไร เพื่อป้องกันความเสียหายของข้อมูลนะคะ ตัวรายการการเปลี่ยนแปลงนี่ มันจะมีนิยามอยู่ 3 ยุค ยุคแรกก็คือไฟล์ที่เราเก็บรายการที่มีการเปลี่ยนแปลงไว้นี่นะคะ จะเก็บไว้ในแฟ้มข้อมูลหลักซึ่งจะเป็นการเก็บไว้เป็นแบบเรียงลำดับนะคะ หรือ Sequential File ที่มีการเรียงข้อมูลไว้เรียบร้อยแล้วนะคะ ต่อมาจะเป็นยุคที่ 2 ตอนแรกก็เก็บข้อมูลเป็นเหมือนอาจจะเป็นคล้าย ๆ ไฟล์กระดาษ พอยุคที่ 2 นี่ เราจะเริ่มใช้เก็บเป็นพวกนี้ Harddisk นี่ เก็บข้อมูล ซึ่งการเก็บข้อมูลใน Harddisk นี่มันจะไม่เป็นการเก็บข้อมูลแบบเรียงลำดับแล้วซึ่งรายการเปลี่ยนแปลงที่เกิดขึ้นนี่ จะหมายถึงทุก ๆ กิจกรรมที่ทำอยู่บนไฟล์ข้อมูลของเราน่าจะตอนเช้า 10:00 น. มีการเพิ่มข้อมูลนะคะ 10:30 น. อาจจะเป็นการเปลี่ยนแปลงข้อมูลใด ๆ ก็ตามที่เกิดขึ้นนะคะ อันนี้จะเริ่มเป็นยุคที่ 2 พอยุคที่ 3 ซึ่งเป็นยุคปัจจุบันนี้ล่ะ การเก็บข้อมูลนะคะ การเปลี่ยนแปลงทุกอย่างที่เกิดขึ้นในระบบจัดการฐานข้อมูลนี่ จะอยู่ในรูปแบบของกลุ่มคำสั่งนะคะ โดยใช้ภาษาที่ใช้จัดการฐานข้อมูลระดับตรรกะนะคะ ที่อาจจะมีการยอมให้ละเมิดกฎความคงสภาพของข้อมูลบางกฎได้ หรือกฎที่มีทำความถูกต้องของฐานข้อมูล แต่จะต้องเป็นเกี่ยวข้องกับกฎของการดำเนินธุรกิจต่าง ๆ เราจะต้องใส่ข้อบังคับไว้ว่าข้อมูลเหล่านี้ ถ้าสมมติว่าคุณใส่ข้อมูลผิดพลาดจะเป็นอย่างไร ถ้าใส่ข้อมูลถูกต้องระบบจะแจ้งเตือนอย่างไรซึ่งกฎต่าง ๆ พวกนี้นี่ที่อยู่ในฐานข้อมูลถูกบังคับใช้โดยระบบจัดการฐานข้อมูลอันนี้ก็คือการเปลี่ยนแปลงข้อมูลในยุคปัจจุบันเราจะใช้กลุ่มของคำสั่ง ภาษาที่จัดการฐานข้อมูลนะคะ ซึ่งในวิชานี้เราจะเรียนเกี่ยวกับภาษา SQL เบื้องต้นนะคะ โดยเริ่มแรกนะคะ รายการการเปลี่ยนแปลงนี่ มันอาจจะเกิดขึ้นกับระบบที่ใช้งานคนเดียวนะคะ หรือเป็นระบบที่ใช้งานร่วมกันหลายคน หรืออาจจะเป็นการทำงานที่พร้อม ๆ กันไป ซึ่งการทำงานพร้อมกันนี่ ก็จะมีอยู่ 2 แบบ ก็คืออาจจะเป็นการทำงานที่มีรายการลำดับที่ 1 รายการลำดับที่ 2สลับกันทำงานในเวลาเดียวกันสลับกัน กับอย่างที่ 2 ก็คือจะเป็นการทำงานพร้อม ๆ กันอาจจะมีทั้ง 2 งาน 3 งาน 4 งานว่าไป สมมติมีเป็นงานที่มากกว่า 1 ส่งข้อมูลเป็นรายงาน ทุกอย่างจะประมวลผลพร้อม ๆ กัน อันนี้คือการทำงานของรายการเปลี่ยนแปลงที่อาจจะเกิดขึ้นในฐานข้อมูล อย่างเช่นว่าระบบอาจจะเป็นระบบใบเรียกชื่อนักศึกษา อาจารย์ในมหาวิทยาลัยมี 300 คน สามารถเข้าใช้ระบบนี้ได้พร้อมกัน 300 คน อาจจะมีการประมวลผลรายชื่อนักศึกษาได้พร้อมกัน 300 คนก็ได้นะคะ อันนี้คือการประมวลผลมากกว่า 1 คน ในเวลาเดียวกันนี่ อาจจะมีสัก 10 คนดูข้อมูลนักศึกษาชุดเดียวกันก็ได้ ถามว่ามันจะทำงานได้ไหม ต้องทำงานได้ซึ่งการทำงาน 1 คน กับการทำงานหลายคนมันจะมีแนวทางหรือข้อกำหนดประเภทของฐานข้อมูลไว้อีกแบบหนึ่งโดยที่จะกำหนดจำนวนของผู้ใช้งานที่สามารถเข้าใช้งานพร้อมกันได้ อย่างเช่นว่าบางระบบในระบบจัดการฐานข้อมูลเขาจะกำหนดไว้ว่าในเวลานั้น จะต้องมีผู้ใช้งานแค่คนเดียวที่ทำงานอยู่ หรือถ้าเป็นระบบจัดการฐานข้อมูล โดยทั่วไปในโลกของความเป็นจริง ส่วนมากเขาจะให้ผู้ใช้งานนี่ สามารถเข้าใช้งานได้พร้อมกันหลาย ๆ คนในเวลาเดียวกันแต่จะมีการกำหนดสิทธิ์ของผู้ใช้งานแต่ละคนไม่เท่ากัน การใช้งานของแต่ละคนจริงค่ะ แต่บางคนอาจจะแค่ดูข้อมูลบางคนอาจจะมาลบข้อมูลบางคนอาจจะมาแก้ไขบางส่วนมาเพิ่มข้อมูลเข้าไปได้หลาย ๆ คนน่ะจะทำงานพร้อม ๆ กัน แต่สิทธิ์ในการแก้ไขหรือการเพิ่มเติมใด ๆ ก็ตามนี่ จะไม่เท่ากันนะคะ รายการเปลี่ยนแปลงนี่ มันจะเป็นเกี่ยวกับการประมวลผลของโปรแกรม ที่ทำงานในเชิงตรรกะ ก็คือเป็นอาจจะคิดว่าข้อมูลนี้จริงหรือเท็จ ข้อมูลนี้ถูกหรือผิดนะคะ โดยรายการเปลี่ยนแปลงนี่ จะประกอบไปด้วยการปฏิบัติที่ทั้งหน่วยประมวลผลทั้งฐานข้อมูลอาจจะมีกระบวนการทำงานใด ๆ กระบวนการเกิดขึ้นพร้อมกันนะคะ ซึ่งการทำงานของฐานข้อมูลนี ยจะเป็นการกระทำผ่านโปรแกรมประยุกต์ ที่เดี๋ยวอีก 2 สัปดาห์เราจะได้เรียน โดยใช้ภาษาระดับสูงนะคะ ภาษา SQL ที่เราจะเรียน เราถือว่าเป็นภาษาระดับสูง เพราะเป็นภาษาที่มนุษย์อ่านแล้วเข้าใจ ใกล้เคียงกับภาษามนุษย์มากที่สุด แต่นักศึกษาต้องเข้าใจอย่างหนึ่งว่าเราจะต้องใช้เป็นภาษาอังกฤษ เพราะฉะนั้น คุณพิมพ์คำสั่งเป็นภาษาไทยนี่ ระบบจะไม่ประมวลผลเลยนะคะ สำหรับ SQL เบื้องต้น โดยรายการเปลี่ยนแปลงทุกรายการ จะต้องมีจุดเริ่มต้น และจุดสิ้นสุดสิ้นสุดนะคะ เหมือนคุณไปกดเงินอยู่หน้ามหาวิทยาลัย จุดเริ่มต้นคืออะไร คือการใส่บัตร ATM เข้าไปตอนนี้ไม่มีใครกดเงินโดยใช้บัตร ATM แล้ว จุดเริ่มต้นคือเข้า Application กดถอนเงินโดยไม่ใช้บัตร ทุกอย่างจะเป็นขั้นตอน ทำตามขั้นตอนไปเรื่อย ๆ จนถึงจุดสิ้นสุดคือคุณได้รับเงินออกจากเครื่อง ATM ซึ่งทุกอย่างจะถูกเก็บไว้ ว่าคุณเริ่มกดรหัสเมื่อเวลาเท่าไรนะคะ คุณยืนยันยอดเงินกี่โมง เงินออกจากตู้กี่โมง ทุกอย่างจะถูกเก็บไว้ ถ้าหากว่าในการจัดการฐานข้อมูลนี่ มันจะมีรายการเปลี่ยนแปลงนะคะ ที่อาจจะ User ผู้ใช้งานทั่วไปอาจจะไม่จำเป็นต้องมีการเปลี่ยนแปลงหรือนะคะ มีไว้อ่านเฉย ๆ นะคะ ถ้าศัพท์ภาษาอังกฤษเรียกว่า Read Only นะคะ เอามาดูอย่างเดียวอย่างเช่น การเปลี่ยนแปลงที่ไม่ก่อให้เกิด ผลกระทบกับฐานข้อมูล เช่น คุณแค่อยากดูยอดเงินปัจจุบัน ว่ามีเงินเท่าไร เราแค่ดู ถามว่าคุณจะถอนเงินไหม ไม่ อยากรู้ว่าตอนนี้ฉันมีเงินกี่บาท เราจะเรียกว่ารายการนั้นคือหรือกระบวนการนั้นว่าเป็นการอ่านอย่างเดียว ไม่มีการแก้ไขนะคะ โดยกระบวนการทำงานของฐานข้อมูลนะคะ อย่างเริ่มต้น ก็คือมันจะเรียกข้อมูลขึ้นมาดูก่อนนะคะ เรียกข้อมูลว่า สมมติว่าอยากดูว่ าวันนี้เราจะถอนเงิน แต่เราจำไม่ได้ว่าเรามีเงินกี่บาท เราจะต้องทำการเรียกข้อมูลขึ้นมาดูก่อนว่าเงินในบัญชีมีเท่าไรนะคะ หน้าจอมันก็แสดงผลว่าเรามีเงินเท่าไร หลังจากนั้นจะเป็นการเขียนหรือการแก้ไขหรือการลบนะคะ ซึ่งขั้นตอนที่ 3 นี่ จะอยู่ที่ว่าเราจะโอนเงินหรือเราจะถอนเงินนะคะ หรือเราจะไม่ทำอะไรเลยก็ได้นะคะ แต่ทุกอย่างจะต้องมีจุดเริ่มต้นอย่างตัวอย่างตัวนี้ ตัวอย่างของการเปลี่ยนแปลงนะคะ อย่าง สมมติให้ T นี่ โทษทีนะคะ เป็นรายการเปลี่ยนแปลงที่เกิดขึ้น เขาต้องการจะโอนเงินจากบัญชีของ A จำนวน 5,000 บาท ไปยังบัญชี Bนะคะ สิ่งที่เกิดขึ้นคืออะไร สิ่งที่เกิดขึ้นคือตอนแรกเราจะต้องดูข้อมูลก่อนว่าในบัญชี A ที่เขาบอกว่าเขาจะโอนเงินไปนี่ โอน 5,000 ขั้นตอนแรกคือดูก่อนสิว่าบัญชี A มีเงินถึง 5,000 ไหมมีเกินหรือเปล่า พอเช็กยอดเงินเสร็จปุ๊บ เราก็จะมาหักบัญชี เช่น สมมติเขามี 5,100 บาท อย่างนั้นแสดงว่ามีจะยอดเงินพอที่จะโอนไปให้จะทำการลบเงินออก 5,000 ลบไปแล้ว 5,000 ใช่ไหมคะ เพราะว่าเราจะโอนเพราะฉะนั้น สุดท้ายแล้วบัญชี A จะต้องเหลือเงิน 100 บาท ใช่ไหม เวลาเราโอนเงินแล้วถอนเงินเขาจะบอกยอดเงินปัจจุบันของเราด้วย อันนี้เป็นเรื่องปกติใช่ไหมคะ หลังจากนั้นเราก็จะมาดูว่าเขาจะโอนไปที่บัญชี B ใช่ไหมคะ เราว่ายอดเงินบัญชี Bขึ้นมาดูสิว่ามีเท่าไร บัญชี B จะมีอยู่ 1,000 บัญชี B 1000 พอโอนมาอีก 5,000 เราก็ต้องอัปเดทหรือการปรับปรุงข้อมูลบัญชีบีจาก 1,000 ก็จะเพิ่มเป็น 6,000 อันนี้คือรายการเปลี่ยนแปลงของการโอนบัญชีทุกลำดับขั้นตอนจะต้องมีวันที่เวลากำหนดไว้ทุกการเปลี่ยนแปลงเป็นวินาทีเลยด้วยซ้ำ พอไม่มีพอมีการเปลี่ยนแปลงแล้วนี่ เราใช้งานไปเรื่อย ๆ ระบบมันอาจจะมีปัญหา มันจะต้องมีการสำรองข้อมูลนะคะ พอเราสำรองข้อมูลไว้ ทำไมเราต้องสำรองข้อมูลนะคะ ถ้ามีข้อมูลสำรองไว้ ถ้าระบบมีปัญหา เราสามารถกู้ข้อมูลกลับคืนมาได้ทำไมเราถึงจำเป็นต้องกู้คืนข้อมูลเกิดเมื่อกี้นี้ เป็นคุณกำลังโอนเงินแล้วไฟดับ คุณโอนไปแล้ว 5,000 ไฟดับพอดีเงินคุณออกไปแล้วแต่บัญชีที่คุณจะโอนให้เงินยังไม่ได้เพราะไฟดับพอดี ทำอย่างไรนะคะ เพราะฉะนั้นถือว่าระบบล่ม มันจะต้องมีการแก้ปัญหา ซึ่งเป็นหน้าที่ของระบบจัดการฐานข้อมูล ระบบจัดการฐานข้อมูลจะต้องรับผิดชอบ ว่าทุก ๆ การทำงานที่เกิดขึ้นในรายการเปลี่ยนแปลง จะต้องทำเสร็จเรียบร้อย การเปลี่ยนแปลงดังกล่าวจะถือว่าเป็นการเปลี่ยนแปลงบันทึกข้อมูลถาวรถ้าโอนไปเงินออกจากบัญชีคุณแต่ปลายทางยังไม่ได้รับ ถือว่าการทำรายการเปลี่ยนแปลงนั้นยังไม่สมบูรณ์นะคะ โดยที่ระบบจัดการฐานข้อมูลจะไม่อนุญาตให้บางกระบวนการทำงานของรายการเปลี่ยนแปลงนะคะ จะถูกส่งเข้าไปฐานข้อมูลนะคะ เหมือนจะเป็นไปได้ไหม ว่าการจะโอนเงิน 5,000 บาท แล้วก็คงจะถอนอีก 3,000 ในเวลาเดียวกัน มันเป็นไปไม่ได้ เพราะฉะนั้น กระบวนการทำงานจะต้องเป็นตามรายการที่จะทำอยู่รายการเดียวเท่านั้น ทั้งถอนทั้งโอนไม่ได้ ต้องเลือกก่อนว่าสรุปคุณจะโอนก่อนหรือคุณจะถอนนะคะ เพราะว่าถ้าบังเอิญ ว่าคุณปล่อยให้มีการกระทำมากกว่า 2 มากกว่า 1 การกระทำขึ้นมาพร้อมกัน มันจะเอา... มันจะสามารถไปเกิดปัญหาความไม่ถูกต้องของข้อมูล เช่น ร 5,000 แล้วเราจะโอน 5,000 แล้วเราก็จะถอน 30000เป็นไปไม่ได้บางคนมีแอปโทรศัพท์แต่บัตร ATM อยู่กับแม่โอนเงินให้เพื่อน 5,000 มั่นใจว่าจะมี 5,000 แม่กดไปแล้ว 3ม00 แล้วก็ยังโอนมันโอนไม่ได้ค่ะ เพราะว่ายอดเงินไม่พอเพราะฉะนั้นใครผิด อันนี้ก็เป็นสิ่งที่ยอมไม่ได้ ของระบบจัดการฐานข้อมูลนะคะ ซึ่งปัญหานะคะ การที่ระบบล่มนะคะ มันจะมีอยู่ 3 ประเภท แบบแรก คือรายการเปลี่ยนแปลงผิดพลาด ขับข้อ 2 เป็นปัญหาที่ระบบ ข้อ 3 จะเป็นปัญหาที่สิ่งวัตถุที่มาใช้เก็บข้อมูลนะคะ โดยที่ปัญหาที่เกิดระหว่างการประมวลผลบางครั้งอาจจะเกิดกับคอมพิวเตอร์พังนะคะ หรืออาจจะเป็นปัญหาโปรแกรมมัน Error หรืออาจจะเป็นปัญหาของรายการเปลี่ยนแปลงมัน Errorว่าจะเป็น Code โปรแกรมอาจจะมีปัญหานะคะ การเรียกดูข้อมูลอาจจะถูกดัก เจอรายการเปลี่ยนแปลงที่มีความผิดปกติ เช่น บอกว่ามีคนโอนเงินมา แต่จริง ๆ แล้วไม่พบรายการข้อมูลที่มีการเปลี่ยนแปลง ทั้ง ๆ ที่โอนไปแล้วแต่ยอดเงินไม่ขึ้นนะคะ รวมถึงกระบวนการควบคุมการประมวลผลพร้อมกันจะทำอย่างไรนะคะ อาจจะมีเกี่ยวกับอุปกรณ์พัง Harddisk พัง คนใช้งานนาน ๆ อากาศร้อนคอมพิวเตอร์ก็พังได้เหมือนกันนะคะ เหมือนบางคนเปิดคอมพิวเตอร์ไว้ไม่เคยปิดเลย พอช่วงฤดูร้อนมันร้อนมาก ตัวเมนบอร์ดงอความร้อน เพราะความร้อนมีรวมถึงอาจจะเกี่ยวกับไฟดับ ไฟไหม้ อุทกภัย หรือภัยธรรมชาติต่าง ๆ อาจเกิดขึ้นได้ถือว่าเป็นสาเหตุที่ทำให้การประมวลผลมีปัญหาเช่นเดียวกันนะคะ หรือในการทำงานบางอย่างอาจทำไปสู่นำไปสู่การล่มของระบบ เช่น คุณใส่ข้อมูลเยอะเกินไป เหมือนเวลาเราเขียนโปรแกรมแล้วมันไม่รู้จบหรือการที่เราเอาศูนย์มาหาร เวลาเราเอาศูนย์มาหารนี่มันจะหาค่าไม่ได้ตอนที่เราเขียนโปรแกรมระบบก็จะล่ม รวมถึงตรรกะของการเขียนโปรแกรมอาจจะผิด คืออย่างไรดี ถ้าคนผมสั้น สมมุติตรรกะโปรแกรมคนผมสั้นจะต้องเป็นผู้ชายเท่านั้น ถามว่าจริงไหม ไม่จริง ผู้ชายผมยาวก็มี ผู้หญิงผมสั้นก็มี อันนี้คือตรรกะผิดพลาดเราจะมากำหนดอย่างนี้เลยไม่ได้ เหมือนเวลาสแกนใบหน้าอย่างนี้ แล้วบอกว่าอุ้ยผมสั้นมาต้องเป็นผู้หญิงแน่นอน ซึ่งมันไม่จริงหรือ User หรือผู้ใช้งานอาจเป็นการหยุดที่ไม่ถูกต้องระหว่างประมวลผล เช่น กำลังดาวน์โหลดเอกสาร หรือกำลังทำธุรกรรม บางคนกำลังโอนเงินอยู่ แล้วไม่ได้ใช้เน็ตในโทรศัพท์ ใช้เน็ต WiFi มีคนถอดปลั๊กออก การโอนเงินของตอนนั้นของคุณอาจจะมีปัญหาก็ได้ อันนี้คือการทำงานอาจจะมีการผิดพลาดหรือปัญหาเกิดขึ้น อันนี้ก็อธิบายไปแล้วนะ อันนี้เปลี่ยนแปลงซึ่งสาเหตุเหล่านี้นี่ เราเลยจำเป็นจะต้องมีทั้งการกู้คืนแล้วก็การสำรองข้อมูลนะคะ โดยการกู้คืนฐานข้อมูลนี่ ก็คือกระบวนการที่การทำให้ฐานข้อมูลของเรานี่ กลับสู่สภาวะเดิมที่ สามารถใช้งานได้นะคะ ถ้าขนาดนั้นถ้ามีความขัดข้อง หรือข้อผิดพลาดระหว่างการประมวลผล ซึ่งการฟื้นสภาพหรือการกู้คืนนี่ มันเป็นการที่ระบบจัดการฐานข้อมูลนี่ ย้อนกลับไปยังข้อมูลก่อนที่จะเกิดความเสียหายนะคะ โดยที่ก็เหมือนจะเกิดความขัดข้องและความเสียหายของระบบไม่ว่ากรณีใด ๆ มันจะทำให้ข้อมูลนะนี่ไม่ถูกต้อง แล้วก็เชื่อถือไม่ได้ เราจะต้องย้อนกลับไป เพราะฉะนั้นการกู้คืนฐานข้อมูลมันจะเป็นมีวิธีการในการเอาข้อมูลที่ถูกทำลาย หรืออาจจะถูกเปลี่ยนแปลงให้กับคืนมาอยู่ในสภาพที่ถูกต้องน่าเชื่อถือเหมือนเดิมนะคะ ซึ่งอันนี้ก็คือเป็นหน้าที่ของระบบจัดการฐานข้อมูลเช่นเดียวกัน โดยการกู้คืนข้อมูลการฟื้นสภาพเหมือนจะเป็นการทำให้เรามั่นใจว่ารายการที่ทำของเรานี่ที่ถูกยกเลิกไป หรืออาจจะมีความผิดพลาดต่าง ๆ เช่น อาจจะเกิดจากโปรแกรม ระบบมันเสีย Harddisk เสีย ไฟดับ ไฟตกนะคะ สิ่งเหล่านี้จะไม่ก่อให้เกิดความเสียหายของฐานข้อมูล หรือการทำงานอื่น ๆ ที่ทำงานร่วมกันของข้อมูลนั้น ๆ นะคะ โดยรูปแบบของลักษณะของความผิดพลาดนะคะ อันแรกระบบล่มซึ่งอันนี้เราก็น่าจะคุ้นเคยกันอยู่ความขัดข้องจากอุปกรณ์บันทึกข้อมูล Harddisk เสีย SSD เสีย ความผิดพลาดของโปรแกรมภัยธรรมชาติ อย่างเราเป็นเรียนทางคอมพิวเตอร์ เราจะต้องไปดูแลคอมพิวเตอร์ แต่ถ้าคุณไม่ดูแลเอาใจใส่ ไม่ทำความสะอาด ไม่เช็กความพร้อมอุปกรณ์ คิดว่าไม่เป็นไรหรอก เปิดฝาหลังคอมพิวเตอร์มามีแต่ฝุ่น ถามว่าฝนมันสะสมมาก ๆ สักวันมันจะช็อตแล้วคอมคุณก็จะพัง อันนี้คือความไม่ดูแลเอาใจใส่หรือเอาของเข้ามากินในห้อง น้ำหกใส่คอมพิวเตอร์ของคุณก็พัง เพราะฉะนั้น เดี๋ยวถ้ามีโอกาสที่คุณจะไปดูงานห้องคอมพิวเตอร์ ที่เป็นคอมพิวเตอร์ที่สมบูรณ์แบบ เขาจะห้ามของกินทุกชนิด รองเท้าต้องสะอาด ถุงเท้าต้องสะอาด ห้องคอมพิวเตอร์บางห้องต้องใส่หมวกคลุมผม ไม่ให้ผมร่วงลงไป เพราะบางทีถ้าพัดลมมันพัดน้องมันไปเกิดช็อตที่ใบพัดของระบบทำความเย็นเสียหายได้ หรือรวมถึงการก่อวินาศกรรมถ้าเราดูหนังหลาย ๆ เรื่องนะคะ จะมีการวางระเบิดห้องคอมพิวเตอร์ไรอย่างนี้ อันนี้ก็เป็นสาเหตุเช่นเดียวกันนะคะ ประเภทของเหตุขัดข้องก็มีอยู่ 3 ลักษณะหลัก ๆ นะคะ อันแรกจะเป็นความขัดข้องของระบบ เช่น ความขัดข้องของระบบปฏิบัติการนะคะ ทำให้ระบบไม่สามารถทำงานไปได้ อาจจะต้องมีการปิดเปิดเครื่องใหม่ Restart นะคะ ซึ่งจะมีผลกับทุก ๆ รายการเปลี่ยนแปลงที่กำลังทำงานอยู่ อาจจะไม่ถึงขั้นทำลายข้อมูลในฐานข้อมูล เราจะเรียกการขัดข้องแบบนี้ว่าเป็นการขัดข้องแบบอย่างเบาแล้วกัน ข้อมูลไม่หายแต่ข้อมูลที่อยู่ใน Harddisk นี่ บางครั้งอาจจะ... ต่อไปครั้งหน้าที่มีการเล่นการทำงานมันอาจจะช้านะคะ เพราะว่าส่วนมากข้อมูลแล้วจะเก็บไว้ใน Harddisk ซึ่ง Harddisk ไม่มีไฟฟ้าก็สามารถเก็บข้อมูลได้ นะคะ ความขัดข้องแบบที่ยังพอรับได้ปิด-เปิดเครื่องใหม่ก็หาย แต่ถ้าเป็นความขัดข้องของรายการเปลี่ยนแปลงนะคะ ก็จะมีอยู่ 2 ลักษณะ บางครั้งมันจะเป็นความขัดข้องที่จากโปรแกรมที่เราเขียนไว้ หรือโปรแกรมที่เราใช้งาน โดยมีทั้งภายใน ภายนอก ที่ไม่สามารถแก้ไขได้ อย่างสมมติว่า เช่น ความขัดข้องที่สามารถป้องกันได้จากภายในโปรแกรม เช่น ถ้าเราจะโอนเงินสมมติว่าเราอยากโอน500,000 นะคะ จริง ๆ แล้วมีอยู่ 500 โปรแกรมก็จะเริ่มตรวจสอบความผิดพลาดแล้วว่าแล้วก็แสดงผลว่ายอดเงินของคุณไม่เพียงพอ ต้องยกเลิกรายการนี้หรือกลับไปแก้ไขจำนวนเงินใหม่ อันนี้ คือ เราสามารถป้องกันความเสียหายได้นะคะ อันนี้ก็คือมันจะเป็นเกี่ยวกับตรรกะ แนวคิด แล้วเงินไม่พอจะโอนได้อย่างไร อันนี้เป็นพื้นฐานง่าย ๆ เป็นต้น หรือถ้าไม่สามารถป้องกันได้ เช่น ข้อมูลมันเยอะเกินอย่างเช่น อาจจะเคยได้ยินข่าวว่ามี Hacker พยายามเอาข้อมูลเหมือนพยายามโจมตี server 1นะคะ อาจจะเป็นมหาวิทยาลัยเราก็ได้สามารถทำงานได้พร้อมกันเต็มที่ 500 คนHacker ใช้ User เป็น 1 ล้านคนมาโจมตีมันจะทำให้ระบบเราเนี่ยไม่สามารถรับได้ ระบบก็จะล่ม เพราะเรารับได้เต็มที่ 500 แต่คนล้านคนพยายามเข้ามา หรือพยายามกรอกข้อมูลนี่ มันเป็นไปไม่ได้เลยระบบก็จะพังนะคะ อย่างนี้เป็นต้น อันนี้คือไม่สามารถป้องกันในโปรแกรมเราได้เลย กับอีกอย่างหนึ่งกล้องของอุปกรณ์อาจจะพังหัวอ่านสะเทือนกระทบกันนักศึกษาบางคนชอบใช้ Note แล้วปิดฝาลงปิดเครื่อง เครื่องก็ยังทำงานอยู่ เวลาคุณขี่มอเตอร์ไซค์ตกหลุมมันสะเทือน อุปกรณ์ที่อยู่ในกระเป๋าเป้เรามันยังทำงานก็จะสะเทือนไปด้วย มันก็อาจจะพัง คอมคุณก็จะพังเพราะบางทีหัวอ่าน Harddisk คุณมันทำงานอยู่ พอมันโดนกระแทกหัวอ่านมันจะเป็นเข็มเล็ก ๆ มันก็พังนะคะ อันนี้ก็ระวังด้วยอันนี้คือความเสียหายของอุปกรณ์ที่ถือว่าเป็นลักษณะที่ค่อนข้างรุนแรงเพราะถ้ามันพังแก้ไขไม่ได้ เพราเหมือนมันหักไปแ ล้วมันเสียไปแล้ว ข้อมูลเราก็ไม่ได้สำรอง อันนี้ก็คือข้อผิดพลาดจากอุปกรณ์เก็บข้อมูลความจำเป็นของการกู้คืนข้อมูลก็แน่นอนค่ะ อยู่ที่ว่าเราจะสำรองข้อมูลกับอะไร ใส่ Harddisk ไว้ไหม หรือใส่ USB ไว้ อัปโหลดขึ้นบน Google Drive หรือบน Cloud ก็ว่าไป ซึ่งประเภทของเก็บข้อมูลสำรองจะมีอยู่ 3 แบบ 3 แบบนี้ถ้านับเป็นอุปกรณ์นะที่จับต้องได้ อันแรกเป็นอุปกรณ์ที่จะเก็บข้อมูลได้ต่อเมื่อมีไฟฟ้าในกรณีที่ไม่มีไฟฟ้าข้อมูลพวกนี้จะหายไป สิ่งเหล่านี้ก็คือ Ram เราเรียนประกอบคอมท่แล้ว RAM การ์ดแผ่นเล็ก ๆ นะคะ น่าจะเป็นพื้นที่สำหรับสำรองข้อมูลตอนที่คอมพิวเตอร์ทำงานอยู่ ถ้าเราปิดปุ๊บข้อมูลในนั้นจะหายไปนะคะ กับอุปกรณ์ที่ไม่จำเป็นต้องใช้ไฟฟ้า ก็คือ Harddisk ซึ่งอุปกรณ์ประเภทนี้น่ะ มักจะเกิดปัญหาก็คือ Harddisk พัง หัวอ่านหักหรือตัวดิสก์เป็นรอยนะคะ เพราะฉะนั้นก็ต้องระวังด้วย กับอันต่อมาเป็น stable ก็คืออันนี้จะเป็นค่อนข้างโบราณ ไม่ต้องอาศัยกระแสไฟฟ้า ส่วนมากจะมาใช้ในการสำรองข้อมูลมากกว่า ลักษณะเป็น Tape แม่เหล็ก เพราะราคาค่อนข้างถูก แต่การเรียกดูข้อมูลมันจะช้านะคะ แต่ว่าส่วนมากเขาเลยใช้เป็นที่เก็บข้อมูล ไม่ได้มาประมวลผลทุกวัน ถามว่านิยมใช้ไหมก็ไม่น่ะค่ะ เพราะว่าตอนนี้เขาก็ใช้ Harddisk กันหมดอย่างน้อย ๆ นะคะ ต่อมาก็เป็นความผิดพลาดมีอยู่ 4 ประเภทนะคะ อันแรกก็คือความผิดพลาดทางตรรกะนะคะ ก็บางทีก็เกิดความผิดพลาด ตั้งแต่ตอนเราที่เขียนโปรแกรมมันพิมพ์ เช่น ไม่ยอมทำงาน เพราะว่าบัตรประชาชนคุณกำหนดไว้เป็น 15 หลัก ความจริงมีแค่ 13 พอกรอกไม่ครบระบบทำงานไม่ได้ ผู้ใช้งานกรอกถูกแล้ว 13 ตัว แต่ระบบบอกว่ามันต้องมันหายไป 2 ตัว อันนี้คือมันผิดโปรแกรมมันผิดเราเขียนผิดเองนะคะ ก็ไปถือว่าเป็นความผิดพลาดอย่างหนึ่ง หรือว่านามสกุลกรอกเป็นตัวเลขไม่ได้ แต่บังเอิญ คุณไม่ได้ปิดความผิดพลาดตรงนี้ มีคนมาปั่นมาป่วนระบบคุณ เขาใช้นามสกุลเป็นตัวเลข ระบบยอมให้เซฟหรือยอมให้บันทึกข้อมูลสรุปคุณก็ได้ข้อมูลขยะเข้ามาทำให้เปลืองการประมวลผลข้อมูลอีกนะคะ กับความผิดพลาดของระบบนะคะ เช่น ปัญหาการจัดลำดับการทำงานผิดพลาดแล้วมันเลยเกิดปัญหา ระบบหยุดการทำงานของมันเอง ล็อกไม่ให้คุณทำงาน แบบนี้รวมถึงความผิดพลาดของอุปกรณ์จัดเก็บข้อมูล เช่น เหมือนตึกนี้ ไฟไม่สม่ำเสมอ ไฟตกบ่อย ข้อมูลหาย อันนี้ก็เป็นปัญหา เพราะฉะนั้น ในห้องนี้เมื่อก่อนเราเลยมีอุปกรณ์สำรองไฟอุปกรณ์สำรองไฟใช้ไปนาน ๆ ไฟตกบ่อยก็พังเหมือนกันนะคะ อันนี้ก็เป็นความผิดพลาดของระบบรวมถึงความผิดพลาดของระบบอุปกรณ์ที่เก็บข้อมูล เช่น ปัญหาบางที Harddisk ของเรานี่ พอเราอย่างที่ท่านบอกคุณแม่ปิดเครื่อง นี่มันทำงานตลอด แล้วหัวเข็มมือที่มันสะเทือน ไอ้ตัวหน้าหน้าจานแม่เหล็กที่เก็บข้อมูลของเรานี่ มันเลยเป็นรอยขูดขีด เป็นรอย เหมือนสมัยเด็ก ๆ ทุกคนดูแผ่นซีดีน่ะค่ะ แผ่นซีดีเป็นรอยหนังในแผ่นซีดีเรานี่ ก็จะดูแล้วมันก็จะกระตุกอาจจะดูไม่ได้เลยเพราะว่าเราเก็บรักษาไม่ดี นี่ก็เหมือนกันนะคะ เพราะฉะนั้นการใช้อุปกรณ์ใด ๆ ที่เป็นอุปกรณ์คอมพิวเตอร์นี่ มันค่อนข้างมีราคา แล้วก็ค่อนข้างมีความสำคัญอาจจะมีข้อมูลสำคัญ อย่างนั้นเราก็ต้องช่วยกันรักษาด้วยนะคะ การกู้ข้อมูลจากอุปกรณ์ที่ใช้ไฟฟ้านะคะ มีอยู่ 3 แบบ แบบแรกก็เป็นการกู้ข้อมูลที่อาศัยข้อมูลที่เก็บจากเขาจะเรียกว่ารายการเปลี่ยนแปลงนี้ สมมติว่าเวลาเราไปเซ็นชื่อหรือการเก็บข้อมูลว่าวันนี้คุณมาเรียนกี่โมงกลับบ้านกี่โมงนะคะ มันก็มีการเก็บไว้ เป็นลำดับรายการเ ป็นหมายเลขการเปลี่ยนแปลงมีการกระทำอะไรบ้าง ชื่อตารางมาจากไหน เปลี่ยนแปลงข้อมูลอะไร ลักษณะของการเก็บข้อมูลเป็นตารางแบบนี้ เช่น สมมติ 10.12 น. เริ่มทำงานนะคะ 10 นาทีต่อมามีการเปลี่ยนแปลงข้อมูลของพนักงานลำดับที่เท่าไรนะคะ ข้อมูลเดิมลำดับที่ 1 เปลี่ยนเป็นลำดับที่ 8 แบบนี้เป็นต้น อันนี้คือเขาจะรู้เลยว่าทุก ๆ กี่นาทีมีข้อมูลอะไรเกิดขึ้นบ้าง มีรายการเปลี่ยนแปลงใดบ้าง อย่างเช่น รายการไปที่ 1 แปลงที่ 2 แปลงที่ 3 สังเกตว่าทุกการเปลี่ยนแปลงจะเริ่มต้นที่จุด Start มีการเริ่มทำงาน อย่างเหมือนรายการเปลี่ยนแปลงที่ 1 เห็นไหมคะ เริ่มต้นเมื่อ 10.12 น. สถานะ Commit ก็คือยอมรับการเปลี่ยนแปลงตอน 10.18 น. ก็คือเราทำงานในการแก้ไขข้อมูลนี่ ใช้เวลา6 นาที มันจะเก็บทุกอย่างที่เกิดขึ้นใน 6 นาทีนั้นนะคะ อย่างเช่น start นะคะ เช็กสถานะ ก็คือสตาร์ทก็คือรายการจะเริ่มต้นทำงานนะคะ Commit ก็คือทำงานเสร็จ Updat ก็คือรายการถูกบันทึกแล้วแล้วก็ให้เกิดการเปลี่ยนแปลงค่า สถานะหลัก ๆ จะมีอยู่ 3 สถานะนะคะ การเก็บข้อมูลเป็นประเภทก็คือเป็นการเก็บ Log File ก็คือการเปลี่ยนแปลงทั้งหมดที่เกิดขึ้นนั้นเองการกู้คืนใน... เกิดจากเหตุขัดข้องแบบความผิดพลาดของระบบ เราจะมีจุดที่เป็นเหมือนจุดตรวจสอบนะคะ ถ้าสมมติว่าทำงานแล้วยังไม่ถึงจุดตรวจสอบ แล้วถ้าระบบล่มเราจะเริ่มต้นใหม่ทั้งหมด แต่ถ้าการทำงานของเราเลยจุดตรวจสอบแล้ว แล้วระบบจึงล่มเราจะเริ่มการทำงานใหม่ที่จุดตรวจสอบนั้น ก็คือไม่ต้องเริ่มใหม่ทั้งหมด จะเริ่มตรงจุดที่เรา Mark ไว้หรือเราหรือเราตั้งธงไว้นั่นเองนะคะ เดี๋ยววันนี้ค่อยอธิบายเพราะว่าเป็นตัวเลขเยอะเนาะแบบนี้ล่ะค่ะ อย่างเช่นอันนี้ค่ะ จุด Check Point ถามว่าตัวกระบวนการทำงานที่ 1 ธ1 เริ่มต้นตรงนี้ ถึงตรงนี้ ถามว่ามันทำงานเสร็จไหม มันทำงานเสร็จเรียบร้อยนะคะ T1 ไม่มีปัญหาอะไร T2 ล่ะ T2 ทำงานผ่านจุดตรวจสอบที่ 1 เสร็จเรียบร้อยก่อนถึงจุดที่ระบบจะล่ม ถามว่า T2 ทำงานเสร็จไหม T2 ทำงานเสร็จนะคะ T3 ทำเริ่มทำงานตรงนี้ผ่านจุดตรวจสอบ ทำงานจนถึงจุดผิดพลาดถามว่า T3 จะเริ่มทำงานที่ไหน เริ่มตรงนี้นะคะ จะเริ่มตรงที่จุดตรวจสอบตรงนี้ T4 เริ่มทำงานตรงนี้ เสร็จตรงนี้ ไม่อยู่ในจุดตรวจสอบก็จริง แต่เราก็นับว่าเขาทำงานเสร็จเรียบร้อยนะคะ ส่วน T5 ทำงานหลังจากตรวจสอบแล้วทำไม่เสร็จ T5 จะทำอย่างไร T5 ต้องเริ่มใหม่ทั้งหมด อันนี้คือการทำงานของจุดตรวจสอบจะเห็นได้ว่าถ้าคุณทำงานผ่านจุดตรวจสอบก็จริง แต่ถ้าระบบมันทำงานเสร็จก็ไม่มีปัญหาอะไร แต่ถ้าการทำงานมีปัญหา แล้วผ่านจุดตรวจสอบแล้ว เราจะไม่เริ่มใหม่ทั้งหมด เราจะเริ่มต้นแค่ตรงที่จุดตรวจสอบนะคะ อันนี้เป็นแบบการกู้คืนข้อมูลแบบใช้จุดตรวจสอบ กับการกู้คืนแบบทำคล้าย ๆ กับว่าเป็นสำเนาข้อมูลนะคะ ก็ส่วนมากตัวนี้การกู้คืนตัวนี้จะใช้พื้นที่ในการเก็บข้อมูลเยอะพอสมควร เพราะไม่ว่าจะมีการกระทำใด ๆ เกิดขึ้นในระบบของเรา มันจะทำสำเนาซ้ำไว้ด้วยเสมอ เหมือนกับเงานะคะ เขาเรียกว่าเหมือนเราเดินไปก็จะมีเงาติดตัวเราไปด้วย เราเดินไปซ้ายเงาไปทางซ้าย เราเดินขวาเงาก็เป็นเงาทางขวา เพราะฉะนั้นไม่ว่าจะเกิดการกระทำใดขึ้นจะมีสำเนาไว้ด้วยเสมอนะคะ อันนี้เป็นการทำแบบ Shadow Paging นะคะ ต่อมาเป็นการกู้ข้อมูลจากการสำรองข้อมูลที่ไม่ใช้ไฟฟ้า ส่วนมากก็จะเป็นอุปกรณ์ที่เป็น Harddisk หรือว่า Tape แม่เหล็กนะคะ แต่แบบนี้นี่ เราจะไม่ทำสำเนาตลอดเวลา เราจะมีการกำหนดช่วงเวลาในการสำรองข้อมูล เช่น ทุก ๆ 1 เดือน 2 เดือน 3 เดือนว่าไป แต่ถ้าเป็นข้อมูลปริมาณมากนะคะ อย่างในธนาคารนี่ เขาจำเป็นต้องสำรองข้อมูลแทบจะตลอดเวลาเลย เพราะของเขามันเป็นเรื่องเกี่ยวกับเงิน ๆ ทอง ๆ มันจะพลาดไม่ได้ วันนี้จะทำงานได้พรุ่งนี้อาจจะไปไม่ห้องเก็บข้อมูลหรือเปล่าก็ไม่รู้โดยการกู้คืนข้อมูลแบบนี้นี่ ถ้าเป็นองค์กรขนาดใหญ่ เขาจะต้องมีการซ้อมด้วย ว่าถ้าเกิดวันนี้นี่ ระบบเราล่ม 20:00 น. พรุ่งนี้ต้องทำงานจะทำอย่างไร ถ้าใครที่ทำงานเกี่ยวข้องกับคอมพิวเตอร์ทั้งหมดจะต้องมาซ้อม อาจจะเป็นธนาคารขนาดใหญ่แห่งหนึ่ง พรุ่งนี้ต้องทำงานเหมือนเดิม เงินต้องอยู่เหมือนเดิมต้องกู้คืนระบบให้ได้ภายใน 6 ชั่วโมง ข้อมูลทั้งหมดต้องมีการซ้อมด้วย เช่น สมมติว่าคุณมีข้อมูลที่เก็บไว้มันจะเป็น Harddisk ประมาณเป็นพัน ๆ Harddisk 1,000 ลูกคุณจะเรียกข้อมูลกลับคืนมาอย่างไรให้ให้เสร็จภายในพรุ่งนี้เช้า เขาต้องสอนนะคะ บางทีถ้าเป็นคนที่ทำงานหน้าคอมพิวเตอร์และเฝ้า Server เดี๋ยวบางทีต้องมานอนเฝ้าห้องด้วยซ้ำเขาก็จะห้ามของกิน ห้ามสูบบุหรี่ ห้อง Server ก็จะหนาวมาก อาจจะต้องนอนในนั้น บางควรมีถุงนอนด้วยซ้ำ เพื่อเฝ้าอุปกรณ์เก็บข้อมูลกู้ข้อมูลจะเป็นการโอนข้อมูลจากอุปกรณ์เก็บข้อมูลทั้งหมดกลับมาแล้วก็จะเอารายการเปลี่ยนแปลงที่มีการเก็บ Log file ก็คือการเก็บเวลาการเปลี่ยนแปลงทุกอย่างที่ทำงานสมบูรณ์นะคะ ก็จะมาบันทึกไว้ในระบบที่เรากู้คืนมาใหม่ทั้งหมด ก็คือเหมือนกับ ว่าถ้ามันมีการเปลี่ยนแปลงเกิดขึ้น เราก็จะ Copy มันมาทั้งหมด นะคะ วันนี้ก็จะประมาณนี้เพราะว่าเราจะไม่เน้นว่าทุกคนจะต้องสำรองข้อมูลเองทั้งหมดนะ อันนี้ให้รู้ไว้หูไว้หูมันจะเป็นฐานข้อมูลขั้นสูง จะเรียนในปีที่สูงกว่านี้นะคะ เป็นวิชาเฉพาะทางแต่ว่าภาษา SQL นี่ ทุกคนจะต้องได้เรียนนะคะ อาทิตย์หน้าจะเป็นตัวอย่างคำสั่งภาษา SQL ที่ทุกคนจะต้องจำแล้วก็ทำให้ได้ ว่าแต่ละคำสั่ง มันมีความสำคัญอย่างไร กระบวนการทำงานเราจะเขียนเขียนโปรแกรมอย่างไรในการเรียกดูข้อมูล ใครยังใช้โปรแกรมไม่เป็น เดี๋ยวอาทิตย์หน้าอาจารย์จะพาดูก่อนว่าแต่ละคำสั่งมันต้องทำงานอย่างไร ถ้าเราจะเรียกดูข้อมูลเราจะต้องใช้คำสั่งอะไรนะคะ ถ้าจะเพิ่มข้อมูลใช้คำสั่งอะไร แก้ไขข้อมูล ลบข้อมูล ต้องทำอย่างไร แต่ก็ต้องเข้าใจด้วย ว่าเราจะใช้ภาษาอังกฤษเป็นหลักนะคะ เพราะฉะนั้นพยายามจำแล้วก็พิมพ์ให้ถูก หรือแปลความหมายมันได้ยิ่งดี ว่าคำศัพท์คำนี้ถ้าเป็นภาษาไทยมันคืออะไร ทำไมเราถึงเลือกใช้คำนี้นะคะ เวลาสมมติว่าต่อไปปี 3 ไปฝึกงานเขาถามว่ารู้จักฐานข้อมูลไหมรู้จักคำสั่งนี้หรือเปล่านะคะ เราจะได้ตอบเขาได้ ว่าอย่างน้อยเรารู้ว่าคำสั่งนี้มันทำงานอย่างไรนะคะ วันนี้ไม่มีการบ้านนะคะ เพราะว่าต้องขออนุญาตไปประชุมตอน 14:00 น. พอดีนะ วันนี้ก็ประมาณนี้ค่ะ แต่ว่าอาทิตย์หน้านะคะ เตรียมตัวมาดี ๆ ท่องศัพท์ภาษาอังกฤษกันนะคะ วันนี้ก็ขอบคุณล่ามแล้วก็ขอบคุณถอดความด้วยนะคะ ขอบคุณมาก ๆ เลยค่ะ