41
กกกกกกกกกกกกกกกกกก ก.กกกกกก กกกกกกกกก

Chapter 1 2

  • Upload
    mafia02

  • View
    2.380

  • Download
    3

Embed Size (px)

DESCRIPTION

 

Citation preview

Page 1: Chapter 1 2

การออกแบบฐานข้อมู�ล

อ.ธนพรรณ ก�ลจั�นทร�

Page 2: Chapter 1 2

การออกแบบฐานข้อมู�ล• ในการออกแบบฐานข้อมู�ลต้องท�าการสราง

Conceptual Model หร�อ Logical Design• Conceptual model เป็ นการจั�าลองการเก!บข้อมู�ลให

อยู่�#ในร�ป็ธรรมู จัากการวิ%เคราะห�ควิามูต้องการข้องผู้�ใช้ระบบ ซึ่+,งโครงสรางท.,เก%ดข้+0นจัะไมู#ข้+0นอยู่�#ก�บการเก!บข้อมู�ลจัร%งในคอมูพ%วิเต้อร�

• Conceptual model จัะใช้ในการส�,อสารระหวิ#างท.มูงานท.,ท�าการพ�ฒนาระบบ เพ�,อใหเข้าใจัแนวิค%ดท.,ต้รงก�น รวิมูไป็จันถึ+งใช้ในการส�,อสารก�บผู้�ใช้ ในบางกรณ.

Page 3: Chapter 1 2

การออกแบบฐานข้อมู�ล• การท�า Conceptual Model• มู. 2 วิ%ธ.

– Top down > E-R Modeling– Bottom up > Normalization

Page 4: Chapter 1 2

Entity-Relationship Modeling

เร.ยู่กส�0น ๆ วิ#า E-R Modelingแนวิควิามูค%ดในการท�ามู.ด�งน.0• การก�าหนด Entity และ Attributes

– Entity ค�อท�กอยู่#างท.,เก.,ยู่วิข้องก�บข้อมู�ลท.,สนใจัจั�ดเก!บ

– สามูารถึก�าหนดเหมู�อนเป็ นกล�#มูข้องข้อมู�ลท.,มู.ควิามูส�มูพ�นธ�ก�นโดยู่ Key ท.,ไมู#ซึ่�0าก�น

– Entity จัะป็ระกอบไป็ดวิยู่ Entity type และ Entity Occurrence ยู่กต้�วิอยู่#างเช้#น

Page 5: Chapter 1 2

Entity-Relationship Modeling

Entity type Entity Occurrence

Lecturer อ.อ�งสนา,อ.ป็ราณ.(หมูายู่ถึ+งคนหน+,งคน)

Room HB5303, HB5350(หมูายู่ถึ+งหองหน+,งหอง)

Page 6: Chapter 1 2

Entity-Relationship Modeling

• การก�าหนด Attribute – Attribute ค�อค�ณสมูบ�ต้% หร�อล�กษณะข้อง Entity

ท.,ต้องการจั�ดเก!บ – Attribute จัะป็ระกอบไป็ดวิยู่ Attribute type และ

Attribute occurrence ยู่กต้�วิอยู่#างเช้#น

Page 7: Chapter 1 2

Entity-Relationship Modeling

Entity type

Attribute type Attribute occurrence

Lecturer Lecturer CodeLecturer NameEmployed dateAcademic Position

001Pranee Wongjamras01/01/1995Assoc. Prof.

Room Room NameSize

HB533030

Page 8: Chapter 1 2

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

Page 9: Chapter 1 2

Key attribute

Lecturer (LecturerCode, LecturerName, EmployedDate, AcademicPosition)

Candidate Key = LecturerCode, LecturerNamePrimary Key = LecturerCodeมู�กเล�อกต้�วิท.,เป็ นต้�วิเลข้ หร�อข้นาดส�0นกวิ#า

Lecturer (LecturerCode, LecturerName, EmployedDate, AcademicPosition)

Page 10: Chapter 1 2

Entity-Relationship Modeling

• สร้�าง Relationships – Relationships ค�อควิามูส�มูพ�นธ�ระหวิ#าง Entity ท.,ท�าให

Model สามูารถึบ#งบอกถึ+งภาพรวิมูข้องข้อมู�ลท.,จั�ดเก!บได – ยู่กต้�วิอยู่#างเช้#น

Page 11: Chapter 1 2

Entity-Relationship Modeling

Entity Relationship

Entity

Lecturer Teach in Room

Lecturer Teach Course

Student Learn in Course

Author Compose Book

Page 12: Chapter 1 2

Entity-Relationship Modeling

• สราง Entity-Relationship Diagram – หร�อท.,เร.ยู่กวิ#า E-R Diagram ค�อร�ป็ภาพท.,ใช้แสดงองค�

ป็ระกอบข้องข้อมู�ลท.,สนใจัจัะจั�ดเก!บ โดยู่อยู่�#ในร�ป็ข้อง Entity และ Relationships

Page 13: Chapter 1 2

Entity-Relationship Modeling

• Cardinality ข้อง RelationshipCardinality หมูายู่ถึ+งจั�านวินสมูาช้%กข้องควิามูส�มูพ�นธ�ท.,เก%ดข้+0น Cardinality มู.ท�0งหมูด 4 ช้น%ดค�อ

– One-to-one relationshipEntity ท.,หน+,งสามูารถึมู.ควิามูส�มูพ�นธ�ก�บ Entity ท., 2 ไดเพ.ยู่ง 1 ค#าเท#าน�0น ยู่กต้�วิอยู่#างเช้#น หองสมู�ดมูหาวิ%ทยู่าล�ยู่หน+,งแห#ง จัะมู.ผู้�อ�านวิยู่การไดเพ.ยู่งหน+,งคนเท#าน�0นใน

Page 14: Chapter 1 2

Entity-Relationship Modeling

• ยู่กต้�วิอยู่#างเช้#น หองสมู�ดมูหาวิ%ทยู่าล�ยู่หน+,งแห#ง จัะมู.ผู้�อ�านวิยู่การไดเพ.ยู่งหน+,งคนเท#าน�0นใน

• ผู้อ 1 คน สามูารถึ manage หองสมู�ดได นอยู่ท.,ส�ด 1 คน และมูากท.,ส�ด 1 คนหองสมู�ดหน+,งแห#ง ถึ�ก manage จัาก ผู้อ ได 1 คนเท#าน�0น

Library Director

University Library

Manage

1..1 1..1

Page 15: Chapter 1 2

One-to-one relationship

Relation• LibraryDirector(DirectoryId, DirectorName, Academic,

Position, Faculty)• UniversityLibrary(LibraryId, LibraryName,

UniversityName)

Library Director

University Library

Manage

1..1 1..1

Page 16: Chapter 1 2

Entity-Relationship Modeling

– One-to-many relationshipEntity ท.,หน+,งมู.ควิามูส�มูพ�นธ�ก�บ Entity ท.,สองไดมูากกวิ#า 1 ค#า ยู่กต้�วิอยู่#างเช้#น หน�งส�อหน+,งช้�,อเร�,อง มู.ไดหลายู่เล#มู (ส�าเนา ) (Copy) สามูารถึเข้.ยู่นไดด�งภาพ

Page 17: Chapter 1 2

One-to-many relationship

Book Copyhas

1..1 1..*

Book Copyhas

1..1 1..n

• หน�งส�อ 1 ช้�,อเร�,องมู.ส�าเนาได 1 ส�าเนาถึ+งหลายู่ๆ ส�าเนา• ส�าเนา 1 เล#มู เป็ นข้องหน�งส�อ 1 ช้�,อเร�,องเท#าน�0น

Page 18: Chapter 1 2

One-to-many relationship

• หน�งส�อ 1 ช้�,อมู.ส�าเนาไดต้�0งแต้# 1 เล#มูถึ+ง หลายู่เล#มู• ส�าเนา 1 เล#มู เป็ นข้องหน�งส�อ 1 ช้�,อเท#าน�0น

Book Copyhas

1..1 1..*

1 2 3

4

Page 19: Chapter 1 2

One-to-many relationship

Relation• Book(ISBN, Title, Author, Imprint)• Copy(RegisterNo, Date-acquried, Date-destroyed)

Book Copyhas

1..1 1..*

Page 20: Chapter 1 2

One-to-many relationship

• คณะ 1 คณะมู.น�กศึ+กษาไดหลายู่คน• น�กศึ+กษา 1 คนอยู่�#ได 1 คณะ

STUDENT FACULTYhas

1..n 1..1

Page 21: Chapter 1 2

One-to-many relationship

• วิารสาร 1 เล#มู มู.บทควิามูไดหลายู่บทควิามู• 1 บทควิามูจัะอยู่�#ในวิารสารไดนอยู่ท.,ส�ด 1 ช้�,อ

Journal Articlecontain

1..1 1..n

Page 22: Chapter 1 2

One-to-many relationship

• Subject(SubjectCode, SubjectName, Credit)• Course(CourseId, SubjectCode, Semester, Section,

TeacherCode)

Subject Coursehas

1..1 1..n

Page 23: Chapter 1 2

One-to-many relationship

• Course(CourseId, SubjectCode, Semester, Section, TeacherCode)

• Teacher(TeacherCode, TeacherName, RoomNo)

Course Teacherteach

1..n 1..1

Page 24: Chapter 1 2

Entity-Relationship Modeling

– Many-to-many relationship Entity ท.,หน+,งจัะมู.ควิามูส�มูพ�นธ�ก�บ Entity ท.,สองไดมูากกวิ#าหน+,งค#า และในทางกล�บก�น Entity ท.,สองก!สามูารถึมู.ควิามูส�มูพ�นธ�ก�บ Entity ท.,หน+,งไดมูากกวิ#าหน+,งค#าเช้#นก�น ยู่กต้�วิอยู่#างเช้#น น�กศึ+กษาหน+,งคนสามูารถึลงทะเบ.ยู่นวิ%ช้าไดหลายู่กระบวินวิ%ช้า และท�กกระบวินวิ%ช้าก!สามูารถึถึ�กลงทะเบ.ยู่นโดยู่น�กศึ+กษาจั�านวินมูากกวิ#าหน+,งคน

Page 25: Chapter 1 2

Many-to-many relationship

Student Coursetake

1..n 1..n

Page 26: Chapter 1 2

Entity-Relationship Modeling

– Recursive (หร�อ involute) relationship Entity หน+,งมู.ควิามูส�มูพ�นธ�ก�บต้�วิมู�นเอง ยู่กต้�วิอยู่#างเช้#น ผู้�อ�านวิยู่การหองสมู�ดมูหาวิ%ทยู่าล�ยู่ค�อบ�คลากรคนหน+,งในมูหาวิ%ทยู่าล�ยู่ยู่กต้�วิอยู่#างเช้#น ต้าราง Personal มู.ควิามูส�มูพ�นธ�ก�บต้าราง Personal โดยู่เป็ นควิามูส�มูพ�นธ�ข้องบ�คลากรคนหน+,งท.,เป็ นผู้�อ�านวิยู่การ ก�บบ�คลากรคนอ�,น ๆ ท.,เป็ นเจัาหนาท.,หร�ออาจัารยู่�ข้องหองสมู�ดมูหาวิ%ทยู่าล�ยู่ซึ่+,งอาจัมู.จั�านวินมูากท.,ส�ด 50 คน จัะเข้.ยู่นไดวิ#า 1..50

Page 27: Chapter 1 2

Recursive relationship

Page 28: Chapter 1 2

Recursive relationship

Page 29: Chapter 1 2

Entity-Relationship Modeling

• Decompositionการเก!บข้อมู�ล many-to-many ใน Relational DBMS จัะท�าใหการข้อมู�ลเก!บและคนหาข้อมู�ลไดยู่าก จั+งต้องมู.การท�า Decomposition โดยู่

– แต้กควิามูส�มูพ�นธ�แบบ many-to-many ออกเป็ นสองควิามูส�มูพ�นธ�

– ด+งเอา primary key ข้องท�0งสอง entity มูาเป็ น ส#วินหน+,งข้อง PK ข้อง entity ใหมู#

Page 30: Chapter 1 2

Decomposition

• Student(StudentCode, StudentName)• Course(CourseId, SubjectCode, Semester, Section)• Grade (SubjectCode, Courseld, Grade)

Student Gradehas

1 1.. 1..nCourse

provide

1..n 1..1

Page 31: Chapter 1 2

ข้�0นต้อนการ composition

1 .ใหสราง entity ใหมู# ไวิต้รงกลาง2. ใหเข้.ยู่นห�วิล�กศึรช้.0เข้าหา entity ใหมู#ท�0งสองฝั่9, ง3. เข้.ยู่น cardinality ต้ามูห�วิล�กศึร4. น�าเอา PK ข้อง entity เก#าท�0งสองอ�น ไป็เป็ น

attribute ข้อง entity ใหมู#5. ก�าหนด PK ข้อง entity ใหมู#

Page 32: Chapter 1 2

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าก�นได

Page 33: Chapter 1 2

Example

Candidate Key =

Primary Key =

Foreign Key =

Page 34: Chapter 1 2

ข้�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

Page 35: Chapter 1 2

โจัทยู่�การท�า E-R Diagram

• ออกแบบฐานข้อมู�ลการสอนวิ%ช้าแต้#ละเทอมูข้องอาจัารยู่� 1 section มู.คนสอนแค# 1 คน

• ใหก�าหนด– Entity– Relationship– Attribute

Page 36: Chapter 1 2

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)

Page 37: Chapter 1 2

โจัทยู่�การท�า E-R Diagram

• ออกแบบฐานข้อมู�ลการสอนวิ%ช้าแต้#ละเทอมูข้องอาจัารยู่� 1 section มู.คนสอนไดหลายู่คน

• ใหก�าหนด– Entity– Relationship– Attribute

Page 38: Chapter 1 2

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)

Page 39: Chapter 1 2

โจัทยู่�การท�า E-R Diagram

• จัาก Model เด%มูใหเพ%,มูการเก!บข้อมู�ลหองสอนข้องแต้#ละ Section ในแต้#ละเทอมู

• ใหเพ%,มู– Entity– Relationship– Attribute

ท.,จั�าเป็ น

Page 40: Chapter 1 2

โจัทยู่�การท�า E-R Diagram

จัาก Model เด%มูใหเพ%,มูการเก!บข้อมู�ล• น�กศึ+กษาท.,ลงทะเบ.ยู่นเร.ยู่นในแต้#ละเทอมู พรอมูเกรดท.,

ได• เพ%,มูคณะท.,ส�งก�ดข้องอาจัารยู่�และน�กศึ+กษา• เพ%,มูจั�านวินร�บน�กศึ+กษาท.,มูากท.,ส�ดข้องแต้#ละกระบวิน

วิ%ช้าในแต้#ละเทอมู• เพ%,มูสถึานการณ�ลงทะเบ.ยู่นข้องน�กศึ+กษาวิ#า

– Accepted– Add– Drop

Page 41: Chapter 1 2

การบานใหท�า E-R Diagram

ฐานข้อมู�ลท�นการศึ+กษาข้องมูหาวิ%ทยู่าล�ยู่เช้.ยู่งใหมู#• มู.ท�นการศึ+กษาหลายู่ท�น มู.ท�0งจัากในและต้#าง

ป็ระเทศึ• ท�นการศึ+กษามู. 2 ป็ระเภท

– ใหคร�0งเด.ยู่วิ– ใหต้#อเน�,องท�กป็;

• น�กศึ+กษาไดร�บท�นมูาจัากหลายู่คณะ