670 likes | 897 Views
รายละเอียดเสริมเพิ่มเติมเกี่ยวกับ การออกแบบฐานข้อมูล. Database Life Cycle : DBLC ทบทวน Entity-Relationship Model การแปลง Entity เป็น Relation Entity แบบของความสัมพันธ์ของ Entity Relational Model จาก ER-Model.
E N D
รายละเอียดเสริมเพิ่มเติมเกี่ยวกับ การออกแบบฐานข้อมูล Database Life Cycle :DBLC ทบทวน Entity-Relationship Model การแปลง Entity เป็น Relation Entity แบบของความสัมพันธ์ของ Entity Relational Model จาก ER-Model
บทเสริมเพิ่มเติมเรื่องObject ก่อนศึกษา Database Life Cycle :DBLC • Object คือ สิ่งใด ๆ ที่เราสนใจ อาจเป็นสิ่งที่จับต้องได้ เช่น สินค้า ลูกค้า พนักงาน หรือสิ่งที่จับต้องไม่ได้ เช่น บริษัท ฝ่ายต่าง ๆ • ลักษณะของ Object • State คือ สถานะของ Object ซึ่งจะมีคุณสมบัติเฉพาะบอกให้รู้ว่าเป็น Object อะไร โดยคุณสมบัติจะขึ้นอยู่กับมุมมองแต่ละคน เช่น ค้อน มี หัว กับด้าม • Behavior คือ พฤติกรรมของ Object ที่กระทำเพื่อให้สถานะของ Object เปลี่ยนไป เช่น ส่ง massage หรือ รับ massage • Identity คือ คุณลักษณะที่ทำให้ Object แต่ละ Object แตกต่างกัน เช่น ค้อน 1ปอนด์
ลักษณะของวิธีการเชิงวัตถุลักษณะของวิธีการเชิงวัตถุ • วิธีการเชิงวัตถุจะสมบูรณ์ได้ต้องประกอบไปด้วยองค์ประกอบ 4 อย่าง คือ • มุมมองของออบเจ็กต์ (Abstraction) • คุณค่าภายในออบเจ็กต์ (Encapsulation) • ลำดับชั้นของออบเจ็กต์ (Hierarchy) • การตอบสนองต่อเมสเสจ (Polymorphism)
มุมมองของออบเจ็กต์ (Abstraction) • Abstraction : กระบวนการทางความคิดในการอธิบายสิ่งหนึ่งสิ่งใดที่สนใจ เช่น Abstraction ของจักรยาน ประกอบด้วย ล้อ อาน เบรก บันไดถีบ ฯลฯ
คุณค่าภายในออบเจ็กต์ (Encapsulation) • Encapsulation เป็นกลไกการซ่อนสารสนเทศไว้ใน Object เช่น เมื่อพูดถึง จักรยาน จะมีข้อมูลบางอย่างที่เกี่ยวข้อง ได้แก่ น้ำหนัก วัสดุที่เป็นองค์ประกอบ และประวัติความเป็นมา ฯลฯ น้ำหนัก วัสดุที่ใช้ ประวัติ
ลำดับชั้นของออบเจ็กต์ลำดับชั้นของออบเจ็กต์ • Hierarchy เป็นการนำออปเจ็กต์มาจัดกลุ่มและสร้างความสัมพันธ์ ยานพาหนะ
การตอบสนองต่อเมสเสจ (Polymorphism) • Polymorphism เป็นพฤติกรรมที่ออบเจ็กต์ที่ต่างกันตอบสนองต่อเมสเสจเดียวกันได้ต่างกัน เช่น ออบเจ็กที่เป็นตัวเลข กับออบเจ็กที่เป็นตัวอักษร ตอบสนองต่อสัญลักษณ์(เมสเสจ) + ต่างกัน ตัวเลข 25,2 เมื่อมี เมสเสจ + จะตอบสนองได้ค่า 27 ตัวอักษร 25,2 เมื่อมี เมสเสจ + จะตอบสนองได้ค่า 252
Abstraction ที่ใช้ใน Data Model • Classification Abstraction : เป็นการจัดกลุ่มของสิ่งที่สนใจตามคุณสมบัติที่มีร่วมกัน ซึ่งกลุ่มที่จัดเรียกว่า Class เช่น Class ชื่อพนักงานประกอบด้วย สมบัติ จำลอง ลาวัลย์ …..ธาราทิพย์ ชื่อพนักงาน ธาราทิพย์ สมบัติ จำลอง ลาวัลย์
Abstraction ที่ใช้ใน Data Model • Aggregation Abstraction : เป็นการจัด Class ขึ้นมาใหม่จาก Class เดิม โดย Class เดิมจะถูกใช้เป็นส่วนประกอบของ Class ใหม่ เช่น Class พนักงานบริษัท ประกอบด้วย Class ชื่อพนักงาน Class เพศ และ Class ตำแหน่ง ฯลฯ พนักงานบริษัท Aggregation ชื่อพนักงาน เพศ ตำแหน่ง สมบัติ จำลอง สาวัลย์ ชาย หญิง ผู้จัดการ การตลาด พัสดุ
Abstraction ที่ใช้ใน Data Model • Generalization Abstraction : เป็นการนำ Class ที่มีความสัมพันธ์กันมาจัดเป็นกลุ่มของ Class ใหม่ ซึ่งเรียก Class ที่จัดขึ้นมาใหม่ว่า Superset ส่วน Class เดิมเรียกว่า Subset Superset แผนกคลัง รถยนต์ Subset การเงิน บัญชี บรรทุก เก๋ง แทรกเตอร์
ประเภทความสัมพันธ์ภายใต้ Aggregation Abstraction D1 D2 D3 D1 D2 D3 B1 B2 F1 F2 F3 F4 C1 C2 D1 D2 D3 One to One One to Many C1 C2 C3 F1 F2 F3 Many to One Many to Many
Database Life Cycle :DBLC • Database Initial Study :วิเคราะห์ความต้องการของผู้ใช้ • Data Design :ออกแบบฐานข้อมูล (Data Driven, Joint Data and Function-driven) • Implementation and Loading :สร้างเป็นฐานข้อมูล • Testing and Evaluation :ทดสอบฐานข้อมูลที่สร้าง • Operation :ใช้งานฐานข้อมูล • Maintenance and Evaluation :บำรุงรักษาฐานข้อมูล
วงจรชีวิตการพัฒนาฐานข้อมูล Database Life Cycle : DBLC วิเคราะห์ความต้องการ Initial Study ออกแบบฐานข้อมูล Database Design บำรุงรักษา Maintenance สร้างฐานข้อมูล Implement and Loading ใช้งานจริง Operation ทดสอบระบบฐานข้อมูล Testing and Evaluation
Data Driven Approach ( Database Design ) • Conceptual Design :อธิบายโครงสร้างหลักของฐานข้อมูล โดยไม่สนใจว่าจะใช้โครงสร้างข้อมูล หน่วยสำรองข้อมูล และ DBMS (Conceptual Schema) • Logical Design :นำ Conceptual schema มาดัดแปลงให้อยู่ในรูปแบบที่กำหนดโดย Database Model (Hierarchical ,Relational , Object-oriented หรือ Network) = Logical Schema • Physical Design : เปลี่ยน Logical Schema ให้อยู่ในรูปแบบที่กำหนดโดย DBMS =Physical Schema
Data Requirements Conceptual Design Conceptual Schema Logical Design Logical Schema Physical Design Physical Schema
Entity-Relationship Model • Data Model ที่นิยมใช้นำเสนอรายละเอียดต่าง ๆที่เกี่ยวข้องกับฐานข้อมูลที่ออกแบบ • แบบจำลองที่มีรูปภาพ แทนโครงสร้างทางด้าน Abstraction • Entity :รูปภาพที่ใช้แทน Class ของสิ่งของต่าง ๆ ที่สามารถระบุได้ในความเป็นจริง
Order Detail Entity • Regular Entity :มีสมาชิกที่มีคุณสมบัติ บ่งบอกเอกลักษณ์ของ Entity • Weak Entity : ลำพังสมาชิกของ Entity จะไม่สามารถบ่งบอกคุณสมบัติ Entity ได้ ต้องอาศัยสมาชิกจาก Entity อื่น POPULAR
Attribute • ได้แก่ Class ของคุณสมบัติต่าง ๆ ที่นำมารวมกันแบบ Aggregation Abstraction เพื่อเป็น Entity หรือ Relationship • - Simple Attribute :เป็น Attribute ที่ไม่สามารถแยกย่อยได้อีก Name Sex EmpID Salary Attribute EMPLOYEE Entity
Attribute • - Composite Attribute :เป็น Attribute ที่ค่าภายใน Attribute สามารถแยกย่อยได้อีก F_Name Sex Name Salary S_Name EMPLOYEE EmpID
Attribute • - Identifier Attribute :เป็น Attribute ที่มีค่าในสมาชิกของ Entity ไม่ซ้ำกันเลย Sex F_Name Name Salary S_Name EMPLOYEE EmpID
Attribute • - Multi-Valued Attribute :เป็น Attribute ที่ค่าของข้อมูลได้หลายค่าภายใต้ Attribute ใด Attribute หนึ่ง Sex F_Name Name Salary S_Name Degree EMPLOYEE EmpID
Attribute • - Derive Attribute :เป็น Attribute ที่ค่าของข้อมูลได้มาจากการนำค่าของ Attribute อื่นมาคำนวณ Sex F_Name Name Salary S_Name Tot_sal EMPLOYEE EmpID
Relationship • เป็นการนำ Entity มารวมกันแบบ Aggregate Abstraction Work_In EMPLOYEE DEPARTMENT
One-to-One Relationship • เป็น Relationship ที่ Participant ของ Entity หนึ่งจะมีความสัมพันธ์กับอีก Participant ของอีก Entity เพียง Participant เดียว • CUSTOMER= {C1, C2, C3} • ACCOUNT = {A1,A2, A3} • BELONG_TO = {(C1,A1),(C2,A2),(C3,A3)} Belong to (1) (1) CUSTOMER ACCOUNT
One-to-Many Relationship • เป็น Relationship ที่ Participant ของ Entity หนึ่งจะมีความสัมพันธ์กับ Participant ของอีก Entity หนึ่งมากกว่า 1 Participant • CUSTOMER= {C1, C2, C3} • ACCOUNT = {A1,A2, A3,A4} • BELONG_TO = {(C1,A1),(C2,A3),(C1,A4),(C3,A2)} Belong to (1) (n) CUSTOMER ACCOUNT
Many-to-Many Relationship • เป็น Relationship ที่ Participant มากกว่า 1 Participant ของ Entity หนึ่งจะมีความสัมพันธ์กับ Participant ของอีก Entity มากกว่า 1 Participant • CUSTOMER= {C1, C2, C3} • ACCOUNT = {A1,A2, A3} • BELONG_TO = {(C1,A1),(C2,A2),(C1,A3),(C3,A1)} Belong to (m) (n) CUSTOMER ACCOUNT
แบบของความสัมพันธ์ของ Entity • Binary Relationship : เป็นความสัมพันธ์ระหว่าง 2 Entity • N-ary Relationship : เป็นความสัมพันธ์ระหว่าง 2 Entity ขึ้นไป • Recursive Relationship : เป็นความสัมพันธ์ทที่เกิดกับ Entity เดียว Employee Schedual Room Course ROOM ={R1,R2,R3} Manage of TIME ={T1,T2,T3} Time EMPLOYEE ={E1,E2,E3,E4} COURSE ={C1,C2,C3} SCHEDULE ={(R1,T1,C1),(R2,T2,C2),R3,T3,C3)} Manage of ={(E1,E4),(E2,E4), (E3,E4),(E4,-)}
การออกแบบฐานข้อมูลในระดับ Conceptual • เป็นการออกแบบฐานข้อมูลที่อยู่ในรูปนามธรรม ยังไม่เกี่ยวข้องกับตัว DBMS • แบบของการออกแบบอยู่ในรูป Conceptual Schema or Conceptual Data Schema (รายละเอียดของข้อมูลทั้งหมดที่เกี่ยวข้องกับความต้องการ)
ขั้นตอนการออกแบบในระดับ Conceptual • Requirement Analysis : ศึกษาความต้องการอย่างละเอียด • Initial Conceptualization : สร้าง Conceptual Schema ที่มีโครงสร้างรูปแบบ Abstraction ประกอบด้วย Entity, Relation และ Generalization • Integration : นำเเอา Initial Conceptualization มารวมกัน (Merging) เป็นโครงสร้างที่สมบูรณ์ (จัดรูปแบบ และกำจัดโครงสร้างที่ขัดแย้ง) • Restructuring:เป้นการปรับ Conceptual Schema ให้มีคุณภาพ เช่น การทำ (Normalization)
Refinement • การออกแบบ Conceptual Design ด้วย E-R Model จะอาศัยกระบวนการทำซ้ำ ที่เริ่มจากการร่าง แล้วค่อยปรับเปลี่ยนให้มีความระเอียดและสมบูรณ์มากยิ่งขึ้น • หลักการ • การแปลงทุกครั้ง Concept ที่เกิดขึ้นจะต้องมีความสัมพันธ์กับ Concept ในส่วนอื่นที่ไม่ถูกแปลง • Primitive ที่ใช้ในการแปลงมี 2 แบบ คือ Top-down และ Bottom-up
Primitive แบบ Top-down • เป็นกฎที่ใช้ขยาย Concept เดิมเป็น Concept ใหม่ที่มีความระเอียดมากขึ้น • Concept เดิม ถูกขยายเป็น Concept ย่อย • ชื่อของ Concept เดิมถูกเปลี่ยน เพื่ออ้างถึง Concept ในระดับย่อย • Concept ย่อยจะต้องสืบทอดความสัมพันธ์ของ Concept เดิมไว้
Primitive แบบ Top-down • T1: Entity Related Entities • T2: Entity Subset งาน คน สถานที่ คน คน ชาย หญิง
Primitive แบบ Top-down • T3: Entity Unrelated Entities • T4 : Relationship Parallel Relationship NOBEL OSCAR AWORD นักศึกษา นักศึกษา ลงทะเบียน สอบ วิชา วิชา
Primitive แบบ Top-down • T5: Relationship Entity with Relationship EMPLOYEE EMPLOYEE WORK WITH WORK IN MANAGER DEPARTMENT HEAD OF DEPARTMENT
Primitive แบบ Top-down • T6 : Attribute Development
สิ่งที่ต้องทำในการปรับ E-R Model(เพิ่มเติม) • 1.กำจัด Composite Attribute • แยก Composite Attribute ออกเป็น Attribute ย่อย F Name F Name S Name Person Person Sex S Name Amp Sex Chw Amp Address Chw • ยุบ Composite Attribute ให้เหลือ Attribute เดียว F Name F Name Person Person S Name S Name Sex Sex Address Address
สิ่งที่ต้องทำในการปรับ E-R Model • 2. กำจัด Multivalue Attribute • แปลง Multivalue Attribute เป็น Entity ใหม่ โดยเพิ่ม Identifier ของ Entity เดิม Product_code Product Description Price Product_code Product Description Price Product_code Material Material_code Material_code
สิ่งที่ต้องทำในการปรับ E-R Model • แยก Multivalue Attribute ของ Relation ออกเป็น Entity แล้วรวมทุก Identifierของ Entity ที่เกี่ยวข้อง Instructor_Id Instructor Department Phone_no Max_of_Std Semester(1,n) Course_no Course Offer Offer Instructor_Id Semester(1,n) Course_no Course
สิ่งที่ต้องทำในการปรับ E-R Model • 3.กำจัด External Identifier • แปลง External Identifier เป็น Attribute ของ Week Entity University-Code University Name Chw University-Code Student Student-No Enroll Last-name Age Student_no Student Last_name Age
การแปลง Entity เป็น Relation University-Code Student-No Last-name Age University-Code Student Student-No Last-name Age Student (University-Code, Student-No, Last-name, Age)
One to One Relation • กรณี Relationship ไม่มี Attribute (1) (1) Cus_No Cus_No Customer with Shipping Info Shipping-Address Cus_name Cust-Shipping Cus-No Cus_name Ship-Address Cus_Shipping(Cus-No,Cus_Name,Shipping_Address) -ให้แปลง Relationship กับ Entity เป็น Relation เดียว แล้วเลือก Identified attribute ข้างใดข้างหนึ่งเป็น Primary key
One to One Relation(เพิ่มเติมส่วนที่ขาดไป ที่ถามถึง) • กรณี Relationship มี Attribute Duration Date (1) (1) Female_No Male_No Male Marriage Female Female_Name Name Male (Male-No,Name) Female (Female-No,Name) Marriage (Male-No,Female_No,Date,Duration)
One to Many Relation Date Belong To (N) State Name (1) City Name City State Government Population Population City (City_name , State_name ,Population) State (State_name ,Government,Population,Date) หลักการ: ให้ย้ายสมาชิกของ Relationship ไปด้าน One แล้วสำเนา Identifier Attribute ด้าน One ไปไว้ที่ด้าน Many
Many to Many Relation Semester Grade M Course_No Student_Name N Student Enroll in Course Last_name Course_Name GPA Student (Student_name , Last_name ,GPA) Course (Course_No , Course_name) Enroll In ( State_name , Course_No , Semester, Grade) หลักการ:ให้แปลง Relationship เป็น Relation ที่มี Identifier Attribute ของ Entity ทั้ง 2 ด้านเป็น Key
N-Ary Relationship Product_code Product Name Description (1,N) (1,N) (1,N) Supplier_Code Part Supply Supplier Name Address Tel Part_No Description Product (Product_Code , name ,Description) Part (Part_No , Description) Supplier ( Supplier_Code , Name, Address, Tel) Supply ( Product_Code , Part_No, Supplier_Code, Quality)
Recursive Relationship Date of birth Employee Name Manager of Employee (Name,Date of birth) Manage of (Name of manager, Name of Employee)