Database System Concepts
ความรู้เบื้องต้นเกี่ยวกับระบบฐานข้อมูล
Intro
ถ้าไม่ใช้ฐานข้อมูล เวลาเก็บข้อมูลใช้อะไร??
>>> file
ทำให้เวลาเรียกดูข้อมูลมันยาก
ถ้ามีการเปลี่ยนแปลงโครงสร้าง >>> ต้องเขียนโค้ดใหม่
เพราะงี้เค้าเลยสร้าง Database ขึ้นมา
เพราะการใช้ file ธรรมดา มันไม่สะดวก
หรือเราจะใช้ excel เก็บข้อมูล
ใช้ excel เก็บข้อมูลดีมั้ย
ก็คงไม่ เพราะ มันไม่สามารถดูแลในเรื่องของความถูกต้องได้
โครงสร้างแฟ้มข้อมูล
bit : เก็บค่าได้แค่ ไม่ 0 ก็ 1
byte : หลายๆ bit รวมกันเป็น byte สร้างค่าได้ 2^8=256
ก็เก็บตัวอักษรได้
Field : หลายๆตัวอักษรเรียงกัน
Record : หลายๆ Field รวมกัน
File : หลายๆ Record รวมกัน
Database : หลายๆ File รวมกัน
ชนิดของข้อมูล
ข้อมูลเป็นรูปแบบ
ข้อมูลภาพ
ข้อมูลเสียง
ข้อมูลภาพและเสียง
ประเภทของแฟ้มข้อมูล
แฟ้มข้อมูลหลัก : เปลี่ยนแปลงไม่บ่อย, เก็บข้อมูลหลัก
แฟ้มข้อมูลรายการเปลี่ยนแปลง : Transaction, มีการเปลี่ยนแปลงบ่อย
แฟ้มข้อมูลตาราง : ข้อมูลที่ใช้การอ้างอิง, ไม่ได้ใช้บ่อย
แฟ้มข้อมูลเรียงลำดับ : 3 อันข้างบน เอามาเรียงกันเพื่อให้จัดการได้ง่าย
***เวลาออกแบบ Database ต้องมองให้ออก ว่าข้อมูลอันไหนหลัก อันไหนtransaction
ex. ฐานข้อมูลพนักงาน
แฟ้มข้อมูลหลัก >>> พนักงาน
แฟ้มข้อมูลรายการเปลี่ยนแปลง >>> เวลาเข้า-ออก, การจ่ายเงินเดือน
การจัดโครงสร้างแฟ้มข้อมูล
แบบเรียงลำดับ
เทปแม่เหล็ก,แผ่นฟิล์ม,เทปเพลง
ฟังเพลงแรกอยู่ จะโดดไปฟังเพลงที่3เลย ไม่ได้ ต้องกลอเอา
แบบสุ่ม
เข้าได้โดยตรง เมื่อต้องการอ่านค่าเรคคอร์ดใดๆ
แบบลำดับเชิงดรรชนี
ต้องมีการสร้าง index ขึ้นมา
ชนิดของหน่วยความจำหลัก
แบ่งแบบที่1
RAM
ROM
แบ่งแบบที่2
Volatile Storage ( ลบเลือนได้ ) : ต้องใช้ไฟเลี้ยง, ไม่มีไฟข้อมูลหาย
Non-volatile Storage : ไม่ต้องใช้ไฟเลี้ยง
ชนิดของความจำสำรอง
เข้าถึงข้อมูลได้โดยตรง : Optical Disk, จานแม่เหล็ก
เข้าถึงข้อมูลแบบเรียงลำดับ : เทปแม่เหล็ก
แนวคิดเกี่ยวกับระบบฐานข้อมูล
ทำไมต้องใช้ Database
ประมวลผลกับระบบแฟ้มข้อมูลยุ่งยาก
แฟ้มข้อมูล ไม่มีความเป็นอิสระของข้อมูล
แฟ้มข้อมูลมีความซับซ้อน
ความถูกต้องของข้อมูล***
ความปลอดภัย
แฟ้มข้อมูลไม่มีการควบคุมจากศูนย์กลาง
สังเกตุไหมว่าแฟ้มข้อมูลเดียว แต่ใช้หลายส่วนงาน
แต่ละส่วนงานจะใช้ข้อมูล ก็ต้องเก็บไฟล์ของตัวเองแต่ละที่
ส่วนงานละไฟล์ ส่วนงานละไฟล์
แบบนี้ก็อันตราย จะรู้ได้ไงว่าข้อมูลแต่ละไฟล์ ข้อมูลเหมือนกันไม่มีอะไรผิดแปลก
แล้วเวลาจะลบ,แก้ไขข้อมูลล่ะ
ก็ต้องไปตามแก้ทุกไฟล์
เพราะแบบนี้ เลยแก้ไขโดยใช้ DBMS
ระบบจัดการฐานข้อมูล
รวมไฟล์ที่เกี่ยวข้องในระบบ ไว้ที่เดียวกัน
แล้วใช้ DBMS ดูแลข้อมูล
การสร้างตาราง,เชื่อมโยงข้อมูล, ความถูกต้อง
พอเวลาจะใช้ข้อมูล >>> ก็ใช้การถาม (Query)
ภาษาที่ใช้ในการถามก็คือ SQL
ระบบฐานข้อมูล ใช้แบบไหนได้บ้าง
1. ใช้ DBMS อย่างเดียว : ex. Access
2. ใช้ DBMS ร่วมกับโปรแกรมอื่นๆ : ex. ใช้ภาษาPHPร่วมกับSQL
หน้าที่ของ DBMS
1. ช่วยกำหนดและเก็บโครงสร้างข้อมูล
เราต้องสร้างโครงสร้างขึ้นมาก่อน ค่อยเอาข้อมูลไปใส่
DBMSสร้างโครงสร้างให้เราด้วย
โครงสร้างก็ ตาราง นั่นแหละ
เพราะฉะนั้นการออกแบบ เราต้องออกแบบตารางให้ดีด้วย ให้เหมาะกับการใช้งาน
2. การบรรจุข้อมูลลงฐานข้อมูล
3. เก็บข้อมูลและดูแลข้อมูล
4. ประสานงานกับOS
5. ควบคุมความปลอดภัย, การจำกัดการเข้าถึงข้อมูล
6. จัดทำข้อมูลสำรอง และการกู้ข้อมูล
7. ควบคุมการใช้งานพร้อมๆกัน ของผู้ใช้ระบบ ( Concurrency Control )
8. ควบคุมความสอดคล้อง,ถูกต้องของข้อมูล
9. การทำพจนานุกรมข้อมูล
มี DBMS ดียังไง ??
1. หลีกเลี่ยงความขัดแย้งของข้อมูลได้
ข้อมูลชุดเดียว ใช้หลายส่วนงาน ถ้าเก็บเป็นแฟ้มข้อมูล แต่ละส่วนงานเอาไปใช้
ข้อมูลอาจจะไม่ตรงกันได้ มันมีโอกาส แล้วเวลาแก้ไขข้อมูลก็ยุ่งยาก
2. สามารถใช้ข้อมูลร่วมกันได้
3. ลดความซับซ้อนของข้อมูล
4. รักษาความถูกต้องและความเชื่อถือของข้อมูล
5. สามารถกำหนดความเป็นมาตรฐานเดียวกันได้
6. สามารถกำหนดระบบรักษาความปลอดภัยได้
7. มีความเป็นอิสระของข้อมูล
ข้อเสีย
1. มีต้นทุนสูง
2. มีความซับซ้อน : ต้องมีการออกแบบ, ER Diagram
ภาษาที่ใช้ในระบบฐานข้อมูล
DDL : เป็นภาษาที่ใช้กำหนด Schema( Database Schema )
ซึ่งได้แก่คำสั่งในการกำหนดโครงสร้างการออกแบบฐานข้อมูล
คำสั่งที่เขียนด้วย DDL จะเป็นพจนานุกรมข้อมูล
ตัวอย่างคำสั่ง
CREATE TABLE, ALTER TABLE, RENAME TABLE, DROP TABLE
DDM : การจัดการข้อมูล การค้นคืนข้อมูลจากฐานข้อมูล
ประกอบด้วย
การเพิ่มข้อมูลลงในฐานข้อมูล
การเปลี่ยนแปลงแก้ไขข้อมูลในฐานข้อมูล
การลบข้อมูลที่อยู่ในฐานข้อมูล
ตัวอย่างคำสั่ง
SELECT, INSERT, UPDATE, DELETE
DCL : ภาษาที่ใช้ในการควบคุมความถูกต้องของข้อมูล
ควบคุมภาวะการใช้ข้อมูลพร้อมกันจากผู้ใช้หลายคนในเวลาเดียวกัน
คำสั่งควบคุมความปลอดภัยของข้อมูล
การให้สิทธิ์อำนาจแก่ผู้ใช้
ตัวอย่างคำสั่ง
GRANT, REVORK
ฐานข้อมูลแบบต่างๆ
ฐานข้อมูลแบบลำดับชั้น ( Hierarchical Data Model )
ฐานข้อมูลแบบเครือข่าย ( Network Data Model )
ฐานข้อมูลแบบสัมพันธ์ ( Relational Data Model )
2 แบบแรกไม่ค่อยใช้แล้ว
แบบสัมพันธ์ปัจจุบันยังใช้อยู่ และคงใช้ไปอีกนาน
แบบสัมพันธ์ พูดง่ายๆก็คือ แบบตาราง
ฐานข้อมูลแบบสัมพันธ์ ( Relational Data Model )
ประกอบด้วย แถว(Tuple) สดมภ์(Attribute)
การควบคุมความถูกต้อง
Tuple มีข้อมูลไม่ซ้ำกัน
Tuple ไม่มีลำดับจากบนลงล่าง
Attribute ไม่มีลำดับจากซ้ายไปขวา
ค่าของ Attribute ทุกค่าจะต้องเป็น atomicity
ตัวอย่างของภาษาปฏิบัติการคือ SQL
แต่ละตาราง สามารถเชื่อมโยงถึงกันได้ ก็เลยเรียก Relational Data Model
cr: อ.เอิญ สุริยะฉาย ภาควิชาวิทยาการคอมพิวเตอร์และสารสนเทศ (KMUTNB)
ไม่มีความคิดเห็น:
แสดงความคิดเห็น