340 likes | 449 Views
สถาปัตยกรรมของฐานข้อมูล. ระบบฐานข้อมูล 3(2-2 -5 ). โครงสร้างแฟ้มข้อมูล (ทบทวน). ฟิลด์. เรคอร์ด. ไบต์. รหัสผู้ใช้ ชื่อ - นามสกุล เพศ ที่อยู่ เบอร์ติดต่อ วันเกิด B00514 สุวารี ใจสบาย ญ 34 คลองสาน 025478556 12/01/1977
E N D
สถาปัตยกรรมของฐานข้อมูลสถาปัตยกรรมของฐานข้อมูล ระบบฐานข้อมูล 3(2-2-5)
โครงสร้างแฟ้มข้อมูล (ทบทวน) ฟิลด์ เรคอร์ด ไบต์ รหัสผู้ใช้ ชื่อ - นามสกุล เพศ ที่อยู่ เบอร์ติดต่อ วันเกิด B00514 สุวารี ใจสบาย ญ 34 คลองสาน 025478556 12/01/1977 A00128 กนก ยินดีช 126 บางพลัด 026441255 09/07/1986 A01245 เพ็ญศรี สุขสมญ 49/2 จตุจักร 014544255 05/11/1971 C13244 บุญมี ยินดีช 66 ลาดพร้าว 066458554 26/04/1980 . . . . . . . . . . . . . . . . . ไฟล์
ศัพท์เทคนิคที่ควรทราบเกี่ยวกับฐานข้อมูลศัพท์เทคนิคที่ควรทราบเกี่ยวกับฐานข้อมูล ศัพท์เทคนิคศัพท์ทั่วไป • เอนทีตี (Entity),รีเลชั่น (Relation) ตาราง (Table) • ทูเพิล (Tuple) แถว (Row) หรือ Reccord • แอททริบิวต์ (Attribute) คอลัมน์ (Column), Field • คาร์ดินาลิตี้ (Cardinality) จำนวนแถว (Number of Rows) • คีย์หลัก (Primary Key) ค่าเอกลักษณ์ (Unique Identifier)
เอนทีตี (Entity) • ชื่อของวัตถุหรือสิ่งใดสิ่งหนึ่ง ที่จําเป็นในการจัดเก็บข้อมูล - คน เช่น นักศึกษา, ลูกค้า , อาจารย์ - สิ่งของ เช่น หนังสือ , วีดีโอ , สินค้า • วัตถุที่จัดเก็บข้อมูลสามารถบอกความแตกต่างได้ • ถูกสร้างขึ้นโดยชุดของแอททริบิวต์ (Attribute) • ประกอบด้วยแอททริบิวต์และทูเพิล (Tuple)
แอททริบิวต์ (Attribute) • รายละเอียดของข้อมูลในเอนทีตี • คุณสมบัติ หรือคุณลักษณะของเอนทีตี หรือความสัมพันธ์
เอนทีตี (ตาราง) ทูเพิล (เรคคอร์ด) Key หลัก ? แอททริบิวต์ (ฟิลด์)
ตารางที่ 2 เบอร์โทร ชื่อ-นามสกุล ที่อยู่ เบอร์ติดต่อ อีเมล์ ตารางที่ 3 เบอร์โทร ปัญหา แก้ไข ผู้รับผิดชอบ วันที่ เวลา ตารางที่ 1 เบอร์โทร เบอร์ปลายทาง เวลาเริ่มต้น เวลาสิ้นสุด วันที่ DATABASE
แผนกบัญชี แผนกประชาสัมพันธ์ ฝ่ายบริหาร DBMS Database system DATABASE
ระบบการจัดการฐานข้อมูลระบบการจัดการฐานข้อมูล Database management systems : DBMS • ซอฟท์แวร์ระบบชนิดหนึ่ง ที่ถูกสร้างขึ้นมาเพื่อจัดการ ข้อมูลในฐานข้อมูล เป็นตัวกลางระหว่างผู้ใช้กับฐานข้อมูล • ส่วนประกอบของDBMS • SQL (Structure Query Language) • โปรแกรมอำนวยความสะดวก (General Utilities) • โปรแกรมช่วยสร้างโปรแกรมประยุกต์และรายงาน • (Applicaton and Report Generators) • พจนานุกรมข้อมูล (Data Dictionary)
ระบบการจัดการฐานข้อมูลระบบการจัดการฐานข้อมูล Database management systems : DBMS ความสามารถเบื้องต้น • สร้างตารางข้อมูล • เพิ่ม ปรับปรุง เรียกค้นข้อมูล • เก็บรายละเอียดเกี่ยวกับข้อมูลไว้ใน data dictionary • มีระบบเสริมการทำงาน • มีระบบสำรองข้อมูล • สนับสนุนเครื่องมือการทำรายงาน
องค์ประกอบของระบบฐานข้อมูลองค์ประกอบของระบบฐานข้อมูล • ซอฟท์แวร์ • - โปรแกรมจัดการฐานข้อมูล ฮาร์ดแวร์ - หน่วยนำข้อมูลเข้า - หน่วยนำข้อมูลออก - หน่วยประมวลผลกลาง - หน่วยเก็บข้อมูลสำรอง - อุปกรณ์การสื่อสาร ข้อมูล ฐานข้อมูล • บุคลากร • - ผู้ใช้งาน • ผู้ควบคุมระบบ • ผู้พัฒนาโปรแกรม ขั้นตอนการดำเนินงาน - ขั้นตอนการปฏิบัติการของผู้ปฏิบัติงาน
สถาปัตยกรรมของระบบฐานข้อมูลสถาปัตยกรรมของระบบฐานข้อมูล ... วิว1 ระดับภายนอก วิว2 วิวn External level สคีมา (Schema) (Global logical view) ระดับแนวคิด Conceptual level Physical Storage of data ระดับภายใน Internal level
แนวคิดเกี่ยวกับสถาปัตยกรรมของระบบฐานข้อมูลแนวคิดเกี่ยวกับสถาปัตยกรรมของระบบฐานข้อมูล • เพื่อให้การดึงข้อมูลจากฐานข้อมูลได้รวดเร็วและมีประสิทธิภาพจำเป็นต้องออกแบบเทคนิคการจัดเก็บข้อมูลด้วยโครงสร้างที่ซับซ้อนขึ้น เนื่องจากผู้ใช้งานทั่วไปไม่ใช่ผู้ที่ฝึกฝนมาทางคอมพิวเตอร์ ดังนั้นจึงควรซ่อนรายละเอียดความซับซ้อนดังกล่าวเพื่อทำให้การติดต่อใช้งานง่ายและสะดวกขึ้น • ระบบฐานข้อมูลต้องทำให้ผู้ใช้งานแต่ละคนมองเห็นข้อมูลในระดับที่ตนต้องการกล่าวคือ ระบบจัดการฐานข้อมูลจะซ่อนรายละเอียดเกี่ยวกับการจัดการข้อมูลในระดับกายภาพ (โครงสร้างของฐานข้อมูล)
สถาปัตยกรรมของระบบฐานข้อมูลสถาปัตยกรรมของระบบฐานข้อมูล • กำหนดมาตรฐานโดย ANSI /SPARC(American National Standards Institute/System Planning and Requirements Committee) ในปี 1975 • สถาปัตยกรรมของฐานข้อมูลมี 3 ระดับ ประกอบด้วย • ระดับภายนอก (External level) • ระดับความคิด (Concept level) • ระดับภายใน (Internal level)
1.ระดับภายนอกหรือวิว(External Level) ระดับภายนอกจะเกี่ยวข้องกับผู้ใช้งานมากที่สุด ซึ่งจะเป็นส่วนที่แสดงข้อมูลสำหรับผู้ใช้งานในแต่ละรายไป จะไม่สามารถเข้าไปดูโครงสร้างของฐานข้อมูลได้ โดยผู้ใช้แต่ละคนสามารถเลือกข้อมูลที่ตนเองต้องการและสนใจเช่น นักศึกษาเข้าไปใช้งานเว็บไซต์ ของกองบริการการศึกษาเพื่อดูผลการเรียน เป็นต้น • หน้าต่างหรือวิว (view) ที่ผู้ใช้ภายนอกมีสิทธิเข้าไปใช้ได้ โดยแต่ละคนจะมีมุมมองต่างกัน • โปรแกรมจะมองเห็นโครงสร้างข้อมูลเพียงบางส่วนเท่านั้น • สคีมาระดับภายนอก (External Schema) เป็นการแสดงข้อมูลที่ถูกดึงมาจากฐานข้อมูลที่อยู่ในระดับแนวคิดเฉพาะส่วนที่ต้องการ
พนักงาน (User View 1) รหัสพนักงาน ชื่อ วันที่จ้าง เงินเดือน ตำแหน่ง รหัสแผนก MGRNO แผนก(User View2) รหัสแผนก ชื่อแผนก ที่ตั้ง โครงการ (User View3) รหัสโครงการ ชื่อโครงการ วันที่เริ่ม วันที่จบ งบประมาณ ทีมงาน(User View4) รหัสโครงการ รหัสพนักงาน จำนวนชั่วโมง 1.ระดับภายนอกหรือวิว (External Level, View) • เป็นระดับของข้อมูลที่เป็นภาพที่ผู้ใช้งานมองเห็น (View)เค้าร่างของข้อมูลในระดับนี้เกิดจากภาพและความต้องการของผู้ใช้งาน
2.ระดับแนวคิด (Conceptual Level) ระดับแนวคิดอาจเรียกอีกอย่างว่า โครงสร้างข้อมูลระดับลอจิคอล (logical)จะกล่าวถึงการออกแบบโครงสร้างของข้อมูล เช่น ข้อมูลที่จัดเก็บจะประกอบด้วยเอนทีตี้ใดบ้าง แต่ละเอนทิตี้ประกอบด้วยแอทริบิวท์ใด โครงสร้างระดับนี้จะมุ่งเน้นความสัมพันธ์ (relationship) หรือเรียกว่าแบบจำลองข้อมูล (data model) เป็นระดับที่จะอธิบายถึงว่า ข้อมูลอะไรที่จะจัดเก็บลงในฐานข้อมูลและมีความสัมพันธ์กันอย่างไร ใครที่สามารถเข้าไปใช้งานได้บ้าง ใช้งานได้ในระดับไหน โดยพิจารณาจากผู้ใช้ภายนอก (External Level) ว่าต้องการข้อมูลใดบ้าง
2.ระดับแนวคิด (Conceptual Level) • ประกอบด้วยเค้าร่างที่อธิบายถึง • ฐานข้อมูลมี Entity(Table)ใดบ้าง • โครงสร้างของข้อมูล • ความสัมพันธ์ของข้อมูล • กฎเกณฑ์และข้อจำกัดต่างๆโดยจะผ่านการวิเคราะห์จาก นักวิเคราะห์และออกแบบระบบ และผู้บริหารฐานข้อมูล (DBA)
ระดับแนวคิด (Conceptual Level) Employee Dep1 Dep2 Dep3
3. ระดับภายใน (Internal or Physical Level) ระดับภายในเป็นระดับที่เกี่ยวข้องกับการออกแบบการจัดเก็บข้อมูลของฐานข้อมูลในหน่วยความจำว่าจัดเก็บโดยวิธีใด ผู้ใช้ระดับภายนอก (External Level) จึงจะสามารถใช้งานฐานข้อมูลได้อย่างรวดเร็ว เป็นระดับที่เกี่ยวข้องกับผู้พัฒนาโปรแกรมหรือผู้พัฒนาระบบในระดับกายภาพ ผู้ออกแบบต้องคำนึงถึงการใช้อุปกรณ์และเทคโนโลยีในการเก็บข้อมูล การเข้าถึง วิธีการบำรุงรักษา
สถาปัตยกรรมของระบบฐานข้อมูลสถาปัตยกรรมของระบบฐานข้อมูล • การแบ่งโครงสร้างฐานข้อมูลออกเป็น 3 ระดับเป็นการแยกมุมมองเฉพาะของผู้ใช้งานออกจากวิธีการจัดเก็บข้อมูลจริงบนสื่อบันทึกข้อมูลมีเหตุผลสนับสนุนการแบ่งแยกดังกล่าวหลายประการดังนี้ • 1. ผู้ใช้งานแต่ละคนสามารถดึงข้อมูลเดียวกันจากฐานข้อมูลนำมาจัดโครงสร้างที่เหมาะสมกับการใช้งาน ของตนเอง การปรับเปลี่ยนโครงสร้างควรทำได้อย่างอิสระโดยไม่ส่งผลกระทบกับผู้ใช้งานคนอื่น ๆ • 2. ผู้ใช้งานไม่จำเป็นต้องไปยุ่งเกี่ยวหรือรับรู้รายละเอียดของการจัดการข้อมูลบนสื่อบันทึกข้อมูลว่าใช้เทคนิคอะไร
สถาปัตยกรรมของระบบฐานข้อมูลสถาปัตยกรรมของระบบฐานข้อมูล • 3. ผู้บริหารจัดการฐานข้อมูล (DBA) ต้องสามารถปรับเปลี่ยนโครงสร้างหรือนิยามของฐานข้อมูลโดยไม่ส่งผลกระทบต่อมุมมองเฉพาะของผู้ใช้งานทั่วไป และผู้ใช้งานทุก ๆ ระดับ • 4. โครงสร้างการจัดเก็บข้อมูลภายในของฐานข้อมูลจะไม่ถูกกระทบจากการเปลี่ยนแหล่งเก็บข้อมูล ตัวอย่างเช่น ย้ายหรือแบ่งข้อมูลไปเก็บบนอุปกรณ์บันทึกข้อมูลใหม่
สถาปัตยกรรมฐานข้อมูล วิวของผู้ใช้ 1 วิวของผู้ใช้ 2 External Level Conceptual Level เค้าร่างแนวคิด Internal Level เค้าร่างภายใน ฐานข้อมูล
ประโยชน์ของสถาปัตยกรรม 3 ระดับ • มุมมองข้อมูลของผู้ใช้งาน • ทำให้ผู้ใช้งานไม่ต้องสนใจว่าข้อมูลจะถูกเก็บอย่างไรในดิสค์ เมื่อต้องการข้อมูลก็สามารถอ้างถึงตารางและเขตข้อมูลนั้น ๆ ได้โดยตรง ซึ่ง DBMS จะทำหน้าที่ดูว่าข้อมูลที่ต้องการนั้นเก็บอยู่ ณ ตำแหน่งใด (track ใด cylinder ใด ในดิสค์ และทำการดึงข้อมูลนั้นจากดิสก์มาให้แก่ผู้ใช้) • ความเป็นอิสระกันของข้อมูล • การเปลี่ยนแปลงข้อมูลในระดับแนวคิดไม่มีผลกระทบกับโปรแกรมประยุกต์ที่ผู้ใช้เขียนขึ้นในระดับภายนอก • การเปลี่ยนแปลงวิธีการเก็บข้อมูลในสื่อ ไม่มีผลกระทบกับการเก็บข้อมูลระดับแนวคิด
สถาปัตยกรรมของระบบฐานข้อมูลสถาปัตยกรรมของระบบฐานข้อมูล • กล่าวโดยสรุประดับภายนอก (external level)เป็นระดับใกล้กับผู้ใช้งานมากที่สุด กล่าวคือเป็นการมองเห็นข้อมูลในแง่มุมเฉพาะของผู้ใช้งาน (User View) • ระดับภายใน (internal level)เป็นระดับใกล้กับการจัดเก็บข้อมูลทางกายภาพมากที่สุด กล่าวคือเป็นการมองโครงสร้างของข้อมูลสำหรับระบบจัดการฐานข้อมูล (DBMS) และระบบปฏิบัติการคอมพิวเตอร์ (Operating System)โครงสร้างระดับภายในเป็นโครงสร้างของข้อมูลที่จัดเก็บบนสื่อบันทึกข้อมูลรวมไปถึงการจัดการแฟ้มข้อมูล • ระดับแนวคิด (Conceptuallevel)เป็นระดับคั่นกลางระหว่างระดับทั้งสองโดยมีฟังก์ชั่นปรับเปลี่ยน (mapping) และมีความเป็นอิสระของข้อมูล (data independence) ระหว่างระดับภายนอกและระดับภายใน
Mapping • ในสถาปัตยกรรม ANSI/SPARC มุมมองที่มีต่อข้อมูลในสถาปัตยกรรมในระดับที่สูงกว่าสามารถที่จะถ่ายทอดมุมมองนั้นไปยังสถาปัตยกรรมในระดับที่ต่ำกว่าได้ เรียกว่า “การทำ Mapping” แบ่งเป็น 2 ลักษณะคือ • 1. Conceptual/Internal Mapping • 2. External/Conceptual Mapping
Mapping 1. Conceptual/Internal Mapping เป็นการถ่ายทอดมุมมองที่มีต่อข้อมูลจากระดับ Conceptual ไปยังระดับ Internal เพื่อนำโครงสร้างของข้อมูลต่างๆ ในระดับ Conceptual มากำหนดโครงสร้างของ Record และ Field ที่จะนำไปใช้จัดเก็บข้อมูล เช่นข้อมูลในระดับ Conceptual ถูกแสดงอย่างไรในระดับ Internal
Mapping 2. External/Conceptual Mapping เป็นการถ่ายทอดมุมมองที่มีต่อข้อมูลจากระดับ Externalไปยังระดับ Conceptual เพื่อกำหนดโครงสร้างของ Record และ Field ให้สามารถครอบคลุมความต้องการหรือมุมมองต่างๆ ของผู้ใช้ เช่น การแปลงข้อมูลระดับภายนอกเป็นตารางหรือแอททริบิวต์ต่างๆ
ความเป็นอิสระของข้อมูล (Data Independence) • เนื่องจากในระบบแฟ้มข้อมูล เมื่อมีการเปลี่ยนแปลงโครงสร้างทางกายภาพของแฟ้มข้อมูลใด จะต้องมีการเปลี่ยนแปลงโปรแกรมต่างๆ ที่เรียกใช้ข้อมูลในแฟ้มข้อมูลนั้นด้วย • เช่น เปลี่ยนแฟ้มข้อมูลพนักงาน จากเดิมเรียงลำดับตามชื่อมาเป็นตามรหัสพนักงานแทน ทำให้ต้องมีการแก้ไขโปรแกรมตามโครงสร้างที่เปลี่ยนแปลงไป ซึ่งการที่ข้อมูลและโปรแกรมไม่เป็นอิสระต่อกันนี้ เรียกว่า “Data Dependence”
ความเป็นอิสระของข้อมูล (Data Independence) • สถาปัตยกรรมของระบบฐานข้อมูลที่จัดแบ่งออกเป็น 3 ระดับ สามารถที่จะใช้อธิบายถึงความเป็นอิสระของข้อมูล ซึ่งเป็นจุดเด่นของระบบฐานข้อมูล คือเมื่อมีการเปลี่ยนแปลงโครงสร้างที่ระดับใดก็ตาม จะไม่มีผลกระทบทำให้ระดับที่อยู่เหนือกว่าต้องทำการเปลี่ยนแปลงโครงสร้างตามไปด้วยแบ่งออกเป็น 2 ประเภทคือ • 1. ความเป็นอิสระของข้อมูลในเชิงตรรกะ(Logical Data Independence) • 2. ความเป็นอิสระของข้อมูลในเชิงกายภาพ (Physical Data Independence)
ความเป็นอิสระของข้อมูล (Data Independence) • ความเป็นอิสระของข้อมูลในเชิงตรรกะ (Logical Data Independence)เป็นความอิสระของข้อมูลในระดับแนวคิดกับระดับภายนอก นั่นคือถ้ามีการเปลี่ยนแปลงข้อมูลในระดับแนวคิดจะไม่มีผลต่อระดับภายนอก • ความเป็นอิสระของข้อมูลในเชิงกายภาพ (Physical Data Independence)เป็นความอิสระของข้อมูลในระดับภายในกับระดับแนวคิด นั่นคือถ้ามีปรับปรุงเค้าร่างในระดับภายในโดยจะกระทบต่อระดับภายแนวคิดและระดับภายนอก
ความเป็นอิสระของข้อมูลความเป็นอิสระของข้อมูล ผู้ใช้ 1 ผู้ใช้ 2 ผู้ใช้ 3 ภาษา COBOL ภาษา PASCAL ภาษา SQL โครงสร้างระดับภายนอก ข้อมูลระดับภายนอก ข้อมูลระดับภายนอก DBMS โครงสร้างระดับหลักการ ข้อมูลระดับหลักการ โครงสร้างระดับภายใน