1-2 สถาปัตยกรรมและแบบจำลองฐานข้อมูล(Database Architecture And

Download Report

Transcript 1-2 สถาปัตยกรรมและแบบจำลองฐานข้อมูล(Database Architecture And

Chapter 1-2
Database Architecture & Database Model
อาจารย์ เกศแก้ ว ประดิษฐ์
สาขาวิชาจัดการเทคโนโลยีสารสนเทศ
[email protected]
1
Database Architecture & Database Model










สถาปัตยกรรม ANSI/SPARC
สถาปัตยกรรมในระดับ External
สถาปัตยกรรมในระดับ Conceptual
สถาปัตยกรรมในระดับ Internal
Mapping
Relationship
Database Model
Hierarchical Database Model
Network Database Model
Relation Database Model
2
สถาปัตยกรรม ANSI/SPARC
 สถาปั ตยกรรมฐานข้อมูล (Database Architecture) เป็ นการ
อธิ บายรู ปแบบและโครงสร้างโดยทัว่ ไป ของข้อมูลภายในระบบ
ฐานข้อมูล โดยไม่ข้ ึนอยู่กบั ระบบใดระบบหนึ่ ง ซึ่ งที่ใช้นิยมกัน
คื อ การอธิ บ ายสถาปั ต ยกรรมฐานข้อ มู ล โดย ANSI/SPARC
(American Nation Standards Institue / System Planing and
Requirement Committee)
3
สถาปัตยกรรม ANSI/SPARC
ANSI/SPARC แบ่งสถาปั ตยกรรมระบบฐานข้อมูลออกเป็ น
3 ระดับ คือ Internal External และ Conceptual
 Internal Level เป็ นสถาปั ตยกรรมฐานข้อมูลระดับในสุ ด ซึ่ ง
อธิ บ ายโครงสร้ า งของการจัด เก็บ ข้อ มู ล ในเชิ ง กายภาพ (Physical
Structure) ผูท้ ี่เกี่ยวข้องกับระดับนี้คือ DBA (ผูบ้ ริ หารฐานข้อมูล)
 Conceptual Level เป็ นสถาปั ตยกรรมข้อมูลระดับที่อยูร่ ะหว่าง
Internal และExternal ทาหน้าที่ถ่ายทอดรู ปแบบของ Internal Level
ให้อยูใ่ นรู ปแบบที่สามารเข้าใจได้ง่าย (Logical Structure) ผูท้ ี่
เกี่ยวข้องกับระบบนี้คือ DBA
4
สถาปัตยกรรม ANSI/SPARC
 External Level เป็ นสถาปั ตยกรรมระดับนอกสุ ด ใกล้ชิดกับ
ผูใ้ ช้ฐานข้อมูลมากที่สุด เพราะเป็ นระดับที่กล่าวถึงมุมมองข้อมูลของ
ผูใ้ ช้แต่ละคน (User View) ผูท้ ี่เกี่ยวข้องคือ User ที่ใช้ฐานข้อมูล
5
สถาปัตยกรรม ANSI/SPARC
 สถาปั ตยกรรมระบบฐานข้อมูลทั้ง 3 ระดับ สามารถอธิบาย
ได้โดยใช้ฐานข้อมูล Northwind ดังนี้
 Internal Level ฐานข้อมูล Northwind เก็บอยูใ่ นไฟล์ที่ชื่อว่า
Northwind.mdb ซึ่ งเป็ นไฟล์ของโปรแกรม MS Access ที่ทางาน
อยูใ่ นระบบปฏิบตั ิการ MS Windows 7, Vita โดยไฟล์น้ ี เก็บอยูใ่ น
C:/program file/Microsoft office/ บน Hard Disk ณ ตาแหน่ ง
Sector 84A6 ,Track 15 เป็ นต้น
6
สถาปัตยกรรม ANSI/SPARC
 Conceptual Level ฐานข้อมูล Northwind ประกอบด้วย
Tables คือ Categories, Customer, Employee, Order Detail,
Order ฯลฯ
Queries คือ Category Sale for 2000 เป็ นต้น
Form คือ Categories , Main Switchboard , Sale
Analysis
Report คือ รายงานแต่ละตัวที่ทาใน Northwind
7
สถาปัตยกรรม ANSI/SPARC
 External Level ฐานข้อมูล Northwind แบ่งให้
พนักงานแผนกต่างๆ มองเห็นได้ต่างกัน ดังนี้คือ
พนักงานฝ่ ายขาย มองเห็นข้อมูลใน Categories , Order,
Order Detail , Products
พนักงานฝ่ ายบุคคล มองเห็นข้อมูลใน Employee , Order
ผูจ้ ดั การทัว่ ไป มองเห็นข้อมูลทั้งหมด
8
สถาปัตยกรรม ANSI/SPARC
External Level#1
External Level#2
External Level#3
Conceptual Level
Internal Level
รูปที่ 1 สถาปัตยกรรมข้ อมูล ANSI/SPARC
9
สถาปัตยกรรม ANSI/SPARC
 โครงสร้างทางกายภาพในการจัดเก็บข้อมูลพนักงานใน
ฐานข้อมูลแต่ละระดับ ดังรู ป
10
External #1 (พนักงานบัญชี)
External #2 (พนักงานขาย)
1. Empno Char(6)
2. Name Char(20)
1. Empno Char(6)
3. Salary Number(7)
2. Name Char(20)
Conceptual Employee
Empno Char(6)
Address Char(50)
Salary Number (7)
Name Char(20)
Telephone Char(15)
Deptno Char (4)
Internal STORED_EMP Length = 20
Prefix Type=Byte(6), Offset=0
Empno Type=Byte(6), Offset=6, Index=Empno
Dept# Type=Byte(4), Offset=12
………
11
สถาปัตยกรรม ANSI/SPARC
 สถาปัตยกรรมในระดับ External
เป็ นระดับของสถาปั ตยกรรม ซึ่งไม่ได้เป็ นรู ปร่ างหรื อโครงสร้าง
ของข้อ มู ล ที่ แ ท้จ ริ ง เนื่ อ งจากโครงสร้ า งของข้อ มู ล ในระดับ นี้ จะ
แปรเปลี่ ย นไปตามมุ มมองของผู้ ใ ช้ ที่นาเอาข้อมูลนั้น ๆ มาใช้งาน เช่ น
โครงสร้ า งของข้อ มู ล ที่ มี ต่ อ โปรแกรมเมอร์ ที่ จ ะอยู่ใ นรู ป โครงสร้ า ง
Record และ Field ซึ่ งต่างจากมุมมองของผูใ้ ช้ที่สนใจข้อมูลในแง่ของ
ความหมายที่เก็บอยูใ่ นแต่ละ Record และในแต่ละ Field แทน หรื อแม้แต่
ผูใ้ ช้ที่อยูใ่ นกลุ่มเดียวกัน ก็อาจมีมุมมองต่อข้อมูลในระดับนี้ที่แตกต่างกัน
12
สถาปัตยกรรม ANSI/SPARC
 สถาปัตยกรรมในระดับ Conceptual
เป็ นระดับของสถาปั ตยกรรม ซึ่ งเป็ นโครงสร้ างของข้อมูล ใน
ระดับ แนวความคิ ด ซึ่ งเป็ นภาพของข้อ มู ล ที่ ใ ช้แ ทนโครงสร้ า งทาง
กายภาพของข้อมูลที่แท้จริ งที่เก็บอยูใ่ นฐานข้อมูล เพื่อง่ายต่อการอธิ บาย
ถึ งโครงสร้ างของข้อมูลต่างๆ ที่ เก็บอยู่ในฐานข้อมูล ดังนั้น ภาพของ
Record ที่เห็นในสถาปั ตยกรรมในระดับนี้ จึงเป็ นภาพของ Record ใน
ระดับแนวความคิด ซึ่งไม่จาเป็ นที่ตอ้ งมีโครงสร้างเช่นเดียวกับโครงสร้าง
ข้อมูลของ External Record และโครงสร้างทางกายภาพของ Record ที่
เก็บอยูจ่ ริ ง หรื อเรี ยกอีกอย่างหนึ่งว่า View
13
สถาปัตยกรรม ANSI/SPARC
 ตัวอย่ าง View
Table Employee ในฐานข้ อมูลทีเ่ ก็บอยู่จริง
EmpNo Name
E001 นายแดง สุ ดกาโน
Address Telephone Salary Deptno
อ.ระแงะ 081-5402222 10,000 D100
E002
นางมาลี แก้วจันทร์
อ.ยีง่ อ
E003
นายดา ขาวนวล
อ.บาเจาะ 082-3342333 15,000 D101
E004
นางจันทร์ หนวดเคี้ยว อ.สุ คิริน 084-3325676 18,000 D102
084-1114566 20,000 D100
14
สถาปัตยกรรม ANSI/SPARC
 ตัวอย่ าง View
View พนักงานบุคคล สามารถแก้ไขและลบข้อมูลเกี่ยวกับพนักงานได้
EmpNo
Name
E001 นายแดง สุ ดกาโน
Address Telephone Salary Deptno
อ.ระแงะ 081-5402222 10,000 D100
E002
นางมาลี แก้วจันทร์
อ.ยีง่ อ
E003
นายดา ขาวนวล
อ.บาเจาะ 082-3342333 15,000 D101
E004
นางจันทร์ หนวดเคี้ยว อ.สุ คิริน 084-3325676 18,000 D102
084-1114566 20,000 D100
15
สถาปัตยกรรม ANSI/SPARC
 ตัวอย่ าง View
View พนักงานบัญชี สามารถแก้ไขข้อมูลเกี่ยวกับเงินเดือนได้แต่ไม่
สามารถลบข้อมูลพนักงานได้
EmpNo
Name
E001 นายแดง สุ ดกาโน
Salary
10,000
E002
นางมาลี แก้วจันทร์
20,000
E003
นายดา ขาวนวล
15,000
E004
นางจันทร์ หนวดเคี้ยว 18,000
16
Mapping
 ในสถาปัตยกรรม ANSI/SPARC มุมมองที่มีต่อข้อมูลในสถาปั ตยกรรม
ในระดับที่สูงกว่า สามารถถ่ายทอดมุมมองนั้นไปยังสถาปั ตยกรรมในระดับที่
ต่ากว่าได้ เช่น การถ่ายทอดมุมมองที่มีต่อข้อมูลจากสถาปั ตยกรรมในระดับ
Conceptual ไปยังสถาปั ตยกรรมในระดับ Internal เพื่อนาโครงสร้างของ
ข้อมูลในระดับ Conceptual Schema แปลงไปเป็ นโครงสร้างของข้อมูลใน
ระดับกายภาพเพื่อใช้ในการจัดเก็บข้อมูล เป็ นต้น สาหรับการถ่ายทอดมุมมอง
จากสถาปัตยกรรมในระดับที่สูงกว่าไปยังระดับที่ต่ากว่า เรี ยกว่า Mapping
17
Mapping
การทา Mapping ตามสถาปัตยกรรม แบ่งเป็ น 2 ลักษณะ คือ
 Conceptual / Internal Mapping
เป็ นการถ่ า ยทอดมุ ม มองที่ มี ต่ อ ข้อ มู ล จากสถาปั ต ยกรรมในระดับ
Conceptual ไปยังสถาปั ตยกรรมในระดับ Internal เพื่อนาโครงสร้างข้อมูล
ต่าง ๆ ในระดับ Conceptual มากาหนดโครงสร้าง Record และ Field ที่จะ
นาไปใช้ในการจัดเก็บข้อมูล
18
Mapping
 External / Conceptual Mapping
เป็ นการถ่ายทอดมุมมองที่มีต่อข้อมูลจากสถาปั ตยกรรมในระดับ
External ไปยังสถาปั ตยกรรมในระดับConceptual เพื่อกาหนดโครงสร้าง
ของ Record และ Field ให้สามารถครอบคลุมความต้องการหรื อมุมมอง
ต่างๆ ของผูใ้ ช้
19
Mapping
 External / Conceptual Mapping
การก าหนดหรื อ เปลี่ ย นแปลงโครงสร้ า งให้กับ ข้อ มู ลของระบบ
ฐานข้อมูล โดยทัว่ ไปมักจะยอมให้เกิดขึ้นในสถาปั ตยกรรมระดับ External
มากกว่าสถาปั ตยกรรมในระดับ Conceptual เนื่ องจากสถาปั ตยกรรมใน
ระดับ External ผูใ้ ช้จะมีมุมมองต่อโครงสร้างของข้อมูลในระดับกายภาพ
น้อยกว่าสถาปั ตยกรรมในระดับ Conceptual จึงง่ายต่อการกาหนดหรื อ
เปลี่ยนแปลงโครงสร้างให้กบั ข้อมูลของระบบฐานข้อมูล สาหรับหน้าที่ใน
การทา Mapping ทั้ง 2 ลักษณะนี้เป็ นหน้าที่ของ DBA
20
สถาปัตยกรรมของระบบฐานข้ อมูลกับ Database Administrator
Database Administrator (DBA) เป็ นบุคคลที่มีหน้าที่ใน
การกาหนด ควบคุมการเข้าใช้งานข้อมูลภายในฐานข้อมูล รวมทั้ง
จัดหาเทคนิ คที่จาเป็ นต่อกลยุทธ์กาหนดขึ้น ดังนั้น DBA จึงมีความ
เกี่ยวข้องกับสถาปัตยกรรมของระบบฐานข้อมูลดังนี้
1. เป็ นผูก้ าหนดโครงสร้างข้อมูลของสถาปั ตยกรรมในระดับ
Conceptual เช่ น ก าหนดว่ า ข้ อ มู ล ใดบ้ า งที่ ค วรจั ด เก็ บ ไว้ใ น
ฐานข้อมูล และโครงสร้างเป็ นอย่างไร
21
สถาปัตยกรรมของระบบฐานข้ อมูลกับ Database Administrator
2. เป็ นผูก้ าหนดโครงสร้างข้อมูลของสถาปั ตยกรรมใน
ระดับ Internal ซึ่ งได้แก่ โครงสร้างทางกายภาพของข้อมูลที่ใช้ใน
การจัดเก็บ เช่น ขนาดของแต่ละ Field และประเภทของข้อมูล
3. เป็ นผูท้ าหน้าที่ตรวจสอบโครงสร้างข้อมูลที่ กาหนดขึ้น
ว่าสามารถรองรับต่อมุมมองหรื อความต้องการในการใช้ขอ้ มูลของ
ผูใ้ ช้ในสถาปัตยกรรมในระดับ External เป็ นต้น
22
สถาปัตยกรรมของระบบฐานข้ อมูลกับ Database Administrator
4. เป็ นผูก้ าหนดการรักษาความปลอดภัย และกฎที่ใช้ใน
การควบคุ ม ความถูก ต้องให้กับข้อมู ล ซึ่ งเป็ นส่ วนหนึ่ งของการ
กาหนดโครงสร้างของข้อมูลในสถาปั ตยกรรมในระดับ Conceptual
5. เป็ นผูก้ าหนดวิธีในการสารองข้อมูล (Data Backup)
และการกูข้ อ้ มูลที่เสี ยหายกลับมาใช้งาน (Data Recovery)
6. เป็ นผูค้ วบคุมให้ระบบฐานข้อมูลมีประสิ ทธิ ภาพ และ
ทันสมัยตามความต้องการที่เปลี่ยนไป
23
Database Model
 Database Model แบ่งออกได้เป็ น 2 ประเภท คือ
1. Conceptual Model เป็ นแบบจาลองซึ่ งถูกนาไปใช้ในขั้นตอน
การออกแบบฐานข้อมูล เพื่อให้เห็นว่าภายในฐานข้อมูลต้อง
ประกอบด้วยข้อมูลอะไรบ้าง และแต่ละข้อมูลมีความสัมพันธ์
กันอย่างไร ดังนั้นแบบจาลองในกลุ่ม มักจะมีสัญลักษณ์ที่ใช้
แทนข้อมูล คุณสมบัติของข้อมูลและความสัมพันธ์ร ะหว่าง
ข้อมูล ตัวอย่างเช่น Entity-Relationship Model (E-R Model)
และ Object-Oriented Model
24
Database Model
 Database Model แบ่งออกได้เป็ น 2 ประเภท คือ
2. Implementation Model เป็ นแบบจาลองซึ่ งถูกนาไปใช้ใน
ขั้นตอนการสร้ างฐานข้อมูล ของฐานข้อมูล แต่ ล ะประเภท
เช่น Hierarchical , Network , Relation และ Object-Oriented
Database Model
25
Database Model
 เนื่ อ งจากการออกแบบฐานข้อ มู ล เป็ นเรื่ องที่ มี ค วา ม
สลับ ซับ ซ้อ นเป็ นอย่า งมาก จึ ง ได้มี ก ารพัฒ นาแบบจ าลอง ซึ่ ง
เรี ยกว่า Database
Model
เพื่ออธิ บายโครงสร้างและ
ความสั ม พัน ธ์ ร ะหว่ า งฐานข้อ มู ล เพื่ อ ช่ ว ยให้ ส ามารถสร้ า ง
ฐานข้อมูลได้ง่ายขึ้น โดยทัว่ ไป Database Model ประกอบด้วย
ส่ วนประกอบหลัก 3 ส่ วน
26
Database Model
Database Model ประกอบด้วยส่ วนประกอบหลัก 3 ส่ วน
 สัญลักษณ์ซ่ ึงใช้แทนข้อมูล
 สัญลักษณ์ซ่ ึ งใช้แทนกฎและระเบียบต่าง ๆ เพื่อใช้ควบคุม
ความถูกต้องของข้อมูล
 สัญลักษณ์ซ่ ึงใช้แทนการกระทาการ(Operator) ต่างๆ กับตัว
ข้อมูล
27
Database Model
 สัญลักษณ์ซ่ ึงใช้แทนข้อมูล
 สัญลักษณ์ซ่ ึ งใช้แทนกฎและระเบียบต่าง ๆ เพื่อใช้ควบคุมความ
ถูกต้องของข้อมูล One-to-one
One-to-many
 สัญลักษณ์ซ่ ึงใช้แทนการกระทาการ(Operator) ต่างๆ กับตัวข้อมูล
28
Database Model
 Relationship
ในระบบฐานข้อมูล ข้อมูลแต่ละส่ วนจะมีความสัมพันธ์
เกี่ยวข้องกัน ทฤษฏีระบบฐานข้อมูลได้แบ่งความสัมพันธ์ของข้อมูล
ออกเป็ น 3 แบบ คือ one-to-one , one-to-many , many-to-many
relationship
29
Database Model
 Relationship
 One-to-One Relationship (1:1)
ความสัมพันธ์แบบ 1: 1 เป็ นความสัมพันธ์ที่ขอ้ มูลชุด A แต่ละ
รายการ มีความสัมพันธ์กบั ข้อมูลชุด B เพียงรายการเดียว
ตัวอย่ าง ผู้ว่าราชการจังหวัด กับ จังหวัด
30
Relationship
ตัวอย่ าง ผูว้ า่ ราชการจังหวัดกับจังหวัด
• ผูว้ า่ ราชการจังหวัดแต่ละคน ปกครอง จังหวัดได้เพียง 1 จังหวัด
• จังหวัดแต่ละจังหวัดมีผวู ้ า่ ราชการจัดหวัดปกครองได้เพียงคนเดียว
ผูว้ า่ ราชการฯ
ปกครอง
จังหวัด
TNo
Name
ProNo
Province
T001
นายธวัชชัย เทอดเผ่าไทย
P101
จังหวัดลาปาง
Too2
นายวิทยา ผิวผ่อง
P002
จังหวัดอยุธยา
T003
นายเชิดศักดิ์ ชูศรี
P003
จังหวัดสุ ราษฏร์ธานี
31
Relationship
 One-to-Many Relationship (1:M)
ความสัมพันธ์แบบ 1: M เป็ นความสัมพันธ์ที่ขอ้ มูลชุด A แต่ละ
รายการ มีความสัมพันธ์กบั ข้อมูลชุด B มากกว่า 1 รายการ
ตัวอย่ าง จิตรกรกับภาพวาด เป็ นความสัมพันธ์แบบ 1: M เพราะ
• จิตรกรแต่ละคนสามารถวาดภาพได้หลายภาพ
• ภาพแต่ละภาพถูกวาดโดยจิตรกรเพียงหนึ่งคนเท่านั้น
จิตรกร
วาด
ภาพ
32
Relationship
PNo
Name
P001 สมใจ ขาวดา
Painting Title
My Dream
Overseas
Black Man
Poo2 บันลือ ใจมัน่
White Room
World
P003 กรแก้ว ขาวใส Sky Blue
Price
10,000 ฿
12,000 ฿
15,000 ฿
14,000 ฿
16,000 ฿
20,000 ฿
33
Relationship
 Many-to-Many Relationship (M:N)
ความสัมพันธ์แบบ M: N เป็ นความสัมพันธ์ที่ขอ้ มูลชุด A แต่ละ
รายการ มีความสัมพันธ์กบั ข้อมูลชุด B มากกว่า 1 รายการ ในขณะเดียวกัน
ข้อมูลชุด B แต่ละรายการมีความสัมพันธ์กบั ข้อมูลชุด A ได้หลายรายการ
เช่นกัน
ตัวอย่ าง นักศึกษากับวิชาที่ลงทะเบียนเรี ยน เป็ นความสัมพันธ์แบบ 1: M
• นักศึกษาแต่ละคนสามารถลงทะเบียนเรี ยนได้หลายวิชา
• วิชาแต่ละวิชามีนกั ศึกษาลงทะเบียนเรี ยนได้หลายคน
34
Relationship
ตัวอย่ าง นักศึกษากับวิชาที่ลงทะเบียนเรี ยน เป็ นความสัมพันธ์แบบ 1: M
• นักศึกษาแต่ละคนสามารถลงทะเบียนเรี ยนได้หลายวิชา
• วิชาแต่ละวิชามีนกั ศึกษาลงทะเบียนเรี ยนได้หลายคน
นักศึกษา
M
1
M
นักศึกษา
ลงทะเบียน
N
M
ลงทะเบียน
รายวิชา
1
รายวิชา
35
Relationship
PNo
Name
P001 สมใจ ขาวดา
Course
ระบบฐานข้อมูล
ระบบปฏิบตั ิการ
การพัฒนาซอฟต์แวร์ดว้ ยโปรแกรมสาเร็ จรู ป
Poo2 บันลือ ใจมัน่
ระบบฐานข้อมูล
ระบบปฏิบตั ิการ
การพัฒนาซอฟต์แวร์ดว้ ยโปรแกรมสาเร็ จรู ป
P003 กรแก้ว ขาวใส หลักการเขียนโปแกรม
การเขียนโปรแกรมบนระบบปฏิบตั ิการ GUI
36
Hierarchical Database Model
 โครงสร้างของ Hierarchical Database Model มีลกั ษณะ
เป็ น Tree สี่ เหลี่ยมแต่ละตัวเป็ นองค์ประกอบเรี ยกว่า Segment
เทียบได้กบั Record หนึ่ง ๆ ในระบบ File System ตัว Segment
ระดับบนสุ ด เรี ยกว่า Root ซึ่ งเป็ น Parent ของระดับถัดลงมา
segment ระดับที่ต่ากว่าเป็ น Child (หรื อ Children) ของระดับที่
เหนือกว่า ดังรู ปแสดง เช่น segment A ซึ่ งเป็ น root เป็ น parent
ของ segment B และ C ในทานองเดียวกัน C เป็ น parent F, G
และ H หรื อ I และ J เป็ น Children ของ E เป็ นต้น
37
Hierarchical Database Model
A
Root segment
Level 1 segments
(Root Children)
B
C
Level 2 segments
(level 1 Children) D
Level 3 segments
(level 2 Children)
E
I
F
G
H
J
38
Hierarchical Database Model
 แต่ละ Segment จะถูกจัดเก็บไว้ในอุปกรณ์จดั เก็บข้อมูล ซึ่ ง
มีตาแหน่งที่จดั เก็บชัดเจน ดังนั้นในการเรี ยกข้อมูลมาใช้งาน ต้อง
กาหนดเส้นทาง (Hierarchical Path) ของ Segment ให้ถูกต้อง
โดยการกาหนดเส้นทาง ใช้หลักการที่เรี ยกว่า Preorder Traversal
นั้นคือบอกว่า path จากบนลงล่าง และซ้ายไปขวา เช่น
 path ของ J เป็ น ABDEIJ
39
Hierarchical Database Model
หมายเหตุ ความสัมพันธ์ของ Hierarchical Database Model
เป็ นแบบ 1:M นั้นคือ Parent แต่ละตัวมี Children ได้หลายตัว
แต่ Children มี parent ได้เพียงตัวเดียว
ตัวอย่ างเช่ น บริ ษทั หนึ่ ง ๆ มีหลายแผนก แต่ละแผนก
เป็ นของบริ ษทั เดี ยว หรื อ แผนกหนึ่ งมี ลูกจ้างได้หลายคน แต่
ลูกจ้างทางานสังกัดเพียงหนึ่งแผนกเท่านั้น เป็ นต้น
40
ข้ อดีของ Hierarchical Database Model
 สามารถกาหนดกฎเกณฑ์ที่ใช้ควบคุมความถูกต้องให้กบั ข้อมูล
(Data Integrity) ภายในฐานข้อมูลได้ง่าย เนื่ องจากกฎเกณฑ์ที่
กาหนดให้กบั segment ที่ทาหน้าที่เป็ น Parent Segment สามารถ
ถ่ายทอดไปยัง Segment ที่ทาหน้าที่เป็ น Child Segment ภายใต้
Segment นั้นได้
41
ข้ อดีของ Hierarchical Database Model
 มีโครงสร้างที่เหมาะกับข้อมูลที่มีความสัมพันธ์ในแบบ Oneto-many เช่น ข้อมูลการฝากถอนเงินของลูกค้าธนาคารแต่ละคน
ซึ่ งในแต่ละวันสามารถเกิดขึ้นได้มากกว่า 1 รายการ หรื อในกรณี
ที่ลูกค้ามีบญั ชีเงินฝากธนาคารมากกว่า 1 บัญชี เป็ นต้น
 มีโครงสร้างที่เหมาะสมกับระบบคอมพิวเตอร์ ที่มีขนาดใหญ่
เช่น Mainframe
42
ข้ อเสี ยของ Hierarchical Database Model
 Hierarchical Database Model เป็ นแบบจาลองแรก ที่พยายาม
แก้ปัญหาที่เกิดขึ้นจาก File System ซึ่ งยังมีขอ้ ผิดพลาดหลาย
ประการ คือ
 designer และ programmer จาเป็ นต้องมีความรู ้เกี่ยวกับ
Physical structure ของข้อมูล จึงจะสามารถจัดการกับข้อมูล
ได้อย่างมีประสิ ทธิ ภาพ การเปลี่ยนแปลงโครงสร้างของข้อมูล
เช่น การเปลี่ยนตาแหน่ งของ segment ส่ งผลให้ตอ้ งมีการ
เปลี่ยนแปลง Application ต่าง ๆ ที่ใช้ segment นั้น
43
ข้ อเสี ยของ Hierarchical Database Model
 Hierarchical database model รองรับเฉพาะความสัมพันธ์ที่
เป็ น 1:M
ทั้ง ๆ ที่ในความเป็ นจริ ง ยังมีขอ้ มูลอีกมากที่มี
ความสัมพันธ์แบบ M:N เช่น นักศึกษากับวิชาเรี ยน ซึ่ งไม่
สามารถจัดการได้ง่ายนักบนระบบนี้
44
ข้ อเสี ยของ Hierarchical Database Model
 บางกรณี ที่ Child ตัวหนึ่งอาจมี parent มากกว่า 1 ตัว เช่น ผล
การเรี ยนของนักศึกษาขึ้นอยูก่ บั ทั้งนักศึกษา และวิชาที่เรี ยน
 เป็ นระบบที่ขาดความยืดหยุ่น เพราะการจัดการมีความยุ่งยาก
และซับซ้อนแม้กระทัง่ งานพื้นฐาน เช่น การเพิ่มหรื อลบ segment
นอกจากนี้ หากไม่ระมัดระวัง หากลบ segment ที่เป็ น parent จะ
ส่ งผลให้ลบ Children ของ segment นั้นออกไปด้วย
45
ข้ อเสี ยของ Hierarchical Database Model
 การสร้างโปรแกรมสาหรับ Application มีความยุง่ ยาก และ
ใช้เวลานาน เพราะ Programmer ต้องรู้ตาแหน่งของแต่ละ segment
และเรี ยกใช้ Path
ให้ถูกต้อง นอกจากนี้ หาก Path
มีการ
เปลี่ยนแปลงต้องเข้ามาเปลี่ยนในตัวโปรแกรมด้วย
46
ข้ อเสี ยของ Hierarchical Database Model
 Hierarchical database model รองรับเฉพาะความสัมพันธ์ที่เป็ น
1:M ทั้ง ๆ ที่ในความเป็ นจริ ง ยังมีขอ้ มูลอีกมากที่มีความสัมพันธ์แบบ
M:N เช่นนักศึกษากับวิชาเรี ยน ซึ่งไม่สามารถจัดการได้ง่ายบนระบบนี้
A
C
B
Many Parents Child
D
47
Network Database Model
ถูกพัฒนาขึ้นเพื่อแก้ปัญหาที่เกิดจาก Hierarchical Database
Model นอกจากจะรองรับความสัมพันธ์แบบ 1:M แล้วยังยอมให้
segment ที่เป็ น Child มีหลาย Parent ได้ อีกทั้งเป็ นความพยายาม
ที่จะพัฒนามาตรฐานสาหรับ database ทั้งนี้เพื่อเพิ่มความสามารถ
ในการโอนถ่ายข้อมูลระหว่าง DBMS
48
Network Database Model
โครงสร้ างพืน้ ฐาน
ในระบบของ Network database model ความสัมพันธ์
หนึ่ ง ๆ เรี ยกว่า set ประกอบด้วย Owner และ member โดย
Owner มีค่าเท่ากับ Parent และ member มีค่าเท่ากับ Child ใน
Hierarchical Database Model ความแตกต่างระหว่างสองโมเดล นี้
อยูท่ ี่วา่ member สามารถอยูไ่ ด้ในหลาย ๆ set ซึ่ งก็หมายความว่า
member หนึ่ง ๆ มีหลาย Owner ได้น้ นั เอง
49
Network Database Model
ตัวอย่ าง Network model สาหรับ Customer (ลูกค้า) Salesrep
(พนักงานขาย) Invoice (ใบสั่งซื้ อสิ นค้า)
Invoice_Detail
(รายละเอียดใบสัง่ ซื้ อ) Product (สิ นค้า) Payment (การชาระเงิน)
Owner
1
Member M
รูปแสดงโครงสร้ าง แบบ Set
50
Network Database Model
Salesrep
Product
1:M
Commission set
Customer
1:M
1:M
Sales set Payment set
Invoice
Payment
1:M
1:M
Product set Invoice_Detail set
Invioce_Detail
รูปแสดงโครงสร้ าง Network Model
51
Network Database Model
รายละเอียด ความสัมพันธ์ จากรู ปมีดงั ต่อไปนี้
 พนักงานขายแต่ละคน อาจออกใบสั่งซื้ อหลายใบ แต่ใบสั่ง
ซื้อแต่ละใบออกโดยพนักงานเพียงคนเดียวเท่านั้น
 ลูกค้าแต่ละคนอาจจะเข้ามาซื้ อสิ นค้าได้หลายครั้ง แต่ละครั้ง
ที่ซ้ื อจะมีการออกใบสั่งซื้ อให้ ดังนั้นลูกค้าหนึ่ งคน มีใบสั่งซื้ อได้
หลายใบ แต่ละใบสัง่ ซื้อก็เป็ นของลูกค้าคนเดียวเท่านั้น
52
Network Database Model (ต่ อ)
 ใบสัง่ ซื้ อหนึ่งใบ มีรายละเอียดการสัง่ ซื้อหลายรายการ แต่ละ
รายการอยูใ่ นใบสัง่ ซื้อเพียงใบเดียว
 สิ นค้าตัวหนึ่งอาจอยูใ่ นรายละเอียดการสั่งซื้ อหลายรายการ แต่
ละรายการเป็ นของสิ นค้าตัวเดียวเท่านั้น
53
ข้ อดีของ Network Database Model
 สามารถรองรับข้อมูลที่มีความสัมพันธ์ในแบบ M:N ได้
 สามารถเข้าถึงข้อมูลที่เป็ น Member Record ได้ทุก Record
ด้วยการอ้างถึงข้อมูลใน Owner Record เพียง Record เดียว และ
ในทางกลับกันก็สามารถเข้าถึงข้อมูลแต่ละ Record
ในส่ วน
Owner Record ได้จากการอ้างถึงข้อมูลใน Member Record
54
ข้ อดีของ Network Database Model
 สามารถควบคุมให้ขอ้ มูลเป็ นไปตามกฎที่ใช้ในการควบคุม
ความถูกต้องข้อมูลได้ง่าย เนื่ องจากจะสามารถกาหนดข้อมูลใน
ส่ วน Member Record ได้จะต้องกาหนดข้อมูลในส่ วน Owner
Record
 สนับสนุ นให้โปรแกรมมีความเป็ นอิสระจากข้อมูลมากกว่า
ฐานข้ อ มู ล ที่ มี โ ครงสร้ า งของข้ อ มู ล ในรู ปแบบ Hierarchy
เนื่องจากมีโครงสร้างที่ซบั ซ้อนกว่า
55
ข้ อเสี ยของ Network Database Model
 การออกแบบฐานข้อมูลจะกระทาได้ค่อนข้างยาก เนื่ องจาก
ต้องกาหนด Set ของความสัมพันธ์ให้ครอบคลุมทุกข้อมูลใน
ฐานข้อมูล
 การเปลี่ ยนแปลงโครงสร้ างข้อมูล ทาได้ยาก เนื่ องจากต้อง
คานึงถึง set ของความสัมพันธ์ต่าง ๆ ที่กาหนดไว้
 เนื่ องด้วย Network database model มีโครงสร้างที่ยงุ่ ยาก
และสลับซับซ้อน ไม่มีลกั ษณะ User-Friendly จึงเหมาะสาหรับ
ผูท้ ี่มีความเชี่ยวชาญหรื อ โปรแกรมเมองมากกว่า
56
Relational Database Model
ฐานข้ อ มู ล ที่ มี โ ครงสร้ า งข้ อ มู ล ในแบบ Relational
พัฒนาขึ้นมาจากแบบจาลองที่แสดงความสัมพันธ์ระหว่างข้อมูลที่
จัด เก็บอยู่ใ นฐานข้อมู ล ที่ มี โครงสร้ างข้อมูล ในแบบ Relational
จะถูกแยกออกเป็ นหน่วยย่อย ๆ เรี ยกว่า Relation หรื อเรี ยกว่า
Table ซึ่ งอยูใ่ นรู ปของตารางที่ประกอบด้วยชุดของแถวและชุด
ของคอลัมน์ ข้อมูลที่จดั เก็บอยูใ่ นแต่ละ Relation จะเป็ นข้อมูลที่
แยกเป็ นเอกเทศ แต่สามารถนามาสร้างความสัมพันธ์ร่วมกันได้
จะอยูใ่ นรู ปแนวความคิดมากกว่าโครงสร้างทางกายภาพ
57
Relational Database Model
 โครงสร้ างพืน้ ฐาน
Relational database model ทางานผ่านโปแกรมประเภท
Relational Database Management System RDBMS) เป็ นระบบ
จัดการฐานข้อมูลที่ค่อนข้างมีความสลับซับซ้อนสู ง แต่ RDBMS
จะซ่อนการทางานส่ วนนี้ไว้จากผูใ้ ช้ โดยเพิม่ ความสะดวกสบายใน
การทางาน ผ่านทางรู ปแบบที่มีความเป็ น User-Friendly เพื่อให้
ผูใ้ ช้ทางานได้โดยง่ าย โดยที่ ผูใ้ ช้ไม่จาเป็ นต้องเข้าใจ Physical
structure ของข้อมูลเลย
58
Relational Database Model
 โครงสร้ างพืน้ ฐาน (ต่อ)
ใน Relation database ผูใ้ ช้มองเห็นข้อมูลในรู ปแบบของ
ตาราง (Table) ซึ่ งเรี ยกว่า relation
เก็บข้อมูลในรู ปแถวและ
คอลัมน์ (row& column) ความสัมพันธ์ของข้อมูลเชื่อมผ่านทาง
ส่ ว นของข้อ มู ล ที่ มี ค่ า เหมื อ นกั น ตัว อย่ า งเช่ น ตารางข้อ มู ล
Product Category ที่แสดงไว้ดา้ นล่าง
59
PID PName
P001
A1
P002
B1
P003
C1
P004
A2
QuantityPerUnite UnitePrice
100
500
200
1000
300
350
200
100
CID CName
1
A
2
B
3
C
CID
1
2
3
1
Description
White
Black
Pink
60
Relational Database Model
61
ข้ อดีของ Relational Database Model
 ข้อมูลเป็ นอิสระจากตัวโปรแกรม ดังนั้นโปรแกรมใด ๆ สามารถเรี ยกใช้
ฐานข้อมูลได้
 มีภาษาฐานข้อมูลที่ ใช้จดั การกับข้อมูลภายในฐานข้อมูลได้อย่างง่าย คือ
ภาษา SQL (Structure Query Language) ซึ่งประกอบไปด้วยภาษาต่าง ๆดังนี้
จัดการโครงสร้างข้อมูล (DDL) และเรี ยกใช้ขอ้ มูล (DML) เป็ นภาษาที่ทาให้
สามารถจัดการกับข้อมูลได้โดยไม่ตอ้ งเขียนโปรแกรม เราสามารถดึงข้อมูลที่
ต้องการโดยใช้ภาษา SQL เขียนเพียง 1 บรรทัด ในขณะที่หากเขียนโปรแกรม
สาหรับ Hierarchical และ Network Model อาจจะเขียนถึง 500 บรรทัด
นอกจากนี้รูปแบบในการใช้ SQL มีลกั ษณะง่ายและทารวดเร็ วที่ User สามารถ
62
ข้ อดีของRelational Database Model
สามารถทาความเข้าใจได้ง่าย โดยไม่จาเป็ นต้องมีความรู้
ทางด้าน Programming ก็สามารถใช้ SQL ได้
 แท้จริ งแล้ว RDBMS เป็ นโปรแกรมที่มีความซับซ้อนสู งกว่า
Hierachical และ database Model และความสามารถหนึ่งในความ
ซับซ้อนนั้นคือ ความสามารถที่จะซ่ อนความซับซ้อนจากสายตา
ของ User ทัว่ ไปผ่านทาง User-interface ที่มีลกั ษณะ Userfriendly ทาให้ User ไม่ตอ้ งกังวลกับโครงสร้างของระบบ และ
สามารถให้ความสาคัญกับ Logical ของข้อมูลได้อย่างเต็มที่
63
ข้ อเสี ยของ Relational Database Model
 ความสามารถในการซ่ อนความสลับซับซ้อนของระบบทา
ให้ Relational database model ต้องใช้คอมพิวเตอร์ ที่มี
ประสิ ทธิ ภาพ ทาให้มีตน้ ทุนสู งกว่าระบบอื่น และยังทางานได้
ค่ อ นข้ า งช้ า กว่ า ระบบอื่ น แต่ เ นื่ องจากเทคโนโลยี ข อง
คอมพิวเตอร์ เติบโตอย่างรวดเร็ ว
64
ข้ อเสี ยของ Relational Database Model
 Relational
database
ง่ายต่อการใช้งานจริ ง แต่
จาเป็ นต้องมีการออกแบบที่ดี โดยเฉพาะอย่างยิงสาหรับระบบที่
มีขนาดใหญ่ เพราะหากออกแบบระบบไม่ดี จะไม่สามารถใช้
relational database ได้มีประสิ ทธิภาพเต็มที่แล้วยังจะทาให้ระบบ
ทางานได้ชา้ ลงอีกด้วย
65