แผนบริหารการสอนประจำบทที่ 2 เนื้อหา 1. สคีมา (Schema) และ อินสแตนซ์ (Instance) 2. สถาปัตยกรรมฐานข้อมูล 3. ความเป็นอิสระของข้อมูล 4. วิว (View) กับการแปลงรูป (Mapping) 5. ประโยชน์ของสถาปัตยกรรมฐานข้อมูล 6. บทสรุป 7. แบบฝึกหัดท้ายบท 8. เอกสารอ้างอิง วัตถุประสงค์เชิงพฤติกรรม 1. นักศึกษาทราบถึงแนวคิดและความสำคัญของสถาปัตยกรรมฐานข้อมูล 2. นักศึกษาบอกโครงสร้าง 3 ระดับของสถาปัตยกรรมฐานข้อมูลได้ 3. นักศึกษาเข้าใจถึงสคีมา (Schema) อินสแตนซ์ (Instance) 4. นักศึกษาสามารถอธิบายแปลงรูป (mapping) ของสถาปัตยกรรมฐานข้อมูล 5. นักศึกษาบอกประโยชน์ของการแบ่งโครงสร้างฐานข้อมูล 3 ระดับได้ วิธีการสอนและกิจกรรม 1. นักศึกษา ศึกษาจากเอกสารประกอบการสอนและเอกสาร หนังสือที่เกี่ยวกับ สถาปัตยกรรม ฐานข้อมูล 2. ผู้สอนอธิบายสถาปัตยกรรมระดับภายนอก (External Level) สถาปัตยกรรมระดับแนวคิด (Conceptual Level) สถาปัตยกรรมระดับภายใน (Internal Level) ตัวอย่างสถาปัตยกรรม ฐานข้อมูล 3 ระดับ การแปลงรูป (Mapping) ของสถาปัตยกรรมฐานข้อมูล ประโยชน์ของ สถาปัตยกรรมฐานข้อมูล ในขณะบรรยายจะสอดแทรกความรู้ด้านคุณธรรม จริยธรรม ให้นักศึกษา ตามโอกาส 3. ผู้สอนสรุปและเสนอแนะเพิ่มเติมแก่นักศึกษาตามหัวข้อต่าง ๆ 4. ให้นักศึกษาตอบคำถามในแบบฝึกหัดท้ายบท 5. ให้นักศึกษาฝึกปฏิบัติตามใบงานที่ 2
34 สถาปัตยกรรมฐานข้อมูล สื่อการเรียนการสอน 1. เอกสารประกอบการสอน 2. สื่ออิเล็กทรอนิกส์นำเสนอ ประกอบการบรรยาย 3. คำถามทบทวน 4. ใบงาน การวัดและประเมินผล 1. สังเกตพฤติกรรมและความตั้งใจของนักศึกษา 2. สังเกตจากการซักถามและตอบคำถามระหว่างการเรียนการสอน 3. ตรวจและติดตามจากการตอบคำถามแบบฝึกหัดท้ายบท
วิศวกรรมข้อมูล 35 บทที่ 2 สถาปัตยกรรมฐานข้อมูล บทนำ ฐานข้อมูลมีจุดเด่นเหนือแฟ้มข้อมูลทั่วไปตรงที่ความเป็นอิสระข้อมูล เพราะโปรแกรม ประยุกต์ที่ผู้ใช้เขียนขึ้นไม่ขึ้นกับโครงสร้างของข้อมูลที่เปลี่ยนไป ด้วยเหตุนี้ ได้มีการกำหนดมาตรฐาน สถาปัตยกรรมของระบบฐานข้อมูล เป็นการอธิบายถึงรูปแบบและโครงสร้างของข้อมูล ภายในระบบ ฐานข้อมูลทั่วไปในระดับแนวความคิด ขึ้นโดย ANSI (American National Standards Institute) ในปี 1975 เรียกว่าสถาปัตยกรรมสามระดับ (Three-level Architecture) การอธิบายรายละเอียด ของระดับต่าง ๆ จะไม่เกี่ยวข้องกับข้อมูลที่เก็บในฐานข้อมูล แต่จะอธิบายโครงสร้างของฐานข้อมูล โดยรวมเพื่อให้สามารถแยกได้นั้นก็เนื่องมาจากการที่ผู้ใช้แต่ละคนอาจ มองข้อมูลตัวเดียวกันต่างกัน ดังนั้นถ้ามีการเปลี่ยนแปลงโครงสร้างภายในก็ไม่ควรให้กระทบกับมุมมองของผู้ใช้ สคีมา (Schema) และ อินสแตนซ์ (Instance) สคีมา (Schema) หมายถึง โครงสร้างข้อมูลหรือนิยามข้อมูลรวมถึงความสัมพันธ์ของข้อมูล ในแต่ละเอ็นทิตี้ว่ามีความสัมพันธ์กันอย่างไร อินสแตนซ์ (Instance) หมายถึง เนื้อข้อมูลที่เก็บอยู่ในโครงสร้างข้อมูล ตัวอย่างเช่น ถ้าเรามีตารางข้อมูลของนักศึกษาดังนี้ ตารางที่ 2.1 เอ็นทิตี้นักศึกษา รหัสนักศึกษา ชื่อนักศึกษา สาขา สำนักวิชา ภูมิลำเนา B4370001 แดง ใจดี คอมพิวเตอร์ วิศวกรรมศาสตร์ เลย โครงสร้างข้อมูล (Schema) ของนักศึกษา คือ รหัสนักศึกษา ชื่อนักศึกษา สาขา สำนักวิชา ภูมิลำเนา เนื้อข้อมูล (Instance) คือ B4370001 แดง ใจดี คอมพิวเตอร์ วิศวกรรมศาสตร์ เลย
36 สถาปัตยกรรมฐานข้อมูล สถาปัตยกรรมฐานข้อมูล สถาปัตยกรรมของระบบฐานข้อมูล(Architecture For Ad Database System) เปรียบเสมือน กรอบซึ่งจะใช้เป็นประโยชน์ในการบรรยายถึงแนวคิดและอธิบายถึงโครงสร้างของระบบฐานข้อมูล แบบต่างๆ กล่าวคือสถาปัตยกรรมฐานข้อมูลเป็นมุมมองแนวความคิดที่ใช้ในการอธิบายถึงรูปแบบและ โครงสร้างของข้อมูลในระบบฐานข้อมูล โดยไม่ขึ้นอยู่กับโครงสร้างจริงของระบบฐานข้อมูลนั้นๆ ผู้ใช้ ฐานข้อมูลจะมองข้อมูลนี้ในแง่มุมหรือวิวที่แตกต่างกันไปตามจุดประสงค์ของการประยุกต์ใช้งาน โดย ไม่จำเป็นต้องสนใจว่ามีลักษณะการจัดเก็บข้อมูลแท้จริงเป็นเช่นไร ระบบฐานข้อมูลจะทำการซ่อน รายละเอียดไว้โดยจัดแบ่งระดับของข้อมูล ออกเป็นระดับชั้น ระดับชั้นของข้อมูลถูกพัฒนาขึ้น โ ด ย The Standards Planning and Requirements Committee (SPARC) ข อ ง American National Standards institute (ANSI) ที่เรียกว่า ANSI/SPARC จะถูกแบ่งออกเป็น 3 ระดับคือ 1) ระดับภายนอก (External Level) เป็นระดับที่อยู่สูงสุดโดยผู้ใช้สามารถมองเห็น งานของผู้ใช้แต่ละคน และสามารถเรียกใช้ฐานข้อมูลได้ในระดับนี้ 2) ระดับแนวคิด (Conceptual Level) เป็นระดับที่อยู่ถัดขึ้นมาได้แก่ ระดับของ การมองแฟ้มข้อมูลของระบบฐานข้อมูลรวมทั้งกฎเกณฑ์ต่าง ๆ เกี่ยวกับข้อมูลและผู้ที่มีสิทธิจะใช้ ข้อมูลในระดับนี้จะถูกใช้โดยโปรแกรมเมอร์หรือผู้เขียนโปรแกรม 3) ระดับภายใน (Internal Level) เป็นระดับของการจัดความสัมพันธ์ระหว่าง แฟ้มข้อมูลของระบบฐานข้อมูลและการเชื่อมโยงแต่ละแฟ้มข้อมูล ข้อมูลในระดับนี้จะถูกใช้โดย ผู้จัดการฐานข้อมูลและผู้เขียนโปรแกรมระบบ (System Programmer) ภาพที่ 2.1 แสดงสถาปัตยกรรมฐานข้อมูล
วิศวกรรมข้อมูล 37 1. ระดับแนวคิด (Conceptual Level) เริ่มจากผู้ออกแบบ หรือ ผู้ดูแลระบบเริ่มวิเคราะห์ความต้องการข้อมูลขององค์กรว่า ประเภทใดบ้างที่จะจัดเก็บ ควรจะเก็บอะไรบ้าง และระหว่างข้อมูลควรมีความสัมพันธ์อย่างไรบ้าง จากนั้นจึงนำมาเขียนเป็นสคีมา (Schema) ซึ่งถือเป็นจุดสิ้นสุดของระดับแนวความคิด สคีมา (Schema) สามารถอธิบายว่า ฐานข้อมูลนั้นๆ สร้างขึ้นมาประกอบด้วยอะไรบ้าง แต่ละเอนทิตี้ ประกอบด้วยข้อมูลอะไรบ้าง มีลักษณะเป็นอย่างไร และ มีความสัมพันธ์อย่างไร อาจจะกล่าวได้ว่า สคีมาระดับเชิงมโนภาพ (Conceptual Schemas Level) จะเป็น ตัวที่ใช้เชื่อม ระหว่างสคีมาระดับภายนอกกับสคีมาระดับภายใน อธิบายฐานข้อมูลในรายละเอียด โดยรวมทั้งหมด เพื่อเชื่อมกับสิ่งที่ผู้ใช้มองรูปแบบข้อมูลความสัมพันธ์ เงื่อนไขต่าง ๆ รวมถึงความ มั่นคงและความถูกต้องของข้อมูลจะถูกเก็บไว้ด้วย แต่จะไม่ลงลึกถึงการเก็บในเครื่อง เราจะเรียกใน ส่วนนี้ว่า logical schema หรือ schema ซึ่งเป็นโครงสร้างข้อมูลที่นำเสนอตามรูปแบบของ data model ถ้าเป็น relational database ข้อมูลในระดับ create table จะหมายถึงตารางทุกตารางใน model 2. ระดับภายใน (Internal Level) จากนั้นก็คือระดับภายใน ซึ่งมีหน้าที่ในการจัดเก็บข้อมูลจริงๆในหน่วยความจำ เช่น ดิสก์ว่าอยู่ตำแหน่งใด รวมทั้งที่เกี่ยวกับดัชนี (Index) ซึ่งในระดับนี้น่าจะเป็นหน้าที่ของผู้ดูแลระบบ ตัดสินใจในระดับกายภาพ ว่าจะเก็บข้อมูลด้วยหน่วยความจำแบบใด จะมีการดูแลรักษาอย่างไร ซึ่ง โดยมากผู้ใช้ทั่วไปไม่มีสิทธิ์เข้ามายุ่งในระดับนี้ อาจจะกล่าวได้ว่า สคีมาระดับภายใน (Internal Schemas Level) พิจารณาการ จัดการระบบการเก็บข้อมูลจริง อธิบายฐานข้อมูลในการเก็บทางกายภาพจริง ๆ มองข้อมูลโดย มุมมองของระบบจัดการฐานข้อมูล ใช้โครงสร้างข้อมูล (Data Structure) และการจัดระเบียนแฟ้ม (File Organization) ในการอธิบาย และจะทำงานร่วมกับระบบปฏิบัติการ (Operating System) ในการเก็บข้อมูลลงที่หน่วยเก็บสำรอง (Secondary Storage) เราเรียกโครงสร้างระดับภายในว่า physical schema ซึ่งได้จากการ map โครงสร้างข้อมูลระดับแนวคิดลงสื่อข้อมูล เช่น ดิสก์ เป็นต้น ส่วนใหญ่โครงสร้างจะเป็น index, tree หรือ hashing 3. ระดับภายนอก (External Level) จะเป็นระดับที่ใกล้กับผู้ใช้มากที่สุด เป็นสิ่งที่ผู้ใช้คิดเกี่ยวกับข้อมูลจะอธิบายถึงวิว (View) ที่ผู้ใช้สนใจ ข้อมูลที่เก็บจริงอาจมีมากกว่าที่ผู้ใช้ต้องการและข้อมูลตัวเดียวกันผู้ใช้อาจมองไม่ เหมือนกัน เช่น ข้อมูลวันที่ (ผู้ใช้คนหนึ่งอาจมองเป็น วัน/ เดือน/ ปี อีกคนมองเป็น เดือน/
38 สถาปัตยกรรมฐานข้อมูล วัน/ปี ก็ได้) นอกจากนั้น สิ่งที่ผู้ใช้มองเห็นอาจไม่ได้เก็บจริงในเครื่องแต่ได้จากการคำนวณออกมา ส่วนนี้เองจะถูกแปลโดยระบบจัดการฐานข้อมูลเก็บไว้ในพจนานุกรมข้อมูล (Data dictionary) ระดับสุดท้ายคือ ระดับภายนอก ซึ่งก็คือ หน้าต่างหรือ วิว(view) ที่ผู้ใช้ภายนอกมีสิทธิ เข้าไปใช้ได้ วิว(View) คือ ส่วนของข้อมูลที่ผู้ใช้ทั่วไปมีความสนใจและมีสิทธิที่เข้านำมาใช้ได้จาก สคี มา (Concept Schema) เราสามารถเรียกสิ่งที่ใช้อธิบายวิวข้อมูลที่ถูกดึงมาจากฐานข้อมูลที่อยู่ใน ระดับแนวคิด (Conceptual) นี้ว่า External Schema หรือ Subschema หรือ view ซึ่งในระดับนี้ โปรแกรมจะเห็นเพียงโครงสร้างข้อมูลบางส่วน เช่น กรณีของ relational database โปรแกรมจะ เห็น view เป็นเพียงบางส่วนของตาราง หรือบางส่วนของตารางหลายตารางมารวมกันเป็นหนึ่ง view โดยจะต้องไม่ copy หรือ duplicate data จาก table มาไว้ที่ view ความเป็นอิสระของข้อมูล เนื่องจากฐานข้อมูลมีลักษณะเด่นที่เหนือกว่าระบบแฟ้มข้อมูล คือความเป็นอิสระของข้อมูล การที่ผู้ใช้ไม่ต้องแก้ไขโปรแกรมที่ใช้งานเมื่อมีการเปลี่ยนแปลงข้อมูลระดับแนวคิดหรือระดับภายใน โดยเป็นหน้าที่ของระบบจัดการฐานข้อมูลหรือดีบีเอ็มเอสในการเชื่อมข้อมูลระดับภายนอกและระดับ แนวคิด และเชื่อมข้อมูลระดับแนวคิดกับระดับภายใน ซึ่งการเชื่อมนี้เกี่ยวข้องกับความเป็นอิสระของ ข้อมูล ทำให้ผู้ใช้ไม่จำเป็นต้องรับทราบเกี่ยวกับข้อมูลส่วนอื่นๆ ที่ตนไม่ได้ใช้ ผู้ใช้มองเห็นโครงสร้าง ข้อมูลระดับภายนอกเหมือนเดิมและสามารถใช้งานได้ตามปกติ กล่าวคือข้อมูลภายในฐานข้อมูลเป็น อิสระจากโปรแกรมที่เรียกใช้ เพื่อที่สามารถแก้ไขโครงสร้างทางกายภาพของข้อมูลได้ โดยไม่กระทบ ต่อโปรแกรมที่เรียกใช้ฐานข้อมูลนั้น ความเป็นอิสระของข้อมูลแบ่งออกเป็น 2 ลักษณะ คือ 1. ความเป็นอิสระของข้อมูลเชิงตรรกะ (Logical Data Independence) ความเป็นอิสระของข้อมูลเชิงตรรกะ ในความหมายที่ใช้กับระบบฐานข้อมูลจะหมายถึง มุมมองของผู้ใช้ต่อข้อมูลนั้น โดยขึ้นอยู่กับผู้ใช้ว่าทำงานเกี่ยวข้องกับข้อมูลลักษณะใด ตัวอย่าง ถ้ามี คำถามว่าแฟ้มข้อมูลคืออะไร ถ้าถามบุคคลในวงการคอมพิวเตอร์ คำตอบที่ได้คือที่เก็บรวบรวม เรคอร์ด เพราะว่าบุคคลเหล่านี้ส่วนใหญ่คือโปรแกรมเมอร์ผู้เขียนโปรแกรม ซึ่งในมุมมองของผู้เขียน โปรแกรมนั้นจะมองแฟ้มข้อมูลเป็นเรคอร์ด นั่นคือขณะที่โปรแกรมเมอร์ใช้คำสั่งอ่านข้อมูล (Read) 1 คำสั่งจะได้ข้อมูล 1 เรคอร์ด และเมื่อใช้คำสั่งเขียน (Write) 1 คำสั่งจะบันทึกข้อมูล 1 เรคอร์ด นั่นคือ ในมุมมองของโปรแกรมเมอร์จะเห็นแฟ้มข้อมูลเป็นเรคอร์ด แต่ถ้าเราถามเจ้าหน้าที่สารบรรณว่า แฟ้มข้อมูลคืออะไร เจ้าหน้าที่สารบรรณจะตอบว่าคือที่เก็บรวบรวมตัวอักษรหรือข้อความ เพราะว่า เจ้าหน้าที่ดังกล่าวมองแฟ้มข้อมูลเป็นที่เก็บตัวอักษร เนื่องจากใช้โปรแกรมไมโครซอฟต์เวิร์ดจัดการกับ
วิศวกรรมข้อมูล 39 ข้อมูลและเก็บข้อมูลซึ่งเป็นตัวอักษรและข้อความต่าง ๆ เป็นแฟ้มข้อมูลนั่นเอง นั่นคือบุคคลเหล่านั้น ทั้งโปรแกรมเมอร์และเจ้าหน้าที่สารบรรณมีมุมมองต่อแฟ้มข้อมูลต่างกันขึ้นอยู่กับลักษณะงานที่ เกี่ยวข้องด้วย ซึ่งแฟ้มข้อมูลที่ผู้ใช้เห็นนี้เรียกว่า แฟ้มข้อมูลเชิงตรรกะ (Logical File) ดังนั้นอาจกล่าว ได้ว่า ความเป็นอิสระของข้อมูลเชิงตรรกะ (Logical Data Independence) หมายถึง เมื่อมีการ เปลี่ยนแปลงแก้ไขโครงสร้างข้อมูลในระดับแนวคิด จะไม่มีผลกระทบต่อโครงสร้างข้อมูลในระดับ ภายนอกที่ผู้ใช้ใช้งานอยู่ เช่น เมื่อมีการเปลี่ยนแปลงขนาดของแอตทริบิวต์ในตารางฐานข้อมูลใน ระดับแนวคิด ก็ไม่จำเป็นต้องไปแก้ไขโปรแกรมประยุกต์ที่ผู้ใช้เขียนขึ้นในระดับภายนอกที่มีการ เรียกใช้แอตทริบิวต์นั้นในการทำงานกับฐานข้อมูลต้องรู้ว่าสิ่งที่เราทำงานอยู่ด้วยนั้นเกี่ยวข้องกับระดับ กายภาพหรือระดับตรรกะ 2. ความเป็นอิสระของข้อมูลเชิงกายภาพ (Physical Data Independence) ความเป็นอิสระของข้อมูลเชิงกายภาพ ในความหมายของระบบผู้ใช้จะหมายถึงมุมมอง ของระบบปฏิบัติการ (Operating System; OS) ต่อข้อมูลนั้นจากคำถามข้างต้นถามว่าแฟ้มข้อมูลคือ อะไร คำตอบที่ได้ในที่นี้คือที่เก็บรวบรวมบิตโดยนำภาพแบบของบิต (Bit Pattern) มาเรียงต่อกันเป็น สาย ซึ่งเป็นคำตอบในมุมมองของระบบปฏิบัติการ จะเห็นว่าไม่เกี่ยวข้องกับเรคอร์ดหรือตัวอักษร ซึ่ง แฟ้มข้อมูลในมุมมองของระบบปฏิบัติการนี้เรียกว่า แฟ้มข้อมูลเชิงกายภาพ (Physical File) ความ เป็นอิสระของข้อมูลเชิงกายภาพ (Physical Data Independence) หมายถึง เมื่อมีการเปลี่ยนแปลง แก้ไขโครงสร้างข้อมูลในระดับภายใน จะไม่มีผลกระทบต่อโครงสร้างข้อมูลในระดับแนวคิด หรือระดับ ภายนอก เช่น เมื่อมีการเปลี่ยนวิธีการจัดเก็บข้อมูลจากแบบเรียงลำดับ (Sequential) ไปเป็นแบบ ดัชนี(Indexed) ในระดับภายใน ในระดับแนวคิดนั้นจะไม่มีผลกระทบต่อการเปลี่ยนแปลงดังกล่าว หรือโปรแกรมประยุกต์ที่เขียนในระดับภายนอกก็ไม่จำเป็นต้องแก้ไขโปรแกรมตามวิธีการจัดเก็บที่ เปลี่ยนแปลงไป 3. การออกแบบฐานข้อมูล สรุปได้ว่าแฟ้มข้อมูลที่กล่าวถึงนั้นคือสิ่งเดียวกันแต่เมื่อมองจากต่างมุมจะมองเห็น ต่างกัน ซึ่งในมุมมองของผู้ใช้นั้นเป็นมุมมองเชิงตรรกะ ขณะที่มุมมองของระบบปฏิบัติการเป็นมุมมอง เชิงกายภาพ การสร้างฐานข้อมูลขึ้นใช้งานในองค์การหรือหน่วยงานต่างๆ ก็จำเป็นจะต้องดำเนินการ ตามขั้นตอนที่เหมาะสม และต้องมีวิธีจัดการข้อมูล โดยปกติการสร้างฐานข้อมูลจำเป็นจะต้อง ออกแบบฐานข้อมูลเป็นสองระยะหรือสองขั้นตอนด้วยกัน ขั้นแรกก็คือการออกแบบเชิงแนวคิด
40 สถาปัตยกรรมฐานข้อมูล (Conceptual Design) หรือเชิงตรรกะ (Logical Design) และขั้นที่สองก็คือการออกแบบเชิง กายภาพ (Physical Design) 1) การออกแบบเชิงตรรกะเน้นในด้านการจัดกลุ่มข้อมูลในฐานข้อมูลให้เป็นหมวดหมู่ หรือ เป็นตารางที่เหมาะสม การออกแบบเริ่มต้นด้วยการพิจารณาว่าหน่วยงานจะต้องใช้ข้อมูล อะไรบ้าง ข้อมูลเหล่านั้นมีความสัมพันธ์กันอย่างไรบ้าง จะจัดกลุ่มข้อมูลอย่างไรจึงจะเหมาะสมและไม่ เกิดความซ้ำซ้อน การพิจารณาการจัดกลุ่มนี้จะต้องคำนึงถึงลักษณะของประเภทฐานข้อมูลที่จะจัดทำ ขึ้นด้วย 2) การออกแบบเชิงกายภาพ เน้นในด้านการกำหนดว่าข้อมูลแต่ละรายการหรือ ตารางข้อมูลต่าง ๆ จะจัดเก็บลงในสื่อข้อมูลเช่นจานแม่เหล็กได้อย่างไร มีการกำหนดว่าข้อมูลแต่ละ รายการเป็นข้อมูลประเภทอักขระ จำนวน หรือประเภทอื่นๆ และต้องใช้เนื้อที่ในการเก็บมากน้อย เท่าใด การออกแบบฐานข้อมูลในส่วนนี้จำเป็นจะต้องใช้ผู้เชี่ยวชาญที่ศึกษาด้านฐานข้อมูลมาโดยตรง ฐานข้อมูลเป็นงานประยุกต์คอมพิวเตอร์ที่มีความสำคัญเป็นอย่างยิ่งในยุคปัจจุบัน อาจกล่าวได้ว่างาน ประยุกต์คอมพิวเตอร์ทุกงานล้วนต้องสร้างขึ้นบนฐานข้อมูลแทบทั้งสิ้น ดังนั้นการศึกษาทำความเข้าใจ เรื่องของฐานข้อมูลจึงเป็นเรื่องจำเป็น ยิ่งหากได้ศึกษาจนถึงขั้นออกแบบและใช้งานได้จริงแล้วยิ่งจะ เป็นประโยชน์มากขึ้นเป็นทวีคูณ วิวกับการแปลงรูป โครงสร้างของสถาปัตยกรรมของฐานข้อมูล 3 ระดับนั้น แต่ละระดับจะมีDBMS ทำหน้าที่ใน การแปลงรูประดับข้อมูลจากระดับหนึ่งไปยังอีกระดับหนึ่ง ได้แก่ การแปลงรูประหว่างระดับภายนอก กับระดับแนวคิด และระหว่างระดับแนวคิดกับระดับภายใน การถ่ายทอดมุมมองจากสถาปัตยกรรม ในระดับที่สูงกว่าไปยังระดับที่ต่ำกว่า เรียกว่า การแปลงรูป (Mapping) การแปลงรูปแบ่งเป็น 2 ลักษณะ คือ หนึ่งการแปลงรูประหว่างระดับภายนอกกับระดับแนวคิด และสองการแปลงรูประหว่าง ระดับแนวคิดกับระดับภายใน 1. การแปลงรูประหว่างระดับภายนอกกับระดับแนวคิด (External/Conceptual Mapping) การแปลงรูประหว่างระดับภายนอกกับระดับแนวคิด เป็นการกำหนดความสอดคล้องกัน ระหว่างมุมมองในระดับภายนอกและระดับแนวคิดที่เรียกว่า ความเป็นอิสระของข้อมูลเชิงตรรกะ (Logical Data Independence) โดยถ่ายทอดมุมมองที่มีต่อข้อมูลจากสถาปัตยกรรมในระดับ
วิศวกรรมข้อมูล 41 ภายนอกไปยังสถาปัตยกรรมในระดับแนวคิด เพื่อให้ผู้ใช้ฐานข้อมูลสามารถมีมุมมองข้อมูลที่แตกต่าง กันได้ ในระดับแนวคิดนั้นอาจมีการเปลี่ยนแปลง ชนิดข้อมูล (Data Type) ของแอตทริบิวต์ เปลี่ยนแปลงชื่อแอตทริบิวต์ เป็นต้น โดยสามารถเชื่อมการเปลี่ยนแปลงนี้ไปสู่แอตทริบิวต์ระดับ ภายนอกได้ ทำให้สคีมาภายนอกก็ยังคงใช้ได้เหมือนเดิมไม่ต้องเปลี่ยนแปลงใดๆ หรือกล่าวว่านี่คือการ รักษาความเป็นอิสระข้อมูลเชิงตรรกะนั่นเอง 2. การแปลงรูประหว่างระดับแนวคิดกับระดับภายใน (Conceptual/Internal Mapping) การแปลงรูประหว่างระดับแนวคิดกับระดับภายในเป็นการกำหนดความสอดคล้องกัน ระหว่างมุมมองในระดับแนวคิดกับระดับภายในที่เรียกว่าความเป็นอิสระของข้อมูลเชิงกายภาพ (Physical Data Independence) โดยถ่ายทอดมุมมองที่มีต่อข้อมูลจากสถาปัตยกรรมในระดับ แนวคิดไปยังสถาปัตยกรรมในระดับภายในเพื่อนำโครงสร้างของข้อมูลในระดับแนวคิดไปแปลงเป็น โครงสร้างของข้อมูลในระดับกายภาพเพื่อใช้ในการจัดเก็บข้อมูล โดยระบุโครงสร้างเรคอร์ดและฟิลด์ที่ ใช้จัดเก็บข้อมูลในระดับภายใน ถ้าโครงสร้างของข้อมูลในฐานข้อมูลที่จัดเก็บเปลี่ยนแปลงไป เช่น เมื่อ มีการเปลี่ยนนิยามโครงสร้างการจัดเก็บทำให้การแปลงรูปจากระดับแนวคิดไปยังระดับภายในต้อง เปลี่ยนแปลงตามไปด้วย แต่สคีมาแนวคิดยังคงอยู่เหมือนเดิมไม่ต้องเปลี่ยนแปลงแต่อย่างใด หรือ กล่าวอีกนัยหนึ่งผลของการเปลี่ยนแปลงในระดับภายในต้องเป็นอิสระจากระดับแนวคิด เพื่อที่จะ รักษาความเป็นอิสระของข้อมูลเชิงกายภาพนั่นเอง การแปลงรูปข้อมูลระหว่างระดับแนวคิดกับระดับ ภายใน ทำให้ผู้ใช้งานฐานข้อมูลไม่ว่าในระดับแนวคิดหรือระดับภายนอกไม่จำเป็นต้องทราบว่าข้อมูลที่ ตนใช้งานอยู่ถูกจัดเก็บในดิสก์อย่างไร เมื่อต้องการใช้ข้อมูลใดสามารถอ้างถึงชื่อตารางและฟิลด์ได้ โดยตรง ซึ่งจะเป็นหน้าที่ของระบบจัดการฐานข้อมูลที่จะดูว่าข้อมูลที่ผู้ใช้ต้องการเก็บอยู่ในตำแหน่ง แทรกใด ไซลินเดอร์ใดในดิสก์ แล้วทำการดึงข้อมูลนั้นมาให้แก่ผู้ใช้ การนำเอาโครงสร้างของข้อมูลในระดับแนวคิดมากำหนดโครงสร้างเรคอร์ดและฟิลด์ที่ จะนำไปจัดเก็บข้อมูล เรียกว่า การแปลงรูปข้อมูลระดับแนวคิดกับระดับภายใน (Conceptual/ Internal Mapping) สำหรับการกำหนดโครงสร้างของเรคอร์ดและฟิลด์ให้สามารถครอบคลุมความ ต้องการ หรือมุมมองต่าง ๆ ของผู้ใช้ เรียกว่า การแปลงรูปข้อมูลระดับภายนอกกับระดับแนวคิด (External / Conceptual Mapping) ดังจะเห็นได้จากที่แสดงดังภาพ 2.2
42 สถาปัตยกรรมฐานข้อมูล ภาพที่2.2 รายละเอียดของระบบสถาปัตยกรรมฐานข้อมูล ความสัมพันธ์ระหว่างผู้ใช้งานกับผู้ดูแลระบบ ตามสถาปัตยกรรมฐานข้อมูล แสดงดังรูป 2.3 ภาพที่ 2.3 แสดงความสัมพันธ์ระหว่างผู้ใช้และผู้ดูแลระบบตามสถาปัตยกรรมฐานข้อมูล ภาษา COBOL ข้อมูลระดับภายนอก ข้อมูลระดับหลักการ ข้อมูลระดับภายนอก ภาษา PASCAL ภาษา SQL DBMS การ map ข้อมูลระดับ หลักการกับระดับภายใน โครงสร้างระดับภายนอก โครงสร้างระดับแนวคิด โครงสร้างระดับภายใน ผู้ใช้ 1 ผู้ใช้ 2 ผู้ใช้ 3 การ map ข้อมูล ระดับภายนอก กับระดับแนวคิด
วิศวกรรมข้อมูล 43 จะเห็นว่า มีการแบ่งระดับความรับผิดชอบและคำสั่งต่างๆ จะต่างกันไป ดังนั้นจะได้ความเป็น อิสระของข้อมูลอย่างแท้จริง ไม่ว่าจะมีการเปลี่ยนแปลงหรือเพิ่มตารางใหม่ หรือเปลี่ยนแปลงประเภทและ ชนิด จะไม่มีผลกระทบกับฐานข้อมูลเลย เพื่อให้เข้าใจในเรื่องระดับข้อมูลมากยิ่งขึ้น ลองพิจารณารูปที่ 2.4 ซึ่งแสดงให้เห็นถึงวิวของข้อมูล ระดับภายนอก (external view) ของโปรแกรมที่เขียนด้วยภาษา PASCAL และ COBOL ซึ่งสอดคล้องกับ วิวของข้อมูลระดับแนวคิด (conceptual view) และวิวของข้อมูลระดับภายใน (internal view) สำหรับ ระบบฐานข้อมูลงานบุคคล ระดับภายนอก (PASCAL) EMP = RECORD ID : INTEGER; SAL : INTEGER; END; ระดับภายนอก (COBOL) 01 EMPREC. 02 ENO PIC 9(6). 02 DEPNO PIC 9(4). ระดับแนวคิด EMPLOYEE EMP_NUMBER DEP_CODE SALARY CHARACTER (6) CHARACTER (4) NUMBER (6) ระดับภายใน STORED_EMP PREFIX ENO DEPCODE PAY LENGTH=18 TYPE=BYTE(6),OFFSET=0 TYPE=BYTE(6),OFFSET=6,INDEX=EM PX TYPE=BYTE(4),OFFSET=12 TYPE=FULLWORD,OFFSET=16 ภาพที่2.4 ตัวอย่างระดับข้อมูลทั้ง 3 ระดับ
44 สถาปัตยกรรมฐานข้อมูล ประโยชน์ของสถาปัตยกรรมฐานข้อมูล 1. ผู้ใช้งานไม่จำเป็นต้องสนใจรายละเอียดของโครงสร้างในการจัดเก็บข้อมูล ว่าจะต้อง จัดเก็บ ข้อมูลในระดับกายภาพอย่างไร เพียงแต่ออกแบบฐานข้อมูลในระดับแนวคิด ว่าข้อมูลมีความสัมพันธ์ กันอย่างไร มีข้อมูลอย่างไรบ้าง ระบบจัดการฐานข้อมูล (Database Management System :DBMS) จะเป็นตัวจัดการจัดเก็บข้อมูล ในอุปกรณ์จัดเก็บข้อมูลเอง 2. ผู้ใช้แต่ละคนสามารถนำข้อมูลชุดเดียวกัน มาใช้งานที่แตกต่างกัน และจัดรูปแบบการ แสดงผลต่างๆ ให้แตกต่างกันตามความต้องการ ของผู้ใช้แต่ละคนได้ โดยไม่กระทบกับโครงสร้าง ของ การจัดเก็บข้อมูลจริง หรือกระทบโครงสร้างในระดับแนวคิด 3. มีความเป็นอิสระของข้อมูลกับตัวโปรแกรม คือสามารถแก้ไขเปลี่ยนแปลงโครงสร้าง ของ ข้อมูลได้ โดยไม่ต้องทำการแก้ไขโปรแกรม เช่น การเพิ่มข้อมูลบางแอททริบิวต์เข้าไปในฐานข้อมูล ของพนักงาน โดยไม่ต้องทำการแก้ไขโปรแกรม หรือ แก้ไขความยาวของการเก็บชื่อของพนักงาน ซึ่ง จะไม่ส่งผลกระทบใดๆ เนื่องจากมีความเป็นอิสระของข้อมูลในแต่ละระดับนั่นเอง บทสรุป สถาปัตยกรรมของฐานข้อมูลได้แ้บ่งระดับของข้อมูลไว้3 ระดับคือ 1) ระดับภายนอก (External Level) เป็นมุมมองของผู้ใช้ที่มีต่อฐานข้อมูล หรือที่เรียกว่า วิว 2) ระดับแนวคิด (Conceptual Level) เป็นมุมมองโครงร่างของฐานข้อมูลในแนวความคิด ซึ่งไม่ใช่โครงร่างจริงที่ถูกสร้างในอุปกรณ์ เก็บข้อมูล 3) ระดับภายใน (Internal Level) เป็นมุมมองทางกายภาพของการจัดเก็บว่าจะจัดเก็บ ข้อมูลในอุปกรณ์เก็บข้อมูลอย่างไร สคีมา (Schema) หมายถึง โครงสร้างข้อมูลหรือนิยามข้อมูล อินสแตนซ์ (Instance) หมายถึง เนื้อข้อมูลที่เก็บอยู่ในโครงสร้างข้อมูล การแปลงรูป (Mapping) คือการถ่ายทอดมุมมองจากสถาปัตยกรรมในระดับที่สูงกว่าไปยังระดับ ที่ต่ำกว่า ซึ่งแบ่งเป็น 2 ลักษณะคือ 1) การแปลงรูประหว่างระดับภายนอกกับระดับแนวคิด 2) การ แปลงรูปจากระดับแนวคิดกับระดับภายใน
วิศวกรรมข้อมูล 45 แบบฝึกหัดท้ายบท 1. อธิบายความหมายของสถาปัตยกรรมฐานข้อมูล 2. วัตถุประสงค์ของการแบ่งสถาปัตยกรรมฐานข้อมูลออกเป็น 3 ระดับ คือ 3. อธิบายความหมายของ Three-Level Architecture 4. อธิบายระดับของสถาปัตยกรรมฐานข้อมูลจากภาพต่อไปนี้ 5. การแปลงรูป (Mapping) หมายถึงอะไร 6. สคีมา และอินสแตนซ์คืออะไร 7. ความเป็นอิสระของข้อมูล คืออะไร 8. การแปลงรูปเกี่ยวข้องกับความเป็นอิสระของข้อมูลอย่างไร