รายวิชาการจัดการฐานข้อมูล (Database Management System) ง30250 สำหรับใช้เป็นสื่อการสอน ยินดีต้อนรับนักเรียนทุกคนนะค่ะ โดย อ.พรหมพร เพิ่มพูล

วันพฤหัสบดีที่ 20 มิถุนายน พ.ศ. 2556

หน่วยการเรียนรู้ที่ 2 สภาพแวดล้อมของฐานข้อมูล (Database Environment)


หน่วยการเรียนรู้ที่ 2

สภาพแวดล้อมของฐานข้อมูล (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)  มุมมองที่ ประกอบด้วยข้อมูล รหัสพนักงาน(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 และ ในลักษณะเดียวกัน  B เป็น parent segmentของ D , E และ ในขณะที่ D เป็น parent segment ของ ในทางกลับกัน 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) ซึ่งเป็นภาษาที่ใช้ในการจัดการกับข้อมูลในฐานข้อมูล ทั้งการสร้าง, เพิ่ม,ลบและปรับปรุงข้อมูล







                                   

ไม่มีความคิดเห็น:

แสดงความคิดเห็น