2110422 การออกแบบระบบการจัดการฐานขอมูล ภาควิชาวิศวกรรมคอมพิวเตอร คณะวิศวกรรมศาสตร จุฬาลงกรณมหาวิทยาลัย
2-1
บทที่ 2* แนวคิดและสถาปตยกรรมของระบบฐานขอมูล Database System Concepts and Architecture วัตถุประสงค 1. เพื่อใหทราบถึงวิวัฒนาการของระบบฐานขอมูล 2. เพื่อใหรูจักแบบจําลองขอมูล 3. เพื่อใหมีความเขาใจในเรื่องของสถาปตยกรรมขอมูล 4. เพื่อใหรูจักภาษาที่ใชในการจัดการฐานขอมูล 5. เพื่อใหรูจัก DBMS ประเภทตางๆ
2.1
วิวัฒนาการของระบบฐานขอมูล วิวัฒนาการของระบบฐานขอมูลนั้นไดรับการพัฒนาจากระบบขนาดใหญ มาใชการออกแบบเปนสวนๆ (Modular design) โดยสถาปตยกรรมลูกขาย/แมขาย (Client/Server) จากการใชคอมพิวเตอรเมนเฟรมขนาดใหญเปนศูนย รวม มาเปนการใชคอมพิวเตอรสวนบุคคลที่เชื่อตอกันผานเครือขายไปยังเครื่องแมขาย (Server machine) ประเภทตางๆ โดยสถาปตยกรรมของ DBMS แบบลูกขาย/แมขายขั้นพื้นฐาน (Basic Client/Server DBMS) นั้น ประกอบดวย 2 สวน คือ • สวนลูกขาย (Client Module) มีหนาที่ในการสั่งประมวลผล (Run) โปรแกรมแอปพลิเคชัน รวมทั้งมีสวน ติดตอกับผูใช (User interface) ในการเขาถึงฐานขอมูล • สวนแมขาย (Server Module) มีหนาที่ในการจัดการกับหนวยเก็บขอมูล การเขาถึงขอมูล และการคนหา ขอมูล
2.2
แบบจําลองขอมูล (Data Model) • •
แบบจําลองขอมูล (Data Model) คือกลุมของแนวคิดที่ใชอธิบายโครงสรางฐานขอมูล (ชนิดของขอมูลและ ความสัมพันธ) และขอบังคับ (Constraint) ตางๆที่ฐานขอมูลตองยึดถือ การดําเนินการบนแบบจําลองฐานขอมูล (Data Model Operations) คือ การดําเนินการ (Operation) ในการระบุการคนฐานขอมูล และการปรับปรุง โดยอางอิงถึงแนวคิดของ แบบจําลองขอมูล โดยการดําเนินการ (Operation) บนแบบจําลองขอมูลนั้น อาจประกอบดวย - การดําเนินการขั้นพื้นฐาน (Basic operation) เชน แทรก ลบ แกไข และสืบคน เปนตน - การดําเนินการตามที่ผูใชระบุ (User-defined operation) เชน COMPUTE_GPA for STUDENT เปนตน
2.2.1 ประเภทของแบบจําลองขอมูล •
แบบจําลองขอมูลในระดับแนวคิด (Conceptual data model) เปนแบบจําลองระดับสูง (High-level) หรือที่เรียกวาเครือขายความหมาย (Semantic) โดย แบบจําลองนี้จะใหแนวคิดที่ใกลเคียงกับการรับรูขอมูลของผูใชทั่วไป ซึ่งมักเรียกวา Entity-based หรือ
* อางอิงจากบทที่ 2 ของเอกสารอางอิง [1]
2110422 การออกแบบระบบการจัดการฐานขอมูล ภาควิชาวิศวกรรมคอมพิวเตอร คณะวิศวกรรมศาสตร จุฬาลงกรณมหาวิทยาลัย
•
•
2-2
Object-based data models โดยใหแนวคิดเกี่ยวกับเอนทิตี (Entity) คุณสมบัติของเอนทิตี (Attribute) และความสัมพันธ (Relationship) ที่เชื่อมระหวางเอนทิตีตางๆ แบบจําลองขอมูลในระดับกายภาพ (Physical data model) เปนแบบจําลองระดับต่ํา (Low- level) หรือระดับภายใน (Internal) โดยแบบจําลองนี้ใหแนวคิดที่
อธิบายรายละเอียดในการจัดเก็บขอมูลลงในคอมพิวเตอร แบบจําลองขอมูลในระดับปฏิบัติการ (Implementation or Representational data model) แบบจําลองนี้ใหแนวคิดที่อยูกึ่งกลางระหวาง 2 แบบแรก โดยปรับสมดุลใหกับมุมมองของผูใชรายละเอียด เกี่ยวกับหนวยเก็บขอมูลของคอมพิวเตอร
2.2.2 Schema และ Instant • • • •
เคารางฐานขอมูล (Database Schema) คือ นิยามหรือคําบรรยาย (Description) ของฐานขอมูล ซึ่ง ประกอบดวย นิยามโครงสรางฐานขอมูล และขอบังคับตางๆที่ฐานขอมูลควรยึดไว แผนภาพเคาราง (Schema Diagram) คือแผนภาพแสดงเคารางฐานขอมูล (Database schema) Schema construct คือสวนประกอบของเคาราง (Schema) หรือวัตถุในเคาราง เชน STUDENT, COURSE เปนตน Database Instant คือขอมูลจริงที่เก็บไวในฐานขอมูล ณ เวลาใดเวลาหนึ่ง หรืออาจเรียกวา สถานะ ฐานขอมูล (Database State) หรือ Occcurrence
รูปที่ 2.1 แผนภาพเคาราง (Schema diagram)
เคารางฐานขอมูล (Database Schema) และ สถานะฐานขอมูล (Database State) • สถานะฐานขอมูล (Database State) หมายถึง เนื้อหาของฐานขอมูลในชวงเวลาใดเวลาหนึ่ง • สถานะฐานขอมูลเริ่มตน (Initial Database State) คือ สถานะฐานขอมูลเมื่อถูกโหลด • Valid State หมายถึงสถานะที่เปนไปตามโครงสรางและขอบังคับของฐานขอมูล • ลักษณะพิเศษ (Distinction) - เคารางฐานขอมูล (Database Schema) นั้นมีการเปลี่ยนแปลงนอยครั้งมาก ในขณะที่สถานะ ขอมูล (Database State) จะเปลี่ยนแปลงไปทุกครั้งที่มีการปรับปรุงแกไขฐานขอมูล - เคาราง (Schema) อาจถูกเรียกวา Intention ในขณะที่ สถานะ (State) ถูกเรียกวา Extension
2110422 การออกแบบระบบการจัดการฐานขอมูล ภาควิชาวิศวกรรมคอมพิวเตอร คณะวิศวกรรมศาสตร จุฬาลงกรณมหาวิทยาลัย
2.3
2-3
สถาปตยกรรม Three-Schema และการไมขึ้นตอกันของ ขอมูล (Data Independence) 2.3.1 สถาปตยกรรมแบบ Three-Schema •
ถูกนําเสนอขึ้นเพื่อสนับสนุนคุณลักษณะตางๆของ DBMS ดังนี้ - การไมขึ้นตอกันระหวางโปรแกรมและขอมูล (Program-data independence) และการไมขึ้นตอ กันระหวางโปรแกรมและการดําเนินการ (Program-operation independence) - สนับสนุนมุมมองที่หลากหลาย (Multiple views) ของขอมูล - ใช Catalog ในการเก็บนิยามฐานขอมูล (เคาราง)
•
เคารางระดับภายใน (Internal schema) - บรรยายโครงสรางหนวยเก็บขอมูลทางกายภาพของฐานขอมูล - ใชแบบจําลองขอมูลในระดับกายภาพ (Physical data model) - บรรยายรายละเอียดโดยสมบูรณเกี่ยวกับหนวยเก็บขอมูลและเสนทางการเขาถึงฐานขอมูล เคารางระดับแนวคิด (Conceptual schema) - บรรยายโครงสรางของฐานขอมูลทั้งหมด - ซอนรายละเอียดของโครงสรางหนวยเก็บขอมูลทางกายภาพ - เนนการบรรยายเอนทิตี ชนิดขอมูล (Data type) ความสัมพันธ (Relationship) การดําเนินการ (Operation) และขอบังคับ (Constraint) ตางๆ - ใชแบบจําลองขอมูลในระดับแนวคิด (Conceptual data model) หรือระดับปฏิบัติการ
รูปที่ 2.2 สถาปตยกรรม Three-Schema
•
(Implementation data model) •
•
•
เคารางระดับภายนอก (External schema) - เปนเคารางที่อยูในระดับภายนอก เพื่อบรรยายมุมมองที่หลากหลายของผูใช - โดยทั่วไปแลวมักใชแบบจําลองขอมูลแบบ representational (Representational data model) DBMs จะทําการแปลงความตองการ (Request) ที่ระบุไวที่เคารางระดับภายนอก (External schema) ไปเปนความตองการระดับแนวคิด (Conceptual schema) และแปลงเปนความตองการใน ระดับภายใน (Internal schema) เพื่อดําเนินการกับฐานขอมูลที่ถูกเก็บไวตอไป กระบวนการในการแปลงความตองการและผลที่ไดระหวางระดับ จะถูกเรียกวา การแปลง (Mapping)
2110422 การออกแบบระบบการจัดการฐานขอมูล ภาควิชาวิศวกรรมคอมพิวเตอร คณะวิศวกรรมศาสตร จุฬาลงกรณมหาวิทยาลัย
2-4
2.3.2 ความเปนอิสระของขอมูล (Data Independence) •
ความเปนอิสระของขอมูลทางตรรก (Logical Data Independence) คือ ความสามารถในการเปลี่ยนแปลงเคารางระดับแนวคิด (Conceptual schema) โดยไมจําเปนตอง ทําการเปลี่ยนแปลงเคารางระดับภายนอก (External schema) และโปรแกรมแอปพลิเคชัน โดยสิ่งที่ ตองทําการเปลี่ยนแปลงมีเพียงแต นิยามมุมมอง (View definition) และการแปลง (Mapping) เทานั้น ดังนั้นจึงสามารถทําการเปลี่ยนแปลงขอบังคับ (Constraint) ในเคารางระดับแนวคิด (Conceptual schema) โดยไมสงผลกระทบเคารางระดับภายนอก (External schema) หรือ โปรแกรมแอปพลิเคชัน • ความเปนอิสระของขอมูลทางกายภาพ (Physical Data Independence) คือ ความสามารถในการเปลี่ยนแปลงเคารางระดับภายใน (Internal schema) โดยไมจําเปนตอง เปลี่ยนแปลงเคารางระดับแนวคิด (Conceptual schema) รวมถึงไมจําเปนตองเปลี่ยนแปลงเคาราง ระดับภายนอก (External schema) ดวยเชนกัน ซึ่งการเปลี่ยนแปลงเคารางระดับภายใน (Internal schema) นั้น อาจมีความจําเปน เนื่องจากเราจําเปนตองทําการปรับปรุงไฟลทางกายภาพ (Physical file) บางสวนใหม เชน กําหนดโครงสรางในการเขาถึงขอมูลเพิ่มเติม เปนตน สําหรับ DBMS ที่สนับสนุนความเปนอิสระของขอมูล (Data-independence) แลว เมื่อมีการเปลี่ยนแปลงเคา ราง (Schema) ที่ระดับใดๆ สิ่งที่จําเปนจะตองเปลี่ยนแปลงมีเพียงแตการแปลง (Mapping) ระหวางเคาราง ดังกลาวกับเคารางในระดับถัดไปที่สูงกวาเทานั้น โดยเคารางในระดับที่สูงกวาจะไมมีการเปลี่ยนแปลง ดังนั้น โปรแกรมแอปพลิเคชันจึงไมจําเปนตองเปลี่ยนแปลง เพราะโปรแกรมแอปพลิเคชันนั้นอยูที่เคารางระดับภายนอก (External schema)
2.4
ภาษาฐานขอมูล (Database language) และสวนติดตอ ผูใช (Interface) 2.4.1 ภาษา DBMS •
•
•
•
ภาษาสําหรับนิยามขอมูล (Data Definition Language: DDL) เปนภาษาที่ผูบริหารฐานขอมูล (DBA) และผูออกแบบฐานขอมูลใชในการกําหนดเคารางระดับแนวคิด (Conceptual schema) ของฐานขอมูล ซึ่งใน DBMS สวนใหญก็มักใช DDL ในการกําหนดเคาราง ระดับภายใน (Internal schema) และภายนอก (External schema) ดวยเชนกัน นอกจากนี้ ในอีก หลายๆ DBMS ยังมีการใชภาษา Storage definition language (SDL) และ View definition language (VDL) ในการกําหนดเคารางภายในและภายนอกอีกดวย ภาษาสําหรับการใชขอมูล (Data Manipulation Language: DML) ใชในการระบุการสืบคนฐานขอมูลตางๆ เชน การลบ การแทรก เปนตน โดยสามารถนําคําสั่ง DML (DML Commands) ไปฝงติดไวกับ general-purpose programming language เชน COBOL, C, หรือภาษาแอสเซมบลี ซึ่งภาษาเหลานี้จะถูกเรียกวา Host language สวน DML จะถูกเรียกวา Data sublanguage นอกจากนี้ยังมี DML ในรูปแบบ stand-alone ที่สามารถนํามาใชโดยตรง ซึ่ง เรียกวา ภาษาสืบคน (Query language) DML สามารถแบงออกเน 2 ประเภทหลักๆ คือ - DML ระดับสูง (High-level) หรือ Non-procedural language เชน SQL โดยอาจเรียกวา Set-at-a-time หรือ Set-oriented DML ซึ่งจะใชในระบุขอมูลที่ตองการสืบคนมากกวาวิธีการ ในการสืบคน - DML ระดับต่ํา (Low-level) หรือ Procedural language หรือที่เรียกวา Record-at-a-time ซึ่งผูใชจะตองระบุวิธีในการสืบคนขอมูล และตองใช construct เชน การวนลูป (Looping) เปน ตน โดย DML ประเภทนี้จําเปนตองฝงติดไวกับ General-purpose programming language ผูใชปลายทางแบบ Casual (Casual end user) มักจะใชภาษาสืบคนระดับสูง (High-level query language)
2110422 การออกแบบระบบการจัดการฐานขอมูล ภาควิชาวิศวกรรมคอมพิวเตอร คณะวิศวกรรมศาสตร จุฬาลงกรณมหาวิทยาลัย •
2-5
ผูใชปลายทางแบบ Naïve และ parametric (Naïve and Parametric user) จะใชสวนติดตอผูใชที่ เขาใจงาย (User-friendly interface) ในการติดตอและจัดการกับฐานขอมูล
2.4.2 สวนติดตอผูใช (Interface) ของ DBMS • •
•
•
2.5
Stand-alone query language interface สวนติดตอสําหรับผูพัฒนาโปรแกรม (Programmer interface) สําหรับฝงยึด DML ลงในภาษา โปรแกรม (Programming language) ซึ่งจะตองทําการคอมไพลลวงหนา (pre-compile) Procedure (Subroutine) Call Approach สวนติดตอที่เปนมิตรกับผูใช (User-friendly interface) โดยอาจมีรูปแบบตางๆ เชน - รูปแบบตัวเลือก (Menu) มีความนิยมมากในการคนหา (Browsing) บนเว็บ - รูปแบบฟอรม (Form) ซึ่งถูกออกแบบมาเพื่อผูใชแบบ Naïve เชน พนักงานรับและจายเงินใน
ธนาคาร พนักงานสํารองที่ เปนตน - รูปแบบกราฟก (Graphic) เชน การชี้และคลิ๊ก ลากและปลอย เปนตน - ภาษาธรรมชาติ (Natural language) ซึ่งมักใชภาษาอังกฤษ - หรืออาจเปนใชรูปแบบผสม ซึ่งเปนการผสมรูปแบบตางๆขางตนเขาดวยกัน สวนติดตอผูใชของ DBMS อื่นๆ - ใชคําพูด (Speech) ในการสงและรับขอมูล (Input/Output) - ใช Web browser เปนสวนติดตอ (Interface) - สวนติดตอแบบ Parametric โดยใชคียฟงกชัน เชน พนักงานรับและจายเงินในธนาคาร - สวนติดตอสําหรับผูบริหารฐานขอมูล (DBA) โดยจะมีคําสั่งพิเศษสําหรับ DBA เพื่อใชในการ สรางบัญชีผูใช (Account) และกําหนดสิทธิ์ในการเขาถึงฐานขอมูล กําหนดพารามิเตอรของระบบ และเปลี่ยนแปลงเคาราง (Schema) หรือเสนทางในการเขาถึงฐานขอมูล (Access path)
สภาพแวดลอมของระบบฐานขอมูล (Database System Environment) 2.5.1 สวนประกอบของ DBMS และสวนติดตอกับผูใช (Interface) ดังแสดงในภาพ
รูปที่ 2.3 สวนประกอบของ DBMS และสวน ติดตอกับผูใช (Interface)
2110422 การออกแบบระบบการจัดการฐานขอมูล ภาควิชาวิศวกรรมคอมพิวเตอร คณะวิศวกรรมศาสตร จุฬาลงกรณมหาวิทยาลัย
2-6
2.5.2 การใชงานระบบฐานขอมูล (Database System Utilities) มีฟงกชันตางๆดังตอไปนี้ • โหลดขอมูลที่เก็บอยูในไฟลลงในฐานขอมูล รวมถึงเครื่องมือในการแปลงขอมูล (Data conversion tool) • • • • •
ทําการสํารองขอมูล (Back up) ลงบนเทปเปนระยะๆ ปรับ (Reorganizing) โครงสรางไฟลฐานขอมูลใหม สรางรายงาน (Report generation) ตรวจสอบการทํางาน (Performance monitoring) และรวบรวมสถิตกิ ารใชฐานขอมูล ฟงกชันอื่นๆ เชน การเรียง (Sorting) การดูแลตรวจสอบผูใช (User monitoring) การบีบอัดขอมูล (Data compression) เปนตน
2.5.3 เครื่องมือ (Tool) อื่นๆ •
•
2.6
พจนานุกรมขอมูล (Data Dictionary) หรือคลังขอมูล (Data Repository) ใชในการเก็บนิยามเคาราง (Schema description) และขอมูลอื่นๆ เชน การออกแบบ (Design decision) นิยามโปรแกรมแอปพลิเคชัน (Application program description) ขอมูลผูใช (User information) มาตรฐานการใชงาน (Usage standard) เปนตน โดยแบงเปนพจนานุกรมขอมูลชนิด active (Active data dictionary) ซึ่งสามารถเขาถึงโดยซอฟตแวร DBMS และผูบริหารฐานขอมูล (DBA) และพจนานุกรมชนิด passive (Passive data dictionary) ซึ่งสามาถเขาถึงโดยผูบริหาร ฐานขอมูล (DBA) เทานั้น สภาพแวดลอมการพัฒนาแอปพลิเคชัน (Application Development Environments) และ Computer-aided software engineering : CASE เชน Power buider (Sybase), JBuider (Borland) เปนตน
สถาปตยกรรมแบบรวม (Centralized) และแบบลูกขาย/ แมขาย (Client/Server) สําหรับ DBMS • • • •
สถาปตยกรรม DBMS แบบรวม (Centralized DBMSs Architectures) สถาปตยกรรมแบบลูกขาย/แมขาย ขั้นพื้นฐาน (Basic Client/Server Architectures) สถาปตยกรรมแบบลูกขาย/แมขาย 2 ชั้น (Two-Tier Client/Server Architecture) สถาปตยกรรมแบบลูกขาย/แมขาย 3 ชั้น (Three-Tier Client/Server Architecture)
2.6.1 สถาปตยกรรม DBMS แบบรวม (Centralized DBMSs Architectures) สถาปตยกรรมสําหรับ DBMS นั้น พัฒนาไปตามทิศทางสถาปตยกรรมระบบคอมพิวเตอรทั่วไป ซึ่งในชวงแรกนั้น ใชคอมพิวเตอรเมนเฟรมในกระบวนการฟงกชันทั้งหมดของระบบ โดยรวบรวมทุกอยางไวในระบบเดียว เชน ซอฟตแวร DBMS ฮารดแวร โปรแกรมแอปพลิเคชัน และซอฟตแวรสวนติดตอกับผูใช
2110422 การออกแบบระบบการจัดการฐานขอมูล ภาควิชาวิศวกรรมคอมพิวเตอร คณะวิศวกรรมศาสตร จุฬาลงกรณมหาวิทยาลัย
2-7
รูปที่ 2.4 ลักษณะทาง กายภาพของ สถาปตยกรรมแบบ รวม (Physical Centralized Architecture)
2.6.2 สถาปตยกรรมแบบลูกขาย/แมขาย ขั้นพื้นฐาน (Basic Client/Server Architectures) ใชแนวคิดในการสรางแมขายพิเศษ ที่มีฟงกชันพิเศษตางๆ เชน การบริการไฟล (File server) บริการพิมพเอกสาร (Printer server) แมขายเว็บ (Web server) และ E-mail server เปนตน สวนเครื่องลูกขาย (Client) จะ ประกอบดวยสวนติดตอกับผูใชที่เหมาะสมในการเขาถึงและใชทรัพยากรของเครื่องแมขาย ซึ่งเครื่องลูกขายอาจเปน เครื่องที่ไมมีดิสก หรือเปนคอมพิวเตอรสวนบุคคล (PC) หรือเปนเวิรกสเตชัน (Workstation) ที่ติดตั้งเฉพาะ ซอฟตแวรลูกขาย โดยเครื่องลูกขายจะถูกเชื่อมตอสูเครื่องแมขายผานทางระบบเครือขาย (Network) เชน LAN (Local Area Network) เครือขายไรสาย (Wireless Network) เปนตน
2.6.3 สถาปตยกรรมแบบลูกขาย/แมขาย 2 ชั้น (Two-Tier Client/Server Architecture) โปรแกรมติดตอผูใช (User interface program) และโปรแกรมแอปพลิเคชัน สามารถปฏิบัติการบนฝงของเครื่อง ลูกขาย (Client) โดยการเขาถึง DBMS จะมีการใช ODBC (Open Database Connectivity) ซึ่งมีสวน ติดตอเอพีไอ (Application program interface: API) ที่อนุญาติใหโปรแกรมฝงลูกขายสามารถเรียก DBMS ได ซึ่ง DBMS สวนใหญก็จะมีสวน ODBC นี้ โปรแกรมลูกขาย (Client program) หนึ่งๆ อาจเชื่อมตอกับหลายๆ DBMS นอกจากนี้ ในบาง DBMS ลูกขาย อาจไดรับฟงกชันตางๆ เชน ฟงกชันพจนานุกรมขอมูล (Data dictionary function) การทํา Optimization และการคืนสภาพ (Recovery) ระหวางแมขาย ซึ่งอาจเรียกเครื่องแมขายในกรณีเชนนี้วา แมขายขอมูล (Data server)
รูปที่ 2.5 สถาปตยกรรมแบบ ลูกขาย/แมขาย 2 ชั้น ในระดับตรรก (Logical TwoTier Client/Server Architecture)
2110422 การออกแบบระบบการจัดการฐานขอมูล ภาควิชาวิศวกรรมคอมพิวเตอร คณะวิศวกรรมศาสตร จุฬาลงกรณมหาวิทยาลัย
2-8
รูปที่ 2.6 สถาปตยกรรมแบบ ลูกขาย/แมขาย 2 ชั้น ระดับกายภาพ (Logical TwoTier Client/Server Architecture)
2.6.4 สถาปตยกรรมแบบลูกขาย/แมขาย 3 ชั้น (Three-Tier Client/Server Architecture) มักใชในแอปพลิเคชันเว็บ (Web application) โดยมีการเพิ่มชั้นกึ่งกลาง (Intermediate layer) ระหวางลูกขาย (Client) และแมขายฐานขอมูล (Database server) ซึ่งเรียกชั้นกึ่งกลางนี้วาแมขายแอปพลิเคชัน (Application server) หรือแมขายเว็บ (Web server) โดยจะเปนสวนที่ทําหนาที่เก็บซอฟตแวรการเชื่อมตอเว็บ (Web connectivity software) รวมถึงกฎและขอบังคับตางๆ (Rules and business logic: Constraint) ของแอป พลิเคชันในการเขาถึงฐานขอมูลในแมขายฐานขอมูล (Database server) โดยมีบทบาทคลายทอในการสงขอมูลที่ ถูกประมวลผลบางสวนระหวางแมขายฐานขอมูล (Database server) นอกจากนี้ยังมีลักษณะพิเศษเพิ่มเติมเกี่ยวกับความปลอดภัย (Security) โดยจะทําการเขารหัสขอมูล (Encrypt) ที่เครื่องแมขายกอนจะทําการสงตอออกไปถอดรหัส (Decrypt) ที่เครื่องลูกขาย
รูปที่ 2.7 สถาปตยกรรมแบบ ลูกขาย/แมขาย 3 ชั้น ระดับตรรก (Logical Three-Tier Client/Server Architecture)
2.7
การจัดประเภทของ DBMS สามารถพิจารณาไดจากหลายกฎเกณฑ ดังนี้ • พิจารณาจากแบบจําลองขอมูล (Data model) ที่ใช
2110422 การออกแบบระบบการจัดการฐานขอมูล ภาควิชาวิศวกรรมคอมพิวเตอร คณะวิศวกรรมศาสตร จุฬาลงกรณมหาวิทยาลัย
•
•
2-9
Traditional ไดแก แบบจําลองเชิงสัมพันธ (Relational model) แบบจําลองแบบเครือขาย (Network model) แบบจําลองแบบแตกสาขา (Hierarchical model) Emerging ไดแก Object-oriented, Object-relational
พิจารณาจากจํานวนผูใช - ผูใชคนเดียว (single-user) ซึ่งมักใชกับไมโครคอมพิวเตอร - ผูใชหลายคน (Multi-user) ซึ่ง DBMS สวนใหญจัดอยูในประเภทนี้ พิจารณาจากจํานวนของไซต (Site) - แบบรวม (Centralized) ซึ่งใชคอมพิวเตอรหนึ่งเครื่องกับหนึ่งฐานขอมูล - แบบกระจาย (Distributed) ซึ่งใชคอมพิวเตอรหลายเครื่อง หลายฐานขอมูล
2.7.1 ระบบฐานขอมูลแบบกระจาย (Distributed Database System: DDBMS) ระบบฐานขอมูลแบบกระจาย (Distributed Database System) ซึ่งปจจุบันรูจักกันในลักษณะของระบบ ฐานขอมูลแบบลูกขาย/แมขาย (Client/Server based database system) เนื่องจากเปนระบบที่ไมสนับสนุน สภาพแวดลอมการกระจายโดยสมบูรณ (Totally distributed environment) แตจะเปนในรูปแบบที่ กลุมแม ขายฐานขอมูล (Database server) สนับสนุนกลุมลูกขาย (Client) มากกวา โดยมีสภาพแวดลอมการกระจาย (Distributed environment) แบบตางๆ ดังนี้ • DDBMS แบบเอกพันธ (homogeneous DDBMS) ใชซอฟตแวร DBMS กับหลายๆไซต (Site) • DDBMS แบบ Heterogeneous (Heterogeneous DDBMS) ซึ่งเปนแนวคิดใหมในการพัฒนา ซอฟตแวรเพื่อเขาถึงฐานขอมูลอิสระที่มีอยู (Autonomous preexisting database) • ระบบ Federated หรือ Multidatabase (Federated or Multidatabase system)
2.7.2 ประวัติของแบบจําลองขอมูล •
•
•
• •
แบบจําลองเชิงสัมพันธ (Relational Model) ไดรับการนําเสนอขึ้นในป 1970 โดย E.F. Codd จาก IBM ซึ่งกลายเปนระบบเชิงพาณิชย (Commercial system) ในชวงป 1981-1982 ซึ่งปจจุบันสามาถพบไดในผลิตภัณฑทางการคาตางๆ มากมาย เชน DB2, ORACLE, SQL Server, SYBASE, INFORMIX เปนตน แบบจําลองแบบเครือขาย (Network Model) ไดรับการพัฒนาขึ้นเปนครั้งแรกโดย Honeywell ในชวงป 1964-1965 และนํามาใชอยางมากโดย การสนับสนุนของ CODASYL (CODASYL- รายงาน DBTG ป 1971) ซึ่งตอมาไดรับการพัฒนา ในระบบตางๆ เชน IDMS (Cullinet หรือ CA ในปจจุบัน), DMS 1100 (Unisys), IMAGE (H.P.) และ VAX- DBMS (Digital Equipment Corp.) เปนตน แบบจําลองขอมูลแบบแตกสาขา (Hierarchical Data Model) ไดรับการพัฒนาขึ้นโดยความรวมมือของ IBM และ North American Rockwell ในชวงป 1965 และเกิดเปนระบบในตระกูล IMS ซึ่งแบบจําลองนี้นับเปนแบบจําลองที่ไดรับความนิยมมากที่สุด โดย ระบบอื่นๆที่ใชแบบจําลองนี้ ไดแก System 2k (SAS inc.) แบบจําลองขอมูลเชิงวัตถุ (Object-oriented Data Model) Object- Relational Model
2.7.3 ขอดีและขอเสียของแบบจําลองแบบแตกสาขา (Hierarchical model) •
ขอดี -
•
งายตอการสรางและจัดการ ใชไดกับหลาย natural hierarchically organized domains เชน แอสเซมบลีในกระบวนการ ผลิต การจัดการสวนบุคคลในบริษัท ขอเสีย - ลักษณะในการประมวลผลแบบ Navigational และ Procedural - แสดงขอมูลในลักษณะ Linear arrangement ของ records
2110422 การออกแบบระบบการจัดการฐานขอมูล ภาควิชาวิศวกรรมคอมพิวเตอร คณะวิศวกรรมศาสตร จุฬาลงกรณมหาวิทยาลัย
-
2-10
มีขอจํากัดเล็กนอยสําหรับ “Query optimization”
2.7.4 ขอดีและขอเสียของแบบจําลองแบบเครือขาย (Network model) •
ขอดี -
•
รูปที่ 2.8 ตัวอยางขอมูลใน รูปแบบ ความสัมพันธ (Relation form)
รูปที่ 2.9 ตัวอยางขอมูลใน รูปแบบแตกสาขา (Hierarchical form)
แบบจําลองแบบเครือขายนั้นสามารถทําการโมเดลความสัมพันธที่ซับซอนและสามารถแสดง ความหมาย (Semantics) ของการเพิ่มและการลบ (add/delete) บนความสัมพันธได - สามารถจัดการกับสถานการสวนใหญได โดยใช record types และ relationship types - ใชภาษา navigational มีการใชคําสั่ง FIND, FIND member, FIND owner, FIND NEXT within set, GET เปนตน ขอเสีย - ลักษณะในการประมวลผลแบบ Navigational และ Procedural - ฐานขอมูลประกอบดวยอะเรยพอยนเตอรที่ซับซอนที่ใชกับกลุมของระเบียน (Record) - มีขอจํากัดเล็กนอยสําหรับ automated “Query optimization”
2110422 การออกแบบระบบการจัดการฐานขอมูล ภาควิชาวิศวกรรมคอมพิวเตอร คณะวิศวกรรมศาสตร จุฬาลงกรณมหาวิทยาลัย
รูปที่ 2.10 ตัวอยางขอมูลใน รูปแบบเครือขาย (Network form)
แบบฝกหัด 1. 2. 3. 4.
จงอธิบายประเภทหลักๆของแบบจําลองขอมูล จงอธิบายขอแตกตางระหวาง database schema และ database state จงอธิบายลักษณะของสถาปตยกรรมแบบ three-schema จงอธิบายขอแตกตางระหวาง procedural และ non procedural DMLs
2-11