Upload
mafia02
View
2.380
Download
3
Embed Size (px)
DESCRIPTION
Citation preview
การออกแบบฐานข้อมู�ล
อ.ธนพรรณ ก�ลจั�นทร�
การออกแบบฐานข้อมู�ล• ในการออกแบบฐานข้อมู�ลต้องท�าการสราง
Conceptual Model หร�อ Logical Design• Conceptual model เป็ นการจั�าลองการเก!บข้อมู�ลให
อยู่�#ในร�ป็ธรรมู จัากการวิ%เคราะห�ควิามูต้องการข้องผู้�ใช้ระบบ ซึ่+,งโครงสรางท.,เก%ดข้+0นจัะไมู#ข้+0นอยู่�#ก�บการเก!บข้อมู�ลจัร%งในคอมูพ%วิเต้อร�
• Conceptual model จัะใช้ในการส�,อสารระหวิ#างท.มูงานท.,ท�าการพ�ฒนาระบบ เพ�,อใหเข้าใจัแนวิค%ดท.,ต้รงก�น รวิมูไป็จันถึ+งใช้ในการส�,อสารก�บผู้�ใช้ ในบางกรณ.
การออกแบบฐานข้อมู�ล• การท�า Conceptual Model• มู. 2 วิ%ธ.
– Top down > E-R Modeling– Bottom up > Normalization
Entity-Relationship Modeling
เร.ยู่กส�0น ๆ วิ#า E-R Modelingแนวิควิามูค%ดในการท�ามู.ด�งน.0• การก�าหนด Entity และ Attributes
– Entity ค�อท�กอยู่#างท.,เก.,ยู่วิข้องก�บข้อมู�ลท.,สนใจัจั�ดเก!บ
– สามูารถึก�าหนดเหมู�อนเป็ นกล�#มูข้องข้อมู�ลท.,มู.ควิามูส�มูพ�นธ�ก�นโดยู่ Key ท.,ไมู#ซึ่�0าก�น
– 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 CodeLecturer NameEmployed dateAcademic Position
001Pranee Wongjamras01/01/1995Assoc. Prof.
Room Room NameSize
HB533030
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, LecturerNamePrimary Key = LecturerCodeมู�กเล�อกต้�วิท.,เป็ นต้�วิเลข้ หร�อข้นาดส�0นกวิ#า
Lecturer (LecturerCode, LecturerName, EmployedDate, AcademicPosition)
Entity-Relationship Modeling
• สร้�าง Relationships – Relationships ค�อควิามูส�มูพ�นธ�ระหวิ#าง Entity ท.,ท�าให
Model สามูารถึบ#งบอกถึ+งภาพรวิมูข้องข้อมู�ลท.,จั�ดเก!บได – ยู่กต้�วิอยู่#างเช้#น
Entity-Relationship Modeling
Entity Relationship
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 ข้อง RelationshipCardinality หมูายู่ถึ+งจั�านวินสมูาช้%กข้องควิามูส�มูพ�นธ�ท.,เก%ดข้+0น Cardinality มู.ท�0งหมูด 4 ช้น%ดค�อ
– One-to-one relationshipEntity ท.,หน+,งสามูารถึมู.ควิามูส�มูพ�นธ�ก�บ Entity ท., 2 ไดเพ.ยู่ง 1 ค#าเท#าน�0น ยู่กต้�วิอยู่#างเช้#น หองสมู�ดมูหาวิ%ทยู่าล�ยู่หน+,งแห#ง จัะมู.ผู้�อ�านวิยู่การไดเพ.ยู่งหน+,งคนเท#าน�0นใน
Entity-Relationship Modeling
• ยู่กต้�วิอยู่#างเช้#น หองสมู�ดมูหาวิ%ทยู่าล�ยู่หน+,งแห#ง จัะมู.ผู้�อ�านวิยู่การไดเพ.ยู่งหน+,งคนเท#าน�0นใน
• ผู้อ 1 คน สามูารถึ manage หองสมู�ดได นอยู่ท.,ส�ด 1 คน และมูากท.,ส�ด 1 คนหองสมู�ดหน+,งแห#ง ถึ�ก manage จัาก ผู้อ ได 1 คนเท#าน�0น
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 relationshipEntity ท.,หน+,งมู.ควิามูส�มูพ�นธ�ก�บ Entity ท.,สองไดมูากกวิ#า 1 ค#า ยู่กต้�วิอยู่#างเช้#น หน�งส�อหน+,งช้�,อเร�,อง มู.ไดหลายู่เล#มู (ส�าเนา ) (Copy) สามูารถึเข้.ยู่นไดด�งภาพ
One-to-many relationship
Book Copyhas
1..1 1..*
Book Copyhas
1..1 1..n
• หน�งส�อ 1 ช้�,อเร�,องมู.ส�าเนาได 1 ส�าเนาถึ+งหลายู่ๆ ส�าเนา• ส�าเนา 1 เล#มู เป็ นข้องหน�งส�อ 1 ช้�,อเร�,องเท#าน�0น
One-to-many relationship
• หน�งส�อ 1 ช้�,อมู.ส�าเนาไดต้�0งแต้# 1 เล#มูถึ+ง หลายู่เล#มู• ส�าเนา 1 เล#มู เป็ นข้องหน�งส�อ 1 ช้�,อเท#าน�0น
Book Copyhas
1..1 1..*
1 2 3
4
One-to-many relationship
Relation• Book(ISBN, Title, Author, Imprint)• Copy(RegisterNo, Date-acquried, Date-destroyed)
Book Copyhas
1..1 1..*
One-to-many relationship
• คณะ 1 คณะมู.น�กศึ+กษาไดหลายู่คน• น�กศึ+กษา 1 คนอยู่�#ได 1 คณะ
STUDENT FACULTYhas
1..n 1..1
One-to-many relationship
• วิารสาร 1 เล#มู มู.บทควิามูไดหลายู่บทควิามู• 1 บทควิามูจัะอยู่�#ในวิารสารไดนอยู่ท.,ส�ด 1 ช้�,อ
Journal Articlecontain
1..1 1..n
One-to-many relationship
• Subject(SubjectCode, SubjectName, Credit)• Course(CourseId, SubjectCode, Semester, Section,
TeacherCode)
Subject Coursehas
1..1 1..n
One-to-many relationship
• Course(CourseId, SubjectCode, Semester, Section, TeacherCode)
• Teacher(TeacherCode, TeacherName, RoomNo)
Course Teacherteach
1..n 1..1
Entity-Relationship Modeling
– Many-to-many relationship Entity ท.,หน+,งจัะมู.ควิามูส�มูพ�นธ�ก�บ Entity ท.,สองไดมูากกวิ#าหน+,งค#า และในทางกล�บก�น Entity ท.,สองก!สามูารถึมู.ควิามูส�มูพ�นธ�ก�บ Entity ท.,หน+,งไดมูากกวิ#าหน+,งค#าเช้#นก�น ยู่กต้�วิอยู่#างเช้#น น�กศึ+กษาหน+,งคนสามูารถึลงทะเบ.ยู่นวิ%ช้าไดหลายู่กระบวินวิ%ช้า และท�กกระบวินวิ%ช้าก!สามูารถึถึ�กลงทะเบ.ยู่นโดยู่น�กศึ+กษาจั�านวินมูากกวิ#าหน+,งคน
Many-to-many relationship
Student Coursetake
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 ข้องท�0งสอง entity มูาเป็ น ส#วินหน+,งข้อง PK ข้อง entity ใหมู#
Decomposition
• Student(StudentCode, StudentName)• Course(CourseId, SubjectCode, Semester, Section)• Grade (SubjectCode, Courseld, Grade)
Student Gradehas
1 1.. 1..nCourse
provide
1..n 1..1
ข้�0นต้อนการ composition
1 .ใหสราง entity ใหมู# ไวิต้รงกลาง2. ใหเข้.ยู่นห�วิล�กศึรช้.0เข้าหา entity ใหมู#ท�0งสองฝั่9, ง3. เข้.ยู่น cardinality ต้ามูห�วิล�กศึร4. น�าเอา PK ข้อง entity เก#าท�0งสองอ�น ไป็เป็ น
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 สามูารถึเป็ นค#าท.,ซึ่�0าก�นได
Example
Candidate Key =
Primary Key =
Foreign Key =
ข้�0นต้อนการสราง E-R Diagram
• ก�าหนด Entity ท�0งหมูด• ก�าหนด Relationship ระหวิ#าง Entity เหล#าน�0น• ก�าหนด Key Attribute ท�0งหมูด ค�อท�0ง 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
Course1..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..nteach
Faculty
1..n
1..1
hire
Section1..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
ฐานข้อมู�ลท�นการศึ+กษาข้องมูหาวิ%ทยู่าล�ยู่เช้.ยู่งใหมู#• มู.ท�นการศึ+กษาหลายู่ท�น มู.ท�0งจัากในและต้#าง
ป็ระเทศึ• ท�นการศึ+กษามู. 2 ป็ระเภท
– ใหคร�0งเด.ยู่วิ– ใหต้#อเน�,องท�กป็;
• น�กศึ+กษาไดร�บท�นมูาจัากหลายู่คณะ