ชื่ออะไร นามสกุลอะไร เรียนจบที่ไหนมา
โดยที่สถาปัตยกรรมฐานข้อมูลนี่
อยู่ 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 คน
อย่างไรนะคะ ให้สามารถ
ทำงานได้ อันนี้คือการเกิดภาวะพร้อมกัน คือ เข้ามาใช้งานพร้อมกัน
ทั้งหมดนะคะ
โดยสถาปัตยกรรมฐานข้อมูลนี่
เชื่อมโยงกันได้นะคะ ข้อมูล