ตอนที่ 1.3 สถาปัตยกรรมของระบบฐานข้อมูล
เรื่องที่ 1.3.1 ระดับของข้อมูล ในระบบฐานข้อมูล
1. ระดับชั้นของระบบจัดการฐานข้อมูล
ระบบฐานข้อมูล เป็นการนำข้อมูลในองค์การที่มีความเกี่ยวข้องกันมารวมไว้อย่างเป็นระบบในที่เดียวกัน โดยที่ผู้ใช้ฐานข้อมูลจะมองข้อมูลนี้ในแง่มุมหรือวิวที่แตกต่างกันไปตามจุดประสงค์ของการประยุกต์ใช้งาน โดยผู้ใช้ไม่จำเป็นต้องสนใจว่าลักษณะการจัดเก็บข้อมูลโดยแท้จริงแล้วเป็นเช่นไร โดยระบบฐานข้อมูลจะทำการซ่อนรายละเอียดไว้ โดยจัดแบ่งระดับของข้อมูลออกเป็นระดับชั้นระดับชั้นของข้อมูลถูกพัฒนาขึ้นโดย The Standards Planing and Requiremenst Committee (SPARC) ของ American National Standards institure (ANSI) จะถูกแบ่งออกเป็น 4 ระดับ
1.1 ระดับภายนอก (external level) เป็นระดับที่อยู่สูงสุดโดยผู้ใช้สามารถมองเห็นงานของผู้ใช้แต่ละคน และสามารถเรียกใช้ฐานข้อมูลได้ในระดับนี้
1.2 ระดับหลักการ (conceptual level) เป็นระดับที่อยู่ถัดขึ้นมาได้แก่ ระดับของการมองแฟ้มข้อมูลของระบบฐานข้อมูลรวมทั้งกฎเกณฑ์ต่าง ๆ เกี่ยวกับข้อมูลและผู้ที่มีสิทธิจะใช้ ข้อมูลในระดับนี้จะถูกใช้โดยโปรแกรมเมอร์หรือผู้เขียนโปรแกรม
1.3 ระดับภายใน (internal level) เป็นระดับของการจัดความสัมพันธ์ระหว่างแฟ้มข้อมูลของระบบฐานข้อมูลและการเชื่อมโยงแต่ละแฟ้มข้อมูล ข้อมูลในระดับนี้จะถูกใช้โดยผู้จัดการฐานข้อมูลและผู้เขียนโปรแกรมระบบ (system programmer)
1.4 ระดับโครงสร้างแท้จริง (physical organization level) เป็นระดับที่ต่ำที่สุดอันได้แก่ กลุ่มของแฟ้มข้อมูลที่จัดเก็บไว้เป็นแฟ้มข้อมูลจริงและโครงสร้างของแฟ้มข้อมูล
ภาพที่1.2 แสดงระดับชั้นของข้อมูล
ประโยชน์ของการแบ่งระดับชั้นนั้นเพื่อให้ข้อมูลเป็นอิสระต่อกัน ความเป็นอิสระของข้อมูลคือ การที่ผู้ใช้ไม่ต้องมาคอยแก้ไขโปรแกรมที่ใช้งานในทุก ๆ ครั้งที่เกิดการเปลี่ยนแปลงแก้ไขฐานข้อมูลระบบจัดการฐานข้อมูลจะทำหน้าที่เชื่อมโยงข้อมูลระหว่างแต่ละระดับ
เรื่องที่ 1.3.2 ความเป็นอิสระของข้อมูล
1.แนวคิดเชิงกายภาพและตรรกะ
เนื่องจากฐานข้อมูลมีลักษณะเด่นที่เหนือกว่าระบบแฟ้มข้อมูล คือความเป็นอิสระของข้อมูล การที่ผู้ใช้ไม่ต้องแก้ไขโปรแกรมที่ใช้งานเมื่อมีการเปลี่ยนแปลงข้อมูลระดับแนวคิดหรือระดับภายใน โดยเป็นหน้าที่ของระบบจัดการฐานข้อมูลหรือดีบีเอ็มเอสในการเชื่อมข้อมูลระดับภายนอกและระดับแนวคิด และเชื่อมข้อมูลระดับแนวคิดกับระดับภายใน ซึ่งการเชื่อมนี้เกี่ยวข้องกับความเป็นอิสระของข้อมูล ทำให้ผู้ใช้ไม่จำเป็นต้องรับทราบเกี่ยวกับข้อมูลส่วนอื่นๆ ที่ตนไม่ได้ใช้ ผู้ใช้มองเห็นโครงสร้างข้อมูลระดับภายนอกเหมือนเดิมและสามารถใช้งานได้ตามปกติ กล่าวคือข้อมูลภายในฐานข้อมูลเป็นอิสระจากโปรแกรมที่เรียกใช้ เพื่อที่สามารถแก้ไขโครงสร้างทางกายภาพของข้อมูลได้ โดยไม่กระทบต่อโปรแกรมที่เรียกใช้ฐานข้อมูลนั้น ความเป็นอิสระของข้อมูลแบ่งออกเป็น 2 ลักษณะ คือ1.1ความเป็นอิสระของข้อมูลเชิงตรรกะ (logical data independence) ตรรกะ (logical) ในความหมายที่ใช้กับระบบฐานข้อมูลจะหมายถึงมุมมองของผู้ใช้ต่อข้อมูลนั้น โดยขึ้นอยู่กับผู้ใช้ว่าทำงานเกี่ยวข้องกับข้อมูลลักษณะใด ตัวอย่าง ถ้ามีคำถามว่าแฟ้มข้อมูลคืออะไร ถ้าถามบุคคลในวงการคอมพิวเตอร์ คำตอบที่ได้คือที่เก็บรวบรวมเรคอร์ด เพราะว่าบุคคลเหล่านี้ส่วนใหญ่คือโปรแกรมเมอร์ผู้เขียนโปรแกรม ซึ่งในมุมมองของผู้เขียนโปรแกรมนั้นจะมองแฟ้มข้อมูลเป็นเรคอร์ด นั่นคือขณะที่โปรแกรมเมอร์ใช้คำสั่งอ่านข้อมูล (read) 1 คำสั่งจะได้ข้อมูล 1 เรคอร์ด และเมื่อใช้คำสั่งเขียน (write) 1 คำสั่งจะบันทึกข้อมูล 1 เรคอร์ด นั่นคือในมุมมองของโปรแกรมเมอร์จะเห็นแฟ้มข้อมูลเป็นเรคอร์ด แต่ถ้าเราถามเจ้าหน้าที่สารบรรณว่าแฟ้มข้อมูลคืออะไร เจ้าหน้าที่สารบรรณจะตอบว่าคือที่เก็บรวบรวมตัวอักษรหรือข้อความ เพราะว่าเจ้าหน้าที่ดังกล่าวมองแฟ้มข้อมูลเป็นที่เก็บตัวอักษร เนื่องจากใช้โปรแกรมไมโครซอฟต์เวิร์ดจัดการกับข้อมูลและเก็บข้อมูลซึ่งเป็นตัวอักษรและข้อความต่างๆ เป็นแฟ้มข้อมูลนั่นเอง นั่นคือบุคคลเหล่านั้นทั้งโปรแกรมเมอร์และเจ้าหน้าที่สารบรรณมีมุมมองต่อแฟ้มข้อมูลต่างกันขึ้นอยู่กับลักษณะงานที่เกี่ยวข้องด้วย ซึ่งแฟ้มข้อมูลที่ผู้ใช้เห็นนี้เรียกว่า แฟ้มข้อมูลเชิงตรรกะ (logical file) ดังนั้นอาจกล่าวได้ว่า ความเป็นอิสระของข้อมูลเชิงตรรกะ (logical data independence) หมายถึง เมื่อมีการเปลี่ยนแปลงแก้ไขโครงสร้างข้อมูลในระดับแนวคิด จะไม่มีผลกระทบต่อโครงสร้างข้อมูลในระดับภายนอกที่ผู้ใช้ใช้งานอยู่ เช่น เมื่อมีการเปลี่ยนแปลงขนาดของแอตทริบิวต์ในตารางฐานข้อมูลในระดับแนวคิด ก็ไม่จำเป็นต้องไปแก้ไขโปรแกรมประยุกต์ที่ผู้ใช้เขียนขึ้นในระดับภายนอกที่มีการเรียกใช้แอตทริบิวต์นั้นในการทำงานกับฐานข้อมูลต้องรู้ว่าสิ่งที่เราทำงานอยู่ด้วยนั้นเกี่ยวข้องกับระดับกายภาพหรือระดับตรรกะ
1.2 ความเป็นอิสระของข้อมูลเชิงกายภาพ (physical data independence) กายภาพ (physical)
ในความหมายของระบบผู้ใช้จะหมายถึงมุมมองของระบบปฏิบัติการ (Operating System; OS) ต่อข้อมูลนั้นจากคำถามข้างต้นถามว่าแฟ้มข้อมูลคืออะไร คำตอบที่ได้ในที่นี้คือที่เก็บรวบรวมบิตโดยนำรูปแบบของบิต (bit pattern) มาเรียงต่อกันเป็นสาย ซึ่งเป็นคำตอบในมุมมองของระบบปฏิบัติการ จะเห็นว่าไม่เกี่ยวข้องกับเรคอร์ดหรือตัวอักษร ซึ่งแฟ้มข้อมูลในมุมมองของระบบปฏิบัติการนี้เรียกว่า แฟ้มข้อมูลเชิงกายภาพ (physical file) ความเป็นอิสระของข้อมูลเชิงกายภาพ (physical data independence) หมายถึง เมื่อมีการเปลี่ยนแปลงแก้ไขโครงสร้างข้อมูลในระดับภายใน จะไม่มีผลกระทบต่อโครงสร้างข้อมูลในระดับแนวคิด หรือระดับภายนอก เช่น เมื่อมีการเปลี่ยนวิธีการจัดเก็บข้อมูลจากแบบเรียงลำดับ (sequential) ไปเป็นแบบดัชนี (indexed) ในระดับภายใน ในระดับแนวคิดนั้นจะไม่มีผลกระทบต่อการเปลี่ยนแปลงดังกล่าวหรือโปรแกรมประยุกต์ที่เขียนในระดับภายนอกก็ไม่จำเป็นต้องแก้ไขโปรแกรมตามวิธีการจัดเก็บที่เปลี่ยนแปลงไป
2.การออกแบบฐานข้อมูล
สรุปได้ว่าแฟ้มข้อมูลที่กล่าวถึงนั้นคือสิ่งเดียวกันแต่เมื่อมองจากต่างมุมจะมองเห็นต่างกัน ซึ่งในมุมมองของผู้ใช้นั้นเป็นมุมมองเชิงตรรกะ ขณะที่มุมมองของระบบปฏิบัติการเป็นมุมมองเชิงกายภาพการสร้างฐานข้อมูลขึ้นใช้งานในองค์การหรือหน่วยงานต่างๆ ก็จำเป็นจะต้องดำเนินการตามขั้นตอนที่เหมาะสม และต้องมีวิธีจัดการข้อมูล โดยปกติการสร้างฐานข้อมูลจำเป็นจะต้องออกแบบฐานข้อมูลเป็นสองระยะหรือสองขั้นตอนด้วยกัน ขั้นแรกก็คือการออกแบบเชิงแนวคิด (conceptual design) หรือเชิงตรรกะ (logical design) และขั้นที่สองก็คือการออกแบบเชิงกายภาพ (physical design)2.1 การออกแบบเชิงตรรกะเน้นในด้านการจัดกลุ่มข้อมูลในฐานข้อมูลให้เป็นหมวดหมู่ หรือ เป็นตารางที่เหมาะสม การออกแบบเริ่มต้นด้วยการพิจารณาว่าหน่วยงานจะต้องใช้ข้อมูลอะไรบ้าง ข้อมูลเหล่านั้นมีความสัมพันธ์กันอย่างไรบ้าง จะจัดกลุ่มข้อมูลอย่างไรจึงจะเหมาะสมและไม่เกิดความซ้ำซ้อนการพิจารณาการจัดกลุ่มนี้จะต้องคำนึงถึงลักษณะของประเภทฐานข้อมูลที่จะจัดทำขึ้นด้วย
2.2 การออกแบบเชิงกายภาพ เน้นในด้านการกำหนดว่าข้อมูลแต่ละรายการหรือตารางข้อมูลต่างๆจะจัดเก็บลงในสื่อข้อมูลเช่นจานแม่เหล็กได้อย่างไร มีการกำหนดว่าข้อมูลแต่ละรายการเป็นข้อมูลประเภทอักขระ จำนวน หรือประเภทอื่นๆ และต้องใช้เนื้อที่ในการเก็บมากน้อยเท่าใด การออกแบบฐานข้อมูลในส่วนนี้จำเป็นจะต้องใช้ผู้เชี่ยวชาญที่ศึกษาด้านฐานข้อมูลมาโดยตรงฐานข้อมูลเป็นงานประยุกต์คอมพิวเตอร์ที่มีความสำคัญเป็นอย่างยิ่งในยุคปัจจุบัน อาจกล่าวได้ว่างานประยุกต์คอมพิวเตอร์ทุกงานล้วนต้องสร้างขึ้นบนฐานข้อมูลแทบทั้งสิ้น ดังนั้นการศึกษาทำความเข้าใจ เรื่องของฐานข้อมูลจึงเป็นเรื่องจำเป็น ยิ่งหากได้ศึกษาจนถึงขั้นออกแบบและใช้งานได้จริงแล้วยิ่งจะเป็นประโยชน์มากขึ้นเป็นทวีคูณ
3.วิวกับการแปลงรูป
โครงสร้างของสถาปัตยกรรมของฐานข้อมูล 3 ระดับนั้น แต่ละระดับจะมี DBMS ทำหน้าที่ในการแปลงรูประดับข้อมูลจากระดับหนึ่งไปยังอีกระดับหนึ่ง ได้แก่ การแปลงรูประหว่างระดับภายนอกกับระดับแนวคิด และระหว่างระดับแนวคิดกับระดับภายในการถ่ายทอดมุมมองจากสถาปัตยกรรมในระดับที่สูงกว่าไปยังระดับที่ต่ำกว่า เรียกว่า การแปลงรูป (mapping) การแปลงรูปแบ่งเป็น 2 ลักษณะ คือ หนึ่งการแปลงรูประหว่างระดับภายนอกกับระดับแนวคิดและสองการแปลงรูประหว่างระดับแนวคิดกับระดับภายใน
3.1 การแปลงรูประหว่างระดับภายนอกกับระดับแนวคิด (external/conceptual mapping) เป็นการกำหนดความสอดคล้องกันระหว่างมุมมองในระดับภายนอกและระดับแนวคิดที่เรียกว่า ความเป็นอิสระของข้อมูลเชิงตรรกะ(logical data independence) โดยถ่ายทอดมุมมองที่มีต่อข้อมูลจากสถาปัตยกรรมในระดับภายนอกไปยังสถาปัตยกรรมในระดับแนวคิด เพื่อให้ผู้ใช้ฐานข้อมูลสามารถมีมุมมองข้อมูลที่แตกต่างกันได้ ในระดับแนวคิดนั้นอาจมีการเปลี่ยนแปลง ชนิดข้อมูล (data type) ของแอตทริบิวต์เปลี่ยนแปลงชื่อแอตทริบิวต์ เป็นต้น โดยสามารถเชื่อมการเปลี่ยนแปลงนี้ไปสู่แอตทริบิวต์ระดับภายนอกได้ ทำให้สคีมาภายนอกก็ยังคงใช้ได้เหมือนเดิมไม่ต้องเปลี่ยนแปลงใดๆ หรือกล่าวว่านี่คือการรักษาความเป็นอิสระข้อมูลเชิงตรรกะนั่นเอง
3.2 การแปลงรูประหว่างระดับแนวคิดกับระดับภายใน (conceptual/internal mapping) เป็นการกำหนดความสอดคล้องกันระหว่างมุมมองในระดับแนวคิดกับระดับภายในที่เรียกว่าความเป็นอิสระของข้อมูลเชิงกายภาพ ( physical data independence) โดยถ่ายทอดมุมมองที่มีต่อข้อมูลจากสถาปัตยกรรมในระดับแนวคิดไปยังสถาปัตยกรรมในระดับภายในเพื่อนำโครงสร้างของข้อมูลในระดับแนวคิดไปแปลงเป็นโครงสร้างของข้อมูลในระดับกายภาพเพื่อใช้ในการจัดเก็บข้อมูล โดยระบุโครงสร้างเรคอร์ดและฟิลด์ที่ใช้จัดเก็บข้อมูลในระดับภายใน ถ้าโครงสร้างของข้อมูลในฐานข้อมูลที่จัดเก็บเปลี่ยนแปลงไปเช่น เมื่อมีการเปลี่ยนนิยามโครงสร้างการจัดเก็บทำให้การแปลงรูปจากระดับแนวคิดไปยังระดับภายในต้องเปลี่ยนแปลงตามไปด้วย แต่สคีมาแนวคิดยังคงอยู่เหมือนเดิมไม่ต้องเปลี่ยนแปลงแต่อย่างใด หรือกล่าวอีกนัยหนึ่งผลของการเปลี่ยนแปลงในระดับภายในต้องเป็นอิสระจากระดับแนวคิด เพื่อที่จะรักษาความเป็นอิสระของข้อมูลเชิงกายภาพนั่นเองการแปลงรูปข้อมูลระหว่างระดับแนวคิดกับระดับภายในทำให้ผู้ใช้งานฐานข้อมูลไม่ว่าในระดับแนวคิดหรือระดับภายนอกไม่จำเป็นต้องทราบว่าข้อมูลที่ตนใช้งานอยู่ถูกจัดเก็บในดิสก์อย่างไร เมื่อต้องการใช้ข้อมูลใดสามารถอ้างถึงชื่อตารางและฟิลด์ได้โดยตรงซึ่งจะเป็นหน้าที่ของระบบจัดการฐานข้อมูลที่จะดูว่าข้อมูลที่ผู้ใช้ต้องการเก็บอยู่ในตำแหน่งแทรกใด ไซลินเดอร์ใดในดิสก์ แล้วทำการดึงข้อมูลนั้นมาให้แก่ผู้ใช้
เรื่องที่ 1.3.3 ภาษาที่ใช้ในระบบฐานข้อมูล
ภาษาของระบบจัดการฐานข้อมูลที่มีใช้กันในปัจจุบันได้แก ภาษานิยามข้อมูล ภาษาจัดการข้อมูล
และภาษาควบคุม
1. ภาษานิยามข้อมูล (Data Definition Language; DDL)
เป็นภาษาที่ใช้ในการกำหนดสคีมาระดับแนวคิด ภาษานิยามข้อมูลใช้กำหนดวิวของผู้ใช้และโครงสร้างการจัดเก็บข้อมูล สำหรับระบบจัดการฐานข้อมูลบางตัวอาจมีภาษานิยามวิว (View DefinitionLanguage; VDL) และภาษานิยามการจัดเก็บข้อมูล (Storage Definition Language; SDL) แยกต่างหากเพื่อกำหนดวิวและโครงสร้างการจัดเก็บ ตามลำดับ ซึ่งระบบจัดการฐานข้อมูลจะมีส่วนแปลภาษานิยามข้อมูล ทำหน้าที่แปลงประโยคคำสั่งภาษานิยามข้อมูล (DDL) เพื่อกำหนดรายละเอียดของโครงสร้างและเก็บไว้ในสารบัญแฟ้มของระบบจัดการฐานข้อมูล นั่นคือผลจากการแปลงประโยคคำสั่งที่เขียนด้วยภาษานิยามข้อมูล (DDL) จะทำให้ได้ตารางที่เก็บข้อมูลเกี่ยวกับโครงสร้างที่ได้จากการออกแบบฐานข้อมูลนั้นๆ ซึ่งเรียกว่า
พจนานุกรมข้อมูล (data dictionary) ซึ่งเก็บรายละเอียดฐานข้อมูลที่สร้างขึ้นมีชื่ออะไร มีโครงสร้างประกอบด้วยตารางชื่ออะไร แต่ละตารางประกอบด้วยฟิลด์ใดบ้าง ฟิลด์แต่ละฟิลด์มีชนิดข้อมูลเป็นอะไร มีความกว้างของข้อมูลเท่าใด และมีฟิลด์ใดบ้างเป็นคีย์ มีดัชนี (index) ช่วยในการค้นหาข้อมูลหรือไม่ เป็นต้น
2. ภาษาจัดการข้อมูล (Data Manipulation Language; DML)
เป็นภาษาใช้สำหรับจัดการข้อมูลภายในฐานข้อมูล ได้แก่การเรียกค้น เพิ่ม ลบ และปรับปรุงฐานข้อมูล ภาษาจัดการข้อมูล (DML) มี ประเภทหลักๆ คือเป็นภาษาที่ผู้ใช้กำหนดโครงสร้างหรือแบบแผนในการเก็บข้อมูล เช่น กำหนดหัวข้อและลักษณะของคอลัมน์ของตารางต่าง ๆ ที่จะใช้บันทึกข้อมูล ภาษากำหนดข้อมูล จะทำให้เกิดตารางที่จะจัดเก็บข้อมูลที่สำคัญต่อการทำงานของ DBMS ขึ้นมาชุดหนึ่ง ตารางนี้มีชื่อว่าพจนานุกรมข้อมูล (data dictionary) ซึ่งระบบจัดการฐานข้อมูลจะอาศัยโครงสร้างจากแฟ้มข้อมูลนี้เสมอ เช่น ดัชนี (index) ต่าง ๆ เป็นต้นการเรียกดูข้อมูลออกจากฐานข้อมูลจะต้องผ่านคำสั่งหรือข้อความของภาษาจัดการข้อมูลหาข้อความซึ่งกลุ่มของข้อความเหล่านั้นมีลักษณะเป็นการถามระบบข้อมูลเพื่อให้ระบบจัดการฐานข้อมูลหาคำตอบจากข้อมูลที่เก็บไว้และตอบกลับมา กลุ่มของข้อความเหล่านั้นเรียกว่า ภาษาคำถาม (query language) แต่โดยทั่วไปแล้วคำว่า DML และ ภาษาคำถาม จะใช้แทนกันเสมอ เช่น
SELECT EMPLOYEE-NAME
FROM EMPLOYEE-FILE
WHERE SEX = “FEMALE” AND SALARY GREATER THAN 5000
เป็นการไปเรียกดูข้อมูลชื่อของลูกจ้างที่เป็นผู้หญิงและมีเงินเดือนมากกว่า 5,000 จากฐานข้อมูลชื่อ EMPLOYEE-FILE