อย่างนั้น เดี๋ยวเริ่มเลยนะคะวันนี้จะเป็นบทที่ 8 บทเหลืออีก 2 บท เราก็ได้ธรรมปฏิบัตินะคะ วันนี้จะเป็นเกี่ยวกับกระบวนการทำงานของฐานข้อมูลเนี่ย มันก็จะมีการเปลี่ยนแปลงข้อมูลนะคะ ทั้งเป็นการเพิ่มลบแก้ไขเราจะเรียกว่าเป็นการเปลี่ยนแปลงรวมถึง ถ้าสมมุติว่าระบบฐานข้อมูลเรามีปัญหาเราจะทำการกู้คืนระบบยังไง หรือจะสำรองข้อมูลอย่างไร เพื่อป้องกันความเสียหายของข้อมูลนะคะ โดยรายการการเปลี่ยนแปลงเนี่ยมันจะมีนิยามอยู่ 3 ยุค ยุคแรก ก็คือไฟล์ที่เราเก็บรายการที่มีการเปลี่ยนแปลงไว้นี่ นะคะ เราจะเก็บไว้ในแฟ้มข้อมูลหลัก ซึ่งจะเป็นการเก็บเป็นแบบเรียงลำดับนะคะ หรือ Sequential File ที่มีการเรียงข้อมูลไว้เรียบร้อยแล้วนะคะ ต่อมาจะเป็นยุคที่ 2 ตอนแรกก็เก็บข้อมูลเป็นเหมือนอาจจะเป็นคล้าย ๆ ไฟล์กระดาษ พอยุคที่ 2 นี่ เราจะเริ่มใช้เป็นพวกดิสก์หรืออาร์ดดิสก์ hdd เนี่ยเก็บข้อมูล ซึ่งการเก็บข้อมูลในฮาร์ดดิสเนี่ยมันจะไม่เป็นการเก็บข้อมูลแบบเรียงลำดับแล้วซึ่งรายการเปลี่ยนแปลงที่เกิดขึ้นเนี่ยจะหมายถึงทุก ๆ กิจกรรมที่ทำอยู่บนไฟล์ข้อมูลของเรานะคะ เช่น อาจจะตอนเช้า 10:00 น มีการเพิ่มข้อมูลนะคะ 10:30 น อาจจะเป็นการเปลี่ยนแปลงข้อมูลใด ๆ ก็ตามที่เกิดขึ้นนะคะ อันนนี้จะเริ่มเป็นยุคที่ 2 พอยุคที่ 3 นะคะ ซึ่งเป็นยุคปัจจุบันนี่แหละ การเก็บข้อมูลนะคะ การเปลี่ยนแปลงทุกอย่างที่เกิดขึ้นในระบบจัดการฐานข้อมูลนี่ จะอยู่ในรูปแบบของกลุ่มคำสั่งนะคะ โดยใช้ภาษาที่ใช้จัดการฐานข้อมูลระดับตรรกะนะคะ ที่อาจจะมีการยอมให้ละเมิดกฎความคงสภาพของข้อมูลบางกฎได้นะคะ หรือกดที่บังคับทำความถูกต้องของฐานข้อมูล แต่จะต้องเป็นเกี่ยวข้องกับกฎของการดำเนินธุรกิจต่าง ๆ นะคะ เราจะต้องใส่ข้อบังคับไว้ ว่าข้อมูลเหล่านี้ ถ้าสมมุติว่าคุณใส่ข้อมูลผิดพลาดจะเป็นอย่างไร ถ้าใส่ข้อมูลถูกต้องระบบจะแจ้งเตือนอย่างไร ซึ่งกฎต่างๆพวกนี้นี่ ที่อยู่ในฐานข้อมูลถูกบังคับใช้โดยระบบจัดการฐานข้อมูลอันนี้ก็คือการเปลี่ยนแปลงข้อมูลในยุคปัจจุบันเราจะใช้กลุ่มของคำสั่งภาษาที่จัดการฐานข้อมูลนะคะ ซึ่งในวิชานี้เราจะเรียนเกี่ยวกับภาษา SQL เบื้องต้นนะคะ โดยเริ่มแรกนะคะ รายการการเปลี่ยนแปลงนี่ มันอาจจะเกิดขึ้นกับระบบที่ใช้งานคนเดียวนะคะ หรือเป็นระบบที่ใช้งานร่วมกันหลายคนหรืออาจจะเป็นการทำงานที่พร้อมๆกันไปนะคะ ซึ่งการทำงานพร้อมกันนี่ ก็จะมีอยู่ 2 แบบ ก็คืออาจจะเป็นการทำงานที่มีรายการลำดับที่ 1 รายการลำดับที่ 2 นะคะ สลับกันทำงานในเวลานะคะ สลับกันกลับอย่างที่ 2 ก็คือจะเป็นการทำงานพร้อม ๆ กัน อาจจะมีทั้ง 2 งาน 3 งาน 4 งาน ว่าไป เป็นงานที่มากกว่า 1 สมมติมีเป็นร้อยงาน ทุกอย่างจะประมวลผลพร้อม ๆ กัน อันนี้คือการทำงานของรายการเปลี่ยนแปลงที่อาจจะเกิดขึ้นในฐานข้อมูล อย่างเช่นว่า ระบบอาจจะเป็นระบบใบเรียกชื่อนักศึกษานะคะ อาจารย์ในมหาวิทยาลัยมี 300 คน สามารถเข้าใช้ระบบนี้ได้พร้อมกันอาจจะมีการประมวลผลรายชื่อนักศึกษาได้พร้อมกัน 300 คนก็ได้นะคะ อันนี้คือการประมวลผลมากกว่า 1 คนนะคะ ในเวลาเดียวกันนี่ อาจจะมีสัก 10 คน ดูข้อมูลนักศึกษาชุดเดียวกันก็ได้ ถามว่ามันจะทำงานได้ไหม ว่าต้องทำงานได้ ซึ่งการทำงาน 1 คนเดียวกันทำงานหลายคนมันจะมีแนวทางหรือข้อกำหนดประเภทของฐานข้อมูลอีกแบบหนึ่ง โดยที่จะกำหนดจำนวนของผู้ใช้งานพี่สามารถเข้าใช้งานพร้อม ๆ กันได้นะคะ อย่างเช่นว่าบางระบบในระบบจัดการฐานข้อมูลเขาจะกำหนดไว้ว่าในเวลานั้นจะต้องมีผู้ใช้งานแค่คนเดียวที่ทำงานอยู่ หรือถ้าเป็นระบบจัดการฐานข้อมูลโดยทั่วไปในโลกของความเป็นจริง ส่วนมาก เขาจะให้ผู้ใช้งานนี่ สามารถเข้าใช้งานได้พร้อมกันหลาย ๆ คน ในเวลาเดียวกัน แต่จะมีการกำหนดสิทธิ์ของผู้ใช้งานแต่ละคนไม่เท่ากัน เข้าใช้งานพร้อมกันก็จริงค่ะ แต่บางคนอาจจะแค่ดูข้อมูลบางคนอาจจะมาลบข้อมูลบางคนอาจจะมาแก้ไขบางส่วนมาเพิ่มข้อมูลเข้าไป ในหลาย ๆ คนน่ะ จะทำงานพร้อม ๆ กัน สิทธิ์ในการแก้ไขหรือการเพิ่มเติมใด ๆ ก็ตามนี่ ไม่เท่ากัน ในรายการเปลี่ยนแปลงเนี่ยมันจะเป็นเกี่ยวกับการประมวลผลของโปรแกรมที่ทำงานในเชิงตรรกะ ก็คือเป็นอาจจะคิดว่าข้อมูลนี้จริงหรือเท็จ ข้อมูลนี้ถูกหรือผิดนะคะ โดยรายการเปลี่ยนแปลงนี่ จะประกอบไปด้วยการปฏิบัติที่ทั้งหน่วยประมวลผล ทั้งฐานข้อมูล อาจจะมีกระบวนการทำงานหลาย ๆ กระบวนการเกิดขึ้นพร้อมกันนะคะ ซึ่งการทำงานของฐานข้อมูลนี่ จะเป็นการกระทำผ่านโปรแกรมประยุกต์ เดี๋ยวอีก 2 สัปดาห์เราจะได้เรียน โดยใช้ภาษาระดับสูงภาษา SQL ที่เราจะเรียนเราถือว่าเป็นภาษาระดับสูง เพราะเป็นภาษาที่มนุษย์อ่านแล้วเข้าใจ ใกล้เคียงกับภาษามนุษย์มากที่สุด แต่นักศึกษาต้องเข้าใจอย่างหนึ่ง ว่าเราจะต้องใช้เป็นภาษาอังกฤษนะคะ เพราะฉะนั้น ฉคุณพิมพ์คำสั่งเป็นภาษาไทยเนี่ยระบบจะไม่ประมวลผลเลย สำหรับ SQL เบื้องต้น โดยรายการเปลี่ยนแปลงทุกรายการ จะต้องมีจุดเริ่มต้นและจุดสิ้นสุดสิ้นสุดนะคะ เหมือนคุณไปกดเงินอยู่หน้ามหาวทิยาลัยจุด เริ่มต้นคืออะไร คือ การใส่บัตร ATM เข้าไป ตอนนี้ไม่มีใครกดเงินโดยใช้บัตร ATM แล้ว จุดเริ่มต้นคือเข้า Application กดถอนเงินโดยไม่ใช้บัตร ทุกอย่างจะเป็นขั้นตอน ทำตามขั้นตอนไปเรื่อย ๆ จนถึงจุดสิ้นสุด คือ คุณได้รับเงินออกจากเครื่อง ATM นะคะ ซึ่งทุกอย่างจะถูกเก็บไว้ว่าคุณเริ่มกดรหัสเมื่อเวลาเท่าไรนะคะ คุณยืนยันยอดเงินกี่โมง เงินออกจากตู้กี่โมง ทุกอย่างจะถูกเก็บไว้นะคะ ถ้าหากว่าในการจัดการฐานข้อมูลนี่ มันจะมีรายการเปลี่ยนแปลงนะคะ ที่อาจจะ User ผู้ใช้งานทั่วไป อาจจะไม่จำเป็นต้องมีการเปลี่ยนแปลง หรือนะคะ มีไว้อ่านเฉย ๆ นะคะ ถ้าศัพท์ภาษาอังกฤษเรียกว่า read only นะคะ เอามาดูอย่างเดียวอย่าง เช่น การเปลี่ยนแปลงที่ไม่ก่อให้เกิดผลกระทบกับฐานข้อมูล เช่น คุณแค่อยากดูยอดเงินปัจจุบันว่ามีเงินเท่าไร แค่ดู ถามว่าคุณจะถอนเงินไหม ไม่ อยากรู้ว่าตอนนี้ฉันมีเงินกี่บาท เราจะเรียกว่ารายการนั้นคือหรือกระบวนการนั้นว่าเป็นการอ่านอย่างเดียว ไม่มีการแก้ไขนะคะ โดยกระบวนการทำงานของฐานข้อมูลนะคะ อย่างเริ่มต้น ก็คือมันจะเรียกข้อมูลขึ้นมาดูก่อนนะคะ เรียกข้อมูลว่า สมมุติว่าอยากดูว่าวันนี้เราจะถอนเงิน แต่เราจำไม่ได้ว่าเรามีเงินกี่บาท เราจะต้องทำการเรียกข้อมูลขึ้นมาดูก่อนว่า เงินในบัญชีตอนนี้เรามีเท่าไร หน้าจอมันก็แสดงผลว่าเรามีเงินเท่าไร หลังจากนั้นจะเป็นการเขียน หรือการแก้ไข หรือการลบ ซึ่งขั้นตอนที่ 3 นี่ อยู่ที่ว่าเราจะโอนเงินหรือเราจะถอนเงินนะคะ หรือเราจะไม่ทำอะไรเลยก็ได้นะคะ แต่ทุกอย่างจะต้องมีจุดเริ่มต้นนะคะ อย่างตัวอย่างตัวนี้ ตัวอย่างของการเปลี่ยนแปลงนะคะ อย่างสมมติให้ t นี่นะคะ ตัว t นะคะเป็นรายการเปลี่ยนแปลงที่เกิดขึ้น เขาต้องการจะโอนเงินจากบัญชีของ a จำนวน 5,000 บาท ไปยังบัญชี B นะคะ สิ่งที่เกิดขึ้นคืออะไรสิ่งที่เกิดขึ้น คือ ตอนแรกเราจะต้องดูข้อมูลก่อนว่าในบัญชี a ที่เขาบอกว่าเขาจะโอนเงินไปนี่ บัญชี a จะโอน 5,000 ขั้นตอนแรกคือดูก่อนสิว่าบัญชี a มีเงินถึง 5000 ไหม มีเกินหรือเปล่าเช็ก ยอดเงินเสร็จปุ๊บ เราก็จะมาหักบัญชีเช่นสมมุติเขามี 5,000 บาท 100 บาท อย่างนั้น แสดงว่ามีจะยอดเงินพอที่จะโอนไปให้จะทำการลบเงินออก5,000 ลบไปแล้ว 5000 ใช่ไหมคะ เพราะว่าเราจะโอน เพราะฉะนั้น สุดท้ายแล้ว บัญชีเอจะต้องเหลือเงิน 100 บาท ใช่ไหม เวลาเราโอนเงิน เราถอนเงิน เขาจะบอกยอดเงินปัจจุบันของเราด้วย อันนี้เป็นเรื่องปกติใช่ไหมคะ หลังจากนั้น เราก็จะมาดูว่าเขาจะโอนไปที่บัญชี b ใช่ไหมคะ เราว่ายอดเงินบัญชี b ขึ้นมาดูสิ ว่ามีเท่าไหร่บัญชีบีจะมีอยู่ 1000 บัญชี b มี 1000 บัญชี b1000พอโอนมาอีก 5,000เราก็ต้องอัพเดทหรือการปรับปรุงข้อมูลบัญชี b 1000 ก็จะเพิ่มเป็น 6,000 บาทอันนี้คือรายการเปลี่ยนแปลงของการโอนบัญชี8 ทุกลำดับขั้นตอนจะต้องมีวันที่เวลากำหนดไว้ทุกการเปลี่ยนแปลงเป็นวินาทีเลยด้วยซ้ำนะคะ พอมันมีการเปลี่ยนแปลงแล้วเนี่ยเราใช้งานไปเรื่อยๆระบบมันอาจจะมีปัญหา มันจะต้องมีการสำรองข้อมูลนะคะ พอเราสำรองข้อมูลไว้ ทำไมเราต้องสำรองข้อมูลนะคะ ถ้ามีข้อมูลสำรองไว้ ถ้าระบบมีปัญหา เราสามารถกู้ข้อมูลกลับคืนมาได้ ทำไมเราถึงจำเป็นต้องกู้คืนข้อมูล เกิดเมื่อกี้นี้ เป็นคุณกำลังโอนเงิน แล้วไฟดับ คุณโอนไปแล้ว 5,000 แต่ไฟดับพอดี เงินคุณออกไปแล้ว แต่บัญชีที่คุณจะโอนให้ เงินยังไม่ได้ เพราะไฟดับพอดี ทำคอย่างไรนะคะ เพราะฉะนั้น ถือว่าระบบล่ม มันจะต้องมีการแก้ปัญหา ซึ่งเป็นหน้าที่ของระบบจัดการฐานข้อมูล ระบบจัดการฐานข้อมูลจะต้องรับผิดชอบว่าทุก ๆ การทำงานที่เกิดขึ้นในรายการเปลี่ยนแปลง จะต้องทำเสร็จเรียบร้อย มีการเปลี่ยนแปลงดังกล่าว จะถือว่าเป็นการเปลี่ยนแปลงบันทึกข้อมูลถาวร ถ้าโอนไป เงินออกจากบัญชีคุณ แต่ปลายทางยังไม่ได้รับ ถือว่าการทำรายการเปลี่ยนแปลงนั้นยังไม่สมบูรณ์นะคะ โดยที่ระบบจัดการฐานข้อมูลจะไม่อนุญาตให้บางกระบวนการทำงานของรายการเปลี่ยนแปลงนะคะ จะถูกส่งเข้าไปฐานข้อมูล เหมือนจะเป็นไปได้ไหมว่ากำลังจะโอนเงิน 5,000 แล้วก็คงจะถอนอีก 3000 ในเวลาเดียวกัน เป็นไปไม่ได้ เพราะฉะนั้นกระบวนการทำงานจะต้องเป็นตามรายการที่จะทำอยู่รายการเดียวเท่านั้น จะทั้งถอนทั้งโอนไม่ได้ ต้องเลือกก่อนว่าสรุปคุณจะโอนก่อนหรือคุณจะถอน เพราะว่าถ้าบังเอิญว่าคุณปล่อยให้มีการกระทำมากกว่า 2 มากกว่า 1 การกระทำขึ้นมาพร้อมกัน มันจะเอาไป มันจะสามารถไปเกิดปัญหาความไม่ถูกต้องแน่นอนของข้อมูล เช่น เรามีเงิน 5000 เราจะโอน 5,000 แล้วเราก็จะถอน 3000 เป็นไปไม่ได้ เหมือนบางคนมีแอปโทรศัพท์ แต่บัตร ATM อยู่กับแม่ จะโอนเงินให้เพื่อน 5,000 บาท มั่นใจว่าจะมี 5,000 แต่แม่กดไปแล้ว 3000 แล้วก็ยังโอนมันโอนไม่ได้ค่ะ เพราะว่ายอดเงินไม่พอ เพราะฉะนั้นใครผิด อันนี้ก็เป็นสิ่งที่ยอมไม่ได้ของระบบจัดการฐานข้อมูลนะคะ ซึ่งปัญหานะคะ การที่ระบบล่มมนะคะ มันจะมีอยู่ 3 ประเภท แบบแรก คือ รายการเปลี่ยนแปลงผิดพลาด กับข้อ 2 เป็นปัญหาที่ระบบ ข้อ 3 จะเป็นปัญหาที่สิ่งวัตถุที่มาใช้เก็บข้อมูลนะคะ โดยที่ปัญหาที่เกิดระหว่างการประมวลผล บางครั้งอาจจะเกิดจากคอมพิวเตอร์พังนะคะ หรืออาจจะเป็นปัญหาของรายการเปลี่ยนแปลงมัน Error ก็อาจจะเป็นโค้ดโปรแกรมอาจจะมีปัญหานะคะ การเรียกดูข้อมูลอาจจะถูกดัก เจอรายการเปลี่ยนแปลงที่มีความผิดปกติ เช่น บอกว่ามีคนโอนเงินมา แต่จริง ๆ แล้วไม่พบรายการข้อมูลที่มีการเปลี่ยนแปลง ทั้ง ๆ ที่โอนไปแล้ว แต่ยอดเงินไม่ขึ้นนะคะ รวมถึงกระบวนการควบคุมการประมวลผลพร้อมกันจะทำอย่างไรนะคะ อาจจะมีเกี่ยวกับอุปกรณ์พัง ฮาร์ดดิสพัง บางคนใช้งานนาน ๆ อากาศร้อน คอมพิวเตอร์ก็พังได้เหมือนกันนะคะ เหมือนบางคนเปิดคอมพิวเตอร์ไว้ไม่เคยปิดเลย พอช่วงฤดูร้อน มันร้อนมาก ไอ้ตัวเมนบอร์ดงอ เพราะความร้อน ก็มี รวมถึงอาจจะเกี่ยวกับไฟดับ ไฟไหม้ อุทกภัย หรือภัยธรรมชาติต่าง ๆ ก็อาจเกิดขึ้นได้ ถือว่าเป็นสาเหตุที่ทำให้การประมวลผลมีปัญหาเช่นเดียวกันนะคะ หรือในการทำงานบางอย่าง อาจทำไปสู่ นำไปสู่การล่มของระบบ เช่น คุณใส่ข้อมูลเยอะเกินไป เหมือนเวลาเราเขียนโปรแกรมแล้วมันไม่รู้จบ หรือการที่เอา 0 มาหาร ซึ่งเวลาเราเอา 0 มาหารนี่ มันจะหาค่าไม่ได้ตอนที่เราเขียนโปรแกรมระบบล่ม รวมถึงตรรกะของการเขียนโปรแกรมอาจจะผิดอย่างไรดี ถ้าคนผมสั้น สมมุติจะกลับโปรแกรมคนผมสั้นจะต้องเป็นผู้ชายเท่านั้นถามว่าจริงไหมไม่จริงผู้ชายผมยาวก็มี ผู้หญิงผมสั้นก็มี อันนี้คือตรรกะผิดพลาด เราจะมากำหนดอย่างนี้เลยไม่ได้นะคะ เหมือนเวลาสแกนใบหน้าอย่างนี้แล้วบอกว่า ผมสั้นมาต้องเป็นแน่นอนซึ่งมันไม่จริงหรือ User หรือผู้ใช้งานอาจเป็นการหยุดที่ไม่ถูกต้อง ระหว่างประมวลผล เช่น กำลังดาวน์โหลดเอกสาร หรือกำลังทำธุรกรรม บางคนกำลังโอนเงินอยู่ แล้วไม่ได้ใช้เน็ตในโทรศัพท์ ใช้เน็ต WiFi มีคนถอดปลั๊กออก การโอนเงินของตอนนั้นของคุณอาจจะมีปัญหาก็ได้นะคะ อันนี้คือการทำงานอาจจะมีการผิดพลาด หรือปัญหาเกิดขึ้น อันนี้ก็อธิบายไปแล้วนะ อันนี้เปลี่ยนแปลง ซึ่งด้วยสาเหตุเหล่านี้นี่ เราเลยจำเป็นจะต้องมีทั้งการกู้คืน แล้วก็การสำรองข้อมูล โดยการกู้คืนฐานข้อมูลนี่ ก็คือกระบวนการที่ทำให้ฐานข้อมูลของเรานี่ กลับสู่สภาวะเดิม ที่สามารถใช้งานได้นะคะ ถ้าขนาดนั้นถ้าไม่มีความขัดข้องหรือข้อผิดพลาดระหว่างการประมวลผลซึ่งการฟื้นสภาพหรือการกู้คืนเนี่ยมันเป็นงานที่ระบบจัดการฐานข้อมูลนี่ ย้อนกลับไปยังข้อมูล ก่อนที่จะเกิดความเสียหายนะคะ โดยที่ฐานข้อมูลอาจจะเกิดความขัดข้องและความเสียหายของระบบ ไม่ว่ากรณีใดๆมันจะทำให้ข้อมูลนะนี่ ไม่ถูกต้อง แล้วก็เชื่อถือไม่ได้เราจะต้องย้อนกลับไป เพราะฉะนั้น การกู้คืนฐานข้อมูลมันจะเป็นมีวิธีการในการเอาข้อมูลที่ถูกทำลาย หรืออาจจะถูกเปลี่ยนแปลงให้กับคืนมาอยู่ในสภาพที่ถูกต้อง น่าเชื่อถือเหมือนเดิมนะคะ ซึ่งอันนี้ก็คือเป็นหน้าที่ของระบบจัดการฐานข้อมูลเช่นเดียวกันนะคะ โดยการกู้คืนข้อมูลการฟื้นสภาพเหมือนจะเป็นการทำให้เรามั่นใจว่ารายการที่ทำของเรานี่ ถูกยกเลิกไป หรืออาจจะมีความผิดพลาดต่าง ๆ เช่น น่าจะเกิดจากโปรแกรม ระบบมันเสีย ฮาร์ดดิสเสีย ไฟดับไฟตกนะคะ สิ่งเหล่านี้จะไม่ก่อให้เกิดความเสียหายของฐานข้อมูล หรือการทำงานอื่น ๆ ที่ทำงานร่วมกันของข้อมูลนั้น ๆ นะคะ โดยรูปแบบของลักษณะของความผิดพลาดนะคะ อันแรก ระบบล่ม ซึ่งอันนี้เราก็น่าจะคุ้นเคยกันอยู่ ความขัดข้องจากอุปกรณ์บันทึกข้อมูลนะคะ ฮาร์ดดิส์เสีย ssd เสีย ความผิดพลาดของโปรแกรม ภัยธรรมชาติ อย่างเราเป็นเรียนทางคอมพิวเตอร์ เราจะต้องไปดูแลคอมพิวเตอร์ แต่ถ้าคุณไม่ดูแลเอาใจใส่ ไม่ทำความสะอาด ไม่เช็กความพร้อมอุปกรณ์ ไม่เป็นไรหรอก เปิดฝาหลังคอมพิวเตอร์มามีแต่ฝุ่น ถามว่าฝนมันสะสมมาก ๆ สักวันมันจะช็อตแล้วคอมก็จะพัง อันนี้คือความไม่ดูแลเอาใจใส่ หรือเอาของเข้ามากินในห้องน้ำหก แต่คอมพิวเตอร์ของคุณก็พัง เพราะฉะนั้น เดี๋ยวถ้ามีโอกาสที่คุณจะไปดูงานห้องคอมพิวเตอร์ เป็นคอมพิวเตอร์ที่สมบูรณ์แบบ เขาจะห้ามของกินทุกชนิด รองเท้าต้องสะอาด ถุงเท้าต้องสะอาด ห้องคอมพิวเตอร์บางห้องต้องใส่หมวกคลุมผม ไม่ให้ผมร่วงลงไป เพราะบางทีถ้าพัดลมมันพัดน้องมันไปเกิดช็อตที่ใบพัดของระบบทำความเย็น คอมพิวเตอร์อาจจะเสียหายได้ หรือรวมถึงการก่อวินาศกรรม ถ้าเราดูหนังหลาย ๆ เรื่องนะคะ เขาจะมีการวางระเบิดห้องคอมพิวเตอร์ไรอย่างนี้ อันนี้ก็เป็นสาเหตุเช่นเดียวกันนะคะ ประเภทของเหตุขัดข้อง ก็มีอยู่ 3 ลักษณะ หลัก ๆ นะคะ อันแรก จะเป็นความขัดข้องของระบบ เช่น ความขัดข้องของระบบปฏิบัติการนะคะ ทำให้ระบบไม่สามารถทำงานไม่ได้ การอาจจะต้องมีการปิดเปิดเครื่องใหม่ Restart นะคะ ซึ่งจะมีผลกับทุกรายการเปลี่ยนแปลงที่กำลังทำงานอยู่ อาจจะไม่ถึงขั้นทำลายข้อมูลในฐานข้อมูลนะคะ เราจะเรียกการปกครองแบบนี้ว่าเป็นการขัดข้องแบบอย่างเบาแล้วกัน ข้อมูลไม่หาย แต่ข้อมูลที่อยู่ในฮาร์ดดิสก์นี่ บางครั้งอาจจะ ต่อไปครั้งหน้า ที่มีการเล่นการทำงานมันอาจจะช้านะคะ เพราะว่าส่วนมากข้อมูลแล้วจะเก็บไว้ในฮาร์ดดิสก์ซึ่ง Harddisk ไม่มีไฟฟ้าก็สามารถเก็บข้อมูลได้นะคะ อันนี้ก็คือความขัดข้องแบบที่ยังพอรับได้ ปิด-เปิดเครื่องใหม่ก็หายนะคะ แต่ถ้าเป็นความขัดข้องของรายการเปลี่ยนแปลงนะคะ ก็จะมีอยู่ 2 ลักษณะ บางครั้งมันจะเป็นความขัดข้องที่อาจจะป้องกันได้ จากโปรแกรมที่เราเขียนไว้ หรือโปรแกรมที่เราใช้งาน โดยมีทั้งภายในภายนอกที่ไม่สามารถแก้ไขได้ อย่างสมมุติว่าเป็นความขัดข้องที่สามารถป้องกันได้ จากภายในโปรแกรมนะคะ เช่น ถ้าเราจะโอนเงิน สมมุติว่าเราอยากโอน 500,000 นะคะ แต่เรา จริงๆแล้วมีอยู่ 500 โปรแกรมก็จะเริ่มตรวจสอบความผิดพลาดแล้ว ว่าแล้วก็แสดงผลว่ายอดเงินของคุณไม่เพียงพอ ต้องยกเลิกรายการนี้ หรือกลับไปแก้ไขจำนวนเงินใหม่ อันนี้คือเราสามารถป้องกันความเสียหายได้นะคะ อันนี้ก็คือมันจะเป็นเกี่ยวกับตรรกะ แนวคิดอยู่แล้ว เงินไม่พอจะโอนได้อย่างไร อันนี้เป็นพื้นฐานง่าย ๆ เป็นต้น หรือถ้าไม่สามารถป้องกันได้ เช่น ข้อมูลมันเยอะเกิน อย่างเช่น อาจจะเคยได้ยินข่าวว่ามีแฮกเกอร์พยายามเอาข้อมูลเหมือนพยายามโจมตี server server หนึ่งนะคะ อาจจะเป็นมหาวิทยาลัยเราก็ ได้สามารถทำงานได้พร้อมกันเต็มที่ 500 คน Hacker ใช้ User เป็น 1 ล้านคนมาโจมตี มันจะทำให้ระบบเรานี่ ไม่สามารถรับได้ ระบบก็จะล่ม เพราะเรารับได้เต็มที่ 500 แต่คนล้านคนพยายามเข้ามาหรือพยายามกรอกข้อมูลเนี่ยเป็นไปไม่ได้เลยระบบก็จะพังนะคะ อย่างนี้เป็นต้น อันนี้คือไม่สามารถตรงกันในจากโปรแกรมเราได้เลย กับอีกอย่างหนึ่ง ความปลอดภัยของอุปกรณ์อาจจะพังหัวอ่านสะเทือนกระทบกันนักศึกษาบางคนชอบขายโน๊ตบุ๊ก แล้วปิดพัดลมปิดเครื่องเครื่องก็ยังทำงานอยู่ เวลาคุณขี่มอเตอร์ไซค์ตกหลุม ขึ้นเนิน มันสะเทือน อุปกรณ์ที่อยู่ในกระเป๋าเป้เรามันยังทำงาน มันก็จะสะเทือนไปด้วย มันก็อาจจะพังคอมคุณก็จะพัง เพราะบางทีหัวอ่านฮาร์ดดิสก์คุณมันทำงานอยู่ พอมันโดนกระแทก หัวอ่านมันจะเป็นเข็มเล็ก ๆ มันก็พังนะคะ อันนี้ก็ระวังด้วย อันนี้คือความเสียหายของอุปกรณ์ ที่ถือว่าเป็นลักษณะที่ค่อนข้างรุนแรง เพราะถ้ามันพังแก้ไขไม่ได้ เพราะเหมือนมันหักไปแล้ว มันเสียไปแล้วนะคะ ข้อมูลแล้วก็ไม่ได้สำรอ ง อันนี้ก็คือข้อผิดพลาดจากอุปกรณ์เก็บข้อมูล ความจำเป็นของการกู้คืนข้อมูล ก็แน่นอนค่ะ อยู่ที่ว่าเราจะสำรองข้อมูลกับอะไร ใส่ hdd ไว้ไหม หรือใส่ USB ไว้ อัปโหลดขึ้นบน Google Drive หรือบนคลาวด์ ก็ว่าไป ซึ่งประเภทของเก็บข้อมูลสำรอง จะมีอยู่ 3 แบบนะคะ 3 แบบ อันนี้ถ้านับเป็นอุปกรณ์นะที่จับต้องได้ อันแรก เป็นอุปกรณ์ที่เก็บข้อมูลได้ต่อเมื่อมีไฟฟ้านะคะ ในกรณีที่ไม่มีไฟฟ้าข้อมูลพวกนี้จะหายไป สิ่งเหล่านี้ก็คือ Ram เราเรียนประกอบคอมแล้ว แรมจะเป็นการ์ดแผ่นเล็กๆนะคะ น่าจะเป็นพื้นที่สำหรับสำรองข้อมูลตอนที่คอมพิวเตอร์ทำงานอยู่ ถ้าเราปิดปุ๊บข้อมูลในนั้นจะหายไปนะคะ กับอุปกรณ์ที่ไม่จำเป็นต้องใช้ไฟฟ้า ก็คือฮาร์ดดิสก์ ซึ่งอุปกรณ์ประเภทนี้น่ะ มักจะเกิดปัญหาก็คือฮาร์ดดิสก์พัง หัวอ่านหักหรือตัวดิสเป็นรอยนะคะ เพราะฉะนั้น ก็ต้องระวังด้วย กับต่อมาเป็น stable ก็คืออันนี้จะเป็นค่อนข้างโบราณ ไม่ต้องอาศัยกระแสไฟฟ้า ส่วนมากจะมาใช้ในการสำรองข้อมูลมากกว่า ลักษณะเป็นเทปแม่เหล็ก เพราะราคาค่อนข้างถูก แต่การเรียกดูข้อมูลมันจะช้านะคะ แต่ว่าส่วนมากเขาเลยใช้เป็นที่เก็บข้อมูล ไม่ได้มาประมวลผลทุกวันนะคะ ก็ถามว่านิยมใช้ไหม ก็ไม่ค่ะ เพราะว่าตอนนี้เขาก็ใช้ฮาร์ดดิสก์เป็นหมดอย่าง น้อย ๆ นะคะ ต่อมาก็เป็นความผิดพลาดมีอยู่ 4 ประเภทนะคะอันแรกก็คือความผิดพลาดทางตรรกะนะคะ ก็บางทีก็เกิดความผิดพลาดตั้งแต่ตอนเราที่เขียนโปรแกรมมันพิมพ์ เช่น โปรแกรมไม่ยอมทำงานเพราะว่าบัตรประชาชนคุณกำหนดไว้เป็น 15 หลัก ความจริงมีแค่ 13 พอกรอกไม่ครบระบบทำงานไม่ได้ ผู้ใช้งานกรอกถูกแล้ว 13 ตัว แต่ระบบบอกว่ามันต้องมันหายไป 2 ตัว อันนี้คือตรรกะมันผิด โปรแกรมมันผิดเอง เราเขียนผิดนะคะก็ไปถือว่าเป็นความผิดพลาดอย่างหนึ่ง หรือว่านามสกุลบอกเป็นตัวเลขไม่ได้คุณไม่ได้ปิดความผิดพลาดตรงนี้มีคนมาปั่นมาป่วนระบบคุณ แล้วเขาใช้นามสกุลเป็นตัวเลข ระบบยอมให้เซฟหรือยอมให้บันทึกข้อมูลสรุปคุณก็ได้ข้อมูลขยะเข้ามาทำให้เปลืองการประมวลผลข้อมูลอีกนะคะ กับความผิดพลาดของระบบนะคะ เช่นปัญหาการจัดลำดับงานผิดพลาด แล้วมันเลยเกิดปัญหาระบบหยุดการทำงานของมันเอง ล็อกไม่ให้คุณทำงานนะคะ แบบนี้ร วมถึงความผิดพลาดของอุปกรณ์จัดเก็บข้อมูล เช่น เหมือนตึกนี้ไฟไม่สม่ำเสมอ ไฟตกบ่อย ข้อมูลหายบ่อยนะคะ อันนี้ก็เป็นปัญหา เพราะฉะนั้น ในห้องนี้เมื่อก่อนเราเลยมีอุปกรณ์สำรองไฟ อุปกรณ์สำรองไฟ ใช้ไปนาน ๆ ไฟตกบ่อย ก็พังเหมือนกันนะคะ อันนี้ก็เป็นความผิดพลาดของระบบ รวมถึงความผิดพลาดของระบบอุปกรณ์ที่เก็บข้อมูล เช่น ปัญหาบางทีฮาร์ดดิสก์ของเรานี่ พอเราอย่างที่ท่านบอกคุณไม่ปิดเครื่องนี่มันทำงานตลอดแล้วหัวเข็มมือที่มันสะเทือน ไอ้ตัวหน้า หน้าจานแม่เหล็กที่เก็บข้อมูลของเรานี่ มันเลยเป็นรอยขูดขีด เป็นรอย เหมือนสมัยเด็กๆทุกคนดูแผ่นซีดีน่ะค่ะ แผ่นซีดีเป็นรอยหนังในแผ่นซีดีเรานี่ ก็จะดูแล้วมันก็จะกระตุกอาจจะดูไม่ได้เลยเพราะว่าเราเก็บรักษาไม่ดีนี่ ก็เหมือนกันนะคะ เพราะฉะนั้น การใช้อุปกรณ์ใดๆที่เป็นอุปกรณ์คอมพิวเตอร์นี่ มันค่อนข้างมีราคา แล้วก็มีความสำคัญ อาจจะมีข้อมูลสำคัญอยู่ในนั้น เราก็ต้องช่วยกันรักษาด้วยนะคะ การกู้ข้อมูลจากอุปกรณ์ที่ใช้ไฟฟ้านะคะ มีอยู่ 3 แบบ แบบแรกก็เป็นการกู้ข้อมูลที่อาศัยข้อมูล ที่เก็บจาก เขาจะเรียกว่า "รายการเปลี่ยนแปลง" อย่างนี้ สมมติว่า เหมือนเวลาเราไปเซ็นชื่อ หรือการเก็บข้อมูลว่าวันนี้คุณมาเรียนกี่โมง กลับบ้านกี่โมงนะคะ มันก็มีการเก็บไว้ เป็นลำดับรายการ เป็นหมายเลขการเปลี่ยนแปลง มีการกระทำอะไรบ้าง ชื่อตารางมาจากไหน เปลี่ยนแปลงข้อมูลอะไร ลักษณะของการเก็บข้อมูลเป็นตารางแบบนี้ เช่น สมมุติ 10:12 น. เริ่มทำงานนะคะ นาทีต่อมามีการเปลี่ยนแปลงข้อมูลของพนักงานลำดับที่เท่าไรนะคะ ข้อมูลเดิม ลำดับที่ 1 เปลี่ยนเป็นลำดับที่ 8 แบบนี้เป็นต้นนะคะ อันนี้คือเขาจะรู้เลยว่าทุก ๆ กี่นาทีมีข้อมูลอะไรเกิดขึ้นบ้าง มีรายการเปลี่ยนแปลงใดบ้าง อย่างเช่น รายการเปลี่ยนแปลงที่ 1 เปลี่ยนแปลงที่ 2 เปลี่ยนแปลงที่ 3 เขียนว่าทุกการเปลี่ยนแปลงจะเริ่มต้นที่จุดสตาร์ทมีการเริ่มทำงานอย่างเหมือนรายการเปลี่ยนแปลงที่ 1 เห็นไหมคะ เริ่มต้นเมื่อ 10:12 น. สถานะ commit คือ ยอมรับการเปลี่ยนแปลงตอน 10:18 น ก็คือเราทำงานในการแก้ไขข้อมูลนี่ ใช้เวลา 6 นาที มันจะเก็บทุกอย่างที่เกิดขึ้นใน 6 นาทีนั้น อย่างเช่น start ที่สถานะนะคะ เช็กสถานะก็คือ start ก็คือรายการจะเริ่มต้นทำงานนะคะ commit ก็คือทำงานเสร็จอัพเดทก็คือรายการถูกบันทึกแล้วแล้วก็ให้เกิดการเปลี่ยนแปลงค่าสถานะหลักๆจะมีอยู่ 3 สถานะนะคะการเก็บข้อมูลเป็นประเภทก็คือเป็นการเก็บการเปลี่ยนแปลงทั้งหมดที่เกิดขึ้นนั่นเอง การกู้คืน ในเกิดจากเหตุขัดข้องแบบความผิดพลาดของระบบ เราจะมีจุดที่เป็นเหมือนจุดตรวจสอบนะคะ ถ้าสมมุติว่าทำงานแล้วยังไม่ถึงจุดตรวจสอบ แล้วถ้าระบบล่ม เราจะเริ่มต้นใหม่ทั้งหมด แต่ถ้าการทำงานของเราเลยจุดตรวจสอบแล้ว แล้วระบบจึงล่ม เราจะเริ่มการทำงานใหม่ที่จุดตรวจสอบนั้นนะคะ ก็คือไม่ต้องเริ่มใหม่ทั้งหมด จะเริ่มตรงจุดที่เรามาร์กไว้ หรือเราตั้งธรงไว้นั่นเองนะคะเ ดี๋ยววันนี้ค่อยอธิบายเพราะว่าเป็นตัวเลขเยอะเนาะแบบนี้ล่ะค่ะ อย่างเช่น ตัวนี้ค่ะ จุด check point ถามว่าตัวกระบวนการทำงานที่ 1 ที่ 1 เริ่มต้นตรงนี้ถึงตรงนี้ถามว่ามันทำงานเสร็จไหมทำงานเสร็จเรียบร้อยนะคะที่ t 1 ไม่มีปัญหาอะไร t2 ล่ะ t 2 ทำงานผ่านจุดตรวจสอบที่ 1 เสร็จเรียบร้อยก่อนถึงจุดที่ระบบจะล่มถามว่าที่ 2 ทำงานเสร็จไหม t2 ทำงานเสร็จนะ t3 ทำเริ่มทำงานตรงนี้ผ่านจุดตรวจสอบทำงานจนถึงผิดพลาด ถามว่า t3 จะเริ่มทำงานที่ไหน จะไม่เริ่มตรงนี้นะคะ จะเริ่มตรงที่จุดตรวจสอบตรงนี้ t4 เริ่มทำงานตรงนี้เสร็จตรงนี้ไม่อยู่ในจุดตรวจสอบก็จริง แต่เราก็นับว่าเขาทำงานเสร็จเรียบร้อยนะคะ ส่วน t5 ทำงานหลังจากตรวจสอบ แล้วทำไม่เสร็จ t5 จะทำอย่างไร t5 ต้องเริ่มใหม่ทั้งหมดอันนี้คือการทำงานของจุดตรวจสอบจะเห็นได้ว่าถ้าคุณทำงานผ่านจุดตรวจสอบก็จริงแต่ถ้าระบบมันทำงานเสร็จก็ไม่มีปัญหาอะไร แต่ถ้าการทำงานมีปัญหา แล้วผ่านจุดตรวจสอบแล้ว เราจะไม่เริ่มใหม่ทั้งหมด เราจะเริ่มต้นแค่ตรงที่จุดตรวจสอบนะคะ อันนี้เป็นแบบ การกู้คืนข้อมูลแบบใช้จุดตรวจสอบ กับการกู้คืนแบบทำคล้าย ๆ กับว่าเป็นสำเนาข้อมูลนะคะ ก็ส่วนมากตัวนี้ การกู้คืนตัวนี้จะใช้พื้นที่ในการเก็บข้อมูลเยอะพอสมควร เพราะไม่ว่าจะมีการกระทำใด ๆ เกิดขึ้นในระบบของเรา มันจะทำสำเนาซ้ำไว้ด้วยเสมอ เหมือนกับเงานะคะ เขาเรียกว่า "เหมือนเราเดินไปก็จะมีเงาติดตัวเราไปด้วย" เราเดินใช้ต้องเอาไปทางซ้าย เราเดินขวาก็เป็นเงาทางขวา เพราะฉะนั้นไ ม่ว่าจะเกิดการกระทำใดขึ้น จะมีสำเนาไว้ด้วยเสมอนะคะ อันนี้เป็นการทำแบบ shadow paging นะคะ เป็นการกู้ข้อมูลจากการสำรองข้อมูลที่ไม่ใช้ไฟฟ้านะคะ ส่วนมากก็จะเป็นอุปกรณ์ที่เป็นฮาร์ดดิสก์หรือว่าเทปแม่เหล็กนะคะ แต่แบบนี้เนี่ยเราจะไม่ทำสำเนาตลอดเวลา เราจะมีการกำหนดช่วงเวลาในการสำรองข้อมูล เช่น ทุกๆ 1 เดือน 2 เดือน 3 เดือน ว่าไป แต่ถ้าเป็นข้อมูลปริมาณมากนะคะ อย่างในธนาคารนี่ เขาจำเป็นต้องสำรองข้อมูล แทบจะตลอดเวลาเลย มันเป็นเรื่องเกี่ยวกับเงินเงินทองทองมันจะพลาดไม่ได้วันนี้จะทำงานได้พรุ่งนี้อาจจะไปไม่ห้องเก็บข้อมูลหรือเปล่าก็ไม่รู้ โดยการกู้คืนข้อมูลแบบนี้นี่ ถ้าเป็นองค์กรขนาดใหญ่เขาจะต้องมีการซ้อมด้วย ว่าถ้าเกิดวันนี้นี่ ระบบเราล่ม 8:00 น พรุ่งนี้ต้องทำงานจะทำอย่างไร ถ้าใครที่ทำงานเกี่ยวข้องกับคอมพิวเตอร์ทั้งหมดจะต้องมาซ้อม อาจจะเป็นธนาคารขนาดใหญ่แห่งหนึ่ง พรุ่งนี้ต้องทำงานเหมือนเดิม เงินต้องอยู่เหมือนเดิม ต้องกู้คืนระบบให้ได้ภายใน 6 ชั่วโมง จากข้อมูลทั้งหมดนะคะ จะต้องมีการซ้อมด้วย เช่นสมมุติว่าคุณมีข้อมูลที่เก็บไว้มันจะเป็นฮาร์ดดิสก์ประมาณ เป็นพันๆ ฮาร์ดดิส พัน ๆ ลูก คุณจะเรียกข้อมูลกลับคืนมาอย่างไรให้เสร็จภายในพรุ่งนี้เช้า เขาต้องสอนนะคะ บางทีถ้าเป็นคนที่ทำงานหน้าคอมพิวเตอร์และเฝ้า Server เดี๋ยวบางทีต้องมานอนเฝ้าห้องด้วยซ้ำ เขาก็จะห้ามของกิน ห้ามสูบบุหรี่ ห้อง Server ก็จะหนาวมาก อาจจะต้องนอนในนั้นบางคนมีถุงนอนด้วยซ้ำ เพื่อเฝ้าอุปกรณ์เก็บข้อมูลนะคะ การกู้ข้อมูล จะเป็นการโอนข้อมูลจากอุปกรณ์เก็บข้อมูลทั้งหมดกลับมา แล้วก็จะเอารายการเปลี่ยนแปลงที่มีการเก็บ Log file ก็คือการเก็บเวลาการเปลี่ยนแปลงทุกอย่าง ที่ทำงานสมบูรณ์นะคะ ก็จะมาบันทึกไว้ในระบบที่เรากู้คืนมาใหม่ทั้งหมด ก็คือเหมือนกับว่า ถ้ามันมีการเปลี่ยนแปลงเกิดขึ้น เราก็จะก๊อบฯ มันมาทั้งหมดนะคะ วันนี้ก็จะประมาณนี้เพราะว่าเราจะไม่เน้นว่าทุกคนจะต้องสำรองข้อมูลเองทั้งหมดนะ อันนี้ให้รู้ไว้ มันจะเป็นฐานข้อมูลขั้นสูง ฉะนั้นจะเรียนในปีที่สูงกว่านี้นะคะ เป็นวิชาเฉพาะทาง แต่ว่าภาษา SQL นี่ ทุกคนต้องได้เรียน อาทิตย์หน้าจะเป็นตัวอย่างคำสั่งภาษา SQL นะคะ ที่ทุกคนจะต้องจำแล้วก็ทำให้ได้ นะคะ ว่าแต่ละคำสั่งมันมีความสำคัญอย่างไร กระบวนการทำงานเราจะเขียนเขียนโปรแกรมยังไงในการเรียกดูข้อมูล ใครยังใช้โปรแกรมไม่เป็น เดี๋ยวอาทิตย์หน้าอาจารย์จะพาดูอย่างง่ายก่อน ว่าแต่ละคำสั่งมันต้องทำงานยังไงถ้าเราจะเรียกดูข้อมูลเราจะต้องใช้คำสั่งอะไรนะคะ ถ้าจะเพิ่มข้อมูลใช้คำสั่งอะไร แก้ไขข้อมูล ลบข้อมูล ต้องทำอย่างไร แต่ก็ต้องเข้าใจด้วยว่าเราจะใช้ภาษาอังกฤษเป็นหลักนะคะ เพราะฉะนั้น พยายามจำแล้วก็พิมพ์ให้ถูก หรือแปลความหมายมันได้ยิ่งดี ว่าคำศัพท์คำนี้ถ้าเป็นภาษาไทยมันคืออะไร ทำไมเราถึงเลือกใช้คำนี้นะคะ เวลาสมมุติว่าต่อไปปี 3 ไปฝึกงาน เขาถามว่ารู้จักฐานข้อมูลไหม รู้จักคำสั่งนี้หรือเปล่านะคะ เราจะได้ตอบเขาได้ ว่าอย่างน้อยเรารู้ว่าคำสั่งนี้มันทำงานอย่างไรนะคะ วันนี้ไม่มีการบ้านนะคะ เพราะว่าต้องขออนุญาตไปประชุมตอน 14:00 น. พอดี วันนี้ก็ประมาณนี้ค่ะ แต่ว่าอาทิตย์หน้านะคะ เตรียมตัวมาดี ๆ ท่องศัพท์ภาษาอังกฤษกันนะคะ วันนี้ก็ขอบคุณล่าม แล้วก็ขอบคุณข้อความด้วยนะคะ ขอบคุณมาก ๆ เลยค่ะ