290 likes | 381 Views
Chapter 7. Analysis: Component Data Model & Database Model. Aj. Khuanlux Mitsophonsiri CS.324 & CS.313 System Analysis and Design . ส่วนประกอบของแบบจำลองข้อมูล Data Model
E N D
Chapter 7 Analysis:Component Data Model& Database Model Aj. Khuanlux Mitsophonsiri CS.324 & CS.313 System Analysis and Design
ส่วนประกอบของแบบจำลองข้อมูล Data Model 1. ส่วนโครงสร้าง (Structural)ประกอบด้วยกลุ่มสัญลักษณ์รวมทั้งกฎระเบียบที่เห็นพ้องต้องกัน เพื่อใช้ในการสร้างฐานข้อมูล เช่น การจัดเก็บข้อมูลในรูปแบบของตาราง (Table) (Column – Row) 2. ส่วนปรับปรุง (Manipulative)เป็นส่วนที่กำหนดชนิดของการปฏิบัติการต่างๆที่เกี่ยวกับข้อมูล ประกอบด้วยการ Update , การเรียกดูข้อมูลจากฐานข้อมูล , การเปลี่ยนแปลงโครงสร้างฐานข้อมูล นิยมใช้ SQL ในการจัดการข้อมูล 3. ส่วนกฎความคงสภาพ (a set of integrity rules)เป็นกฎเกณฑ์ที่ใช้ใน การควบคุมความถูกต้องของข้อมูล เพื่อให้เกิดความมั่นใจในความถูกต้องก่อนการบันทึกข้อมูล
คุณสมบัติของแบบจำลองข้อมูลที่ดีคุณสมบัติของแบบจำลองข้อมูลที่ดี 1. ง่ายต่อความเข้าใจ - ใช้กฎเกณฑ์ทั่วไป โดยมีข้อมูล Attribute อธิบายในรายละเอียดของแต่ละ Entity 2. มีสาระสำคัญและไม่ซ้ำซ้อน - Attribute ในแต่ละ Entity ไม่ควรมีข้อมูลซ้ำซ้อนโดยบาง Attribute อาจจะเป็น Foreign Key เพื่อใช้ในการอ้างอิงข้อมูลในอีก Entity หนึ่ง 3. มีความยืดหยุ่นและง่ายต่อการปรับปรุงในอนาคต - ไม่ขึ้นกับ Application Program , การเปลี่ยนแปลงโครงสร้างไม่กระทบกับโปรแกรม
แบบจำลองฐานข้อมูล (Database Model) 1. แบบจำลองฐานข้อมูลแบบลำดับชั้น (Hierarchical database Model) 2. แบบจำลองฐานข้อมูลแบบเครือข่าย (Network database Model) 3. แบบจำลองฐานข้อมูลเชิงสัมพันธ์ (Relational database Model) 4. แบบจำลองฐานข้อมูลเชิงวัตถุ (Object-Oriented database Model)
1. แบบจำลองฐานข้อมูลแบบลำดับชั้น (Hierarchical database model) - เป็นการจัดโครงสร้างแบบบนลงล่าง (Top-down) - มีลักษณะคล้ายโครงสร้างต้นไม้ (Tree Structure) เป็นลำดับชั้น - ข้อมูลจะมีความสัมพันธ์แบบ one-to-many ระดับสูงสุดเรียกว่า Root - มีความสัมพันธ์แบบ Parent / Child (พ่อ/ลูก) - เป็นสถาปัตยกรรมฐานข้อมูลที่เก่าแก่ที่สุด ปัจจุบันไม่นิยมใช้งานแล้ว - ยากต่อการพัฒนา Application, - การปรับปรุงโครงสร้างมีความยืดหยุ่นน้อย - ไม่สามารถกำหนดความสัมพันธ์แบบ many-to-many
Hierarchical Database Customers Customer Order Items Ordered Orders To retrieve data, you must start at the top (customer). Items Item Description Quantity 998 Dog Food 12 764 Cat Food 11
Hierarchical database model ข้อดี 1. มีโครงสร้างที่เข้าใจง่าย - Tree Structure 2. โครงสร้างของฐานข้อมูลซับซ้อนน้อยที่สุด เหมาะกับข้อมูลที่มีความสัมพันธ์ แบบone-to-many 3. มีการป้องกันความปลอดภัยของข้อมูลที่ดี เพราะต้องอ่านข้อมูลที่เป็น ต้นกำเนิดก่อน 4. เหมาะกับข้อมูลที่มีการเรียงลำดับแบบต่อเนื่อง
Hierarchical database model ข้อเสีย 1. ไม่สามารถรองรับข้อมูลที่มีความสัมพันธ์แบบ many-to-many ได้ 2. มีความยืดหยุ่นน้อย และยุ่งยากในการปรับเปลี่ยนโครงสร้าง Tree 3. การเรียกใช้ข้อมูลต้องผ่านจาก Root เสมอ การค้นหาข้อมูลในระดับล่าง ต้องค้นหาทั้งแฟ้มข้อมูล 4. การพัฒนาโปรแกรมค่อนข้างยาก ต้องทราบถึงโครงสร้างใน การจัดเก็บข้อมูล
2. แบบจำลองข้อมูลเครือข่าย (Network Database Model) มีลักษณะโครงสร้างที่คล้ายกับโครงสร้างแบบลำดับชั้น แต่แตกต่างกันที่ข้อมูลมีความสัมพันธ์ได้ทั้งแบบ one-to-one , one-to-many และmany-to-many อีกทั้งยังสามารถนำเอาอัลกอริทึมของการ Hashingมาใช้ในการค้นหาข้อมูล
สินค้า ลูกค้า Ram A CPU B Printer C Mouse D แบบจำลองข้อมูลเครือข่าย (Network Database Model)
Network Database Entry point Customer Order Items Ordered Items Entry point
แบบจำลองข้อมูลเครือข่าย (Network Database Model) ข้อดี 1. สนับสนุนความสัมพันธ์แบบ many-to-many 2. ความซับซ้อนในข้อมูลเกิดขึ้นน้อยกว่าแบบลำดับชั้น 3. สามารถเชื่อมโยงข้อมูลแบบไปกลับได้ 4. มีความยืดหยุ่นในการค้นหาข้อมูลดีกว่า โดยใช้ Pointer ในการเข้าถึงข้อมูล ข้อเสีย 1. เนื่องจากสามารถเข้าถึงข้อมูลได้โดยตรง ทำให้การป้องกันความปลอดภัยของ ข้อมูลมีน้อยลง 2. สิ้นเปลืองเนื้อที่ของหน่วยความจำในการเก็บ Pointer 3. การเปลี่ยนแปลงในโครงสร้างยังมีความยุ่งยากอยู่
3. แบบจำลองข้อมูลเชิงสัมพันธ์ (Relation Database Model) เป็นแบบที่คนใช้มากที่สุดในปัจจุบัน เป็นผลงานของ E.F.Codd (ค.ศ. 1970) นำเสนอข้อมูลในรูปแบบตาราง ทำให้สามารถเข้าใจได้ง่าย ประกอบด้วย Row และ Column สามารถแสดงความสัมพันธ์ได้ทั้งแบบ one-to-one , one-to-many และ many-to-many และใช้ Key ในการอ้างอิงกับตารางอื่น (Primary key , Secondary Key) สามารถใช้คำสั่ง SQLในการจัดการกับฐานข้อมูลชนิดนี้
Attribute Employee Cardinality Relation Degree Primary Key Payroll Foreign Key แบบจำลองข้อมูลเชิงสัมพันธ์ (Relation Database Model)
Relational Database Customer(CustomerID, Name, … Order(OrderID, CustomerID, OrderDate, … ItemsOrdered(OrderID, ItemID, Quantity, … Items(ItemID, Description, Price, …
Relation Order Relation Items Ordered
Common Order System Customer Salesperson 1 1 Order m m 1 m OrderItem 1 m Item Customer(CustomerID, Name, Address, City, Phone) Salesperson(EmployeeID, Name, Commission, DateHired) Order(OrderID, OrderDate, CustomerID, EmployeeID) OrderItem(OrderID, ItemID, Quantity) Item(ItemID, Description, ListPrice)
แบบจำลองข้อมูลเชิงสัมพันธ์ (Relation Database Model) ข้อดี 1. สามารถสื่อสารและเข้าใจได้ง่าย 2. สามารถเลือกแสดงข้อมูลตามเงื่อนไขได้หลาย Key Field 3. ความซับซ้อนของข้อมูลมีน้อยมาก 4. มีระบบรักษาความปลอดภัยที่ดีผู้ใช้งานไม่ต้องทราบโครงสร้างของการเก็บข้อมูลภายในฐานข้อมูล 5. โครงสร้างของฐานข้อมูลมีความอิสระจากโปรแกรม ข้อเสีย 1. ต้องมีการลงทุนสูงเนื่องจากต้องใช้ Hardware และ Software ที่มีความสามารถสูง
ส่วนประกอบของโครงสร้างฐานข้อมูลเชิงสัมพันธ์ส่วนประกอบของโครงสร้างฐานข้อมูลเชิงสัมพันธ์ (Relation Database Structure) Relation - ตาราง 2 มิติ ประกอบด้วย Row และ Column Attribute - คุณสมบัติหรือรายละเอียดของ Relation Domain - เป็นการกำหนดขอบเขตค่าข้อมูล และชนิดของข้อมูล เช่น Salary - มีค่าไม่เกิน 7 digits , เพศ - 1= ชาย / 2 = หญิง Tuple - คือแถวแต่ละแถวใน Relation Degree - คือจำนวน Attribute ที่บรรจุอยู่ใน Relation Cardinality - คือจำนวน Tuple หนึ่งที่บรรจุอยู่ใน Relation หนึ่งที่ไปมี ความสัมพันธ์ใน Tuple ของอีก Relation หนึ่ง
คุณสมบัติของ Relation (Properties of Relations) 1. Relation ต้องมีชื่อกำกับ และชื่อซ้ำกันไม่ได้ 2. แต่ละ Attribute ของ Relation จะบรรจุค่าเพียงค่าเดียว (single value) 3. ชื่อของแต่ละ Attribute ในแต่ละ Relation จะต้องไม่ซ้ำกัน 4. ค่าของข้อมูลใน Attribute ต้องเป็นไปตามข้อกำหนดของ Domain ใน Attribute นั้นๆ 5. การเรียงลำดับในแต่ละ Attribute ไม่มีความสำคัญใดๆ 6. แต่ละ Tuple ต้องไม่มีข้อมูลที่ซ้ำกัน 7. การเรียงลำดับของแต่ละ Tuple ไม่มีความสำคัญใดๆ
Keys คือการกำหนด Column หรือกลุ่มของ Column เพื่อใช้ในการระบุแถว ต่างๆ โดยทำให้แต่ละแถวมีความแตกต่างกัน ตัวอย่างของ Key มีดังนี้ 1. Super Key คือ Attribute หรือกลุ่มของ Attribute ที่บ่งบอกถึงความเป็นเอกลักษณ์ของแต่ละ Tuple ใน Relation นั้น 2. Candidate Key คือ Key คู่แข่ง 3. Primary Key คือ Key คู่แข่งที่ผ่านการคัดเลือกเพื่อให้เป็น Primary Key และใช้ในการอ้างอิงรวมทั้งแสดงความเป็นเอกลักษณ์ของ Relation นั้น
4. Secondary Key หรือ Alternate Key เป็น Key สำรอง คือ Key คู่แข่งที่ไม่ได้ถูกเลือกเป็นKey หลัก (Primary Key) 5. Foreign Key (FK) คือ Keyนอก ประกอบด้วย Attribute หรือกลุ่มของ Attribute ในRelation ที่มีคุณสมบัติเป็น Key หลัก และไปปรากฏในอีก Relation หนึ่ง Keyนอก จัดเป็น Keyที่มีความสำคัญเพราะเป็นตัวเชื่อม ความสัมพันธ์ใน Relation 6. Composite Key เป็น Key คู่แข่งที่ประกอบด้วยกลุ่มของ Attribute ซึ่งอาจเรียกเป็น Concatenated Key หรือ Compound Key
4. แบบจำลองฐานข้อมูลเชิงวัตถุ (Object Oriented Database Model) - เกิดจากแนวคิดของการเขียนโปรแกรมเชิงวัตถุ (OOP Object Oriented Program) โดยการมองของทุกสิ่งเป็นวัตถุ โดยแต่ละวัตถุจะเป็นแหล่งรวมของข้อมูลและการปฏิบัติงาน (Data & Procedure) - มีคลาสเป็นตัวกำหนดคุณสมบัติหรือรายละเอียดของวัตถุ รวมทั้งคุณสมบัติ การปกปิดความลับของวัตถุ (Encapsulation) - การเข้าถึงข้อมูลต้องมีการตอบรับจาก Method ในวัตถุนั้นว่าจะอนุญาต ในการส่งMessage เพื่อการติดต่อหรือไม่
Object Class 1 Attributes Object Class 2 Object Class 3 Attributes Attributes Methods Methods Methods แบบจำลองฐานข้อมูลเชิงวัตถุ (Object Oriented Database Model)
Government Customer Commercial Customer ContactName ContactPhone Discount, … ContactName ContactPhone … NewContact NewContact Object-Oriented DBMS Order Customer OrderID CustomerID … CustomerID Name … NewOrder DeleteOrder … Add Customer Drop Customer Change Address OrderItem Item OrderID ItemID … ItemID Description … OrderItem DropOrderItem … New Item Sell Item Buy Item …
แบบจำลองฐานข้อมูลเชิงวัตถุ (Object Oriented Database Model) ข้อดี 1. สามารถจัดการกับข้อมูลที่มีความซับซ้อนได้เป็นอย่างดี (Graphic , VDO , Voice) 2. สนับสนุนคุณสมบัติของการนำกลับมาใช้ใหม่ (Reuseable) ข้อเสีย 1. ต้องอาศัยบุคลากรที่มีความรู้และประสบการณ์มากในการจัดการกับ ฐานข้อมูลชนิดนี้