Page 1
เอกสารประกอบการเรยนการสอน
รายวชา ระบบฐานขอมลเบองตน
(Fundamentals of Database System)
จดทาโดย
อาจารยศรพร แสนศร
ภาควชาวทยาการคอมพวเตอรและสารสนเทศ
คณะวทยาศาสตรและวศวกรรมศาสตร
มหาวทยาลยเกษตรศาสตร วทยาเขตเฉลมพระเกยรต จงหวดสกลนคร
ตลาคม 2560
คลงคว
ามรดจ
ทล มหาวท
ยาลยเก
ษตรศาสต
ร
Page 2
คานา
เอกสารประกอบการสอนชดนจดทาขน เพอใชประกอบในการเรยนการสอนของ
รายวชา ระบบฐานขอมลเบองตน (Fundamentals of Database System) มเนอหา
เกยวกบพนฐานของระบบฐานขอมล แนวคด สถาปตยกรรมระบบฐานขอมล ฐานขอมลเชง
สมพนธ และมงเนน การออกแบบฐานขอมล รวมทงแบบฝกหดใหผเรยนทบทวนเนอหาได
เพอใหผเรยนมทรพยากรในการเรยนในชนเรยน และสามารถทบทวนบทเรยนในภายหลงได
โดยขอมลในเอกสารประกอบการสอนชดน นามาจากแหลงขอมลหลากหลาย หากมเนอหา
สวนใดสวนหนง สอดคลอง กบเอกสารชดอน และมเนอหาไมถกตอง ทางผจดทาขออภยมา ณ
ทนดวย
ทางผจดทาขอขอบพระคณ อ.ดร.เลอสรรค โบสวรรณ และ รองศาสตราจารย ดร.
ระววรรณ เออพนธวรยะกล จากสถาบนบณฑตพฒนบรหารศาสตร ทใหความร ขอเสนอแนะ
แกผจดทา
หากมขอเสนอแนะประการใดในเอกสารชดน กรณาสงขอมลมายงจดหมาย
อเลกทรอนกส [email protected] หรอ [email protected]
อ.ศรพร แสนศร
ตลาคม 2560
คลงคว
ามรดจ
ทล มหาวท
ยาลยเก
ษตรศาสต
ร
Page 3
สารบญ
เรอง หนา
บทท 1 แนวคดเกยวกบฐานขอมลเบองตน เปาหมายของระบบจดการฐานขอมล 1-1
• พนฐานทางดานฐานขอมล 1-2
• องคประกอบของระบบฐานขอมล 1-3
• คณสมบตหลกของเทคโนโลยฐานขอมล 1-4
• ประโยชนของเทคโนโลยฐานขอมล 1-6
• บทบาทของผใชงานระบบฐานขอมล 1-9
• ประวตของตวแบบขอมล 1-10
บทท 2 แนวคด สถาปตยกรรมเกยวกบระบบฐานขอมล ความไมพงพงของขอมล 2-1
บรณภาพและความเชอถอ
• สถาปตยกรรมระบบฐานขอมล 2-3
• ความเปนอสระของขอมล 2-4
• ภาษาของฐานขอมล 2-5
• สวนประกอบของระบบการจดการฐานขอมล 2-5
• อรรถประโยชนของระบบฐานขอมล 2-6
• ประเภทของระบบการจดการฐานขอมล 2-8
บทท 3 เคารางและเคารางยอย 3-1
• ตวแบบจาลองขอมล Entity Relationship 3-2
• การอาน ER Diagram 3-12
• แบบจาลองขอมล Extended Entity Relationship Model 3-13
• เงอนไขของ Generalization 3-17
• แบบฝกหดท 1 ER Diagram 3-23
• แบบฝกหดท 2 EER Diagram 3-28
คลงคว
ามรดจ
ทล มหาวท
ยาลยเก
ษตรศาสต
ร
Page 4
สารบญ (ตอ)
เรอง หนา
บทท 4 ตวแบบขอมลเชงลาดบชน เชงขายงาน และเชงสมพนธ 4-1
• ตวแบบขอมลเชงสมพนธ (Relational Data Model) 4-2
• เงอนไขความถกตองของขอมล (Relational Integrity Constraints) 4-8
• การละเมดเงอนไข 4-19
บทท 5 บรรทดฐานขอมลและภาษานยามขอมลพจนานกรมขอมล 5-1
• การแปลงตวแบบ EER เปนตวแบบขอมลเชงสมพนธ 5-2
• Functional Dependencies 5-17
• การทาบรรทดฐาน (Normalization) 5-31
• ตวอยาง กรณศกษา ระบบขอมลการเรยนการสอนของมหาวทยาลย ABC 5-64
• แบบฝกหดท 3 EER Mapping 5-77
• แบบฝกหดท 4 การทา Normalization 5-82
บทท 6 เครองชวยตอบขอซกถาม 6-1
• พนฐานของคาสง SQL 6-2
• ชนดขอมลและขอบเขตขอมลของแอททรบวต 6-3
• ภาษาการจดการขอมล (Data Manipulation Language) 6-3
• ภาษาการกาหนดขอมล (Data Definition Language) 6-19
บทท 7 การจดแฟมขอมลและความปลอดภยของแฟมขอมล 7-1
• พนฐานของทรานแซคชน 7-2
• สถานะของทรานแซคชน 7-10
• คณสมบตของทรานแซคชน 7-12
คลงคว
ามรดจ
ทล มหาวท
ยาลยเก
ษตรศาสต
ร
Page 5
บรรณานกรม
1. Fundamental of Database Systems , Elmasri & Navathe Fifth Edition.
2. การออกแบบฐานขอมล Database Design ผศ.ดร.ระววรรณ เออพนธวรยะกล
ISBN 974-231-723-2 สงหาคม 2549
คลงคว
ามรดจ
ทล มหาวท
ยาลยเก
ษตรศาสต
ร
Page 6
1-1
บทท 1 แนวคดเกยวกบฐานขอมลเบองตน เปาหมายของระบบจดการฐานขอมล
อ.ศรพร แสนศรภาควชาวทยาการคอมพวเตอรและสารสนเทศ
คณะวทยาศาสตรและวศวกรรมศาสตร
1
เนอหาบทเรยน
• พนฐานทางดานฐานขอมล
• องคประกอบของระบบฐานขอมล
• คณสมบตหลกของเทคโนโลยฐานขอมล
• ประโยชนของเทคโนโลยฐานขอมล
• บทบาทของผใชงานระบบฐานขอมล
• ประวตตวแบบขอมล
2
คลงคว
ามรดจ
ทล มหาวท
ยาลยเก
ษตรศาสต
ร
Page 7
1-2
คาจากดความ (Basic Definitions)• ฐานขอมล (Database) คอ กลมของขอมล (data) ทสมพนธกน• ขอมล (Data) คอ ขอเทจจรงทถกบนทกไดและมความหมายดวย• ขอบเขต (Mini-world) คอบางสวนของโลกทเกยวของกบขอมล (data) ทถกเกบไวในฐานขอมล เชน เกรดของนกศกษาและผลการเรยนในมหาวทยาลย
• ระบบการจดการฐานขอมล (Database Management System - DBMS) คอ ซอฟตแวรสาเรจรปหรอซอฟตแวรระบบทเออประโยชนหรออานวยความสะดวกในการสรางและบารงรกษาฐานขอมล
• ระบบฐานขอมล (Database System) จะตองมซอฟตแวรดบเอมเอส (DBMS) พรอมกบขอมลดวย บางครงอาจจะรวมดวย
3
ตวอยางฐานขอมล
• ตวอยางเกยวกบมหาวทยาลยแหงหนง
• ตวอยางเอนทตในขอบเขต
• นกศกษา (STUDENTs)
• รายวชา (COURSEs)
• หมเรยน (SECTIONs (OF COURSEs))
• คณะและหนวยงาน ((academic) DEPARTMENTs)
• ผสอน (INSTRUCTORs)
• นกศกษาแตละหลกสตรแตละคณะ (STUDENTs major in DEPARTMENTs)
4
คลงคว
ามรดจ
ทล มหาวท
ยาลยเก
ษตรศาสต
ร
Page 8
1-3
ตวอยางฐานขอมล (ตอ)
• ตวอยางความสมพนธระหวางเอนทต ในขอบเขต :
• หมเรยนของแตละวชา (SECTIONs are of specific COURSEs)
• นกศกษาในแตละหมเรยน (STUDENTs take SECTIONs)
• รายวชามรายวชาพนฐาน (COURSEs have prerequisite COURSEs)
• ผสอน ทสอนในแตละหมเรยน (INSTRUCTORs teach SECTIONs)
• รายวชา ถกเปดโดยคณะ (COURSEs are offered by DEPARTMENTs)
• นกศกษา สงกดหลกสตรในคณะ (STUDENTs major in DEPARTMENTs)
5
องคประกอบของระบบฐานขอมล(A database system environment)
6
ทมา : Fundamental of Database Systems , Elmasri & Navathe
คลงคว
ามรดจ
ทล มหาวท
ยาลยเก
ษตรศาสต
ร
Page 9
1-4
ตวอยาง ระเบยนขอมลในฐานขอมล นกศกษา7
ทมา : Fundamental of Database Systems , Elmasri & Navathe
คณสมบตหลกของเทคโนโลยฐานขอมล
ภายในดบเอมเอส (DBMS) มทเกบรายละเอยดของฐานขอมล เรยกวา เมตะดาตา (meta-data) โดยแตละดบเอมเอส (DBMS) จะม เมตะดาตา (meta-data) แตกตางกนออกไป (Self-contained nature of a database system)
มการปองกนระหวางตวโปรแกรมกบขอมล เรยกวา program-data independence หมายถง อนญาตใหมการเปลยนแปลงโครงสรางของขอมลและโอเปเรชนตางๆ ได โดยไมจาเปนตองเปลยนดบเอมเอส (DBMS) ทจะทาการเขาถงโปรแกรม (Insulation between programs and data)
8
คลงคว
ามรดจ
ทล มหาวท
ยาลยเก
ษตรศาสต
ร
Page 10
1-5
คณสมบตหลกของเทคโนโลยฐานขอมล (ตอ)
มการใชดาตาโมเดล (data model) เพอทาการซอนรายละเอยดเกยวกบพนทจดเกบ (storage) และนาเสนอให ผใชงาน (user) เหนในลกษณะทเปนมมมองแบบคอนเซปชวล (conceptual) ของฐานขอมล (Data Abstraction)
สนบสนนใหมมมมองในการใชขอมลไดหลากหลาย โดยทแตละ ผใชงาน (user) จะสามารถมองเหนฐานขอมลไดแตกตางกน สามารถเหนเฉพาะขอมลทสนใจไดเทานน (Support of multiple views of the data)
9
ตวอยาง 2 มมมองจากฐานขอมล
(a) มมมองเกยวกบเกรดของนกศกษา
10
TRANSCRIPT StudentNameGrade Report
CourseNumber Grade Semester Year SectionIDJane CS3320 B First 97 102
JohnCS1310 C Second 96 92
MATH2410 A Second 96 85
COURSE YearCourse Report
Semester CourseNumber SectionID
96Second CS1310 92Second MATH2410 85
97 First CS3320 102
(b) มมมองเกยวกบรายวชาทเปดสอน
ทมา : Fundamental of Database Systems , Elmasri & Navathe
คลงคว
ามรดจ
ทล มหาวท
ยาลยเก
ษตรศาสต
ร
Page 11
1-6
ประโยชนของเทคโนโลยฐานขอมล
สามารถทาการควบคมความซาซอนของขอมลได
สามารถใชขอมลรวมกนระหวางผใชงานหลายคนได
สามารถกาหนดการเขาถงขอมลได
มมมมองทหลากหลายได
สามารถแสดงความสมพนธทซบซอนของขอมลได
มการกาหนดเงอนไขเพอความถกตองของขอมลรวมทงรปแบบของขอมลในฐานขอมลได เรยกวาเงอนไขความถกตองของขอมล (Integrity constraint)
11
ประโยชนของเทคโนโลยฐานขอมล (ตอ)
มบรการในการสารองขอมล (backup) หรอ การกคนขอมล (recovery) oการสารองขอมล (backup) คอนาสาเนาของขอมลไปไวอกทหนงหรอทจดเกบอน เชนเทป เพอ
ปองกนความเสยหายได แตตวขอมลจรงกยงคงมในฐานขอมล
oการกคนขอมล (recovery) เปนการกขอมลคนมา เปนหนาทของดบเอมเอส (DBMS) ทตองนาขอมลกลบคนมา
สามารถบงคบการใชมาตรฐานได เพราะฐานขอมลเปนแบบรวมศนยกลาง(centralized) มผดแล (DBA) ทาหนาทดแลขอมล ทสามารถกาหนดมาตรฐานรวมกนได เชนชอคน 30 ตวอกษร นามสกล 30 ตวอกษร
12
คลงคว
ามรดจ
ทล มหาวท
ยาลยเก
ษตรศาสต
ร
Page 12
1-7
ประโยชนของเทคโนโลยฐานขอมล (ตอ)
มความยดหยนในการเปลยนแปลงโครงสรางขอมลเชน เพมแอททรบวต (Attribute) หรอ เพมรเลชน (Relation) โดยไมกระทบตอโปรแกรมเดมทใชอยแลว เพราะการเขาถงขอมลผานดบเอมเอส (DBMS) ทงหมด
เวลาในการพฒนาโปรแกรมลดลง เทยบกบระบบแฟมขอมลเพราะแฟมขอมล ตองกาหนดหมดเองทกอยาง เชนวธการเปลยนแปลงขอมล วธการเขาถงขอมล เปนตน แตในฐานขอมลไมตองจดการ เปนหนาทของดบเอมเอส (DBMS) ทงหมด
13
ประโยชนของเทคโนโลยฐานขอมล (ตอ)
เมอผใชระบบคนหนงทาการเปลยนแปลงขอมล ผใชระบบคนอนกสามารถเหนขอมลทเปลยนแปลงไดเสมอ เพราะสามารถควบคมความซาซอน (Control redundancy) ได
สามารถขยายระบบไดมากขนเรอยๆ โดยไมกระทบตอระบบเดม
14
คลงคว
ามรดจ
ทล มหาวท
ยาลยเก
ษตรศาสต
ร
Page 13
1-8
การประยกตใชฐานขอมลกบดานอนๆ
• ขอมลทางดานการทดลองตางๆ (Scientific)
• ฐานขอมลรปภาพ (Image Database) เกยวกบการเกบรปภาพตางๆ พวกมลตมเดย (Multimedia)
• เหมองขอมล (Data mining) เปนการนาขอมลในฐานขอมลไปรนภายใตโมเดลของเหมองขอมล เชน SAS
• ขอมลเชงพนท (Spatial Data) คอ ขอมลทเกยวกบพกด พนท
• ชดขอมลทางดานเวลา (Time Series Data) คอ ขอมลทขนอยกบเวลา เชน ยอดขายสนคาในแตละชวงเวลา ใชเพอทาการพยากรณ เปนตน
15
ขอเสยของดบเอมเอส (DBMS)
คาใชจาย o การลงทนสงกวาระบบแฟมขอมล เนองจาก ตองซอลขสทธเกยวกบระบบการจดการ
ฐานขอมล เครองคอมพวเตอรตองมประสทธภาพสงทสามารถรนดบเอมเอส (DBMS) ได
ประสทธภาพของดบเอมเอส (DBMS) ชากวาระบบแฟมขอมล เพราะ ด
บเอมเอส (DBMS) มฟงกชนตางๆ เชน ดานความปลอดภย ดานการทางานพรอมกน การกคนขอมล เปนตน ซงตองทาการบนทกขอมลหรอ โคดไปใสในทรานแซคชน (Transaction) ทาใหมตนทน (Overhead) สงกวา
16
คลงคว
ามรดจ
ทล มหาวท
ยาลยเก
ษตรศาสต
ร
Page 14
1-9
ขอเสยของดบเอมเอส (DBMS) (ตอ)• เมอไหรทไมตองใชดบเอมเอส (DBMS)
• ฐานขอมลแบบงาย โปรแกรมงาย ไมคอยมการเปลยนแปลง
• ระบบเรยลไทม (Real time system) เพราะระบบลกษณะนตองการการตอบสนองภายในระยะเวลาทกาหนด เชน 1 วนาทเปนตน ซงดบเอมเอส (DBMS) ทาไมได เพราะดบเอมเอส (DBMS) มตนทน (overhead) ทาใหไมสามารถตอบสนองตามเวลาทกาหนดได
• ถาไมมผใชงานระบบหลายคน มแคคนเดยวทใชงาน กไมจาเปนตองใช
• ถามขอมลทซบซอนมากๆ จะทาใหทาตวจดเกบขอมลไดยาก
• ไมมโอเปเรชนทซบซอนมาก มแคหา คาเฉลย คาสงสด คาตาสด ผลรวม จานวนนบ เทานน
17
บทบาทของผใชงานระบบฐานขอมล
• ผดแลระบบฐานขอมล (Database Administrators)
• ผออกแบบฐานขอมล (Database designer)
• ผใชงานระบบ (End Users)
• นกวเคราะหระบบ (System Analysts)
• นกพฒนาโปรแกรม (Application Programmers)
18
คลงคว
ามรดจ
ทล มหาวท
ยาลยเก
ษตรศาสต
ร
Page 15
1-10
ประวตของตวแบบขอมล (Data Model)
• ตวแบบเชงสมพนธ (Relational Model) เปนตวแบบตวทสาม เกดในป 1970 ผคดคนคอ E.F.Codd แตไมมคายใดสนใจ แตในป 1981-1982 จงออกเปนดบเอมเอส (DBMS) แบบทางการคา สาเหตทยงคงใชตวแบบเชงสมพนธ เพราะทกทฤษฎของ codd สามารถพสจนไดทงหมด
• ตวแบบเชงเครอขาย (Network Model) เปนตวแบบตวแรกทถกนามาใชงานในป 1964-65 เรยกวา IDS เชน VAX – DBMS คลายๆ กบกราฟ
19
ประวตของ ตวแบบขอมล (Data Model) (ตอ)• ตวแบบเชงโครงสราง (Hierarchical Data Model) เปนตวแบบตวทสอง เกดหลงตวแบบเชงเครอขาย 1 ป คนสรางคอ IBM มดบเอมเอส (DBMS) คอ IMS คลายๆ กบตนไม (tree) เรยกวา owner –member
• ตวแบบเชงวตถ (Object-oriented Data Models) เปนตวแบบตวทส ในป 1987-1988 เรมไดรบความสนใจ มมากอนในแนวคดจาลอง (concept simulation) เรยกวา SIMLA ตอมากม C++ เปนตน ตวแบบนมพนฐานมาจากแนวเชงวตถจรงๆ เกบขอมลในฐานขอมล
20
คลงคว
ามรดจ
ทล มหาวท
ยาลยเก
ษตรศาสต
ร
Page 16
1-11
ประวตของตวแบบขอมล (Data Model) (ตอ)
• ตวแบบเชงวตถและเชงสมพนธ (Object-Relational Models) สงทโปรแกรมเหนคอ วธทางาน (Method) แตสงทเกบในฐานขอมล คอ เชงสมพนธ เชน oracle, informix เปนตน
• สาเหตททาใหตวแบบเชงเครอขายและเชงโครงสรางไมมการใชงาน เพราะ ไมมหลกการการออกแบบฐานขอมล มแตโครงสรางกบการดาเนนงาน ไมมทฤษฎในการออกแบบ
21
ตวแบบขอมล (Data Model)• ตวแบบขอมล(Data Model) คอ แนวคดทใชอธบายโครงสรางของฐานขอมลและเงอนไขทฐานขอมลตองปฏบตตาม เชน คยไมซากน ขอมลแตละทพเพลไมซากนเลย เปนตน
• การดาเนนงานของตวแบบขอมล (Data Model Operation) คอตวทใชเรยกขอมลหรอเปลยนแปลงหรอเพมหรอลบ(update/insert/delete) ขอมล เชน คาสงเอสควแอล (SQL) พวก insert/update/delete
22
คลงคว
ามรดจ
ทล มหาวท
ยาลยเก
ษตรศาสต
ร
Page 17
1-12
ตวแบบขอมล (Data Model) (ตอ)ตวแบบขอมล (Data Model) ม 3 ประเภทใหญๆคอ
ตวแบบขอมลประเภทแนวคด (Conceptual - high-level, semantic data models) คอ ผใชระบบงาน สามารถเขาใจแนวคดไดงาย เชน เอนทต รเลชนชพ โมเดล (Entity-relationship model) หรอ ออปเจคเบส ดาตาโมเดล (Object-based data model)
ตวแบบขอมลประเภทกายภาพ (Physical - low-level, internal data model) อธบายการจดเกบขอมลในคอมพวเตอรวาจดเกบอยางไร การเขาถงขอมล ทาอยางไร
23
ตวแบบขอมล (Data Models) (ตอ) ตวแบบขอมลประเภทการนาไปใชงาน (Implementation -record-oriented data models) อยตรงกลางระหวางประเภทแนวคด และ กายภาพ เชน โมเดลเชงสมพนธ (Relational Model) โมเดลเชงโครงสราง (Hierarchical Data Model) เปนตน คอ ตวแบบขอมลทใชงานในดบเอมเอส (DBMS)
24
คลงคว
ามรดจ
ทล มหาวท
ยาลยเก
ษตรศาสต
ร
Page 18
1-13
ตวอยางฐานขอมลนกศกษา โดยใชตวแบบขอมลประเภทฐานขอมลเชงสมพนธ (relational database model)
25
ทมา : Fundamental of Database Systems , Elmasri & Navathe
คลงคว
ามรดจ
ทล มหาวท
ยาลยเก
ษตรศาสต
ร
Page 19
2-1
บทท 2 แนวคด สถาปตยกรรมเกยวกบระบบฐานขอมล
ความไมพงพงของขอมล บรณภาพและความเชอถอ
อ.ศรพร แสนศรภาควชาวทยาการคอมพวเตอรและสารสนเทศ
คณะวทยาศาสตรและวศวกรรมศาสตร
1
เนอหาบทเรยน
• สถาปตยกรรมระบบฐานขอมล
• ความเปนอสระของขอมล
• ภาษาของฐานขอมล
• สวนประกอบของระบบการจดการฐานขอมล
• อรรถประโยชนของระบบฐานขอมล
• ประเภทของระบบการจดการฐานขอมล
2
คลงคว
ามรดจ
ทล มหาวท
ยาลยเก
ษตรศาสต
ร
Page 20
2-2
Schemas และ Instances
• Database Schema คอ โครงสรางของฐานขอมล หรอ
เงอนไขของฐานขอมล
• Database Instance คอ ตวขอมลทเกบในฐานขอมล
หรอเรยกวา database state หรอ occurrence
3
ตวอยาง
4
ทมา : Fundamental of Database Systems , Elmasri & Navathe
คลงคว
ามรดจ
ทล มหาวท
ยาลยเก
ษตรศาสต
ร
Page 21
2-3
แผนภาพโครงสรางฐานขอมล (Schema diagram for the database)
5
ทมา : Fundamental of Database Systems , Elmasri & Navathe
สถาปตยกรรมระบบฐานขอมล6
ทมา : Fundamental of Database Systems , Elmasri & Navathe
คลงคว
ามรดจ
ทล มหาวท
ยาลยเก
ษตรศาสต
ร
Page 22
2-4
ความเปนอสระของขอมล (Data Independence)ม 2 แบบคอ
Logical data independence คอเปลยนท conceptual ไมกระทบ external
Physical data independence คอเปลยนท internal ไมกระทบ conceptual
7
สถาปตยกรรมระบบฐานขอมล (ตอ)
INTERNAL SCHEMA
คานาหนาชอ ชอ นามสกล
CONCEPTUAL SCHEMA
คานาหนาชอ ชอ+นามสกล
EXTERNAL VIEW
คานาหนาชอ+ชอ นามสกล
8
EXTERNAL/CONCEPTUAL MAPPING
CONCEPTUAL/INTERNAL MAPPING
คลงคว
ามรดจ
ทล มหาวท
ยาลยเก
ษตรศาสต
ร
Page 23
2-5
ภาษาของฐานขอมล (DBMS Languages)
• Data Definition Language (DDL)
ภาษาทใชกาหนดโครงสรางหรอเงอนไข คอ กาหนด
schema ของ database
• Data Manipulation Language (DML)
คอภาษาทใชในการ retrieve/update/ insert/delete
ขอมล
9
สวนประกอบของระบบการจดการฐานขอมล - DBMS10
ทมา : Fundamental of Database Systems , Elmasri & Navathe
คลงคว
ามรดจ
ทล มหาวท
ยาลยเก
ษตรศาสต
ร
Page 24
2-6
อรรถประโยชนของระบบฐานขอมล (Database System Utilities)
• Loading คอ export/import ขอมลเอา database ทก DBMS ม loading
• Backing up คอการ back up สาเนาขอมลไปไวท media อน เชน เทป บาง DBMS จะสามารถกาหนดเวลาไดในการทา backup
11
• Reorganizing จาเปนตองทาแตไมบอย หรอ ใน OS เรยกวา defragmentation ใน database ทตองทา reorganize เพราะ เมอมการทา insert/update/delete ขอมลตลอดเวลา จะทาใหเกดชองวาง จงควรจะทา reorganization ถาไมทา จะทาให harddisk เตม ทงท harddisk ไมเตมจรง เพราะมชองวางเยอะแยะ และทาให performance ตาลง
• Report generation เปนการสราง report
12
อรรถประโยชนของระบบฐานขอมล (Database System Utilities) (ตอ)
คลงคว
ามรดจ
ทล มหาวท
ยาลยเก
ษตรศาสต
ร
Page 25
2-7
• Performance monitoring เปน tool ให DBA เพอดประสทธภาพของการประมวลผลของ transaction วาเปนอยางไร คอคาสถตทมใน performance monitoring
• Other functions เชน sorting, user monitoring (log file), data compression และม data encryption
13
อรรถประโยชนของระบบฐานขอมล (Database System Utilities) (ตอ)
Data Dictionary• หรอ repository จะเกบ user information เชน user role สทธ user ตางๆ
14
คลงคว
ามรดจ
ทล มหาวท
ยาลยเก
ษตรศาสต
ร
Page 26
2-8
ประเภทของระบบการจดการฐานขอมล• Based on the Data model used โดยใช data model แบงได 2 ประเภทคอ
Traditional จะม Relational, Network, Hierarchical
Emerging จะม Object-oriented, Object-relational
• Other classifications
Single-user จานวน user กจะม Single-user และ multi-user
สถานท คอ ทาแคทเดยว เรยกวา centralized และ ทาหลายท เรยกวา distributed database คอม database หลายทแตทางานรวมกน
15
คลงคว
ามรดจ
ทล มหาวท
ยาลยเก
ษตรศาสต
ร
Page 27
3-1
อ.ศรพร แสนศรภาควชาวทยาการคอมพวเตอรและสารสนเทศ
คณะวทยาศาสตรและวศวกรรมศาสตร
บทท 3 เคารางและเคารางยอย
1
เนอหาบทเรยน• ตวแบบจาลองขอมล Entitiy-Relationship (ER Model)
• การอานตวแบบจาลองขอมล
• ตวแบบจาลองขอมล Extended Entity-Relationship (EER model)
• การแบงคลาสยอย
• เงอนไขของ Generalization
2
คลงคว
ามรดจ
ทล มหาวท
ยาลยเก
ษตรศาสต
ร
Page 28
3-2
3
การออกแบบฐานขอมล
ทมา : Fundamental of Database Systems , Elmasri & Navathe
4
ตวแบบจาลองขอมล – Entity-Relationship (ER Model)
ทมา : Fundamental of Database Systems , Elmasri & Navathe
คลงคว
ามรดจ
ทล มหาวท
ยาลยเก
ษตรศาสต
ร
Page 29
3-3
สญลกษณ ER5
ทมา : Fundamental of Database Systems , Elmasri & Navathe
ตวแบบจาลองขอมล – Entity-Relationship (ER Model)• Entities คอ สงทตองการเกบขอมล เชน ระบบลงทะเบยนของมก.ฉกส. entity เชน นสต, สาขาวชา, การลงทะเบยน, วชาเรยน เปนตน
• Attributes คอ ขอมลของ entity ทตองการจดเกบ เชน นสต ประกอบดวย รหสนสต ชอ นามสกล ทอย คณะ สาขา เบอรโทรศพท email เปนตน ในแตละ attribute กจะมคาของ attribute เชน รหสนสต มคาคอ 5240200301 เปนตน
6
คลงคว
ามรดจ
ทล มหาวท
ยาลยเก
ษตรศาสต
ร
Page 30
3-4
ตวอยาง ER Diagram7
ทมา : Fundamental of Database Systems , Elmasri & Navathe
Entity Types and Key Attributes
• Entity type คอ ถาหลายๆ entity ทมคา attribute ตางกน แตมชอ attribute เหมอนกน เชน entity type นสต นนคอ ทก entity type มคา attribute ตางกน แตชอ attribute เหมอนกน
• attribute ในแตละ entity type จะมคาท unique คอคาทไมซาใน entity type เรยกวา key attribute เชน entity type นสต กจะมรหสนสต เปน key attribute
8
คลงคว
ามรดจ
ทล มหาวท
ยาลยเก
ษตรศาสต
ร
Page 31
3-5
ตวอยาง สอง เอนทต “นสต” และ “รายวชา” พรอมคาของแตละแอทรบวต
9
Key Attributes• ถา key attribute ทเกดจาก attribute หลายตวมารวมกน เรยกวา composite key เชน entity type “การลงทะเบยน” ในระบบลงทะเบยน ประกอบดวย attribute คอ ปการศกษา, ภาคการศกษา, รหสวชา, หมเรยน, รหสนสต, ประเภทการลงทะเบน เปนตนดงนน key คอ ปการศกษา+ภาคการศกษา+รหสวชา+หมเรยน+รหสนสต เปนตน
• ใน 1 entity type ม key ไดมากกวา 1 ชด ได เชน รหสนสต หรอ เลขบตรประชาชน เปนตน
10
คลงคว
ามรดจ
ทล มหาวท
ยาลยเก
ษตรศาสต
ร
Page 32
3-6
สญลกษณ ER11
ทมา : Fundamental of Database Systems , Elmasri & Navathe
ประเภทของแอททรบวต (Types of Attributes)
• Domain คอ คาทเปนไปไดทงหมดของ attribute เชน domain เพศ คอ ชาย และ หญง domain คณะในมก.ฉกส. คอ 4 คณะ เปนตน
• ประเภทของ attribute ม 3 ประเภทคอ
Simple attribute คอ domain ตองเปน simple คอแบงแยกคาไมได และคา attribute ตองม 1 คาเทานน เชน domain เพศ คณะ เปนตน attribute วนเกด เปน simple แบงไมได เพราะเมอนาคา วนท เดอน ป เชน 30 เดอน 2 ป 2008 ซงขอมลนไมมจรง เปนตน
12
คลงคว
ามรดจ
ทล มหาวท
ยาลยเก
ษตรศาสต
ร
Page 33
3-7
Composite attribute คอ domain ทเปน composite
domain คอ domain แตกยอยได เชน ทอยทประกอบดวย
domain บานเลขท ถนน ตาบล อาเภอ จงหวด เปนตน
13
ประเภทของแอททรบวต (Types of Attributes) (ตอ)
Multi-valued attribute คอ attribute ทหยบคาจาก domain ไดหลายคา เชน เบอรโทรศพท เปนตน
•multi-valued attribute ซอนใน composite attribute ได เชน ประวตการศกษา เปน multi-valued attributes และเปน composite attribute ทประกอบดวย ชอสถานศกษา ระดบปรญญา ปทจบ เปนตน
14
ประเภทของแอททรบวต (Types of Attributes) (ตอ)
คลงคว
ามรดจ
ทล มหาวท
ยาลยเก
ษตรศาสต
ร
Page 34
3-8
ตวอยาง ER Diagram - Attributes15
ทมา : Fundamental of Database Systems , Elmasri & Navathe
สญลกษณ ER16
ทมา : Fundamental of Database Systems , Elmasri & Navathe
คลงคว
ามรดจ
ทล มหาวท
ยาลยเก
ษตรศาสต
ร
Page 35
3-9
ความสมพนธ (Relationships)• Relationship ความสมพนธระหวาง entity 2 entity ขนไป คนละ entity type หรอ entity type เดยวกนกได
• Relationship of the same type สามารถรวมกนไดถาเปนชนดเดยวกน
• ชอ relationship เปนคากรยา
• degree คอ จานวนของ entity ทมสวนรวมใน relationship นนๆ ถาม 2 entity เรยกวา binary relationships ถามมากกวา 2 entity เรยกวา ternary relationships
17
เงอนไขของความสมพนธ (Structural constraints)
ม 2 แบบคอ
Cardinality ratio 1:1, 1:N, N:1 และ M:N คอ อยางมากสมพนธเทาไหร
Participation constraint จะม total (เสนค) และ partial (เสนเดยว) คอ อยางนอยสมพนธเทาไหร ถา total คอ อยางนอย 1 ถา partial คอ อยางนอย 0
18
คลงคว
ามรดจ
ทล มหาวท
ยาลยเก
ษตรศาสต
ร
Page 36
3-10
ตวอยาง ER Diagram - Relationships19
ทมา : Fundamental of Database Systems , Elmasri & Navathe
บทบาท - Roles• relationship ทมความสมพนธกบ entity type เดยวกนเรยกวา recursive relationship type ทาใหไมรวามบทบาทอะไร
• relationship สามารถม attribute ได จะเกดไดตองเกดความสมพนธระหวาง entity type เทานน
20
คลงคว
ามรดจ
ทล มหาวท
ยาลยเก
ษตรศาสต
ร
Page 37
3-11
ตวอยาง ER Diagram – Roles (บทบาท)21
ทมา : Fundamental of Database Systems , Elmasri & Navathe
ตวอยาง ER Diagram – Weak Entity22
ทมา : Fundamental of Database Systems , Elmasri & Navathe
คลงคว
ามรดจ
ทล มหาวท
ยาลยเก
ษตรศาสต
ร
Page 38
3-12
การอาน ER Diagram23
ทมา : Fundamental of Database Systems , Elmasri & Navathe
แบบฝกหด ER diagram
24
คลงคว
ามรดจ
ทล มหาวท
ยาลยเก
ษตรศาสต
ร
Page 39
3-13
แบบจาลองขอมล EXTENDED ENTITY-RELATIONSHIP
(EER) MODEL
แบบจาลองขอมล EXTENDED ENTITY-RELATIONSHIP
(EER) MODEL
25
Generalization AbstractionGeneralization Abstraction
26
Superclass และ Subclass Relationship
ทมา : Fundamental of Database Systems , Elmasri & Navathe
คลงคว
ามรดจ
ทล มหาวท
ยาลยเก
ษตรศาสต
ร
Page 40
3-14
Extended Entity-Relationship (EER) modelExtended Entity-Relationship (EER) model• Class/Subclass Relationship
• SubClass สามารถเพม Attribute ไดทเปนเฉพาะเจาะจง สวน SuperClass จะม Attribute ทใชไดทกๆ SubClass จะเปนทวไปมากกวา
• Subclass จะ inherit attribute และ inherit relationship ทงหมดจาก Superclass มาดวย
• Entity ทอยใน superclass จะตองอยใน Entity ใน subclass ดวย
27
Extended Entity-Relationship (EER) model (Cont.)• เหตผลทตองม superclass/subclass
• attribute บาง attribute ใชไมไดกบบาง entity แตบาง attribute ใชไดกบบาง entity เชน นสต ทม แอททรบวต รหสนสต แตใชไมไดกบ อาจารย ทไมตองมแอททรบวต รหสนสต เปนตน
• relationship บางชนดใชไดกบบาง entity บาง relationship ใชไมไดกบบาง entity
• 1 entity ใน subclass จะตอง map กบ 1 entity ใน superclass ไดเทานน
28
คลงคว
ามรดจ
ทล มหาวท
ยาลยเก
ษตรศาสต
ร
Page 41
3-15
ตวอยางของ generalization. (a) เอนทต รถยนต และ รถบรรทก
29
(b) การทาเปน Superclass / Subclass
ทมา : Fundamental of Database Systems , Elmasri & Navathe
การแบง Subclassการแบง subclass แบงไดหลายวธคอ
• Predicated-defined (condition-defined) subclass โดยการใชคาขอมลของ attribute ของ superclass ทาการแบง subclass เชน attribute ประเภทพนกงาน แบงได 3 คาคอ เลขานการ ชางเทคนค และ วศวกร ทาใหได 3 class คอ เลขานการ ชางเทคนค และ วศวกร สวนโปรแกรมกไมตองให user เลอกคาเลย
30
คลงคว
ามรดจ
ทล มหาวท
ยาลยเก
ษตรศาสต
ร
Page 42
3-16
การแบง Subclass (ตอ)
31
ทมา : Fundamental of Database Systems , Elmasri & Navathe
• User-defined แบงตามผใชงาน ไมมเงอนไขตามคาของ attribute ตองให user เลอกวาจะคยคาขอมลอะไร
32
การแบง Subclass (ตอ)
ทมา : Fundamental of Database Systems , Elmasri & Navathe
คลงคว
ามรดจ
ทล มหาวท
ยาลยเก
ษตรศาสต
ร
Page 43
3-17
• เงอนไขม 2 แบบคอ
• Disjointedness constraint (Coverage Constraint Type II) ประกอบดวย 2 ประเภทคอ
•Disjoint – d คอ member ใน subclass ไมซากนเลย
•Overlap – o คอ member ใน subclass มซากนบางสวน
• Completeness constraint (Coverage Constraint Type I) ประกอบดวย 2 ประเภท คอ
• Total แสดงดวยเสนค
• Partial แสดงดวยเสนเดยว
33
เงอนไขของ Generalization
เงอนไขท 1 : Coverage Constraints : Type II (Disjointedness Constraint)
• EXCLUSIVE (Disjoint) constraint เปนความสมพนธเปนแบบ 1:1 จรงๆ นนคอ subclass 1 entity map กบ superclass 1 entity และในทางกลบกน superclass 1 entity map กบ subclass 1 entity เชนกน
•OVERLAPPING ความสมพนธเปนแบบ 1:M นนคอ subclass 1 entity จบคกบ superclass 1 entity แต superclass 1 entity map กบ subclass ไดก entity กได
34
คลงคว
ามรดจ
ทล มหาวท
ยาลยเก
ษตรศาสต
ร
Page 44
3-18
ตวอยางของ เงอนไขท 1 แบบ Disjointness (d)
35
ทมา : Fundamental of Database Systems , Elmasri & Navathe
ตวอยางของ overlapping (nondisjoint) subclasses
36
ทมา : Fundamental of Database Systems , Elmasri & Navathe
คลงคว
ามรดจ
ทล มหาวท
ยาลยเก
ษตรศาสต
ร
Page 45
3-19
เงอนไขท 2 : Coverage Constraints : Type I (Completeness Constraint)• Total : การแบง subclass จะแบงไดเทาน ไมสามารถแบงไดอกแลว หรอ หมายความวา ทกๆ entity ของ superclass ทงหมด map ไปยง subclass ใด subclass หนง อยางนอย 1 เชน พนกงาน แบงได 3 ประเภทคอ วศวกร เสมยน และ เลขานการ เทานน
37
ทมา : Fundamental of Database Systems , Elmasri & Navathe
• Partial : บาง entity ของ superclass map ไปยงบาง subclass เชน พนกงานสามารถแบงได เปน วศวกร เสมยน เลขานการ และอนๆ ซงทแบงไมได คอ อนๆ
38
เงอนไขท 2 : Coverage Constraints : Type I (Completeness Constraint) (ตอ)
ทมา : Fundamental of Database Systems , Elmasri & Navathe
คลงคว
ามรดจ
ทล มหาวท
ยาลยเก
ษตรศาสต
ร
Page 46
3-20
การรวมทงสองเงอนไข Coverage Constraints : Type I and Type II
39
1) 1) total,disjoint
2) total, overlap
ทมา : Fundamental of Database Systems , Elmasri & Navathe
40
การรวมทงสองเงอนไข Coverage Constraints : Type I and Type II (ตอ)
4) partial, overlap
3) partial, total
ทมา : Fundamental of Database Systems , Elmasri & Navathe
คลงคว
ามรดจ
ทล มหาวท
ยาลยเก
ษตรศาสต
ร
Page 47
3-21
ตวอยาง การใช attribute เพอแบง subclass
41
พนกงาน แบงไดเปน เลขานการ ชางเทคนค วศวกร และ อนๆ เพราะเปนเสนเดยว (partial) ตรง พนกงาน แต subclass จะตองเปน ประเภทพนกงาน อยางใดอยางหนงเทานนคอ เลขานการ ชางเทคนค วศวกร และ อนๆ
ทมา : Fundamental of Database Systems , Elmasri & Navathe
ตวอยาง overlapping (nondisjoint) subclasses
42
ทมา : Fundamental of Database Systems , Elmasri & Navathe
คลงคว
ามรดจ
ทล มหาวท
ยาลยเก
ษตรศาสต
ร
Page 48
3-22
แบบฝกหด EERแบบฝกหด EER
43
คลงคว
ามรดจ
ทล มหาวท
ยาลยเก
ษตรศาสต
ร
Page 49
3-23
แบบฝกหดท 1 ER diagram
จงเขยน ER diagram
1.บรษท ABC จากด มพนกงานสงกดแผนกไดคนละ 1 แผนก โดยพนกงานจะเกบขอมล รหสประจาตว ชอ
(ประกอบดวยชอตน ชอกลาง นามสกล) เงนเดอน พนกงานแตละคนจะมผเกบขอมลผรบผลประโยชน ซงจะ
เกบกตอเมอพนกงานคนนนทางานอยในบรษทเทานน ถาลาออกขอมลผรบผลประโยชนกจะไมเกบ
พนกงานคนหนงทางานไดหลายโครงการ แตละโครงการกมพนกงานสงกดไดมากกวา 1 คน
พนกงานคนหนงเปนผจดการโครงการไดหลายโครงการแตโครงการหนงมผจดการไดแคคนเดยว
2. ในฐานขอมล MAIL_ORDER เกยวกบ พนกงานทาการสงซอชนสวนสนคาจากลกคา โดยมความตองการ
ดงตอไปน
• บรษท mail order มขอมลพนกงานประกอบดวย รหสพนกงาน ชอ และนามสกล และ
รหสไปรษณยตามทอยปจจบน
• ขอมลลกคา ประกอบดวย รหสลกคา ชอ และนามสกล และรหสไปรณยตามทอยปจจบน
• ขอมลชนสวนสนคา ประกอบดวย รหสชนสวนสนคา ชอชนสวนสนคา ราคา และจานวนทมใน
คลงสนคา
• ในการสงซอแตละครง พนกงาน จะเปนคนสงซอใหลกคา โดยม รหสการสงซอ ทสามารถระบ
รายละเอยดการสงซอได โดยเมอมการสงซอเกดขนวนททชาระเงน เปนวนเดยวกนกบวนสงสนคา
แตเมอไดจดสงสนคาเปนวนทแนนอน กตองทาการบนทกวาจดสงสนคาทแทจรงดวย
3.ในฐานขอมล MOVIE เกยวกบ ขอมลหนงหรอภาพยนต โดยมความตองการดงตอไปน
• ขอมลหนงแตละเรอง ประกอบดวย ขอมลชอเรองและปทฉาย เปนคาทไมซา ความยาวของหนงแต
ละเรอง มหนวยนบเปน นาท ชอบรษททผลต และประเภทของหนง เชน หนงแอคชน ชวต สยอง
ขวญ เปนตน โดยทหนงหนงเรอง สามารถอยภายใตประเภทหนงไดตงแต 1 ประเภทขนไป
• หนงแตละเรองจะมผกากบไดตงแต 1 คนขนไปและมนกแสดงตงแต 1 คนขนไป
• หนงแตละเรองจะมรายละเอยดคราวๆ ของหนงดวย
• หนงแตละเรองมหรอไมมการกลาวอางองโดยนกแสดงในเรอง กได
• ขอมลนกแสดงประกอบดวย ชอ และวนเกด ซงสามารถเปนนกแสดงในหนงไดตงแต 1 เรองขนไป
และในหนงแตละเรองตองระบบทบาทการแสดงดวย
• ขอมลผกากบ ประกอบดวย ชอ และ วนเกด และสามารถกากบหนงไดตงแต 1 เรองขนไป และ ผ
กากบอาจจะเปนนกแสดงในหนงดวย กได
• ขอมลบรษททผลตหนง ประกอบดวย ชอ และ ทอยบรษท โดยทบรษทผลตหนงตงแต 1 เรองขนไป
คลงคว
ามรดจ
ทล มหาวท
ยาลยเก
ษตรศาสต
ร
Page 50
3-24
4.จงแปลง M:N relationship ใหเปน 1:N relationship
พนกงาน
ชนสวนสนคา
รหสพนกงาน
ชอ
นามสกล
รหสไปรษณย
ลกคา
รหสลกคา
ชอ
นามสกล
รหสไปรษณย
รหสชนสวนสนคา
ชอชนสวนสนคา
ราคา
จานวนทมในคลง
สงซอN
M
N
คลงคว
ามรดจ
ทล มหาวท
ยาลยเก
ษตรศาสต
ร
Page 51
3-25
5. จงอาน ER diagram
DEPENDENTDEPENDENT
Relationship
DEPARTMENT
Name Number
LocationsEMPLOYEE
Ssn
AddrSalary
Sex
Birthdate
PROJECT
Name
NumberLocation
Name
SexBirthdate
manages1 1
works_for1 N
works_on
N
M
StartDate
Hours
supervise
Supervisor 1
Supervisee N
Depent
N
1
คลงคว
ามรดจ
ทล มหาวท
ยาลยเก
ษตรศาสต
ร
Page 52
3-26
6.จงอาน ER diagram
DEPENDENTS_OFDEPENDENTS_OF
EMPLOYEE
SUPERVISION
WORKS_FOR
supervisee
supervisor
1 N
DEPARTMENT
1NSalary
Address
Sex
Name
Ssn
Bdate
FnameMinit Lname
Name Number
Locations
NumberOfEmployees
MANAGES
StartDate
1 1
CONTROLS
PROJECT
1
N
Name
PNumber
Location
WORKS_ON
Hours
M N
1
N
Name
SexBirthDate
Relationship
DEPENDENT
คล
งความร
ดจทล ม
หาวทยาล
ยเกษตรศ
าสตร
Page 53
3-27
7. จงอาน ER diagram
AIRPORT
AirportCode
Name
State
City
CAN_LAND
AIRPLANE TYPE
TypeName
Maxseats
Company
N
M
TYPE
AIRPLANE
AirplaneId
Total_no_of_seats
N
1
DEPARTURE_ AIRPORT
FLIGHTLEG1 N
ScheduledDepTime
LegNo
ARRIVAL_ AIRPORT
ScheduledArrTime
1N
1
FLIGHT
Weekdays
N
Number
Airline
DEPENDENTS_OFLEGS
DEPENDENTS_OFFARES
FARE
1
N Code
Amount
Restrictions
DEPENDENTS_OFINSTANCEOF
LEG INSTANCE
N
1 instances
Date
No_of_avail_Seats
ARRIVES
ArrTime
N
1
DEPARTS
1
N
DepTime
ASSIGNED1 N
DEPENDENTS_OFRESERVED
SEAT
1
N
CustomerName
CPhoneSeatNo
คล
งความร
ดจทล ม
หาวทยาล
ยเกษตรศ
าสตร
Page 54
3-28
แบบฝกหดท 2 EER diagram
จงเขยน EER diagram
1.บรษท XYZ จากด เกบขอมลพนกงานในบรษทดงน รหส ชอ ทอย โดยจะเกบขอมลดวยวาพนกงานคนไหนเปน
ผจดการของใครบาง พนกงานม 2 ประเภทคอ Fulltime กบ Parttime โดยพนกงาน Fulltime จะเกบเงนเดอน
สวน Parttime จะเกบจานวนชวโมงททางานและเกบอตราคาจาง พนกงานแตละคนสงกดไดคนละแผนก แผนก
จะเกบรหสแผนกและชอแผนก โครงการจะเกบรหสโครงการและตนทนในการดาเนนการ
พนกงานแตละคนจะทางานไดหลายโครงการ แตละโครงการกมพนกงานทาไดหลายคน โดยจะเกบวนทท
พนกงานแตละคนเรมทาโครงการ และวนทโครงการเสรจสน
แตละโครงการจะมสงกดวาโครงการนนขนกบแผนกใดในบรษท โดยแผนกหนงอาจมไดหลายโครงการ เมอ
มพนกงานทางานในโครงการใดจงจะสามารถใชเครองจกรได โดยแตละโครงการใชงานเครองจกรไดเพยงเครองเดยว
แตเครองจกรเครองหนงสามารถใชงานไดหลายโครงการ เครองจกรจะเกบรหสเครองจกรและรายละเอยดของ
เครองจกร
2.ระบบมหาวทยาลย มขอกาหนดดงน
• พนกงานถกมอบหมายงานใหอยในหนวยงานและพนกงานแตละคนจะตองมหนวยงานทสงกดอย
• พนกงานแบงออกเปน 3 ประเภท คอ อาจารย, เสมยน, เลขานการ
• วชาเรยนจะเกดขนไดกตอเมอมหนวยงานหนงๆ เสนอวชานนขนมา
• วชาหนงๆ จะใชหองเรยนไดหลายหอง เชน อาจใชหองแลบดวย และแตละหองเรยนกมหลายวชามาใช
• อาจารยคนหนงๆ สอนไดหลายวชาและแตละวชากมอาจารยสอนไดหลายคน
• นกศกษาจะลงทะเบยนเรยนไดกตอเมอวชาทลงทะเบยนมอาจารยสอนแลวเทานน
3. ระบบเกบขอมลเกยวกบเทยวบน (Flight) และบคลากรบนเทยวบน (Staff) โดยแตละเทยวบนจะมนกบน (Pilots)
พนกงานตอนรบ (Hostess) และผจดการเทยวบน (Flight Manager) พนกงานตอนรบรายงานตอผจดการเทยวบน
เทยวบนหนงๆ จะตองมบคลากรบนเทยวบน ลกคาสามารถจองเทยวบนใดๆ กได (Reservation) ซงการจองนบรษท
ทองเทยว (Travel Agency) อาจจะเปนผทาการจองใหแกลกคา
• คณสมบตของเทยวบนคอ เลขทเทยวบน เมองปลายทาง เวลาออกจากจดเรมตน และเวลาถงจดหมาย
ปลายทาง
• คณสมบตของลกคาคอ รหสลกคา และชอลกคา
• คณสมบตของบรษททองเทยวคอ รหสบรษททองเทยว และทอยทมหลายทอยได
• คณสมบตของบคลากรคอ รหสบคลากร ชอ และเงนเดอน
• คณสมบตของนกบนคอ รหสบคลากร ชอ เงนเดอน และจานวนชวโมงบน
• คณสมบตของพนกงานตอนรบคอ รหสบคลากร ชอ เงนเดอน และชนโดยสาร
• คณสมบตของผจดการเทยวบนคอ รหสบคลากร ชอ เงนเดอน และระดบ
คลงคว
ามรดจ
ทล มหาวท
ยาลยเก
ษตรศาสต
ร
Page 55
4-1
บทท 4 ตวแบบขอมลเชงลาดบชน เชงขายงาน และเชงสมพนธ
บทท 4 ตวแบบขอมลเชงลาดบชน เชงขายงาน และเชงสมพนธ
อ.ศรพร แสนศรภาควชาวทยาการคอมพวเตอรและสารสนเทศ
คณะวทยาศาสตรและวศวกรรมศาสตร
1
เนอหาบทเรยน• แนวคดของตวแบบเชงสมพนธ (Relational Model Concepts)
• เงอนไขความถกตองของตวแบบเชงสมพนธ (Relational Integrity constraints)
• Key Constraints
• Entity Integrity Constraints
• Referential Integrity Constraints
• การละเมดเงอนไข
2
คลงคว
ามรดจ
ทล มหาวท
ยาลยเก
ษตรศาสต
ร
Page 56
4-2
ตวแบบขอมลเชงสมพนธ (Relational Data Model)
• พนฐาน ในลกษณะ รเลชน คอ เปนตาราง กบ คอลมภ โดยมแนวคดทางคณตศาสตรเปนหลก ทเกยวของกบเรอง set
• ผคนพบคอ Dr. E.F.Codd ในป 1970 แตยงไมมการใชในทางการคา จนกระทงป 1980 จงมการใชงานอยางแพรหลาย
3
คานยามของตวแบบเชงสมพนธ อยางไมเปนทางการ
• RELATION คอ ตารางของขอมล (table) หรอ คอ set ของแถว (set of rows) หรอ คอ set ของคอลมภ (set of columns)
• แตละแถว (row) มคอลมภ (unique identifier) บงบอกความแตกตางของแตละ row
• แตละคอลมภ (column) มชอของ column หรอ ชอแอททรบวต (attribute name)
4
คลงคว
ามรดจ
ทล มหาวท
ยาลยเก
ษตรศาสต
ร
Page 57
4-3
คานยามของตวแบบเชงสมพนธ แบบทางการ• ทกๆ ฐานขอมล (database) ม โครงราง (schema) ของฐานขอมล (Schema of database) ประกอบดวย โครงรางของรเลชน (Schema relation) เขยนโดย R(A1,A2,...,An) หมายถง Relation R ประกอบดวย attribute A1 A2 A3 จนถง An โดยชอ Relation เปนตวอกษรพมพใหญ ตามดวยชอ attribute ซงขนตนดวยตวพมพใหญ ใชแบบเดยวกนกบ EER model
5
คานยามของตวแบบเชงสมพนธ แบบทางการ (ตอ)• เชน CUSTOMER (Cust-id, Cust-name, Address, Phone#) คอ Customer เปน Relation
ประกอบดวย attribute คอ Cust-id, Cust-name, Address และ Phone#
• แตละ attribute จะตองม domain คอ set ของคาทเปนไปไดทงหมดของ attribute นน เชน domain ของ Cust-id เปนตวเลข 6 หลก เปนตน
6
คลงคว
ามรดจ
ทล มหาวท
ยาลยเก
ษตรศาสต
ร
Page 58
4-4
ขอบเขตของคาขอมล (DOMAIN)set ของคาทเปนไปไดทงหมดของ attribute นน เชน
• ชนดขอมล (data type) เชน ตวเลข 10 หลก เปนตน
• รปแบบขอมล (format) เชน วนท มหลายรปแบบ เชน yyyy-mm-dd หรอ mm,yyyy หรอ หมายเลขโทรศพท กจะมรปแบบเชนกน เชน (ddd)ddd-dddd เปนตน
• คาของขอมลทมจานวนจากด และสามารถระบคา ได เชน เพศ ประกอบดวย สอง คาคอ ชาย หรอ หญง หรอ จะใชคา F, M เปนตน
7
ขอบเขตของคาขอมล (DOMAIN) (ตอ)• บาง domain อาจจะตองใชชอ attribute มาแสดงบทบาทตางๆ กน เชน date จะม payment-date, birth-date กจะม domain คอ date เหมอนกน แตคนละความหมาย เปนตน
8
คลงคว
ามรดจ
ทล มหาวท
ยาลยเก
ษตรศาสต
ร
Page 59
4-5
คานยามคาศพทในตวแบบขอมลเชงสมพนธ (FORMAL DEFINITIONS)• tuple คอ row คอ ชดของขอมลทมการเรยงลาดบ หมายความวา การเรยงลาดบของคาใน tuple จะเรยงลาดบตามลาดบของ attribute ใน schema ของ รเลชน
เชน CUSTOMER ประกอบดวย Cust-id, Cust-name, Address และ Phone# ดงนน คาของ tuple กจะเรยงลาดบตามชอ attribute สวนคากมาจาก domain ของแตละ attribute เชน <632895,”Jon Smith”,”101 Main St.Atlanta, GA 30332”,”(404) 894-2000”>
9
FORMAL DEFINITIONS (Con.t)• ดงนน Relation หมายถง set ของ tuple
• Relation เมอกาหนด schema ของ relation แลวสามารถทราบ ของเขตทงหมดของ relation ได โดยการทา cartesianproduct ของ domain ของแตละ attribute
10
คลงคว
ามรดจ
ทล มหาวท
ยาลยเก
ษตรศาสต
ร
Page 60
4-6
FORMAL DEFINITIONS (Con.t)• ดงนน นยามแบบ formal จะได วา
กาหนด R(A1,A2,...,An) r(R) subset-of dom (A1) X dom (A2) X...X dom(An)
โดยท R คอ schema ของ relation
r (r ตวเลก) คอ relation ทม data แลว
r(R) คอ relation ทม attribute แลว
เชน R(S1,S2) ให dom(S1) = {0,1} dom(S2) = {a,b,c}
r(R) subset-of S1 X S2
เชน r(R) = {<0,a>,<0,b>,<1,c>}
U = {<0,a>,<0,b>,<0,c>,<1,a>,<1,b>,<1,c>}
11
สรปคานยามศพท
12
Informal Terms Formal Terms
Table Relation
Column Attribute/Domain
Row Tuple
Values in a column Domain
Table Definition Schema of Relation
Populated Table Extension
คลงคว
ามรดจ
ทล มหาวท
ยาลยเก
ษตรศาสต
ร
Page 61
4-7
ตวอยาง attributes และ tuples ของ relation SECTION
13
ทมา : Fundamental of Database Systems , Elmasri & Navathe
คณลกษณะของรเลชน (Characteristics of Relations)
tuple ไมมการเรยงลาดบ
ลาดบของ attribute ไมมความสาคญ
ทกคาของ tuple ของทก attribute จะตองเปนแบบ atomic คอ domain จะตองเปน simple domain เทานน
ถามคาทไมร หรอไมมคาทจะใส หรอคาไมเหมาะสมกบ attribute ใน tuple ใหใสคา NULL
14
คลงคว
ามรดจ
ทล มหาวท
ยาลยเก
ษตรศาสต
ร
Page 62
4-8
ตวอยาง relation TRANSCRIPT
15
TRANSCRIPT StudentName CourseNumber Grade Semester Year SectionID
Jane CS3320 B First 97 102
John CS1310 C Second 96 92
John MATH2410 A Second 96 85
TRANSCRIPT StudentName CourseNumber Grade Semester Year SectionID
John CS1310 C Second 96 92
John MATH2410 A Second 96 85
Jane CS3320 B First 97 102
ทมา : Fundamental of Database Systems , Elmasri & Navathe
เงอนไขความถกตองของขอมล (Relational Integrity Constraints)เงอนไขความถกตองของขอมล (Relational Integrity Constraints)
เงอนไขใน Relation ม 3 เงอนไขคอ
Key constraints
Entity integrity constraints
Referential integrity constraints
นนคอ ทกๆ การทา operation กบ database ทง 3 เงอนไขนจะตองทาการทดสอบ ถาเงอนไขเปนจรง operation กผาน ถาเงอนไขเปนเทจ แลว operation กตองยกเลก
16
คลงคว
ามรดจ
ทล มหาวท
ยาลยเก
ษตรศาสต
ร
Page 63
4-9
Key Constraints Key Constraints
“ ทก Relation ใน ฐานขอมล ตองมการกาหนดคยหลก
(Primary Key – PK) ”
-> PK คอ Attribute ทมคาขอมลไมซา(Unique)
โดยในแตละ Relation ตองม PK แค 1 ชดเทานน
17
Key Constraints (ตอ) Key Constraints (ตอ)
• Superkey ของรเลชน R คอ set ของ attribute ของ Relation R ทมคาไมซา (unique) คอ ไมม tuple ตงแต 2 tuple ใน R ทมคาเดยวกนทก attribute
• Superkey ประกอบดวย attribute กตวกได เชน 1,2 หรอ ทงหมดกได
• Primary Key ของรเลชน R คอ ชดของ superkey ทม attribute จานวนนอยทสด โดยการพจารณาจาก superkey แลวนา attribute บางตวออก แลว ทาใหเกดมคาซาของสองหรอมากกวาสอง tuple ขนไป หมายถง ความเปน unique หายไป
18
คลงคว
ามรดจ
ทล มหาวท
ยาลยเก
ษตรศาสต
ร
Page 64
4-10
Key Constraints (ตอ) Key Constraints (ตอ)ตวอยาง CAR relation schema
CAR (A,B,C,D) สมมต คา A unique เปน superkey ได
คา AB unique เปน superkey ได
คา ABC unique เปน superkey ได
คา ABCD unique เปน superkey ได
19
A B C D
1 1 1 1
2 1 1 1
3 1 1 1
4 1 1 1
Key Constraints (ตอ) Key Constraints (ตอ)ตวอยาง CAR relation schema (ตอ)
-> “Primary Key ของรเลชน R คอ ชดของ superkey ทม attribute จานวนนอยทสด โดยการพจารณาจาก superkey แลวนา attribute บางตวออกแลวความเปน unique หายไป”
เชน AB แลวดง B ออก กยง unique แสดงวา AB ไมใช key
20
Af B C D
1 1 1 1
2 1 1 1
3 1 1 1
4 1 1 1
A B C D
1 1 1
2 1 1
3 1 1
4 1 1
คลงคว
ามรดจ
ทล มหาวท
ยาลยเก
ษตรศาสต
ร
Page 65
4-11
Key Constraints (ตอ) Key Constraints (ตอ)ตวอยาง CAR relation schema (ตอ)
เชน
ถา A แลวดง A ออก เหลอ เซตวาง ไม unique นนคอ A เปน superkey ทม attribute จานวนนอยทสด
ดงนน A คอ Primary Key ของรเลชน CAR
21
A B C D
1 1 1 1
2 1 1 1
3 1 1 1
4 1 1 1
A B C D
1 1 1
1 1 1
1 1 1
1 1 1
Key Constraints (ตอ) Key Constraints (ตอ)ตวอยาง CAR relation schema (ตอ)
สมมต BD unique เปน superkey แลวดง D ออกทาใหไม unique นนคอ BD เปน key ได
นนคอตอนนม key 2 ชดคอ {A},{BD} เรยกวา candidate key ตองเลอกตวใดตวหนงเปน Primary key แลวตองเขยนเสนใต
เชน เลอก {A} เปน Primary key
สวน {BD} เปน alternate key
22
คลงคว
ามรดจ
ทล มหาวท
ยาลยเก
ษตรศาสต
ร
Page 66
4-12
ตวอยาง รเลชน CAR ม 2 CK : LicenseNumber และEngineSerialNumber (CK : Candidate Key)
23
รถ ทะเบยนรถ หมายเลขตวถง ยหอ รน ปผลต
Texas ABC-739 A69352 Ford Mustang 96
Florida TVP-347 B43696 Oldsmobile Cutlass 99
New York MPO-22 X83554 Oldsmobile Delta 95
California 432-TFY C43742 Mercedes 190-D 93
California RSK-629 Y82935 Toyota Camry 98
Texas RSK-629 U028365 Jaguar XJS 98
Secondary KeyPrimary Key
1 -> {ทะเบยนรถ}2 -> {หมายเลขตวถง}3 -> {ทะเบยนรถ, หมายเลขตวถง}
Relational Database Schema• S = {R1,R2,...,Rn} S คอ database schema
• R1,R2,...,Rn คอ ชอของ relation schema ภายใน database S
24
คลงคว
ามรดจ
ทล มหาวท
ยาลยเก
ษตรศาสต
ร
Page 67
4-13
ตวอยาง COMPANY Database Schema ตามเงอนไขท 25
พนกงานรหส
พนกงานชอ ชอกลาง นามสกล วนเกด ทอย เพศ เงนเดอน รหสหวหนา
รหสแผนก
แผนกรหสแผนก ชอแผนก รหสผจดการแผนก วนเรมตาแหนง
ทอยของแผนกรหสแผนก จงหวดทอย
โครงการรหสโครงการ ชอโครงการ ทตงโครงการ รหสแผนก
การทางานในโครงการรหสพนกงาน รหสโครงการ จานวนชวโมงททางาน
ผเกยวของกบพนกงานรหสพนกงาน ชอนามสกลผเกยวของ เพศ วนเกด ความสมพนธ
ทมา : Fundamental of Database Systems , Elmasri & Navathe
Entity Integrity Constraints• เกยวของกบ Primary Key attribute (PK) ของแตละ relation คอ “PK ไมสามารถมคาเปน NULL ได”
• สมมต ถา PK คอ {BD} ทงคตองไมมคา NULL
26
คลงคว
ามรดจ
ทล มหาวท
ยาลยเก
ษตรศาสต
ร
Page 68
4-14
ตวอยาง COMPANY Database Schema ตามเงอนไขท 27
พนกงานรหส
พนกงานชอ ชอกลาง นามสกล วนเกด ทอย เพศ เงนเดอน รหสหวหนา
รหสแผนก
แผนกรหสแผนก ชอแผนก รหสผจดการแผนก วนเรมตาแหนง
ทอยของแผนกรหสแผนก จงหวดทอย
โครงการรหสโครงการ ชอโครงการ ทตงโครงการ รหสแผนก
การทางานในโครงการรหสพนกงาน รหสโครงการ จานวนชวโมงททางาน
ผเกยวของกบพนกงานรหสพนกงาน ชอนามสกลผเกยวของ เพศ วนเกด ความสมพนธ
ทมา : Fundamental of Database Systems , Elmasri & Navathe
Referential Integrity Constraints• เงอนไขระหวาง 2 Relation คอ เปนความสมพนธระหวาง Relation
• โดยท Relation หนง เรยกวา Referencing relation คอ Relation ทอางถง relation อน และ referenced relation คอ relation ทถกอางอง
• โดยจะม attribute ทเรยกวา foreign key (FK) ใน relation (referencing relation) ทอางถง โดยจะอางถง PK ของ relation อน (referenced relation)
28
คลงคว
ามรดจ
ทล มหาวท
ยาลยเก
ษตรศาสต
ร
Page 69
4-15
29
แผนกรหสแผนก ชอแผนก รหสผจดการแผนก วนเรมตาแหนง
ทอยของแผนกรหสแผนก จงหวดทอย
Referential Integrity Constraints (Cont.)Referential Integrity Constraints (Cont.)
FK
PK
โครงการรหสโครงการ ชอโครงการ ทตงโครงการ รหสแผนก
FK
Referential Integrity Constraint (Cont.)
attribute ทเปน FK
• เปนสวนหนงของ PK ได หรอ
• เปน attribute ใน relation
30
คลงคว
ามรดจ
ทล มหาวท
ยาลยเก
ษตรศาสต
ร
Page 70
4-16
31
แผนกรหสแผนก ชอแผนก รหสผจดการแผนก วนเรมตาแหนง
ทอยของแผนกรหสแผนก จงหวดทอย
Referential Integrity Constraints (Cont.)Referential Integrity Constraints (Cont.)
FK
PK
โครงการรหสโครงการ ชอโครงการ ทตงโครงการ รหสแผนก
FK
Referential Integrity Constraint (Cont.)• เงอนไขของ FK คอ
1. FK จะตองมคาอยใน set ของคา PK ทอางถง
หรอ
2. คา NULL ไดบางคา
เชน รหสคณะ ม 3 คา คอ {1,4,5}
ดงนน รหสคณะทเปน FK ตองมคา 3 คานเทานน
• ถา FK เปนสวนหนงของ PK ดงนน FK คาเปน NULL ไมได
• ถา FK เปน attribute ใน relation นน FK สามารถเปนคา NULL ได
32
คลงคว
ามรดจ
ทล มหาวท
ยาลยเก
ษตรศาสต
ร
Page 71
4-17
33
แผนกรหสแผนก ชอแผนก รหสผจดการแผนก วนเรมตาแหนง
001 A E001 01012010002 B E005 01052010
Referential Integrity Constraints (Cont.)Referential Integrity Constraints (Cont.)
โครงการรหสโครงการ ชอโครงการ ทตงโครงการ รหสแผนก
P001 AB สกลนคร 001P002 XY นครพนม 001P003 ST กาฬสนธ
FK
การเขยน relational database schema และเงอนไข
• แตละ relation schema สามารถแสดงเปน แถวของชอ attribute ได
• ชอของ relation เขยนไวดานบนของชอ attribute
• attribute ทเปน PK จะตองขดเสนใต
• attribute ทเปน FK จะแสดงโดยการใชเสนตรงทหวลกศร ชไปยง Relation ทถกอางถง (Referenced relation) หรอ สามารถทาใหเปนตวอกษรแบบเอยง กได
34
คลงคว
ามรดจ
ทล มหาวท
ยาลยเก
ษตรศาสต
ร
Page 72
4-18
ตวอยาง การเขยน relational database schema
35
พนกงานรหส
พนกงานชอ ชอกลาง นามสกล วนเกด ทอย เพศ เงนเดอน รหสหวหนา
รหสแผนก
แผนกรหสแผนก ชอแผนก รหสผจดการแผนก วนเรมตาแหนง
ทอยของแผนกรหสแผนก จงหวดทอย
โครงการ
รหสโครงการ ชอโครงการ ทตงโครงการ รหสแผนก
การทางานในโครงการรหสพนกงาน รหสโครงการ จานวนชวโมงททางาน
ผเกยวของกบพนกงานรหสพนกงาน ชอนามสกลผเกยวของ เพศ วนเกด ความสมพนธ
ทมา : Fundamental of Database Systems , Elmasri & Navathe
Constraints อนๆ• Semantic Integrity Constraints เกยวของกบเงอนไขของ application ทนอกเหนอจากทมใน model เชน
เงนเดอนพนกงานมากกวา 5000 ขนไปจนถง 100000 บาท เปนตน
ซง DBMS กจะทาการ check constraint ใหตอน insert, update, delete
36
คลงคว
ามรดจ
ทล มหาวท
ยาลยเก
ษตรศาสต
ร
Page 73
4-19
Populated database state• เปนการเปลยนสถานะของ database เนองมาจากคาสง insert, update, delete คอเปลยนจากสถานะ valid state เปน valid state คอ สถานะของ database ทเปนไปตามเงอนไขตางๆ ซง DBMS จะทาหนาทในการ check ใหถา valid state กจะยอมรบใหทา operation นน ถาไมใช valid state กจะยกเลก operation
37
การละเมดเงอนไข มการละเมดไดดงน
1. Key constraint เมอทาการ insert คา key ไปซากบคา key ทมอยแลว
2. Entity integrity constraint เมอทาการ insert ไปแลว คา key มคาเปน null
3. Referential integrity constraint เมอทาการ insert ไปแลว คาทเพมเขาไปไมมคาอยจรง
4. Domain integrity constraint เปนการละเมดคาทเปนไปไดของ attribute
38
คลงคว
ามรดจ
ทล มหาวท
ยาลยเก
ษตรศาสต
ร
Page 74
4-20
การละเมดเงอนไข (ตอ)Operation ทมการละเมดดงน
INSERT
UPDATE
DELETE
39
การละเมดเงอนไข (ตอ)
• INSERT มการละเมดไดดงน• Key integrity constraint
• Entity integrity constraint
• Referential integrity constraint
• Domain integrity constraint
40
คลงคว
ามรดจ
ทล มหาวท
ยาลยเก
ษตรศาสต
ร
Page 75
4-21
การละเมดเงอนไข (ตอ)• INSERT มการละเมดไดดงน
• Key constraint เมอทาการ insert คา key ไปซากบคา key ทมอยแลว
• Entity integrity เมอทาการ insert ไปแลว คา key มคาเปน null
• Referential constraint เมอทาการ insert ไปแลว คาทเพมเขาไปไมมคาอยจรง เชน เพม Employee คนใหมแตเพม Dnumber เบอร 2 เขาไปทาใหเกดการละเมด เพราะ Dnumber มแค 1,3,4,5 เทานน
• Domain constraint เปนการละเมดคาทเปนไปไดของ attribute เชน Sex ม F,M แตถาทาการเพม A หรอ blank ทาให domain ไมถกตอง
41
• ตวอยางการละเมด constraint เมอทาการ INSERT ขอมล
42
การละเมดเงอนไข (ตอ)การละเมดเงอนไข (ตอ)
EMPLOYEE Fname Minit Lname Ssn Address Sex Salary Super_ssn Dnumber
John B Smith 123456789 Houston, TX M 50000 1
Frankin T Smith 333445555 Houston, TX M 25000 123456789 5
Alicia J Smith 999887777 Spring, TX F 28500 333445555 4
Jennifer S Smith 987654321 Bellaire, TX F 32000 333445555 4
Remesh K Smith 666884444 Humtle, TX M 33500 123456789 5
Joyce A Smith 453453453 Houston, TX F 25500 123456789 5
Ahmad V Smith 987987987 Houston, TX M 31050 333445555 4
James E Smith 888665555 Houston, TX M 27500 1
DEPARTMENT Dname Dnumber Mgr_ssn Mgr_start_date
Research 5 333445555 2010-04-01
Administration 4 987654321 2010-03-01
Headquarters 1 888665555 2010-06-01
Human Resource 3 666884444
ทมา : Fundamental of Database Systems , Elmasri & Navathe
คลงคว
ามรดจ
ทล มหาวท
ยาลยเก
ษตรศาสต
ร
Page 76
4-22
การละเมดเงอนไข (ตอ)• DELETE มการละเมดอยางเดยวคอ
• Referential integrity constraint
นอกจากนน เงอนไขเหลาน ไมมการละเมด
• Key integrity constraint
• Entity integrity constraint
• Domain integrity constraint
43
การละเมดเงอนไข (ตอ)• DELETE มการละเมดไดดงน
• Referential constraint จะละเมดกตอเมอ ไปลบขอมลในตารางทอางอง เชน ลบตาราง DEPARTMENT ในแถว Research จะเกดการละเมดไดในตาราง EMPLOYEE ทมการใช Dnumber = 5
• ดงนน เมอทาการสรางตาราง ตอนทาการกาหนดการลบแถวขอมลสามารถระบได 3 อยางดงน
• RESTRICT ไมใหลบตองม FK อางถง tuple นนอย
• CASCADE ลบทกๆ tuple ทอางถง นนคอ ลบทก tuple ในตาราง EMPLOYEE ทม Dnumber = 5
• SET NULL ทาการ set คา NULL ให เชน ในตาราง EMPLOYEE ทกแถวทม Dnumber = 5 ใหมทาใหคา Dnumber = NULL และ FK ตองไมใชสวนหนงของ PK ดวย
44
คลงคว
ามรดจ
ทล มหาวท
ยาลยเก
ษตรศาสต
ร
Page 77
4-23
• ตวอยางการละเมด constraint เมอทาการ DELETE ขอมล
45
การละเมดเงอนไข (ตอ)การละเมดเงอนไข (ตอ)
EMPLOYEE Fname Minit Lname Ssn Address Sex Salary Super_ssn Dnumber
John B Smith 123456789 Houston, TX M 50000 1
Frankin T Smith 333445555 Houston, TX M 25000 123456789 5
Alicia J Smith 999887777 Spring, TX F 28500 333445555 4
Jennifer S Smith 987654321 Bellaire, TX F 32000 333445555 4
Remesh K Smith 666884444 Humtle, TX M 33500 123456789 5
Joyce A Smith 453453453 Houston, TX F 25500 123456789 5
Ahmad V Smith 987987987 Houston, TX M 31050 333445555 4
James E Smith 888665555 Houston, TX M 27500 1
DEPARTMENT Dname Dnumber Mgr_ssn Mgr_start_date
Research 5 333445555 2010-04-01
Administration 4 987654321 2010-03-01
Headquarters 1 888665555 2010-06-01
Human Resource 3 666884444
ทมา : Fundamental of Database Systems , Elmasri & Navathe
การละเมดเงอนไข (ตอ)
• UPDATE มการละเมดคอ
• Key integrity constraint
• Entity integrity constraint
• Referential integrity constraint
• Domain integrity constraint
46
คลงคว
ามรดจ
ทล มหาวท
ยาลยเก
ษตรศาสต
ร
Page 78
4-24
การละเมดเงอนไข (ตอ)UPDATE
• Key constraint เกดได ถา update คาซาทมอยแลว
• Entity integrity เกดได ถา update คา null
• Referential constraint เกดได ถา update คาทไมมอยในตารางทอางอง สามารถระบไดเชนเดยวกนกบ DELETE คอ
• RESTRICT หาม update
• CASCADE เปลยนไปทกๆ คาทเกยวของ
• SET NULL ให set คา null
• Domain constraint สามารถละเมดได ถา update คาทไมมใน domain
47
48
การละเมดเงอนไข (ตอ)การละเมดเงอนไข (ตอ)• ตวอยางการละเมด constraint เมอทาการ UPDATE ขอมล
EMPLOYEE Fname Minit Lname Ssn Address Sex Salary Super_ssn Dnumber
John B Smith 123456789 Houston, TX M 50000 1
Frankin T Smith 333445555 Houston, TX M 25000 123456789 5
Alicia J Smith 999887777 Spring, TX F 28500 333445555 4
Jennifer S Smith 987654321 Bellaire, TX F 32000 333445555 4
Remesh K Smith 666884444 Humtle, TX M 33500 123456789 5
Joyce A Smith 453453453 Houston, TX F 25500 123456789 5
Ahmad V Smith 987987987 Houston, TX M 31050 333445555 4
James E Smith 888665555 Houston, TX M 27500 1
DEPARTMENT Dname Dnumber Mgr_ssn Mgr_start_date
Research 5 333445555 2010-04-01
Administration 4 987654321 2010-03-01
Headquarters 1 888665555 2010-06-01
Human Resource 3 666884444
ทมา : Fundamental of Database Systems , Elmasri & Navathe
คลงคว
ามรดจ
ทล มหาวท
ยาลยเก
ษตรศาสต
ร
Page 79
5-1
บทท 5 บรรทดฐานขอมลและภาษานยามขอมลพจนานกรมขอมล
บทท 5 บรรทดฐานขอมลและภาษานยามขอมลพจนานกรมขอมล
อ.ศรพร แสนศรภาควชาวทยาการคอมพวเตอรและสารสนเทศ
คณะวทยาศาสตรและวศวกรรมศาสตร
1
เนอหาบทเรยน
•การแปลงตวแบบ EER เปนตวแบบขอมลเชงสมพนธ
•ฟงกชนนอลดเพนเดนท (Functional Dependence)
•การทาบรรทดฐาน (Normalization)
2
คลงคว
ามรดจ
ทล มหาวท
ยาลยเก
ษตรศาสต
ร
Page 80
5-2
การแปลงตวแบบ EER เปนตวแบบขอมลเชงสมพนธ
EER TO RELATIONAL MAPPING
การแปลงตวแบบ EER เปนตวแบบขอมลเชงสมพนธ
EER TO RELATIONAL MAPPING
3
Step1• สาหรบแตละ strong entity type E ใหทาการสราง relation R และใสเฉพาะ simple attribute ดวย
4
1.แผนก(รหสแผนก, ชอแผนก, จานวนของพนกงาน
ทมา : Fundamental of Database Systems , Elmasri & Navathe
คลงคว
ามรดจ
ทล มหาวท
ยาลยเก
ษตรศาสต
ร
Page 81
5-3
Step 25
1.พนกงาน(รหสพนกงาน, ชอตน, ชอกลาง, นามสกล, เพศ, วนเดอนปเกด, ทอย, เงนเดอน
2.ผเกยวของหรอญาต(ชอผเกยวของ, เพศ. วนเดอนปเกด, ความสมพนธ, รหสพนกงาน
• สาหรบแตละ weak entity type W ใหทาการสราง Relation R และใส simple attribute ของ weak entity type ดวย
สวน PK ของ weak entity เกดจาก การรวมกนของ PK ของ entity type ทเปน entity หลก ของ weak entity และ key ของ weak entity
ทมา : Fundamental of Database Systems , Elmasri & Navathe
Step 3สาหรบแตละ 1:1 relationship ถา
3.1 เปนเสนเดยวทงค (partial) หรอเสนคทงค (total)ใหเลอก PK ของ entity หนงไปเปน FK ของอก entity หนง และนา attribute ทอยตรง relationship ไปรวมดวย
3.2 เปนเสนเดยว และเสนค ใหเลอก PK ของ entity ทอยฝงเสนเดยว ไปเปน FK ของ entity ฝงเสนคและนา attribute ทอยตรง relationship ไปรวมดวย
6
คลงคว
ามรดจ
ทล มหาวท
ยาลยเก
ษตรศาสต
ร
Page 82
5-4
Step 3 – 3.17
1.พนกงาน(รหสพนกงาน, ชอตน, ชอกลาง, นามสกล, เพศ, วนเดอนปเกด, ทอย, เงนเดอน3.1 แผนก(รหสแผนก, ชอแผนก, จานวนของพนกงาน, รหสพนกงาน, วนเรมตาแหนงหรอ 1. แผนก(รหสแผนก, ชอแผนก, จานวนของพนกงาน3.1พนกงาน(รหสพนกงาน, ชอตน, ชอกลาง, นามสกล, เพศ, วนเดอนปเกด, ทอย, เงนเดอน, รหสแผนก, วนเรมตาแหนง
ทมา : Fundamental of Database Systems , Elmasri & Navathe
Step 3 – 3.2
8
1.พนกงาน(รหสพนกงาน, ชอตน, ชอกลาง, นามสกล, เพศ, วนเดอนปเกด, ทอย, เงนเดอน3.2 แผนก(รหสแผนก, ชอแผนก, จานวนของพนกงาน, รหสพนกงาน, วนเรมตาแหนง
ทมา : Fundamental of Database Systems , Elmasri & Navatheคลงคว
ามรดจ
ทล มหาวท
ยาลยเก
ษตรศาสต
ร
Page 83
5-5
Step 4• สาหรบแตละ 1:N relationship ทเปนของ strong entity ใหนา PK ฝง 1 relationship ไปเปน FK ฝง N relationship
9
1.แผนก(รหสแผนก, ชอแผนก, จานวนของพนกงาน4.โครงการ(รหสโครงการ, ชอโครงการ, ทตงโครงการ, รหสแผนก
ทมา : Fundamental of Database Systems , Elmasri & Navathe
Step 5สาหรบแตละ M:N relationship ใหสรางเปนอก 1 relation และใหรวม PK ของทงสอง entity มาเปน FK ดวย และนา attribute ทอยตรง relationship ไปรวมดวย สวน PK ของ relationship เกดจากการรวมกนของ PK ทงสอง entity type แตถายงไม unique ใหรวม attribute ทเกดท relationship เปน PK ดวย
10
5. ทางาน(จานวนชวโมงททางาน, รหสพนกงาน, รหสโครงการทมา : Fundamental of Database Systems , Elmasri & Navathe
คลงคว
ามรดจ
ทล มหาวท
ยาลยเก
ษตรศาสต
ร
Page 84
5-6
Step 6สาหรบ attribute ทเปนแบบ multivalued ใหทาการสรางเปนอก 1 relation โดยม คอ attribute ของ multivalued attribute และ PK ของ entity type ท attribute นอยมาเปน FK ดวย สวน PK ของรเลชนใหมคอ attribute ทงหมดในรเลชน
11
6.ทอยของแผนก(ทอยแผนก, รหสแผนกทมา : Fundamental of Database Systems , Elmasri & Navathe
Step 7สาหรบ n-ary relationship ใหทาการสรางเปนอก 1 relation และใหรวม attribute ทเปน PK จากทกๆ entity type มาเปน FK และ PK ดวย
12
7.สงซอ(รหสพนกงาน, รหสลกคา, รหสชนสวนสนคาทมา : Fundamental of Database Systems , Elmasri & Navathe
คลงคว
ามรดจ
ทล มหาวท
ยาลยเก
ษตรศาสต
ร
Page 85
5-7
Step 8สาหรบ superclass/subclass relationship ใหทาตาม 1 ใน 4 ขอดงน
8A ใชไดทกกรณ
ใหทาการสรางรเลชนจาก superclass และ subclass เปนอยางละ 1 รเลชน และนา attribute ของแตละ superclass/subclass ไปใสในแตละรเลชน สวนรเลชนทเกดจากแตละ subclass ใหนา PK ของ superclass มาเปน FK และ PK ดวย
13
14
Step 8 – 8AStep 8 – 8A
พนกงาน(รหสพนกงาน, ชอ, นามสกล, วนเดอนปเกด, ทอย, ประเภทพนกงาน)เลขานการ(รหสพนกงาน, ความเรวในการพมพดด)ชางเทคนค(รหสพนกงาน, ระดบความเชยวชาญ)วศวกร (รหสพนกงาน, ประเภทวศวกร)
ทมา : Fundamental of Database Systems , Elmasri & Navathe
คลงคว
ามรดจ
ทล มหาวท
ยาลยเก
ษตรศาสต
ร
Page 86
5-8
15
รหสพนกงาน ชอ นามสกล วนเดอนปเกด ทอย ประเภทพนกงาน
E001 เอ เอ เอ 23071973 สกลนคร เลขานการ
E002 บ บบ 01011977 สกลนคร วศวกร
E003 ซ ซซ 02021976 อดรธาน เสมยน
E004 ด ดด 03031970 ขอนแกน อนๆ
E005 อ ออ 01011970 ขอนแกน อนๆ
E006 เอฟ เอฟเอฟ 05051981 กรงเทพ วศวกร
Step 8 – 8A - ตวอยางขอมลStep 8 – 8A - ตวอยางขอมลพนกงาน
รหสพนกงาน ประเภทวศวกร
E002 วศวกร
E006 วศวกร
วศวกรรหสพนกงาน ความเรวในการ
พมพดด
E001 100
เลขานการ
รหสพนกงาน ระดบความเชยวชาญ
E003 5
เสมยน
Step 8 – 8B8B ใชไดเฉพาะกรณท superclass เปน total (ไดทง overlap และ disjoint) เทานน เพราะ superclass แบงไดตาม subclass เทานน
ทาการสรางรเลชนจากแตละ subclass แตไมตองสรางรเลชนทมาจาก superclass สวน attribute ทมใน superclass ใหนาไปรวมกบ attribute ของแตละรเลชนทไดมาจาก subclass ดวย สวน PK ของแตละรเลชนคอ PK ทมาจาก superclass
16
คลงคว
ามรดจ
ทล มหาวท
ยาลยเก
ษตรศาสต
ร
Page 87
5-9
17
Step 8 – 8B – disjoint-totalStep 8 – 8B – disjoint-total
รถยนต(รหสยานพาหนะ, หมายเลขตวถง, ราคา, ความเรวสงสด, จานวนทนง)รถบรรทก(รหสยานพาหนะ, หมายเลขตวถง, ราคา, จานวนเพลา, นาหนกรถ)
ทมา : Fundamental of Database Systems , Elmasri & Navathe
18
Step 8 – 8B – ตวอยางขอมล disjoint-total
รหสยานพาหนะ หมายเลขตวถง ราคา ความเรวสงสด จานวนทนง
C001 1111111111 1200000 140 7
C002 2222222222 870000 140 5
รถยนต
รหสยานพาหนะ หมายเลขตวถง ราคา จานวนเพลา นาหนกรถ
C003 3333333333 2500000 10 3000
C004 4444444444 3500000 15 4000
รถบรรทกคลงคว
ามรดจ
ทล มหาวท
ยาลยเก
ษตรศาสต
ร
Page 88
5-10
19
Step 8 – 8B – disjoint-partialStep 8 – 8B – disjoint-partial
รถยนต(รหสยานพาหนะ, หมายเลขตวถง, ราคา, ความเรวสงสด, จานวนทนง)รถบรรทก(รหสยานพาหนะ, หมายเลขตวถง, ราคา, จานวนเพลา, นาหนกรถ)
ทมา : Fundamental of Database Systems , Elmasri & Navathe
20
Step 8 – 8B – ตวอยางขอมล disjoint-partial
รหสยานพาหนะ หมายเลขตวถง ราคา ความเรวสงสด จานวนทนง
C001 1111111111 1200000 140 7
C002 2222222222 870000 140 5
C003 3333333333 2500000 100 3
รถยนต
รหสยานพาหนะ หมายเลขตวถง ราคา จานวนเพลา นาหนกรถ
C003 3333333333 2500000 10 3000
C004 4444444444 3500000 15 4000
รถบรรทกคลงคว
ามรดจ
ทล มหาวท
ยาลยเก
ษตรศาสต
ร
Page 89
5-11
Step 8 (Con.t)21
8C เฉพาะ subclass ทเปน disjoint เทานน (ทงทเปน partial และ total) ใชไดในกรณทการแบง subclass เปนดงน
• เฉพาะทใชคา attribute เปนตวแบง subclass เชน ประเภทพนกงาน เปนตน เพราะถาไมม attribute ทเปนตวแบง subclass จะไมทราบวาขอมลควรอยใน subclass ใด• ตองเปน disjoint เทานน เพราะคาของ attribute ทเปนตวแบง subclass ตองเปนคาเดยว (atomic value) เทานน
โดยทาการสราง 1 relation โดยม attribute ทงหมดจาก superclassและ subclass รวมอยใน relation ดวยและม attribute ทบงบอกวา tuple นเปนของ subclass ใด
22
Step 8 – 8C – disjoint-partialStep 8 – 8C – disjoint-partial
พนกงาน(รหสพนกงาน, ชอ, นามสกล, วนเดอนปเกด, ทอย, ประเภทพนกงาน, ความเรวในการพมพดด, ระดบความเชยวชาญ, ประเภทวศวกร)
ทมา : Fundamental of Database Systems , Elmasri & Navathe
คลงคว
ามรดจ
ทล มหาวท
ยาลยเก
ษตรศาสต
ร
Page 90
5-12
รหสพนกงาน
ชอ นามสกล วนเดอนปเกด
ทอย ประเภทพนกงาน
ความเรวในการพมพดด
ระดบความเชยวชาญ
ประเภทวศวกร
Tupleถกตองหรอไม
E001 เอ เอ เอ 23071973 สกลนคร เลขานการ 100 OK
E002 บ บบ 01011977 สกลนคร วศวกร ไฟฟา OK
E003 ซ ซซ 02021976 อดรธาน เสมยน 5 OK
E004 ด ดด 03031970 ขอนแกน อนๆ
E005 อ ออ 01011970 ขอนแกน อนๆ 100
E006 เอฟ เอฟเอฟ 05051981 กรงเทพ วศวกร 50 โยธา
23
Step 8 – 8C – ตวอยางขอมล disjoint-partialStep 8 – 8C – ตวอยางขอมล disjoint-partial
พนกงาน
24
Step 8 – 8C – disjoint-totalStep 8 – 8C – disjoint-total
พนกงาน(รหสพนกงาน, ชอ, นามสกล, วนเดอนปเกด, ทอย, ประเภทพนกงาน, ความเรวในการพมพดด, ระดบความเชยวชาญ, ประเภทวศวกร)
ทมา : Fundamental of Database Systems , Elmasri & Navathe
คลงคว
ามรดจ
ทล มหาวท
ยาลยเก
ษตรศาสต
ร
Page 91
5-13
รหสพนกงาน
ชอ นามสกล วนเดอนปเกด
ทอย ประเภทพนกงาน
ความเรวในการพมพดด
ระดบความเชยวชาญ
ประเภทวศวกร
Tupleถกตองหรอไม
E001 เอ เอ เอ 23071973 สกลนคร เลขานการ 100 OK
E002 บ บบ 01011977 สกลนคร วศวกร ไฟฟา OK
E003 ซ ซซ 02021976 อดรธาน เสมยน 5 OK
E004 ด ดด 03031970 ขอนแกน อนๆ
E005 อ ออ 01011970 ขอนแกน อนๆ 100
E006 เอฟ เอฟเอฟ 05051981 กรงเทพ วศวกร 50 โยธา
25
Step 8 – 8C – ตวอยางขอมล disjoint-totalStep 8 – 8C – ตวอยางขอมล disjoint-total
พนกงาน
26
Step 8 – 8CStep 8 – 8C
ไมสามารถทาการ map ตารางแบบ 8C ไดเพราะ ?????
ทมา : Fundamental of Database Systems , Elmasri & Navathe
คลงคว
ามรดจ
ทล มหาวท
ยาลยเก
ษตรศาสต
ร
Page 92
5-14
Step 8 (Cont.)27
8D ใชไดทง disjoint และ overlap ใหทาการสราง 1 relation โดยม attribute ทงหมด superclass และ subclass รวมอยใน relation นดวยและทาการเพม attribute ทเปน boolean เทากบจานวนของ subclass ซงคาของ attribute เปนตวบงบอกวา tuple นเปนของ subclass ใด
28
Step 8 – 8D – disjoint-totalStep 8 – 8D – disjoint-total
ยานพาหนะ(รหสยานพาหนะ, หมายเลขตวถง, ราคา, ความเรวสงสด, จานวนทนง, จานวนเพลา, นาหนกรถ, สถานะรถยนต, สถานะรถบรรทก)
Boolean {T ,F}
ทมา : Fundamental of Database Systems , Elmasri & Navathe
คลงคว
ามรดจ
ทล มหาวท
ยาลยเก
ษตรศาสต
ร
Page 93
5-15
29
Step 8 – 8D – ตวอยางขอมล disjoint-total
รหสยานพาหนะ
หมายเลขตวถง
ราคา ความเรวสงสด
จานวนทนง
จานวนเพลา
นาหนกรถ
สถานะรถยนต
สถานะรถบรรทก
Tuple ถกตองหรอไม
C001 1111111111 1200000 140 7 Y OK
C002 2222222222 870000 140 5 Y OK
C003 3333333333 2500000 10 3000 Y OK
C004 4444444444 3500000 15 4000 Y OK
C005 5555555555 2500000
C006 6666666666 750000 180 5 8 2000 Y Y
รถยนต
30
Step 8 – 8D – disjoint-partialStep 8 – 8D – disjoint-partial
พนกงาน(รหสพนกงาน, ชอ, นามสกล, วนเดอนปเกด, ทอย, ประเภทพนกงาน, ความเรวในการพมพดด, ระดบความเชยวชาญ, ประเภทวศวกร, สถานะเลขานการ, สถานะชางเทคนค, สถานะวศวกร)
ทมา : Fundamental of Database Systems , Elmasri & Navathe
คลงคว
ามรดจ
ทล มหาวท
ยาลยเก
ษตรศาสต
ร
Page 94
5-16
รหสพนกงาน
ชอ นามสกล
วนเดอนปเกด
ทอย ประเภทพนกงาน
ความเรวในการพมพดด
ระดบความ
เชยวชาญ
ประเภทวศวกร
สถานะเลขาน การ
สถานะเสมยน
สถานะวศวกร
Tupleถกตองหรอไม
E001 เอ เอ เอ 23071973 สกลนคร เลขานการ 100 Y OK
E002 บ บบ 01011977 สกลนคร วศวกร ไฟฟา Y OK
E003 ซ ซซ 02021976 อดรธาน เสมยน 5 Y OK
E004 ด ดด 03031970 ขอนแกน อนๆ
E005 อ ออ 01011970 ขอนแกน อนๆ 100 Y
E006 เอฟ เอฟเอฟ 05051981 กรงเทพ วศวกร 50 โยธา Y Y
31
Step 8 – 8D – ตวอยางขอมล – disjoint-partialStep 8 – 8D – ตวอยางขอมล – disjoint-partial
พนกงาน
แบบฝกหดท 3การ map EER เปน relation
32
คลงคว
ามรดจ
ทล มหาวท
ยาลยเก
ษตรศาสต
ร
Page 95
5-17
Functional Dependencies - FDs
33
• FDs เปนเงอนไขความสมพนธระหวาง attribute• FDs และ Keys ถกใชเพอกาหนด normal form สาหรบ relation• FDs หาไดจาก requirement เพราะ requirement บอกวา attribute สมพนธกนอยางไร • X -> Y เปนความสมพนธระหวาง attribute X กบ Y ถาทราบคา X 1 คา ไดคา Y 1 คาเสมอ อานวา X determine Y หรอ X functionally Y
Functional Dependencies – FDs (Cont.)
34
• FDs สามารถทาการตรวจสอบระหวาง ER ไดวาถกหรอผด• FD constraint เชน
{Ssn} -> {Ename} {Pnumber} -> {PName,PLocation} {SSN,Pnumber} -> {Hours}
• FD จะตองเปนจรงตลอด ในทกๆ relation ใน database
คลงคว
ามรดจ
ทล มหาวท
ยาลยเก
ษตรศาสต
ร
Page 96
5-18
Functional Dependencies – FDs (Cont.)
35
• ถา K คอ key ของ R ดงนน K functionally determine attribute ทงหมดใน R• FD สามารถหา Key ของ Relation ได และจะทาใหไมเกดปญหา Update anomalies• บาง relation อาจจะมหรอไมม FD กได ถามอาจจะมแค 1 FD หรอมากกวา 1 FD กได
Functional Dependencies – FDs (Cont.)36
คลงคว
ามรดจ
ทล มหาวท
ยาลยเก
ษตรศาสต
ร
Page 97
5-19
Armstrong’s inference rules•กฎการแปลง FD ไปหา FD อน เรยกวา : • A1 (Reflexive) ถา Y subset-of X แลว X -> Y ได เชน
{A} {A,B} ดงนน {A,B} -> {A} และ {A,B} -> {B}• A2 (Augmentation) ถา X -> Y แลว XZ -> YZ (ทาการเตม attribute Z เขาไปทงสองขาง)• A3 (Transitive) ถา X -> Y และ Y -> Z แลว X -> Z• Decomposition ถา X -> YZ แลว X -> Y และ X -> Z• Union ถา X -> Y และ X -> Z แลว X -> YZ• Psuedotransitivity ถา X -> Y และ WY -> Z แลว WX -> Z
37
ตวอยางการหา FD กรณศกษาท 1ตวอยางการหา FD กรณศกษาท 1บรษท ABC จากด มพนกงานสงกดแผนกไดคนละ 1 แผนก โดยพนกงานจะเกบขอมล รหสประจาตว ชอ (ประกอบดวยชอตน ชอกลาง นามสกล) เงนเดอน พนกงานแตละคนจะมผเกบขอมลผรบผลประโยชน ซงจะเกบกตอเมอพนกงานคนนนทางานอยในบรษทเทานน ถาลาออกขอมลผรบผลประโยชนกจะไมเกบ
พนกงานคนหนงทางานไดหลายโครงการ แตละโครงการกมพนกงานสงกดไดมากกวา 1 คน
พนกงานคนหนงเปนผจดการโครงการไดหลายโครงการแตโครงการหนงมผจดการไดแคคนเดยว
38
คลงคว
ามรดจ
ทล มหาวท
ยาลยเก
ษตรศาสต
ร
Page 98
5-20
ตวอยางการหา FD กรณศกษาท 1รายชอแอททรบวต ประกอบดวย
{รหสประจาตวพนกงาน, ชอตนพนกงาน, ชอกลางพนกงาน, นามสกลพนกงาน, เงนเดอนพนกงาน, ชอผรบผลประโยชน, ความสมพนธ, รหสโครงการ, ชอโครงการ, รหสประจาตวผจดการ,
รหสแผนก, ชอแผนก, จานวนชวโมงททางานในโครงการ}
39
ตวอยางการหา FD กรณศกษาท 2ตวอยางการหา FD กรณศกษาท 2คณะหนงในวทยาลยหนง ตองการเกบขอมลการเรยนของนกศกษา ในคณะนเปดสอนเพยงหลกสตรเดยว ดงนนขอมลทตองจดเกบจะประกอบดวยขอมลของวชา ขอมลผสอน ขอมลนกศกษา ขอมลความสามารถในการสอนของผสอน และขอมลการเรยนของนกศกษา
ผสอนมคณสมบตคอ ความเชยวชาญในสาขาวชาใดวชาหนงเทานน ผสอนมสองประเภทคอ คนไทยและคนตางประเทศ ซงถาผสอนเปนคนไทยจะจดเกบเลขประจาตวประชาชน ชอ ทอย และ วนเกด แตถาผสอนเปนคนตางประเทศ จะจดเกบเลขทพาสปอรต ชอ ทอย สญชาต และ ภาษาทสามารถพดได
40
คลงคว
ามรดจ
ทล มหาวท
ยาลยเก
ษตรศาสต
ร
Page 99
5-21
ตวอยางการหา FD กรณศกษาท 2 (ตอ)ตวอยางการหา FD กรณศกษาท 2 (ตอ)ขอมลวชาทตองการจดเกบคอ รหสวชา ชอวชา จานวนหนวยกต และบพวชา วชาหนงวชามไดหลายบพวชา และวชาหนงสามารถเปนบพวชาของวชาอนหลายวชาดวย รหสวชาของแตละวชาจะไมมคาซากนเลย ในหนงวชาจะมชอวชาเพยงหนงชอวชา และหนงคาของจานวนหนวยกต วชาหนงวชาสามารถเปดสอนไดในหลายภาคการศกษา และในหนงภาคการศกษาจะเปดไดหลายกลม แตละกลมของวชาหนงในหนงภาคการศกษา สามารถมผสอนไดหลายคน และใชหนงสอหลกทในการเรยนหนงเลม แตไมจาเปนทผสอนหนงคนจะตองสอนทกกลมของวชานนและไมจาเปนททกกลมของวชาเดยวกนตองใชหนงสอเลมเดยวกน ขอมลหนงสอมเพยงชอหนงสอเทานนและชอหนงสอหนงชอสามารถใชในวชาหนงวชาเทานน
41
ตวอยางการหา FD กรณศกษาท 2 (ตอ)ตวอยางการหา FD กรณศกษาท 2 (ตอ)ขอมลนกศกษาทตองการจดเกบคอ เลขประจาตวประชาชน ชอนกศกษา วนเกด ทอย และเกรดเฉลย ในภาคการศกษาหนง นกศกษาสามารถลงทะเบยนไดอยางมากทสดหาวชา และในหนงวชาสามารถลงทะเบยนเรยนไดเพยงกลมเดยวในหนงภาคการศกษา และนกศกษาจะไดเพยงเกรดเดยวตอการลงทะเบยนของวชานนในหนงภาคการศกษา กลมหนงของวชาหนงอาจมนกศกษาลงทะเบยนเรยนไดหลายคน
42
คลงคว
ามรดจ
ทล มหาวท
ยาลยเก
ษตรศาสต
ร
Page 100
5-22
ตวอยางการหา FD กรณศกษาท 2
รายชอแอททรบวต ประกอบดวย
{รหสผสอน, ความเชยวชาญของผสอน, เลขประจาตวประชาชน, เลขทพาสปอรต, ชอ, ทอย, วนเกด, สญชาต, ภาษา, ชอนกศกษา, ทอย, วนเกด, เกรดเฉลย, ความเชยวชาญ, เลขทพาสปอรต, รหสวชา, ชอวชา, จานวนหนวยกต, รหสบพวชา, ปการศกษา, ภาคการศกษา, กลม, ชอหนงสอ, เกรดวชา}
43
แนวทางการออกแบบสารสนเทศของฐานขอมลเชงสมพนธ
• การออกแบบ relational database คอการจด attribute ใหอยในรปแบบทด (good) คอ อยใน good relation
• relation schema ทจะทาการ design ม 2 level คอ
• user view level
• base relation level (conceptual relation)
44
คลงคว
ามรดจ
ทล มหาวท
ยาลยเก
ษตรศาสต
ร
Page 101
5-23
แนวทางท 1• แตละ tuple ใน relation ควรจะตองแทนขอมลเพยง 1 อยาง คอ แทน entity หรอ relationship เชน ตาราง EMPLOYEE มขอมล 2 อยางคอ employee และ department ซงไมควรทา ดงนน ควรออกแบบใหสามารถอธบายไดงายๆ
45
แนวทางท 1 (ตอ)ถาม tuple ทมขอมลหลายๆ อยางซากน จะเกดปญหาตามมาคอ
• เปลองเนอทในการจดเกบ
• ขอมลซาซอน
• เกดปญหา update anomalies คอ
• Insertion anomalies ไมสามารถเพมขอมลได
• Deletion anomalies ทาการลบขอมลแลวไปลบขอมลอนดวย
•Modification anomalies การ update คาของ attribute จะตอง update หลายๆ tuple เพราะขอมลกระจายหลายๆ ท
46
คลงคว
ามรดจ
ทล มหาวท
ยาลยเก
ษตรศาสต
ร
Page 102
5-24
ขอมลซาซอน (Redundant Information) ทาใหเกดปญหา Update Anomalies
47
Redundancy
พนกงาน ชอ ชอกลาง นามสกล รหสพนกงาน วนเกด ทอย ชอแผนก รหสผจดการแผนก
John B Smith 123456789 1965-01-09 Houston, TX Headquarters 888665555
John T Smith 333445555 1955-12-08 Houston, TX Research 333445555
Alicia J Smith 999887777 1966-07-19 Spring, TX Administration 987654321
Jennifer S Smith 987654321 1941-06-20 Bellaire, TX Administration 987654321
Remesh K Smith 666884444 1962-09-15 Humtle, TX Research 333445555
Joyce A Smith 453453453 1972-07-31 Houston, TX Research 333445555
Ahmad V Smith 987987987 1969-03-29 Houston, TX Administration 987654321
James E Smith 888665555 1937-11-10 Houston, TX Research 333445555
ทมา : Fundamental of Database Systems , Elmasri & Navathe
แนวทางท 1 (ตอ)เชน ถาตองการเพมแผนกใหมแตยงไมมพนกงาน ทาใหไมสามารถเพมในตาราง พนกงาน ได เพราะ รหสพนกงาน เปนคา NULL ทาใหไปละเมดกฎ Entity Integrity เพราะ PK หามเปน NULL เรยกวา Insertion Anomalies
48
Redundancy
พนกงาน ชอ ชอกลาง นามสกล รหสพนกงาน วนเกด ทอย ชอแผนก รหสผจดการแผนก
Finance 123456789
John B Smith 123456789 1965-01-09 Houston, TX Headquarters 888665555
John T Smith 333445555 1955-12-08 Houston, TX Research 333445555
Alicia J Smith 999887777 1966-07-19 Spring, TX Administration 987654321
Jennifer S Smith 987654321 1941-06-20 Bellaire, TX Administration 987654321
Remesh K Smith 666884444 1962-09-15 Humtle, TX Research 333445555
Joyce A Smith 453453453 1972-07-31 Houston, TX Research 333445555
Ahmad V Smith 987987987 1969-03-29 Houston, TX Administration 987654321
James E Smith 888665555 1937-11-10 Houston, TX Research 333445555
ทมา : Fundamental of Database Systems , Elmasri & Navathe
คลงคว
ามรดจ
ทล มหาวท
ยาลยเก
ษตรศาสต
ร
Page 103
5-25
แนวทางท 1 (ตอ)เชน ถาตองการลบขอมลนาย John ในตาราง พนกงาน ทาใหขอมล ชอแผนก = Headquaters หายไปดวย เรยกวา Deletion Anomalies เพราะ Headquaters มขอมลแค tuple เดยวเทานน
49
Redundancy
พนกงาน ชอ ชอกลาง นามสกล รหสพนกงาน วนเกด ทอย ชอแผนก รหสผจดการแผนก
John B Smith 123456789 1965-01-09 Houston, TX Headquarters 888665555
John T Smith 333445555 1955-12-08 Houston, TX Research 333445555
Alicia J Smith 999887777 1966-07-19 Spring, TX Administration 987654321
Jennifer S Smith 987654321 1941-06-20 Bellaire, TX Administration 987654321
Remesh K Smith 666884444 1962-09-15 Humtle, TX Research 333445555
Joyce A Smith 453453453 1972-07-31 Houston, TX Research 333445555
Ahmad V Smith 987987987 1969-03-29 Houston, TX Administration 987654321
James E Smith 888665555 1937-11-10 Houston, TX Research 333445555
ทมา : Fundamental of Database Systems , Elmasri & Navathe
แนวทางท 1 (ตอ)• เชน ตองทาการเปลยนชอของ ชอแผนก = Research ใหเปน Researching จะตองเปลยนทงหมด 4 tuple เรยกวา Modification Anomalies
50
Redundancy
พนกงาน ชอ ชอกลาง นามสกล รหสพนกงาน วนเกด ทอย ชอแผนก รหสผจดการแผนก
John B Smith 123456789 1965-01-09 Houston, TX Headquarters 888665555
Frankin T Smith 333445555 1955-12-08 Houston, TX Research 333445555
Alicia J Smith 999887777 1966-07-19 Spring, TX Administration 987654321
Jennifer S Smith 987654321 1941-06-20 Bellaire, TX Administration 987654321
Remesh K Smith 666884444 1962-09-15 Humtle, TX Research 333445555
Joyce A Smith 453453453 1972-07-31 Houston, TX Research 333445555
Ahmad V Smith 987987987 1969-03-29 Houston, TX Administration 987654321
James E Smith 888665555 1937-11-10 Houston, TX Research 333445555
ทมา : Fundamental of Database Systems , Elmasri & Navathe
คลงคว
ามรดจ
ทล มหาวท
ยาลยเก
ษตรศาสต
ร
Page 104
5-26
แนวทางท 2• ออกแบบ schema จะตองไมทาใหเกดปญหา Update anomalies
51
แนวทางท 3
ควรจะออกแบบให relation ใหมคา NULL นอยทสดเทาทจะเปนไปได ดงนน 8C และ 8D ไมควรทา
52
คลงคว
ามรดจ
ทล มหาวท
ยาลยเก
ษตรศาสต
ร
Page 105
5-27
แนวทางท 3 (ตอ)
เหตผลทตองมคา NULL นอยทสดเทาทจะเปนไปได เพราะ
• คา NULL มความหมาย 3 อยางคอ
• attribute ไม valid เลยสาหรบ tuple น คอ attribute นไมควรอยใน relation น เพราะไมเหมาะสม คอ ไมมคานเลย
• คา attribute นม แตตอนนยงหาคามาใสไมได
• คา attribute ไมร แตคดวานาจะม
• ถา attribute ทมคา NULL เปน FK เมอทาการ join แลวจะไมไดผลลพธ แตถาใช outer join ถงจะแสดงผลลพธนออกมา
53
แนวทางท 4
54
เมอแตกเปน relation ยอยแลว เมอนามา natural join กนจะตองมคณสมบต lossless join condition คอ จะตองไมม spurious tuple เกดขน คอ ไมม tuple ทไมมอยเกดขน
คลงคว
ามรดจ
ทล มหาวท
ยาลยเก
ษตรศาสต
ร
Page 106
5-28
แนวทางท 4 Spurious Tuples55
Redundancy
พนกงาน ชอ ชอกลาง นามสกล รหสพนกงาน วนเกด ทอย ชอแผนก รหสผจดการแผนก
John B Smith 123456789 1965-01-09 Houston, TX Headquarters 888665555
John T Smith 333445555 1955-12-08 Houston, TX Research 333445555
Alicia J Smith 999887777 1966-07-19 Spring, TX Administration 987654321
Jennifer S Smith 987654321 1941-06-20 Bellaire, TX Administration 987654321
Remesh K Smith 666884444 1962-09-15 Humtle, TX Research 333445555
Joyce A Smith 453453453 1972-07-31 Houston, TX Research 333445555
Ahmad V Smith 987987987 1969-03-29 Houston, TX Administration 987654321
James E Smith 888665555 1937-11-10 Houston, TX Research 333445555
ทมา : Fundamental of Database Systems , Elmasri & Navathe
แนวทางท 4 Spurious Tuples56
พนกงาน ชอ ชอกลาง นามสกล รหสพนกงาน วนเกด ทอย
John B Smith 123456789 1965-01-09 Houston, TX
John T Smith 333445555 1955-12-08 Houston, TX
Alicia J Smith 999887777 1966-07-19 Spring, TX
Jennifer S Smith 987654321 1941-06-20 Bellaire, TX
Remesh K Smith 666884444 1962-09-15 Humtle, TX
Joyce A Smith 453453453 1972-07-31 Houston, TX
Ahmad V Smith 987987987 1969-03-29 Houston, TX
James E Smith 888665555 1937-11-10 Houston, TX
แผนก ชอ ชอแผนก รหสผจดการแผนก
John Headquarters 888665555
John Research 333445555
Alicia Administration 987654321
Jennifer Administration 987654321
Remesh Research 333445555
Joyce Research 333445555
Ahmad Administration 987654321
888665555 Research 333445555ทมา : Fundamental of Database Systems , Elmasri & Navathe
คลงคว
ามรดจ
ทล มหาวท
ยาลยเก
ษตรศาสต
ร
Page 107
5-29
แนวทางท 4 Spurious Tuples
57
พนกงาน ชอ ชอกลาง นามสกล รหสพนกงาน วนเกด ทอย ชอแผนก รหสผจดการแผนก
John B Smith 123456789 1965-01-09 Houston, TX Headquarters 888665555
John T Smith 333445555 1955-12-08 Houston, TX Research 333445555
Alicia J Smith 999887777 1966-07-19 Spring, TX Administration 987654321
Jennifer S Smith 987654321 1941-06-20 Bellaire, TX Administration 987654321
Remesh K Smith 666884444 1962-09-15 Humtle, TX Research 333445555
Joyce A Smith 453453453 1972-07-31 Houston, TX Research 333445555
Ahmad V Smith 987987987 1969-03-29 Houston, TX Administration 987654321
James E Smith 888665555 1937-11-10 Houston, TX Dname Dmgr_ssn
John B Smith 123456789 1965-01-09 Houston, TX Research 888665555
John T Smith 333445555 1955-12-08 Houston, TX Headquarters 333445555
ทมา : Fundamental of Database Systems , Elmasri & Navathe
คณสมบตปดของ FD (Closure of FDs)• Closure ของ set F ของ FDs เขยนโดย F+ member Closure คอ FD ทงหมดทหาไดจาก F (ไมไดใชในการทา normalization)
• Closure ของ set ของ attribute X เขยนโดย X+ คอ attribute ทงหมดท X สามารถ determine ได นากฎของ Armstrong มาใชดวยโดยเฉพาะ A3 หา closure เพอหา key ของ relation
58
คลงคว
ามรดจ
ทล มหาวท
ยาลยเก
ษตรศาสต
ร
Page 108
5-30
Closure of set of Attributeถาม FDs ดงน
FD1: {SSN} -> {EName}
FD2: {PNumber} -> {PName,PLocation}
FD3: {SSN,PNumber} -> {Hours}
ทาการหา Closure ไดดงน
{SSN}+ = {SSN,EName}
{PNumber}+= {PNumber,PName,PLocation}
{SSN,PNumber}+={SSN,PNumber,Hours,EName,PName,PLocation}
59
Minimal Sets of FDsทกๆ set ของ FD ม minimal set ถาเปนไปตามเงอนไขดงน
• ทกๆ FD ใน F ดานขวามอของลกศรจะตองมแค attribute ตวเดยว
เชน {PNumber} -> {PName, PLocation} ไมใช minimal set ตองแยกออกมาเพราะ ดานขวาของ FD ม attribute 2 ตว
จะได {PNumber} -> {PName } และ
{PNumber} -> {PLocation}
เรยกวา minimal set ตามกฎการทา decomposition
60
คลงคว
ามรดจ
ทล มหาวท
ยาลยเก
ษตรศาสต
ร
Page 109
5-31
Minimal Sets of FDs (Cont.)
• ไมสามารถลบ FD ใดๆ จาก F ออกไปแลวยง equivalence กบของเดมได
• ไมสามารถแทนท FD X->A ดวย Y->A ถา Y X (Y เปน proper-subset-of X กคอสมาชกของ Y ไมมทางเทากบ X)
• ทกๆ FD ม set ของ equivalent minimal set อย อาจจะม 1 หรอ มากกวา 1 กได
• ไมม algorithm ในการหา minimal set ของ FD
61
การทาบรรทดฐาน (Normalization)
• Normalization คอ กระบวนการแตก relation ใหอยใน
good relation โดยวดจาก normal form
• Normal Form คอเงอนไขวา relation จะอยใน Normal
Form ใดได กตองเปนไปตามเงอนไขทกาหนดไวใน Normal
Form นนๆ ถาไมเปนไปตามเงอนไขกใหทา normalization
62
คลงคว
ามรดจ
ทล มหาวท
ยาลยเก
ษตรศาสต
ร
Page 110
5-32
Normalization (Cont.)
• Normal Form ม 1NF, 2NF, 3NF, BCNF, 4NF, 5NF
• 2NF, 3NF, BCNF เงอนไขของทงสามใช key และ FD ในการกาหนด
เงอนไข
• 4NF เงอนไขใช key และ multi-value dependencies MVDs
• 5NF เงอนไขใช key และ join dependencies JDs
63
แนวปฏบตการทาใหอยในรป Normal Forms• ไมจาเปนตองทาใหอยในขนสงสด เพราะ relation ยงเลกลงๆ จะมผลตอนดงขอมลออกมาแสดงผลตองทาการ join หลาย relation ดงนนถง 3NF หรอ BCNF กได
• Denormalization เปนการทา tuning กคอการยบ table ลง ใหอยใน normal form ทตาลงมา เพอปรบปรง performance ของการออกรายงานใหดขน
64
คลงคว
ามรดจ
ทล มหาวท
ยาลยเก
ษตรศาสต
ร
Page 111
5-33
KEYs• Super key คอ set ของ attribute ท unique
• Key คอ minimum ของ Super key คอ จานวน attribute ทนอยทสดทยง unique อย
• ใน 1 relation อาจจะม key มากกวา 1 ชด เรยกวา Candidate key (CK) ดงนนตองเลอกขนมา 1 ชดเปน Primary key (PK) สวนทเหลอเรยกวา Secondary key หรอ Alternate key
65
KEYs (Cont.)• Prime attribute คอ attribute ทเปนสมาชกของ Candidate key
• Nonprime attribute คอ attribute ทเหลอของรเลชนทไมใช Prime attribute
• CK คอ attribute ทม closure คอ attribute ทงหมดของ relation
• หา closure กอนเพอดวา attribute ตวใดจะเปน CK ของ relation
66
คลงคว
ามรดจ
ทล มหาวท
ยาลยเก
ษตรศาสต
ร
Page 112
5-34
KEYs (Cont.)เชน R(A,B,C,D) ม FD คอ
FD1 : {A} -> {B,C}
FD2 : {C} -> {A,D}
ดงนน {A}+ = {A,B,C,D} , {C}+ = {C,A,D,B}
ดงนน candidate key คอ {A},{C}
เลอก PK คอ {A} ดงนน {C} เปน secondary key
ดงนน prime attribute คอ {A,C}
สวน nonprime attribute คอ {B,D}
67
Normal Forms• First Normal Form : 1NF
• Second Normal Form : 2NF
• Third Normal Form : 3NF
• Boyce-Codd Normal Form : BCNF
• Fourth Normal Form : 4NF
• Fifth Normal Form : 5NF
68
คลงคว
ามรดจ
ทล มหาวท
ยาลยเก
ษตรศาสต
ร
Page 113
5-35
First Normal Form : 1NFเงอนไขคอ Relation จะตองไมม composite attribute, multivalued attribute และ nested relation
69
แผนก ชอแผนก รหสแผนก ทตงแผนกวจย 5 {กรงเทพ, สระบร, ลพบร}
บรหาร 4 {กรงเทพ, ราชบร}สานกงาน 1 {กรงเทพ}บคคล 3 {สกลนคร}
แผนก ชอแผนก รหสแผนก ทตงแผนกวจย 5 กรงเทพวจย 5 สระบรวจย 5 ลพบร
บรหาร 4 กรงเทพบรหาร 4 ราชบร
สานกงาน 1 กรงเทพบคคล 3 สกลนคร
รเลชน แผนก มขอมลซาซอน (Redundancy)
1NF
First Normal Form : 1NF (Cont.)70
พนกงานแผนก ชอแผนก รหสแผนก รหสผจดการ วนเรมตาแหนง ชอพนกงาน ชอกลาง นามสกล รหสพนกงาน
วจย 5 333445555 2010-04-01 สมชาย ท สมธ 333445555 สดใส เค สมธ 666884444 จาร เอ สมท 453453453
บรหาร 4 987654321 2010-03-01 อาร เจ สมท 999887777 เจนน เอส สมท 987654321 อามาตย ว สมท 987987987
สานกงาน 1 888665555 2010-06-01 จอน บ สมท 123456789
เจม อ สมท 888665555
1NF
Not
1NF
“Nested Relation”
คลงคว
ามรดจ
ทล มหาวท
ยาลยเก
ษตรศาสต
ร
Page 114
5-36
First Normal Form : 1NF (Cont.)71
เมอ map table จะได EMP_PROJ(Ssn,Ename) และ EMP_PROJ2(Ssn,Pnumber,Hours)
ดงนนถาทาการ map table จาก ER ทกๆ relation ทไดจะอยใน 1NF แลวแนนอน
Second Normal Form : 2NF
relation R(A1,A2,…,An) อยใน 2NF ถา
1.relation อยใน 1NF
และ
2.ทกๆ non-prime attribute A ใน R ขนกบ CK/PK แบบ Full FD
ถาไมเปนตามเงอนไขกใหแตกเปน relation ใหม ตาม FD ทมปญหา
72
คลงคว
ามรดจ
ทล มหาวท
ยาลยเก
ษตรศาสต
ร
Page 115
5-37
Second Normal Form : 2NF (Cont.)ตวอยาง FULL Functional dependency (Full FD)เชน กาหนดให รหสพนกงาน เปนคาทไมซา ดงนน {รหสพนกงาน,รหสโครงการ} -> {จานวนชวโมงททางาน}
เมอดงเอา รหสพนกงาน ออก แต {รหสโครงการ} -> {จานวนชวโมงททางาน} ไมได ดงนน จานวนชวโมงททางาน ถก determine โดย
{รหสพนกงาน,รหสโครงการ} แบบ Full FD ตวอยาง PARTIAL Functional dependency (Partial FD)เชน {รหสพนกงาน,รหสโครงการ} -> {ชอพนกงาน} เมอดงเอา รหสโครงการ ออก แลว {รหสพนกงาน} -> {ชอพนกงาน} ได ดงนน ชอพนกงาน ถก determine โดย
{รหสพนกงาน,รหสโครงการ} แบบ Partial FD
73
Second Normal Form : 2NF (Cont.)
1. หา FD2. หา Closure ของแตละ FD เพอหา CK, PK, Prime
Attribute และ Nonprime attribute3. วาด FD4. ตรวจสอบแตละ ตารางวาเปนไปตามนยาม 2NF โดยด
จากแตละ FD5. ถา FD ใด เกดปญหา แสดงวาตารางนไมอยใน 2NF
ใหทาการแตกเปนตารางยอย ตาม FD ททาใหเกดปญหา
74
คลงคว
ามรดจ
ทล มหาวท
ยาลยเก
ษตรศาสต
ร
Page 116
5-38
Second Normal Form : 2NF (Cont.)ตวอยาง พนกงาน_โครงการ (รหสพนกงาน,ชอพนกงาน,รหสโครงการ,ชอโครงการ,ทตงโครงการ,จานวนชวโมงททางาน) และม FDs ดงน
1. FD1: {รหสพนกงาน} -> {ชอพนกงาน}
FD2: {รหสโครงการ} -> {ชอโครงการ,ทตงโครงการ}
FD3: {รหสพนกงาน, รหสโครงการ} -> {จานวนชวโมงททางาน}
2. ทาการหา Closure แตละ FD ไดดงน
{รหสพนกงาน}+ = {รหสพนกงาน, ชอพนกงาน}
{รหสโครงการ}+= {รหสโครงการ, ชอโครงการ, ทตงโครงการ}
{รหสพนกงาน, รหสโครงการ}+= {รหสพนกงาน, รหสโครงการ, จานวนชวโมงททางาน, ชอพนกงาน, ชอโครงการ, ทตงโครงการ}
75
Second Normal Form : 2NF (Cont.)ดงนน CK/PK คอ {รหสพนกงาน, รหสโครงการ}
Prime attribute คอ {รหสพนกงาน, รหสโครงการ}
Nonprime attribute คอ {ชอพนกงาน,ชอโครงการ,ทตงโครงการ,จานวนชวโมงททางาน}
3. วาด FD เพอพจารณาวา พนกงาน_โครงการ เปน 2NF หรอไม ดงรปดานลาง
76
คลงคว
ามรดจ
ทล มหาวท
ยาลยเก
ษตรศาสต
ร
Page 117
5-39
Second Normal Form : 2NF (Cont.)
• พจารณา FD1 {ชอพนกงาน} เปน nonprime attribute ถก determine โดย {รหสพนกงาน} ซงเปน CK/PK แบบ Partial FD ดงนน FD1 มปญหา ไมเปนไปตาม 2NF จงตองแตก relation พนกงาน_โครงการ ตาม FD1 จะได รเลชนใหมชอ พนกงาน(รหสพนกงาน, ชอพนกงาน)
77
Second Normal Form : 2NF (Cont.)
• พจารณา FD2 {ชอโครงการ,ทตงโครงการ} เปน nonprime attribute ถก determine โดย {รหสโครงการ} ซงเปน CK/PK แบบ Partial FD ทาให FD2 มปญหา ไมเปนไปตาม 2NF จงตองแตก relation พนกงาน_โครงการตาม FD2 จะได จะได รเลชนใหมชอ โครงการ(รหสโครงการ, ชอโครงการ, ทตงโครงการ)
78
คลงคว
ามรดจ
ทล มหาวท
ยาลยเก
ษตรศาสต
ร
Page 118
5-40
Second Normal Form : 2NF (Cont.)
• พจารณา FD3 {จานวนชวโมงททางาน} เปน nonprime attribute ถก determine โดย {รหสพนกงาน, รหสโครงการ} ซงเปน CK/PK แบบ Full FD ทาให FD3 ไมเปนปญหา จงไมตองแตก relation ตาม FD3 • ดงนน รเลชน พนกงาน_โครงการ (รหสพนกงาน,รหสโครงการ,ชอโครงการ,ทตงโครงการ,จานวนชวโมงททางาน) จะตด attribute {ชอพนกงาน, ชอโครงการ,ทตงโครงการ} ออกไป ดงนนจะม attribute คอ พนกงาน_โครงการ(รหสพนกงาน, รหสโครงการ, จานวนชวโมงททางาน)
79
Second Normal Form : 2NF (Cont.)ดงนน relation ทอยใน 2NF คอ
80
คลงคว
ามรดจ
ทล มหาวท
ยาลยเก
ษตรศาสต
ร
Page 119
5-41
Third Normal Form : 3NF
relation R จะอยใน 3NF ถา
1. Relation อยใน 2NF และ
2. Non-prime attribute ทกตวขนกบ CK/PK
แบบ non-transitive
หรอ อกความหมายคอ attribute ดานซายของแตละ FD จะตอง
ไมใช nonprime attribute
81
Third Normal Form : 3NF (Cont.)• คานยาม
Transitive functional dependency :
X -> Z ไดมาจาก 2 FD คอ X -> Y และ Y -> Z
เชน {รหสพนกงาน} -> {รหสผจดการแผนก} ไดมาจาก 2 FD คอ
{รหสพนกงาน} -> {รหสแผนก}
และ
{รหสแผนก} -> {รหสผจดการแผนก}
82
คลงคว
ามรดจ
ทล มหาวท
ยาลยเก
ษตรศาสต
ร
Page 120
5-42
Third Normal Form : 3NF (Cont.)• ยกเวน
ถา X -> Y และ Y -> Z และ X เปน PK
จะเกดปญหา transitive dependency X -> Z
ถา Y ไมใช CK
แตถา Y เปน CK จะถอวาไมใชปญหา transitive dependency
83
Third Normal Form : 3NF (Cont.)
เชน EMP(Ssn,Emp#,Salary)
ม FD1: {Ssn} -> {Emp#}
FD2: {Emp#} -> {Salary}
และ Ssn เปน PK และ Emp# เปน CK
ดงนนไมเกดปญหา Transitive Dependency
จงถอวา EMP อยใน 3NF แลว
84
คลงคว
ามรดจ
ทล มหาวท
ยาลยเก
ษตรศาสต
ร
Page 121
5-43
Third Normal Form : 3NF (Cont.)1. หา FD
2. หา Closure ของแตละ FD เพอหา CK, Key, Prime Attribute และ Nonprime attribute
3. วาด FD
4. ตรวจสอบแตละ ตารางวาเปนไปตามนยาม 3NF โดยดจากแตละ FD
5. ถา FD ใด เกดปญหา แสดงวาตารางนไมอยใน 3NF ใหทาการแตกเปนตารางยอย ตาม FD ททาใหเกดปญหา
85
Third Normal Form : 3NF (Cont.)ตวอยางพนกงาน_แผนก(รหสพนกงาน,ชอ,วนเกด,ทอย,รหสแผนก,ชอแผนก,รหสผจดการ)ม FD คอ FD1 : {รหสพนกงาน} -> {ชอ,วนเกด,ทอย,รหสแผนก} และ
FD2 : {รหสแผนก} -> {ชอแผนก,รหสผจดการ}
เรมจาก 2) ทาการหา closure {รหสพนกงาน}+ = {รหสพนกงาน,ชอ,วนเกด,ทอย,รหสแผนก,ชอแผนก,รหสผจดการ}
{รหสแผนก}+ = {รหสแผนก, ชอแผนก,รหสผจดการ}
ดงนน CK/PK คอ {รหสพนกงาน} Prime attribute คอ {รหสพนกงาน}
Non-prime attribute คอ {ชอ,วนเกด,ทอย,รหสแผนก,ชอแผนก,รหสผจดการ}
86
คลงคว
ามรดจ
ทล มหาวท
ยาลยเก
ษตรศาสต
ร
Page 122
5-44
Third Normal Form : 3NF (Cont.)3) วาด FD พจารณาวาเปน 3NF หรอไม
เรมจาก FD แตละตว
FD1 {ชอ,วนเกด,ทอย,รหสแผนก} เปน non-prime ถก determine โดย {รหสพนกงาน} ซงเปน CK/PK ทาให FD นไมเปนปญหา
FD2 {ชอแผนก,รหสผจดการ} ถก determine โดย {รหสแผนก} ซงไมใช CK/PK ทาให FD นเปนปญหา
ดงนนจงตองแตกรเลชน
พนกงาน_แผนก ตาม FD2 จะได แผนก (รหสแผนก,ชอแผนก,รหสผจดการ)
87
Third Normal Form : 3NF (Cont.)ดงนน ตารางทอยใน 3NF คอ
88
คลงคว
ามรดจ
ทล มหาวท
ยาลยเก
ษตรศาสต
ร
Page 123
5-45
Third Normal Form : 3NF (Cont.)• นยาม สาหรบ กรณท พจารณา วา รเลชนอยใน 3NF หรอไมสาหรบกรณทมรเลชนม CK มากกวา 1 ชด
ทกๆ FD X -> A จะตองเปนไปตามเงอนไขขอใดขอหนงดงน
1) attribute ดานซายของ FD ตองเปน Super key
2) attribute ดานขวาของ FD ตองเปน Prime attribute
• ถาไมเปนไปทงสองขอถอวา FD เปนปญหาตอ 3NF
89
Third Normal Form : 3NF (Cont.)เชน R1 (A,B,C,D,E) R2(E,F,G,H)
FD1 {A} -> {B,C,D} FD2 {C} -> {D}
FD3 {E} -> {F,G} FD4 {G} -> {E,H}
หา Closure
{A}+ = {A,B,C,D} {C}+ = {C,D}
{E}+ = {E,F,G,H} {G}+ = {G,E,H,F}
90
ทมา : Fundamental of Database Systems , Elmasri & Navathe
คลงคว
ามรดจ
ทล มหาวท
ยาลยเก
ษตรศาสต
ร
Page 124
5-46
Third Normal Form : 3NF (Cont.)เชน
ดงนน
R1 ม CK คอ {A,E} เพราะจาก {A}+ ไมม E กสามารถเพม E ได
ดงนน prime attribute ใน R1 คอ {A,E} สวน non-prime คอ {B,C,D}R2 ม CK คอ {E},{G}
ดงนน prime attribute ใน R2 คอ {E,G} สวน non-prime คอ {F,H}
91
Third Normal Form : 3NF (Cont.)92
เรมทา normalization จาก 2NF R1 : พจารณา FD1 {B,C,D} เปน non-prime attribute ถก
determine โดย {A} ซงเปนสวนหนง CK/PK แบบ Partial FD ทาให FD1 มปญหา ดงนนจงตองแตกรเลชน R1 ตาม FD1 ไดรเลชนใหม คอ R11(A,B,C,D)
พจาณา FD2 {D} เปน non-prime attribute ถก determine โดย {C} ซง {C} เปน non-prime attribute เชนกน ดงนน ทาให FD2 ไมมปญหา
ดงนน รเลชนอยใน 2NF คอ R11(A,B,C,D) และ R1(A,E) โดย R1 ไมม FD
คลงคว
ามรดจ
ทล มหาวท
ยาลยเก
ษตรศาสต
ร
Page 125
5-47
Third Normal Form : 3NF (Cont.)93
เรมทา normalization จาก 2NF R2 : พจารณา FD3 : {F} เปน non-prime attribute ถก determine โดย
{E} ทเปน CK/PK แบบ Full FD ดงนน FD3 ไมมปญหา สวน {G} เปน prime attribute ซงกรณน ถอวา FD3 ไมมปญหา
พจารณา FD4 : {H} เปน non-prime attribute ถก determine โดย {G} ทเปน CK/PK แบบ Full FD ดงนน FD4 ไมมปญหา สวน {E} เปน prime attribute ซงกรณน ถอวา FD4 ไมมปญหา
ดงนน R2 อยใน 2NF แลวสรป Relation ทอยใน 2NF คอ R1(A,E) , R11(A,B,C,D) , R2(E,F,G,H)
Third Normal Form : 3NF (Cont.)94
ตอไปทา 3NF วาด FD จากตารางทอยใน 2NF แลว
R1 อยใน 3NF แลว เพราะ R1 ไมม FDR11 ม FD 2 FD คอ FD1 : {A} -> {B,C} และ FD2 : {C} -> {D}
FD1 : attribute ดานซายของ FD1 คอ {A} เปน prime attribute ทาให FD1 ไมมปญหา ไมเกดปญหา transitive dependency
FD2 : attribute ดานซายของ FD2 คอ {C} เปน non-prime attribute ดงนน FD2 มปญหา จงตองทาการแตกรเลชน R11 ตาม FD2 จะไดรเลชนใหม คอ R111(C,D)
ดงนน รเลชน R11(A,B,C) ม FD1 และ R111(C,D) ม FD2 อยใน 3NF
คลงคว
ามรดจ
ทล มหาวท
ยาลยเก
ษตรศาสต
ร
Page 126
5-48
Third Normal Form : 3NF (Cont.)95
ตอไปทา 3NF วาด FD จากตารางทอยใน 2NF แลว
R2 : ม CK 2 ชดคอ {A}, {E} ใชคานยามใน slide 89FD3 : attribute ดานซายของ FD3 คอ {E} เปน Super key ดงนน FD3 ไมมปญหาFD4 : attribute ดานซายของ FD4 คอ {G} เปน Super key ดงนน FD4 ไมม
ปญหาดงนน R2 อยใน 3NF แลวดงนน Relation ทอยใน 3NF
Third Normal Form : 3NF (Cont.)ตวอยาง LOTS(Property_ID#,Country_name,Lot#,Area,Price,Tax_rate)
ม FD ดงน
FD1 : {Property_ID#} -> {Country_name,Lot#,Area,Price,Tax_rate}
FD2 : {Country_name,Lot#} -> {Property_ID#,Area,Price,Tax_rate}
FD3 : {Country_name} -> {Tax_rate}
FD4 : {Area} -> {Price}
จงหาวา LOTS อยใน 2NF และ 3NF หรอไม
96
ทมา : Fundamental of Database Systems , Elmasri & Navathe
คลงคว
ามรดจ
ทล มหาวท
ยาลยเก
ษตรศาสต
ร
Page 127
5-49
Third Normal Form : 3NF (Cont.)2) หา Closure คอ
{Property_ID#}+= {Property_ID#,Country_Name,Lot#,Area,Price,Tax_Rate}
{Country_Name,Lot#}+= {Country_Name,Lot#,Property_ID#,Area,Price,Tax_rate}
{Country_Name}+ = {Country_Name,Tax_rate}
{Area}+ = {Area,Price}
ดงนน CK คอ {Property_ID#},{Country_Name,Lot#}
Prime attribute คอ {Property_ID#,Country_Name,Lot#}
non-prime attribute คอ {Area,Price,Tax_Rate}
97
Third Normal Form : 3NF (Cont.)3) วาด FD
98
4) พจารณาวาเปน 2NF หรอไม- FD1 : {Area,Price,Tax_rate} เปน Non-prime attribute ถก determine โดย {Property_ID#} ซงเปน CK/PK แบบ Full FD ทาให FD1 ไมเปนปญหา สวน {Country_name,Lot#} เปน Prime attribute จะไมพจารณา ถอวา ไมมปญหา- FD2 : {Area,Price,Tax_rate} เปน Non-prime attribute ถก determine โดย {Country_name,Lot#} ซงเปน CK/PK แบบ Full FD ทาให FD2 ไมเปนปญหา สวน {Property_ID#} เปน Prime attribute จะไมพจารณา ถอวา ไมมปญหา
คลงคว
ามรดจ
ทล มหาวท
ยาลยเก
ษตรศาสต
ร
Page 128
5-50
Third Normal Form : 3NF (Cont.)
- FD3 : {Tax_Rate} เปน Non-prime attribute ถก determine โดย{Country_Name} ซงเปนสวนหนงของ CK/PK แบบ Partial FD ทาให FD3 มปญหา จงแตกรเลชน LOTS ตาม FD3 ไดรเลชนใหมคอ LOTS1(Country_name, Tax_rate)
99
Third Normal Form : 3NF (Cont.)
- FD4 : {Price} เปน non-prime attribute ถก determine โดย {Area} ซงเปน non-prime attribute เหมอนกน ดงนน ไมตองพจารณา ถอวา FD4 ไมเปนปญหา
100
คลงคว
ามรดจ
ทล มหาวท
ยาลยเก
ษตรศาสต
ร
Page 129
5-51
Third Normal Form : 3NF (Cont.)ดงนน relation ทอยใน 2NF คอ
101
Third Normal Form : 3NF (Cont.)5) พจารณาวา relation LOTS, LOTS1 อยใน 3NF หรอไม
เนองจากม CK/PK 2 ชด ดงนน ใชคานยาม slide 89 พจารณา
102
5.1 พจารณา วา LOTS1 อยใน 3NF หรอไม
LOTS1 ม FD3 : attribute ดานซายคอ {Country_name} ซงไมใช Super key และ attribute ดานขวาคอ {Tax_rate} ไมใช Prime attribute ทาให FD3 เปนปญหา จงตองแตกรเลชน LOTS1 ตาม FD3 แตเมอแตกรเลชนแลว กยงคงได รเลชนเดมคอ LOTS1 ดงนน ถอวา LOTS1 ไมอยใน 3NF อยแค 2NF
คลงคว
ามรดจ
ทล มหาวท
ยาลยเก
ษตรศาสต
ร
Page 130
5-52
Third Normal Form : 3NF (Cont.)5.2 พจารณา วา LOTS อยใน 3NF หรอไม
ซงม CK 2 ชด ใชคานยามใน slide 89
103
FD1 attribute ดานซายของ FD1 คอ {Property_ID#} เปน Super key ทาให FD1 ไมเปนปญหา
FD2 attribute ดานซายของ FD2 คอ {Country_Name,Lot#} เปน Super key ทาให FD2 ไมเปนปญหา
Third Normal Form : 3NF (Cont.)5.2 พจารณา วา LOTS อยใน 3NF หรอไม
104
FD4 attribute ดานซายของ FD4 คอ {Area} ไมใช Super key และ attribute ดานขวาของ FD4 คอ {Price} ไมใช Prime attribute
ดงนน FD4 เปนปญหา จงตองแตก LOTS ตาม FD4 ไดรเลชนใหมคอ
LOTS2(Area, Price)
คลงคว
ามรดจ
ทล มหาวท
ยาลยเก
ษตรศาสต
ร
Page 131
5-53
Third Normal Form : 3NF (Cont.)ดงนน relation ทอยใน 3NF คอ
105
ดงนน relation ทไมอยใน 3NF แตอยแค 2NF คอ
BCNF (Boyce-Codd Normal Form)BCNF (Boyce-Codd Normal Form)
นยาม relation R จะอยในรป BCNF
ถาม FD X -> A แลว X เปน Super key เทานน
• ทกๆ 2NF อยใน 1NF แนๆ
• ทกๆ 3NF อยใน 2NF แนๆ
• ทกๆ BCNF อยใน 3NF แนๆ แต 3NF ไมจาเปนตองอยใน BCNF
106
คลงคว
ามรดจ
ทล มหาวท
ยาลยเก
ษตรศาสต
ร
Page 132
5-54
BCNF (Boyce-Codd Normal Form) (Cont.)จากตวอยาง LOTS(Property_ID#,Country_Name,Lot#,Area) พจารณา LOTS เปน BCNF หรอไม
เพม FD5 : {Area} -> {Country_name}
107
BCNF (Boyce-Codd Normal Form) (Cont.)พจารณา LOTS เปน BCNF หรอไม
108
• FD1 attribute ดานซายของ FD1 คอ {Property_ID#} เปน Super key ดงนน FD1 ไมเปนปญหา
• FD2 attribute ดานซายของ FD คอ {Country_Name,Lot#} เปน Super key ดงนน FD2 ไมเปนปญหา
คลงคว
ามรดจ
ทล มหาวท
ยาลยเก
ษตรศาสต
ร
Page 133
5-55
BCNF (Boyce-Codd Normal Form) (Cont.)
FD5 attribute ดานซายของ FD5 คอ {Area} ไมใช Super key ทาให FD5 เปนปญหา จงตองแตกรเลชน LOTS ตาม FD5 ไดรเลชนใหมคอ LOTS4(Area, Country_name)ดงนน LOTS(Property_ID#,Lot#,Area) ทาให FD2 หายไป เนองจาก ไมม attribute {Country_name}
109
FD2 หายไป
BCNF (Boyce-Codd Normal Form) (Cont.)ตวอยาง R(A,B,C) อยใน BCNF หรอไม กาหนด FD คอ FD1 : {A,B} -> {C}
FD2 : {C} -> {B}2) หา closure
{A,B}+ = {A,B,C}{C}+ = {C,B}ดงนน CK/PK คอ {A,B} Prime attribute คอ {A,B} Non-prime attribute คอ {C}Super key คอ {A,B}
110
คลงคว
ามรดจ
ทล มหาวท
ยาลยเก
ษตรศาสต
ร
Page 134
5-56
BCNF (Boyce-Codd Normal Form) (Cont.)3) วาด FD
111
FD1 attribute ดานซายคอ {A,B} เปน Super key ทาให FD1 ไมเปนปญหา
FD2 attribute ดานซายคอ {C} ไมใช Super key ทาให FD2 เปนปญหา ทาให ตาราง R ไมใช BCNF จงแตกรเลชน R ตาม FD2 ไดรเลชนใหมคอ R2(C,B) สวน R(A,C) และ FD1 หายไป เนองจาก B หายไป
FD1 หายไป
BCNF (Boyce-Codd Normal Form) (Cont.)ตวอยาง TEACH(Student,Course,Instructor) อยใน 3NF และ BCNF หรอไม
กาหนด FD คอ
FD1 : {Instructor} -> {Course}
FD2 : {Student,Course} -> {Instructor}
Closure : {Instructor}+ = {Instructor,Course}
{Student,Course}+ = {Student,Course,Intructor}
CK ={Student,Course} = Super key
Prime = {Student, Course} Non-prime = {Instructor}
112
คลงคว
ามรดจ
ทล มหาวท
ยาลยเก
ษตรศาสต
ร
Page 135
5-57
BCNF (Boyce-Codd Normal Form) (Cont.)ตวอยาง TEACH(Student,Course,Instructor) อยใน 3NF และ BCNF หรอไม
พจารณาวาอยใน BCNF ?FD1 : attribute ดานซายคอ {Instructor} ไมใช Super key ดงนน FD1 มปญหา จงแตกรเลชน TEACH ตาม FD1 ไดรเลชนใหมคอ T1(Instructor,Course)
FD2 : attribute ดานซายคอ {Student,Course} เปน Super key ดงนน FD2 ไมมปญหา
ดงนน รเลชน TEACH ไมอยใน BCNF และ รเลชนทอยใน BCNF คอT1(Instructor,Course) Teach(Student,Instructor)
113
BCNF (Boyce-Codd Normal Form) (Cont.)ตวอยาง TEXT(Teacher,Course,Text) อยใน 3NF และ BCNF หรอไม
กาหนด FD คอ
FD1 : {Text} -> {Course}
FD2 : {Teacher,Course} -> {Text}
114
คลงคว
ามรดจ
ทล มหาวท
ยาลยเก
ษตรศาสต
ร
Page 136
5-58
Fourth Normal Form (4NF)Multivalued dependency (MVD)
จะม 2 independent 1:N relationships A:B and A:C อยใน relation เดยวกน และ MVD คอ X ->> Y คอ X 1 คาจะมคา Y ไดหลายคา
ถา tuples t1 และ t2 มอยใน r ทซง t1[X] = t2[X] ดงนน tuple t3 และ t4 กจะมอยใน r เชนกน ดวย
- t3[X] = t4[X] = t1[X] = t2[X]
-t3[Y] = t1[Y] and t4[Y] = t2[Y]
-t3[Z] = t2[Z] and t4[Z] = t1[Z]
115
Fourth Normal Form (4NF)
MVD X ->> Y ใน R เรยกวา trivial MVD ถา
a) Y เปน subset ของ X หรอ
b) X Y = R
116
คลงคว
ามรดจ
ทล มหาวท
ยาลยเก
ษตรศาสต
ร
Page 137
5-59
Fourth Normal Form (4NF)
นยาม
• ถา relation R อยใน 4NF และม X ->> Y ใน F+ แลว X ตองเปน Super key เทานน
117
Fourth Normal Form (4NF)
118
EMP ENAME PNAME DNAMESmith X JohnSmith Y AnnaSmith X AnnaSmith Y JohnBrown W JimBrown X JimBrown Y JimBrown Z JimBrown W JoanBrown X JoanBrown Y JoanBrown Z JoanBrown W BobBrown X BobBrown Y BobBrown Z Bob
EMP_PROJECTS ENAME PNAMESmith XSmith YBrown WBrown XBrown YBrown Z
EMP_DEPENDENTS ENAME DNAMESmith JohnSmith AnnaBrown JimBrown JoanBrown Bob
A) Not 4NF
MVD :
ENAME ->> PNAME
ENAME ->> DNAME
B) In 4NF
ทมา : Fundamental of Database Systems , Elmasri & Navathe
คลงคว
ามรดจ
ทล มหาวท
ยาลยเก
ษตรศาสต
ร
Page 138
5-60
Fifth Normal Form (5NF)ใช Join dependency (JD) หมายถง ถาทาการแตก Relation – R เปน relation ยอยๆ คอ R1,R2,..,Rm ดงนน R เกดจากการ join กนของ R1,R2,..,Rm และควรแตก R เปน R1,R2,..,Rm หรอ จะคง R ไว ขนกบวา R เปน 5NF หรอไม
นยาม
R จะอยใน 5NF แลวกตอเมอ ทก nontrivial join dependency R1,R2,..,Rm ทก attribute เปน Super key ของ R
119
Fifth Normal Form (5NF)
120
EMP ENAME PNAME DNAMESmith X JohnSmith Y AnnaSmith X AnnaSmith Y JohnBrown W JimBrown X JimBrown Y JimBrown Z JimBrown W JoanBrown X JoanBrown Y JoanBrown Z JoanBrown W BobBrown X BobBrown Y BobBrown Z BobSmith X Jim
EMP_PROJECTS1 ENAME PNAMESmith XSmith YBrown WBrown XBrown YBrown Z
EMP_DEPENDENTS1 PNAME DNAMEX JohnY AnnaX AnnaY JohnW JimX JimY Jim
…. … …
A)B) In 4NF Not 5NF
ทมา : Fundamental of Database Systems , Elmasri & Navathe
คลงคว
ามรดจ
ทล มหาวท
ยาลยเก
ษตรศาสต
ร
Page 139
5-61
Fifth Normal Form (5NF)
121
EMP ENAME PNAME DNAMESmith X JohnSmith Y AnnaSmith X AnnaSmith Y JohnBrown W JimBrown X JimBrown Y JimBrown Z JimBrown W JoanBrown X JoanBrown Y JoanBrown Z JoanBrown W BobBrown X BobBrown Y BobBrown Z Bob
EMP_PROJECTS ENAME PNAMESmith XSmith YBrown WBrown XBrown YBrown Z
EMP_DEPENDENTS ENAME DNAMESmith JohnSmith AnnaBrown JimBrown JoanBrown Bob
A) B) In 4NF and 5NF
ทมา : Fundamental of Database Systems , Elmasri & Navathe
สรป การออกแบบ Database1. สราง ER/EER
2. Mapping ER/EER เปน table
3. หา FD ทมาจาก Requirement
4. Map FD เขากบแตละ table โดยท 1 FD สามารถ map ไดหลายตาราง
5. หา Closure
6. หา key วาตรงกบ key ทไดจาก EER หรอไม ถาตรงกน กนาจะถก ถาไมตรง แสดงวา ไม FD ก EER ผด
7. ทา normalization
8. สรางพจนานกรมขอมล (Data Dictionary)
122
คลงคว
ามรดจ
ทล มหาวท
ยาลยเก
ษตรศาสต
ร
Page 140
5-62
การทาพจนานกรมขอมล123
ลาดบท
ชอ Attribute ชนดขอมล ความยาว Null/NotNull
PK/FK ตารางอางอง
คาอธบาย
1. Property_ID# Varchar2 10 Not Null PK - รหสสมบต
2. Country_name Varchar2 3 Not Null - - ชอประเทศ
3. Lot# Number 3 Null FK LOTS1 หมายเลขLot
4. Area Number 1 Null - - พนท
ตวอยาง กรณศกษา ระบบขอมลการเรยนการสอน
124
คลงคว
ามรดจ
ทล มหาวท
ยาลยเก
ษตรศาสต
ร
Page 141
5-63
แบบฝกหดท 4 การทา Normalization
125
คลงคว
ามรดจ
ทล มหาวท
ยาลยเก
ษตรศาสต
ร
Page 142
5-77
แบบฝกหดท 3 EER mapping
1.จงทาการ map ER Model ดานลางนใหเปน relation
พนกงาน
ชนสวนสนคา
รหสพนกงาน
ชอ
นามสกล
รหสไปรษณย
ลกคา
รหสลกคา
ชอ
นามสกล
รหสไปรษณย
รหสชนสวนสนคา
ชอชนสวนสนคา
ราคา
จานวนทมในคลง
สงซอN
M
N
คลงคว
ามรดจ
ทล มหาวท
ยาลยเก
ษตรศาสต
ร
Page 143
5-78
2. จงทาการ map ER Model ดานลางนใหเปน relation
DEPENDENTDEPENDENT
Relationship
DEPARTMENT
Name Number
LocationsEMPLOYEE
Ssn
AddrSalary
Sex
Birthdate
PROJECT
Name
NumberLocation
Name
SexBirthdate
manages1 1
works_for1 N
works_on
N
M
StartDate
Hours
supervise
Supervisor 1
Supervisee N
Depent
N
1
คลงคว
ามรดจ
ทล มหาวท
ยาลยเก
ษตรศาสต
ร
Page 144
5-79
3.จงทาการ map ER Model ดานลางนใหเปน relation
DEPENDENTS_OFDEPENDENTS_OF
EMPLOYEE
SUPERVISION
WORKS_FOR
supervisee
supervisor
1 N
DEPARTMENT
1NSalary
Address
Sex
Name
Ssn
Bdate
FnameMinit Lname
Name Number
Locations
NumberOfEmployees
MANAGES
StartDate
1 1
CONTROLS
PROJECT
1
N
Name
PNumber
Location
WORKS_ON
Hours
M N
1
N
Name
SexBirthDate
Relationship
DEPENDENT
คลงคว
ามรดจ
ทล มหาวท
ยาลยเก
ษตรศาสต
ร
Page 145
5-80
4. จงทาการ map ER Model ดานลางนใหเปน relation
AIRPORT
AirportCode
Name
State
City
CAN_LAND
AIRPLANE TYPE
TypeName
Maxseats
Company
N
M
TYPE
AIRPLANE
AirplaneId
Total_no_of_seats
N
1
DEPARTURE_ AIRPORT
FLIGHTLEG1 N
ScheduledDepTime
LegNo
ARRIVAL_ AIRPORT
ScheduledArrTime
1N
1
FLIGHT
Weekdays
N
Number
Airline
DEPENDENTS_OFLEGS
DEPENDENTS_OFFARES
FARE
1
N Code
Amount
Restrictions
DEPENDENTS_OFINSTANCEOF
LEG INSTANCE
N
1 instances
Date
No_of_avail_Seats
ARRIVES
ArrTime
N
1
DEPARTS
1
N
DepTime
ASSIGNED1 N
DEPENDENTS_OFRESERVED
SEAT
1
N
CustomerName
CPhoneSeatNo
คลงคว
ามรดจ
ทล มหาวท
ยาลยเก
ษตรศาสต
ร
Page 146
5-81
5.จงทาการ map EER Model ดานลางนใหเปน relation
MissionPlan Consist of FlightSegment Consist of Cargo
Consist of
Passenger
d
ShipmentItemAircraft
Use
Code Name Description
1 M
Number Origin Description
N M
M
N
Date
AID Status ModelCapacity
Name
Weight DimensionCID
ID Origin Destination
N
M∩
∩
คลงคว
ามรดจ
ทล มหาวท
ยาลยเก
ษตรศาสต
ร
Page 147
5-82
แบบฝกหดท 4 การทา Normalization
1. จากรเลชน R(A, B, C, D, E, F, G, H, I, J) จงแสดงขนตอนการทา Normalization โดยกาหนดให R อย
ในรปของ 1NF แลว และม FD ดงตอไปน
FD1 : {A, B} -> {C}
FD2 : {A} -> {D, E}
FD3 : {B} -> {F}
FD4 : {F} -> {G, H}
FD5 : {D} -> {I, J}
2. จงแสดงขนตอนการทา Normalization โดยกาหนดให REGIS(Student_id,
Student_name,Teacher_id, Teacher_name, Course_id, Course_name, Credit_hour) อยใน
รปของ 1NF แลว จนกระทงรเลชนอยในรป BCNF และม FD ดงตอไปน
FD1 : {Student_id} -> {Student_name}
FD2 : {Teacher_id} -> {Teacher_name}
FD3 : {Course_id} -> {Course_name, Credit_hour}
FD4 : {Student_id, Course_id} -> {Teacher_id}
FD5 : {Teacher_id} -> {Course_id}
3. จงแสดงขนตอนการทา Normalization โดยกาหนดให R(A, B, C, D, E, F, G, H, I) อยในรปของ 1NF
แลว จนกระทงรเลชนอยในรป BCNF และม FD ดงตอไปน
FD1 : {A} -> {B, C, D}
FD2 : {E} -> {F, G, H}
FD3 : {A, E} -> {I}
FD4 : {G} -> {H}
4. จงแสดงขนตอนการทา Normalization โดยกาหนดให R(A, B, C, D, E) อยในรปของ 1NF แลว จนกระ
ทงรเลชนอยในรป BCNF และม FD ดงตอไปน
FD1 : {A} -> {B, C}
FD2 : {C, D} -> {E}
FD3 : {B} -> {D}
FD4 : {E} -> {A}
คลงคว
ามรดจ
ทล มหาวท
ยาลยเก
ษตรศาสต
ร
Page 148
5-83
5. จงแสดงขนตอนการทา Normalization โดยกาหนดให
CREDIT_CARD(Card_no, Exp_Date, Cur_bal, Cust_id, Cust_name, Cust_Addr)
MERCHANT(Merch_id, Card_no, Merch_Addr, Date, Amount)
อยในรปของ 1NF แลว จนกระทงรเลชนอยในรป BCNF และม FD ดงตอไปน
FD1 : {Card_no} -> {Exp_date, Cust_id, Cur_bal, Cust_name, Cust_Addr}
FD2 : {Cust_id} -> {Cust_name, Cust_Addr}
FD3 : {Merch_id} -> {Merch_Addr}
FD4 : {Merch_id, Card_no} -> {Date, Amount}
คลงคว
ามรดจ
ทล มหาวท
ยาลยเก
ษตรศาสต
ร
Page 149
6-1
บทท 6 เครองชวยตอบขอซกถาม
อ.ศรพร แสนศรภาควชาวทยาการคอมพวเตอรและสารสนเทศ
คณะวทยาศาสตรและวศวกรรมศาสตร
1
เนอหาบทเรยน
• พนฐานของคาสง SQL
• ชนดขอมลและขอบเขตขอมลของแอททรบวต
• คาสง SQL
• ภาษาการจดการขอมล (Data Manipulation Language –DML)
• ภาษาการกาหนดขอมล (Data Definition Language – DDL)
2
คลงคว
ามรดจ
ทล มหาวท
ยาลยเก
ษตรศาสต
ร
Page 150
6-2
พนฐานของคาสง SQL (Introduction SQL)
• SQL (Sequel) – Structure Query Language
• เรมแรกถกออกแบบโดย IBM Research
• ปจจบน คอ ความรวมมอ ระหวาง ANSI กบ ISO
• เรมแรกตงแต SQL (ANSI 1986) or SQL-86 หรอ SQL1
• ตอมา SQL2 หรอ SQL-92
• ตอมา SQL-99 ทใชกนอยางแพรหลาย
• ตอมา SQL3 ไมคอยไดรบความนยม
3
Introduction SQL (Cont.)• เปนภาษาทางฐานขอมล (Database Language)
• ประกอบดวยคาสงตอไปน• การกาหนดนยามขอมล (Definition)
• การสอบถามขอมล (Queries)
• การเปลยนแปลงขอมล (Updates)
• นนคอ ประกอบดวย 2 สวนคอ• DDL – Data Definition Language
• DML – Data Manipulation Language
4
คลงคว
ามรดจ
ทล มหาวท
ยาลยเก
ษตรศาสต
ร
Page 151
6-3
ชนดขอมลและขอบเขตขอมลของแอททรบวต• ชนดขอมลพนฐาน (Basic Data Types)• Numeric data types เชน Integer, Floating-point เปนตน
• Character-string data types เชน Char(n), Varchar(n),
• Bit-string data types เชน Bit(n)
• Boolean data types คอ คาความจรง TRUE หรอ FALSE
• Date/Time data types
• Timestamp data types
5
ภาษาการจดการขอมล (DML – Data Manipulation Language)• INSERT Command
• DELETE Command
• UPDATE Command
•SELECT-FROM-WHERE Command
6
คลงคว
ามรดจ
ทล มหาวท
ยาลยเก
ษตรศาสต
ร
Page 152
6-4
แผนภาพโครงสรางฐานขอมล (Schema diagram for the database)
7
ทมา : Fundamental of Database Systems , Elmasri & Navathe
EMPLOYEE - พนกงานData Type
varchar2(50) char varchar2(50) number date varchar2(200) char number number number
Fname Minit Lname Ssn Bdate Address Sex Salary Super_ssn Dnoชอตน ชอกลาง นามสกล รหสพนกงาน วนเกด ทอย เพศ เงนเดอน รหสหวหนา รหสแผนก
John B Smith 123456789 1965-01-09731 Fondren, Houston,
TXM 50000 1
Frankin T Smith 333445555 1955-12-08 638 Voss, Houston, TX M 25000 123456789 5Alicia J Smith 999887777 1966-07-19 3321 Castle, Spring, TX F 28500 333445555 4
Jennifer S Smith 987654321 1941-06-20 291 Berny, Bellaire, TX F 32000 333445555 4
Remesh K Smith 666884444 1962-09-15 975 Fire Oak, Humtle, TX M 33500 123456789 5
Joyce A Smith 453453453 1972-07-31 5631 Rice, Houston, TX F 32000 123456789 5Ahmad V Smith 987987987 1969-03-29 980 Dallas, Houston, TX M 31050 333445555 4James E Smith 888665555 1937-11-10 450 Stone, Houston, TX M 27500 1
DEPARTMENT - แผนก DEPENDENT - ผเกยวของกบพนกงานData Type
varchar2(50) number numberdate
varchar2(50)char number date
Dname Dnumber Mgr_ssn Mgr_start_date Dependent_name Sex Essn Bdate Relationship
ชอแผนก รหสแผนก รหสผจดการ วนเรมตาแหนง ชอผเกยวของ เพศ รหสพนกงาน วนเกด ความสมพนธResearch 5 333445555 2010-04-01 Jane Smith F 123456789 1965-08-09 Wife
Administration 4 987654321 2010-03-01 Joyce Smith F 123456789 2000-05-19 DaughterHeadquarters 1 888665555 2010-06-01
Human Resource 3 666884444
ตวอยางขอมลในฐานขอมล COMPANT8
คลงคว
ามรดจ
ทล มหาวท
ยาลยเก
ษตรศาสต
ร
Page 153
6-5
DEPT_LOCATIONS - ทตงแผนก PROJECT - โครงการ
Data Type number varchar2(100) varchar2(100) char(2) varchar2(100) number
Dnumber Dlocation Pname Pnumber Plocation Dnum
รหสแผนก ทตง ชอโครงการ รหสโครงการ ทตงโครงการ รหสแผนก1 Houston ProductX 1 Bellaire 54 Stafford ProductY 2 Sugarland 55 Bellaire ProductZ 3 Houston 4
5 Sugarland Computerzation 10 Stafford 5
5 Houston Reorganization 20 Houston 1
Newbenetis 30 Stafford 4
WORKS_ON WORKS_ON
Data Type number char(2) number Essn Pno Hours
Essn Pno Hours รหสพนกงาน รหสโครงการ จานวนชวโมงรหสพนกงาน รหสโครงการ จานวนชวโมง 333445555 20 10.0 123456789 3 32.5 999887777 30 30.0 123456789 2 7.5 999887777 10 10.0 666884444 3 40.0 987987987 10 35.0 453453453 3 20.0 987987987 30 5.0 453453453 2 20.0 987654321 30 20.0 333445555 2 10.0 987654321 20 15.0 333445555 3 10.0 888665555 20
333445555 10 10.0
ตวอยางขอมลในฐานขอมล COMPANT9
Queries• SELECT-FROM-WHERE structureรปแบบ SELECT <attribute list>, [aggregate function]
FROM <table list>[WHERE <condition>] [GROUP BY <attribute list>][HAVING <aggregate function condition>];
สามารถใช operator จาพวกเปรยบเทยบไดเชน =, <, <=, >, >=, <> เปนตน หรอ AND, OR เปนตน
10
คลงคว
ามรดจ
ทล มหาวท
ยาลยเก
ษตรศาสต
ร
Page 154
6-6
ตวอยาง QueriesQ1 – จงแสดงรหสพนกงานของพนกงานทกคน
SELECT Ssn
FROM EMPLOYEE ;
11
Ssn123456789333445555999887777987654321666884444453453453987987987888665555
ตวอยาง Queries (Cont.)Q2 – จงแสดงเงนเดอนของพนกงานทกคน
SELECT Salary
FROM EMPLOYEE ;
Q3 – จงแสดงเงนเดอนของพนกงาน ใหแสดงเฉพาะคาไมซากน
SELECT Distinct Salary
FROM EMPLOYEE ;
12
Salary5000025000285003200033500320003105027500
Salary50000250002850032000335003105027500
คลงคว
ามรดจ
ทล มหาวท
ยาลยเก
ษตรศาสต
ร
Page 155
6-7
ตวอยาง Queries (Cont.)Q4 – จงแสดงชอตนและนามสกลของพนกงานทกคน พรอมทงผลของการขนเงนเดอน 10 เปอรเซนต
SELECT Fname, Lname, 1.1*Salary AS Increased_sal
FROM EMPLOYEE ;
13
Fname Lname Increased_salJohn Smith 55000
Frankin Smith 27500Alicia Smith 31350
Jennifer Smith 35200Remesh Smith 36850Joyce Smith 35200
Ahmad Smith 34155James Smith 30250
ตวอยาง Queries (Cont.)Q5 – จงแสดงขอมลทกเขตขอมลของพนกงานทสงกด รหสแผนก หมายเลข 5
SELECT *
FROM EMPLOYEE
WHERE Dno = 5 ;
14
Fname Minit Lname Ssn Bdate Address Sex Salary Super_ssn DnoFrankin T Smith 333445555 1955-12-08 638 Voss, Houston, TX M 25000 123456789 5Remesh K Smith 666884444 1962-09-15 975 Fire Oak, Humtle, TX M 33500 123456789 5Joyce A Smith 453453453 1972-07-31 5631 Rice, Houston, TX F 25500 123456789 5
คลงคว
ามรดจ
ทล มหาวท
ยาลยเก
ษตรศาสต
ร
Page 156
6-8
ตวอยาง Queries (Cont.)Q6 – จงแสดงขอมล วนเกด และ ทอยของพนกงานทมชอวา John B. Smith
SELECT Bdate, Address
FROM EMPLOYEE
WHERE Fname = ‘John’ AND Minit = ‘B’
AND Lname = ‘Smith’ ;
15
Bdate Address1965-01-09 731 Fondren, Houston, TX
ตวอยาง Queries (Cont.)Q7 – จงแสดงชอตนและนามสกลของพนกงานทกคน ทอาศยอยทเมอง
Houston รฐ Texas
SELECT Fname, Lname
FROM EMPLOYEE
WHERE Address LIKE ‘%Houston,TX%’ ;
Substring pattern queries
16
Fname LnameJohn Smith
Frankin SmithJoyce Smith
Ahmad SmithJames Smith
คลงคว
ามรดจ
ทล มหาวท
ยาลยเก
ษตรศาสต
ร
Page 157
6-9
ตวอยาง Queries (Cont.)Q8 – จงแสดงทกเขตขอมลของพนกงานทสงกดรหสแผนกหมายเลข 5 และมเงนเดอนตงแต 30000 ถง 40000
SELECT *
FROM EMPLOYEE
WHERE Dno = 5 AND
(Salary BETWEEN 30000 AND 40000)
ORDER BY Salary DESC, Fname, Lname;
17
Fname Minit Lname Ssn Bdate Address Sex Salary Super_ssn DnoRemesh K Smith 666884444 1962-09-15 975 Fire Oak, Humtle, TX M 33500 123456789 5
ตวอยาง Queries (Cont.)
Q9 – จงแสดงชอตนและนามสกลพนกงาน ทไมมหวหนา โดยใหเรยงลาดบ จากนามสกล กอน แลวตอดวยชอตน
SELECT Fname, Lname
FROM EMPLOYEE
WHERE Super_ssn IS NULL
ORDER BY Lname, Fname;
18
Fname Lname
James Smith
John Smithคล
งความร
ดจทล ม
หาวทยาล
ยเกษตรศ
าสตร
Page 158
6-10
ตวอยาง Queries (Cont.) Q10 – จงแสดงรหสพนกงานของพนกงานทกคน
ททาโครงการหมายเลข 1 หรอ 2 หรอ 3
SELECT Distinct Essn
FROM WORKS_ON
WHERE Pno in (1,2,3) ;
19
Essn123456789666884444453453453333445555
ตวอยาง Queries (Cont.)Q11 – จงแสดง รหสพนกงาน และชอแผนกทพนกงานสงกด
SELECT Ssn, Dname
FROM EMPLOYEE, DEPARTMENT
WHERE Dno = Dnumber;
20
Ssn Dname123456789 Headquarters333445555 Research999887777 Administration987654321 Administration666884444 Research453453453 Research987987987 Administration888665555 Headquarters
เรยกวา SELECT-PROJECT-JOIN queriesคล
งความร
ดจทล ม
หาวทยาล
ยเกษตรศ
าสตร
Page 159
6-11
ตวอยาง Queries (Cont.)Q12 – จงแสดงชอตน นามสกล และ ทอยของพนกงาน ททางานทแผนก Research
SELECT Fname, Lname, Address
FROM EMPLOYEE, DEPARTMENT
WHERE Dname = ‘Research’
AND Dnumber = Dno ;
21
Fname Lname AddressFrankin Smith 638 Voss, Houston, TXRemesh Smith 975 Fire Oak, Humtle, TXJoyce Smith 5631 Rice, Houston, TX
ตวอยาง Queries (Cont.)Q13 – จงแสดงขอมลทกเขตขอมลของพนกงาน ทอยในแผนก Research
SELECT E.*
FROM EMPLOYEE AS E, DEPARTMENT AS D
WHERE Dname = ‘Research’ AND E.Dno = D.Dnumber;
22
Fname Minit Lname Ssn Bdate Address Sex Salary Super_ssn Dno
Frankin T Smith 333445555 1955-12-08 638 Voss, Houston, TX M 25000 123456789 5
Remesh K Smith 666884444 1962-09-15 975 Fire Oak, Humtle, TX M 33500 123456789 5
Joyce A Smith 453453453 1972-07-31 5631 Rice, Houston, TX F 25500 123456789 5
คลงคว
ามรดจ
ทล มหาวท
ยาลยเก
ษตรศาสต
ร
Page 160
6-12
ตวอยาง Queries (Cont.) Q14 – จงแสดงชอตน และนามสกลพนกงาน ทม ผทเกยวของกบพนกงาน ทมชอและนามสกลและเพศเดยวกนกบพนกงาน
SELECT E.Fname, E.Lname
FROM EMPLOYEE E
WHERE E.Ssn IN (SELECT Essn
FROM DEPENDENT
WHERE E.Fname||E.Lname = trim(Dependent_name)
AND E.Sex = Sex) ;
Subqueries
23
E.Fname E.Lname
Joyce Smith
ตวอยาง Queries (Cont.)
Q15 – จงแสดงชอตน นามสกล ของพนกงาน และ ชอตน นามสกลของหวหนาของพนกงาน
SELECT E.Fname, E.Lname, S.Fname, S.Lname
FROM EMPLOYEE AS E, EMPLOYEE AS S
WHERE E.Super_Ssn = S.Ssn ;
24
E.Fname E.Lname S.Fname S.LnameFrankin Smith John SmithAlicia Smith Frankin Smith
Jennifer Smith Frankin SmithRemesh Smith John SmithJoyce Smith John Smith
Ahmad Smith Frankin Smith
คลงคว
ามรดจ
ทล มหาวท
ยาลยเก
ษตรศาสต
ร
Page 161
6-13
ตวอยาง Queries (Cont.)
Q16 – จงแสดงหมายเลขโครงการ รหสแผนกทเปนเจาของโครงการ นามสกลของผจดการแผนก ทอยผจดการ และ วนเกดผจดการ ของโครงการทตงอยทเมอง Stafford
SELECT Pnumber, Dnum, Lname, Address, Bdate
FROM EMPLOYEE, DEPARTMENT, PROJECT
WHERE Plocation = ‘Stafford’
AND Dnum = Dnumber
AND Mgr_ssn = Ssn ;
25
Pnumber Dnum Lname Address Bdate10 4 Smith 291 Berny, Bellaire, TX 1941-06-2030 4 Smith 291 Berny, Bellaire, TX 1941-06-20
ตวอยาง Queries (Cont.) Q17 – จงหาผลรวมของเงนเดอน เงนเดอนสงสด เงนเดอนตาสด และคาเฉลยเงนเดอน ของพนกงานทกคน
SELECT SUM(Salary), MAX(Salary), MIN(Salary), AVG(Salary)
FROM EMPLOYEE ;
Aggregate function เชน SUM, MAX, MIN, AVG, COUNT เปนตน
26
sum(Salary) max(Salary) min(Salary) avg(Salary)259550 50000 25000 32443.75
คลงคว
ามรดจ
ทล มหาวท
ยาลยเก
ษตรศาสต
ร
Page 162
6-14
ตวอยาง Queries (Cont.) Q18 – จงหาจานวนพนกงานทงหมด
SELECT COUNT(*)
FROM EMPLOYEE ;
หรอ
SELECT COUNT(Ssn)
FROM EMPLOYEE ;
27
count(*)8
count(Ssn)8
ตวอยาง Queries (Cont.)
Q19 – จงหาจานวนพนกงานและคาเฉลยของเงนเดอน ของแตละแผนก
SELECT Dno, COUNT(*), AVG(Salary)
FROM EMPLOYEE
GROUP BY Dno ;
เรยก Dno วา Grouping Attribute
28
Dno count(*) avg(Salary)1 2 387505 3 30166.674 3 30516.67
คลงคว
ามรดจ
ทล มหาวท
ยาลยเก
ษตรศาสต
ร
Page 163
6-15
ตวอยาง Queries (Cont.)
Q20 – จงหาจานวนพนกงานทงหมด ทอยทแผนก Research
SELECT COUNT(*)
FROM EMPLOYEE , DEPARTMENT
WHERE Dname = ‘Research’
AND Dno = Dnumber ;
29
count(*)3
ตวอยาง Queries (Cont.) Q21 – จงแสดง หมายเลขโครงการ ชอโครงการ และจานวนพนกงานททางานอยในแตละโครงการ
SELECT Pnumber, Pname, COUNT(WORKS_ON.*)
FROM PROJECT, WORKS_ON
WHERE Pnumber = Pno
GROUP BY Pnumber, Pname ;
30
Pnumber Pname Count(Works_On.*)2 ProductY 33 ProductZ 410 Computerzation 320 Reorganization 330 Newbenetis 3
คลงคว
ามรดจ
ทล มหาวท
ยาลยเก
ษตรศาสต
ร
Page 164
6-16
ตวอยาง Queries (Cont.) Q22 – จงแสดง หมายเลขโครงการ ชอโครงการ และจานวนพนกงานททางานอยในแตละโครงการ เฉพาะโครงการทมจานวนพนกงานทางานมากกวา 2 คน
SELECT Pnumber, Pname, COUNT(WORKS_ON.*)
FROM PROJECT, WORKS_ON
WHERE Pnumber = Pno
GROUP BY Pnumber, Pname
HAVING COUNT(WORKS_ON.*) > 2 ;
31
Pnumber Pname Count(Works_On.*)2 ProductY 33 ProductZ 410 Computerzation 320 Reorganization 330 Newbenetis 3
ตวอยาง Queries (Cont.) Q23 – จงแสดง ชอแผนก และจานวนพนกงานทสงกดอยในแตละแผนก เฉพาะพนกงานทมเงนเดอนมากกวา 30000 และเฉพาะแผนกทมจานวนพนกงานมากกวาหรอเทากบ 2 คน และใหแสดงขอมลเรยงลาดบตามชอแผนก จากมากไปนอย แลวตอดวยจานวนจากนอยไปหามากSELECT Dname, COUNT(E.*)FROM DEPARTMENT D, EMPLOYEE EWHERE Dnumber = Dno AND Salary > 30000 GROUP BY DnameHAVING COUNT(E.*) >= 2 ORDER BY 1 DESC, 2;
32
Dname Count(E.*)
Research 2
Administration 2
คลงคว
ามรดจ
ทล มหาวท
ยาลยเก
ษตรศาสต
ร
Page 165
6-17
DML – Data Manipulation Language
• INSERT Command
•DELETE Command
•UPDATE Command• SELECT-FROM-WHERE Command
33
INSERT Statements• INSERT INTO command
เชน INSERT INTO EMPLOYEE
VALUES (‘Richard’, ‘K’, ‘Marini’, ‘653298653’, ‘1962-12-30’,
‘98 Oak Forest, Katy, TX’, ‘M’, 37000, ‘653298653’, 4);
เชน INSERT INTO EMPLOYEE (Fname, Lname, Dno, Ssn)
VALUES (‘Richard’, ‘Marini’, 4, ‘653298653’);
34
คลงคว
ามรดจ
ทล มหาวท
ยาลยเก
ษตรศาสต
ร
Page 166
6-18
INSERT Statements (Cont.)• INSERT INTO command
เชน INSERT INTO DEPTS_INFO(D_name,No_of_emps,Total_sal)
SELECT Dname, COUNT(*), SUM(Salary)
FROM DEPARTMENT D, EMPLOYEE E
WHERE D.Dnumber = E.Dno
GROUP BY Dname ;
35
DELETE Statements • DELETE FROM command
เชน DELETE FROM EMPLOYEE
WHERE Lname = ‘Brown’ ;
เชน DELETE FROM EMPLOYEE
WHERE Ssn = ‘123456789’ ;
เชน DELETE FROM EMPLOYEE ;
36
คลงคว
ามรดจ
ทล มหาวท
ยาลยเก
ษตรศาสต
ร
Page 167
6-19
UPDATE Statements • UPDATE command
เชน UPDATE PROJECT
SET Plocation = ‘Bellaire’, Dnum = 5
WHERE Pnumber = 10 ;
เชน UPDATE EMPLOYEE
SET Salary = 1.1*Salary
WHERE Dno IN (SELECT Dnumber FROM DEPARTMENT
WHERE Dname = ‘Research’) ;
37
ภาษาการกาหนดขอมล (DDL – Data Definition Language)
• คาสงในกลมน เรมตนดวยคาวา CREATE เปนสวนใหญ
• CREATE SCHEMA
• CREATE TABLE
• CREATE VIEW
• คาสงในกลม Schema Change Statements
38
คลงคว
ามรดจ
ทล มหาวท
ยาลยเก
ษตรศาสต
ร
Page 168
6-20
DDL – Data Definition Language
CREATE SCHEMA
รปแบบ
CREATE SCHEMA ชอ schema AUTHORIZATION ชอ user
เชน CREATE SCHEMA COMPANY AUTHORIZATION Jsmith;
39
DDL – Data Definition LanguageCREATE TABLE
รปแบบ CREATE TABLE ชอ schema.ชอ table
(ระบชอ attribute ท 1 พรอม data type และความยาว,
ระบชอ attribute ท 2 พรอม data type และความยาว,
…,
ระบชอ attribute ท n พรอม data type และความยาว,
[PRIMARY KEY (ชอ attribute)] ,
[FOREIGN KEY (ชอ attribute)] ,
…. );
40
คลงคว
ามรดจ
ทล มหาวท
ยาลยเก
ษตรศาสต
ร
Page 169
6-21
DDL – Data Definition LanguageCREATE TABLEเชน CREATE TABLE DEPARTMENT
(Dname varchar(15) NOT NULL,Dnumber Int NOT NULL,Mgr_ssnchar(9) NOT NULL,Mgr_start_date date,PRIMARY KEY (Dnumber),UNIQUE (Dname),FOREIGN KEY (Mgr_ssn) REFERENCES EMPLOYEE(Ssn));
41
DDL – Data Definition LanguageCREATE VIEW
เชน CREATE VIEW WORKS_ON1AS SELECT Fname, Lname, Pname, Hours
FROM EMPLOYEE, PROJECT, WORKS_ONWHERE Ssn = EssnAND Pno = Pnumber;
42
การเรยกใชงาน VIEWSELECT *FROM WORKS_ON1;
คลงคว
ามรดจ
ทล มหาวท
ยาลยเก
ษตรศาสต
ร
Page 170
6-22
DDL – Data Definition LanguageCREATE VIEW (ตอ)
เชน CREATE VIEW DEPT_INFO(Dept_name,No_of_emps,Total_salAS SELECT Dname, Count(*), Sum(Salary)
FROM DEPARTMENT, EMPLOYEEWHERE Dnumber = DnoGROUP BY Dname;
43
การเรยกใชงาน VIEWSELECT Dept_name,No_of_emps,Total_salFROM DEPT_INFOWHERE Total_sal >= 35000;
Schema Change Statements DROP command
เชน DROP SCHEMA …..;
DROP TABLE …..;
DROP VIEW …..;
ALTER command
เชน ALTER TABLE …. ADD COLUMN;
ALTER TABLE … DROP COLUMN … CASCADE;
ALTER TABLE … DROP CONSTRAINT … CASCADE;
44
คลงคว
ามรดจ
ทล มหาวท
ยาลยเก
ษตรศาสต
ร
Page 171
6-23
Schema Change Statements• DROP & ALTER command
เชน DROP SCHEMA COMPANY CASCADE;
DROP TABLE DEPENDENT CASCADE;
DROP VIEW WORKS_ON1;
ALTER TABLE COMPANY.EMPLOYEE ADD COLUMN job varchar(12);
ALTER TABLE COMPANY.EMPLOYEE DROP COLUMN Address;
ALTER TABLE COMPANY.EMPLOYEE DROP CONSTRAINT empsuperfkCASCADE;
45
คลงคว
ามรดจ
ทล มหาวท
ยาลยเก
ษตรศาสต
ร
Page 172
7-1
บทท 7 การจดแฟมขอมลและความปลอดภยของแฟมขอมล
อ.ศรพร แสนศรภาควชาวทยาการคอมพวเตอรและสารสนเทศ
คณะวทยาศาสตรและวศวกรรมศาสตร
1
เนอหาบทเรยน
• พนฐานของทรานแซคชน - Transaction
• สถานะของทรานแซคชน (Transaction State)
• คณสมบตของทรานแซคชน (Property of Transaction)
2
คลงคว
ามรดจ
ทล มหาวท
ยาลยเก
ษตรศาสต
ร
Page 173
7-2
พนฐานทรานแซคชน Transaction
• transaction คอ หนวย (unit) ของการประมวลผล (execute) คอเมอทาแลวตองทาจนจบ ถาทาไมจบกตองยกเลกทงหมด เชนม 5 คาสงตอ 1 transaction กตองทาใหเสรจทง 5 คาสง อาจจะเปน insert/update/delete/query กได ใน 1 transaction
• เมอ transaction เรมทางานและจบการทางาน database จะตองอยในสถานะถกตอง (valid state) ดงนน transaction จะตองอยในสถานะ consistent แตถาเปลยนจาก valid เปน invalid กตอง ยกเลกแตระหวางทาง database state อยในสถานะไมถกตอง (invalid state) ได แตถาจบตองอยใน valid state
3
Introduction (ตอ)
• เมอ transaction จบการทางานสมบรณ หรอ เมอ commit การเปลยนแปลงนใดๆ กตามทเกดจาก transaction กจะทาใหเกด permanent กคอยงอย ถาระบบลมเหลวหรอกขอมล การเปลยนแปลงเหลานกยงคงอย
• ใน transaction หนงๆ แยก operation เปน 2 ประเภทคอ ไมวาจะเปน insert/update/delete/query
• read(x) หรอ read_item(x)
• write(x) หรอ write_item(x)
4
คลงคว
ามรดจ
ทล มหาวท
ยาลยเก
ษตรศาสต
ร
Page 174
7-3
read(x)
• ทาการคนหา address ของ disk block ทม item x อย
• copy disk block เขาไปใน buffer
• copy item x จาก buffer ไปยงตวแปรของโปรแกรมทมชอ x
5
write(x)• ทาการคนหา address ของ disk block ทม item x อย
• copy disk block เขาไปใน buffer
• copy item x จากตวแปรของโปรแกรมทมชอ x เขาไปเกบไวในตาแหนงทถกตองใน buffer
• store block ท update แลวจาก buffer กลบเขาส disk
6
คลงคว
ามรดจ
ทล มหาวท
ยาลยเก
ษตรศาสต
ร
Page 175
7-4
7
TRANSACTION (ตอ)
ทมารป : Fundamental of Database Systems , Elmasri & Navathe
Interleaved processing VS parallel processing of concurrent transactions
8
ทมารป : Fundamental of Database Systems , Elmasri & Navathe
คลงคว
ามรดจ
ทล มหาวท
ยาลยเก
ษตรศาสต
ร
Page 176
7-5
Interleaved processing VS parallel processing of concurrent transactions
• interleaved processing คอ (t1-t2) ม 1 CPU แต user มองเหนวาหลายๆ โปรแกรมทางานพรอมกน แตกคอ ทางานไปนดนง ถาม I/O กหยด ไปให transaction อนทางานตอไปเรอยๆ
• concurrent processing คอ (t3-t4)มหลาย CPU ทางานไดพรอมๆ กน
ดงนนควรมการควบคมการทางานเหลาน ม 2 เรองทตองจดการคอ
• เมอเกดการลมเหลวของระบบ เชนไฟดบ จะทาการกระบบคนไดอยางไร
• concurrent execution กคอการ control เมอมการ access ขอมลตวเดยวกน จะตองไดขอมลทถกตอง (concurrency control)
9
การควบคม Concurrencyสาเหตทตองม concurrency control เนองจากเกดปญหา 4 ขอเหลานคอ
• The lost update problem
• The temporary update (dirty read) problem
• The incorrect summary problem
• The unrepeated read เมอ data ตวเดยวกนแตอานหลายครงแตคาไมเหมอนกน เชน agency ขายตวเครองบน เชน agency 1 ขายตวเครองบนวาม 1 ท เมอลกคาตองการจองกตอง read อกครง ทาใหทนงนอาจจะถกจองไปแลวกได เปนตน แกโดยให read,update อยใน transaction เดยวกน แลวตามดวย concurrency control กจะแกปญหาได
10
คลงคว
ามรดจ
ทล มหาวท
ยาลยเก
ษตรศาสต
ร
Page 177
7-6
ตวอยาง ทรานแซคชน 2 ทรานแซคชน (Two sample transactions )
11
(a) The lost update problem. สมมต T1 คอ การโอนเงน คอโอนจาก X ไปยง Y ดวยจานวนเงน N สวน T2 คอการฝากเงน จานวน M ถาทงสอง transaction ทางานพรอมกนแบบ interleaved
(b) The temporary update problem.
ทมารป : Fundamental of Database Systems , Elmasri & Navathe
Two sample transactions (ตอ)12
ทมารป : Fundamental of Database Systems , Elmasri & Navathe
คลงคว
ามรดจ
ทล มหาวท
ยาลยเก
ษตรศาสต
ร
Page 178
7-7
Two sample transactions (ตอ)จากรป a สมมต X = 1000, Y = 800, N = 50 , M = 300
T1 read_item(1000), X := X-N := 1000-50 := 950 หยด X ยงไม write กลบไป buffer
T2 read_item(1000), X:= X+M := 1000+300 := 1300 หยด
T1 write_item(X) X=950 , read_item(Y) Y=800 หยด
T2 write_item(X) X=1300 หยด ซ งไปทบ 950 เรยกวา lost update problem เพราะคา 950 ถก update เปลยนไปดวยคา X=1300
T1 Y := Y+N := 800+50 := 850 , write_item(Y) Y=850
เมอจบแลวใน buffer X=1300 Y=850 ซ ง X ผดตองได 1250
13
Two sample transactions (ตอ)จากรป b เรยกวา temporary update problem
T1 read_item(X) X = 1000 , X:=X-N:=1000-50:=950,write_item(X) X= 950 หยด
T2 read_item(X) X=950, X:=X+M:=950+300:=1250,write_item(X) X=1250 หยด
T1 read_item(Y) Y=800 แลวเกด fail ดงนนจะตองยกเลกคอ X=1000 เหมอนเดม แตใน T2 อาน X=950 ไปแลวทาใหอานคาผดไปทางาน ดงนนจงตอง rollback กลบใหหมด คอ X=1000 เทาเดม แตคา X=950 อานไปแลวโดย T2 เรยกวา temporary update problem
14
คลงคว
ามรดจ
ทล มหาวท
ยาลยเก
ษตรศาสต
ร
Page 179
7-8
ตวอยาง ปญหาการสรปขอมลทไมถกตอง (The incorrect summary problem)
15
ทมารป : Fundamental of Database Systems , Elmasri & Navathe
The incorrect summary problem (ตอ)จากรป c T1 โอนเงน T3 หา balance ลกคาของสาขาน ทางานพรอมๆกน
T3 sum:=0, read_item(A),.. หยดT1 read_item(X) X=1000, X:=X-N:=1000-50:=950,
write_item(X) X=950 หยดT3 read_item(X) X=950,
sum:=sum+X:=0+950:=950,read_item(Y) Y=800,sum:=sum+Y:=950+800:=1750 ซงผดไปแลว เพราะตองได 1800
T1 read_item(Y) Y=800, Y:=Y+N:=800+50:=850, write_item(Y) Y=850 หยด
ซงคา Y ยงทาไมเสรจ แต หา summary แลว เรยกวา incorrect summary problem
16
คลงคว
ามรดจ
ทล มหาวท
ยาลยเก
ษตรศาสต
ร
Page 180
7-9
การกคนขอมล (Recovery)เมอ transaction ถกสงไปยง DBMS เพอทาการ execute ระบบจะตองมหนาทททาใหเกดความมนใจดงน
• ทก operation ใน transaction ทางานสาเรจและสมบรณและผลจากการทา transaction ถกเกบอยางถาวรใน database นนคอ DBMS จะตอง commit ใหเรยบรอย
• transaction ไมมผลตอขอมลใน database เพราะทาไมสาเรจ คอ DBMS จะตองทาการ rollback ทงหมด ทาใหขอมลเหมอนเดมกอนเกด transaction
17
Recovery (ตอ)ดงนนควรมการทา recovery เชน
• ถา transaction ทาสาเรจแลวคอ write ลง buffer แตยงไม write ลง disk
แตเกดไฟดบ ดงนน DBMS จะตองทาให transaction สาเรจคอไป write
ขอมลลง disk ซง DBMS จะตองทาซาเพอ write ขอมลลง disk ได
• ถา transaction ทางานไมสาเรจ บางสวน write ลง disk บางสวนยงไม write
ลง disk และเกดไฟดบ ดงนนเมอไฟตด recovery module จะทาหนาททาให
ขอมลเหมอนเดมกอนเกด transaction ถาไฟไมดบแตเกด error DBMS กจะทา
การ rollback
18
คลงคว
ามรดจ
ทล มหาวท
ยาลยเก
ษตรศาสต
ร
Page 181
7-10
สถานะของทรานแซคชน (Transaction State)
transaction ใดๆ จะม state ดงน
• active state
• partially committed state
• committed state
• failed state
• terminated state
19
ตวอยาง State transition diagram สาหรบการประมวลผล transaction
20
ทมารป : Fundamental of Database Systems , Elmasri & Navathe
คลงคว
ามรดจ
ทล มหาวท
ยาลยเก
ษตรศาสต
ร
Page 182
7-11
State transition diagram สาหรบการประมวลผล transaction (ตอ)
• เมอเรม transaction ทางาน กอยใน active state คอพวก read/write เมอถงคาสงสดทายของการทา transaction เสรจ state กจะเปลยนเปน partially committed state จะไปส committed state โดย DBMS จะตองเกบขอมล ตรวจตามขนตอน recovery,concurrency แลวเมอทาสาเรจแลว ถกตองจะเปลยน state เปน committed state แลวไปส terminated state
• ถา transaction error จะเปลยนจาก active state เปน failed state
• จาก partially committed state จะไปส failed state โดย DBMS จะตองเกบขอมล ตรวจตามขนตอน recovery,concurrency แลวเมอทาสาเรจแลว แตปรากฎวาขอมลไมถกตองจะเปลยน state เปน failed state แลวไปส terminated state
21
The System Log• system log คอ ขอมลทเกยวของกบการทางานของ transaction ทมผลตอขอมลใน database เกบเฉพาะการ write data ไมเกบการ read data โดยเกบใน disk และทา backup เกบไว
• ในแตละ transaction เมอทางานกจะสราง transaction id ของแตละ transaction จะมคา unique เมอ transaction ถงจด commit คอทก operation ทางานสาเรจ ผลนจะตองถก write ลง log ดวยเชนกน
22
คลงคว
ามรดจ
ทล มหาวท
ยาลยเก
ษตรศาสต
ร
Page 183
7-12
คณสมบตของทรานแซคชน (Properties of Transactions)
คณสมบตของ transaction เรยกวา ACID property ประกอบดวย
• Atomicity คอ unit ของ transaction กคอทาทงหมด ไมทาแคบางสวน ไมสามารถแบงแยกได ไมสามารถ interrupt ได ถาทาไมสาเรจตอง rollback ทงหมด
• Consistency preservation การทางานของ transaction ตองทางานแบบโดดๆ ไมสนใจขางเคยงและไดขอมลทถกตองดวย ทงเรมและสดทาย valid state ไป valid state
23
Properties of Transactions (ตอ)
• Isolation การทางานของ transaction ทมการทางานหลายๆ transaction จะตองไมมใครมาดงขอมลในชวงกลางของ transaction ไปได (intermidate result) คอจะถกซอนไว จะนาไปใชเมอจบ transaction ไมเหนขอมลของ transaction อนเลย
• Durability or permanency ผลของการทางานของ transaction จะตองเปนผลแบบถาวร ถาทาสาเรจสมบรณ
24
คลงคว
ามรดจ
ทล มหาวท
ยาลยเก
ษตรศาสต
ร
Page 184
7-13
Properties of Transactions (ตอ)ตวอยาง transaction
ตองการทา transfer $50 จาก account A ไปยง account B
read(A)
A:=A-50
write(A)
read(B)
B:=B+50
write(B)
25
ตารางการทางานของทรานแซคชน (Schedules of Transactions)• การจดตารางการทางานของ transaction (interleave คอการสลบการทางาน) และมการทางานแบบ interleave จะตองทาการจด schedule
• Schedule ประกอบดวย คาสงทงหมดของ transaction และ ลาดบในการทางานทเปนไปตามลาดบของการทา transaction
• ถา transaction ทางานสาเรจ มคาสง commit เปนคาสงสดทาย แตถา transaction ทางานไมสาเรจ มคาสง abort เปนคาสงสดทาย
• เมอ transaction ทางานเสรจแลว database จะอยในสถานะ consistency คอไปสสถานะ valid ถาอยในสถานะ invalid transaction จะถก reject
26
คลงคว
ามรดจ
ทล มหาวท
ยาลยเก
ษตรศาสต
ร
Page 185
7-14
Serializability of Schedule• เปนการทางานทละ transaction ใหจบไปทละ transaction จงจะทา transaction ตอไปได ถาไมละเมดกฎของ database 3 ขอ (referential integrity constraint,Integrityconstraint,Key constraint) กอยในรกษาสถานะ consistency ของ database อยแลว
• เมอมการทางานแบบ interleave ผลของการทางานตองเหมอนผลการทางานแบบ serial ดงนนการจดทา schedule มคณสมบต serializability คอ การจด n transaction จะไดผลลพธ equivalent กบแบบ serial schedule
27
Serializability of Schedule (ตอ)
Schedule 1
• T1 โอนเงน 50 บาท
• เปนการจดการทางานแบบ serial คอทาทละ transaction ใหเสรจกอน
• A = 1000 , B = 1000 เมอจบแลว A = 855 ,B = 1145
ดงนน A+B = 2000
28
T1 T2
Read (A)
A := A – 50
Write (A)
Read (B)
B := B + 50
Write (B)
Read (A)
Temp := A*0.1
A := A-temp
Write (A)
Read (B)
B := B+temp
Write (B)
คลงคว
ามรดจ
ทล มหาวท
ยาลยเก
ษตรศาสต
ร
Page 186
7-15
Serializability of Schedule (ตอ)Schedule 2
• Let T1 and T2 be the transactions defined previously. The following schedule is not a serial schedule, but it is equivalent to Schedule 1.
• A=1000,B=1000 เมอจบแลว A=855,B=1145
29
T1 T2
Read (A)
A := A – 50
Write (A) Read (A)
Temp := A*0.1
A := A-temp
Write (A)
Read (B)
B := B + 50
Write (B)
Read (B)
B := B+temp
Write (B)
Serializability of Schedule (ตอ)Schedule 3
• The following concurrent schedule does not preserve the value of the sum A+B
• read จาก buffer กอนคอยเกบไปใสในตวแปร A=1000,B=1000 เมอจบแลว A = 950,B=1100 ดงนน schedule 3 ไมม serializability
30
T1 T2
Read (A) ม A ใน
buffer 1000
A := A – 50
Read (A)
Temp := A*0.1
A := A-temp
Write (A)
Read (B) ม B ใน
buffer 1000
Write (A)
Read (B)
B := B + 50
Write (B) 1050
B := B+temp
Write (B)
คลงคว
ามรดจ
ทล มหาวท
ยาลยเก
ษตรศาสต
ร
Page 187
7-16
Conflict Operationsเมอ 2 operation ใน schedule มการ conflict ถาเกดเงอนไขใน 3 ขอนคอ• คนละ transaction
• access item X เดยวกน
• operation ใด operation หนงเปน write_item(x)
เชน li=read(Q), lj=read(Q) li and lj ไม conflict
li=read(Q), lj=write(Q) li and lj conflict
li=write(Q), lj=read(Q) li and lj conflict
li=write(Q), lj=write(Q) li and lj conflict
ถา 2 schedule จะ conflict equivalent ถาลาดบของ 2 operation ท conflict กนเปนลาดบเดยวกนทงสอง schedule
31
การทดสอบ Conflict Serializability32
การทดสอบวาถาม confilct operation แลวมาจด schedule แลวม conflict serializability หรอไม ถามแสดงวา schedule ใชงานได ถาไมมตองจด schedule ใหม โดยใช directed graph เขามาชวย1. สราง node คอแตละ transaction จานวน node เทากบ จานวน
transaction2. ถา Tj ม read_item(x) หลงจาก Ti ทม write_item(x) ใหสราง edge
จาก Ti -> Tj3. ถา Tj ม write_item(x) หลงจาก Ti ทม read_item(x) ใหสราง edge
จาก Ti -> Tj4. ถา Tj ม write_item(x) หลงจาก Ti ทม write_item(x) ใหสราง edge
จาก Ti -> Tj5. ถาได graph ทไมม cycle แสดงวา schedule มคณสมบต conflict
serializability แสดงวา schedule นใชได
คลงคว
ามรดจ
ทล มหาวท
ยาลยเก
ษตรศาสต
ร
Page 188
7-17
การทดสอบ Conflict Serializability (ตอ)33
a) Serial schedule A : T1 followed by T2.b) Serial schedule B : T2 followed by T1.c) Two nonserialschedules C and D with interleaving of operationsT1 โอนเงน T2 ฝากเงน
ทมารป : Fundamental of Database Systems , Elmasri & Navathe
การทดสอบ Conflict Serializability (ตอ)a) ม conflict คอ T1 read_item(X) กบ T2 write_item(X) และ
T1 write_tiem(X) กบ T2 read_item(X) และ T1 write_item(X) กบ T2 write_item(X)
b) ม conflict คอ T2 read_item(X) กบ T1 write_item(X) , T2 write_item(X) กบ T1 read_item(X) , T2 write_item(X) กบ T1 write_item(X)
c) ม conflict คอ T1 read_item(X) กบ T2 write_item(X), T2 read_item(X) กบ T1 write_item(X) และ T1 write_item(X) กบ T2 write_item(X)
d) ม confilct คอ T1 read_item(X) กบ T2 write_item(X), T1 write_item(X) กบ T2 read_item(X) และ T1 write_item(X) กบ T2 write_item(X)
34
คลงคว
ามรดจ
ทล มหาวท
ยาลยเก
ษตรศาสต
ร
Page 189
7-18
การทดสอบ Conflict Serializability (ตอ)
a) Precedence graph for serial schedule A.
b) Precedence graph for serial schedule B.
c) Precedence graph for schedule C (not serializable).
d) Precedence graph for schedule D.
35
ทมารป : Fundamental of Database Systems , Elmasri & Navathe
คลงคว
ามรดจ
ทล มหาวท
ยาลยเก
ษตรศาสต
ร