งานของ Db เริ่มจาก Field จาก User Requirement
Read intensive เก็บเพื่อเก็บ Insert อย่างเดียว ไม่จำเป็นต้อง Design ก็ได้
Write intensive เก็บเพื่อ Update นั้นจำเป็นจะต้องมีการออกแบบ
DBMS provides mechanisms
สิ่งที่ต้อง Concern ในการออกแบบคือการซ้ำซ้อนของข้อมูลในตารางเดียวกัน หรือ ตารางอื่น
Field ต่อๆกันเป็นตัวแทนของ Record
Class, File, Table เมื่อนำหลายๆไฟล์เข้าด้วยกันโดยที่มีความสัมพันธ์กัน
Class แบ่ง
Tangible เป็นไฟล์ปกติ
Intangible เป็นไฟล์ของความสัมพันธ์
กรณีตัวอย่างงานการเรียนการสอน
Lecturer, Student, Subject ถือว่าเป็น Tangible
Advisor, Teach, Registration ถือว่าเป็น Intangible
Traditional File Environment (File Processing)
ระบบประมวลผลแบบไฟล์นั้นแต่ละ Application จะมีข้อมูลเป็นของตนเองซึ่งมี record ที่โปรแกรมจำเป็นต้องใช้
มีปัญหา Program - Data Dependence
ข้อมูลของใครของมัน เช่น คนหนึ่งเขียน Class program ใช้ File Format ของ Class Program คนหนึ่งเขียน Account Program ใช้ File Format ของ Account Program แต่ข้อมูลนั้นเป็นประเภทเดียวกัน หรือชุดเดียวกัน ทำให้ Data dependence เป็นตัวทำให้เกิด Data redundancy
Data Redundancy
การซ้ำซ้อนของข้อมูลเกิดเมื่อหน่วยงานในองค์กรเก็บข้อมูลแยกกันและสร้างระบบงานเป็นของตัวเอง
Data redundancy เป็นตัวทำให้เกิด data inconsistency
ถึงแม้ว่ามี DBMS แล้วก็ยังมีปัญหา Data Redundancy และ Data Inconsistency อยู่ถ้าไม่มีการบริหารจัดการที่ดี
Data Isolation
ระบบประมวลผลไฟล์นำไปสู่การเข้าถึงข้อมูลที่ยุ่งยากจากหลาย Application (Data can’t be shared) เนื่องจากตัว application นั้น ถูกdesign มาแล้วใช้ File ของตัวเอง
Integrity problems
ข้อมูลที่เก็บอยู่ในฐานข้อมูลจะต้องสอดคล้องกับกฎที่กำหนด จึงต้องมีการการใส่กฎเกณฑ์ลงใน Field เพื่อให้ DBMS reject ข้อมูลที่ไม่ถูกต้องตามกฎออกจาก field ซึ่งเป็นข้อดีของ DB Processing แต่ถ้าเป็น File Processing ตัว Application จะต้องตรวจสอบเองซึ่งเป็นข้อเสียของ File processing
Security problems
กำหนดให้ใครมีสิทธิระดับไหน Grants ถ้าเป็น DBMS นั้นทำได้ง่ายแต่ถ้าเป็น File ทำได้ยาก
Application ที่ถูกพัฒนาขึ้นมาไม่ควรคำนึงถึงการจัดเก็บของข้อมูลนั่นควร application และ data ควรเป็นอิสระต่อกัน
หลักสูตรนี้จะเน้น Optimize จึงให้ทบทวน b-tree, hash index
Databases : The modern approach
กลุ่มของข้อมูลที่มีความสัมพันธ์กันซึ่งสามารถกำจัดปัญหาที่เกิดจาก File processing เนื่องจากเก็บข้อมูลอยู่ในที่เดียวกัน เรียกได้ว่าเป็น Single piece of data ซึ่งสิ่งที่หลายหน่วยงานต้องการ
The enterprise system ระบบรวมขององค์กร
Business process ฝ่ายต่างๆซึ่งมีฟังก์ชั่นงานเป็นของตัวเอง
Business process สามารถสร้าง application ได้แต่ไม่สร้าง database ขึ้นมาเองได้
Locating Data in Databases
A centralized database เก็บไฟล์เป็นศูนย์กลางอยู่ที่เดียว
A distributed database ข้อมูลกระจายอยู่ตาม location นอกเหนือจาก Central ในการดูแลการ insert update delete นั้นต้อง online เสมอกัน
A distributed database แบ่งได้ 2 แบบ
- Replicated complete copies ของ db มีอยู่ทุกที่
- Partition ข้อมูลรวมจะวางไว้ที่ Central ส่วน location แต่ละที่จะมี portion (บางส่วน) ของ database
Database Management System: DBMS
อำนวยความสะดวกและประสิทธิภาพในการบริการข้อมูลและจัดเก็บข้อมูล โดยการซ่อนระดับรายละเอียดภายใน จะให้เราเห็นเฉพาะส่วนที่เราออกแบบ รายละเอียดภายในของ DBMS นั้นมีผลกับ DBMS โดยตรง อาจจะต้องเข้าไปดู Physical level กันเยอะในวิชานี้
Abstract View of Data
Imagine ว่า data นั้นมี 3 ระดับเพื่อให้ง่ายแก่การทำความเข้าใจ ซึ่งมีเหตุผลในการแบ่ง abstract view of data
- Physical Data Views มองว่า Data นั้นถูกจัดเก็บอย่างไร (How data are stored)
- Conceptual level, Logical level ในองค์กรเรามีไฟล์อะไรบ้าง (what data are stored in the database) เห็น Data ขององค์กรหมดเลย
- External Level application มองเห็นข้อมูลเพียงบางส่วนเป็น view แต่มากกว่า 1 view (part of the entire database)
Data model
Hierarchical, Network, Relational, Object-Oriented, Entity-Relation model
Model ที่ใช้ในทางธุรกิจคือ relational (มองเป็น 2 มิติ), entity-relation model (มองเป็น diagrams)
Instance และ Schema
Instance is variable values at a specific moment ในขณะใดขณะนึงในฐานข้อมูล (variable values)
Schema เค้าร่างที่ได้จากการออกแบบฐานข้อมูล
Lecturer (LecID, LecName, Dept, Salary, Position)
Student (StdID, StdName, GPA,…,etc.)
Subject (Subcode, subname, credit)
Advisor (LecID, stdID)
Teach (LecID, SubCode)
Registration (StdID, Subcode)
เหล่านี้คือ Schema
แต่ถ้าเป็นข้อมูลใน Table จะเป็น instance
Database Language
Data Definition Language (DDL)
เราสามารถกำหนดโครงสร้างด้วยชุดของนิยามโดยใช้ภาษาเฉพาะของมันหรือที่เราเรียกว่า DDL
เช่น Create, Alter, Drop -> Table, View, Index DDLจะใช้สร้างโครงสร้างของข้อมูล จะไม่ยุ่งเกี่ยวกับ instance
DDL Interpreter ใช้ compile DDL จะได้ตารางที่จะจัดเก็บในไฟล์ชนิดหนึ่งที่เรียกว่า Data Dictionary ซึ่งบรรจุ Meta data (data about data)
Consistency constraints เป็นการกำหนดกฎเกณฑ์ของข้อมูลที่จะจัดเก็บใน field การใส่กฎใน Field ก็ถือว่าเป็น DDL เช่นกัน เช่น not null
Data Manipulation Language (DML)
เราสามารถแบ่งคำสั่ง DML ได้ดังนี้
- Retrieving Data
- Insert new records
- Deleting records
- Updating current Field
Procedural DML ส่วนใหญ่คำสั่งจะเป็นแบบนี้
Non Procedural DML อ.ไม่รู้
Database Access from Application Programs
การเขียน Application ที่มี host language (C#, VB) ใส่ DML ผ่าน API (ODBC, JDBC) เข้าไปในฐานข้อมูล DBMS จึงต้องมี Query Processor ซึ่งประกอบด้วย
· Embedded DML Pre-compiler แปล DML เป็น module (procedure call) สร้าง object code
· DML Compiler แปล DML เป็น low level instruction ที่ QEE เข้าใจได้
DDL Interpreter แปลประโยคคำสั่งที่เป็น DDL
Query Evaluation Engine รันคำสั่งและรีเทิร์นผลลัพธ์
Overall System Structure
Query processor component
- DML Compiler
- Embedded DML pre-compiler
- DDL Interpreter
- Query evaluation engine
Storage manager components
- Authorization and integrity manager
- Transaction manager
- File manager
- Buffer manager หน้าที่ OS ล้วนๆ
Database Processing Advantages
- Data redundancy (Repetition of data) can be reduced. ความซ้ำซ้อนอาจอยู่ตารางเดียวกันหรือกระจายอยู่ตารางอื่น
- Data inconsistency can be avoided. มีข้อมูลชุดเดียว
- Data can be shared โปรแกรมเป็น Data independent
- Standard of data can be controlled
- Concurrent-access to database can be provided ควบคุมสภาวะความพร้อม
สมมติว่า a = 1000 เก็บใน db แล้ว t1 เอา ไปลบ 200 ในขณะนั้น t2 นำไป + 500 ถ้าหากไม่มีการควบคุม ก็อาจจะได้ค่า a เป็น 800 หรือ 1500 ก็ได้ DBMS จึงเข้ามาจัดการแก้ปัญหาให้มีการทำงาน Transaction เป็นแบบ Serial Process
Data integrity and data security
Business Function
Tradition view of system. Separate system ใน old organization นั้นจะเป็น discrete business processor and discrete business function (ไม่ต่อเนื่อง) เกิดการไม่แชร์กันของข้อมูลเนื่องจากแยกกันอยู่