--- title: ทดสอบ หลักการและระบบการจัดการฐานข้อมูล subtitle: date: วันอังคารที่ 13 ธันวาคม 2565 เวลา 15.41 น. --- (ข้อความสดจากระบบถอดความเสียงพูดทางไกล) ชื่ออะไร นามสกุลอะไร เรียนจบที่ไหนมาโดยที่สถาปัตยกรรมฐานข้อมูลนี่อยู่ 3 ส่วนนะคะ ก็คือในตัวสถาปัตยกรรมระบบเองนะคะ และก็ความเป็นอิสระของข้อมูลนะคะ เดี๋ยวจะอธิบายว่าแต่ละอันคืออะไร กับภาษาที่ใช้ในการจัดการ 3 อย่างนี้จะต้องทำงานร่วมกันสถานปัตยกรรมของฐานข้อมูลนี่กับขอบเขตนะคะ หรือกรอบถ้าเป็นภาษาทางวิชาการเรียกว่ากรอบเชิงวิชาการเขาเรียกว่า "กรอบ" ที่ใช้ประโยชน์ในการบรรยายว่าทำไมเราถึงสร้างฐานข้อมูลแบบนี้ ทำไมเราเก็บข้อมูลแบบนี้ และในฐานข้อมูลนี่เรามีโครงสร้างเก็บข้อมูลแบบไหนบ้างนะคะ ซึ่งหลัก ๆ แล้วนี่โครงสร้างที่ใช้ในการสร้างฐานข้อมูลนี่มันจะมีอยู่ 3 ระดับนะคะ มีระดับภายนอก ระดับภายใน แล้วก็ระดับแนวคิดเดี๋ยวจะอธิบายไปทีละอย่าง ทีละอย่างนะคะ ความเป็นอิสระของข้อมูลคืออะไรนะคะ ก็คือการที่ผู้ใช้งานสามารถเปลี่ยนแปลงข้อมูล อาจจะเป็นในระดับของการออกแบบฐานข้อมูลหรือระดับถึงขั้นการเก็บข้อมูลแล้วก็ได้ โดยที่ถ้าเราเก็บข้อมูลหรือเปลี่ยนแปลงการจัดเก็บข้อมูล โปรแกรมที่ใช้งาน จะไม่ได้รับผลกระทบจากการเปลี่ยนแปลงนะคะ โปรแกรมก็อยู่ส่วนของโปรแกรม ข้อมูลก็จะอยู่ของข้อมูลจะแยกออกจากกันนะคะ โดยที่ผู้ใช้งานนี่จะมองเห็นแค่ว่าการเก็บข้อมูลระดับภายนอกก็คือ เราเก็บอะไรบ้าง เหมือนเวลาคุณอยากเล่น TikTokอยากเล่นเฟซบุ๊กอยากเล่นInstagramหรือเปล่า มีเบอร์โทรศัพท์ไหม มีโปรไฟล์อันนี้คือข้อมูลระดับภายนอกที่ผู้ใช้งานอย่างเรา ๆ นี่ให้ข้อมูลไป แล้วก็เป็นสิ่งที่เราเป็นคนเห็นเองว่าข้อมูลที่กรอกลงไปนี่มีอะไรบ้าง นะคะ ถามว่าถ้าเราอยากเปลี่ยนแปลงได้ไหม ว่านอกจากรูปภาพนี่อยากให้เขาขอเกี่ยวกับ อะไรดีล่ะ สถานะการเรียน เราจะไปบอกเขาว่าอยากบอก อยากให้เพิ่มเมนูตรงนี้ได้ไหม เราทำไม่ได้นะคะ เพราะอันนั้นเป็นระดับโครงสร้าง เป็นระดับแนวคิด ระดับภายในซึ่งผู้ใช้งานธรรมดาจะแก้ไขไม่ได้ โดยที่เพราะฉะนั้นนี่สมมติเรามีการเปลี่ยนแปลงข้อมูล จะมีการเปลี่ยนแปลงข้อมูลส่วนตัวเรานี่ล่ะนะคะ ถ้าเราเปลี่ยนแปลงเฉพาะข้อมูลเราตัวเองนี่ มันจะไม่กระทบกับคนอื่น รวมถึงไม่ได้กระทบกับ Facebook ไม่ได้กระทบกับ Instagram ใช้งานปกติได้ ถึงแม้คุณจะบอกว่า จะเปลี่ยนแปลงรูปโปร์ไฟล์ถามว่าโปรแกรมมันจะพังไหมไม่นะคะ นี่คือการเปลี่ยนแปลงระดับต่ำ ก็คือเป็นการเปลี่ยนแปลงของผู้ใช้งานโดยตรงนะคะ ความเป็นอิสระข้อมูลเชิงตรรกะ ก็คือการเปลี่ยนแปลงมุมมองของผู้ใช้งาน อย่างเช่น คุณอยากจะ วันนี้เราอัปรูปไป 4 รูปนะคะ คุณอยากจะสลับตำแหน่งนะคะ ย้ายจากรูปสุดท้ายมารูปที่ 1 ถามว่าโปรแกรมนั้นจะพังไหม ไม่พังนะคะ เพราะมันถือว่าเป็นการเปลี่ยนแปลงภายนอก ไม่ได้เปลี่ยนแปล Code โปรแกรมไม่ได้บอกให้ผู้ดูแลระบบลบเมนูตรงนี้ออกไม่ใช่นะคะ อันนี้ก็คือผู้ใช้งาน อยากเปลี่ยนแปลงข้อมูลของตัวเองอย่างนี้ เปลี่ยนแปลได้เลยนะคะ ไม่กระทบกับคนอื่น ไม่กระทบกับระบบโดยรวมนะคะ รวมถึงความเป็นอิสระของข้อมูลเชิงกายภาพนะคะ ถ้าสมมติว่าวันหนึ่งเฟซบุ๊กย้ายเครื่องคอมพิวเตอร์ในการเก็บข้อมูลคนใช้งาน ถามว่าย้ายจากเครื่องหนึ่งไปอีเครื่องหนึ่ง ถามว่าเราใช้ไกล มันไม่กระทบกับเรานะคะ มันถือว่าเป็นโครงสร้างของข้อมูลระดับภายใน ส่วนของบริการเขาอาจจะมีการปรับเปลี่ยนย้ายจากเครื่อง Aไปเครื่อง B แต่ผู้ใช้งานก็ยังใช้งานได้ตามปกติ ไม่ได้รู้สึกถึงความผิดปกติใด ๆ อาจจะมีช่วงที่แบบ ช่วงที่ Restart เครื่องอะไรอย่างนี้นะคะ แต่ถามว่า Facebook เราหายไปไหม ไม่นะคะ อันนี้คือตัวอย่างคร่าว ๆ เชิงตรรกะเป็นอย่างไร เชิงกายภาพเป็นอย่างไรต่อมา ภาษาหลักของระบบฐานข้อมูลนะคะ ก็จะมีอยู่ 3 ภาษาหลัก ๆ นะคะ อันนี้หมายถึงว่าภาษาเชิงโครงสร้างที่ใช้ ไม่ได้หมายถึงชื่อภาษาทางโปรแกรม อันแรกคือภาษาสำหรับนิยามข้อมูลนะคะ ก็จะเป็นภาษาที่ใช้ในการกำหนดโครงสร้างของฐานข้อมูลนะคะ ว่าระดับแนวคิด ก็คือคุณวางแผนไว้ว่าอย่างไร อย่างเช่นอาจารย์อาจจะ พอคุณเรียนปีสูง ๆ ขึ้น อาจจะได้ทำ Project อาจจะทำโปรแกรมเป็นของตัวเอง สมมติว่าได้ทำโปรเจกตืเกี่ยวกับร้านในร้านหนังสือร้านหนึ่งเราต้องเก็บข้อมูลอะไรบ้าง เราต้องเขียนออกมาให้ได้นะคะ สิ่งนี้เราจะเรียกว่าระดับแนวคิดเราจะมาให้ความหมายว่าในฐานข้อมูลเรานี่ระหว่างผู้ใช้งาน สมาชิกจำของร้าน สามารถทำอะไรได้บ้าง สิ่งเหล่านี้จะเรียกว่า View หรือจะเรียกว่ามุมมองของแต่ละคนเอาง่าย ๆ ยกตัวอย่างอีกแล้ว Facebook Facebook หน้าที่คุณดู กับหน้าที่เพื่อนดูอาจจะไม่เหมือนกันในน Facebook สามารถกำหนดว่ารูปนี้จะเก็บไว้ดูคนเดียว หรือรูปนี้จะเพื่อนดูได้รูปนี้จะให้ใครก็ได้มาดูไม่ปิดกั้น อย่างนี้ก็มี อันนี้คือการกำหนดสถานะมุมมองของการดูข้อมูลของเราเราจะกำหนดตั้งแต่ การกำหนดโครงสร้างของฐานข้อมูลผู้ใช้งานแต่ละคนดูข้อมูลส่วนไหนได้บ้างนะคะ ต่อมาเป็นภาษาในการจัดการข้อมูลเป็นภาษาในการจัดการข้อมูล อันนี้จะเป็นภาษาเชิง Programingซึ่งไว้สำหรับจัดการข้อมูลในฐานข้อมูลก็จะเป็นตั้งแต่การค้นหาข้อมูลการเพิ่มการลบการแก้ไข ในฐานข้อมูลนะคะ อันนี้ก็จะสามารถทำได้ตามสิทธิ์ของผู้ใช้งานแต่ละคน บางคนค้นหาได้ แต่เพิ่มไม่ได้บางคนเพิ่มได้ แต่ห้ามลบนะคะ อันนี้ก็เป็นคำสั่งที่ใช้ภายในฐานข้อมูล ต่อมาเป็นภาษา ควบคุมนะคะ มันจะเป็าภาษาที่เอาไว้สำหรับควบคุมความถูกต้องของข้อมูลเช่น อะไรบ้าง อย่างเช่น อาจารย์ให้กรอกนะคะ กรอกชื่อ แต่ว่านักศึกษาบางคนลืมเปลี่ยนภาษา หรือลืมเปลี่ยนปุ่มหรือเปิดปุ่มตัวเลขไว้นะคะ กลายเป็นว่าพิมพ์ชื่อตัวเองเป็นตัวเลขระดับควบคุม ก็คือมันจะเป็นการตรวจสอบว่าข้อมูลที่นักศึกษาใส่มา ถูกหรือผิดหรืออาจารย์ให้กรอกได้เฉพาะตัวหนังสือเท่านั้น ใส่ตัวเลขไม่ได้นะคะ หรือการเกิดภาวะพร้อมกัน อย่างเช่นจองตั๋วคอนเสิร์ตดังมาก เข้ามาจองพร้อมกันสัก 50,000 คนเราจะมีการจัดการคน 50,000 คนอย่างไรนะคะ ให้สามารถทำงานได้ อันนี้คือการเกิดภาวะพร้อมกัน คือ เข้ามาใช้งานพร้อมกันทั้งหมดนะคะโดยสถาปัตยกรรมฐานข้อมูลนี่เชื่อมโยงกันได้นะคะ ข้อมูล