สภาพแวดล้อมของฐานข้อมูล (Database Environment)
2.1
บทนำ(Introduction)
ในบทที่ 2 จะกล่าวถึงสภาวะแวดล้อมต่างๆ
ที่เกี่ยวข้องกับฐานข้อมูล ซึ่งประกอบด้วย
สถาปัตยกรรมของฐานข้อมูล
ซึ่งมีการแบ่งระดับของฐานข้อมูลออกเป็น 3 ระดับ
ซึ่งเป็นมาตรฐานที่กำหนดโดย ANSI/SPARC
, แบบจำลองของฐานข้อมูลซึ่งประกอบด้วยแบบจำลองข้อมูล
และแบบจำลองระดับแนวคิด
และฟังก์ชันของระบบการจัดการฐานข้อมูล โดยมีรายละเอียดดังนี้
2.2
สถาปัตยกรรมฐานข้อมูลแบบ 3
ระดับของ ANSI/SPARC(The three-level ANSI/SPARC architecture)
ข้อเสนอเกี่ยวกับมาตรฐานและสถาปัตยกรรมทั่วไปของระบบฐานข้อมูลถูกเสนอขึ้นครั้งแรกในปี
ค.ศ. 1971
โดย DBTG(Data Base Task Group) ที่ถูกแต่งตั้งโดย
CODASYL ปี 1971 โดย DBTG เสนอให้แบ่งมุมมองออกเป็น 2 มุมมอง คือ มุมมองระบบ เรียกว่า เค้าร่าง(schema) และ มุมมองผู้ใช้ เรียกว่า
ตัวแทนเค้าร่าง(subschema) สถาบัน ANSI(American
National Standard Institute) และ SPARC(Standard Planning
and Requirement Committee) ได้พัฒนาสถาปัตยกรรมที่คล้ายกันออกมาในปี 1975 โดย ANSI/SPARC เสนอให้แบ่งมุมมองออกเป็น 3 ระดับและมีบัญชีระบบ(system catalog) ด้วย ถึงแม้แบบจำลองของ ANSI/SPARC จะไม่ถูกกำหนดให้เป็นมาตรฐาน
แต่ก็เป็นแบบจำลองที่ทำให้เข้าใจหน้าที่ของระบบการจัดการฐานข้อมูล โดยสถาปัตยกรรมนี้แบ่งออกเป็น 3 ระดับ ได้แก่ ระดับภายนอก(External level) , ระดับแนวคิด(Conceptual
level) และ ระดับภายใน(Internal level) แสดงดังรูปที่ 2.1
มุมมองที่ผู้ใช้เห็นคือระดับภายนอก(External
level) ส่วนระบบการจัดการฐานข้อมูล(DBMS)
และระบบปฏิบัติการ(OS) จัดเป็น ระดับภายใน(Internal
level) ซึ่งเป็นส่วนที่เก็บข้อมูลจริงโดยใช้โครงสร้างข้อมูล ส่วนระดับแนวคิด(Conceptual level) เป็นส่วนที่ประสานการใช้และแปลงความหมายและทำให้เกิดความเป็นอิสระระหว่างระดับภายนอกและระดับภายใน
จุดประสงค์ของสถาปัตยกรรม
3 ระดับ
เพื่อแยกมุมมองของผู้ใช้ฐานข้อมูลจากฐานข้อมูลทางกายภาพ เหตุผลในการแยกแต่ละระดับจากกันมีดังนี้
§ ผู้ใช้แต่ละคนสามารถเข้าถึงข้อมูลเดียวกันได้
แต่อาจจะมีมุมมองในการใช้งานต่างกันได้
โดยผู้ใช้แต่ละคนสามารถเปลี่ยนแปลงมุมมองข้อมูลของตนเองได้แต่ไม่กระทบกับมุมมองของผู้ใช้อื่น
§ ผู้ใช้จะไม่สามารถเข้าถึงข้อมูลในระดับกายภาพได้โดยตรง
§ ผู้บริหารฐานข้อมูลสามารถแก้ไขโครงสร้างในการจัดเก็บฐานข้อมูล
โดยไม่ส่งผลกระทบต่อมุมมองของผู้ใช้
§ โครงสร้างของระดับภายในของฐานข้อมูลจะไม่ได้รับผลกระทบจากการเปลี่ยนตำแหน่งในการจัดเก็บในระดับกายภาพ เช่น การเปลี่ยนหน่วยเก็บข้อมูล(storage device)ใหม่
§ ผู้บริการฐานข้อมูล(DBA) สามารถที่จะเปลี่ยนโครงสร้างระดับแนวคิดของฐานข้อมูลโดยไม่ส่งผลกระทบกับผู้ใช้ทุกคน
2.1.1
ระดับภายนอก(External level)
ระดับภายนอก เป็น
มุมมองของผู้ใช้ฐานข้อมูล
ในระดับนี้จะอธิบายส่วนของฐานข้อมูลที่เกี่ยวข้องกับการใช้งานของผู้ใช้แต่ละคน
ระดับภายนอก
ประกอบด้วย มุมมองภายนอกต่าง ๆ ที่แตกต่างกันของฐานข้อมูล
ซึ่งแต่ละมุมมองนั้นก็จะประกอบด้วยข้อมูลในลักษณะที่แต่ละคนสนใจหรือเกี่ยวข้องกับงานของตน
นอกจากนี้แต่ละมุมมองก็อาจจะมีการนำเสนอข้อมูลเดียวกันในลักษณะที่แตกต่างกัน ตัวอย่างเช่น
มุมมองของผู้ใช้คนหนึ่งแสดงข้อมูลวันที่ในรูปแบบ วัน , เดือน , ปี
ในขณะที่อีกมุมมองของผู้ใช้อีกคนแสดงข้อมูลเดียวกันในรูปแบบ ปี , เดือน ,
วัน
บางมุมมองก็อาจมีข้อมูลที่ได้จากข้อมูลอื่นหรือคำนวณจากข้อมูลอื่น
โดยที่ข้อมูลนั้นไม่จำเป็นต้องเก็บไว้ในฐานข้อมูลแต่จะสร้างขึ้นเมื่อต้องการใช้งานเท่านั้น
ตัวอย่างเช่น ข้อมูลอายุ เป็นข้อมูลที่คำนวณได้จาก วันเกิด
ซึ่งข้อมูลอายุนี้ไม่จำเป็นต้องเก็บไว้ในฐานข้อมูล
2.1.2
ระดับแนวคิด(Conceptual
level)
ระดับแนวคิด เป็น
มุมมองโดยรวมของฐานข้อมูล
ในระดับนี้อธิบายว่ามีข้อมูลอะไรที่เก็บในฐานข้อมูลและมีความสัมพันธ์ระหว่างข้อมูลอย่างไร
ระดับแนวคิดเป็นระดับที่ตรงกลางของสถาปัตยกรรม
3 ระดับ
ในระดับนี้ประกอบด้วยโครงสร้างทางตรรกะของฐานข้อมูลที่มองโดยผู้บริหารฐานข้อมูล(DBA)
เป็นมุมมองที่เป็นมุมมองโดยรวมของข้อมูลทั้งหมด
ซึ่งจะเป็นอิสระจากข้อจำกัดของการจัดเก็บข้อมูล
ในระดับแนวคิดนี้จะแสดง
§ เอนติตี้และแอททริบิวท์ทั้งหมด
และ ความสัมพันธ์ระหว่างกัน
§ ข้อบังคับของข้อมูล
§ ข้อมูลที่อธิบายข้อมูลของฐานข้อมูล
§ ข้อมูลในการรักษาความปลอดภัยและความคงสภาพ
ระดับแนวคิดจะรองรับมุมมองภายนอกแต่ละมุมมอง
โดยข้อมูลภายในฐานข้อมูลที่จะแสดงผ่านมุมมองภายนอกจะต้องผ่านระดับแนวคิด แต่ในระดับแนวคิดนี้ไม่ได้เก็บรายละเอียดในการจัดเก็บข้อมูล
ตัวอย่างเช่น การอธิบายเอนติตี้และแอททริบิวท์จะอธิบายถึงชนิดข้อมูล(เช่น integer , real ,
character เป็นต้น) และขนาด(ขนาดสูงสุดที่สามารถที่เก็บข้อมูลได้)
แต่ไม่ขึ้นกับข้อจำกัดในการจัดเก็บข้อมูล
2.1.3
ระดับภายใน(Internal level)
ระดับภายใน เป็น
การนำเสนอฐานข้อมูลในระดับกายภาพบนคอมพิวเตอร์
ในระดับนี้อธิบายว่าข้อมูลถูกจัดเก็บอย่างไรในฐานข้อมูล
ระดับภายในจะครอบคลุมการดำเนินการในระดับกายภาพของฐานข้อมูลเพื่อให้เกิดประสิทธิภาพสูงสุดในการประมวลผลและในการจัดเก็บข้อมูล
, ครอบคลุมโครงสร้างข้อมูล และโครงสร้างแฟ้มข้อมูลที่ใช้จัดเก็บข้อมูลในหน่วยเก็บข้อมูล
ซึ่งมีการประสานกับวิธีการเข้าถึงข้อมูล(เทคนิคในการจัดการแฟ้มเพื่อจัดเก็บและค้นคืนรายการข้อมูล)ของระบบปฏิบัติการในการวางข้อมูลในหน่วยเก็บข้อมูล
. สร้างดัชนี , ค้นคืนข้อมูล เป็นต้น
ระดับภายในมีความเกี่ยวข้องกับ
§ การจัดสรรพื้นที่การจัดเก็บข้อมูลและดัชนี
§ อธิบายรายการข้อมูลที่จะจัดเก็บ(ขนาดข้อมูล)
§ การวางรายการข้อมูล
§ เทคนิคการบีบอัดข้อมูลและเข้ารหัสข้อมูล
ระดับที่อยู่ข้างล่างถัดจาดระดับภายในคือ
ระดับกายภาพ(physical
level) ซึ่งจัดการโดยระบบปฏิบัติการภายใต้การควบคุมของระบบการจัดการฐานข้อมูล(DBMS)
ซึ่งระดับกายภาพนี้ไม่สามารถแยกชัดเจนจากระบบปฏิบัติการ ระบบการจัดการฐานข้อมูล(DBMS)บางระบบจะอาศัยความสามารถของวิธีการเข้าถึงข้อมูลของระบบปฏิบัติการ
2.1.4
เค้าร่างและการแปลงความหมาย(Schemas and Mapping)
สิ่งที่อธิบายภายรวมของฐานข้อมูลเรียกว่า
เค้าร่างฐานข้อมูล(database
schema) ในฐานข้อมูลมีเค้าร่างฐานข้อมูล
3 ประเภท ซึ่งถูกนิยามไว้ในแต่ละระดับของสถาปัตยกรรม ในระดับที่อยู่สูงสุด ซึ่งมีหลายเค้าร่างคือ เค้าร่างภายนอก(external
schema บางทีเรียกว่า subschema) ซึ่งสอดคล้องกับมุมมองที่แตกต่างกัน
ในระดับแนวคิดมี เค้าร่างแนวคิด(conceptual
schema) ซึ่งอธิบายเอนติตี้ , แอททริบิวท์
และความสัมพันธ์ร่วมกับข้อบังคับความคงสภาพของข้อมูล ในระดับที่อยู่ต่ำสุดของสถาปัตยกรรมมี เค้าร่างภายใน(Internal
schema) ซึ่งอธิบายแบบจำลองภายในของฐานข้อมูล
ซึ่งประกอบด้วย การนิยามการจัดเก็บรายการข้อมูล , วิธีการในการนำเสนอ ,
ฟิลด์ข้อมูล และเค้าร่างของดัชนี(Indexes)ที่ใช้
ในฐานข้อมูลหนึ่งระบบจะมีเค้าร่างแนวคิดและเค้าร่างภายในอย่างละ 1 เค้าร่างต่อ 1 ฐานข้อมูล
ระบบการจัดการฐานข้อมูล(DBMS)มีหน้าที่ในการแปลงความหมายระหว่างเค้าร่างทั้ง 3 ระดับ
โดยระบบการจัดการฐานข้อมูลจะตรวจสอบเค้าร่างภายนอกแต่ละเค้าร่างที่ผ่านมากจากเค้าร่างแนวคิด
และต้องใช้ข้อมูลในเค้าร่างแนวคิดเพื่อแปลงความหมายระหว่างเค้าร่างภายนอกและเค้าร่างภายใน เค้าร่างแนวคิดเกี่ยวข้องกับเค้าร่างภายในผ่าน การแปลงความหมายระดับแนวคิด/ระดับภายใน(conceptual/internal mapping) ทำให้ระบบการจัดการฐานข้อมูลสามารถค้นหารายการข้อมูลในหน่วยเก็บข้อมูลทางกายภาพมาประกอบเป็นรายการข้อมูลแบบตรรกะ(logical
record) ในเค้าร่างแนวคิด ร่วมกับข้อบังคับที่บังคับใช้กับรายการข้อมูลแบบตรรกะ
และเค้าร่างภายนอกเกี่ยวข้องกับเค้าร่างแนวคิดผ่าน การแปลงความหมายระดับภายนอก/ระดับแนวคิด(external/conceptual mapping) ทำให้ระบบการจัดการฐานข้อมูลแปลงชื่อในมุมมองผู้ใช้ที่ตรงกับส่วนที่อยู่ในเค้าร่างแนวคิด
จากรูปที่
2.2 มีมุมมองภายนอก(external
view) 2 มุมมอง ที่แสดงข้อมูลเกี่ยวกับพนักงาน
มุมมองแรก ประกอบด้วยข้อมูล รหัสพนักงาน(SNO) , ชื่อ(FName)
, นามสกุล(LName) , อายุ(Age) และ เงินเดือน(Salary) มุมมองที่ 2 ประกอบด้วยข้อมูล รหัสพนักงาน(staffNo) , นามสกุล(LName)
, รหัสสาขา(branceNo) ที่พนักงานทำงานอยู่
มุมมองภายนอกเหล่านี้สามารถรวมเข้าเป็นมุมมองแนวคิด 1 มุมมอง ในกระบวนการรวมมุมมอง จะมีข้อมูลที่ต่างคือ อายุ(Age) ซึ่งแปลงเป็น วันเกิด(DOB)
ระบบการจัดการฐานข้อมูลจะดูแลการแปลงความหมายระดับภายนอก/ระดับแนวคิด เช่น แปลงฟิลด์ SNO จากมุมมองแรกเป็นฟิลด์
staffNo ในมุมมองแนวคิด
และในระดับแนวคิดก็จะแปลงไปสู่ระดับภายใน ซึ่งจะอธิบายโครงสร้างทางกายภาพของรายการข้อมูลในระดับแนวคิด ในระดับนี้จะว่าการกำหนดโครงสร้างด้วยภาษาระดับสูง
โดยโครงสร้างนี้ประกอบด้วย ตัวชี้ , next
ซึ่งรายการของข้อมูลพนักงานมีการเชื่อมโยงทางกายภาพร่วมกันในรูปแบบโซ่ รายการฟิลด์ในระดับภายในแตกต่างจากระดับแนวคิด
ซึ่งระบบการจัดการฐานข้อมูลก็จะดูแลการแปลงความหมายระดับแนวคิด/ระดับภายใน
2.1.5
ความเป็นอิสระของข้อมูล(Data
independence)
จุดประสงค์หลักของสถาปัตยกรรม
3 ระดับคือ ความเป็นอิสระของข้อมูล
ซึ่งหมายถึง
ระดับที่อยู่ข้างบนจะไม่กระทบจากการเปลี่ยนแปลงในระดับล่าง แบ่งความเป็นอิสระของข้อมูลออกเป็น 2 ประเภท คือ
§ ความเป็นอิสระของข้อมูลทางตรรกะ(Logical data
independence) หมายถึง
การเปลี่ยนแปลงในระดับแนวคิดจะไม่ส่งผลกระทบต่อระดับภายนอก เช่น
การเพิ่มเอนติตี้ , แอททริบิวท์ และความสัมพันธ์
ซึ่งเป็นการเปลี่ยนแปลงในระดับแนวคิด จะไม่กระทบกับมุมมองภายนอก
หรือไม่ต้องเขียนโปรแกรมใหม่
§
ความเป็นอิสระของข้อมูลในระดับกายภาพ(Physical data
independence) หมายถึง การเปลี่ยนแปลงในระดับภายในไม่ส่งผลกระทบต่อระดับแนวคิด การเปลี่ยนแปลงในระดับภายในได้แก่
การใช้โครงสร้างแฟ้มข้อมูลใหม่ หรือโครงสร้างการจัดเก็บใหม่ , ใช้หน่วยเก็บข้อมูลแบบอื่น
, การแก้ไขดัชนีหรืออัลกอริธึมแบบแฮช ซึ่งการเปลี่ยนแปลงเหล่านี้จะไม่กระทบต่อระดับแนวคิดและระดับภายนอก
รูปที่ 2.3 แสดงให้เห็นถึงความเป็นอิสระของข้อมูลแต่ละประเภทที่เกิดขึ้นในสถาปัตยกรรมทั้ง
3 ระดับ
โครงสร้างพื้นฐานของแบบจำลองลำดับชั้น
ข้อดีของฐานข้อมูลแบบลำดับชั้น
ข้อเสียของแบบจำลองฐานข้อมูลแบบลำดับชั้น
ข้อดีของแบบจำลองฐานข้อมูลแบบเครือข่าย
ข้อเสียของแบบจำลองฐานข้อมูลแบบเครือข่าย
โครงสร้างพื้นฐาน
2.1
แบบจำลองข้อมูล(Data Models)
แบบจำลองข้อมูล(Data Model) หมายถึง แบบจำลองที่ใช้อธิบายและจัดการข้อมูล , ความสัมพันธ์ระหว่างข้อมูล
และข้อบังคับของข้อมูลในระบบ
แบบจำลองจะแสดงวัตถุและเหตุการณ์
และความสัมพันธ์ระหว่างกัน
แบบจำลองข้อมูลจะแสดงโครงสร้างของตัวเอง โดยมีหลักการพื้นฐานและสัญลักษณ์ที่ให้ผู้ออกแบบฐานข้อมูลและผู้ใช้สามารถสื่อสารแนวคิดในการออกแบบได้ตรงกัน
ในบทนี้จะแบ่งแบบจำลองข้อมูลออเป็น
3 ประเภทหลักๆ ได้แก่ แบบจำลองเชิงวัตถุ(object-based) , แบบจำลองเชิงรายการ(record-based) และแบบจำลองทางกายภาพ(Physical) โดย 2
ประเภทแรกใช้อธิบายข้อมูลในระดับแนวคิดและระดับภายนอก ส่วนประเภทที่ 3
ใช้อธิบายข้อมูลในระดับภายใน
2.1.1
แบบจำลองข้อมูลเชิงวัตถุ(Object-Based
Data Models)
แบบจำลองข้อมูลเชิงวัตถุใช้หลักการเกี่ยวกับ
เอนติตี้ , แอททริบิวท์ และความสัมพันธ์
โดย เอนติตี้(Entity) หมายถึง สิ่งต่างๆ ที่แตกต่างกัน(เช่น คน , สถานที่ , สิ่งของ , เหตุการณ์ เป็นต้น)
ที่ปรากฏขึ้นในฐานข้อมูล แอททริบิวท์(Attribute) เป็นคุณสมบัติที่อธิบายลักษณะของเอนติตี้ และความสัมพันธ์(Relationship) เป็น
ความสัมพันธ์ที่เกิดขึ้นระหว่างเอนติตี้
แบบจำลองฐานข้อมูลเชิงวัตถุประกอบด้วยแบบจำลองต่างๆ ดังนี้
§ Entity-Relationship
§ Semantic
§ Functional
§ Object-Oriented
แบบจำลอง Entity-Relationship
เป็นแบบจำลองที่รวมเอาเทคนิคในการออกแบบฐานข้อมูลที่นิยมใช้(จะกล่าวอย่างละเอียดในบทต่อไป) ส่วนแบบจำลอง Object-Oriented นั้นนอกจากจะนิยามเอนติตี้และแอททริบิวท์แล้วยังมีการนิยามสถานะ(state)
และ พฤติกรรม(Behavior)ของวัตถุ
ซึ่งวัตถุจะมีการซ่อนสถานะและพฤติกรรมไว้
2.1.2
แบบจำลองเชิงรายการ(Record-Based
Data Models)
ในแบบจำลองเชิงเรคคอร์ดนั้น
ฐานข้อมูลจะประกอบด้วย รายการข้อมูลที่กำหนดรูปแบบคงที่ไว้ที่แตกต่างกันแต่ละแบบ
โดยแต่ละแบบของรายการข้อมูลจะกำหนดจำนวนฟิลด์ไว้คงที่
และกำหนดขนาดข้อมูลของฟิลด์ไว้ด้วย
แบบจำลองเชิงรายการประกอบด้วย แบบจำลองข้อมูลเชิงสัพันธ์(Relational Data
Model) , แบบจำลองข้อมูลแบบเครือข่าย(Network Data Model) และ
2.3.2.1 แบบจำลองแบบลำดับชั้น(Hierarchical
Data Model)
คิดค้นโดยบริษัท North America
Rockwell ซึ่งเป็นบริษัทที่มีส่วนร่วมในโครงการสำรวจดวงจันทร์ด้วยยานอวกาศ
Apollo ซึ่งมีข้อมูลที่เกี่ยวข้องเป็นจำนวนมหาศาล
โดยข้อมูลที่เก็บในคอมพิวเตอร์มีการจัดการข้อมูลแบบแฟ้มข้อมูล ซึ่งทำให้เกิดความซ้ำซ้อนของข้อมูลเป็นจำนวนมาก
เมื่อบริษัท North America
Rockwell เริ่มต้นพัฒนาระบบฐานข้อมูลของตัวเองขึ้นมา
ก็พบว่าข้อมูลในเทปแม่เหล็กที่ได้เคยเก็บบันทึกมา ประมาณร้อยละ60 ของข้อมูลมีความซ้ำซ้อนกัน
จากปัญหาดังกล่าวบริษัท North America Rockwell จึงได้พัฒนาวิธีอื่น
ๆ เพื่อจัดการให้การจัดเก็บข้อมูลมีประสิทธิภาพมากขึ้น โดยอาศัยหลักการของฐานข้อมูล ที่มีชื่อว่า GUAM (Generalized Update Access Method)
ซึ่งมีหลักการที่ว่านำข้อมูลส่วนเล็กในแต่ละส่วนมากจัดรวมกันเป็น component
จนเป็น component ขนาดใหญ่ และเป็นcomponent
ที่ใหญ่ที่สุด
ในกลางยุค 60
บริษัท IBM ได้ร่วมมือกับบริษัท North America
Rockwell ขยายความสามารถของ GUAM
ให้มาแทนที่การเก็บข้อมูลด้วยเทปด้วยสื่อที่จัดเก็บข้อมูลที่ทันสมัยมากขึ้น
จากผลการร่วมมือกันระหว่าง
Rockwell-IBM
เป็นผลให้กลายเป็นที่รู้จักในนาม Information management
system(IMS) ทำให้ IMS กลายเป็นผู้นำในระบบฐานข้อมูลแบบลำดับชั้นของโลก
ในปี 70 และต้นปี 80
โครงสร้างพื้นฐานของแบบจำลองลำดับชั้น
เป็นโครงสร้างที่เป็นลักษณะ
คล้ายต้นไม้ที่มองจากล่างขึ้นบน(Upside-Down Tree)หรือต้นไม้กลับหัวดังรูปที่ 2.4
จะเก็บข้อมูลในรูปของ
segment ซึ่งเทียบเท่ากับ record ในระบบแฟ้มข้อมูล
ในลักษณะของโครงสร้างแบบ Tree แต่ละ Node จะหมายถึงแต่ละ segment
segment ที่อยู่ส่วนบนจะเปรียบเสมือนเป็นพ่อ-แม่(Parent segment)ของ segmentที่อยู่ในระดับต่ำกว่า ส่วน segment
ที่อยู่ระดับต่ำกว่าพ่อ-แม่เรียกว่าลูก(Child
segment) segment ที่อยู่ระดับบนสุดของต้นไม้เรียกว่า
Root segment จากรูปที่
2.4 กล่าวได้ว่า
A เป็น Root
segment และเป็น parent
segment ของ B และ C ในลักษณะเดียวกัน B เป็น parent
segmentของ D , E และ F ในขณะที่ D เป็น parent segment ของ I ในทางกลับกัน I เป็น child segment ของ D และ , E และ F เป็น child segment ของ B ซึ่ง B และ
C เป็น child segment ของ A เป็นต้น
สังเกตได้ว่า
โครงสร้างแบบลำดับชั้นในรูปที่ 2.4
สามารถแสดงความสัมพันธ์ของข้อมูลได้ดังนี้
-
parent
segment สามารถมี child segment ได้หลาย segment
-
child
segment แต่ละ segment
สัมพันธ์กับ parent segment ได้เพียง segment
เดียว ซึ่งถือว่าเป็นความสัมพันธ์แบบหนึ่งต่อกลุ่ม(One-to-Many)
ข้อดีของฐานข้อมูลแบบลำดับชั้น
1.
เนื่องจากข้อมูลทั้งหมดจะอยู่ในฐานข้อมูลร่วมกัน
ดังนั้นการใช้ข้อมูลร่วมกันจึงเป็นไปได้ในทางปฏิบัติ
และการรักษาความปลอดภัยก็สามารถควบคุมได้โดยระบบการจัดการฐานข้อมูล
2.
ระบบการจัดการฐานข้อมูลสามารถสร้างสภาวะที่เรียกว่าความอิสระของข้อมูล(Data Independence ) ทำให้การแก้ไขและบำรุงรักษาโปรแกรมที่เขียนขึ้นไม่มีผลต่อข้อมูล
3.
ความสัมพันธ์แบบแม่/ลูก(parent/child
relationship) ซึ่งจะเชื่อมโยงกันเสมอระหว่าง parent segment
กับ child segment จะทำให้ child segment อ้างถึง parent
segment ได้อย่างอัตโนมัติตลอดเวลา
ซึ่งเป็นการรักษากฏความคงสภาพของข้อมูล(database integrity)ได้
4.
แบบจำลองฐานข้อมูลแบบลำดับชั้นจะเป็นแบบจำลองที่มีประสิทธิภาพเมื่อฐานข้อมูลมีความสัมพันธ์แบบ
1:M
ปริมาณมากๆ และเมื่อผู้ใช้ต้องการรายการปรับปรุง(transaction)จำนวนมาก ตัวอย่างเช่นระบบบัญชีลูกค้าของธนาคาร คือ
-
ลูกค้าแต่ละคนสามารถที่จะทำรายการปรับปรุงได้หลาย
ๆ รายการ(ความสัมพันธ์แบบ 1:N)
-
รายการปรับปรุงบัญชีของลูกค้าก็จะเกี่ยวข้องกับการทำเดบิตหรือเครดิตอย่างใดอย่างหนึ่ง
ดังนั้นความสัมพันธ์พื้นฐานระหว่างบัญชีลูกค้ากับรายการปรับปรุงบัญชีจึงกำหนดคงที่
-
ธนาคารแต่ละแห่งก็จะมีบัญชีลูกค้าจำนวนมาก
ซึ่งแต่ละบัญชีก็จะมีรายการปรับปรุงบัญชีได้หลายรายการ
ซึ่งจำนวนของรายการปรับปรุงก็จะมีจำนวนมาก ดังนั้น
หลายๆธนาคารจึงปรับไปเป็นแบบจำลองข้อมูลแบบลำดับชั้น
ข้อเสียของแบบจำลองฐานข้อมูลแบบลำดับชั้น
1.
ถึงแม้ว่าระบบการจัดการฐานข้อมูลของแบบจำลองฐานข้อมูลแบบลำดับชั้นจะช่วยแบ่งเบานักออกแบบและนักเขียนโปรแกรมในปัญหาเรื่องความอิสระของข้อมูล
แต่ระบบจัดการฐานข้อมูลยังคงต้องการความรู้ในระดับกายภาพของการจัดเก็บข้อมูล ซึ่งในการเปลี่ยนแปลงโครงสร้างฐานข้อมูล
เช่นการเปลี่ยนตำแหน่งของ segment
ยังต้องเปลี่ยนในโปรแกรมประยุกต์ทั้งหมดที่ใช้ฐานข้อมูล
ดังนั้นในการออกแบบฐานข้อมูลในทางปฏิบัติจึงกลายเป็นเรื่องที่ซับซ้อน
2.
ความสัมพันธ์โดยทั่วไปส่วนใหญ่ไม่ได้เป็นแบบ
1:N
เสมอไป เช่น การลงทะเบียนในมหาวิทยาลัย
แต่ละวิชาสามารถมีนักศึกษาลงทะเบียนเรียนได้หลายคน
และนักศึกษาแต่ละคนก็สามารถลงทะเบียนเรียนได้หลายวิชาเข่นกัน
ซึ่งเป็นความสัมพันธ์แบบ M:N ซึ่งจะไม่สามารถใช้แบบจำลองฐานข้อมูลแบบลำดับชั้นกับกรณีนี้ได้
3.
ในโลกของความเป็นจริงยังมีความสัมพันธ์แบบลูก(child)มีความสัมพันธ์กับแม่หลายหลายแม่ เช่น ใบสั่งซื้อและสินค้า
4.
แบบจำลองฐานข้อมูลแบบลำดับชั้นมีการจัดการที่ซับซ้อนและขาดความยืดหยุ่น
เมื่อมีการเปลี่ยนแปลงเกิดขึ้นเช่นการเพิ่มความสัมพันธ์หรือเพิ่ม segment จะทำให้เกิดงานในการจัดการมีความซับซ้อน ถ้ามีการลบ segment หนึ่งออกไปจะทำให้
segment ลูกเกิดการสูญหายได้ ซึ่งเป็นผลทำให้เกิดความเสียหายที่คาดไม่ถึง
5.
การเขียนโปรแกรมประยุกต์ต้องใช้เวลานาน
เนื่องจากนักเขียนโปรแกรมต้องรู้รหัสโปรแกรมในการเข้าถึงและต้องมีความคุ้นเคยกับโครงสร้างฐานข้อมูล
2.3.2.2 แบบจำลองแบบเครือข่าย(Network Data
Model)
แบบจำลองฐานข้อมูลแบบเครือข่ายถูกสร้างขึ้นด้วยเหตุผลที่
เพื่อให้จัดการกับความสัมพันธ์ที่ซับซ้อนที่แบบจำลองฐานข้อมูลแบบลำดับชั้นทำไม่ได้ เพื่อปรับปรุงประสิทธิภาพของฐานข้อมูล
โครงสร้างพื้นฐานของแบบจำลองเครือข่าย
ในแบบจำลองแบบเครือข่ายความสัมพันธ์จะเรียกว่า
เซต(set) ในแต่ละเซตจะประกอบด้วยเรคคอร์ดอย่างน้อย
2 ประเภท คือ Owner และ member ซึ่งความสัมพันธ์ที่เกิดขึ้นอาจจะเป็นแบบ
1:N หรือ M:N
ซึ่งหมายถึง member สามารถมีความสัมพันธ์กับ
Owner ได้หลาย Owner ดังรูปที่ 2.5
จากรูปที่ 2.5
สามารถกล่าวได้ว่า
1.
พนักงานขายหนึ่งคนสามารถออกใบส่งของได้หลายใบ แต่ละใบจะมีชื่อพนักงานขายเพียงชื่อเดียว
2.
ลูกค้าคนหนึ่งอาจจะมีการซื้อสินค้าได้หลายครั้ง
จึงอาจจะมีใบส่งของหลายในบและแต่ละใบจะมีชื่อผู้ซื้อได้เพียงหนึ่งชื่อเท่านั้น
3.
ใบส่งของแต่ละใบอาจจะมีรายการส่งของในใบแจ้งได้หลายรายการ
4.
สินค้าหลาย ๆ
รายการสามารถไปปรากฏในใบส่งของได้หลายใบ
ข้อดีของแบบจำลองฐานข้อมูลแบบเครือข่าย
1.
มีความสัมพันธ์แบบ M:N ซึ่งง่ายในการดำเนินงานมากกว่าแบบจำลองฐานข้อมูลแบบลำดับชั้น
2.
ประเภทการเข้าถึงข้อมูลและความยืดหยุ่นมีมาก
ขึ้น โปรแกรมประยุกต์สามารถเข้าถึง owner record และ member record ทั้งหมดภายในเซตได้ ดังนั้น ถ้า member
record มี owner มากกว่า 1 สามารถเคลื่อนย้ายโดยตรงจาก owner record หนึ่งไปยังอีก
record ได้
3.
แบบจำลองฐานข้อมูลเครือข่ายสามารถรักษาความคงสภาพของข้อมูลได้
เนื่องจากผู้ใช้ต้องมีการนิยาม owner record และ member record ก่อน
4.
แบบจำลองเครือข่ายมีความเป็นอิสระของข้อมูลเพียงพอ
อย่างน้อยก็สามารถแยกโปรแกรมจากรายละเอียดทางกายภาพในการจัเก็บข้อมูลบางส่วนได้
ดังนั้นการเปลี่ยนคุณลักษณะของข้อมูลก็ไม่จำเป็นต้องเลี่ยนในโปรแกรมประยุกต์
ข้อเสียของแบบจำลองฐานข้อมูลแบบเครือข่าย
1.
แบบจำลองฐานข้อมูลแบบเครือข่ายมีความยากในการออกแบบและใช้งานพอสมควร
ซึ่งผู้ใช้ต้องมีความคุ้นเคยกับโครงสร้างฐานข้อมูลจึงจะทำให้การใช้ระบบมีประสิทธิภาพ
2.
มีความยากในการเปลี่ยนแปลงฐานข้อมูล
และการเปลี่ยนแปลงบางอย่างก็ไม่สามารถทำได้
ถ้าการเปลี่ยนแปลงนั้นกระทำกับโครงสร้างฐานข้อมูล ทุก subschema ที่นิยามขึ้นจะต้องได้รับการตรวจสอบความถูกต้องก่อนที่โปรแกรมประยุกต์จะสามารถเข้าถึงข้อมูลในฐานข้อมูลได้
กล่าวสั้นๆ คือ ถึงแม้แบบจำลองฐานข้อมูลเครือข่ายจะมีความเป็นอิสระของข้อมูล(data
independence)พอสมควร แต่ไม่มีความอิสระทางโครงสร้าง(structural
independence)
แบบจำลองฐานข้อมูลแบบเครือข่ายมีความซับซ้อนมากเป็นผลให้นักเขียนโปรแกรมต้องมีความคุ้นเคยกับโครงสร้างภายในเป็นอย่างดี
เพื่อการเข้าถึงข้อมูลในฐานข้อมูลได้อย่างมีประสิทธิภาพ
2.3.2.3 แบบจำลองแบบเชิงสัมพันธ์(Relational Data
Model)
แบบจำลองฐานข้อมูลเชิงสัมพันธ์คิดค้นโดย
E.F.
Codd (จาก IBM) ในปี 1970
เป็นแบบจำลองนำเสนอรูปแบบทางแนวคิดที่เข้าใจง่าย
และเป็นแบบจำลองที่นิยมใช้มากในปัจจุบัน
โครงสร้างพื้นฐาน
แบบจำลองฐานข้อมูลเชิงสัมพันธ์สามารถจัดการผ่านระบบการจัดการฐานข้อมูลเชิงสัมพันธ์(Relational
Database Management System: RDBMS) ซึ่งสามารถจัดการรายละเอียดทางกายภาพขอฐานข้อมูลที่ซับซ้อนได้อย่างมีประสิทธิภาพ
ซึ่งทำให้ผู้ใช้ฐานข้อมูลไม่ต้องมีความรู้ในทางกายภาพมากเท่าแบบจำลอง 2 แบบแรก
ในการเก็บข้อมูลจะจัดเก็บในลักษณะของตาราง(table) 2 มิติ ที่มีแถวและคอลัมน์ ซึ่งเรียกตารางที่เก็บข้อมูลว่า รีเลชัน(relation) ซึ่งในแต่ละรีเลชันจะเก็บข้อมูลที่มีความสัมพันธ์ในเรื่องเดียวกัน
เช่น ตารางลูกค้า (CUSTOMER table) ก็อาจจะเก็บข้อมูลรหัสพนักงานขายที่เกี่ยวข้องซึ่งจะเชื่อมดยงไปยังตารางของพนักงานขาย(AGENT
table) ดังรูปรูปที่ 2.6
ข้อดีของแบบจำลองฐานข้อมูลเชิงสัมพันธ์
1.
มีความเป็นอิสระทางโครงสร้าง(Structural
independence) เนื่องจากแบบจำลองฐานข้อมูลเชิงสัมพันธ์ไม่ต้องใช้ระบบนำทางการเข้าถึงข้อมูล(navigational
data access system) ดังนั้นนักออกแบบ,นักเขียนโปรแกรมและผู้ใช้จึงไม่มีความจำเป็นต้องรู้เส้นทางในการเข้าถึงข้อมูล
การเปลี่ยนแปลงโครงสร้างของฐานข้อมูลจึงไม่มีผลต่อการเข้าถึงข้อมูลของระบบการจัดการฐานข้อมูล
2.
ปรับปรุงแนวคิดให้เข้าใจง่ายขึ้น(Improved
conceptual simplicity) แบบจำลองฐานข้อมูลมีแนวคิดที่เข้าใจง่ายกว่าแบบจำลอง
2 แบบแรก
เนื่องจากผู้ใช้ไม่ต้องไปสนใจลักษณะทางกายภาพของการจัดเก็บข้อมูล แต่เน้นที่มุมมองทางตรรกะของฐานข้อมูล
3.
การออกแบบ,การดำเนินงาน,การจัดการและการใช้งานง่าย
เนื่องจากแบบจำลองฐานข้อมูลเชิงสัมพันธ์มีความเป็นอิสระทางโครงสร้าง(structural
independence) และมีความอิสระทางข้อมูล(data independence) จึงทำให้ง่ายต่อการออกแบบและจัดการฐานข้อมูล
4.
มีความสามารถในการแสดข้อมูลที่ต้องการได้ง่าย
โดยในแบบจำลองฐานข้อมูลเลิงสัมพันธ์มีภาษาที่ใช้ในการจัดการฐานข้อมูลที่เรียกว่า Structure Query
Language หรือ SQL ทำให้การจัดการข้อมูลมีความง่าย
5.
เป็นระบบการจัดการฐานข้อมูลที่มีประสิทธิภาพ RDBMS เป็นซอฟต์แวร์ในการจัดการฐานข้อมูลที่มีความซับซ้อนและมีประสิทธิภาพกว่า
DBMS ที่ใช้จัดการข้อมูลในแบบจำลอง 2
แบบแรก
ซึ่งสามารถซ่อนรายละเอียดทางด้านกายภาพที่ซับซ้อนจากการใช้งานของนักออกแบบและผู้ใช้ได้
ข้อเสียของแบบจำลองฐานข้อมูลเชิงสัมพันธ์
1.
มีการใช้ฮาร์ดแวร์และซอฟต์แวร์ที่สิ้นเปลือง
เป็นผลทำให้การทำงานช้ากว่าแบบจำลอง 2 แบบแรก
2.
เกิดปัญหาที่เรียกว่า หมู่เกาะสารสนเทศ(Islands of information problem) เนื่องจากการใช้งานที่ง่ายทำให้ผู้ใช้บางคนสามารถสร้างระดับของฐานข้อมูลย่อยส่วนตัวขึ้นมาได้ทำให้เกิดปัฐหาข้อมูลซ้ำซ้อนเช่นเดียวกับปัญหาของแฟ้มข้อมูล ทำให้การตรวจสอบความถูกต้องของข้อมูลทำได้ยาก
2.1.3
แบบจำลองทางกายภาพ(Physical Data
Model)
แบบจำลองข้อมูลทางกายภาพอธิบายว่าข้อมูลถูกจัดเก็บอย่างไรในคอมพิวเตอร์
แสดงข้อมูลเกี่ยวกับ โครงสร้างรายการข้อมูล , การจัดลำดับรายการข้อมูล
และเส้นทางการเข้าถึงข้อมูล แบบจำลองข้อมูลทางกายภาพมีไม่มากเท่าแบบจำลองทางตรรกะ
2.2
หน้าที่ของระบบการจัดการฐานข้อมูล(Function of DBMS)
ระบบการจัดการฐานข้อมูล(DBMS) มีหน้าที่ที่สำคัญคือ ประกันความคงสภาพ(integrity)และความถูกต้อง(consistency)
ของข้อมูลในฐานข้อมูล
ซึ่งการทำงานต่างๆของ DBMS จะกระทำผ่านคำสั่งการใช้งานของผู้ใช้
โดยผู้ใช้ไม่ต้องสนใจว่า DBMS จะทำอย่างไร ซึ่งสามารถสรุปหน้าที่การทำงานของ DBMS ได้ดังนี้
1.
จัดการพจนานุกรมของข้อมูล(Data dictionary
management) ระบบการจัดการฐานข้อมูลจะทำหน้าที่อธิบายความหมายของข้อมูลและความสัมพันธ์ของข้อมูลซึ่งจัดเก็บอยู่ใน
“พจนานุกรมข้อมูล(Data dictionary)” โดยที่โปรแกรมประยุกต์ต่าง ๆ
จะเข้าถึงข้อมูลที่อยู่ในฐานข้อมูลผ่านระบบการจัดการฐานข้อมูล แล้วระบบการจัดการฐานข้อมูลจะให้
พจนานุกรมข้อมูลเป็นผู้ตรวจสอบ โครงสร้างและความสัมพันธ์ของข้อมูล
2.
จัดการการจัดเก็บข้อมูล(Data storage management) ระบบการจัดการฐานข้อมูลจะสร้างโครงสร้างที่ซับซ้อนเพื่อจัดเก็บข้อมูลขึ้น
ซึ่งเป็นงานที่ยากในการกำหนดและเขียนโปรแกรมที่ต้องเกี่ยวข้องกับข้อมูลทางกายภาพ
ในระบบการจัดการฐานข้อมูลสมัยใหม่ได้เพิ่มความสามารถในการจัดเก็บความสัมพันธ์ของข้อมูล
, ฟอร์ม หรือ รายงาน,กฏในการตรวจสอบข้อมูล,การจัดเก็บข้อมูลแบบรูปภาพ เป็นต้น
3.
การแปลงข้อมูลและการนำเสนอข้อมูล(Data
transformation and presentation) ระบบการจัดการฐานข้อมูลจะทำหน้าที่แปลงข้อมูลที่รับเข้ามาให้อยู่ในรูปของโครงสร้างข้อมูลที่จะเก็บข้อมูล ดังนั้นระบบการจัดการฐานข้อมูลจะช่วยแบ่งเบาภาระในการจำแนกรูปแบบของข้อมูลทางตรรกะและรูปแบบข้อมูลทางกายภาพ
4.
การจัดการด้านความปลอดภัย(Security
management) ระบบการจัดการฐานข้อมูลจะสร้างระบบรักษาความปลอดภัยที่จัดการรักษาความปลอดภัยให้กับข้อมูลและสิทธิการใช้งานฐานข้อมูลของผู้ใช้แต่ละคน
5.
ควบคุมการเข้าใช้งานของผู้ใช้พร้อมกัน(Multiuser
accesss control)
ระบบการจัดการฐานข้อมูลจะสร้างโครงสร้างที่ซับซ้อนที่จะอนุญาตให้ผู้ใช้หลายคนเข้าถึงข้อมูลในฐานข้อมูลพร้อมกัน นอกจากนี้ยังจัดการในเรื่องการรักษาความคงสภาพของข้อมูลและความถูกต้องของข้อมูล โดยมีอัลกอริทึมที่ซับซ้อนในการตรวจสอบการใช้งานของผู้ใช้หลาย
ๆ คนที่เข้ามาทำงานพร้อมกัน
6.
การจัดการเรื่องการสำรองและกู้คืนข้อมูล(Backup and
recovery management) ระบบการจัดการฐานข้อมูลจะจัดเตรียมกระบวนการในการสำรองและกู้คืนข้อมูลในกรณีที่ฐานข้อมูลเกิดความเสียหายขึ้น
7.
การจัดการความคงสภาพของข้อมูล(Data integrity
management) ระบบการจัดการฐานข้อมูลจะสนับสนุนและบังคับให้เป็นไปตามกฏความคงสภาพของข้อมูล(Integrity
rule) เพื่อขจัดปัญหาในเรื่องข้อมูลไม่มีความคงสภาพ
8.
ภาษาในการเข้าถึงข้อมูลและส่วนประสานผู้ใช้ในโปรแกรมประยุกต์(Database access
languages and application programming interfaces) ระบบการจัดการฐานข้อมูลจะจัดเตรียมภาษาในการเข้าถึงข้อมูลโดยใช้ภาษาสอบถามข้อมูล(query
language) ซึ่งเป็นภาษาที่ใช้ในการจัดการกับข้อมูลในฐานข้อมูล
ทั้งการสร้าง, เพิ่ม,ลบและปรับปรุงข้อมูล