190 likes | 447 Views
บทที่ 3. สถาปัตยกรรมของระบบฐานข้อมูล. หัวข้อที่ศึกษา. 3.1 แนะนำ 3.2 สถาปัตยกรรม 3 ระดับ 3.3 ประโยชน์ของสถาปัตยกรรม 3 ระดับ. 3.1 แนะนำ. ฐานข้อมูลมีข้อดีเหนือกว่าระบบประมวลผลแบบแฟ้มข้อมูลอยู่ข้อหนึ่ง คือ ความเป็นอิสระกันของข้อมูล
E N D
บทที่ 3 สถาปัตยกรรมของระบบฐานข้อมูล
หัวข้อที่ศึกษา 3.1 แนะนำ 3.2 สถาปัตยกรรม 3 ระดับ 3.3 ประโยชน์ของสถาปัตยกรรม 3 ระดับ
3.1 แนะนำ • ฐานข้อมูลมีข้อดีเหนือกว่าระบบประมวลผลแบบแฟ้มข้อมูลอยู่ข้อหนึ่ง คือ ความเป็นอิสระกันของข้อมูล • ความเป็นอิสระกันของข้อมูล คือ โปรแกรมประยุกต์ที่ผู้ใช้เขียนขึ้นไม่ขึ้นกับโครงสร้างของข้อมูลที่มีการเปลี่ยนแปลงไป • เนื่องจากการจัดโครงสร้างข้อมูลจะมีการแบ่งระดับชั้นเป็น 3 ระดับ ได้แก่ ระดับความคิด ระดับภายนอก ระดับภายใน • ระดับของข้อมูลทั้ง 3 ระดับนี้เรียกว่า สถาปัตยกรรมของระบบฐานข้อมูล (ANSI/SPARC Architecture)
3.2 สถาปัตยกรรม 3 ระดับ สถาปัตยกรรมของระบบฐานข้อมูลแบ่งเป็น 3 ระดับ คือ • ระดับความคิด (Conceptual Level) • ระดับภายนอก (External Level) • ระดับภายใน (Internal Level)
1. ระดับความคิด (Conceptual Level) • เป็นระดับของการออกแบบฐานข้อมูล ซึ่งผลลัพธ์ที่ได้จากการออกแบบฐานข้อมูล เก็บข้อมูลอะไร และความสัมพันธ์ข้อมูลเป็นอย่างไร สคีมา (Schema) • Conceptual Schema = สิ่งที่อธิบายว่าฐานข้อมูลประกอบด้วย เอนติตี้อะไรบ้าง แต่ละเอนติตี้ประกอบด้วยเขตข้อมูล (Filed)ใด มีชนิดข้อมูลเป็นอะไร มีขนาดเท่าไร และความสัมพันธ์ระหว่างเอนติตี้เป็นอย่างไร • ผู้รับผิดชอบ คือ DBA
TABLE ENROLL EN_YEAR SMALLINT, EN_TERM CHARACTER(1), EN_SJID CHARACTER(7), EN_STID CHARACTER(9), EN_GRD CHARACTER(2), TABLE SUBJECT SUB_ID CHARACTER(7), SUB_NAME CHARACTER(15), SUB_UNIT CHARACTER(1), Conceptual Schema
2. ระดับภายนอก (External Level) • ระดับที่มีการนำข้อมูลจากฐานข้อมูลไปใช้งาน • ผู้ใช้แต่ละคนสามารถเลือกดูข้อมูลเฉพาะที่ตนสนใจหรือต้องการใช้ ดังนั้น ผู้ใช้แต่ละคนจะมีวิว/มุมมองข้อมูลในฐานข้อมูลที่แตกต่างกันได้ • วิวของข้อมูลจะดึงข้อมูลมาจาก Conceptual Level • External Schema / Subschema = สิ่งที่จะใช้อธิบายวิวของข้อมูลที่ถูกดึงมาจากฐานข้อมูลที่อยู่ในระดับ Conceptual Level • ระดับภายนอกมี Subschema ได้หลาย Subschema • ผู้รับผิดชอบ คือ นักเขียนโปรแกรมประยุกต์ (Application Programmer) หรือผู้ใช้ทั่วไป (End User)
การลงทะเบียนนักศึกษา รหัสนศ. _____________________ รหัสวิชา _____ ชื่อวิชา _________ รายงานเกรดนักศึกษา รหัสวิชา ______ ชื่อวิชา __________รหัสนศ. ______ เกรด ___________ External Schema/Subschema
3. ระดับภายใน (Internal Level) • ระดับของการจัดเก็บฐานข้อมูลในหน่วยเก็บข้อมูลสำรอง ข้อมูลเก็บอยู่ในตำแหน่งใดของดิสก์ และจัดเก็บข้อมูลเกี่ยวกับ Index และ pointer • ผู้รับผิดชอบ คือ ผู้ออกแบบฐานข้อมูลระดับกายภาพ (Physical Database Designer) เลือกใช้อุปกรณ์ที่ใช้ในการจัดเก็บ วิธีเข้าถึงข้อมูล วิธีการบำรุงรักษา และการเพิ่มประสิทธิภาพของฐานข้อมูล
การลงทะเบียนนักศึกษา รหัสนศ. ____________________________ รหัสวิชา __________ ชื่อวิชา __________ รายงานเกรดนักศึกษา รหัสวิชา _______ ชื่อวิชา ________________รหัสนศ. _____________ เกรด ____________ TABLE ENROLL EN_YEAR SMALLINT, EN_TERM CHARACTER(1), EN_SJID CHARACTER(7), EN_STID CHARACTER(9), EN_GRD CHARACTER(2), TABLE SUBJECT SUB_ID CHARACTER(7), SUB_NAME CHARACTER(15), SUB_UNIT CHARACTER(1), สถาปัตยกรรมฐานข้อมูล ระดับ External Level ผู้รับผิดชอบจัดการระดับนี้ คือ User & Application Programmer ระดับ Conceptual Level ผู้รับผิดชอบจัดการระดับนี้ คือ Database Administrator ระดับ Internal Level ผู้รับผิดชอบจัดการระดับนี้ คือ Physical Database Designer
User A User B User C External Conceptual ตารางนักเรียน ตารางอาจารย์ ผู้ใช้ 3 คนเห็นข้อมูลไม่เหมือนกัน
Conceptual Internal Index ภาพที่เรามองการจัดเก็บข้อมูล จะแตกต่างจากวิธีเก็บข้อมูลจริง
Index Conceptual Internal 11 4 X ระดับภายในเป็นระดับที่ใกล้ชิดกับดิสก์มากที่สุด
3.3 ประโยชน์จากสถาปัตยกรรม 3 ระดับ • โครงสร้างสถาปัตยกรรมของฐานข้อมูลทั้ง 3 ระดับ จะมี DBMS ทำหน้าที่แม็ป (Map)/แปลระดับข้อมูลจากระดับหนึ่งไปเป็นอีกระดับหนึ่ง
การลงทะเบียนนักศึกษา รหัสนศ. ____________________________ รหัสวิชา __________ ชื่อวิชา __________ รายงานเกรดนักศึกษา รหัสวิชา _______ ชื่อวิชา ________________รหัสนศ. _____________ เกรด ____________ TABLE ENROLL EN_YEAR SMALLINT, EN_TERM CHARACTER(1), EN_SJID CHARACTER(7), EN_STID CHARACTER(9), EN_GRD CHARACTER(2), TABLE SUBJECT SUB_ID CHARACTER(7), SUB_NAME CHARACTER(15), SUB_UNIT CHARACTER(1), การเชื่อมโยงข้อมูลแต่ละระดับด้วยการ Mapping External/Conceptual Mapping Conceptual/Internal Mapping
การแม็ปหรือการแปลระดับข้อมูลก่อให้เกิดประโยชน์ดังนี้การแม็ปหรือการแปลระดับข้อมูลก่อให้เกิดประโยชน์ดังนี้ 1. มุมมองของผู้ใช้งาน (View of each user) • ระดับความคิดและระดับภายนอก (External/Conceptual Mapping) ทำให้ผู้ใช้ฐานข้อมูลมีมุมมองที่แตกต่างกันได้ โดย DBMS ทำการแปล (map) ชื่อข้อมูลให้ระดับภายนอกและระดับความคิด ให้สามารถเข้าใจว่าคือข้อมูลตัวเดียวกัน • ระดับความคิดและภายใน (Conceptual/Internal Mapping) ผู้ใช้ฐานข้อมูลไม่จำเป็นต้องทราบว่าข้อมูลที่ต้องการใช้ถูกจัดเก็บอย่างไรในดิสก์ โดย DBMS จะดูว่าข้อมูลที่ผู้ใช้ต้องการนั้นเก็บ ณ ตำแหน่งใด
DBA ผู้ใช้งานทั่วไป ผู้ออกแบบฐานข้อมูลทางกายภาพ ผู้ออกแบบฐานข้อมูลทางตรรก TABLE ENROLL EN_YEAR SMALLINT, EN_TERM CHARACTER(1), EN_SJID CHARACTER(7), EN_STID CHARACTER(9), EN_GRD CHARACTER(2), CREATE VIEW VW_ENR (ST_ID, SJ_ID, SJ_NAME) AS SELECT EN_STID, EN_SJID, SUB_NAME FROM ENROLL, SUBJECT WHERE EN_SJID=SUB_ID TABLE SUBJECT SUB_ID CHARACTER(7), SUB_NAME CHARACTER(15), SUB_UNIT CHARACTER(1), CREATE VIEW VW_ENR (SB_ID, SB_NAME, SJ_ID, ST_GRD) AS SELECT EN_SJID, SUB_NAME, EN_STID, EN-GRD FROM ENROLL, SUBJECT WHERE EN_SJID=SUB_ID MAP MAP INTERNAL LEVEL EXTERNAL LEVEL CONCEPTUAL LEVEL
2. ความเป็นอิสระของข้อมูล • ระดับความคิดและระดับภายนอก (External/Conceptual Mapping) การเปลี่ยนแปลงฐานข้อมูลในระดับความคิดจะไม่มีผลกระทบต่อโปรแกรมประยุกต์ที่ใช้ในระดับภายนอก • ระดับความคิดและภายใน (Conceptual/Internal Mapping) การเปลี่ยนแปลงฐานข้อมูลในระดับภายใน ได้แก่เปลี่ยนแปลงวิธีการจัดเก็บในดิสก์แบบดัชนีเป็นแบบสุ่ม เมื่อมีการสร้างตารางใดๆ ในระดับความคิดจะไม่มีผลกระทบหรือไม่ต้องรับรู้การเปลี่ยนแปลงดังกล่าว