240 likes | 379 Views
บทที่ 1 ความรู้พื้นฐาน. Database System. อ.วรรธนะ พงษ์ เสนา. วัตถุประสงค์. ในบทนี้ เมื่อเรียนจบแล้ว นักศึกษาสามารถที่จะ 1.เข้าใจวัตถุประสงค์ของระบบฐานข้อมูล 2.เข้าใจความแตกต่างระหว่าง DBMS และระบบแฟ้ม 3.เข้าใจวิวของข้อมูล 4.เข้าใจโมเดลของข้อมูล
E N D
บทที่ 1ความรู้พื้นฐาน Database System อ.วรรธนะ พงษ์เสนา
วัตถุประสงค์ ในบทนี้ เมื่อเรียนจบแล้ว นักศึกษาสามารถที่จะ 1.เข้าใจวัตถุประสงค์ของระบบฐานข้อมูล 2.เข้าใจความแตกต่างระหว่าง DBMS และระบบแฟ้ม 3.เข้าใจวิวของข้อมูล 4.เข้าใจโมเดลของข้อมูล 5.อธิบาย ภาษาที่ใช้กับข้อมูลคือ ภาษานิยามข้อมูลและภาษาจัดการข้อมูล 6.อธิบายความหมาย ผู้ใช้งานและผู้บริหารฐานข้อมูล 7.อธิบายสถาปัตยกรรมของโปรแกรมประยุกต์ 8.อธิบายความหมาย และประวัติความเป็นมาของระบบฐานข้อมูล
1.2 ระบบจัดการฐานข้อมูล (DBMS) • ระบบจัดการฐานข้อมูล (DBMS) คือ กลุ่มของข้อมูลที่เกี่ยวข้องกัน รวมกับชุดของโปรแกรมที่จัดการข้อมูลเหล่านี้ นั่นคือ • DBMS = กลุ่มข้อมูล + โปรแกรมจัดการข้อมูล • จุดประสงค์หลักของ DBMS คือ เพื่ออำนวยความสะดวกในการเก็บ และเรียกใช้ข้อมูลเหล่านี้ โดยเฉพาะอย่างยิ่งข้อมูลจำนวนมาก และมีความสัมพันธ์ที่ซับซ้อน จะต้องทนทานต่อเหตุการณ์ต่างๆ ที่อาจจะทำให้ข้อมูลเสียหาย
ระบบฐานข้อมูลมีความจำเป็นกับงานหลายชนิด เช่น • งานธนาคาร เพื่อใช้จัดการข้อมูลการเงิน • งานสายการบิน เพื่อใช้ในการจองตั๋วเครื่องบิน, จัดการเที่ยวบิน • งานของสถานศึกษา เพื่อใช้ในการเก็บและจัดการข้อมูลผู้เรียน, อาจารย์ และการจัดการเรียนการสอน • งานขายสินค้า เพื่อใช้ในการเก็บและจัดการข้อมูลสินค้า, ลูกค้า, การจัดการส่งสินค้า • งานอุตสาหกรรม เพื่อใช้ในการเก็บ และจัดการข้อมูลการผลิต, สินค้าคงคลัง, การสั่งซื้อ และร้านค้า • งานด้านบุคคล ใช้เก็บและจัดการข้อมูลพนักงาน, เงินเดือน การหักภาษี
ข้อเสียของการใช้ระบบแฟ้ม(File systems) • 1.ข้อมูลเกิดความซ้ำซ้อนและไม่เป็นหนึ่งเดียว • 2.ยุ่งยากในการเข้าใช้ข้อมูล • 3.การโดดเดี่ยวของข้อมูล (Data isolation) ข้อมูลมีการกระจายไปอยู่ในแฟ้มต่างๆ • 4.ปัญหาบูรณภาพ (Integrity problems) ไม่สะดวกในการกำหนดบูรณภาพของข้อมูล เช่น “เงินฝากของลูกค้าธนาคารจะต้องห้ามต่ำกว่า 10 บาท” • 5.ปัญหาสภาวะครบหน่วย คือ การทำงานบางอย่างจะต้องกระทำทั้งชุดให้เสร็จจึงจะถือว่าเสร็จสมบูรณ์ (จะทำเพียงบางส่วนไม่ได้) • 6.ความผิดปกติในการเข้าถึงข้อมูลพร้อมกันหลายๆคน • 7.ปัญหาเรื่องความปลอดภัย
ระดับชั้นนามธรรม (Level of Abstraction)
จุดประสงค์หลักของระดับชั้นนามธรรม • คือ การจัดให้ผู้ใช้พิจารณาข้อมูลออกเป็นระดับเพื่อง่ายต่อการทำงาน (และทำความเข้าใจ) นั่นคือ ระบบจะทำการซ่อนรายละเอียดของข้อมูลที่ซับซ้อนเอาไว้อย่างเหมาะสม • ระดับกายภาพ(Physical level) เป็นระดับต่ำสุด ซึ่งอธิบายการเก็บข้อมูลจริงลงในสื่อบันทึก • ระดับตรรกะ(Logic level) เป็นระดับที่สูงขึ้นมา ซึ่งอธิบายสิ่ง (ข้อมูล) ที่เก็บและอธิบายว่ามีความสัมพันธ์กับส่วนอื่นอย่างไร • ระดับวิว(View level) เป็นระดับที่สูงที่สุด ซึ่งอธิบายบางส่วนของข้อมูล ในฐานข้อมูลนั้น เพื่อให้เหมาะกับผู้ใช้แต่ละกลุ่มที่เกี่ยวข้องกับข้อมูลนั้น
อินสแตนท์และสคีมา (Instance and Schemas) • กลุ่มข้อมูลที่อยู่ ณ เวลานั้นเรียกว่า อินสแตนท์ (instance) ของฐานข้อมูล • ลักษณะโครงสร้างของฐานข้อมูลจะไม่มีการเปลี่ยนบ่อย เราเรียกลักษณะโครงสร้างนี้ว่า สคีมา(schema) • ระบบฐานข้อมูลจะประกอบด้วย สคีมาหลายชนิด (สอดคล้องกับระดับชั้นนามธรรม) ดังนี้ • สคีมาเชิงกายภาพ (physical schema) เป็นโครงสร้างข้อมูลที่อธิบายในระดับกายภาพ • สคีมาเชิงตรรกะ (logical schema) เป็นโครงสร้างที่อธิบายข้อมูลในระดับตรรกะ(เชิงแนวคิด)
ประโยชน์ที่ได้จากการแบ่งสคีมาออกเป็นชั้นๆประโยชน์ที่ได้จากการแบ่งสคีมาออกเป็นชั้นๆ • คือ คุณสมบัติความเป็นอิสระของข้อมูลเชิงกายภาพ(Physical data independence) นั่นคือเมื่อมีการเปลี่ยนแปลงโครงสร้าง ข้อมูลในระดับกายภาพ แล้วจะไม่มีผลกระทบกับ โครงสร้างข้อมูลในระดับตรรกะ เช่น เมื่อมีการเปลี่ยนอุปกรณ์บันทึกข้อมูล ก็ยังสามารถใช้โปรแกรมที่จัดการข้อมูลของเดิม
โมเดลของข้อมูล (Data Models) • โมเดลของข้อมูล (data model) เป็นรูปแบบ (เชิงแนวคิด) ที่ใช้อธิบายข้อมูล , ความสัมพันธ์ของข้อมูล, ความหมายของข้อมูล และเงื่อนไขความคงสภาพของข้อมูล (consistency constraints) • โมเดลข้อมูลมีหลายชนิด แต่ที่นิยมศึกษา คือ • 1.โมเดล ER (Entity-Relationship model) • 2. โมเดลเชิงสัมพันธ์ (Relation model)
ตัวอย่างของโมเดล ER ที่ใช้อธิบายสคีมาของข้อมูล
หลักการของ โมเดล ER • คือ จำลองความสัมพันธ์ที่พบเห็นจริง (real world) ซึ่งประกอบด้วย • 1.เอนทิที (entity) คือ กลุ่มของสิ่งที่สนใจ เช่น ลูกค้า, บัญชีเงินฝาก, สาขาของธนาคาร • 2.รีเลชันชิพ (relationships,ความสัมพันธ์) คือ ความสัมพันธ์ของเอนทิที เช่น การฝากเงินแสดงความสัมพันธ์ระหว่าง ลูกค้า กับ บัญชีเงินฝาก ที่เราสนใจ
โมเดล ER ได้รับความนิยมอย่างสูง • เพราะง่ายในการทำความเข้าใจ และ สามารถแปลงไปเป็น โมเดลเชิงสัมพันธ์ได้ง่าย • (โมเดลเชิงสัมพันธ์ ใช้อธิบายข้อมูลทุกอย่างในรูปตาราง ทำให้ง่ายในการจัดการ ซึ่งนิยมใช้ในการใช้งานจริงในการเก็บข้อมูล และเข้าถึงข้อมูล)
โมเดลเชิงสัมพันธ์ (Relational Model) • เก็บข้อมูลทุกตัวไว้ในรูปของตาราง โดยเก็บข้อมูลแต่ละตัวใส่ลงในแถวและรายละเอียดข้อมูล (แอททริบิวต์) อยู่ในคอลัมน์
ภาษาสำหรับฐานข้อมูล • ภาษาสำหรับฐานข้อมูลมี 2 ชนิด คือ 1.ภาษานิยามข้อมูล (Data Definition Language, DDL) เช่น CREATE, ALTER, DROP 2.ภาษาการจัดการข้อมูล (Data Manipulation Language, DML) เช่น INSERT, UPDATE, DELETE (อาจจะมีเพิ่ม อีก 2 ชนิดคือ 3. Data Control Language เช่น grant 4 Transaction Control Language เช่น commit )
ภาษานิยามข้อมูล (Data Definition Language, DDL) • มีหน้าที่ในการกำหนดรูปแบบของข้อมูลที่จะเก็บนั่นคือ กำหนดสคีมาของฐานข้อมูล เช่น create table account ( account-number char(10), balance integer )
ภาษาจัดการข้อมูล (DML, Data Manipulation Language) • DML เป็นภาษาที่ใช้จัดการข้อมูล เช่น เพิ่ม, แก้ไข, ปรับปรุง ข้อมูล • ภาษา DML ถูกแบ่งออกเป็น 2 ประเภท คือ 1.โพรซีเดอรอล (Procedural) เป็นภาษาที่ผู้ใช้ต้องระบุว่าต้องทำอย่างไร (ขั้นตอนวิธี) เพื่อให้ได้ข้อมูล (ผลลัพธ์) ที่ต้องการ 2.นอนโพรซีเดอรอล (Nonprocedural) เป็นภาษาที่ผู้ใช้ระบุเพียงข้อมูล (ผลลัพธ์) ที่ต้องการเท่านั้น ไม่ต้องระบุวิธีที่จะได้ผลลัพธ์นั้น
SQL • ภาษา DML (ภาษาสอบถาม, query language) ที่นิยมใช้ในปัจจุบันคือ ภาษา SQL (Structured Query Language) ซึ่งเป็นชนิด นอนโพรซีเดอรอล • เช่น “ต้องการหาชื่อของลูกค้า (customer) ซึ่งมีรหัสลูกค้า (customer-id) เป็น 192-83-7465”
กลุ่มผู้ใช้ฐานข้อมูล(Database Users) • 1.นักเขียนโปรแกรมประยุกต์ (Application programmers) เป็นผู้เขียนโปรแกรมการติดต่อกับฐานข้อมูลด้วยคำสั่ง DML • 2.ผู้ใช้ขั้นสูง (Sophisticated users) เป็นผู้ติดต่อกับฐานข้อมูลด้วยคำสั่ง DML เพื่อให้ได้ผลลัพธ์ ตามต้องการทันที • 3.ผู้ใช้เฉพาะทาง (Specialized users) คือ ผู้ใช้ขั้นสูงที่เขียนโปรแกรมประยุกต์เฉพาะทางที่ใช้กับฐานข้อมูล เช่น งานทางด้านระบบฐานความรู้, งานระบบผู้เชี่ยวชาญ • 4.ผู้ใช้ทั่วไป (naïve users) เป็นผู้เรียกใช้โปรแกรมหรือชุดคำสั่งที่ได้สร้างไว้แล้ว (โดยผู้ใช้กลุ่ม 1-3) เช่น ผู้ใช้ที่เข้าถึงฐานข้อมูลผ่าน web, เลขานุการ
ผู้บริหารฐานข้อมูล (Database Administrator) • เป็นผู้ที่รับผิดชอบฐานข้อมูลทั้งหมด นั่นคือ มีหน้าที่ดังนี้ 1.เป็นผู้กำหนดสคีมา (โครงสร้างฐานข้อมูล) 2.เป็นผู้กำหนดโครงสร้างสื่อบันทึกข้อมูล และ วิธีการเข้าถึงข้อมูลเชิงกายภาพ 3.เป็นผู้ปรับเปลี่ยนสคีมา และ โครงสร้างการบันทึกข้อมูลเชิงกายภาพ ตามความเหมาะสม 4.เป็นผู้กำหนดสิทธิการเข้าถึงข้อมูลให้กับผู้ใช้แต่ละคน 5.เป็นผู้กำหนด เงื่อนไขความคงสภาพของฐานข้อมูล 6.เป็นผู้ติดต่อกับผู้ใช้เพื่อจัดการกับฐานข้อมูลตามความต้องการในกรณีเฉพาะเช่น ปรับปรุงฐานข้อมูล 7.ตรวจสอบและปรับปรุงฐานข้อมูลเพื่อให้มีประสิทธิภาพ
การจัดการทรานแซคชัน(Transaction Management) • ทรานแซคชัน คือ ชุดของการกระทำ ซึ่ง หนึ่งทรานแซคชันจะทำหนึ่งงานซึ่งจะต้องมีคุณสมบัติ atomicity และ consistency (ความต้องกัน) ซึ่งมีความหมายดังนี้ • 1.atomicity คือ การทำงานเล็กที่สุดซึ่งมีผลการทำสองประการคือ ทำเสร็จ หรือ ไม่ทำอะไรเลย เช่น การโอนเงินบัญชี A ไป B • 2.consisteny (ความต้องกัน) คือ คุณสมบัติที่รับประกันความถูกต้องของการทำงาน เช่น เมื่อโอนเงินจากบัญชี A ไป B แล้ว ยอดเงินในบัญชีจะถูกต้องทั้งสองบัญชี
โครงสร้างของโปรแกรมประยุกต์โครงสร้างของโปรแกรมประยุกต์
โครงสร้างของโปรแกรมประยุกต์ • Two – tier architecture: ส่วน client (ประกอบด้วย user และ application) จะติดต่อทางเนตเวิร์ค(ผ่านมาตรฐาน ODBC/JDBC) ไปที่ระบบฐานข้อมูล • Three – tier architecture : ส่วน client จะเปรียบเสมือนเบื้องหน้า(front end) และไม่มีการเรียกใช้ฐานข้อมูลโดยตรง