โมเดลจำลองความสัมพันธ์ระหว่างข้อมูล (ER-Diagram)

Slides:



Advertisements
งานนำเสนอที่คล้ายกัน
ภาควิชาวิทยาการคอมพิวเตอร์ มหาวิทยาลัยสงขลานครินทร์
Advertisements

เทคโนโลยีฐานข้อมูลสำนักงาน
จัดการฐานข้อมูลด้วย Microsoft Access 2007
E-R Model บรรยายโดย สุรางคนา ธรรมลิขิต.
วงจรพัฒนาระบบ (System Development Life Cycle)
การกำหนดปัญหา และความต้องการ (Problem Definition and Requirements)
แผนการสอน วิชา Database Design and Development
การวิเคราะห์ระบบและวิธีปฏิบัติงาน
Graduate School Khon Kaen University
กิตติพงศ์ เซ่งลอยเลื่อน (ดอน)
อ.กิตติพงศ์ เซ่งลอยเลื่อน อาจารย์พิเศษ มหาวิทยาลัยแม่โจ้
บทที่ 2 รูปแบบของฐานข้อมูล.
สถาปัตยกรรมฐานข้อมูล
ความรู้ทั่วไปเกี่ยวกับโปรแกรม Microsoft Office Access 2003
ฐานข้อมูลเชิงสัมพันธ์
บทที่ 8 การออกแบบข้อมูล (Data Design) โครงสร้างข้อมูล (Data Structure)
ระบบฐานข้อมูล ข้อมูลมีความสำคัญมากต่อองค์การ ดังนั้นจะต้องมีการจัดเก็บที่เป็นระบบ สามารถค้นหาได้ง่าย เพื่อที่นำมาใช้ให้ทันเวลา ในการตัดสินใจของผู้บริหาร.
Object-Oriented Analysis and Design
Use Case Diagram.
ระบบห้องสมุดอัตโนมัติ สำหรับสถาบันอุดมศึกษา
ฐานข้อมูลและการออกแบบฐานข้อมูล
บรรยายโดย สุรางคนา ธรรมลิขิต
SCC : Suthida Chaichomchuen
Databases Design Methodology
Object-Oriented System Analysis and Design
– Web Programming and Web Database
บทที่ 3 แบบจำลองข้อมูล Data Models Algebra
การออกแบบแบบจำลองข้อมูล
ทบทวน การออกแบบฐานข้อมูล
Chapter 3 แบบจำลองข้อมูล : Data Models
Chapter 2 Database systems Architecture
สถาปัตยกรรมของระบบฐานข้อมูล
การออกแบบฐานข้อมูลเชิงสัมพันธ์
เครื่องมือช่วยในการจับประเด็น รวบรวมความคิดให้เป็นหมวดหมู่
ความรู้พื้นฐานในการออกแบบ ฐานข้อมูลแบบสัมพันธ์ ธวัชชัย เอี่ยมไพโรจน์
อ.อารียา ศรีประเสริฐ สาขาวิชาเทคโนโลยีสารสนเทศธุรกิจ
ความรู้เบื้องต้นเกี่ยวกับระบบฐานข้อมูล
แบบจำลองความสัมพันธ์ระหว่างข้อมูล
การแปลง E-R เป็น Table.
ระบบสารสนเทศเพื่อการขายสินค้า ผ่านเครือข่ายอินเทอร์เน็ต
การออกแบบฐานข้อมูลและการบริหารธุรกิจ
หลักการวิเคราะห์และออกแบบระบบฐานข้อมูล
รายวิชา ระบบฐานข้อมูล 1 หลักการวิเคราะห์และออกแบบระบบฐานข้อมูล
Entity Relationship Model
ทักษะการตัดสินใจ นัทธี จิตสว่าง 28 มีนาคม 2553.
บทที่ 3 การวิเคราะห์ Analysis.
ที่ใช้ใน Object-Oriented Design
Data Modeling Chapter 6.
การออกแบบระบบฐานข้อมูล
บทนำเกี่ยวกับระบบฐานข้อมูล
ฐานข้อมูลเชิงสัมพันธ์ (Relational Database)
1. การศึกษาและการวิเคราะห์ความต้องการของผู้ใช้
วิชาคอมพิวเตอร์ ชั้นประถมศึกษาปีที่ 1 นางพวงเพ็ญ อินทร์เอี่ยม
1. ศัพท์พื้นฐานของฐานข้อมูล
การออกแบบระบบฐานข้อมูล
หลักการแก้ปัญหา
หลักการแก้ปัญหา.
การออกแบบฐานข้อมูลเชิงสัมพันธ์
โมเดลเชิงสัมพันธ์ The relational model.
Week 5 Online available at
ส่วนประกอบของแบบจำลองอีอาร์
E-R to Relational Mapping Algorithm
Access 2003 คืออะไร Access 2003 เป็นโปรแกรมที่ใช้ในการ จัดการกับฐานข้อมูล ซึ่งจะช่วยให้เรา จัดการกับข้อมูลปริมาณมากๆ ได้ ง่ายดาย เช่นการจัดเก็บข้อมูล,
Enhanced Entity-Relationship Modeling
ระบบฐานข้อมูล.
การออกแบบฐานข้อมูล ด้วย E-R Model
Introduction to Database
1 Introduction to SQL กนกวรรธน์ เซี่ยงเจ็น สำนักวิชาเทคโนโลยีสารสนเทศ และการสื่อสาร มหาวิทยาลัยนเรศวร วิทยาเขต สารสนเทศพะเยา.
Chapter 6 : แบบจำลอง E-R (Entity-Relationship Model)
ใบสำเนางานนำเสนอ:

โมเดลจำลองความสัมพันธ์ระหว่างข้อมูล (ER-Diagram) DBMS Database Management System Database Design โมเดลจำลองความสัมพันธ์ระหว่างข้อมูล (ER-Diagram)

Outline การออกแบบฐานข้อมูลมีประโยชน์อย่างไร ขั้นตอนในการออกแบบฐานข้อมูล ER-Diagram Map ER to Relation

การออกแบบฐานข้อมูลมีประโยชน์อย่างไร เป็นการวางแผนว่าจะเก็บข้อมูลต่างๆ ที่จำเป็นต้องใช้ในระบบงานไว้ในตารางใดบ้าง โดยยังคงมีความสัมพันธ์ระหว่างข้อมูลไว้ได้ และสามารถเรียกดูข้อมูลที่เก็บไว้เพื่อมาใช้งานได้ตามปกติ มองเห็นความสัมพันธ์ระหว่างข้อมูลทั้งหมดที่มีอยู่ โดยข้อมูลบางตัวอาจจะเกี่ยวข้องกับข้อมูลอื่นๆหลายตัว อาจทำให้เกิดการเก็บรายละเอียดของข้อมูลนั้นซ้ำซ้อนกันได้

แสดงขั้นตอนในการออกแบบฐานข้อมูล 1. Requirement Analysis Database Designer (ER-Diagram) 2. Conceptual Design 3. Logical Design (Normalization) 4. Schema Refinement DBA 5. Physical Design 6. Security Design 7. Maintenance

1. สำรวจความต้องการใช้งาน (Requirement Analysis) เป็นขั้นตอนแรกที่สำคัญมากต่อระบบฐานข้อมูล จะรู้ความต้องการของผู้ใช้งานและระบบได้อย่างไร

จะรู้ความต้องการของผู้ใช้งานได้อย่างไร ศึกษาเอกสารที่ใช้ในระบบงานนั้นๆ การใช้แบบสอบถาม การพูดคุยกับผู้ใช้โดยตรง ข้อมูลที่เราจำเป็นต้องเก็บรวบรวมเพื่อนำไปใช้ในการออกแบบระบบฐานข้อมูล ประกอบด้วย ข้อมูลแต่ละตัวที่จำเป็นต้องใช้ในระบบงาน(Entity) รายละเอียดของข้อมูลนั้น(Attribute) ความสัมพันธ์ระหว่างข้อมูลทั้งหมด(Relationship)

ตั้งคำถาม ถามระบบ วิธีที่จะตรวจสอบว่าความต้องการที่สำรวจได้เพียงพอที่จะใช้งานจริงแล้วหรือไม่ คือ ลองตั้งคำถามที่ต้องการดูว่าข้อมูลที่จะเก็บในฐานข้อมูลสามารถนำมาใช้ตอบคำถามนั้นๆได้ทั้งหมดหรือไม่ ถ้าตอบได้ ก็แสดงว่าเราไม่ได้ลืมเก็บข้อมูลที่จำเป็นต้องใช้ตัวอื่นอีก

2. ออกแบบฐานข้อมูลระดับแนวคิด (Conceptual Design) ผู้ออกแบบฐานข้อมูลจะต้อง กำหนดเอนติติ้และแอตทริบิวต์ กำหนดคอนสเตรนต์ กำหนดความสัมพันธ์ โดยใช้ ER Diagram มาช่วยในขั้นตอนนี้

3. ออกแบบฐานข้อมูลระดับตรรกะ (Logical Design) เป็นขั้นตอนการแปลงความสัมพันธ์ของข้อมูล ซึ่งแสดงด้วย ER-Diagram ไปเป็นตารางตาม Relational Model

4. ปรับโครงสร้างข้อมูล (Schema Refinement) ตารางที่ได้จากการออกแบบฐานข้อมูลในระดับ Logical ยังไม่ใช่ตารางที่เหมาะสำหรับนำไปเก็บข้อมูลจริง เนื่องจากอาจทำให้เกิดความซ้ำซ้อนของข้อมูล และปัญหาต่างๆ

5. ออกแบบฐานข้อมูลระดับกายภาพ (Physical Design) เป็นหน้าที่ DBA เพื่อให้ระบบฐานข้อมูลเกิดประสิทธิภาพมากที่สุด การออกแบบในระดับนี้ เกี่ยวข้องกับการสร้างอินเด็กซ์ (Index)และการเลือกโครงสร้างข้อมูลระดับภายใน (Internal View) เพื่อให้สอดคล้องกับลักษณะการใช้งานข้อมูลที่เกิดขึ้นบ่อยๆ เช่น สร้างอินเด็กซ์ที่คอลัมน์ซึ่งมักถูกใช้กำหนดเป็นเงื่อนไขในการดึงข้อมูล

6. ควบคุมการนำไปใช้ (Security Design) เป็นการกำหนดสิทธิในการใช้งานข้อมูลที่ DBA จะกำหนดขึ้นตามความเหมาะสมและความต้องการของผู้ใช้งาน

7. การบำรุงรักษาระบบ (Maintenance Database System) เป็นขั้นตอนที่มีความสำคัญกับระบบมาก เมื่อระบบทำงานช้าลง ต้องตรวจสอบ เมื่อพบข้อผิดพลาดจากข้อมูลที่เก็บ เมื่อความต้องการของระบบหรือผู้ใช้เปลี่ยนไป เมื่อนโยบายขององค์กรเปลี่ยนไป การสำรองข้อมูล เมื่อไร backup / การกู้คืนข้อมูล การป้องกันไวรัสทุกชนิด โจรกรรมข้อมูล

การออกแบบฐานข้อมูล เป็นเรื่องที่สำคัญมาก เพราะมีผลต่อประสิทธิภาพในการใช้งาน ควรออกแบบอย่างรอบคอบ โดยต้องทำความเข้าใจในระบบงานก่อน เพื่อให้การออกแบบถูกต้องและครอบคลุมงานของระบบทั้งหมด ป้องกันการแก้ไขภายหลังหรือป้องกันความซับซ้อนของงานที่ออกแบบ

Entity Relationship Model By ดร.ปีเตอร์ เชนน์ ราวปี พ.ศ. 2519 ER Model เป็นแบบจำลองข้อมูลซึ่งแสดงถึงโครงสร้างของฐานข้อมูล สัญลักษณ์ต่างๆที่ใช้ในอี-อาร์โมเดล เรียกว่า อี-อาร์ไดอะแกรม (ER-Diagram)

Entity Relationship Diagram เป็นแผนภาพสัญลักษณ์ ที่แสดงความสัมพันธ์ขององค์ประกอบต่างๆ เพื่อสร้างฐานข้อมูลเชิงสัมพันธ์ ได้แก่ เอนติตี้ แอตทริบิวต์ และความสัมพันธ์ระหว่างเอนติตี้ จุดเด่นของ ER ช่วยให้การออกแบบทำได้ง่ายขึ้น ด้วยการจัดระเบียบความคิดของคนที่ทำการออกแบบ ที่มีต่อองค์ประกอบต่างๆให้ชัดเจน ช่วยนำให้เกิดความคิดอย่างเป็นขั้นตอน ลดความซับซ้อนของระบบได้อย่างดี มองเห็นความสัมพันธ์ระหว่างข้อมูล มองเห็นแอตทริบิวต์ของข้อมูลได้ชัดเจน

Entity, Attribute เอนติตี้(Entity) แอตทิบิวต์(Attribute) ตัวแทนของสิ่งที่มีอยู่ในระบบที่เราสนใจ อาจเป็น สิ่งของ คน สถานที การกระทำ โดยแต่ละเอนติตี้จะเก็บเรื่องเดียวกัน แอตทิบิวต์(Attribute) รายละเอียดหรือคุณสมบัติของเอนติตี้นั้นๆ

ความสัมพันธ์(Relationships) Degree of Relationships Cardinality of Relationships

ER-Model ตามแบบของ Peter Pin Shan Chen สัญลักษณ์ ความหมาย สี่เหลี่ยมผืนผ้า เอนติตี้ เอนติติ้แบบอ่อน (Weak Entity) ความสัมพันธ์ ER-Model ตามแบบของ Peter Pin Shan Chen

สัญลักษณ์ของ ER model(ต่อ) ความหมาย ความสัมพันธ์แบบอ่อน (Weak Relationship) แอตทริบิวต์ แอตทริบิวต์ที่เป็น primary key

สัญลักษณ์ของ ER model(ต่อ) ความหมาย แอตทริบิวต์ที่มีหลายค่า แอตทริบิวต์ประกอบ (แอตทริบิวต์ด้านบนเป็นส่วนประกอบของแอตทริบิวต์ด้านล่าง)

สัญลักษณ์ของ ER model(ต่อ) ความหมาย ดีไรฟ์แอตทริบิ่วต์(derived attribute) เก็บผลของการคำนวณหรือแปลงค่ามาจากแอตทริบิวเดิม ความสัมพันธ์ที่ข้อมูลทุกๆแถวในเอนติติ้ E2 สามารถจับคู่ได้กับข้อมูลแถวใดแถวหนึ่งของ E1 ได้ เรียกว่า ข้อมูลใน E2 เป็น total participation กับ E1 E1 R E2

สัญลักษณ์ของ ER model(ต่อ) ความหมาย ความสัมพันธ์ที่ข้อมูลทุกๆแถวในเอนติติ้ E1 สามารถจับคู่ได้กับข้อมูลแถวใดแถวหนึ่งของ E2 ได้เรียกว่า ข้อมูลใน E2 เป็น partial participation กับ E1 E1 R E2

ประเภทของแอตทริบิวต์ แอตทริบิวต์ที่มีค่าเดียว คือ แอตทริบิวที่เก็บค่าได้เพียงค่าเดียวเท่านั้น เช่น รหัสลูกค้า ลูกค้า 1 คนมีรหัสลูกค้าได้หมายเลขเดียว แอตทริบิวต์ที่มีหลายค่า(Multivalued attribute) คือ แอตทริบิวต์ที่เก็บค่าได้ตั้งแต่ 1 ค่าขึ้นไป เช่น ระดับการศึกษาที่อาจารย์จบ ซึ่งเก็บค่าได้หลายระดับ

ประเภทของแอตทริบิวต์(ต่อ) แอตทริบิวต์ประกอบ(Composite attribute) คือแอตทริบิวต์ที่ประกอบด้วยแอตทริบิวต์หลายตัวมารวมกันจึงให้ความหมายที่ชัดเจน เช่น ที่อยู่(รวม บ้านเลขที่ ซอย ถนน เขต จังหวัด) ดีไรฟ์แอตทริบิวต์(Derived attribute) คือ แอตทริบิวต์ที่เก็บผลการคำนวณหรือแปลงค่ามาจากแอตทริบิวต์อื่นๆ เช่น จำนวนเงิน(ราคา*จำนวน)

Weak Entities เป็นเอนติตี้ที่ขึ้นต่อกันในเชิงปรากฏกับเอนติตี้หนึ่ง ลักษณะของการขึ้นต่อกัน คือ การที่เอนติตี้หนึ่งจะเกิดขึ้นได้นั้น ขึ้นกับอีกเอนติตี้หนึ่งว่าปรากฏอยู่หรือไม่ เช่น เอนติตี้พนักงานและเอนติตี้ญาติ ถ้าไม่มีเอนติตี้พนักงาน เอนติตี้ญาติก็จะไม่เกิดขึ้น เอนติตี้ญาติ เป็น Weak Entity เอนติตี้พนักงาน เป็น Entity

Weak Entities(ต่อ) ตึก ห้องเรียน รหัสตึก ชื่อตึก 1 มี รหัสห้องเรียน M ความจุ ห้องเรียน

จำนวน entity ต่อ entity ในความสัมพันธ์ (Cardinality of Relationships) One to One relationship(1 to 1) One to Many relationship(1 to M) Many to Many relationship(M to M)

Mapping Cardinalities One to one One to many

Mapping Cardinalities Many to one Many to many

One to One Relationship ความสัมพันธ์ที่แต่ละแถวของข้อมูลในเอนติตี้แรก สามารถจับคู่กับข้อมูลในเอนติตี้ที่สองได้เพียงแถวเดียวเท่านั้น เช่น ระบบข้อมูลมหาวิทยาลัย แต่ละคณะจะมีอาจารย์ที่เป็นคณบดีได้คนเดียวเท่านั้น เป็นคณบดี 1 1 อาจารย์ คณะ

One to Many ความสัมพันธ์ที่แต่ละแถวของข้อมูลในเอนติตี้แรก สามารถจับคู่กับข้อมูลในเอนติตี้ที่สองได้มากกว่าหนึ่งแถว เช่น ระบบสั่งซื้อสินค้าของลูกค้า ลูกค้าหนึ่งคนสั่งซื้อใบสั่งซื้อได้หลายใบ และใบสั่งซื้อแต่ละใบถูกลูกค้าสั่งซื้อได้เพียงคนเดียว สั่งซื้อ 1 M ลูกค้า ใบสั่งซื่อ

Many to Many ความสัมพันธ์ที่แต่ละแถวของข้อมูลในเอนติตี้แรก สามารถจับคู่กับข้อมูลในเอนติตี้ที่สองได้มากกว่าหนึ่งแถว และในทางกลับกันข้อมูลแต่ละแถวของฝั่งเอนติตี้ที่สองก็สามารถจับคู่กับข้อมูลในเอนติตี้แรกได้มากกว่าหนึ่งแถว เช่น ระบบสั่งซื้อสินค้าของลูกค้า สินค้า 1 ชนิดถูกสั่งซื้อตามใบสั่งซื้อได้หลายใบ และใบสั่งซื้อ 1 ใบสั่งซื้อสินค้าได้หลายชนิด ถูกสั่งซื้อ M M สินค้า ใบสั่งซื่อ

จำนวนชนิดของ Entity (Degree of Relationship) Unary (Recursive) Relationship เอนติตี้มาเกี่ยวข้องเพียงชนิดเดียวเท่านั้น Binary Relationship เอนติตี้มาเกี่ยวข้อง 2 ชนิด Ternary Relationship มีเอนติตี้มาเกี่ยวข้อง 3 ชนิด

จำนวนชนิดของ Entity (Degree of Relationship) ต่อ Unary นักศึกษา 1 พนักงาน หัวหน้างาน M ลงทะเบียน m M วิชาเรียน อาจารย์ Ternary M สอน Binary วิชาเรียน หนังสือ M M

Aggregation Treat aggregation as any other entity type Physician Patient M M M Treatment Use M Drug

หลักการแปลง ER เป็นรีเลชั่น ให้แปลงเอนติติ้ทุกตัวเป็นรีเลชั่น และแปลงแอตทริบิวต์ทุกตัวของเอนติตี้ให้เป็นแอตทริบิวต์ของรีเลชั่น Customer CusID CusName CusAdd CusSurName Customer(CusID, CusName, CusSurName, CusAdd)

หลักการแปลง ER เป็นรีเลชั่น(ต่อ) 2. เพิ่มแอตทริบิวต์ให้กับรีเลชั่น 2.1 ถ้าความสัมพันธ์เป็นแบบ 1 to 1 ให้นำ pk ของรีเลชั่นฝั่งใดฝั่งหนึ่งไปอยู่ในรีเลชั่นของอีกฝั่งหนึ่ง 1 1 Teacher เป็นคณบดี Faculty ThName FacName ThID FacID ThSurName Teacher(ThID, ThName, ThSurName) Faculty(FacID,FacName,ThID*)

หลักการแปลง ER เป็นรีเลชั่น(ต่อ) 2. เพิ่มแอตทริบิวต์ให้กับรีเลชั่น 2.2 ถ้าความสัมพันธ์เป็นแบบ 1 to Mให้นำ pk ของรีเลชั่นฝั่งที่เป็น 1ไปอยู่ในรีเลชั่นของฝั่งที่เป็น M 1 M CusName Orders Customer สั่งซื้อ ReqDate OrderDate CusID OID CusSurName Customer(CusID, CusName, CusSurName) Orders(OID,OrderDate, ReqDate ,CusID*)

หลักการแปลง ER เป็นรีเลชั่น(ต่อ) 2. เพิ่มแอตทริบิวต์ให้กับรีเลชั่น 2.3 แอตทริบิวต์ที่อยู่บนความสัมพันธ์ จะนำไปใส่ในรีเลชั่นใด ก็ขึ้นอยู่กับว่าเมื่อใส่ลงในรีเลชั่นนั้นแล้ว จะมีบางแถวหรือไม่มีแถวข้อมูลใดเลยที่มีค่าในแอตทริบิวต์เป็น Null 1 M CusName Orders Customer สั่งซื้อ ReqDate OrderDate CusID OID CusSurName Customer(CusID, CusName, CusSurName) Orders(OID,OrderDate, ReqDate ,CusID*)

หลักการแปลง ER เป็นรีเลชั่น(ต่อ) 3. สร้างรีเลชั่นใหม่สำหรับความสัมพันธ์แบบ M to M โดยสร้าง PK ได้จาก การนำเอา PK ของแต่ละรีเลชั่น มาประกอบกัน Discount M M PName Orders Products รายการสั่งซื่อ Amount UnitPrice PID OID Price Product(PID, PName, Price) Orders(OID,OrderDate, ReqDate ,CusID*) OrderDetail(OID*, PID*, Discount, Amount, UnitPrice) หรือ ในทางปฏิบัติมักจะสร้าง pk มาใหม่ OrderDetail(id,OID*, PID*, Discount, Amount, UnitPrice)

หลักการแปลง ER เป็นรีเลชั่น(ต่อ) 4. สำหรับเอนติติ้ที่มีแอตทริบิวต์แบบหลายค่า ให้สร้างรีเลชั่นเพิ่ม ที่มีแอตทริบิวต์แบบหลายค่านั้น PK ของรีเลชั่นใหม่เกิดจาก PK ของรีเลชั่นเดิมประกอบกับ แอตทริบิวต์ที่เกิดจากแอตทริบิวแบบหลายค่า CusName Customer CreditNum CusID CusSurName Customer(CusID, CusName, CusSurName) CusCredit(CusID*, CreditNum)

หลักการแปลง ER เป็นรีเลชั่น(ต่อ) 5. สำหรับเอนติตี้แบบอ่อน ให้สร้างเป็นรีเลชั่น และมี PK ที่มาจาก PK ของรีเลชั่นหนึ่งรวมกับ PK ของเอนติตี้แบบอ่อน Date Invoice has Detail Inv no Line 1 M Invoice(Inv no, Date) InvoiceDetail( Inv no* ,Line)