SlideShare una empresa de Scribd logo
1 de 41
การออกแบบฐานข้อมูล
อ.ธนพรรณ กุลจันทร์
การออกแบบฐานข้อมูล
• ในการออกแบบฐานข้อมูลต้องทำาการสร้าง
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
มักเลือกตัวที่เป็นตัวเลข หรือขนาดสั้นกว่า
Lecturer (LecturerCode, LecturerName, EmployedDate,
AcademicPosition)
Entity-Relationship Modeling
• สร้าง Relationships
– Relationships คือความสัมพันธ์ระหว่าง Entity ที่ทำาให้
Model สามารถบ่งบอกถึงภาพรวมของข้อมูลที่จัดเก็บได้
– ยกตัวอย่างเช่น
Entity-Relationship Modeling
Entity Relationshi
p
Entity
Lecturer Teach in Room
Lecturer Teach Course
Student Learn in Course
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 คนเท่านั้น
Library
Director
University
Library
Manage
1..1 1..1
One-to-one relationship
Relation
• LibraryDirector(DirectoryId, DirectorName, Academic,
Position, Faculty)
• UniversityLibrary(LibraryId, LibraryName,
UniversityName)
Library
Director
University
Library
Manage
1..1 1..1
Entity-Relationship Modeling
– One-to-many relationship
Entity ที่หนึ่งมีความสัมพันธ์กับ Entity ที่สองได้มากกว่า 1
ค่า
ยกตัวอย่างเช่น
หนังสือหนึ่งชื่อเรื่อง มีได้หลายเล่ม (สำาเนา) (Copy)
สามารถเขียนได้ดังภาพ
One-to-many relationship
Book Copy
has
1..1 1..*
Book Copy
has
1..1 1..n
• หนังสือ 1 ชื่อเรื่องมีสำาเนาได้ 1 สำาเนาถึงหลายๆ
สำาเนา
• สำาเนา 1 เล่ม เป็นของหนังสือ 1 ชื่อเรื่องเท่านั้น
One-to-many relationship
• หนังสือ 1 ชื่อมีสำาเนาได้ตั้งแต่ 1 เล่มถึง หลายเล่ม
• สำาเนา 1 เล่ม เป็นของหนังสือ 1 ชื่อเท่านั้น
Book Copy
has
1..1 1..*
1 2 3
4
One-to-many relationship
Relation
• Book(ISBN, Title, Author, Imprint)
• Copy(RegisterNo, Date-acquried, Date-destroyed)
Book Copy
has
1..1 1..*
One-to-many relationship
• คณะ 1 คณะมีนักศึกษาได้หลายคน
• นักศึกษา 1 คนอยู่ได้ 1 คณะ
STUDENT FACULTY
has
1..n 1..1
One-to-many relationship
• วารสาร 1 เล่ม มีบทความได้หลายบทความ
• 1 บทความจะอยู่ในวารสารได้น้อยที่สุด 1 ชื่อ
Journal Article
contain
1..1 1..n
One-to-many relationship
• Subject(SubjectCode, SubjectName, Credit)
• Course(CourseId, SubjectCode, Semester, Section,
TeacherCode)
Subject Course
has
1..1 1..n
One-to-many relationship
• Course(CourseId, SubjectCode, Semester, Section,
TeacherCode)
• Teacher(TeacherCode, TeacherName, RoomNo)
Course Teacher
teach
1..n 1..1
Entity-Relationship Modeling
– Many-to-many relationship
Entity ที่หนึ่งจะมีความสัมพันธ์กับ Entity ที่สองได้มากกว่า
หนึ่งค่า และในทางกลับกัน Entity ที่สองก็สามารถมีความ
สัมพันธ์กับ Entity ที่หนึ่งได้มากกว่าหนึ่งค่าเช่นกัน
ยกตัวอย่างเช่น
นักศึกษาหนึ่งคนสามารถลงทะเบียนวิชาได้หลายกระบวน
วิชา และทุกกระบวนวิชาก็สามารถถูกลงทะเบียนโดย
นักศึกษาจำานวนมากกว่าหนึ่งคน
Many-to-many relationship
Student Course
take
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)
Student Grade
has
1..1 1..n
Course
provide
1..n 1..1
ขั้นตอนการ composition
1. ให้สร้าง entity ใหม่ ไว้ตรงกลาง
2. ให้เขียนหัวลูกศรชี้เข้าหา entity ใหม่ทั้งสอง
ฝั่ง
3. เขียน cardinality ตามหัวลูกศร
4. นำาเอา PK ของ entity เก่าทั้งสองอัน ไปเป็น
attribute ของ entity ใหม่
5. กำาหนด 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
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)
โจทย์การทำา E-R Diagram
• ออกแบบฐานข้อมูลการสอนวิชาแต่ละเทอม
ของอาจารย์ 1 section มีคนสอนได้หลายคน
• ให้กำาหนด
– Entity
– Relationship
– Attribute
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)
โจทย์การทำา E-R Diagram
• จาก Model เดิมให้เพิ่มการเก็บข้อมูลห้องสอน
ของแต่ละ Section ในแต่ละเทอม
• ให้เพิ่ม
– Entity
– Relationship
– Attribute
ที่จำาเป็น
โจทย์การทำา E-R Diagram
จาก Model เดิมให้เพิ่มการเก็บข้อมูล
• นักศึกษาที่ลงทะเบียนเรียนในแต่ละเทอม พร้อมเกรด
ที่ได้
• เพิ่มคณะที่สังกัดของอาจารย์และนักศึกษา
• เพิ่มจำานวนรับนักศึกษาที่มากที่สุดของแต่ละกระบวน
วิชาในแต่ละเทอม
• เพิ่มสถานการณ์ลงทะเบียนของนักศึกษาว่า
– Accepted
– Add
– Drop
การบ้านให้ทำา E-R Diagram
ฐานข้อมูลทุนการศึกษาของมหาวิทยาลัย
เชียงใหม่
• มีทุนการศึกษาหลายทุน มีทั้งจากในและต่าง
ประเทศ
• ทุนการศึกษามี 2 ประเภท
– ให้ครั้งเดียว
– ให้ต่อเนื่องทุกปี
• นักศึกษาได้รับทุนมาจากหลายคณะ

Más contenido relacionado

Similar a Chapter 1 2

Ite 237 midterm guide
Ite 237 midterm guideIte 237 midterm guide
Ite 237 midterm guideBay Nattagrit
 
การจัดการฐานข้อมูล
การจัดการฐานข้อมูลการจัดการฐานข้อมูล
การจัดการฐานข้อมูลOrapan Chamnan
 
แนะนำการใช้งานโปรแกรม Mendeley
แนะนำการใช้งานโปรแกรม Mendeley แนะนำการใช้งานโปรแกรม Mendeley
แนะนำการใช้งานโปรแกรม Mendeley Rachanee Inlek
 
05 entity relationship model
05 entity relationship model05 entity relationship model
05 entity relationship modelOpas Kaewtai
 
คู่มือ EndNoteX7
คู่มือ EndNoteX7คู่มือ EndNoteX7
คู่มือ EndNoteX7Dulyarat Gronsang
 
การเพิ่มประสิทธิภาพและการสืบค้นทรัพยากรอิเล็กทรอนิกส์ด้วย Metadata (การจัดทำ ...
การเพิ่มประสิทธิภาพและการสืบค้นทรัพยากรอิเล็กทรอนิกส์ด้วย Metadata (การจัดทำ ...การเพิ่มประสิทธิภาพและการสืบค้นทรัพยากรอิเล็กทรอนิกส์ด้วย Metadata (การจัดทำ ...
การเพิ่มประสิทธิภาพและการสืบค้นทรัพยากรอิเล็กทรอนิกส์ด้วย Metadata (การจัดทำ ...Satapon Yosakonkun
 
ความหมายและประเภทโครงงานคอมพิวเตอร์
ความหมายและประเภทโครงงานคอมพิวเตอร์ความหมายและประเภทโครงงานคอมพิวเตอร์
ความหมายและประเภทโครงงานคอมพิวเตอร์phar_metinee
 
ความหมายและประเภทโครงงานคอมพิวเตอร์
ความหมายและประเภทโครงงานคอมพิวเตอร์ความหมายและประเภทโครงงานคอมพิวเตอร์
ความหมายและประเภทโครงงานคอมพิวเตอร์phar_metinee
 
Academic article guideline2012
Academic article guideline2012Academic article guideline2012
Academic article guideline2012DrDanai Thienphut
 
บทที่ 2 ทฤษฎีพื้นฐานของการจัดเก็บและค้นคืนสารสนทศ
บทที่ 2 ทฤษฎีพื้นฐานของการจัดเก็บและค้นคืนสารสนทศบทที่ 2 ทฤษฎีพื้นฐานของการจัดเก็บและค้นคืนสารสนทศ
บทที่ 2 ทฤษฎีพื้นฐานของการจัดเก็บและค้นคืนสารสนทศSrion Janeprapapong
 
บทที่ 3 ฐานข้อมูลและการค้นคืน
บทที่ 3 ฐานข้อมูลและการค้นคืนบทที่ 3 ฐานข้อมูลและการค้นคืน
บทที่ 3 ฐานข้อมูลและการค้นคืนSrion Janeprapapong
 

Similar a Chapter 1 2 (20)

Ite 237 midterm guide
Ite 237 midterm guideIte 237 midterm guide
Ite 237 midterm guide
 
การจัดการฐานข้อมูล
การจัดการฐานข้อมูลการจัดการฐานข้อมูล
การจัดการฐานข้อมูล
 
แนะนำการใช้งานโปรแกรม Mendeley
แนะนำการใช้งานโปรแกรม Mendeley แนะนำการใช้งานโปรแกรม Mendeley
แนะนำการใช้งานโปรแกรม Mendeley
 
Lesson 1 intro2_db
Lesson 1 intro2_dbLesson 1 intro2_db
Lesson 1 intro2_db
 
Lesson 1 intro2_db
Lesson 1 intro2_dbLesson 1 intro2_db
Lesson 1 intro2_db
 
Diary
DiaryDiary
Diary
 
05 entity relationship model
05 entity relationship model05 entity relationship model
05 entity relationship model
 
Greenstone & Dspace
Greenstone & DspaceGreenstone & Dspace
Greenstone & Dspace
 
Erd
ErdErd
Erd
 
คู่มือ EndNoteX7
คู่มือ EndNoteX7คู่มือ EndNoteX7
คู่มือ EndNoteX7
 
Chapter1 uml3
Chapter1 uml3Chapter1 uml3
Chapter1 uml3
 
Chapter1 uml3
Chapter1 uml3Chapter1 uml3
Chapter1 uml3
 
การเพิ่มประสิทธิภาพและการสืบค้นทรัพยากรอิเล็กทรอนิกส์ด้วย Metadata (การจัดทำ ...
การเพิ่มประสิทธิภาพและการสืบค้นทรัพยากรอิเล็กทรอนิกส์ด้วย Metadata (การจัดทำ ...การเพิ่มประสิทธิภาพและการสืบค้นทรัพยากรอิเล็กทรอนิกส์ด้วย Metadata (การจัดทำ ...
การเพิ่มประสิทธิภาพและการสืบค้นทรัพยากรอิเล็กทรอนิกส์ด้วย Metadata (การจัดทำ ...
 
ความหมายและประเภทโครงงานคอมพิวเตอร์
ความหมายและประเภทโครงงานคอมพิวเตอร์ความหมายและประเภทโครงงานคอมพิวเตอร์
ความหมายและประเภทโครงงานคอมพิวเตอร์
 
ความหมายและประเภทโครงงานคอมพิวเตอร์
ความหมายและประเภทโครงงานคอมพิวเตอร์ความหมายและประเภทโครงงานคอมพิวเตอร์
ความหมายและประเภทโครงงานคอมพิวเตอร์
 
Academic article guideline2012
Academic article guideline2012Academic article guideline2012
Academic article guideline2012
 
บทที่ 2 ทฤษฎีพื้นฐานของการจัดเก็บและค้นคืนสารสนทศ
บทที่ 2 ทฤษฎีพื้นฐานของการจัดเก็บและค้นคืนสารสนทศบทที่ 2 ทฤษฎีพื้นฐานของการจัดเก็บและค้นคืนสารสนทศ
บทที่ 2 ทฤษฎีพื้นฐานของการจัดเก็บและค้นคืนสารสนทศ
 
Class1
Class1Class1
Class1
 
บทที่ 3 ฐานข้อมูลและการค้นคืน
บทที่ 3 ฐานข้อมูลและการค้นคืนบทที่ 3 ฐานข้อมูลและการค้นคืน
บทที่ 3 ฐานข้อมูลและการค้นคืน
 
End note x6
End note x6End note x6
End note x6
 

Chapter 1 2

  • 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 ที่หนึ่งได้มากกว่าหนึ่งค่าเช่นกัน ยกตัวอย่างเช่น นักศึกษาหนึ่งคนสามารถลงทะเบียนวิชาได้หลายกระบวน วิชา และทุกกระบวนวิชาก็สามารถถูกลงทะเบียนโดย นักศึกษาจำานวนมากกว่าหนึ่งคน
  • 26. Entity-Relationship Modeling – Recursive (หรือ involute) relationship Entity หนึ่งมีความสัมพันธ์กับตัวมันเอง ยกตัวอย่างเช่น ผู้ อำานวยการห้องสมุดมหาวิทยาลัยคือบุคลากรคนหนึ่งใน มหาวิทยาลัย ยกตัวอย่างเช่น ตาราง Personal มีความสัมพันธ์กับตาราง Personal โดย เป็นความสัมพันธ์ของบุคลากรคนหนึ่งที่เป็นผู้อำานวยการ กับบุคลากรคนอื่น ๆ ที่เป็นเจ้าหน้าที่หรืออาจารย์ของห้อง สมุดมหาวิทยาลัยซึ่งอาจมีจำานวนมากที่สุด 50 คน จะเขียน ได้ว่า 1..50
  • 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 ประเภท – ให้ครั้งเดียว – ให้ต่อเนื่องทุกปี • นักศึกษาได้รับทุนมาจากหลายคณะ