การออกแบบฐานข้อมูล ด้วย E-R Model

Slides:



Advertisements
งานนำเสนอที่คล้ายกัน
Datadictionary Prakan Sringam.
Advertisements

BC421 File and Database Lab
เรื่อง การแก้ไขปัญหาด้วยกระบวนการเทคโนโลยีสารสนเทศ
ภาควิชาวิทยาการคอมพิวเตอร์ มหาวิทยาลัยสงขลานครินทร์
ความรู้เบื้องต้นเกี่ยวกับระบบฐาจข้อมูล
การออกแบบฐานข้อมูลในระดับ Conceptual
ความสำคัญของงานวิจัย เสนอ รศ.ดร.เผชิญ กิจระการ
จัดการฐานข้อมูลด้วย Microsoft Access 2007
การจำลองความคิด รายวิชา ง40102 หลักการแก้ปัญหาและการโปรแกรม
แผนการสอน วิชา Database Design and Development
Lecture 10 : Database Documentation
การออกแบบการวิจัยการเขียนเค้าโครงการวิจัย
การวิเคราะห์ระบบและวิธีปฏิบัติงาน
Functional programming part II
ตัวอย่างการสร้าง Class Diagram
Class Diagram.
การศึกษารายกรณี.
ชนิดของข้อมูลและตัวดำเนินการ
บทที่ 2 รูปแบบของฐานข้อมูล.
ประสบการณ์จากงานบริการสารสนเทศ: ประโยชน์
ความรู้ทั่วไปเกี่ยวกับโปรแกรม Microsoft Office Access 2003
Normalization.
ฐานข้อมูลเชิงสัมพันธ์
บทที่ 8 การออกแบบข้อมูล (Data Design) โครงสร้างข้อมูล (Data Structure)
การพัฒนากิจกรรม การเรียนรู้ โดยโครงงาน
การจำลองความคิด
Use Case Diagram.
SCC : Suthida Chaichomchuen
Databases Design Methodology
Object-Oriented System Analysis and Design
Enhanced Entity-Relationship Model
– Web Programming and Web Database
การออกแบบแบบจำลองข้อมูล
ทบทวน การออกแบบฐานข้อมูล
Chapter 3 แบบจำลองข้อมูล : Data Models
การออกแบบฐานข้อมูลเชิงสัมพันธ์
Flowchart รูปแบบ If ซ้อน If ก็คือ การเอา If ไปไว้ใน If ทางฝั่ง True  โดยโครงสร้าง If ซ้อน If นั้นเอาไว้ใช้กับ กรณีตรวจสอบเงื่อนไขที่มากกว่า 2 กรณี เพราะเนื่องจาก.
ความรู้พื้นฐานในการออกแบบ ฐานข้อมูลแบบสัมพันธ์ ธวัชชัย เอี่ยมไพโรจน์
อ.อารียา ศรีประเสริฐ สาขาวิชาเทคโนโลยีสารสนเทศธุรกิจ
บทที่ 3 กระบวนการแสวงหาและนำเสนอสารสนเทศ
ฐานข้อมูลเชิงสัมพันธ์
การวิเคราะห์ขบวนการผลิต (Process Analysis)
การแปลง E-R เป็น Table.
ระบบสารสนเทศเพื่อการขายสินค้า ผ่านเครือข่ายอินเทอร์เน็ต
PHP-6 PHP MySQL ตัวอย่างการพัฒนาระบบด้วย MySQL.
Creating Database With Structure Query Language (SA&D-8)
The Relational Data Model
บทที่ 3 การวิเคราะห์ Analysis.
ที่ใช้ใน Object-Oriented Design
Data Modeling Chapter 6.
การวิเคราะห์และออกแบบระบบฐานข้อมูล
ฐานข้อมูลเชิงสัมพันธ์ (Relational Database)
เรื่องการออกแบบฐานข้อมูล
โมเดลจำลองความสัมพันธ์ระหว่างข้อมูล (ER-Diagram)
1. ศัพท์พื้นฐานของฐานข้อมูล
วิชา วิศวกรรมซอฟต์แวร์ (Software Engineering)
การพัฒนาระบบงานโดยเทคนิคเชิงโครงสร้าง
ศ.ดร.สุมาลี สังข์ศรี มหาวิทยาลัยสุโขทัยธรรมาธิราช
หลักการแก้ปัญหา
กลวิธีการสอนคณิตศาสตร์ระดับประถมศึกษา
อ.วิวัฒน์ ชินนาทศิริกุล
รู้จักกับ Microsoft Access 2003
การเขียนรายงานเพื่อนำเสนอโครงงานวิทยาศาสตร์
โมเดลเชิงสัมพันธ์ The relational model.
หลักการเขียนโปรแกรม ( )
Enhanced Entity-Relationship Modeling
แบบจำลองข้อมูล (Data Model)
ตัวอย่าง การเขียนโครงการ
Chapter 6 : แบบจำลอง E-R (Entity-Relationship Model)
โดย อ.พัฒนพงษ์ โพธิปัสสา
ใบสำเนางานนำเสนอ:

การออกแบบฐานข้อมูล ด้วย E-R Model

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

การออกแบบฐานข้อมูล การทำ Conceptual Model มี 2 วิธี Top down > E-R Modeling Bottom up > Normalization

Entity-Relationship Modeling เรียกสั้น ๆ ว่า E-R Modeling แนวความคิดในการทำมีดังนี้ การกำหนด Entity และ Attributes Entity คือทุกอย่างที่เกี่ยวข้องกับข้อมูลที่สนใจจัดเก็บ สามารถกำหนดเหมือนเป็นกลุ่มของข้อมูลที่มีความสัมพันธ์กันโดย Key ที่ไม่ซ้ำกัน Entity จะประกอบไปด้วย Entity type และ Entity Occurrence ยกตัวอย่างเช่น

Entity-Relationship Modeling Entity type Entity Occurrence Lecturer อ.อังสนา, อ.ปราณี (หมายถึงคนหนึ่งคน) Room HB5303, HB5350 (หมายถึงห้องหนึ่งห้อง)

Entity-Relationship Modeling การกำหนด Attribute Attribute คือคุณสมบัติ หรือลักษณะของ Entity ที่ต้องการจัดเก็บ Attribute จะประกอบไปด้วย Attribute type และ Attribute occurrence ยกตัวอย่างเช่น

Entity-Relationship Modeling Entity type Attribute type Attribute occurrence Lecturer Lecturer Code Lecturer Name Employed date Academic Position 001 Pranee Wongjamras 01/01/1995 Assoc. Prof. Room Room Name Size HB5330 30

Key attribute Candidate Key คือ Attribute ที่สามารถใช้ในการแยกรายการแต่ละรายการใน Entity ออกจากกัน ในหนึ่ง Entity อาจมี Candidate Key ได้มากกว่าหนึ่ง (Unique และ Not Null) Primary Key (PK) คือ Candidate Key ที่ถูกเลือกออกมาหนึ่งตัว PK อาจประกอบไปด้วย Attribute มากกว่าหนึ่งตัวก็ได้ เรียกว่าเป็น Compound Key หรือ คีย์ประกอบ Compound Key คือ Primary Key ที่มีมากกว่าหนึ่ง Attribute

Key attribute Lecturer (LecturerCode, LecturerName, EmployedDate, AcademicPosition) Candidate Key = LecturerCode, LecturerName Primary Key = LecturerCode มักเลือกตัวที่เป็นตัวเลข หรือขนาดสั้นกว่า

Entity-Relationship Modeling สร้าง Relationships Relationships คือความสัมพันธ์ระหว่าง Entity ที่ทำให้ Model สามารถบ่งบอกถึงภาพรวมของข้อมูลที่จัดเก็บได้ ยกตัวอย่างเช่น

Entity-Relationship Modeling Lecturer Teach in Room Teach Course Student Learn in Author Compose Book

Entity-Relationship Modeling สร้าง Entity-Relationship Diagram หรือที่เรียกว่า E-R Diagram คือรูปภาพที่ใช้แสดงองค์ประกอบของข้อมูลที่สนใจจะจัดเก็บ โดยอยู่ในรูปของ Entity และ Relationships

Entity-Relationship Modeling Cardinality ของ Relationship Cardinality หมายถึงจำนวนสมาชิกของความสัมพันธ์ที่เกิดขึ้น Cardinality มีทั้งหมด 4 ชนิดคือ One-to-one relationship Entity ที่หนึ่งสามารถมีความสัมพันธ์กับ Entity ที่ 2 ได้เพียง 1 ค่าเท่านั้น ยกตัวอย่างเช่น ห้องสมุดมหาวิทยาลัยหนึ่งแห่ง จะมีผู้อำนวยการได้เพียงหนึ่งคนเท่านั้นใน

Entity-Relationship Modeling ยกตัวอย่างเช่น ห้องสมุดมหาวิทยาลัยหนึ่งแห่ง จะมีผู้อำนวยการได้เพียงหนึ่งคนเท่านั้นใน ผอ 1 คน สามารถ manage ห้องสมุดได้ น้อยที่สุด 1 คน และมากที่สุด 1 คน ห้องสมุดหนึ่งแห่ง ถูก manage จาก ผอ ได้ 1 คนเท่านั้น Manage Library Director University Library 1..1 1..1

One-to-one relationship LibraryDirector(DirectoryId, DirectorName, Academic, Position, Faculty) UniversityLibrary(LibraryId, LibraryName, UniversityName) Manage Library Director University Library 1..1 1..1

Entity-Relationship Modeling One-to-many relationship Entity ที่หนึ่งมีความสัมพันธ์กับ Entity ที่สองได้มากกว่า 1 ค่า ยกตัวอย่างเช่น หนังสือหนึ่งชื่อเรื่อง มีได้หลายเล่ม (สำเนา) (Copy) สามารถเขียนได้ดังภาพ

One-to-many relationship หนังสือ 1 ชื่อเรื่องมีสำเนาได้ 1 สำเนาถึงหลายๆ สำเนา สำเนา 1 เล่ม เป็นของหนังสือ 1 ชื่อเรื่องเท่านั้น has Book Copy 1..1 1..* has Book Copy 1..1 1..n

One-to-many relationship 1 2 3 หนังสือ 1 ชื่อมีสำเนาได้ตั้งแต่ 1 เล่มถึง หลายเล่ม สำเนา 1 เล่ม เป็นของหนังสือ 1 ชื่อเท่านั้น has Book Copy 1..1 1..* 4

One-to-many relationship Book(ISBN, Title, Author, Imprint) Copy(RegisterNo, Date-acquried, Date-destroyed) has Book Copy 1..1 1..*

One-to-many relationship คณะ 1 คณะมีนักศึกษาได้หลายคน นักศึกษา 1 คนอยู่ได้ 1 คณะ has STUDENT FACULTY 1..n 1..1

One-to-many relationship วารสาร 1 เล่ม มีบทความได้หลายบทความ 1 บทความจะอยู่ในวารสารได้น้อยที่สุด 1 ชื่อ contain Journal Article 1..1 1..n

One-to-many relationship Subject(SubjectCode, SubjectName, Credit) Course(CourseId, SubjectCode, Semester, Section, TeacherCode) has Subject Course 1..1 1..n

One-to-many relationship Course(CourseId, SubjectCode, Semester, Section, TeacherCode) Teacher(TeacherCode, TeacherName, RoomNo) teach Course Teacher 1..n 1..1

Entity-Relationship Modeling Many-to-many relationship Entity ที่หนึ่งจะมีความสัมพันธ์กับ Entity ที่สองได้มากกว่าหนึ่งค่า และในทางกลับกัน Entity ที่สองก็สามารถมีความสัมพันธ์กับ Entity ที่หนึ่งได้มากกว่าหนึ่งค่าเช่นกัน ยกตัวอย่างเช่น นักศึกษาหนึ่งคนสามารถลงทะเบียนวิชาได้หลายกระบวนวิชา และทุกกระบวนวิชาก็สามารถถูกลงทะเบียนโดยนักศึกษาจำนวนมากกว่าหนึ่งคน

Many-to-many relationship take Student Course 1..n 1..n

Entity-Relationship Modeling Recursive (หรือ involute) relationship Entity หนึ่งมีความสัมพันธ์กับตัวมันเอง ยกตัวอย่างเช่น ผู้อำนวยการห้องสมุดมหาวิทยาลัยคือบุคลากรคนหนึ่งในมหาวิทยาลัย ยกตัวอย่างเช่น ตาราง Personal มีความสัมพันธ์กับตาราง Personal โดยเป็นความสัมพันธ์ของบุคลากรคนหนึ่งที่เป็นผู้อำนวยการ กับบุคลากรคนอื่น ๆ ที่เป็นเจ้าหน้าที่หรืออาจารย์ของห้องสมุดมหาวิทยาลัยซึ่งอาจมีจำนวนมากที่สุด 50 คน จะเขียนได้ว่า 1..50

Recursive relationship

Recursive relationship

Entity-Relationship Modeling Decomposition การเก็บข้อมูล many-to-many ใน Relational DBMS จะทำให้การข้อมูลเก็บและค้นหาข้อมูลได้ยาก จึงต้องมีการทำ Decomposition โดย แตกความสัมพันธ์แบบ many-to-many ออกเป็นสองความสัมพันธ์ ดึงเอา primary key ของทั้งสอง entity มาเป็น ส่วนหนึ่งของ PK ของ entity ใหม่

Decomposition Student(StudentCode, StudentName) Course(CourseId, SubjectCode, Semester, Section) Grade (SubjectCode, Courseld, Grade) has provide Student Grade Course 1..1 1..n 1..n 1..1

ขั้นตอนการ composition ให้สร้าง entity ใหม่ ไว้ตรงกลาง ให้เขียนหัวลูกศรชี้เข้าหา entity ใหม่ทั้งสองฝั่ง เขียน cardinality ตามหัวลูกศร นำเอา PK ของ entity เก่าทั้งสองอัน ไปเป็น attribute ของ entity ใหม่ กำหนด PK ของ entity ใหม่

Entity-Relationship Modeling Key attribute Candidate Key คือ Attribute ที่สามารถใช้ในการแยกรายการแต่ละรายการใน Entity ออกจากกัน ในหนึ่ง Entity อาจมี Candidate Key ได้มากกว่าหนึ่ง (Unique และ Not Null) Primary Key (PK) คือ Candidate Key ที่ถูกเลือกออกมาหนึ่งตัว PK อาจประกอบไปด้วย Attribute มากกว่าหนึ่งตัวก็ได้ เรียกว่าเป็น Compound Key หรือ คีย์ประกอบ Foreign Key (FK) คือ Attribute ที่เป็นสำเนาของ PK ที่ปรากฏใน Entity อื่น และทำหน้าที่ในการเชื่อมโยง Entity เข้าไว้ด้วยกัน และค่าของ FK สามารถเป็นค่าที่ซ้ำกันได้

Example Candidate Key = Primary Key = Foreign Key =

ขั้นตอนการสร้าง E-R Diagram กำหนด Entity ทั้งหมด กำหนด Relationship ระหว่าง Entity เหล่านั้น กำหนด Key Attribute ทั้งหมด คือทั้ง PK และ FK (PK เลือกออกมาจาก Candidate Key และ PK อาจอยู่ในรูปของ Compound Key ก็ได้) กำหนด โครงสร้างเริ่มต้นของ E-R Diagram เติม Attribute ของแต่ละ Entity ตรวจสอบกับผู้ใช้ แล้วนำมาปรับปรุง E-R Diagram

โจทย์การทำ E-R Diagram ออกแบบฐานข้อมูลการสอนวิชาแต่ละเทอมของอาจารย์ 1 section มีคนสอนแค่ 1 คน ให้กำหนด Entity Relationship Attribute

Faculty hire Teacher Subject teach has Course 1..1 1..n 1..1 1..1 1..n Relation Teacher(TeacherCode, TeacherName, RoomNo, FacCode) Subject (SubjectCode, SubjectName, Credit) Course (Courseld, TeacherCode, SubjectCode, Semester, Section) Faculty (FacCode, FacName)

โจทย์การทำ E-R Diagram ออกแบบฐานข้อมูลการสอนวิชาแต่ละเทอมของอาจารย์ 1 section มีคนสอนได้หลายคน ให้กำหนด Entity Relationship Attribute

Faculty Subject hire Teacher has teach has Section Course 1..1 1..n Relation Teacher(TeacherCode, TeacherName, RoomNo, FacCode) Subject (SubjectCode, SubjectName, Credit) Course (Courseld, TeacherCode, SubjectCode, Semester, Section) Faculty (FacCode, FacName) Section (SecNo, SecTime, TeacherCode, Courseld)

โจทย์การทำ E-R Diagram จาก Model เดิมให้เพิ่มการเก็บข้อมูลห้องสอนของแต่ละ Section ในแต่ละเทอม ให้เพิ่ม Entity Relationship Attribute ที่จำเป็น

โจทย์การทำ E-R Diagram จาก Model เดิมให้เพิ่มการเก็บข้อมูล นักศึกษาที่ลงทะเบียนเรียนในแต่ละเทอม พร้อมเกรดที่ได้ เพิ่มคณะที่สังกัดของอาจารย์และนักศึกษา เพิ่มจำนวนรับนักศึกษาที่มากที่สุดของแต่ละกระบวนวิชาในแต่ละเทอม เพิ่มสถานการณ์ลงทะเบียนของนักศึกษาว่า Accepted Add Drop

การบ้านให้ทำ E-R Diagram ฐานข้อมูลทุนการศึกษาของนักศึกษาวิทยาลัยอาชีวศึกษามหาสารคาม มีทุนการศึกษาหลายทุน มีทั้งจากในและต่างประเทศ ทุนการศึกษามี 2 ประเภท ให้ครั้งเดียว ให้ต่อเนื่องทุกปี นักศึกษาได้รับทุนมาจากหลายคณะ