Your SlideShare is downloading. ×
Chapter 1 2
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Introducing the official SlideShare app

Stunning, full-screen experience for iPhone and Android

Text the download link to your phone

Standard text messaging rates apply

Chapter 1 2

2,457
views

Published on

Published in: Education, Technology

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
2,457
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
28
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. การออกแบบฐานข้อมูล อ.ธนพรรณ กุลจันทร์
  • 2. การออกแบบฐานข้อมูล • ในการออกแบบฐานข้อมูลต้องทำาการสร้าง Conceptual Model หรือ Logical Design • Conceptual model เป็นการจำาลองการเก็บข้อมูลให้ อยู่ในรูปธรรม จากการวิเคราะห์ความต้องการของผู้ใช้ ระบบ ซึ่งโครงสร้างที่เกิดขึ้นจะไม่ขึ้นอยู่กับการเก็บ ข้อมูลจริงในคอมพิวเตอร์ • Conceptual model จะใช้ในการสื่อสารระหว่างทีม งานที่ทำาการพัฒนาระบบ เพื่อให้เข้าใจแนวคิดที่ตรง กัน รวมไปจนถึงใช้ในการสื่อสารกับผู้ใช้ ในบางกรณี
  • 3. การออกแบบฐานข้อมูล • การทำา Conceptual Model • มี 2 วิธี – Top down > E-R Modeling – Bottom up > Normalization
  • 4. Entity-Relationship Modeling เรียกสั้น ๆ ว่า E-R Modeling แนวความคิดในการทำามีดังนี้ • การกำาหนด Entity และ Attributes – Entity คือทุกอย่างที่เกี่ยวข้องกับข้อมูลที่สนใจจัด เก็บ – สามารถกำาหนดเหมือนเป็นกลุ่มของข้อมูลที่มีความ สัมพันธ์กันโดย Key ที่ไม่ซำ้ากัน – Entity จะประกอบไปด้วย Entity type และ Entity Occurrence ยกตัวอย่างเช่น
  • 5. Entity-Relationship Modeling Entity type Entity Occurrence Lecturer อ.อังสนา, อ.ปราณี (หมายถึงคนหนึ่งคน) Room HB5303, HB5350 (หมายถึงห้องหนึ่งห้อง)
  • 6. Entity-Relationship Modeling • การกำาหนด Attribute – Attribute คือคุณสมบัติ หรือลักษณะของ Entity ที่ ต้องการจัดเก็บ – Attribute จะประกอบไปด้วย Attribute type และ Attribute occurrence ยกตัวอย่างเช่น
  • 7. 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
  • 8. 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
  • 9. Key attribute Lecturer (LecturerCode, LecturerName, EmployedDate, AcademicPosition) Candidate Key = LecturerCode, LecturerName Primary Key = LecturerCode มักเลือกตัวที่เป็นตัวเลข หรือขนาดสั้นกว่า Lecturer (LecturerCode, LecturerName, EmployedDate, AcademicPosition)
  • 10. Entity-Relationship Modeling • สร้าง Relationships – Relationships คือความสัมพันธ์ระหว่าง Entity ที่ทำาให้ Model สามารถบ่งบอกถึงภาพรวมของข้อมูลที่จัดเก็บได้ – ยกตัวอย่างเช่น
  • 11. Entity-Relationship Modeling Entity Relationshi p Entity Lecturer Teach in Room Lecturer Teach Course Student Learn in Course Author Compose Book
  • 12. Entity-Relationship Modeling • สร้าง Entity-Relationship Diagram – หรือที่เรียกว่า E-R Diagram คือรูปภาพที่ใช้แสดงองค์ ประกอบของข้อมูลที่สนใจจะจัดเก็บ โดยอยู่ในรูปของ Entity และ Relationships
  • 13. Entity-Relationship Modeling • Cardinality ของ Relationship Cardinality หมายถึงจำานวนสมาชิกของความ สัมพันธ์ที่เกิดขึ้น Cardinality มีทั้งหมด 4 ชนิดคือ – One-to-one relationship Entity ที่หนึ่งสามารถมีความสัมพันธ์กับ Entity ที่ 2 ได้ เพียง 1 ค่าเท่านั้น ยกตัวอย่างเช่น ห้องสมุดมหาวิทยาลัย หนึ่งแห่ง จะมีผู้อำานวยการได้เพียงหนึ่งคนเท่านั้นใน
  • 14. Entity-Relationship Modeling • ยกตัวอย่างเช่น ห้องสมุดมหาวิทยาลัยหนึ่งแห่ง จะมีผู้อำานวย การได้เพียงหนึ่งคนเท่านั้นใน • ผอ 1 คน สามารถ manage ห้องสมุดได้ น้อยที่สุด 1 คน และ มากที่สุด 1 คน ห้องสมุดหนึ่งแห่ง ถูก manage จาก ผอ ได้ 1 คนเท่านั้น Library Director University Library Manage 1..1 1..1
  • 15. One-to-one relationship Relation • LibraryDirector(DirectoryId, DirectorName, Academic, Position, Faculty) • UniversityLibrary(LibraryId, LibraryName, UniversityName) Library Director University Library Manage 1..1 1..1
  • 16. Entity-Relationship Modeling – One-to-many relationship Entity ที่หนึ่งมีความสัมพันธ์กับ Entity ที่สองได้มากกว่า 1 ค่า ยกตัวอย่างเช่น หนังสือหนึ่งชื่อเรื่อง มีได้หลายเล่ม (สำาเนา) (Copy) สามารถเขียนได้ดังภาพ
  • 17. One-to-many relationship Book Copy has 1..1 1..* Book Copy has 1..1 1..n • หนังสือ 1 ชื่อเรื่องมีสำาเนาได้ 1 สำาเนาถึงหลายๆ สำาเนา • สำาเนา 1 เล่ม เป็นของหนังสือ 1 ชื่อเรื่องเท่านั้น
  • 18. One-to-many relationship • หนังสือ 1 ชื่อมีสำาเนาได้ตั้งแต่ 1 เล่มถึง หลายเล่ม • สำาเนา 1 เล่ม เป็นของหนังสือ 1 ชื่อเท่านั้น Book Copy has 1..1 1..* 1 2 3 4
  • 19. One-to-many relationship Relation • Book(ISBN, Title, Author, Imprint) • Copy(RegisterNo, Date-acquried, Date-destroyed) Book Copy has 1..1 1..*
  • 20. One-to-many relationship • คณะ 1 คณะมีนักศึกษาได้หลายคน • นักศึกษา 1 คนอยู่ได้ 1 คณะ STUDENT FACULTY has 1..n 1..1
  • 21. One-to-many relationship • วารสาร 1 เล่ม มีบทความได้หลายบทความ • 1 บทความจะอยู่ในวารสารได้น้อยที่สุด 1 ชื่อ Journal Article contain 1..1 1..n
  • 22. One-to-many relationship • Subject(SubjectCode, SubjectName, Credit) • Course(CourseId, SubjectCode, Semester, Section, TeacherCode) Subject Course has 1..1 1..n
  • 23. One-to-many relationship • Course(CourseId, SubjectCode, Semester, Section, TeacherCode) • Teacher(TeacherCode, TeacherName, RoomNo) Course Teacher teach 1..n 1..1
  • 24. Entity-Relationship Modeling – Many-to-many relationship Entity ที่หนึ่งจะมีความสัมพันธ์กับ Entity ที่สองได้มากกว่า หนึ่งค่า และในทางกลับกัน Entity ที่สองก็สามารถมีความ สัมพันธ์กับ Entity ที่หนึ่งได้มากกว่าหนึ่งค่าเช่นกัน ยกตัวอย่างเช่น นักศึกษาหนึ่งคนสามารถลงทะเบียนวิชาได้หลายกระบวน วิชา และทุกกระบวนวิชาก็สามารถถูกลงทะเบียนโดย นักศึกษาจำานวนมากกว่าหนึ่งคน
  • 25. Many-to-many relationship Student Course take 1..n 1..n
  • 26. Entity-Relationship Modeling – Recursive (หรือ involute) relationship Entity หนึ่งมีความสัมพันธ์กับตัวมันเอง ยกตัวอย่างเช่น ผู้ อำานวยการห้องสมุดมหาวิทยาลัยคือบุคลากรคนหนึ่งใน มหาวิทยาลัย ยกตัวอย่างเช่น ตาราง Personal มีความสัมพันธ์กับตาราง Personal โดย เป็นความสัมพันธ์ของบุคลากรคนหนึ่งที่เป็นผู้อำานวยการ กับบุคลากรคนอื่น ๆ ที่เป็นเจ้าหน้าที่หรืออาจารย์ของห้อง สมุดมหาวิทยาลัยซึ่งอาจมีจำานวนมากที่สุด 50 คน จะเขียน ได้ว่า 1..50
  • 27. Recursive relationship
  • 28. Recursive relationship
  • 29. Entity-Relationship Modeling • Decomposition การเก็บข้อมูล many-to-many ใน Relational DBMS จะทำาให้การข้อมูลเก็บและค้นหาข้อมูลได้ ยาก จึงต้องมีการทำา Decomposition โดย – แตกความสัมพันธ์แบบ many-to-many ออกเป็นสองความ สัมพันธ์ – ดึงเอา primary key ของทั้งสอง entity มาเป็น ส่วนหนึ่ง ของ PK ของ entity ใหม่
  • 30. Decomposition • Student(StudentCode, StudentName) • Course(CourseId, SubjectCode, Semester, Section) • Grade (SubjectCode, Courseld, Grade) Student Grade has 1..1 1..n Course provide 1..n 1..1
  • 31. ขั้นตอนการ composition 1. ให้สร้าง entity ใหม่ ไว้ตรงกลาง 2. ให้เขียนหัวลูกศรชี้เข้าหา entity ใหม่ทั้งสอง ฝั่ง 3. เขียน cardinality ตามหัวลูกศร 4. นำาเอา PK ของ entity เก่าทั้งสองอัน ไปเป็น attribute ของ entity ใหม่ 5. กำาหนด PK ของ entity ใหม่
  • 32. 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 สามารถเป็นค่าที่ซำ้ากันได้
  • 33. Example Candidate Key = Primary Key = Foreign Key =
  • 34. ขั้นตอนการสร้าง E-R Diagram • กำาหนด Entity ทั้งหมด • กำาหนด Relationship ระหว่าง Entity เหล่านั้น • กำาหนด Key Attribute ทั้งหมด คือทั้ง PK และ FK (PK เลือกออกมาจาก Candidate Key และ PK อาจอยู่ในรูปของ Compound Key ก็ได้) • กำาหนด โครงสร้างเริ่มต้นของ E-R Diagram • เติม Attribute ของแต่ละ Entity • ตรวจสอบกับผู้ใช้ แล้วนำามาปรับปรุง E-R Diagram
  • 35. โจทย์การทำา E-R Diagram • ออกแบบฐานข้อมูลการสอนวิชาแต่ละเทอม ของอาจารย์ 1 section มีคนสอนแค่ 1 คน • ให้กำาหนด – Entity – Relationship – Attribute
  • 36. Teacher Subject has 1..n 1..1 Course 1..n 1..1 teach Faculty 1..n 1..1 hire Relation •Teacher(TeacherCode, TeacherName, RoomNo, FacCode) •Subject (SubjectCode, SubjectName, Credit) •Course (Courseld, TeacherCode, SubjectCode, Semester, Section) •Faculty (FacCode, FacName)
  • 37. โจทย์การทำา E-R Diagram • ออกแบบฐานข้อมูลการสอนวิชาแต่ละเทอม ของอาจารย์ 1 section มีคนสอนได้หลายคน • ให้กำาหนด – Entity – Relationship – Attribute
  • 38. Teacher Subject has 1..1 Course 1..n 1..n teach Faculty 1..n 1..1 hire Section 1..n has 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)
  • 39. โจทย์การทำา E-R Diagram • จาก Model เดิมให้เพิ่มการเก็บข้อมูลห้องสอน ของแต่ละ Section ในแต่ละเทอม • ให้เพิ่ม – Entity – Relationship – Attribute ที่จำาเป็น
  • 40. โจทย์การทำา E-R Diagram จาก Model เดิมให้เพิ่มการเก็บข้อมูล • นักศึกษาที่ลงทะเบียนเรียนในแต่ละเทอม พร้อมเกรด ที่ได้ • เพิ่มคณะที่สังกัดของอาจารย์และนักศึกษา • เพิ่มจำานวนรับนักศึกษาที่มากที่สุดของแต่ละกระบวน วิชาในแต่ละเทอม • เพิ่มสถานการณ์ลงทะเบียนของนักศึกษาว่า – Accepted – Add – Drop
  • 41. การบ้านให้ทำา E-R Diagram ฐานข้อมูลทุนการศึกษาของมหาวิทยาลัย เชียงใหม่ • มีทุนการศึกษาหลายทุน มีทั้งจากในและต่าง ประเทศ • ทุนการศึกษามี 2 ประเภท – ให้ครั้งเดียว – ให้ต่อเนื่องทุกปี • นักศึกษาได้รับทุนมาจากหลายคณะ