Monday, October 27, 2014

สถาปัตยกรรมฐานข้อมูล

สถาปัตยกรรมฐานข้อมูล


              
           สถาปัตยกรรมฐานข้อมูล ประกอบด้วย 3 ระดับ คือ ระดับภายนอก, ระดับแนวคิด และ ระดับภายใน โดยทั้ง 3 ระดับ จะถูกแบ่งแยกออกจากกันโดยชัดเจน ซึ่งทั้ง 3 ระดับเป็นลักษณะสำคัญหลักๆ ของแบบจำลองฐานข้อมูลเชิงสัมพันธ์ ที่นิยมนำมาใช้กับฐานข้อมูลในยุคศตวรรษที่ 21


             ระดับภายใน (Internal level)
เป็นระดับที่มองถึงวิธีการจัดเก็บข้อมูลในระดับฟิซิกคอล ว่ามีรูปแบบและโครงสร้างการ จัดเก็บข้อมูลอย่างไร ซึ่งมีหน้าที่ในการจัดเก็บข้อมูลจริงๆในหน่วยความจำ เช่น ดิสก์ว่าอยู่ตำแหน่งใด รวมทั้งที่เกี่ยวกับดัชนี (Index) ซึ่งในระดับนี้จะเป็นหน้าที่ของผู้ดูแลระบบตัดสินใจในระดับกายภาพ ว่าจะเก็บข้อมูลด้วยหน่วยความจำแบบใด จะมีการดูแลรักษาอย่างไร ซึ่งโดยมากผู้ใช้ทั่วไปไม่มีสิทธิ์เข้ามายุ่งในระดับนี้
อาจจะกล่าวได้ว่า สคีมาระดับภายใน (Internal Schemas Level) พิจารณาการจัดการระบบการเก็บข้อมูลจริง อธิบายฐานข้อมูลในการเก็บทางกายภาพจริง ๆ มองข้อมูลโดยมุมมองของระบบจัดการฐานข้อมูล ใช้โครงสร้างข้อมูล (Data Structure) และการจัดระเบียนแฟ้ม (File Organization) ในการอธิบาย และจะทำงานร่วมกับระบบปฏิบัติการ (Operating System) ในการเก็บข้อมูลลงที่หน่วยเก็บสำรอง (Secondary Storage) เราเรียกโครงสร้างระดับภายในว่า physical schema ซึ่งได้จากการ map โครงสร้างข้อมูลระดับแนวคิดลงสื่อข้อมูล เช่น ดิสก์ เป็นต้น ส่วนใหญ่โครงสร้างจะเป็น index หรือ tree

            ระดับความคิด (Conceptual level)
เป็นระดับที่อยู่ถัดขึ้นมา ได้แก่ ระดับของการมองความสัมพันธ์ของข้อมูลในระบบฐานข้อมูล ว่ามีการจัดเก็บข้อมูลอย่างไร มีความสัมพันธ์กับข้อมูลอื่นอย่างไรบ้าง รวมทั้งกฎเกณฑ์ต่าง ๆ เกี่ยวกับ ข้อมูล เช่น กฎเกณฑ์ของตัวข้อมูล ความปลอดภัย (Security) และความคงสภาพของข้อมูล (Integrity) ซึ่งยังไม่ใช่รูปแบบหรือวิธีการจัดเก็บจริงในในสื่อบันทึกข้อมูล เป็นเพียงแค่มุมมองในแนวความคิดว่า ข้อมูลจะมีการจัดเก็บอย่างไรเท่านั้น ผู้ที่มีสิทธิจะใช้ ข้อมูลในระดับนี้ คือโปรแกรมเมอร์ (Programmer) หรือผู้บริหารฐานข้อมูล (Database Administrator)
เริ่มจากผู้ออกแบบ หรือ ผู้ดูแลระบบเริ่มวิเคราะห์ความต้องการข้อมูลขององค์กรว่า ประเภทใดบ้างที่จะจัดเก็บ ควรจะเก็บอะไรบ้าง และระหว่างข้อมูลควรมีความสัมพันธ์อย่างไรบ้าง จากนั้นจึงนำมาเขียนเป็นสคีมา (Schema) ซึ่งถือเป็นจุดสิ้นสุดของระดับแนวความคิด สคีมา (Schema) สามารถอธิบายว่า ฐานข้อมูลนั้นๆ สร้างขึ้นมาประกอบด้วยอะไรบ้าง แต่ละเอนติตี้ประกอบด้วยข้อมูลอะไรบ้าง มีลักษณะเป็นอย่างไร และ มีความสัมพันธ์อย่างไร
อาจจะกล่าวได้ว่า สคีมาระดับเชิงมโนภาพ (Conceptual Schemas Level) จะเป็นตัวที่ใช้เชื่อม ระหว่างสคีมาระดับภายนอกกับสคีมาระดับภายใน อธิบายฐานข้อมูลในรายละเอียดโดยรวมทั้งหมด เพื่อเชื่อมกับสิ่งที่ผู้ใช้มองรูปแบบข้อมูลความสัมพันธ์ เงื่อนไขต่าง ๆ รวมถึงความมั่นคงและความถูกต้องของข้อมูลจะถูกเก็บไว้ด้วย แต่จะไม่ลงลึกถึงการเก็บในเครื่อง เราจะเรียกในส่วนนี้ว่า logical schema หรือ schema ซึ่งเป็นโครงสร้างข้อมูลที่นำเสนอตามรูปแบบของ data model ถ้าเป็น relational database ข้อมูลในระดับ create table จะหมายถึงตารางทุกตารางใน model

             ระดับภายนอก (External level)
คือ หน้าต่างหรือ วิว (View) ที่ผู้ใช้ภายนอกมีสิทธิเข้าไปใช้ได้ วิว (View) คือ ส่วนของ ข้อมูลที่ผู้ใช้ทั่วไปมีความสนใจและมีสิทธิที่เข้านำมาใช้ได้จาก สคีมา (Concept Schema) เราสามารถเรียกสิ่งที่ใช้อธิบายวิวข้อมูลที่ถูกดึงมาจากฐานข้อมูลที่อยู่ในระดับแนวคิด (Conceptual) นี้ว่า External Schema หรือ Subschema หรือ view ซึ่งในระดับนี้โปรแกรมจะเห็นเพียงโครงสร้างข้อมูลบางส่วน เช่น กรณีของ relational database โปรแกรมจะเห็น view เป็นเพียงบางส่วนของตาราง หรือบางส่วนของตารางหลายตารางมารวมกันเป็นหนึ่ง view โดยจะต้องไม่ copy หรือ duplicate data จาก table มาไว้ที่ view
ระดับภายนอก เป็นระดับที่ใกล้กับผู้ใช้มากที่สุด เป็นสิ่งที่ผู้ใช้คิดเกี่ยวกับข้อมูลจะอธิบายถึง วิว(View) ที่ผู้ใช้สนใจ ข้อมูลที่เก็บจริงอาจมีมากกว่าที่ผู้ใช้ต้องการและข้อมูลตัวเดียวกันผู้ใช้อาจมองไม่เหมือนกัน เช่น ข้อมูลวันที่ (ผู้ใช้คนหนึ่งอาจมองเป็น วัน/ เดือน/ ปี อีกคนมองเป็น เดือน/ วัน/ปี ก็ได้) นอกจากนั้น สิ่งที่ผู้ใช้มองเห็นอาจไม่ได้เก็บจริงในเครื่องแต่ได้จากการคำนวณออกมาส่วนนี้เองจะถูกแปลโดยระบบจัดการฐานข้อมูลเก็บไว้ในพจนานุกรมข้อมูล (Data dictionary)
นอกจากนั้น สถาปัตยกรรมทั้งสามระดับดังกล่าว ยังมีความเป็นอิสระของข้อมูลที่เห็นได้คือ สคีมาระดับภายนอก จะมีรูปแบบที่คงที่ไม่เปลี่ยนแปลงไป แม้จะมีการเปลี่ยนสคีมาระดับเชิงมโนภาพ เช่น มีการเพิ่มรูปแบบข้อมูลใหม่ หรือมีความสัมพันธ์ใหม่ ๆ เพิ่มขึ้น เรียกว่า ความไม่พึ่งพิงทางตรรกะ (Logical Data Independence) และสคีมาระดับเชิงมโนภาพก็เช่นกัน จะมีรูปแบบที่คงที่แม้จะมีการเปลี่ยนแปลงทาง กายภาพ เช่น เปลี่ยนวิธีเข้าถึงข้อมูล (Access Method) หรือลำดับของข้อมูลที่เก็บอยู่จริงเปลี่ยนไป เรียกว่า ความไม่พึ่งพิงทางกายภาพ (Physical Data Independence) จุดประสงค์หลักของสถาปัตยกรรมทั้งสามระดับ คือ การที่ต้องการให้ ข้อมูล เป็น อิสระจาก ซอฟต์แวร์ ทั้งที่เป็นของผู้ใช้ และระบบ กล่าวคือ การเปลี่ยนแปลงใดๆต่อทั้ง ฮาร์ดแวร์ และ ซอฟต์แวร์ ไม่ควรจะมีผลต่อ ข้อมูลนั้น

No comments:

Post a Comment