database system concepts - wordpress.com · 2017-01-14 · database system concepts...
TRANSCRIPT
Database System Concepts
ความรเบ องตนเกยวกบระบบฐานขอมล(Chapter 1)
Database System อ.เอญ สรยะฉาย (ENS)
ภาควชาวทยาการคอมพวเตอรและสารสนเทศมหาวทยาลยเทคโนโลยพระจอมเกลาพระนครเหนอ
แนวคดเกยวกบการจดเกบขอมล แนวคดเกยวกบระบบฐานขอมล สถาปตยกรรมของระบบฐานขอมล แนวคดฐานขอมลแบบตางๆ
ความรเบ องตนเกยวกบระบบฐานขอมล
Database System Database System Concepts 2
ความรพนฐานเรองเขตขอมล ระเบยน และแฟมขอมล ชนดและคณสมบตของหนวยเกบขอมลสารองและหนวยความจาหลก
แนวคดเกยวกบการจดเกบขอมล
Database System Database System Concepts 3
โครงสรางของแฟมขอมล
Database System Database System Concepts 4
โครงสรางของแฟมขอมล
Database System Database System Concepts 5
ความรพนฐานเรองเขตขอมล ระเบยน และแฟมขอมล เขตขอมล คอ การนาเอาอกขระหลายๆตวรวมกน โดยมความหมายอยางใดอยางหนง หรออาจเรยกอกอยางวา ฟลด (Field)
ระเบยน คอ กลมของฟลดทสมพนธกน หรออาจเรยก อกอยางหนงวา เรคอรด (Record)
แนวคดเกยวกบการจดเกบขอมล
Database System Database System Concepts 6
1
2
3
ชนดของขอมล มหลายรปแบบดงน คอ ขอมลแบบรปแบบ เปนขอมลทรวมอกขระเปนรปแบบท แนนอน อาจอยในรปของรหส ซงตองตความหมายอกครง
ขอมลแบบขอความ เปนขอมลทเปนอกขระในแบบขอความ โดยไมมรปแบบทแนนอน ความหมายจะอยในขอความ
ขอมลแบบภาพลกษณ เปนขอมลทเปนภาพหรอเปนกราฟ ขอมลแบบเสยง ขอมลแบบภาพและเสยง เปนการจดเกบภาพและเสยงไว รวมกน
ชนดของขอมล
Database System Database System Concepts 7
ลกษณะของระบบแฟมขอมล ระเบยนขนาดคงท ระเบยนทมความยาวแปรได
การจดการแฟมขอมลการสรางแฟมขอมลการปรบปรงรกษาแฟมขอมล
แนวคดเกยวกบการจดเกบขอมล
Database System Database System Concepts 8
แฟมขอมลหลกแฟมขอมลทมความถของการเปลยนแปลงขอมลไมบอยมากนก ตวอยางของแฟมหลก เชน แฟมหลกนกศกษาซงจะเกบขอมลของนกศกษา เชน รหส ชอ ทอย เปนตน
แฟมขอมลรายการเปลยนแปลงแฟมขอมลทมการเปลยนหรอแกไขของรายการขอมลภายในคอนขางบอยและทาแบบประจาตอเนองหรอเกดขนทกวน
ตวอยางเชน แฟมรายการลงทะเบยนของนกศกษา ซงจะมรายการ ลงทะเบยนในทกภาคเรยน
แฟมขอมลตาราง แฟมขอมลเรยงลาดบ
ประเภทของแฟมขอมล
Database System Database System Concepts 9
แบบเรยงลาดบ (Sequential File Structure) สามารถใชงานไดงายทสด เนองจากมลกษณะการจดเกบขอมลแบบเรยงลาดบเรคคอรดตอเนองกนไปเรอยๆ
การอานหรอคนคนขอมลจะขามลาดบไปอานตรงตาแหนงใดๆทตองการโดยตรงไมได เมอตองการอานขอมลทเรคคอรดใดๆโปรแกรมจะเรมอานตงแตเรคคอรดแรกไปเรอยๆจนกวาจะพบเรคคอรดทตองการ
การจดโครงสรางแฟมขอมล
Database System Database System Concepts 10
แบบสม (Direct/Random File Structure) เขาถงไดโดยตรง เมอตองการอานคาเรคคอรดใดๆสามารถทาการเลอกหรออานคานนไดทนท ไมจาเปนตองผานเรคคอรดแรกๆเหมอนกบแฟมขอมลแบบเรยงลาดบ ซงทาใหการเขาถงขอมลไดรวดเรวกวา
Database System Database System Concepts 11
การจดโครงสรางแฟมขอมล แบบลาดบเชงดรรชน (Index Sequential File Structure)
ISAM (Index Sequential Access Method) รวมเอาความสามารถในการเขาถงขอมลแบบสมและแบบเรยงตามลาดบเขาไวดวยกน
ใชแฟมดรรชน (index) ทาการคนหาหรอเขาถงขอมลโดยตรง หลกการทางานคลายกบรปแบบดรรชนทายเลมหนงสอ
Database System Database System Concepts 12
การจดโครงสรางแฟมขอมล
โครงสรางแฟม ขอด ขอเสย สอทใชเกบ
แบบเรยงลาดบ
- เสยคาใชจายนอยและใชงานไดงาย- เหมาะกบงานประมวลผลทมการอานขอมลแบบเรยงลาดบและในปรมาณมาก
- การทางานเพอคนหาขอมลจะตองเรมทาตงแตตนไฟลเรยงลาดบไปเรอย จนกวาจะหาขอมลนนเจอ ทาใหเสยเวลาคอนขางมาก - ไมเหมาะกบงานทตองแกไข เพม ลบขอมลเปนประจา เชนงานธรกรรมออนไลน
เทปแมเหลก เชน เทปคาสเซต
แบบสม
- สามารถทางานไดเรว เพราะมการเขาถงขอมลเรคคอรดทตองการได เลย- เหมาะสมกบการใชงานธรกรรมออนไลน หรองานทตองการแกไข เพม ลบ รากการเปนประจา
- ไมเหมาะกบงานประมวลผลทอานขอมลในปรมาณมาก - การเขยนโปรแกรมเพอคนหาขอมลจะซบซอน
จานแมเหลกเชน ดสเกตต, ฮารดดสกหรอ CD-ROM
แบบลาดบเชงดรรชน
- สามารถรองรบการประมวลผลไดทง 2 แบบคอ แบบลาดบและแบบสม- เหมาะกบงานธรกรรมออนไลน ดวยเชนเดยวกน
- สนเปลองเนอทในการจดเกบดรรชนทใชอางองถงตาแหนงของขอมล - การเขยนโปรแกรมเพอคนหาขอมลจะซบซอน - การทางานชากวาแบบสม และมคาใชจายสง
จานแมเหลก เชน ดสเกตต, ฮารดดสกหรอ CD-ROM
Database System Database System Concepts 13
การจดโครงสรางแฟมขอมล แบงแบบท 1
RAMROM
แบงแบบท 2Volatile Storage (ลบเลอนได)Non-Volatile Storage (ลบเลอนไมได)
ชนดของหนวยความจาหลก
Database System Database System Concepts 14
เขาถงขอมลไดโดยตรง เชนจานบนทกแมเหลกOptical Disk
ชนดของหนวยความจาสารอง
Database System Database System Concepts 15
เขาถงขอมลแบบเรยงลาดบ เชน เทปแมเหลก
ความจาเปนททาใหเกดการใชงานโดยระบบฐานขอมล ขอมล ฐานขอมล และระบบจดการฐานขอมล ประโยชนของระบบจดการฐานขอมล
แนวคดเกยวกบระบบฐานขอมล
Database System Database System Concepts 16
การประมวลผลกบระบบแฟมขอมลยงยาก แฟมขอมลไมมความเปนอสระของขอมล แฟมขอมลมความซบซอนมาก แฟมขอมลมความถกตองของขอมลนอย แฟมขอมลมความปลอดภยนอย ไมมการควบคมจากศนยกลาง
ความจาเปนททาใหเกดการใชงานโดยระบบฐานขอมล
Database System Database System Concepts 17
เปนการจดเกบขอมลในลกษณะแฟมขอมลทอสระจากกน
การจดการขอมลแบบแฟมขอมล
Database System Database System Concepts 18
แฟมขอมลอาจารย
แฟมขอมลวชาทเปดสอน
แฟมขอมลเกรด
ระบบเงนเดอน
ระบบตารางสอน
ระบบเกรด
รายงาน
รายงาน
รายงาน
File Processing Systems
Database System Database System Concepts 19
1. เกดความขดแยงของขอมลได 2. เกดความซาซอนของขอมล3. สนเปลองเนอทในการจดเกบขอมล4. ไมมการใชขอมลรวมกน ทาใหการแกไขเปลยนแปลงขอมลทาได
ยาก5. ขอมลไมมความนาเชอถอ6. ไมสามารถรกษาความปลอดภยไดทวถง
ขอเสยของการจดการขอมลแบบแฟมขอมล
Database System Database System Concepts 20
ขอมลมความซาซอนกน
ถาใชโปรแกรม spreadsheet
Database System Database System Concepts 21
RedundancyDuplication of data or the storing of the same data in more
than one place Difficulty accessing related data Limited security Size limitations
ขอเสยกการใชโปรแกรม spreadsheet
Database System Database System Concepts 22
แกไขขอเสยโดยใช … ระบบฐานขอมล
Database System Database System Concepts 23
ขอมลอาจารย
ขอมลตารางสอน
ขอมลเกรด
ระบบจดการฐานขอมล(DBMS)
ระบบเงนเดอน
ระบบตารางสอน
ระบบเกรด
รายงาน
รายงาน
รายงาน
Database
Database System Database System Concepts 24
Database ในการใชงานทแตกตางกน
Database System Database System Concepts 25 Database System Database System Concepts 26
File Database
ใช DBMS อยางเดยว เชน ใช Access ในการเกบขอมล
ใช DBMS รวมกบโปรแกรมอน ๆ เชน ใชภาษา PHP รวมกบ MySQL
ระบบฐานขอมล
Database System Database System Concepts 27
ฐานขอมล (Database) ประกอบดวยรายละเอยดขอมลทมความเกยวของกน ซงจะถกนามาใชงานในดานตางๆ โดยขอมลเหลานจะถกจดเกบไวใหเปนศนยกลางอยางมระบบ ซงสามารถเรยกใชงานรวมกนได เพอประโยชนในการจดการและการเรยกใชขอมลไดอยางมประสทธภาพ
ความหมายของระบบฐานขอมล
Database System Database System Concepts 28
1. ฮารดแวร (Hardware)2. ซอฟตแวร (Software) หรอ โปรแกรม (Program)3. ขอมล (Data)4. บคลากร (People)5. ขนตอนการปฏบตงาน (Procedure)
องคประกอบของระบบฐานขอมล
Database System Database System Concepts 29
หมายถง ฮารดแวรหรออปกรณตางทใชเพอชวยใหระบบฐานขอมลสามารถทางานไดอยางมประสทธภาพ โดยมสงสาคญคอหนวยความจา (Memory)CPUอปกรณนาเขา อปกรณแสดงผล
องคประกอบท 1 : ฮารดแวร (Hardware)
Database System Database System Concepts 30
INPUT UNIT OUTPUT UNIT
MEMORY
SECONDARY STORAGE
CENTRAL PROCESSING UNIT
หมายถง ซอฟตแวร ทใชเพอเกบขอมล หรอการจดการขอมลในรปแบบตางๆ โดยแตละระบบจะใช โปรแกรมทแตกตางกนไปตามลกษณะการใชงาน
แตทกระบบจะตองมโปรแกรมททาหนาทควบคมดแลการสราง, การเรยกใชขอมล, การจดทารายงาน, การปรบเปลยนแกไขโครงสราง ฯลฯ ทเรยกวา
“ระบบจดการฐานขอมล”
(Database Management System : DBMS)
องคประกอบท 2 : ซอฟตแวร (Software)
Database System Database System Concepts 31
หมายถง โปรแกรมททาหนาทจดการขอมลในฐานขอมล ทงการสราง, การเรยกใชงาน, การเปลยนแปลงโครงสราง และยงความคมระบบรกษาความปลอกภยของฐานขอมลอกดวย
โดยระบบจดการฐานขอมลจะเปนสอกลางระหวางผใชงานโปรแกรมประยกตตางๆ กบระบบฐานขอมลทตดตออย
ระบบจดการฐานขอมล (DBMS)
Database System Database System Concepts 32
ฐานขอมล
ระบบจดการฐานขอมล(DBMS)
โปรแกรมประยกตตางๆ ทผใชงานใช
ระบบจดการฐานขอมล (DBMS)
Database System Database System Concepts 33 Database System Database System Concepts 34
Architecture of a DBMS
1. ชวยกาหนดและเกบโครงสรางฐานขอมล (Define and Store Database Structure)
หนาทของระบบจดการฐานขอมล (DBMS)
Database System Database System Concepts 35
ID NAME ADDRESS Telephone1 Somchai 15/548 01-95741262 Monton 17/54 02-985-65743 Ladawan 58/574 01-900-5742
ฐานขอมล
2. การบรรจขอมลลงฐานขอมล (Load Database)
หนาทของระบบจดการฐานขอมล (DBMS)
Database System Database System Concepts 36
ID NAME ADDRESS Telephone1 Somchai 15/548 01-95741262 Monton 17/54 02-985-65743 Ladawan 58/574 01-900-5742 ฐานขอมล
3. เกบและดแลขอมล (Store and Maintain Data)
หนาทของระบบจดการฐานขอมล (DBMS)
Database System Database System Concepts 37
DBMSStore and Maintain Data
4. ประสานงานกบระบบปฏบตการ (Operating System)
หนาทของระบบจดการฐานขอมล (DBMS)
Database System Database System Concepts 38
ฐานขอมล
Operating System Application SoftwareDBMS
5. ชวยควบคมความปลอดภย (Security Control)
หนาทของระบบจดการฐานขอมล (DBMS)
Database System Database System Concepts 39
ฐานขอมล
DBMS
Authorize USER
Non-Authorize USER
6. การจดทาขอมลสารองและการก (Backup and Recovery)
หนาทของระบบจดการฐานขอมล (DBMS)
Database System Database System Concepts 40
Backup Database
ABCD 12345
ABCD 12345
Backup
Recovery
Database
7. ควบคมการใชงานพรอมกนของผใชในระบบ (Concurrency Control)
หนาทของระบบจดการฐานขอมล (DBMS)
Database System Database System Concepts 41
ฐานขอมล
DBMS
USER 1
USER 2
USER 3
U1 : U3 : U2
8. ควบคมความบรณภาพของขอมล (Integrity Control)
หนาทของระบบจดการฐานขอมล (DBMS)
Database System Database System Concepts 42
ฐานขอมลการจายเงนเดอน
ฐานขอมลประวต
IntegrityControl
9. ทาหนาทจดทาพจนานกรมขอมล (Data Dictionary)
หนาทของระบบจดการฐานขอมล (DBMS)
Database System Database System Concepts 43
Database
ชอตาราง
ชอฟลด
คยตาง
พจนานกรม เพอเกบรายละเอยดทเกยวของกบฐานขอมล
หมายถง ขอมลหรอสงตางๆ ทตองการนามาจดเกบลงในฐานขอมล เพอใหมการจดการอยางเปนระบบ โดยขอมลตางๆ จะถกจดการในแตละระดบ โดยผทใชฐานขอมลจะมองภาพขอมลทแตกตางกนออกไป
องคประกอบท 3 : ขอมล (Data)
Database System Database System Concepts 44
ขอมล
USER 1
USER 2
1. ผใชทวไป (User)บคลากรทใชฐานขอมล เชน พนกงานจองตว
2. พนกงานปฏบตการ (Operator)ผปฏบตการดานประมวลผลการปอนขอมล
3. นกวเคราะหและออกแบบระบบ (System Analyst)ผวเคราะหระบบฐานขอมล และออกแบบระบบงานทจะนามาใช
องคประกอบท 4 : บคลากร (People)
Database System Database System Concepts 45
4. ผเขยนโปรแกรมประยกต (Programmer)ผทเขยนโปรแกรมเพอใหจดเกบขอมล การเรยกใชขอมลตามความตองการของผใชงาน
5. ผบรหารฐานขอมล (Database Administrator : DBA)ผททาหนาทบรหารและควบคมการบรหารงานระบบฐานขอมล โดยเปนผตดสนใจ, กาหนดนโยบาย ตางๆ ในการใชงานระบบฐานขอมล
องคประกอบท 4 : บคลากร (People)
Database System Database System Concepts 46
หมายถง ขนตอนหรอวธการตางๆ ในระบบฐานขอมล โดยจะเปนขนตอนการปฏบตงานตางๆ ทจะตองเปนไปตามขนตอนทกาหนด เพอใหการทางานของระบบฐานขอมลเปนไปอยางถกตอง และมประสทธภาพ ซงกจะมทงขนตอนในสภาวะปกต และขนตอนปฏบตในขณะระบบเกดปญหา (Failure)
องคประกอบท 5 : ข นตอนการปฏบตงาน (Procedure)
Database System Database System Concepts 47
1. หลกเลยงความขดแยงของขอมลได
ขอดของการมระบบฐานขอมล
Database System Database System Concepts 48
ขอมลพนกงาน
ฐานขอมลพนกงาน
ขอมลพนกงาน
ฐานขอมลเงนเดอน
เมอขอมลพนกงานเปลยนไปจะทาใหเกดความขดแยง
ของขอมล
การทางานแบบแฟมขอมล การทางานแบบฐานขอมล
ฐานขอมลพนกงาน
ทะเบยนประวตพนกงาน
ระบบเงนเดอนพนกงาน
2. สามารถใชขอมลรวมกนได
ขอดของการมระบบฐานขอมล
Database System Database System Concepts 49
- ฐานขอมลพนกงาน- ฐานขอมลงานของบรษท
-ฐานขอมลดานบญช
ระบบทะเบยนประวตพนกงาน
ระบบเงนเดอนพนกงาน
ระบบวางแผนงาน
3. ลดความซาซอนของขอมลได
ขอดของการมระบบฐานขอมล
Database System Database System Concepts 50
ขอมลพนกงาน
ฐานขอมลพนกงาน
ขอมลพนกงาน
ฐานขอมลเงนเดอน
ขอมลพนกงานมความซาซอนกน
การทางานแบบแฟมขอมล การทางานแบบฐานขอมล
ฐานขอมลพนกงาน
ทะเบยนประวตพนกงาน
ระบบเงนเดอนพนกงาน
4. รกษาความถกตองและความเชอถอไดของขอมล
ขอดของการมระบบฐานขอมล
Database System Database System Concepts 51
- ฐานขอมลพนกงาน- ฐานขอมลงานของบรษท
-ฐานขอมลดานบญช
ระบบทะเบยนประวตพนกงาน
ระบบเงนเดอนพนกงาน
ระบบวางแผนงาน
5. สามารถกาหนดความเปนมาตรฐานเดยวกน
ขอดของการมระบบฐานขอมล
Database System Database System Concepts 52
- ฐานขอมลพนกงาน- ฐานขอมลงานของบรษท
-ฐานขอมลดานบญช
ระบบทะเบยนประวตพนกงาน
ระบบเงนเดอนพนกงาน
ระบบวางแผนงาน
ใชมาตรฐานเดยวกน
6. สามารถกาหนดระบบรกษาความปลอดภยได
ขอดของการมระบบฐานขอมล
Database System Database System Concepts 53
ฐานขอมล
Authorize USER
Non-Authorize USER
6. มความเปนอสระของขอมลและโปรแกรม
ขอดของการมระบบฐานขอมล
Database System Database System Concepts 54
ระบบทะเบยนประวตพนกงาน
ระบบเงนเดอนพนกงาน
ระบบวางแผนงาน- ฐานขอมลพนกงาน
- ฐานขอมลงานของบรษท-ฐานขอมลดานบญช
1. มตนทนสง
ขอเสยของการมระบบฐานขอมล
Database System Database System Concepts 55
HardwareSoftware บคลากร
2. มความซบซอน
ขอเสยของการมระบบฐานขอมล
Database System Database System Concepts 56
ฐานขอมล
System 1
Program 1.1System 2
Program 2.1ID NAME ADDRESS Telephone1 Somchai 15/548 01-95741262 Monton 17/54 02-985-65743 Ladawan 58/574 01-900-5742
3. เสยงตอการหยดชะงกของระบบ
ขอเสยของการมระบบฐานขอมล
Database System Database System Concepts 57
ฐานขอมล
USER 1
USER 2
USER 3
USER 4
USER 5
USER 6
1. ระดบภายนอกหรอ วว (External Level หรอ View)2. ระดบแนวคด (Conceptual Level)3. ระดบภายใน (Internal หรอ Physical Level)
การแบงระดบของขอมล เพอใหการใชขอมลของผใชงานเปนไปอยางเหมาะสม
สถาปตยกรรมฐานขอมล
Database System Database System Concepts 58
เ ปนระดบของข อมลท เ ปนภาพทผ ใ ช ง านมอง เ หน (View) เคารางของขอมลในระดบนเกดจากภาพและความตองการของผใชงาน
Database System Database System Concepts 59
ระดบภายนอกหรอวว (External Level, View)
EMPNUM EMPNAME HIREDATE SALARY POSITION DEPNO MGRNO
DEPNO DEPNAME LOCATION
PROJNO PROJDESC STARTDATE ENDDATA BUDGET
PROJNO EMPNO HOURS
EMPLOYEE
DEP
PROJECT
PROJWORK
ประกอบดวยเคารางทอธบายถงฐานขอมลม Entity ใดบางโครงสรางของขอมลความสมพนธของขอมลกฎเกณฑและขอจากดตางๆ
โดยจะผานการวเคราะหจาก นกวเคราะหและออกแบบระบบ และผบรหารฐานขอมล (DBA)
Database System Database System Concepts 60
ระดบแนวคด (Conceptual Level)
ประกอบดวยเคารางทเกยวกบการจดเกบขอมลจรงๆ วามโครงสรางในการจดเกบอยางไร รวมถงวธการเขาถงขอมล ความสมพนธระหวางขอมลระดบตางๆ ซงเปนการแปลความหมายจากระดบหนงไปยงอกระดบหนง เรยกวา การแปลงสง (Mapping) โดยแบงเปน 2 ลกษณะ
การแปลงสงระหวางระดบแนวคดและระดบภายใน (Conceptual/Internal Mapping)
การแปลงสงระหวางระดบภายนอกและระดบแนวคด (External/Conceptual Mapping)
Database System Database System Concepts 61
ระดบภายใน (Internal or Physical Level)
Database System Database System Concepts 62
สถาปตยกรรมฐานขอมล
Database System Database System Concepts 63
สถาปตยกรรมฐานขอมล คอความสามารถในการเปลยนแปลงเคาราง (Schema) ในระดบหนงของฐานขอมลโดยไมมผลกระทบตอสกมาในระดบสงขนไป เปนแนวคดในการพฒนาโปรแกรมใหเปนอสระจากการเปลยนแปลงโครงสรางขอมล
Database System Database System Concepts 64
ความเปนอสระของขอมล (Data Independence)
ความเปนอสระของขอมลในเชงตรรกะ (Logical Data Independence) เปนความอสระของขอมลในระดบแนวคดกบระดบภายนอก นนคอถามการเปลยนแปลงขอมลในระดบแนวคดจะไมมผลตอระดบภายนอก
ความเปนอสระของขอมลในเชงกายภาพ (Physical Data Independence) เปนความอสระของขอมลในระดบภายในกบระดบแนวคด นนคอ ถามปรบปรงเคารางในระดบภายในโดยจะกระทบตอระดบภายแนวคดและระดบภายนอก
Database System Database System Concepts 65
ความเปนอสระของขอมล (Data Independence) ภาษานยามขอมล (Data Definition Language : DDL) เปนภาษาทใชในการกาหนด Schema
ภาษาจดการขอมล (Data Manipulation Language : DML) เปนภาษาทใชในการจดการขอมลภายในระบบ ฐานขอมล
ภาษาทใชในการควบคมขอมล (Data Control Language : DCL) เปนภาษาทใชในการควบคมความถกตองและ ความปลอดภยของขอมล
Database System Database System Concepts 66
ภาษาทใชในระบบของฐานขอมล
เปนภาษาทใชในการกาหนดสกมาของฐานขอมล (Database Schema) ซงไดแก คาสงทใชกาหนดโครงสรางการออกแบบฐานขอมล คาสงทเขยนดวย DDL จะเกดเปน พจนานกรมขอมล
ตวอยาง คาสงCREATE TABLE, ALTER TABLE, RENAME TABLE, DROP TABLE
Database System Database System Concepts 67
ภาษานยามขอมล (Data Definition Language)
การจดการขอมล หมายถง การคนคนขอมลจากฐานขอมล ประกอบดวย
การเพมขอมลลงในฐานขอมล การเปลยนแปลงแกไขขอมลในฐานขอมล การลบขอมลทมอยในฐานขอมล ตวอยาง คาสง
SELECT, INSERT, UPDATE, DELETE
Database System Database System Concepts 68
ภาษาจดการขอมล (Data Manipulation Language)
เปนภาษาทใชในการควบคมความถกตองของขอมล ควบคมภาวะการใชขอมลพรอมกนจากผใชหลายคนในเวลาเดยวกน และคาสงควบคมความปลอดภยของขอมล การใหสทธอานาจแกผใชแตละคนในการเรยกดหรอปรบปรงขอมล
ตวอยาง คาสงGRANT, REVORK
Database System Database System Concepts 69
ภาษาทใชในการควบคมขอมล (Data Control Language)
ฐานขอมลแบบลาดบชน (Hierarchical Data Model) ฐานขอมลแบบเครอขาย (Network Data Model) ฐานขอมลแบบสมพนธ (Relational Data Model)
Database System Database System Concepts 70
แนวคดฐานขอมลแบบตางๆ
Database System Database System Concepts 71
Data Models ฐานขอมลมความสมพนธระหวางขอมลในรปแบบของ โครงสรางตนไม ซงมโครงสรางในแบบลาดบชน
Database System Database System Concepts 72
ฐานขอมลแบบลาดบช น
ลกษณะเดน เปนระบบฐานขอมลทมระบบโครงสรางซบซอนนอยทสด มคาใชจายในการจดสรางฐานขอมลนอย ลกษณะโครงสรางเขาใจงาย เหมาะสาหรบงานทตองการคนหาขอมลแบบมเงอนไขเปนระดบและออกงานแบบเรยงลาดบตอเนอง
ขอจากด มโอกาสเกดความซาซอนมากทสดขาดความสมพนธระหวางแฟมขอมลในรปเครอขาย มความคลองตวนอยกวา เพราะตองอานแฟมทเปนตนกาเนดกอน
Database System Database System Concepts 73
ฐานขอมลแบบลาดบช น มโครงสรางของขอมลแตละแฟมขอมลมความสมพนธคลายรางแห โดยมลกษณะโครงสรางคลายกบโครงสรางแบบลาดบชน แตแฟมขอมลอาจมความสมพนธกนไดมากกวา 1 ความสมพนธ
Database System Database System Concepts 74
ฐานขอมลแบบเครอขาย
ลกษณะเดน เหมาะสาหรบงานทแฟมขอมลมความสมพนธแบบเครอขายมโอกาสเกดความซาซอนของขอมลนอยกวาแบบลาดบชนการคนหาขอมลมเงอนไขไดมากและกวางกวาแบบลาดบชน
ขอจากด ปองกนความลบของขอมลไดยากมคาใชจายและสนเปลองมากกวาถาความสมพนธมมากเกนไป จะทาใหออกแบบฐานขอมลมความยงยากซบซอน
Database System Database System Concepts 75
ฐานขอมลแบบเครอขาย โครงสร างของฐานขอมลอย ในรปของร เลชน หรอ ตาราง ประกอบดวยแถว (Tuple) และสดมภ (Attribute)
การควบคมความถกตองTuple มขอมลไมซากนTuple ไมมลาดบจากบนลงลางAttribute ไมมลาดบจากซายไปขวาคาของ Attribute ทกคาจะตองเปน atomicity
ตวอยางของภาษาปฏบตการ คอ SQL
Database System Database System Concepts 76
ฐานขอมลแบบสมพนธ (Relational Data Model)
Database System Database System Concepts 77
ฐานขอมลแบบสมพนธ (Relational Data Model)
Database System Database System Concepts 78
ฐานขอมลแบบสมพนธ (Relational Data Model)
ลกษณะเดน เหมาะสาหรบงานเลอกดขอมลแบบหลายฟลดขอมล ปองกนขอมลถกทาลายหรอแกไขไดดการเลอกดขอมลทาไดงาย
ขอจากดแกไขปรบปรงขอมลทาไดยากมคาใชจายของระบบสงมาก
Database System Database System Concepts 79
ฐานขอมลแบบสมพนธ (Relational Data Model) Database
Structure that can store information about: Different categories of informationRelationships between those categories of information
EntityPerson, place, object, event, or ideaEntities for Premiere Products: sales reps, customers, orders,
and parts
Database
Database System Database System Concepts 80
AttributeCharacteristic or property of an entityExample: Customer has name, street, city, etc.May also be called a field or column
RelationshipAssociation between entitiesOne-to-many relationship
Each rep is associated with many customersEach customer is associated with a single rep
Database
Database System Database System Concepts 81
Entities and attributes
Database System Database System Concepts 82
Entities and attributes
Database System Database System Concepts 83
Sample data
Database System Database System Concepts 84
1. ความถกตองของขอมล2. ขอมลตองไมซาซอนกน
Database System Database System Concepts 85
หวใจของ Database
Database System Database System Concepts 86
Note
Relational Data Model
ฐานขอมลเชงสมพนธ(Chapter 2)
Database System อ.เอญ สรยะฉาย (ENS)
ภาควชาวทยาการคอมพวเตอรและสารสนเทศมหาวทยาลยเทคโนโลยพระจอมเกลาพระนครเหนอ
Data Models
Database System Relational Data Model 2
Database System Relational Data Model 3
Relational Data Model แนวคดเรองโมเดลเชงสมพนธ
ความสมพนธของฐานขอมลจะอยในรปแบบของตารางชอของตารางคอ ชอของความสมพนธแตละคอลมนของตารางความสม พนธ เ รยกว า แอททรบ ว
(Attribute) ของความสมพนธคาและขอบเขตของขอมลของแอททรบวเรยกวา โดเมน(Domain)แตละแถวของตารางความสมพนธ เรยกวา แถว หรอ ทเพล(tuple)ของความสมพนธ
Database System Relational Data Model 4
Key Rule
Database System Relational Data Model 5
Record, Field Relational Data Model
Database System Relational Data Model 6
Relational Data Model
Database System Relational Data Model 7
สรปโดยใชหลกการทางคณตศาสตรไดวาโดเมน D คอ ชดของขอมลทมคาเฉพาะเจาะจงแอททรบว A คอ ตวแทนของโดเมน เขยนไดเปน dom(A) รปแบบของความสมพนธ R เขยนไดเปน R(A1,A2,…,An)เมอกลาวถง R จะหมายถง {A1,A2,…,An}
ความสมพนธ r คอ กลมแถวทเปน subset ของกลมแอททรบว dom(A1) x dom(A2) x … x dom(An)
หนงแถวในความสมพนธ r เขยนไดเปน t(A1,A2,…,An) และเปน subset หนงของ dom(A1) x dom(A2) x … x dom(An)
Key Rule
Database System 8Relational Data Model
คณสมบตของความสมพนธ ลาดบของแถวและคอลมนไมทาใหขอมลเปลยนไปจะไมมสองแถวทซากนแอททรบวทกตวจะเปน atomic เทานนดกรของความสมพนธ คอ จานวนแอททรบวทมในความสมพนธนน
Key Rule
Database System 9
Name position age height weightสเมธ กองหนา 26 183 82ผลด ปกซาย 21 175 78ชาตชาย กองหลง 30 169 71กองเกยรต กองกลาง 24 180 78
Position age name height weightกองหนา 26 สเมธ 183 82กองหลง 30ชาตชาย 169 71กองกลาง 24กองเกยรต 180 78ปกซาย 21ผลด 175 78
Relational Data Model
คย คย คอ สงทใชในการกาหนดความเปนเอกลกษณของแถวในความสมพนธ
ทาใหการเขาถงขอมลบนฐานขอมลเปนไปไดอยางรวดเรว ทาใหสามารถแยกแยะขอมลในฐานขอมลใหเปนไปอยางถกตอง
Key Rule
Database System 10Relational Data Model
คยหลก (Primary Key)คอ คยทใชในการอางถง Entity ในฐานขอมลสามารถเลอกไดจาก Record ใด ๆ กไดทไมมโอกาสซาซอนกนคยหลกเปนขอมลสาคญทจะทาใหการเขาถงขอมลเปนไปไดอยางรวดเรว
Key Rule
Database System 11
เลขประจาตวประชาชน ชอ นามสกล อาย3501552150054 สมชาย แซตง 253210077565107 สมศร แซอง 424110597520235 สมชาย แซตง 252156800512473 สมปอง แซแต 167812350453784 สมชย แซเลง 50
Relational Data Model
หากไมมขอมลใดเลยในฐานขอมลทเหมาะสมทจะเปนคยหลกควรทจะกาหนด Record ใหมสาหรบใหเปนคยหลกโดยเฉพาะ
Key Rule
Database System 12
ชอ นามสกล อาย เพศสมชาย แซตง 25 ชายสมศร แซอง 42 หญงสมชาย แซตง 25 ชายสมปอง แซแต 16 ชายสมชย แซเลง 50 ชาย
ID ชอ นามสกล อาย เพศ1 สมชาย แซตง 25 ชาย2 สมศร แซอง 42 หญง3 สมชาย แซตง 25 ชาย4 สมปอง แซแต 16 ชาย5 สมชย แซเลง 50 ชาย
Relational Data Model
คยรอง (Secondary Key) คอ คยเดยวหรอคยผสม เมอใชในการคนหาขอมลของความสมพนธจะได มากกวา 1 เรคคอรดค ย ร อ ง จ ง ไ ม จ า เ ป น ต อ ง เ ป นเอกลกษณ
คยนอก (Foreign Key) คอ คยเดยวหรอคยผสม ซงเปนคยทวไปของความสมพนธหนง แตเปนคยหลกของอกความสมพนธหนง เปนตวทใช ในการเชอมตอระหวางความสมพนธ
Key Rule
Database System 13Relational Data Model
ซปเปอรคย (Super key) คอ กลมของแอททรบวทสามารถนาไปคนหาขอมลทเปนเอกลกษณได
คยแขงขน (Candidate key) คอ ซปเปอรคยทมขนาดเลกทสด ทสามารถระบความแตกตางในแตละ Tuple ได
Key Rule
Database System 14Relational Data Model
พนฐาน Relational Algebra Relational Algebra ประกอบดวย Operations ตางๆขนพนฐาน Relational Calculus ใชหลกการทางตรรกะคณตศาสตรเพอจดการขอมล
Algebra Rule
Database System 15Relational Data Model
พนฐาน Relational AlgebraRelational Algebra เรยกอกอยางวา Relational query languageใชในการจดการขอมลโดยการระบตวกระทา กบความสมพนธทตองการจดการ ผลลพธทไดคอ ความสมพนธใหม
Algebra Rule
Database System 16Relational Data Model
ประเภทการใชงานของตวกระทากบความสมพนธ ม 2 รปแบบ คอ การใชงานขนพนฐาน
Selection เลอกแถวจากความสมพนธProjection เลอกเฉพาะคอลมนทตองการจากความสมพนธCross Product สามารถรวมความสมพนธได Set Difference หาความแตกตางระหวาง 2 ความสมพนธUnion เชอม 2 ความสมพนธเขาดวยกน
Algebra Rule
Database System 17Relational Data Model
การใชงานขนสง intersection joindivision
Algebra Rule
Database System 18Relational Data Model
ประเภทการกระทากบความสมพนธ ม 2 รปแบบ คอ Unary Operators คอ ตวกระทาทตองการเพยงความสมพนธเดยว เชน select, project และ rename
Binary Operators คอ ตวกระทาทตองการ 2 ความสมพนธ เชน union, intersection, difference และ cartesian product
Algebra Rule
Database System 19Relational Data Model
สญลกษณ σ(sigma) เปนการเลอกแถวจากความสมพนธตามเงอนไขทกาหนด ผลทไดอาจมจานวนทเพลตงแต 0 ถง จานวนทเพลทงหมด
Selection operation σ
Database System 20
Name position age height weightสเมธ กองหนา 26 183 82ผลด ปกซาย 21 175 78ชาตชาย กองหลง 30 169 71กองเกยรต กองกลาง 24 180 78
Name position age height weightสเมธ กองหนา 26 183 82กองเกยรต กองกลาง 24 180 78
SELECT *FROM Player WHERE height > 178
ความสมพนธ player
σheight>178(Player)
Relational Data Model
เลอกบางแถว จานวนหลกเทาเดม
Selection
Database System Relational Data Model 21
σPRICE<=2(yields)
yields
σP_CODE=311452(yields)
Selection
Database System Relational Data Model 22
salary > 10000 (Staff)
สญลกษณ π(pi) เลอกเฉพาะบางคอลมนทตองการจากความสมพนธ ผลลพธทไดจะไดจานวนแถวเทากบความสมพนธ r แตจานวนดกรอาจจะเทากนหรอนอยกวา
Projection operator π
Database System 23
Name position age height weightสเมธ กองหนา 26 183 82ผลด ปกซาย 21 175 78ชาตชาย กองหลง 30 169 71กองเกยรต กองกลาง 24 180 78
weight height82 18378 17571 16978 180
SELECT weight, height FROM Player
ความสมพนธ playerπweight, height(Player)
Relational Data Model
เลอกบางหลก จานวนแถวเทาเดม
Projection
Database System Relational Data Model 24
π PRICE(yields)
π P_DESCRIPT,PRICE(yields)
yields
π P_CODE,PRICE(yields)
Projection
Database System Relational Data Model 25
π staffNo, fName, lName, salary(Staff)
Selection with Projection
Database System 26
Name position age height weightสเมธ กองหนา 26 183 82ผลด ปกซาย 21 175 78ชาตชาย กองหลง 30 169 71กองเกยรต กองกลาง 24 180 78
Name positionสเมธ กองหนากองเกยรต กองกลาง
ความสมพนธ player
πname, position(σheight>178 and weight>75 (Player))
Relational Data Model
ความสมพนธ R1และ R2 ทมาทา Union ตองมรปแบบความสมพนธเหมอนกน เขยนได R1R2 โดยแถวทซากนจะปรากฏเพยงครงเดยว
Union
Database System 27
Name position age height weightสเมธ กองหนา 26 183 82ผลด ปกซาย 21 175 78ชาตชาย กองหลง 30 169 71กองเกยรต กองกลาง 24 180 78
Name position age height weightเอกพจน ปกขวา 20 180 78สชาต กองหนา 19 179 80ชาตชาย กองหลง 30 169 71พเชษฐ ปกซาย 22 177 76
Name position age height weightสเมธ กองหนา 26 183 82ผลด ปกซาย 21 175 78ชาตชาย กองหลง 30 169 71กองเกยรต กองกลาง 24 180 78เอกพจน ปกขวา 20 180 78สชาต กองหนา 19 179 80พเชษฐ ปกซาย 22 177 76
ความสมพนธ player1
ความสมพนธ player2
SELECT name, position, age, height, weight
FROM Player1 UNION SELECT name, position, age,
height, weight FROM Player2
Relational Data Model
Union
Database System Relational Data Model 28
ความแตกตางของความสมพนธ R1และ R2 เขยนไดในรป R1-R2
Difference
Database System 29
Name position age height weightสเมธ กองหนา 26 183 82ผลด ปกซาย 21 175 78กองเกยรต กองกลาง 24 180 78
SELECT name, position, age, height, weight
FROM Player1MINUS SELECT name, position, age,
height, weight FROM Player2
Name position age height weightสเมธ กองหนา 26 183 82ผลด ปกซาย 21 175 78ชาตชาย กองหลง 30 169 71กองเกยรต กองกลาง 24 180 78
Name position age height weightเอกพจน ปกขวา 20 180 78สชาต กองหนา 19 179 80ชาตชาย กองหลง 30 169 71พเชษฐ ปกซาย 22 177 76
ความสมพนธ player1
ความสมพนธ player2
Relational Data Model
Difference
Database System Relational Data Model 30
เปนความสมพนธทเกดจากแถวทซากนใน R1และ R2 เขยนไดเปนR1R2
Intersection
Database System 31
Name position age height weightชาตชาย กองหลง 30 169 71
SELECT name, position, age, height, weight
FROM Player1 INTERSECT SELECT name, position, age,
height, weight FROM Player2
Name position age height weightสเมธ กองหนา 26 183 82ผลด ปกซาย 21 175 78ชาตชาย กองหลง 30 169 71กองเกยรต กองกลาง 24 180 78
Name position age height weightเอกพจน ปกขวา 20 180 78สชาต กองหนา 19 179 80ชาตชาย กองหลง 30 169 71พเชษฐ ปกซาย 22 177 76
ความสมพนธ player1
ความสมพนธ player2
Relational Data Model
Intersection
Database System Relational Data Model 32
Cartesian Product คอ การนาแถวจากความสมพนธท 1 มาตอกบแถวจากความสมพนธท 2 จานวนแถวของความสมพนธผลลพธจะเทากบ จานวนแถวของความสมพนธท 1 X จานวนแถวของความสมพนธท 2
Cartesian Rule
Database System 33
SUBJECT STUDENT
SubjectIdcom101com102com211
SubjectId StudentIdcom101 s001com101 s002com102 s001com102 s002com211 s001com211 s002
StudentIds001s002
SUBJECT x STUDENT
Relational Data Model
Cartesian Product
Database System Relational Data Model 34
Join คอ การรวมขอมลจากหลายความสมพนธเขาดวยกนโดยท R และ S เปนความสมพนธ C เปนเงอนไข
Join
Database System 35
Name Office Dept Salaryสทธ 400 CS 45000โจ 220 Econ 35000เขยว 160 Econ 50000ตาล 420 CS 65000สทธ 500 Fin 45000
EMP Dept MainOffice PhoneCS 404 555-1212
Econ 200 555-1234Fin 501 555-4321Hist 100 555-9876
DEPTINFO
Name Office Dept Salary Dept MainOffice Phoneสทธ 400 CS 45000 CS 404 555-1212โจ 220 Econ 35000 Econ 200 555-1234เขยว 160 Econ 50000 Econ 200 555-1234ตาล 420 CS 65000 CS 404 555-1212สทธ 500 Fin 45000 Fin 501 555-4321
(EMP) Dept=Dept(DEPTINFO)
ผลลพธจากการ Join ความสมพนธ EMP และ DEPTINFO โดยใชเงอนไข Dept=Dept
R CS
Relational Data Model
Theta-Join คอ การทา Cartesian product โดยมเงอนไข สามารถใช Operator , ≤, ≥, , , เพอนาไปเปรยบเทยบ
Equi-Join คอ การ join แบบมเงอนไข “เทากบ” (=) เทานน เปนสวนหนงของ Theta-Join
Natural-Join คอ Equi-Join ท join ทกคอลมนทซากนจะถกขจดออกไป
Join
Database System 36Relational Data Model
How to Natural-Join
Database System Relational Data Model 37
Natural-Join : Step 1 , Product
Database System Relational Data Model 38
Natural-Join : Step 2 , Select
Database System Relational Data Model 39
Natural-Join : Step 3 , Project
Database System Relational Data Model 40
ใชในการหาขอมลบางประเภท เขยนเปน R1/R2 เชน การคนหาลกจางททางานอย 2 แผนก
Division
Database System 41
DEPTNAME
EMPDEPT
DNameCsFin
Name Deptสทธ CSโจ Econเขยว Econตาล CSสทธ Fin
EMPDEPT/DEPTNAMEสทธ
Relational Data Model
Division
Database System Relational Data Model 42
Database System Relational Data Model 43
Example # Sailors
Database System Relational Data Model 44
Example # Sailors
Database System Relational Data Model 45
Example # Sailors
Database System Relational Data Model 46
Example # Sailors
Database System Relational Data Model 47
Example # Sailors
Database System Relational Data Model 48
Condition Joins
Database System Relational Data Model 49
Equijoin
Database System Relational Data Model 50
Division
เปนการใชคณตศาสตรของตรรกะเขามาชวยในการคนหาขอมล คาตอบทไดคอแถวของขอมลจากความสมพนธททาใหคาของสมการคณตศาสตรมคาเปน จรง
สญลกษณแทนเงอนไข : รปแบบของควร {(A1,…,An) | p[(A1,…,An)]}คาตอบทได จะประกอบดวยแถวของขอมล (A1,…,An) ททาให สมการ p[(A1,…,An)] เปนจรง
Relational Calculus
Database System 51
,,,,,,
Relational Data Model
Employee(empNo, empName, position, birthDate, salary, branchNo)
ตองการขอมลทกแอททรบวของพนกงานทมเงนเดอน > 10,000 บาท
ตองการขอมลเฉพาะแอททรบว empNo, empName, salary ของพนกงานทมเงนเดอน > 10,000 บาท
Relational Calculus
Database System 52
RANGE OF E IS Employee{ E | E.salary > 10000 }
RANGE OF E IS Employee{ E.empNo, E.empName, E.salary, | E.salary > 10000 }
Relational Data Model
คอ ขอบงคบหรอเงอนไขในการอนญาตใหเกบเฉพาะขอมลทเหมาะสมลงในฐานขอมล เพอใหการเลอกขอมลจากฐานขอมลมความถกตอง
ประโยชนของการมเงอนไข ไดแก เพอตรวจสอบความผดพลาดในการกรอกขอมล เพอความถกตองในการปรบปรงขอมล เพอรกษาความถกตองของขอมลโดยรวม เพอบอกใหฐานขอมลทราบวาผใชตองการ เกบ หรอ คนหา ขอมล
Constraints
Database System 53Relational Data Model
ประเภทของเงอนไข Key constraint ม 2 รปแบบ คอ
คยหลก คาจะไมเปน NULL และถกใชเปนดชนในการเรยงลาดบเสมอUnique เปน key เอกลกษณอาจมเพม นอกเหนอจาก คยหลกโดยจะถกใชเปนดชนในการเรยงรายการตอจากคยหลก โดยอตโนมต
Referential Integrity เปนการอางองขอมลจากความสมพนธอนแอททรบวทอางองมาจากความสมพนธอนจะตองเปนคยหลกเสมอแอททรบวทถกอางองเรยกวา Foreign Key t1[Foreign Key] = t2[Primary Key]
Constraints
Database System 54Relational Data Model
Primary key & Foreign key
Database System Relational Data Model 55
Primary key & Foreign key
Database System Relational Data Model 56
1 Vendor ม ได หลาย Product
Primary key & Foreign key
Database System Relational Data Model 57
Check เปนการตรวจสอบคาของขอมลในความสมพนธใหเปนไปตามเงอนไข เพอกรองเฉพาะขอมลทเหมาะสมลงไปในฐานขอมล
Assertion เปนการตรวจสอบคาของขอมลโดยรวมของทกความสมพนธใหเปนไปตามเงอนไขถาเกดขอผดพลาดระบบจดการฐานขอมลกจะรายงานตอผใชดวยชอของ Assertion ทสรางไวทนท
Constraints
Database System 58Relational Data Model
Relational Algebra operation
Database System 59
Selection (σ) Projection (π)
Union Intersection Difference
R S R S R S
RS RS R-S
ab
123
R Sa 1a 2a 3b 1b 2b 3
R x S
Relational Data Model
Relational Algebra operation
Database System Relational Data Model 60
Relational Algebra operation
Database System Relational Data Model 61
Employee (SId, Name, Sex, Address, Salary, DeptNumber)Department (DeptNumber, DeptName, ManagerId)จงเขยน Relation Algebra เพอหา1. แสดงรายละเอยดของพนกงานหญงทงหมด2. แสดง Id และ ชอ ของพนกงานทงหมด3. แสดงรายการพนกงานทมเงนเดอนตงแต 30,000 บาท ขนไป4. หาชอพนกงาน ทมเงนเดอนตากวา 15,000 บาท5. หาชอและทอยของพนกงานททางานในแผนก Programmer
Test
Database System 62Relational Data Model
Entity-Relationship Model
โมเดลจาลองความสมพนธระหวางขอมล(Chapter 3)
Database System อ.เอญ สรยะฉาย (ENS)
ภาควชาวทยาการคอมพวเตอรและสารสนเทศมหาวทยาลยเทคโนโลยพระจอมเกลาพระนครเหนอ
เปนแบบจาลองขอมลซงแสดงถงโครงสรางของฐานขอมล และ รายละเอยดและความสมพนธระหวางขอมลในระบบในลกษณะทเปนภาพรวม
สญลกษณตางๆทใชใน E-R Model เรยกวา E-R Diagram Entity
หมายถง สงทสนใจสามารถระบไดในความเปนจรง และตองการเกบรวบรวมขอมลทเกยวของดวยไวในฐานขอมล โดยตวอยางของ Entity ประเภทตาง ๆ เชน บคคล สถานท สงของ หรอเหตการณ มดงนบคคล ไดแก พนกงาน ผปวย และ นกศกษา เปนตนสถานท ไดแก เขต จงหวด และ ภาค เปนตนเหตการณ ไดแก การลงทะเบยนเรยน ความชานาญ เปนตน
E-R Model
Database System Entity-Relationship Model 2
1. Strong Entity (เอนทตปกต) เปน Entity ทเกดขนไดดวยตวเอง การคงอยของ Entity นไมเกยวของกบ Entity อน สามารถมคณสมบต Identity ไดตวเอง
2. Weak Entity (เอนทตออนแอ) Entity ทมการคงอยเกยวของกบ Entity อนในระบบฐานขอมล
Entity
Database System Entity-Relationship Model 3
นกศกษา
วชาทสอน
Attribute - ขอมลทแสดงคณสมบตหรอคณลกษณะของEntityหรอความสมพนธ
1. Simple Attribute คอ Attribute ทไมสามารถแบงแยกยอยลงไปไดอก
2. Composite Attribute คอ Attribute คอสามารถแบงแยกยอยลงไปไดอก
Attribute
Database System Entity-Relationship Model 4
3. Key Attribute หมายถง Attribute หรอกลมของ Attribute ทมคาของขอมลในแตละสมาชกของ Entity ไมซากน
Attribute
Database System Entity-Relationship Model 5
4. Single-Valued Attribute หมายถง Attribute ทมคาของขอมลในแตละสมาชกของเอนทตไดเพยง คาเดยว
5. Multi-Valued Attribute หมายถง Attribute ทสามารถมคาของขอมลในแตละสมาชกของ Entity ไดหลายคา
6. Derived Attribute หมายถง Attribute ทคาของขอมลไดมาจากการนา คาของขอมลใน Attribute อนทาการคานวณ
Attribute
Database System Entity-Relationship Model 6
หมายถง Entity ทแสดงความสมพนธระหวาง 2 Entity ขนไป
ความสมพนธนนอาจม Attribute ของตนเองกได
ความสมพนธระหวาง Entity ใด ๆ อาจมมากกวาหนงความสมพนธกได
Relationship
Database System Entity-Relationship Model 7
สงกด นกศกษาคณะ
การจดการ ชดวชาอาจารย
การสอน
Entity ทเกยวของกบความสมพนธเรยกวา Participant ของความสมพนธ
1. Total Participation เปนความสมพนธททกสมาชกใน Entity หนงทมความสมพนธกบขอมลในอกหนง Entity
2. Partial Participation เปนความสมพนธทบางสมาชกใน Entity หนงเทานนจะมขอมลใน Attribute หนงทมความสมพนธกบขอมลในอกหนง Entity
Relationship
Database System Entity-Relationship Model 8
สงกด อาจารยคณะ
ผแทน นกศกษาคณะ
1. ความสมพนธแบบหนงตอหนง (one to one relationship) ความสมพนธทแตละสมาชกใน Entity หนงม ความสมพนธกบสมาชกในอกหนง Entity เพยงสมาชกเดยว
2. ความสมพนธแบบหนงตอกลม (one to many relationship) ความสมพนธทแตละสมาชกใน Entity หนงมความสมพนธกบสมาชกในอกหนง Entity มากกวาหนงสมาชก
3. ความสมพนธแบบกลมตอกลม (many to many relationship) ความสมพนธทสมาชกมากกวาหนงสมาชกใน Entity หนงมความสมพนธกบสมาชกในอกหนงEntity มากกวาหนงสมาชก
ความสมพนธระหวาง Entity
Database System Entity-Relationship Model 9
คณบด คณะอาจารย1 1
สงกด นกศกษาคณะ1 M
ลงทะเบยน ชดวชานกศกษาM M
1:M Relationship
Database System Entity-Relationship Model 10
Existence Dependency เปนความสมพนธระหวาง Entity ปกตและเอนทตออนแอ
ความสมพนธแบบ Recursive เปนความสมพนธทเกดจาก Entity เพยง Entity เดยว
Composite Entities เปน Entity ทถกสรางขนมาเพอใชในการแปลงความสมพนธระหวาง Entity แบบกลมตอกลมใหเปนความสมพนธแบบหนงตอกลม
Relationship
Database System Entity-Relationship Model 11
ตองสราง composite entity
M:M Relationship
Database System Entity-Relationship Model 12
M:M Relationship
Database System Entity-Relationship Model 13
M:M Relationship
Database System Entity-Relationship Model 14
M:M Relationship
Database System Entity-Relationship Model 15
M:M Relationship
Database System Entity-Relationship Model 16
Recursive
Database System Entity-Relationship Model 17
1. ความสมพนธแบบ Binary เปนความสมพนธทแสดงความสมพนธระหวางสอง Entity ใด ๆ
2. ความสมพนธแบบ N–ary เปนความสมพนธทแสดงความสมพนธระหวางสอง Entity ขนไป
จานวน Entity ทเก ยวของ
Database System Entity-Relationship Model 18
Prescription = ใบสงยา Patient = คนไข
n-ary
Database System Entity-Relationship Model 19
n-ary
Database System Entity-Relationship Model 20
E-R Diagram
Database System Entity-Relationship Model 21
Crow's Foot
Database System Entity-Relationship Model 22
Crow's Foot
Database System Entity-Relationship Model 23
Crow's Foot
Database System Entity-Relationship Model 24
Crow's Foot
Database System Entity-Relationship Model 25
Relationship
Database System Entity-Relationship Model 26
SCHOOL
STUDENTEach school enrolls
at least zero
and at most many
students
Each student attends
at least one
and at most one
school
A
A
A
A
B
B
B
B
Each instance of A is related to a minimum ofzero and a maximum of one instance of B
Each instance of B is related to a minimum ofone and a maximum of one instance of A
Each instance of A is related to a minimum ofone and a maximum of many instances of B
Each instance of B is related to a minimum ofzero and a maximum of many instances of A
adviser StudentTeacher (5,n) (1,1)
สญลกษณทใชในการเขยน E-R Diagram
Database System Entity-Relationship Model 27
Chen and Crow’s Foot Model
Database System Entity-Relationship Model 28
The Chen and Crow’s Foot notations
Database System Entity-Relationship Model 29
The Chen and Crow’s Foot notations
Database System Entity-Relationship Model 30
Database System Entity-Relationship Model 31
1. การศกษารายละเอยดและลกษณะหนาทงานของระบบศกษาและรวบรวมรายละเอยด เกยวกบลกษณะหนาทงานของ
ระบบ ขอมลทเกยวของ ขนตอนในการทางาน2. การกาหนด Entity ทควรมในระบบฐานขอมล
นารายละเอยดในขอ 1 มาทาการกาหนด Entity ทจาเปนตองมอยในระบบฐานขอมล
3. การกาหนดความสมพนธระหวาง Entity 3.1 การกาหนดคณลกษณะของ Entity - แตละ Entity ควรประกอบดวย
Attribute ใดบาง3.2 การกาหนดคยหลกของแตละ Entity - เพอใหแตละสมาชกใน Entity สามารถมคณสมบตเปนเอกลกษณเฉพาะได
3.3 การนาสญลกษณทใชใน E-R Model มาอธบายความสมพนธระหวางขอมล
การออกแบบฐานขอมลดวยอ-อารโมเดล
Database System Entity-Relationship Model 32
การศกษารายละเอยดและลกษณะหนาทงานของระบบ
สถาบนการศกษาแหงหนงเปดทาการสอนโดยแบงเปน 3 คณะ คอ คณะเกษตร คณะวทยาศาสตร และคณะศกษาศาสตร ในแตละคณะประกอบดวยภาควชาตาง ๆ และในแตละภาควชาประกอบดวยอาจารยไดหลายคน โดยอาจารยแตละคนจะสงกดภาควชาใดภาควชาหนงเทานน และมอาจารยเพยงคนเดยวเทานนทอยในตาแหนงหวหนาภาควชาทาหนาทบรหารงานภาควชา โดยในแตละภาควชาจะเปดทาการสอนไดหลายชดวชา ซงอาจารยแตละคนจะตองสอนไมนอยกวา 2 ชดวชา
ตวอยางการออกแบบฐานขอมลดวยอ-อารโมเดล
Database System Entity-Relationship Model 33
Note
Database System Entity-Relationship Model 34
Fan Trap ทาใหเกดความไมชดเจนในการแสดงขอมลทสนใจออกมาไมสามารถตอบคาถามบางคาถามได เชน อาจารยคนใดสงกดภาควชาใด?
ปญหาจากการออกแบบฐานขอมลดวยอ-อารโมเดล
Database System Entity-Relationship Model 35
เชน สถาบนการศกษาแหงหนงเปดทาการสอนหลายคณะ โดยในแต ล ะ คณะป ร ะ กอบด ว ยภาควชาตาง ๆ หลายภาควชาและอาจารยหลายคน ซงอาจารยแตละคนจะสงกดคณะใดคณะหนงเทานน
แนวทางในการแกปญหาอาจทาโดยการปรบความสมพนธระหวางแตละEntity ใหม
Fan Trap
Database System Entity-Relationship Model 36
เปนโมเดลทนาแนวคดพนฐาน E-R Model มาเพมเตมในเรองของความสมพนธแบบ Supertype / Subtype
แนวคดของ Generalization / Specialization ทใชสรางความสมพนธของ Supertype / Subtype
กระบวนการถายทอดคณสมบต (Attribute inheritance)
EER (Enhanced E-R Model)
Database System Entity-Relationship Model 37
Supertype คอ รปแบบของ Entity ทเปนตนแบบของ Entity อน ๆ โดย Supertype จะประกอบไปดวย Subtype ตาง ๆ
Subtype คอ Entity ทมคณสมบตทแตกตางกนในกลมสมาชกของ Subtype ดวยกน แตจะมคณสมบตพนฐานทข นอยกบ Supertype
Supertype , Subtype
Database System Entity-Relationship Model 38
EMPLOYEE
HOURLYEMPLOYEE
SALARIEDEMPLOYEE CONSULTANT
Emp_No
Emp_Name Address
Date_Start
Hourly_Rate Annual_Salary Stock_Option Contract_No Billing_Rate
Supertype/subtype relationships
Database System Entity-Relationship Model 39
Mapping Supertype/subtype relationships
Database System Entity-Relationship Model 40
HOURLY EMPLOYEE (Emp_No, Emp_Name, Address, Date_Start, Hourly_Rate)SALARIED EMPLOYEE (Emp_No, Emp_Name, Address, Date_Start, Annual_Salary, Stock_Option)CONSULTANT (Emp_No, Emp_Name, Address, Date_Start, Contract_No, Billing_Rate)
Subtype จะไดรบการถายทอดคณสมบตทก ๆ อยางจาก Supertypeขอด ทาใหไมตองกาหนดแอตตรบวตซาซอนใน Subtype อกตอไป คณสมบตเฉพาะของแตละ Subtype กจะมความหมายแตกตางกนตามความเปนจรง
การสรางความสมพนธระหวาง Subtype กบ Supertype Generalization เปนการมองหาสงทเหมอนกนใน Subtype (Bottom-up
approach) Specialization เปนการมองหาจดทแตกตางกนระหวางเอนทต (Top-down
approach)
Attribute Inheritance
Database System Entity-Relationship Model 41
Total Specialization Rule – Supertype จะตองมความสมพนธกบ Subtype ใด Subtype หนง สญลกษณ
Partial Specialization Rule – Supertype อาจจะมหรอไมมความสมพนธใด ๆ กบ Subtype กได สญลกษณ
Completeness Constraints
Database System Entity-Relationship Model 42
PERSON
MALE FEMALE
Disjoint Rule – Entity ใด ๆ ทเปน Supertype ถามสมาชกใด ๆ สมาชกหนงใน Subtype แลวจะไมสามารถไปมความสมพนธกบ Subtype ใด ๆ ไดอก
สญลกษณทใช d Overlap Rule - Entity ใด ๆ ทเปน Supertype ถามสมาชกใด ๆ สมาชกหนงใน Subtype แลว อาจจะไปมความสมพนธกบ Subtype อน ๆ อกกเปนได
สญลกษณทใช o
Disjointness Constraints
Database System Entity-Relationship Model 43
PERSON
MALE FEMALE
d
EMPLOYEE
SALE PROGRAMER PR
o
1. แปลง Entity ใหเปนรเลชน และแปลงความสมพนธระหวาง Entity เปนความสมพนธระหวางรเลชน กาหนดชอของ Entity เปนชอของรเลชน กาหนดชอของ Composite Entity เปนชอของรเลชน
2. แปลงรายละเอยดของ Entity ใหเปน Attribute ของรเลชนและกาหนดคยตางๆใหแกรเลชน Key Attribute ของแตละ Entity เปนคยหลกของแตละรเลชน ความสมพนธแบบหนงตอหนง ใหเพมคยหลกของรลเชนหนงลงไปเปน Attribute หนงของอกรเลชน
ความสมพนธแบบหนงตอกลม ใหเพมคยหลกของรเลชนทอยดานความสมพนธเปนหนงไปเปน Attribute หนงของรเลชนดานทมความสมพนธเปนกลม
ความสมพนธแบบ Recursive ใหเพมคยหลกของรเลชนทอยดานความสมพนธเปนหนงไปเปน Attribute หนงของรเลชนดานทมความสมพนธเปนกลม โดยเปลยนชอของAttributeน นใหม
3. การพจารณาเคารางขอมลของแตละรเลชนทไดจาก 2 ขนตอนแรก
การแปลงขอมล E-R Model to Relational Data Model
Database System Entity-Relationship Model 44
ความสมพนธแบบหนงตอหนง (One to One, 1:1)
การเปลยน E-R diagram เปน Table
Database System Entity-Relationship Model 45
รหสลกคา ชอลกคา หรอ
ตวแทน
รหสตวแทน ชอตวแทน ทอย
ดแล ลกคา
รหสลกคา ชอลกคา
1 1
ตวแทน
ลกคา
รหสตวแทน ชอตวแทน ทอย รหสลกคา
รหสตวแทน ชอตวแทน ทอยตวแทน
ลกคา รหสลกคา ชอลกคา รหสตวแทน
ความสมพนธแบบหนงตอกลม (One to Many, 1:M)
การเปลยน E-R diagram เปน Table
Database System Entity-Relationship Model 46
ตวแทน
รหสตวแทน ชอตวแทน ทอย
ดแล ลกคา
รหสลกคา ชอลกคา
1 M
ตวแทน รหสตวแทน ชอตวแทน ทอย
รหสลกคา ชอลกคา รหสตวแทนลกคา
ความสมพนธแบบกลมตอกลม (Many to Many, M:M)
การเปลยน E-R diagram เปน Table
Database System Entity-Relationship Model 47
ใบสงซอ
เลขทใบสง วนทสง วนทสงของ
สงรายการ สนคา
รหสสนคา ชอสนคา
M N
ราคา
ใบสงซอ เลขทใบสง วนทสง วนทสง
สงรายการ เลขทใบสง รหสสนคา สนคารหสสนคา ชอสนคา ราคา
ความสมพนธแบบกลมตอกลม (Many to Many, M:M)
การเปลยน E-R diagram เปน Table
Database System Entity-Relationship Model 48
ใบสงซอ สนคาM สงรายการ M
ใบสงซอ สนคาM M1 1รายการสงซอ
Database System Entity-Relationship Model 49
Case Study
Database System Entity-Relationship Model 50
E-R Diagram
Database System Entity-Relationship Model 51
จงแปลงขอมล E-R Model to Relational Data Model
Database System Entity-Relationship Model 52
Normal Form
รปแบบทเปนบรรทดฐาน(Chapter 4)
Database System อ.เอญ สรยะฉาย (ENS)
ภาควชาวทยาการคอมพวเตอรและสารสนเทศมหาวทยาลยเทคโนโลยพระจอมเกลาพระนครเหนอ
การทาใหเปนรปแบบทเปนบรรทดฐาน (Normalization) วตถประสงคหลกกคอ1. เพอลดความซาซอนของขอมลทจดเกบในแตละรเลชน
ทาใหลดเนอททใชในการจดเกบขอมล2. ลดปญหาขอมลไมถกตอง รวมทงลดปญหาทเกดจากการเพม
ปรบปรง และลบขอมล
Normalization
Normal FormDatabase System 2
One or Two Tables?
Normal FormDatabase System 3
One or Two Tables?
Normal FormDatabase System 4
เมอทราบคาของ Attribute หนงจะทาใหสามารถทราบคาของAttributeอน ๆ ในทเพล (tuple) เดยวกนของรเลชนได
1. Functional dependency2. Multivalve dependency3. Join dependency
ความสมพนธระหวางAttributeในแตละรเลชน
Normal FormDatabase System 5
ความสมพนธระหวาง Attribute แบบฟงกชน หรอ FD หมายถง การทคาของAttribute หนงหรอมากกวาหนง Attribute ขนไปทประกอบกนสามารถระบคาของAttribute อน ๆ ใน Tuple เดยวกนของรเลชนนนได ตวระบคาเรยกวา Determinant และ ตวทถกระบคาเรยกวา Dependent
A B หากทราบคาของ Attribute A จะสามารถทราบคาของ Attribute B
Functional dependency
Normal Form
A B
FD : รหสนกศกษา ชออาจารยทปรกษารหสนกศกษา ชออาจารยทปรกษา
คาของ Determinant สามารถระบคาของ Dependent ไดแตคาของ Dependent อาจไมสามารถระบคาของ Determinant ทชดเจนได
Database System 6
กรณ Determinant มเพยงหนง Attribute และ Dependent มมากกวาหนง Attribute
รหสนกศกษา ชอรหสนกศกษา นามสกลรหสนกศกษา วน/เดอน/ปเกด
หรอ รหสนกศกษา ชอ, นามสกล, วน/เดอน/ปเกด
Functional dependency
Normal FormDatabase System 7
กรณ Determinant มมากกวาหนง Attribute และ Dependent มเพยงหนง Attribute
รหสชดวชา, หมเรยน ชออาจารยผสอน
คยผสม กลมของAttribute ทนามาประกอบกนเพอใหมคาเปนเอกลกษณกได คยหลกและคยผสมเปน Determinant ทสามารถระบคาของ Attribute อน ๆ ใน Tuple เดยวกนของรเลชนนนได
Functional dependency
Normal FormDatabase System 8
Fully functional dependency (ความสมพนธระหวาง Attribute แบบทงหมด)
Determinant มขนาดเลกทสด และสามารถระบคาของ Attribute อน ๆ ทเปน Dependent ไดอยางชดเจนกรณ Determinant มเพยงหนง Attribute กรณ Determinant มมากกวาหนง Attribute
Fully Functional dependency
Normal FormDatabase System 9
Partial dependency (ความสมพนธระหวาง Attribute แบบบางสวน) จะเกดขนไดเมอรเลชนหนง ๆ มคยหลกเปนคยผสม และ Attribute บางสวนของคยหลกสามารถระบคาของ Attribute อน ๆ ใน Tupleเดยวกนทไมใชคยหลกของรเลชนได
Partial dependency
Normal FormDatabase System 10
Transitive dependency (ความสมพนธระหวาง Attribute แบบ Transitive) อาจม Attribute อนทไมใชคยหลกแตสามารถระบคาของ Attribute อน ๆ ใน Tuple เดยวกนของรเลชนได
Transitive dependency
Normal Form
คยหลก
Database System 11
ความสมพนธระหวาง Attribute แบบหลายคา Attribute ทเปน Determinant สามารถระบคาของ Attribute อนทเปนDependent ไดมากกวาหนงคา หรอ ขอมลของ Attribute ทเปน Dependent จะเปนกลมของขอมล
หากทราบคาของ Attribute A หนงคาจะสามารถทราบคาของAttribute B ไดหลายคา
Multivalve dependency
Normal FormDatabase System 12
ความสมพนธระหวาง Attribute แบบ Join รเลชนนน ๆ สามารถจาแนกออกเปนรเลชนยอยได และเมอนารเลชนยอยทจาแนกออกมาเหลานนมารวมกนจะตองไดรเลชนกลบไปเหมอนเดมเสมอ
Join dependency
Normal FormDatabase System 13
เปนกระบวนการออกแบบฐานขอมลทนาเคารางของรเลชนมาตรวจสอบและแกไขปญหาเกยวกบความซาซอนกนของขอมล (data anomaly) update anomaly, insert anomaly, delete anomaly
Normalization
Normal FormDatabase System 14
การทาใหเปนรปแบบทเปนบรรทดฐานเปนการดาเนนงานตามลาดบอยางเปนขนตอนดงน1. รปแบบทเปนบรรทดฐานขนท 1 (First Normal Form : 1NF)2. รปแบบทเปนบรรทดฐานขนท 2 (Second Normal Form : 2NF)3. รปแบบทเปนบรรทดฐานขนท 3 (Third Normal Form : 3NF)4. รปแบบทเปนบรรทดฐานของบอยสและคอดด (Boyce/CoddNormal Form : BCNF)5. รปแบบทเปนบรรทดฐานขนท 4 (Fourth Normal Form : 4NF)6. รปแบบทเปนบรรทดฐานขนท 5 (Fifth Normal Form : 5NF)
Normalization
Normal FormDatabase System 15
วตถประสงคหลกกคอ การลดความซาซอนของขอมลทจดเกบในแตละรเลชน1. ทาใหประหยดเนอทในการจดเกบขอมลได 2. ทาใหลดปญหาขอมลขาดความถกตองสมบรณ (data integrity)3. ทาใหลดปญหาทเกดจากการปรบปรง เพมเตม และลบขอมล
วตถประสงค
Normal FormDatabase System 16
คณสมบตของรปแบบทเปนบรรทดฐานขนท 1 ทก Attribute ในแตละ Tuple มคาของขอมลเพยงคาเดยว
First Normal Form : 1NF
Normal FormDatabase System 17
First Normal Form : 1NF
Normal FormDatabase System 18
คณสมบตของรปแบบทเปนบรรทดฐานขนท 21. อยในรปแบบ First Normal Form แลว2. ไมม Partial dependency เกดขน
Second Normal Form : 2NF
Normal FormDatabase System 19
Second Normal Form : 2NF
Normal FormDatabase System 20
คณสมบตของรปแบบทเปนบรรทดฐานขนท 31. อยในรปแบบ Second Normal Form แลว2. ไมม Transitive dependency เกดขน
Third Normal Form : 3NF
Normal FormDatabase System 21
Third Normal Form : 3NF
Normal FormDatabase System 22
Third Normal Form : 3NF
Normal FormDatabase System 23
คณสมบตของรปแบบทไมเปนบรรทดฐานของบอยสและคอดด1. รเลชนใด ๆ ทมคยคแขง (CANDIDATE KEY) ตงแต 2 ตวขนไป2. คยคแขงนนเปนคยผสม ซงม Attribute บางสวนรวมกน
Boyce/Codd Normal Form : BCNF
Normal FormDatabase System 24
แบบท 1 แบบท 2
Boyce/Codd Normal Form : BCNF
Normal FormDatabase System 25
คณสมบตของรปแบบทเปนบรรทดฐานขนท 41. อยในรปแบบ Boyce/Codd Normal Form 2. ไมม Multivalve dependency เกดขน
Fourth Normal Form : 4NF
Normal FormDatabase System 26
Fourth Normal Form : 4NF
Normal FormDatabase System 27
คณสมบตของรปแบบทเปนบรรทดฐานขนท 51. รเลชนนน ๆ มความสมพนธระหวาง Attribute แบบ Join และรเลชน
ยอย ๆ ทจาแนกออกมาตองมคยคแขงของรเลชนเดมอยดวยเสมอ หรอ2. รเลชนนน ๆ ไมมความสมพนธระหวาง Attribute แบบ Join
จาก ขนท 1 ถง ขนท 4 เมอทาการจาแนกรเลชนออกเปนรเลชนยอยแลว หากนารเลชนยอยทถกจาแนกมารวมกนจะตองไดรเลชนกลบไปเหมอนเชนเดมเสมอ นนคอ จะตองไมมขอมล Tuple ใดเกนมาจากรเลชนเดม หรอไมมขอมล Tuple ใดสญหายไปจากรเลชนเดม
Fifth Normal Form : 5NF
Normal FormDatabase System 28
Fifth Normal Form : 5NF
Normal FormDatabase System 29
Fifth Normal Form : 5NF
Normal FormDatabase System 30
Overnormalization (การจาแนกรเลชนยอยมากเกนไป)อาจทาใหใชเสยเวลาเพอการคนหาขอมลมากขน
ขอควรคานงในการทาNormalization
Normal FormDatabase System 31
Denormalization (การรวมรเลชนยอย) การทรเลชนใด ๆ ถกออกแบบใหมคณสมบตอยในรปแบบทเปน
บรรทดฐานขนตากวากฎเกณฑทกาหนดไว
ขอควรคานงในการทาNormalization
Normal FormDatabase System 32
Example
Normal FormDatabase System 33
1NF
Normal FormDatabase System 34
Function Dependency
Normal FormDatabase System 35
2NF
Normal FormDatabase System 36
3NF
Normal FormDatabase System 37
จงทา Relation ตอไปนใหอยในรปแบบ 3NF
Test
Normal Form
Cust_No Cust_Name City City_No Product_Id Order_QTYC01 มนา เชยงใหม 04 P001 35
P003 32P004 20
C02 นต ชลบร 02 P001 20P002 28
C05 ทศพล อยธยา 03 P007 30
C07 รตนะ ชลบร 02 P005 26P010 35
C08 ธภาพร เชยงใหม 04 P003 24
Database System 38
Note
Normal FormDatabase System 39 Database System Normal Form 40
Note
Relational Database Design
การออกแบบฐานขอมลเชงสมพนธ(Chapter 5)
Database System อ.เอญ สรยะฉาย (ENS)
ภาควชาวทยาการคอมพวเตอรและสารสนเทศมหาวทยาลยเทคโนโลยพระจอมเกลาพระนครเหนอ
พจนานกรมขอมล หมายถง แฟมทเกบบนทกรายละเอยดตางๆเกยวกบ ขอมลทจดเกบอยในฐานขอมล เชนโครงสรางขอมล – ใครเปนผสราง สรางขนเมอไร และถกเกบทไหน เปนตน
โครงสรางตาราง – ประกอบดวย Attribute อะไรบาง คณลกษณะโครงสรางดชน - ชอ Attribute ทใชเปนดชน และตาแหนงทางกายภาพ
กฎทใชเพอควบคมความบรณภาพของขอมล (integrity rule) กฎทใชเพอรกษาความปลอดภยของขอมล (security rule) รายละเอยดอน ๆ ทเกยวของกบการบรหารฐานขอมล
Data dictionary
Database System Relational Database Design 2
รายละเอยดพนฐานทวไปทพจนานกรมขอมลควรมประกอบดวย 5 สวนชอขอมล หากขอมลเดยวกนมชอแตกตางกนไปในแตละโปรแกรม พจนานกรมขอมลกจะตองระบชอทตางกนของขอมลนน ๆ ไวดวย
คาอธบายชอขอมล แสดงความหมายเพอขยายความชอขอมลนน ๆ เพอใหผใชสามารถทาความเขาใจไดงายและสะดวก
ชนดของขอมล แตละชอขอมลควรมการกาหนดอยางชดเจนวา ขอมลนน ๆ มรปแบบชนดใด ตวอยางเชน เปนตวอกขระ ขอความ ตวเลข
ขนาดของขอมล หมายถง ขนาดหรอความยาวสงสดทช อขอมลนนจะสามารถจดเกบได
รายละเอยดอน ๆ ทเพมเตมแตกตางกนออกไปตามความเหมาะสม
รายละเอยดพนฐานท วไปของData dictionary
Database System Relational Database Design 3
คณลกษณะ คาอธบายAttribute ระบชอของ AttributeDescription ใชอธบายความหมายของ AttributeData Type บอกประเภทขอมลของ Attribute นนKey ระบวา Attribute นนเปน คยหลก(PK) หรอ คยนอก
(FK)Domain คาของ Attribute นนมคาเปนอะไรไดบาง หรอวาม
รปแบบอยางไรRemark อธบายรายละเอยดเพมเตมจากทกลาวมาแลว
การแสดงรายละเอยดของ Attribute
Database System Relational Database Design 4
Example
Database System Relational Database Design 5
Example
Database System Relational Database Design 6
Usern : ขอมลผใชระบบงานชอ ชอเตม ชนด คย คาอธบาย
Idmem ID Member Int(2) PK ลาดบทUname Username Varchar(8) รหสผใชงานPword Password Varchar(8) รหสผานUserLevelCode UserLevelCode Char(1) FK ระดบการใชงานFlname Firstnam Lastname Varchar(100) ชอ – นามสกลPosit Position Varchar(50) ตาแหนงLposit Level Position Varchar(50) ระดบOfficeCode Office Code Int(8) FK รหสหนวยงานตนสงกด
Userlevel : ขอมลระดบการใชงานชอ ชอเตม ชนด คย คาอธบาย
UserLevelCode User Level Code Int(1) PK รหสระดบผใชงานUserLevel-Name
User Level Name Varchar(50) ระดบผใชงาน
Data dictionary
Database System Relational Database Design 7
การควบคมการใชฐานขอมลพรอมกนจากผใชรายคนการปรบปรง เพม ลบ ขอมล จาเปนตองทาการ Lock ขอมลเพอปองกนการแกไขขอมล ซงรายละเอยดดงกลาวจะมการเกบอยในพจนานกรมขอมล
การรกษาความปลอดภยของขอมล จดการเกบรวบรวมรายละเอยดเกยวกบสทธของ ผใชงานแตละคนไวในฐานขอมลวา ใครบางทมสทธในการคนหาขอมลไดเพยงอยางเดยว ใครทมสทธใน การปรบปรง เพมเตม หรอลบขอมล
การควบคมความบรณภาพของขอมลในการแกไขเปลยนแปลงขอมลใด ๆ พจนานกรมขอมลจะทาการตรวจสอบวา ขอมลททาการแกไขเปลยนแปลงนนแตกตางไปจากขอบเขตทไดมการกาหนดไวแลวหรอไม
หนาทสาคญของพจนานกรมขอมล
Database System Relational Database Design 8
ระดบระบบงาน เปนเอกสารเพอใชตรวจสอบความถกตองของขอมล การฝกอบรมบคลากร การพฒนาระบบงาน
สนบสนนการบรหารจดการฐานขอมลในแตละระบบงาน เชน การลดความซาซอนในการจดเกบขอมล การรกษาความปลอดภยของขอมล
สนบสนนการสรางมาตรฐานในการพฒนาระบบงาน ใชประกอบการแกไขโครงสรางขอมลหรอปรบปรงโปรแกรมใหมศกยภาพเพมขนและมมาตรฐานเดยวกน
ประโยชนของพจนานกรมขอมล
Database System Relational Database Design 9
ระดบองคกรสนบสนนการบรหารจดการฐานขอมลขององคกร – ทาใหทราบถงความเกยวของ เชอมโยงกนของขอมล
สนบสนนการทางานของผบรหาร ทาใหผบรหารสามารถทาการวเคราะหและแกไขปญหาตาง ๆ ไดอยางถกตองและมประสทธภาพมากขน
สนบสนนการวางแผนเกยวกบระบบงานคอมพวเตอร ทาใหทราบถงแนวโนมเกยวกบการใชขอมล
ประโยชนของพจนานกรมขอมล
Database System Relational Database Design 10
Passive data dictionaryถกสรางขนโดยบคคลทเกยวของกบระบบฐานขอมล ตวอยางเชน ผบรหารฐานขอมล นกวเคราะหและออกแบบระบบ หรอผใชงานคอมพวเตอรโดยทวไป
เพอใชเปนคมอของระบบในระหวางทาการออกแบบฐานขอมลตองคอยทาการแกไขเปลยนแปลงเอง
Active data dictionary ระบบจดการฐานขอมลดาเนนการสรางขนโดยอตโนมต เกบบนทกขอมลไดถกตองตามความเปนจรงทเกดขนในแตละระบบ ระบบจดการฐานขอมลจะทาการเกบบนทกไวใน System Catalog โดยอตโนมต จะถกปรบเปลยนเมอมการเปลยนโครงสรางของฐานขอมล
ประเภทของพจนานกรมขอมล
Database System Relational Database Design 11
Alien dictionary เปนพจนานกรมขอมลของระบบงานท งหมดภายในองคกร ทาใหสามารถมองเหนภาพรวมของการใชงานระบบฐานขอมล
ประเภทของพจนานกรมขอมล
Database System Relational Database Design 12
วตถประสงคหลกในการออกแบบฐานขอมล คอ การสรางฐานขอมลทมประสทธภาพเพอตอบสนองความตองการของผใชงาน ซงการออกแบบฐานขอมลในทนจะมความหมายครอบคลมถงการออกแบบฐานขอมลในระดบแนวคด และการออกแบบฐานขอมลในระดบภายในหรอเชงกายภาพ
วธการออกแบบฐานขอมล
Database System Relational Database Design 13
1. วธอปนย - การออกแบบฐานขอมลจากลางขนบน (bottom-updesign)
เกบรวบรวมขอมลและ/หรอโปรแกรมทมการใชงานอยแลวภายในหนวยงานตาง ๆ ขององคกรมาเชอมโยงเขาดวยกนเพอจดทาเปนระบบฐานขอมลขององคกร
2. วธนรนย - การออกแบบฐานขอมลจากบนลงลาง (top-down design)
เกบรวบรวมขอมลพนฐาน ขนตอนการทางานของหนวยงานตาง ๆ ภายในองคกร และความตองการใชงานฐานขอมลตลอดจนรวบรวมขอมลจากแบบฟอรมตาง ๆ ทมใชอยภายในหนวยงาน เพอนามาออกแบบโครงสรางฐานขอมลขององคกร
วธการออกแบบฐานขอมล
Database System Relational Database Design 14
วธการออกแบบฐานขอมล
Database System Relational Database Design 15
1. การรวบรวมและวเคราะหความตองการในการใชขอมล2. การเลอกระบบจดการฐานขอมล3. การออกแบบฐานขอมลในระดบแนวคด4. การนาฐานขอมลทออกแบบเขาสระบบจดการฐานขอมล5. การออกแบบฐานขอมลในระดบกายภาพ6. การนาฐานขอมลไปใชและประเมนผล
ข นตอนการออกแบบฐานขอมลเชงสมพนธ
Database System Relational Database Design 16
1. การรวบรวมและวเคราะหความตองการในการใชขอมล1.1 การศกษาและวเคราะหองคกร เปนการศกษานโยบาย วตถประสงค ตลอดจนโครงสรางและสภาพการทางานของหนวยงานตาง ๆ ภายในองคกร เพอใหมความเขาใจในระบบการทางานขององคกรนนๆ
1.2 การศกษาและวเคราะหระบบการจดการขอมลเดม ทาการศกษา/วเคราะห และเกบรวบรวมขอมลไดจากเอกสาร ตลอดจนรายงานทมในปจจบน ประกอบกบการสงเกตการณ/สอบถาม/สมภาษณขอมลจากผใชงานและผทเกยวของ เพอจะไดทราบถงโครงสรางพนฐานของระบบฐานขอมล
1.3 การกาหนดวตถประสงคและขอบเขตของฐานขอมล เพอแสดงถงความสามารถของระบบฐานขอมลในการตอบสนองตอความตองการในการใช ขอมลของผใชงานและผเกยวของ รวมทงลกษณะ การทางาน ประสทธภาพ และความสามารถในการจดการกบขอมล
การรวบรวมและวเคราะห
Database System Relational Database Design 17
2. การเลอกระบบจดการฐานขอมล2.1 คาใชจายและผลประโยชนทจะไดรบ – ความคมคาในการลงทน แตผลประโยชนทคาดวาจะไดรบ เชนการทางานมประสทธภาพมากขน เนองจากสามารถคนหาขอมลไดรวดเรวหรอสะดวกขน
2.2 คณสมบตของซอฟตแวรระบบจดการฐานขอมล - ความสามารถในการใชกบ Platform ตาง ๆ การมเครองมอชวย (features & tools)ในการจดทาและการเรยกใชฐานขอมลทาใหผใชสามารถใชงานไดงายและสะดวกขน
2.3 โครงสรางของฐานขอมล - เชน หากโครงสรางของฐานขอมลททาการออกแบบขนมาเปนโครงสรางขอมลเชงสมพนธ ควรใชจะไดแก Oracle, MySQL, MS SQL Server, MS Access, IBM DB2(Informix) เปนตน
การเลอกระบบจดการฐานขอมล
Database System Relational Database Design 18
3.การออกแบบฐานขอมลในระดบแนวคด เพอกาหนดโครงสรางพนฐานและรายละเอยดทงหมดของฐานขอมล นาแแบบจาลอง อ-อารไดอะแกรม (Entity-Relationship Diagram) มาประยกตใชเพอชวยใหการออกแบบมความเหมาะสมมากยงขน
การออกแบบฐานขอมลในระดบแนวคดอาจจาแนกได 5 ขนตอนตามลาดบ1. การกาหนดรเลชนและความสมพนธระหวางรเลชน2. การกาหนด Attribute คยหลก และคยนอกในแตละรเลชน3. การทาใหรเลชนมคณสมบตอยในรปแบบทเปนบรรทดฐาน4. ลกษณะและขอบเขตของขอมล รวมทงขอจากดและกฎเกณฑตาง ๆ ท
ควรคานง5. การรวบรวมและทบทวนการออกแบบฐานขอมลในระดบแนวคด
การออกแบบฐานขอมลในระดบแนวคด
Database System Relational Database Design 19
3.1การกาหนดรเลชนและความสมพนธระหวางรเลชนการกาหนด Entity ทเกยวของ กาหนดความสมพนธระหวาง Entity การแปลง Entity ใหเปนรเลชนแปลงความสมพนธระหวาง Entity เปนความสมพนธระหวางรเลชน
3.2 การกาหนด Attribute ตาง ๆ คยหลก และคยนอกในแตละรเลชน กาหนด Attribute ในแตละรเลชน กาหนด Attribute ททาหนาทเปนคยหลก กาหนดคยนอก
การออกแบบฐานขอมลในระดบแนวคด
Database System Relational Database Design 20
3.3 การทาใหรเลชนมคณสมบตอยในรปแบบทเปนบรรทดฐาน มกจะทาจนถงรปแบบทเปนบรรทดฐานขนท 3 เพอขจดปญหาความซาซอนของขอมลทอาจเกดขนในโครงสรางขอมล ทาให ขอมลมความถกตองและเชอถอได
3.4 ลกษณะและขอบเขตของขอมล รวมท งขอจากดและกฎเกณฑตาง ๆ ทควรคานง พจารณาขอบเขตของขอมลทสามารถจดเกบไดในแตละ Attribute ตวอยางเชน ประเภทของขอมล (data type) ขนาดของขอมล (data length) รปแบบของขอมล (format) และขอบเขตของขอมล(data range)
พจารณาถงขอจากดและกฎเกณฑตาง ๆ ในการเพม การลบ หรอการปรบปรงขอมล
3.5 การรวบรวมและทบทวนการออกแบบฐานขอมลในระดบแนวคด
การออกแบบฐานขอมลในระดบแนวคด
Database System Relational Database Design 21
4.การนาฐานขอมลทออกแบบในระดบแนวคดเขาสระบบจดการฐานขอมล4.1การกาหนดโครงสรางของฐานขอมล - เปนการกาหนดโครงสรางของขอมลในลกษณะของ
ตารางสองมต4.2การกาหนดการอางองระหวางตารางขอมล – ทาการกาหนดคยระหวางตารางขอมลทเกยวของกน
5.การออกแบบฐานขอมลในระดบกายภาพ นาโครงสรางตารางขอมลทมการกาหนดคณสมบตหลกไวแลวมากาหนดรายละเอยดคณสมบตของโครงสรางทใชในการจดเกบขอมลใหครบถวน
ปจจยสาคญ 3 ประเดน คอ ความเรว การใชเนอท และคาเฉลยของจานวนรายการทประมวลผลไดในหนงนาท
6. การนาฐานขอมลไปใชและการประเมนผล
ข นตอนการออกแบบฐานขอมลเชงสมพนธ
Database System Relational Database Design 22
Note
Database System Relational Database Design 23 Database System Relational Database Design 24
Note
Structured Query Language : SQL
ภาษามาตรฐานสาหรบการนยามขอมล (Chapter 6)
Database System อ.เอญ สรยะฉาย (ENS)
ภาควชาวทยาการคอมพวเตอรและสารสนเทศมหาวทยาลยเทคโนโลยพระจอมเกลาพระนครเหนอ
1. ภาษาสาหรบการนยามขอมล (Data Definition Language : DDL) คาสงทใชในการกาหนดโครงสรางขอมลวามคอลมนอะไร แตละคอลมนเกบ
ขอมลประเภทใด รวมถงการเพมคอลมน การกาหนดดชน การกาหนดวว2. ภาษาสาหรบการจดการขอมล (Data Manipulation Language : DML)
คาสงทใชในการเรยกใชขอมล การเปลยนแปลงขอมล การเพมหรอลบขอมล3. ภาษาควบคม (Data Control Language : DCL)
คาสงทใชในการควบคม การเกดภาวะพรอมกน หรอการปองกนการเกดเหตการณทผใชหลายคนเรยกใชขอมลพรอมกน และคาสงทเกยวของกบการควบคมความปลอดภยของขอมลดวยการกาหนดสทธของผใชทแตกตางกน
ประเภทของคาส งของภาษา SQL
Database System SQL 2
1. ตวหนงสอ(character) ตวหนงสอแบบความยาวคงท(fixed-length character) จะใช char
(n) หรอ character(n) มากทสดได 255 ตวอกษร ตวหนงสอแบบความยาวไมคงท(variable-length character) จะใช
varchar (n) มากทสดได 4000 ตวอกษร
ชนดของขอมลทใชในภาษา SQL
Database System SQL 3
2. จานวนเลข( numeric) จานวนเลขทมจดทศนยม(decimal) จะใช dec(m,n) หรอ
decimal(m,n) m คอจานวนตวเลขทงหมด (รวมจดทศนยม) และ n คอจานวนตวเลขหลงจดทศนยม
จานวนเลขทไมมจดทศนยม จะใช int หรอ integer เปนเลขจานวนเตมบวกหรอลบขนาดใหญ เปนตวเลข 10 หลก ทมคาตงแต –2,147,483,648 ถง +2,147,483,647smallint มคาตงแต – 32,768 ถง + 32,767 number(n) เลขจานวนจรง
ชนดของขอมลทใชในภาษา SQL
Database System SQL 4
3. ขอมลในลกษณะอนๆ วนทและเวลา(Date/Time) เปนชนดวนทหรอเวลา จะใช date เปน
ขอมลวนท ซงจะมหลายรปแบบใหเลอกใช เชน yyyy-mm-dd (1999-10-31) dd.mm.yyyy(31. 10.1999) หรอ dd/mm/yyyy (31/10/1999)
ชนดของขอมลทใชในภาษา SQL
Database System SQL 5 Database System SQL 6
MS Access
MySQL 5.1Data Types
Database System SQL 7
MySQL 5.1Data Types
Database System SQL 8
SQL Server 2008 Data Types
Database System SQL 9
Oracle Database 11g Data Types
Database System SQL 10
ภาษา SQL ทโตตอบได (interactive SQL)ใชเพอปฏบตงานกบฐานขอมลโดยตรง โดยเรยกดขอมลไดโดยตรงในขณะททางาน เพอใหไดผลลพธทนาไปใชได
ลกษณะการใชงานของภาษา SQL
Database System SQL 11
SELECT SALENAME, SALECOMFROM SALESTAB;
SALENO SALENAME ADDRESS SALECOM1001 Chaiwat Bangkok 0.121002 Mitree Puket 0.131004 Benjawan Bangkok 0.111007 Kanjana Chiangmai 0.151003 Ternjai Nonthaburi 0.10
SALENAME SALECOMChaiwat 0.12Mitree 0.13
Benjawan 0.11Kanjana 0.15Ternjai 0.10
ตาราง SALESTAB
ภาษา SQL ทฝงในโปรแกรม (Embedded SQL) เพอเพมประสทธภาพ ความสามารถของภาษา SQL ใหมากยงขน
ลกษณะการใชงานของภาษา SQL
Database System SQL 12
<?php$result = mysql query(’select * from test’);echo "<table>";while ($line = mysql fetch array($result, MYSQL ASSOC)){echo "<tr>"; echo "<td>",$line[’firstfield’],"</td>";echo "<td>",$line[’secondfield’],"</td>";echo "<td>",$line[’thirdfield’],"</td>";echo "</tr>";
}echo "</table>";?>
คาสง CREATE TABLE ใชในการสรางตารางขนมาใหม
CREATE TABLE
Database System SQL 13
CREATE TABLE <table name>(<column name> <data_type> [NOT NULL] [UNIQUE],<column name> <data_type> [NOT NULL] [UNIQUE],
… … …<column name> <data_type> [NOT NULL] [UNIQUE]);
CREATE TABLE SALESTAB(SALENO integer,SALENAME char (10),ADDRESS char (10),SALECOM decimal);
SALENO SALENAME ADDRESS SALECOM
ตาราง SALESTAB
การสรางตารางโดยมการกาหนดขอจากดสามารถกาหนดขอจากด(constraints), การควบคมความถกตองสมบรณ(integrity)การกาหนดไมใหคาใดคาหนงเปนคาวาง (NOT NULL)
การกาหนดไมใหมคาซากน (UNIQUE)
TABLE
Database System SQL 14
CREATE TABLE SALESTAB(SALENO integer NOT NULL,SALENAME char(10) NOT NULL,ADDRESS char(10),SALECOM decimal);
CREATE TABLE SALESPEOPLE(SALENO integer NOT NULL UNIQUE,SALENAME char(10) NOT NULL UNIQUE,ADDRESS char(10),SALECOM decimal);
การกาหนดคยหลก(primary key)การกาหนดใหคอลมนเดยวเปนคยหลก
การกาหนดใหคอลมนมากกวา 1 คอลมนเปนคยหลก
Primary key
Database System SQL 15
CREATE TABLE SALESPEOPLE(SALENO integer NOT NULL UNIQUE PRIMARY KEY,SALENAME char(10) NOT NULL UNIQUE,ADDRESS char(10),SALECOM decimal);
CREATE TABLE NAMEFIELD(FIRSTNAME char(10) NOT NULL ,LASTNAME char(10) NOT NULL UNIQUE,CITY char(10),PRIMARY KEY (FIRSTNAME, LASTNAME ));
การกาหนดคยนอก(foreign key )
Foreign key
Database System SQL 16
CREATE TABLE CUSTOMERSTAB(CUSNO integer NOT NULL PRIMARY KEY,CUSNAME char(10),SALENO integer,FOREIGN KEY (SALENO) REFERENCES SALESTAB(SALENO));
คาสง ”CASCADES” และ “RESTRICTED”
UPDATE OF SALESTAB CASCADES จะทาใหเมอมการปรบปรงคอลมนSALENOในตารางลกคาจะทาใหคอลมน SALENOในตารางพนกงานขายถกปรบปรงไปดวย
DELETE OF SALESTAB RESTRICTED จะทาใหเมอตองการลบคอลมนSALENOในตารางลกคาจะไมสามารถลบได ถาคอลมนSALENOในตารางพนกงานขายยงมขอมลอย
Foreign key
Database System SQL 17
CREATE TABLE CUSTOMERSTAB(CUSNO integer NOT NULL PRIMARY KEY,CUSNAME char(10),ADDRESS char(10),SALENO integer REFERENCES SALESTAB(SALENO));
CREATE TABLE CUSTOMERSTAB(CUSNO integer NOT NULL PRIMARY KEY,CUSNAME char(10) ,ADDRESS char(10),SALENO integer REFERENCES SALESTAB(SALENO)UPDATE OF SALESTAB CASCADES,DELETE OF SALESTAB RESTRICTED);
การกาหนดการตรวจสอบ (CHECK) - การตรวจสอบความถกตองครบถวนสมบรณของขอมล(entity integrity)โดยการระบเงอนไขหรอกาหนดคาเฉพาะของคอลมนใดคอลมนหนงขน หากมการปอนขอมลทผดจากเงอนไขทระบไว คานนกจะถกปฎเสธหรอไมยอมรบ
CHECK
Database System SQL 18
CREATE TABLE SALESPEOPLE(SALENO integer NOT NULL UNIQUE,SALENAME char(10) NOT NULL UNIQUE,CITY char(10),SALECOM decimal CHECK (salecom < 1));
ในการสรางตารางแตละตารางอยางนอยทสดตองกาหนดคอลมนได 1 คอลมน
รายละเอยดของแตละคอลมนแยกจากกนดวยเครองหมาย comma(,)
สนสดคาสงดวยเครองหมาย semicolon (;)
ขอคานงในการใชคาส งสรางตาราง
Database System SQL 19
DROP TABLE ใชลบโครงสรางตาราง
table name ชอตารางทตองการลบCASCADE CONSTRAINTS ระบบจดการฐานขอมลจะทาการลบขอจากดตางๆ(constraint) ทมการอางถงตารางทงไปใหดวยทงหมด
DROP TABLE
Database System SQL 20
DROP TABLE <table name>[CASCADE CONSTRAINTS];
DROP TABLE SALESTAB;
คาสง ALTER TABLE ใชในการเพมคอลมน,เปลยนชอคอลมน
table name ชอตารางทจะเปลยนแปลงDatabase update คาสงการเปลยนแปลงcolumn_name ชอคอลมนdata type [SIZE] ชนดขอมลและขนาดของขอมล
ALTER TABLE
Database System SQL 21
ALTER TABLE <table name>Database update(<column_name> data type [SIZE]);
ALTER TABLE SALESPEOPLE ADD SALESTAB_FAX CHAR(15);
ALTER TABLE SALESPEOPLE MODIFY SALESTAB_FAX CHAR(30);
ALTER TABLE SALESPEOPLE RENAME ADDRESS TO COUNTRY;
คยหลกไดแก คอลมน 1 คอลมนหรอหลายคอลมนททาใหแตละแถวในตารางขอมลมคาของขอมลทไมซากน(unique)
ดชนเปนการสรางโดยการเลอกคอลมนใดคอลมนหนงหรอหลายคอลมนจากตารางขนมาเปนดชน โดยในตารางหนงๆ สามารถมดชนไดหลายดชน คอลมนทจะเลอกเปนดชนควรจะมคาของขอมลไมซากน (unique)ในแตละแถว เพอเปนตวนาทางในการสบคนขอมลให เรวขน
ถาตารางขอมลใดไมมการสรางดชนไวการคนหาขอมลในตารางนนจะตองทาการคนหาแบบเรยงลาดบจากแถวแรกจนถงแถวสดทาย
การสรางดชนจะทาใหการคนหาขอมลเรวขน แตการสรางดชนกเปลองพนทในหนวยความจา
ขอแตกตางระหวางคยหลกและดชน
Database System SQL 22
การสรางดชน
index name ชอดชน table name ชอตารางทจะสรางดชน
การลบดชนของตาราง
การลบดชนออกไปจะไมมผลกระทบกบรายละเอยดในคอลมนตาง ๆ ภายในตาราง
INDEX
Database System SQL 23
CREATE [UNIQUE] INDEX <index name>ON <table name> (<column>name>[,<column name>]..);
CREATE UNIQUE INDEX CLIENTGROUP ON CUSTOMERSTAB(SALENO);
DROP INDEX <index name>;
INSERT คาสงการเพมขอมลในตาราง1. เพมขอมลทละแถวโดยระบขอมลทจะ INSERTเขาไปโดยตรง
INSERT
Database System SQL 24
INSERT INTO <tablename>[(column 1, column 2,…)]VALUES(<value1,value2, …>);
INSERT INTO SALESTABVALUES (1001, “Chaiwat”, “Bangkok”,0.12);
SALENO SALENAME ADDRESS SALECOM1001 Chaiwat Bangkok 0.12
SALENO SALENAME ADDRESS SALECOM
INSERT INTO CUSTOMERSTAB(ADDRESS,CUSNAME,CUSNO)VALUES ('Bangkok','Arlee', 2001);
CUSNO CUSNAME ADDRESS RATING SALENO2001 Arlee Bangkok
2. นาคาหรอหาคาจากตารางหนงแลวไปใสไวในอกตาราหนง
INSERT
Database System SQL 25
INSERT INTO <table name>[(column 1, column 2,…)]SELECT statement;
INSERT INTO BANGKOKSTAFFSELECT *FROM SALESTABWHERE ADDRESS = ‘Bangkok’;
SALENO SALENAME ADDRESS SALECOM1001 Chaiwat Bangkok 0.121002 Mitree Puket 0.131004 Benjawan Bangkok 0.111007 Kanjana Chiangmai 0.151003 Ternjai Nonthaburi 0.10
SALENO SALENAME ADDRESS SALECOM1001 Chaiwat Bangkok 0.121004 Benjawan Bangkok 0.11
ตาราง SALESTAB
ตาราง BANGKOKSTAFF
UPDATE คาสงปรบปรงแถวขอมล
UPDATE
Database System SQL 26
UPDATE <table name> SET <columnname> = <new_value>[WHERE <condition>];
UPDATE CUSTOMERSTABSET RATING = 200;
UPDATE
Database System SQL 27
UPDATE CUSTOMERSTABSET RATING = 200;WHERE SALENO = 1001;
DELETE คาสงการลบขอมลทงแถว
DELETE
Database System SQL 28
DELETE FROM <table name>[WHERE <condition>];
DELETE FROM SALESTABWHERE SALENO = 1003;
SALENO SALENAME ADDRESS SALECOM1001 Chaiwat Bangkok 0.121002 Mitree Puket 0.131004 Benjawan Bangkok 0.111007 Kanjana Chiangmai 0.151003 Ternjai Nonthaburi 0.10
SALENO SALENAME ADDRESS SALECOM1001 Chaiwat Bangkok 0.121002 Mitree Puket 0.131004 Benjawan Bangkok 0.111007 Kanjana Chiangmai 0.15
SELECTเรยกคนดทกคอลมนในตาราง
SELECT
Database System SQL 29
SELECT *FROM <table name>;
SELECT * FROM checks;
CHECK# PAYEE AMOUNT REMARKS1 Malee Benjanee 150 Have sons next time2 Reading R.R 24534 Train to Chiangmai3 Malee Benjanee 20032 Cellular Phone4 Surasit Utities 98 Gas5 Jintana $ Mitree 150 Groesries6 Cash 25 Wild Night Out7 Benjawan Gas 251 Gas
ตาราง checks
การเรยกคนขอมลเฉพาะคอลมนใดๆในตารางและการเปลยนลาดบคอลมน
SELECT
Database System SQL 30
SELECT <column 1, column 2,…>FROM <table name>;
SELECT CHECK#, amount FROM checks;
SELECT PAYEE, REMARKS, AMOUNT, CHECK#FROM checks;
CHECK# AMOUNT1 1502 245343 200324 985 1506 257 251
PAYEE REMARKS AMOUNT CHECK#Malee Benjanee Have sons next time 150 1
Reading R.R Train to Chiangmai 24534 2Malee Benjanee Cellular Phone 20032 3Surasit Utities Gas 98 4
Jintana $ Mitree Groesries 150 5Cash Wild Night Out 25 6
Benjawan Gas Gas 251 7
การเรยกคนขอมลกบคาสง Distinction จะทาใหขอมลทซากนนนแสดงออกมาเพยงครงเดยว
การใชคาสง SELECT กบ WHERE
SELECT
Database System SQL 31
AMOUNT2525198150
2003224534
SELECT DISTINCT amount from checks;
SELECT <column 1, column 2,…>FROM <table name>[WHERE <condition>];
SALENO SALENAME ADDRESS SALECOM1001 Chaiwat Bangkok 0.121002 Mitree Puket 0.131004 Benjawan Bangkok 0.111007 Kanjana Chiangmai 0.151003 Ternjai Nonthaburi 0.10
SELECT * FROM SALESTABWHERE SALENO = 1003;
ตาราง SALESTAB
SALENO SALENAME ADDRESS SALECOM1003 Ternjai Nonthaburi 0.10
ORDER BY กาหนดใหเรยงลาดบผลลพธ โดยทASC เรยงจากนอยไปมากDESC เรยงจากมากไปนอย
SELECT
Database System SQL 32
SELECT <column 1, column 2,…>FROM <table name>[WHERE condition][ORDER BY <column 1, column 2,…>[ASC][DESC]];
SELECT sno, fname, lname, salaryFROM staffORDER BY salary DESC;
โอเปอเรเตอรคณตศาสตร(Arithmetic Operators) ไดแก operators plus (+) minus (-), divide (/), multiply (*), modulo (%)
SELECT with Operators
Database System SQL 33
SELECT ITEM, WHOLESALE, (WHOLESALE + 15) AS RETAILFROM PRICE;
ITEM WHOLESALETOMATOES 34POTATOES 51BANANAS 67TURNIPS 45CHEESE 89APPLES 23
ITEM WHOLESALE RETAILTOMATOES 34 49POTATOES 51 66BANANAS 67 82TURNIPS 45 60CHEESE 89 104APPLES 23 38
ตาราง PRICE ตาราง PRICE
โอเปอรเรเตอร Minus (-) คาสง Minus ใชไดเปน 2 กรณคอ เปลยนเครองหมายจากบวกเปนลบและจากลบเปนบวก
นาขอมลของคอลมนหนงไปลบออกจากขอมลของอกคอลมนหนง
SELECT with Operators
Database System SQL 34
SELECT STATE, -HIGHTEMP AS LOWS, -LOWTEMP AS HIGHSFROM HILOW;
SELECT STATE, LOWTEMP AS LOWS, HIGHTEMP AS HIGHS, (HIGHTEMP - LOWTEMP ) AS DIFFERENCE
FROM HILOW;
STATE HIGHTEMP LOWTEMPCA 120 -50FL 110 20LA 101 15ND 99 -70NE 100 -60
STATE LOWS HIGHSCA -120 50FL -110 -20LA -101 -15ND -99 70NE -100 60
STATE LOWS HIGHS DIFFERENCECA -50 120 170FL 20 110 90LA 15 101 84ND -70 99 171NE -60 100 160
ตาราง HILOW
Modulo (%)เปนคาสงทไดผลลพธเปนเศษทไดจากการหาร
SELECT with Operators
Database System SQL 35
SELECT NUMERATOR,DENOMINATOR,NUMERATOR%DENOMINATOR AS REMAINDER
FROM REMAINS;
SELECT NUMERATOR,DENOMINATOR,MOD(NUMERATOR, DENOMONATOR) AS REMAINDER
FROM REMAINS;
NUMERATOR DENOMENATOR10 58 323 940 17
1024 1685 34
NUMERATOR DENOMENATOR REMAINDER10 5 08 3 223 9 540 17 6
1024 16 085 34 17
ตาราง REMAINS
โอเปอรเรเตอรเปรยบเทยบ (Comparison Operators) จะใหคาออกมา 3 คา คอ ถก (TRUE) ผด (FALSE) ไมร (Unknow) การไมรหมายถง ถานาขอมลทมคาไปเปรยบเทยบกบขอมลทเปน NULL ตวเปรยบเทยบจะใหคาไมร
SELECT with Operators
Database System SQL 36
SELECT *FROM PRICEWHERE WHOLESALE IS NULL;
SELECT *FROM PRICEWHERE WHOLESALE = NULL;
ITEM WHOLESALETOMATOES 34POTATOES 51BANANAS 67TURNIPS 45CHEESE 89APPLES 23
ORANGES
ตาราง PRICE
ITEM WHOLESALEORANGES
โอเปอเรเตอรตวอกษร(Character Operators) ตวโอเปอเรเตอร LIKE เปนการคนหาขอมลของคอลมนทเกบขอมลประเภทตวอกษรเทานน สญลกษณ % ใชแทนจานวนอกษรไดหลายตว สญลกษณ _ ใชแทนจานวนทไมทราบคา 1 ตว
SELECT with Operators
Database System SQL 37
SELECT PAYEE, AMOUNT, REMARKSFROM CHECKSWHERE PAYEE LIKE (‘CA%’);
SELECT PAYEE, AMOUNT, REMARKSFROM CHECKSWHERE PAYEE STARING WITH (‘Ca’);
PAYEE AMOUNT REMARKSCash 25 Wild Night OutCash 60 Trip to SaraburiCash 34 Trip to Nonthaburi
SELECT PAYEE, AMOUNT, REMARKSFROM CHECKSWHERE PAYEE STARTING WITH(‘Ca’)OR REMARKS LIKE ‘G%’;
PAYEE AMOUNT REMARKSSurasit Utilities 98 GasJintana $ Mitree 150 Groceries
Cash 25 Wild Night OutBenjawan Gas 251 Gas
Cash 60 Trip to SaraburiCash 34 Trip to Nonthaburi
Benjawan Gas 1575 Gas
โอเปอรเรเตอรตรรกะ (Logical Operator) เปนตวโอเปอเรเตอรทใช ในการเปรยบเทยบ เชอมโยงคา 2 คา
SELECT with Operators
Database System SQL 38
LASTNAME EMPLOYEENUM YEARS LEAVETAKENARLEE 101 2 4
AMPORNI 104 5 23JINTANA 107 8 45BOLIVAR 233 4 80
TANACHOTE 210 15 100TAWATCHI 211 10 78
ตวโอเปอเรเตอร AND
ตวโอเปอเรเตอร OR
SELECT with Operators
Database System SQL 39
SELECT LASTNAME AS WORKAHOLICSFROM VACATIONWHERE YEARS >=5AND((YEARS *12) – LEAVETAKEN)/(YEARS *12) >=0.50;
SELECT LASTNAME AS WORKAHOLICSFROM VACATIONWHERE YEARS >=5OR((YEARS *12) – LEAVETAKEN)/(YEARS *12)>=0.50;
WORKAHOLICSAMPORNIJINTANA
WORKAHOLICSARLEE
AMPORNIJINTANA
TANACHOTETAWATCHI
โอเปอรเรเตอร IN
SELECT with Operators
Database System SQL 40
SELECT *FROM FRIENDSWHERE ADDRESS = ‘Chiangmai’ORADDRESS = ‘Bangkok’ORADDRESS = ‘Puket’;
SELECT *FROM FRIENDSWHERE ADDRESS IN (‘Chiangmai ’, ‘Bangkok ’, ‘Puket ’);
LASTNAME FIRSTNAME PHONE ADDRESSSIRIWAN ARLEEWAN 555-6666 BangkokSURASIT CHAIYO 555-6767 PuketWICHAI AMPORNWAN 555-3116 Chiangmai
ตวโอเปอเรเตอร BETWEEN…AND…
SELECT with Operators
Database System SQL 41
SELECT *FROM PRICEWHERE WHOLESALE >25AND WHOLESALE < 75;
SELECT *FROM PRICEWHERE WHOLESALE BETWEEN 25 AND 75;
ITEM WHOLESALETOMATOES 34POTATOES 51BANANAS 67TURNIPS 45CHEESE 89APPLES 23
ORANGES
ITEM WHOLESALETOMATOES 34POTATOES 51BANANAS 67TURNIPS 45
ตาราง PRICE
เปนกลมฟงกชนทใหผลของคาสงออกมาเพยง 1 คอลมน ใชกบขอมลทเปนตวเลข ไดแกCOUNT ใชกบตารางหรอคอลมนใด ๆ เพอนบจานวนของแถวหรอคอลมนCOUNT (*) เปนคาสงใชนบจานวนแถวทงหมดในตารางซงจะรวมจานวนแถวทไมมคา ( NULL) ดวย
COUNT (DISTINCT คอลมน) เปนคาสงใชนบจานวนแถวในตาราง จะไมรวมคาซาและตาแหนงทไมมคา( NULL)
SUM เปนคาสงการหาผลรวมของคอลมนใดคอลมนหนงAVG เปนคาสงการหาคาเฉลยของขอมลMAX เปนคาสงในการหาคาสงสดของขอมลของคอลมนใดคอลมนหนงMIN เปนคาสงในการหาคาตาสดของขอมลของคอลมนใดคอลมนหนง
Aggregate Functions
Database System SQL 42
ฟงกชน COUNT (X) เปนฟงกชนทใชในการนบจานวนแถวในคอลมน (X)
COUNT
Database System SQL 43
NAME AB HITS WALKS SINGLES DOUBLES TRIPLES HRJONES 145 45 34 31 8 1 5
DONKNOW 175 65 50 50 10 1 4WORLEY 157 49 35 35 8 3 3DAVID 187 70 48 48 4 0 17
HAMHOCKER 50 12 10 10 2 0 0CASEY 1 0 0 0 0 0 0
ตาราง TEAMGAME
SELECT COUNT(*)FROM TEAMGAME;
COUNT(*)6
SELECT COUNT(*) AS HIT_BELOW_60FROM TEAMGAMEWHERE HITS < 60;
HIT_BELOW_604
ฟงกชน SUM (X) เปนฟงกชนทใชในการหาคารวมของคอลมน (X)
SUM
Database System SQL 44
SELECT SUM(SINGLES) AS TOTAL_SINGLESFROM TEAMGAME;
TOTAL_SINGLES174
SELECT SUM(SINGLES) AS TOTAL_SINGLES, SUM(DOUBLES) AS TOTAL_DOUBLES,SUM(TRIPLES) AS TOTAL_TRIPLES, SUM(HR) AS TOTAL_HR
FROM TEAMGAME;
TOTAL_SINGLES TOTAL_DOUBLES TOTAL_TRIPLES TOTAL_HR174 32 5 29
SELECT SUM(NAME)FROM TEAMGAME;
ฟงกชน AVG (X) เปนฟงกชนทใชในการหาคาเฉลยของคอลมน (X)
ฟงกชน MAX (X) เปนฟงกชนใชคานวณหาคาสงสดของคอลมน (X)
ฟงกชน MIN (X) เปนฟงกชนทใชในการหาคาตาสดของคอลมน (X)
AVG, MAX, MIN
Database System SQL 45
SELECT AVG(HITS) AS HITS_AVERAGEFROM TEAMGAME;
SELECT MAX(HITS)FROM TEAMGAME;
SELECT MAX(NAME)FROM TEAMGAME;
SELECT MIN(AB)FROM TEAMGAME;
HITS_AVERAGE40.166666
MAX(HITS)70
MAX(NAME)WORLEY
MIN(AB)1
ฟงกชน VARIANC (X) เปนฟงกชนในการหาคาสวนเบยงเบนมาตราฐานยกกาลง2(S2) ในคอลมน X
ฟงกชน STDDEV (X) หรอฟงกชนสวนเบยงเบนมาตราฐาน
VARIANC, STDDEV
Database System SQL 46
SELECT VARIANCE(HITS)FROM TEAMGAME;
SELECT STDDEV(HITS)FROM TEAMGAME;
VARIANCE(HITS)802.96667
STDDEV(HITS)28.336666
ฟงกชน ADD_MONTHS (X,Y) เปนฟงกชนทตองการบวกจานวนเดอน (Y) เขาไปในขอมลคอลมน X
Date and time functions
Database System SQL 47
SELECT TASK,STARTDATE, ENDDATE,ADD_MONTHS(ENDDATE,2)FROM PROJECT;
TASK STARTDATE ENDDATE ADD_MONTHKICKOFF MTG 1-Apr-01 1-Apr-01 1-Jun-01TECH SURVEY 2-Apr-01 1-May-01 1-Jul-01USER MTGS 15-May-01 30-May-01 30-Jul-01
DESIGN WIDGET 1-Jun-01 30-Jun-01 31-Aug-01CODE WIDGET 1-Jul-01 2-Sep-01 2-Nov-01
TESTING 3-Sep-01 17-Jan-02 17-Mar-02
ฟงกชน LAST_DAY (X) เปนฟงกชนทแสดงวนสดทายของเดอนในคอลมน (X)
ฟงกชน MONTHS_BETWEEN (X,Y) เปนฟงกชนทคานวณคาระหวาง X และ Y โดยมหนวยเปนเดอน
Date and time functions
Database System SQL 48
SELECT ENDDATE, LAST_DAY(ENDDATE)FROM PROJECT;
SELECT TASK, STARTDATE, ENDDATE, MONTHS_BETWEEN(ENDDATE, STARTDATE) AS DURATION
FROM PROJECT;
ENDDATE LAST_DAY(ENDDATE)
1-Apr-01 30-Apr-011-May-01 31-May-0130-May-01 31-May-0130-Jun-01 30-Jun-012-Sep-01 30-Sep-0117-Jan-02 31-Jan-02
TASK STARTDATE ENDDATE DURATIONKICKOFF MTG 1-Apr-01 1-Apr-01 0TECH SURVEY 2-Apr-01 1-May-01 0.96774194USER MTGS 15-May-01 30-May-01 0.48387097
DESIGN WIDGET 1-Jun-01 30-Jun-01 0.93548387CODE WIDGET 1-Jul-01 2-Sep-01 2.0322581
TESTING 3-Sep-01 17-Jan-02 4.4516129
ฟงกชน ABS(X)เปนฟงกชนในการหาคาสมบรณของ X
ฟงกชน CEIL(X) and FLOOR(X) ฟงกชน CEIL (X) ใหคาตวเลขจานวนเตมทมคามากวาหรอเทากบคาในคอลมน (X)
ฟงกชน FLOORเปนฟงกชนทใหคาตวเลขจานวนเตมทพจารณาจากคาในคอลมน X ถาหลงจดทศนยมมคามากวา 5 กจะใหคาเลขจานวนเตมทมากขน แตถาหลงจดทศนยมมคานอยกวา 5 จะใหคาตวเลขทมคานอยลง
Arithmetic functions
Database System SQL 49
SELECT ABS(A) AS ABSOLUTE_VALUEFROM NUMBERS;
A B3.142 4-45 0.7075 9
-57.7 4215 55
-7.2 5.3
ABSOLUTE_VALUE3.142
455
57.67157.2
ฟงกชน COS(X), COSH(X), SIN(X), SINH(X), TAN(X), และ TANH(X) ฟงกชน EXP (X)เปนฟงกชนหาคา e ยกกาลง X ฟงกชน LN(X) และ LOG(X) ฟงกชน MOD(X,Y) เปนฟงกชนทแสดงเศษทเกดขอมล X หารดวย Y ฟงกชน POWER (X,Y) เปนฟงกชนในการยกกาลง โดย X เปนเลขฐานและ Y จะเปนเลขยกกาลง
ฟงกชน SQRT (X) เปนฟงกชนในการหาคารากท 2 ของ X ฟงกชน SIGN (X) เปนฟงกชนท ใหคาเปน –1 ถา X มคานอยกวา 0 ใหคาเปน
0 ถา X มคาเทากบ 0 ใหคาเปน 1 ถา X มคามากกวา 0
Arithmetic functions
Database System SQL 50
ฟงกชน CHR เปนฟงกชนสาหรบเปลยนนพจนอกขระใหเปนรหส ASCII คาทได จากฟงกชนนจะเปนคารหส ASCII
ฟงกชน CONCAT (X,Y) เปนฟงกชนในการรวมอกขระ (X และ Y) เขาดวยกน ฟงกชน INITCAP (<string>) เปนฟงกชนทเปลยนคาตวอกขระ (string) ใหตวแรกเปนอกขระตวใหญแลวตามดวยอกขระตวเลก
ฟงกชน LOWER (<string>) เปนฟงกชน ทเปลยนตวอกขระ (<string>) เปนอกขระตวเลก
ฟงกชน UPPER (<string>) เปนฟงกชน ทเปลยนตวอกขระ (<string>) เปนอกขระตวใหญ
Character functions
Database System SQL 51
ฟงกชน REPLACE (<string>,X,Y) เปนฟงกชนในการแทนคาอกขระ X โดยการคนหาตวอกขระทตองการแทนท แลวแทนทดวยอกขระ Y ทตองการ
ฟงกชน SUBSTR (<string>,x,y) เปนฟงกชนทนาตวอกษร (<string>) ในตาแหนงท x
Conversion functions ฟงกชน TO_CHAR จะทาการแปลง data type ทเปนตวเลขใหเปนตวอกษร
Character functions
Database System SQL 52
SELECT… GROUP BY
column 1, column 2,… คอลมนทตองการเรยกคน table name ชอตารางทตองการเรยกคนขอมลWHERE<condition> สวนของคาสงทบอกเงอนไขทจะใชในการคนหาขอมล
GROUP BY < grouping column>… สวนของคาสงทบอกเงอนไขการจดกลม
HAVING<condition> ใชควบคกนกบ GROUP BY เสมอ เพอตองการใหไดขอมลทจดกลมตาม GROUP BY
การเรยกดขอมลโดยใชฟงกชนในการรวม
Database System SQL 53
SELECT <column 1, column 2,…>FROM <table name>[WHERE <condition>][GROUP BY < grouping column>…][HAVING <condition>];
GROUP BY
Database System SQL 54
SELECT TEAM, AVG(SALARY)FROM ORGCHARTGROUP BY TEAM;
NAME TEAM SALARYASAMS RESEARCH 34000WILKES MARKETING 31000STOKES MARKETING 36000MEZA COLLECTIONS 40000
SIRIWAN RESEARCH 45000RICHARDSON MARKETING 42000
FURY COLLECTIONS 35000PRECOURT PR 37500
TEAM AVG(SALARY)COLLECTIONS 37500MARKETING 36333
PR 37500RESEARCH 39500
TEAM AVG(SALARY)COLLECTIONS 37500MARKETING 36333
PR 37500
SELECT TEAM, AVG(SALARY)FROM ORGCHARTGROUP BY TEAMHAVING AVG(SALARY) < 38000;
GROUP BY
Database System SQL 55
TEAM AVG(SALARY)MARKETING 36333
PR 37500
SELECT TEAM, AVG(SALARY)FROM ORGCHARTWHERE TEAM IN (‘MARKETING’,’PR’)GROUP BY TEAMHAVING AVG(SALARY) < 38000;
การเรยกดขอมลแบบซอนกน(subqueies) เปนการสรางคาสง SELECT ซอนกน
SELECT คาสงทตองมทกครงทตองการเรยกคนขอมลcolumn 1, column 2,… คอลมนทตองการเรยกคนFROM การกาหนดวาใหเรยกดขอมล ไดจากตารางใดบาง table name ชอตารางทตองการเรยกคนขอมลWHERE<condition> สวนของคาสงทบอกเงอนไขทจะใชในการคนหาขอมล
Select Statement สวนของคาสงทเรยกคนขอมลตามเงอนไข
Subqueies
Database System SQL 56
SELECT [*] <column 1, column 2,…>FROM <table name>[WHERE <column list = <Select Statement>];
Subqueries
Database System SQL 57
SALENO SALENAME ADDRESS SALECOM1001 Chaiwat Bangkok 0.121002 Mitree Puket 0.131004 Benjawan Bangkok 0.111007 Kanjana Chiangmai 0.151003 Ternjai Nonthaburi 0.1
ORDERNO AMT ORDERDATE CUSNO SALENO3001 1869 6/3/2000 2008 10073003 76719 6/3/2000 2001 10013002 190010 6/3/2000 2007 10043005 516045 6/3/2000 2003 10023006 109816 6/3/2000 2008 10073009 171323 6/4/2000 2002 10033007 7573 6/4/2000 2004 10023008 472300 6/5/2000 2006 10013010 130995 6/6/2000 2004 10023011 989198 6/6/2000 2006 1001
ORDERNO AMT ORDERDATE CUSNO SALENO3003 76719 6/3/2000 2001 10013002 190010 6/3/2000 2007 10043008 472300 6/5/2000 2006 10013011 989198 6/6/2000 2006 1001
ตาราง ORDERSTAB
ตาราง SALETAB
SELECT *FROM ORDERSTABWHERE SALENO =(SELECT SALENOFROM SALETABWHERE ADDRESS = ‘Bangkok’);
Join
Database System SQL 58
ORDERNO AMT ORDERDATE CUSNO SALENO SALENAME ADDRESS3001 1869 6/3/2000 2008 1007 Kanjana Chiangmai3003 76719 6/3/2000 2001 1001 Chaiwat Bangkok3002 190010 6/3/2000 2007 1004 Benjawan Bangkok3005 516045 6/3/2000 2003 1002 Mitree Puket3006 109816 6/3/2000 2008 1007 Kanjana Chiangmai3009 171323 6/4/2000 2002 1003 Ternjai Nonthaburi3007 7573 6/4/2000 2004 1002 Mitree Puket3008 472300 6/5/2000 2006 1001 Chaiwat Bangkok3010 130995 6/6/2000 2004 1002 Mitree Puket3011 989198 6/6/2000 2006 1001 Chaiwat Bangkok
SELECT ORDERNO, AMT, ORDERDATE, CUSNO, ORDERSTAB.SALENO, SALENAME, ADDRESS
FROM ORDERSTAB, SALETABWHERE ORDERSTAB.SALENO = SALETAB.SALENO;
UNION, INTERSECT, MINUS
Database System SQL 59
SELECT <table1_column1, table1_column2,…>FROM <table1>[WHERE <condition_1>]<set operation : UNION, INTERSECT, MINUS>SELECT <table2_column1, table2_column2,…>FROM <table2>[WHERE <condition_2>]
NAMEChaiwat
BenjawanKanjanaMitreeTernjai
EMP_ID NAME1001 Chaiwat1004 Benjawan
EMP_ID NAME1007 Kanjana1002 Mitree1003 Ternjaiตาราง EMP_Bangkokตาราง EMP_Country
SELECT NAMEFROM EMP_BangkokUNIONSELECT NAMEFROM EMP_Country;
View คอ ตารางเสมอนทสรางจากการนาขอมลบางคอลมน บางแถวจากตารางตงแต 1 ตารางขนไปมาจดทาเปนแถวและคอลมนเหมอนอยางตาราง ววจะไมไดเกบขอมลอยางตาราง แตเกบเพยงโครงสรางทจะไปเรยกขอมลจากตามรางเทานน มกใชในกรณ ทาใหเหนบางคอลมนบางแถว ทาใหเกดความปลอดภยของขอมลมากขน
นาไปใชในการสอบถาม ชวยใหงายขนและไมซบซอน กาหนดสทธในการใชขอมลทาไดงายขนสามารถนาววทสอบถามขอมลจากหลายๆ ตารางไปแปลงใหเปนขอมลทใชในโปรแกรมอน ๆ ไดงาย
การลบตารางทนามาสรางววจะมผลทาใหววทสรางขนถกลบไปดวย
View
Database System SQL 60
View
Database System SQL 61
ORDERNO AMT ORDERDATE CUSNO SALENO3001 1869 6/3/2000 2008 10073003 76719 6/3/2000 2001 10013002 190010 6/3/2000 2007 10043005 516045 6/3/2000 2003 10023006 109816 6/3/2000 2008 10073009 171323 6/4/2000 2002 10033007 7573 6/4/2000 2004 10023008 472300 6/5/2000 2006 10013010 130995 6/6/2000 2004 10023011 989198 6/6/2000 2006 1001
ORDERNO AMT CUSNO3001 1869 20083003 76719 20013002 190010 20073005 516045 20033006 109816 20083009 171323 20023007 7573 20043008 472300 20063010 130995 20043011 989198 2006
CREATE VIEW VIEW_NAME AS<SQL query statements>;
CREATE VIEW ORDERSVIEW ASSELECT ORDERNO, AMT, CUSNOFROM ORDERSTAB;
การสรางววจากหลายตาราง
View
Database System SQL 62
SALENO SALENAME ADDRESS SALECOM1001 Chaiwat Bangkok 0.121002 Mitree Puket 0.131004 Benjawan Bangkok 0.111007 Kanjana Chiangmai 0.151003 Ternjai Nonthaburi 0.1
ORDERNO AMT ORDERDATE CUSNO SALENO3001 1869 6/3/2000 2008 10073003 76719 6/3/2000 2001 10013002 190010 6/3/2000 2007 10043005 516045 6/3/2000 2003 10023006 109816 6/3/2000 2008 10073009 171323 6/4/2000 2002 10033007 7573 6/4/2000 2004 10023008 472300 6/5/2000 2006 10013010 130995 6/6/2000 2004 10023011 989198 6/6/2000 2006 1001
ตาราง ORDERSTAB
ตาราง SALETAB
วว ORDERSVIEW
CREATE VIEW ORDERSVIEW ASSELECT ORDERNO, AMT, ORDERDATEFROM ORDERSTAB, SALETABWHERE ORDERSTAB.SALENO =
SALETAB.SALENOAND SALETAB.ADDRESS = ‘Bangkok’;
ORDERNO AMT ORDERDATE3003 76719 6/3/20003002 190010 6/3/20003008 472300 6/5/20003011 989198 6/6/2000
การสอบถามขอมลจากตารางดวยการใชอนเดกซจะชวยในการคาหาขอมลไดรวดเรว ถาไมมการทาอนเดกซไวจะตองเปรยบเทยบขอมลในตารางตงแตแถวแรกแลวเปรยบเทยบไปเรอย ๆ จนกวาจะพบ
การลบอนเดกซ
Index
Database System SQL 63
CREATE INDEX INDEX_NAMEON TABLE_NAME(COLUMN_NAME(S) [ASC/DESC];
DROP INDEX INDEX_NAME;
Index
Database System SQL 64
SALENO SALENAME ADDRESS SALECOM1001 Chaiwat Bangkok 0.121002 Mitree Puket 0.131004 Benjawan Bangkok 0.111007 Kanjana Chiangmai 0.151003 Ternjai Nonthaburi 0.1
ตาราง SALETAB
SALENAMEBenjawanChaiwatKanjanaMitreeTernjai
อนเดกซ SALEINDEX
CREATE INDEX SALEINDEXON SALETAB (SALENAME ASC);
MS Access, use SQL
Database System SQL 65 Database System SQL 66
Note
Database Management Application
การประยกตใชฐานขอมล(Chapter 7)
Database System อ.เอญ สรยะฉาย (ENS)
ภาควชาวทยาการคอมพวเตอรและสารสนเทศมหาวทยาลยเทคโนโลยพระจอมเกลาพระนครเหนอ
เพอลดความซาซอนในการจดเกบ ขอมล เพอใหผใชหลายคนสามารถใชขอมลรวมกนได เพอหลกเลยงความขดแยงกนของขอมล เพอใหขอมลมความถกตองและความเชอถอได เพอลดคาใชจายในการจดเกบและเรยกใชขอมล เพอการควบคมและรกษาความปลอดภยของขอมล
วตถประสงคในการประยกตใชฐานขอมล
Database System Database Management Application 2
ปญหาในการบรหารจดการธรกจอยางมประสทธภาพ มสาเหตไดแกขอมลทใชเพอการดาเนนงานอยในสภาพกระจดกระจาย ขาดการเกบรวบรวมอยางเหมาะสม ทาใหไมสะดวกในการคนหาเมอตองการใช ขอมลนน ๆ
ขอมลทใชเพอประกอบการพจารณาตดสนใจไมเพยงพอ หรอไมอาจคนหาขอมลทตองการไดทนเวลา ทาใหตองเสยโอกาสทางการตลาดหรอทาใหการตดสนใจบางเรองตองผดพลาดเสยหาย
การเกบขอมลทซาซอนกนภายในหนวยงานขอมลขาดความเปนเอกภาพเนองมาจากการเกบขอมลทซาซอนกน ทาใหปรากฏขอมลเรองเดยวกนในหลายทและขอมลดงกลาวไมสอดคลองกน
การขาดการประสานงานและความหยอนประสทธภาพในการทางานของผทปฏบตงานกบขอมล
ฐานขอมลในงานบคลากร
Database System Database Management Application 3
การปรบปรงการปฏบตงานโดยนาระบบคอมพวเตอรเขามาใชกบระบบงานททาอย เพอใหเกดความคลองตวในการบรหารและจดการองคกร ทาใหผบรหารไดรบขอมลและสารสนเทศทจะนามาใช ประโยชนเพอการวางแผนและตดสนใจไดอยางถกตองและรวดเรว
ในการเกบบนทกประวตบคลากรของหนวยงานแตละแหง ประวตของบคคลหนงคนจงประกอบดวยขอมลเกยวกบตนเองและครอบครว เชน ชอ-นามสกล วน/เดอน/ปเกด สถานภาพสมรส ชอ-นามสกลของสามหรอภรรยา จานวนบตร ทอย เบอรโทรศพท เปนตน
ขอมลเกยวกบประวตการศกษาในระดบตาง ๆ เชน ระดบการศกษาสงสด สถานศกษาทจบ เกรดเฉลย การทากจกรรมพเศษตาง ๆ เปนตน
ฐานขอมลในงานบคลากร
Database System Database Management Application 4
ขอมลเกยวกบประวตการเขารบการฝกอบรม/สมมนา/ดงาน เชน วน/เดอน/ป/ทเขารบการฝกอบรม/สมมนา/ดงาน สถานทเขารบการฝกอบรม/สมมนา/ดงาน เปนตน
ขอมลเกยวกบประวตการทางานและการไดรบเลอนตาแหนง เชน วน/เดอน/ปทเร มทางาน สถานททางาน อตราเงนเดอน จานวนวนหยด/วนลา เปนตน
ขอมลเกยวกบความสามารถพเศษตาง ๆ เชน ความสามารถทางดานภาษา ความสามารถทางดานคอมพวเตอร เปนตน
ฐานขอมลในงานบคลากร
Database System Database Management Application 5
ความสาคญและประโยชนของการประยกตใชฐานขอมลในงานบคลากรอาจจาแนกตามระดบการทางานไดดงน
ระดบบรหารผบรหารแตละระดบจาเปนตองใชฐานขอมลทางดานบคลากรเพอการวางแผน การตดสนใจ การจดสายงาน การอานวยการ และการควบคมงานใหเหมาะสมในเรองตาง ๆ
ระดบปฏบตการและบรการจะเปนไปตามหนาทและสายงาน ซงการใชฐานขอมลทางดานบคลากรจะมบทบาทในดานการปฏบตงาน การตดตอสอสารภายใน การควบคมงาน และการตดตามงาน
ฐานขอมลในงานบคลากร
Database System Database Management Application 6
ปจจบนสถานศกษาหลายแหงมการนาคอมพวเตอรมาใชในงานบรหารจดการตาง ๆ ในสถานศกษา เชน การจดทาทะเบยนประวตนกศกษาและอาจารย การคดคะแนนและผลการสอบ การจดทาตารางเรยน งานหองสมด เปนตน
พจารณาเฉพาะการลงทะเบยนเรยนตามปกตจะพบวา การเกบบนทกขอมลในเรองเกยวกบ ใบลงทะเบยนของนกศกษาในสถานศกษาแตละแหงประกอบดวย ขอมลเกยวกบนกศกษา เชน รหสประจาตว ชอ-นามสกล รหสวชาเอก คณะ เปนตน
ขอมลเกยวกบอาจารยทปรกษา เชน รหสอาจารยทปรกษา ชออาจารย เปนตน ขอมลเกยวกบชดวชาทลงทะเบยน เชน ภาคการศกษา ปการศกษา รหสชดวชา ชอชดวชา จานวนหนวยกต คาลงทะเบยน เปนตน
ฐานขอมลในงานทะเบยนนกศกษา
Database System Database Management Application 7
ความสาคญและประโยชนของการประยกตใชฐานขอมลในงานทะเบยนนกศกษาอาจจาแนกตามผเกยวของไดดงน
นกศกษา เพอทาการวางแผนและตดสนใจในเรองการเรยน เชน ผลการศกษาหรอเกรดเฉลยในภาคการศกษาทผานมา ขอมลการเรยนเกยวกบวน/เวลา/ชดวชาทเปดสอน/จานวนหนวยกต/ชดวชาทมการจากดจานวน ผเรยน ใบรายงานผลการศกษา/รายละเอยดโครงสรางหลกสตร ฯลฯ
อาจารย การวางแผนและการปฏบตงานในเรองการเรยนการสอน เชน รายชอนกศกษาใน การปรกษา จานวนนกศกษาทลงทะเบยนเรยนในแตละชดวชา การคดคะแนนและผลการสอบ
ฐานขอมลในงานทะเบยนนกศกษา
Database System Database Management Application 8
ประยกตใชฐานขอมลในงานตาง ๆ ไดแก การขายปลก ระบบบญชเจาหน และระบบบญชสนคาคงคลง เปนตน การประยกตใชฐานขอมลกบการขายปลก ทาใหสามารถออกใบเสรจรบเงนใหแกลกคาไดอยางรวดเรวและถกตอง ทาใหสามารถจดทารายงานการขายประจาวนไดอยางรวดเรว
ระบบบญชเจาหน เมอองคกรมการสงซอสนคาเขามา ทาใหสามารถพมพรายงานเรยงตามลาดบวนทคางชาระได ซงรายงานนจะเปนประโยชนตอการนามาใชเพอการบรหารจดการการเงนขององคกรใหมประสทธภาพได และยงสามารถพมพเชคชาระหนรวมทงบนทกรายการชาระหนได จงทาใหสามารถจดทารายงานสรปการจายเงนในแตละวนไดอยางถกตองและรวดเรว
การประยกตใชฐานขอมลกบการขายปลกและการบรหารสนคาคงคลง จะทาให ไดรายงานการขายสนคา การรบ-สงสนคาซงทาใหสามารถจดทารายงานแสดงยอดคงเหลอของสนคาแตละชนด รายงานแสดงรายการสนคา ณ จดสงซอ รวมทงสามารถนามาใชในการพยากรณยอดขายสนคารายการตาง ๆ ได
ฐานขอมลในงานซอขายสนคาในซปเปอรสโตร
Database System Database Management Application 9
บรษท สปปกรซปเปอรสโตร จากด เปนบรษททดาเนนการสงซอสนคาจากบรษทขายสงหลายแหงเพอนามาทาการจาหนายใหแกลกคาทวไป โดยบรษทจะทาการสงซอสนคาแตละรายการจากบรษทขายสงเมอปรมาณสนคาแตละรายการทจดเกบไวในคลงสนคาตากวาปรมาณสนคา ณ จดสงซอ ดงนน บรษทขายสงหนงรายอาจจดสงสนคาใหแก บรษท สปปกรซปเปอรสโตร จากด ไดหลายรายการ โดยสนคาหนงรายการจะมาจากบรษทขายสงเพยงแหงเดยวเทานน
ในการจดสงสนคา บรษทขายสงจะนาสนคามาสงใหแก บรษท สปปกรซปเปอรสโตร จากด ครบทกรายการตามทระบมาในใบสงซอ พรอมทงทาการออกใบสงสนคามาใหหนงใบตอใบสงซอหนงใบ ดงนน ในแตละครงของการจดสงสนคาจากบรษทขายสงหนงแหง บรษท สปปกรซปเปอรสโตร จากด อาจไดรบใบสง สนคาจากบรษทขายสงแหงนนมากกวาหนงใบ โดยเลขทใบสงสนคาแตละใบจากบรษทขายสงแหงนนจะ ไมซากน
กรณศกษา 1
Database System Database Management Application 10
ในการจาหนายสนคาใหแกลกคาทวไป บรษท สปปกรซปเปอรสโตร จากด จะทาการออกใบเสรจ รบเงนใหแกลกคาททาการซอสนคาแตละครง ๆ ละหนงราย ดงนน หากลกคาหนงรายทาการซอสนคา หลายคร ง ลกคาจะไดรบใบเสรจรบเงนหลายใบ โดยเลขทใบเสรจรบเงนแตละใบนนจะไมซากนเลย ซงใบเสรจรบเงนแตละใบอาจมรายการสนคาไดหลายรายการ ฉะนนสนคาหนงรายการอาจมการระบในใบเสรจรบเงนไดหลายใบ
ทงน ในการดาเนนงาน บรษท สปปกรซปเปอรสโตร จากด ตองการรายงานในเรองตาง ๆ ไดแก รายงานการสงซอสนคาจากบรษทขายสง รายงานการจาหนายสนคา และรายงานสนคาคงเหลอในคลง
กรณศกษา (ตอ)
Database System Database Management Application 11
การกาหนด Entity และความสมพนธระหวาง Entity Entity สนคา เปน Entity ทแสดงรายละเอยดของสนคาในบรษท สปปกรซปเปอรสโตร จากด
Entity ใบสงซอสนคา เปน Entity ทแสดงรายละเอยดของใบสงซอสนคาแตละใบ
Entity บรษทขายสง เปน Entity ทแสดงรายละเอยดของบรษทขายสง
Entity ใบสงสนคา เปน Entity ทแสดงรายละเอยดของใบสงสนคาแตละใบ
Entity ใบเสรจรบเงน เปน Entity ทแสดงรายละเอยดของใบเสรจรบเงนแตละใบ
กาหนด Entity
Database System Database Management Application 12
ความสมพนธการจดซอ เปนความสมพนธแบบกลมตอกลมระหวางEntity สนคาและ Entity ใบสงซอสนคา
จงมการแปลงความสมพนธการจดซอเปนความสมพนธระหวางEntity แบบหนงตอกลมดวยการสราง Composite Entity การจดซอ
ความสมพนธการสงซอ เปนความสมพนธแบบหนงตอกลมระหวางEntity บรษทขายสงและ Entity ใบสงซอสนคา
วเคราะหความสมพนธระหวาง Entity
Database System Database Management Application 13
ความสมพนธการนาสง เปนความสมพนธแบบหนงตอกลมระหวางEntity บรษทขายสงและ Entity สนคา
ความสมพนธการออก เปนความสมพนธแบบหนงตอกลมระหวางEntity บรษทขายสงและ Entity ใบสงสนคา
ความสมพนธการจดทา เปนความสมพนธแบบหนงตอหนงระหวางEntity ใบสงซอสนคาและ Entity ใบสงสนคา
วเคราะหความสมพนธระหวาง Entity
Database System Database Management Application 14
ความสมพนธการสง เปนความสมพนธแบบกลมตอกลมระหวาง Entity สนคาและEntity ใบสงสนคา
จงมการแปลงความสมพนธการสงเปนความสมพนธระหวาง Entity แบบหนงตอกลมดวยการสราง Composite Entity การจดทา
ความสมพนธการขาย เปนความสมพนธแบบกลมตอกลมระหวาง Entity สนคาและEntity ใบเสรจรบเงน
จงมการแปลงความสมพนธการจดทาเปนความสมพนธระหวาง Entity แบบหนงตอกลมดวยการสราง Composite Entity การขาย
วเคราะหความสมพนธระหวาง Entity
Database System Database Management Application 15
ER Model
Database System Database Management Application 16
ความสมพนธแบบหนงตอกลมระหวางรเลชนสนคาและรเลชนการจดซอ ความสมพนธแบบหนงตอกลมระหวางรเลชนใบสงซอสนคาและรเลชนการจดซอ ความสมพนธแบบหนงตอกลมระหวางรเลชนบรษทขายสงและรเลชนใบสงซอสนคา ความสมพนธแบบหนงตอกลมระหวางรเลชนบรษทขายสงและรเลชนสนคา ความสมพนธแบบหนงตอกลมระหวางรเลชนบรษทขายสงและรเลชนใบสงสนคา ความสมพนธแบบหนงตอหนงระหวางรเลชนใบสงซอสนคาและรเลชนใบสงสนคา ความสมพนธแบบหนงตอกลมระหวางรเลชนสนคาและรเลชนการสง ความสมพนธแบบหนงตอกลมระหวางรเลชนใบสงสนคาและรเลชนการสง ความสมพนธแบบหนงตอกลมระหวางรเลชนสนคาและรเลชนการขาย ความสมพนธแบบหนงตอกลมระหวางรเลชนใบเสรจรบเงนและรเลชนการขาย
แปลง Entity ใหเปนรเลชน
Database System Database Management Application 17
รเลชนบรษทขายสง
รเลชนสนคา
รเลชนใบสงซอสนคา
รเลชนการจดซอ
กาหนดAttribute
Database System Database Management Application 18
รหสบรษท ชอบรษท ทอย โทรศพท
รหสสนคา ชอสนคา สนคาในคลง ราคาขายตอหนวย จดสงซอ รหสบรษท
เลขทใบสงซอ วนทสงซอ รหสบรษท
เลขทใบสงซอ รหสสนคา จานวนทสงซอ
รเลชนใบสงสนคา
รเลชนการสง
รเลชนใบเสรจรบเงน
รเลชนการขาย
กาหนดAttribute
Database System Database Management Application 19
เลขทใบสงสนคา วนทสงสนคา ราคาขายสงตอหนวย เลขทใบสงซอ รหสบรษท
เลขทใบสงซอ รหสสนคา
เลขทใบเสรจรบเงน วนทออกใบเสรจ
เลขทใบเสรจรบเงน รหสสนคา จานวนทขาย
การทาใหรเลชนมคณสมบตอยในรปแบบทเปนบรรทดฐานโดยทวไปการทาใหแตละรเลชนมคณสมบตอยในรปแบบทเปนบรรทดฐานนนมกจะทาจนถงรปแบบทเปนบรรทดฐานขนท 3 แตอาจมในบางกรณทผออกแบบฐานขอมลจาเปนตองดาเนนการใหรเลชนนนมคณสมบตอยในรปแบบทเปนบรรทดฐานของบอยสและคอดด หรอรปแบบทเปนบรรทดฐานขนท 4 และ 5
เพอขจดปญหาความซาซอนของขอมลทอาจเกดขนในแตละรเลชนจงตองจดทารเลชนใหเปนรปแบบทเปนบรรทดฐาน โดยลาดบแรก คอ การตรวจสอบวา รเลชนมคณสมบตอยในรปแบบทเปนบรรทดฐานใดกอนทจะทาใหเปนรปแบบทเปนบรรทดฐานในขนตอไป
Normalization
Database System Database Management Application 20
การสรางฐานขอมลและตาราง รเลชนบรษทขายสง ประกอบดวย Attribute รหสบรษท ชอบรษท ทอย โทรศพท โดยม Attribute รหสบรษทเปนคยหลก
การใชภาษาSQLกบฐานขอมล
Database System Database Management Application 21
CREATE TABLE SALES_ORG(SALE_NO INTEGER NOT NULL UNIQUE,SALE_NAME CHAR(15) NOT NULL UNIQUE,SALE_ADD CHAR(20),SALE_TEL CHAR(9),PRIMARY KEY (SALE_NO));
SALE_NO SALE_NAME SALE_ADD SALE_TEL
รเลชนสนคา ประกอบดวย Attribute รหสสนคา ชอสนคา สนคาในคลง ราคาขายตอหนวย จดสงซอ โดยม Attribute รหสสนคาเปนคยหลก และ Attribute รหสบรษทเปนคยนอกทใชในการเชอมโยงขอมลกบรเลชนบรษทขายสง
การสรางฐานขอมลและตาราง
Database System Database Management Application 22
CREATE TABLE GOODS(GOODS_NO CHAR(5) NOT NULL UNIQUE,GOODS_NAME CHAR(15) NOT NULL,STOCK INTEGER,SALE_PRI DECIMAL,REORD_PT INTEGER,SALE_NO INTEGER,PRIMARY KEY (GOODS_NO),FOREIGN KEY (SALE_NO) REFERENCES SALES_ORG (SALE_NO));
GOODS_NO GOODS _NAME STOCK SALE_PRI REORD_PT SALE_NO
รเลชนใบเสรจรบเงน ประกอบดวย Attribute เลขทใบเสรจรบเงน วนทออกใบเสรจ โดยม Attribute เลขทใบเสรจรบเงนเปนคยหลก
การสรางฐานขอมลและตาราง
Database System Database Management Application 23
CREATE TABLE BILL(BILL_NO INTEGER NOT NULL UNIQUE,BILL_DATE DATE,PRIMARY KEY (BILL_NO));
BILL_NO BILL_DATE
รเลชนการขาย ประกอบดวย Attribute เลขทใบเสรจรบเงน รหสสนคา จานวนทขาย โดยม Attribute เลขทใบเสรจรบเงนและรหสสนคาประกอบกนเปนคยหลก Attribute เลขทใบเสรจรบเงนเปน คยนอกทใชในการเชอมโยงขอมลกบรเลชนใบเสรจรบเงน และ Attribute รหสสนคาเปนคยนอกทใชใน การเชอมโยงขอมลกบรเลชนสนคา
การสรางฐานขอมลและตาราง
Database System Database Management Application 24
CREATE TABLE DETAIL(BILL_NO INTEGER NOT NULL,GOODS_NO CHAR(5),AMT_SALE INTEGER,PRIMARY KEY (BILL_NO, GOODS_NO),FOREIGN KEY (BILL_NO) REFERENCES BILL(BILL_NO),FOREIGN KEY (GOODS_NO) REFERENCES GOODS (GOODS_NO));
BILL_NO GOODS_NO AMT_SALE
การปอนขอมลลงในตาราง SALES_ORGหากตองการปอนขอมล รหสบรษท คอ 1001 ชอบรษท คอ KIDSIRI ทอย คอ BANGKOK และโทรศพท คอ 028585075
การปอนขอมลลงในตารางขอมล
Database System Database Management Application 25
INSERT INTO SALES_ORG (SALE_NO, SALE_NAME, SALE_ADD, SALE_TEL)VALUES (1001, ‘KIDSIRI’, ‘BANGKOK’, ‘028585075’);
SALE_NO SALE_NAME SALE_ADD SALE_TEL1001 KIDSIRI BANGKOK 28585075
การปอนขอมลลงในตาราง GOODSตองการปอนขอมล รหสสนคา คอ E-003 ชอสนคา คอ VIDEO สนคาในคลง คอ 250 ราคาขายตอหนวย คอ 5500 จดสงซอ คอ 20 และรหสบรษท คอ 1002
การปอนขอมลลงในตารางขอมล
Database System Database Management Application 26
INSERT INTO GOODS (GOODS_NO, GOODS_NAME, STOCK, SALE_PRI,REORD_PT, SALE_NO)
VALUES (‘E-003’, ‘VIDEO’, 250, 5500, 20, 1002);
GOODS_NO GOODS_NAME STOCK SALE_PRI REORD_PT SALE_NOE-003 VIDEO 250 5500 20 1002
การปอนขอมลลงในตาราง BILLตองการปอนขอมล เลขทใบเสรจรบเงน คอ 200889 และวนทออกใบเสรจ คอ 06/03/2001
การปอนขอมลลงในตารางขอมล
Database System Database Management Application 27
BILL_NO BILL_DATE200889 6/3/2001
INSERT INTO BILL (BILL_NO, BILL_DATE)VALUES (200889, 06/03/2001);
การปอนขอมลลงในตาราง DETAILตองการปอนขอมล เลขทใบเสรจรบเงน คอ 200889 รหสสนคา คอ E-
003 และจานวนทขาย คอ 1
การปอนขอมลลงในตารางขอมล
Database System Database Management Application 28
INSERT INTO GOODS (BILL_NO, GOOD_NO, AMT_SALE)VALUES (‘E-003’, ‘E-003’, 1);
BILL_NO GOOD_NO AMT_SALE200889 E-003 1
ตวอยางขอมล
Database System Database Management Application 29
SALE_NO SALE_NAME SALE_ADD SALE_TEL1001 KIDSIRI BANGKOK 285850751002 KIDPHAN SAMUTPRAKARN 272981261003 NAMTHAI NAKORNPRATHOM 342811051004 SAITIP NONTHABURI 244711391005 RAKRAE NONTHABURI 28793991
ตาราง SALES_ORG
GOODS_NO GOODS_NAME STOCK SALE_PRI REORD_PT SALE_NOE-003 VIDEO 50 5500 20 1002E-004 TELEVISION 80 4780 30 1002J-011 ORANGE-JUICE 200 720 200 1004J-014 GRAPE-JUICE 180 720 200 1004K-008 TABLE 25 800 10 1001
ตาราง GOODS
ตวอยางขอมล
Database System Database Management Application 30
BILL_NO BILL_DATE200889 6/3/2001200890 6/3/2001200891 6/3/2001200893 6/4/2001200895 6/4/2001
ตาราง BILL
ตาราง DETAILBILL_NO GOODS_NO AMT_SALE200889 E-003 1200889 E-004 1200889 K-008 1200893 J-011 3200895 J-014 3
ตองการทราบวา สนคาชนดใดมราคาขายตอหนวยเทาใด
การเรยกคนขอมลจากตารางขอมล
Database System Database Management Application 31
SELECT GOODS_NO, GOODS_NAME, SALE_PRIFROM GOODS;
GOODS_NO GOODS_NAME SALE_PRIE-003 VIDEO 5500E-004 TELEVISION 4780J-011 ORANGE-JUICE 720J-014 GRAPE-JUICE 720K-008 TABLE 800
ตองการทราบหมายเลขโทรศพทของบรษทขายสงทอยในจงหวดนนทบร
การเรยกคนขอมลจากตารางขอมล
Database System Database Management Application 32
SELECT SALE_NAME, SALE_ADD, SALE_TELFROM SALEWHERE SALE_ADD = ‘NONTHABURI’;
SALE_NO SALE_NAME SALE_ADD SALE_TEL1004 SAITIP NONTHABURI 244711391005 RAKRAE NONTHABURI 28793991
ตองการทราบวา สนคาชนดใดมปรมาณตากวาหรอเทากบจดสงซอ และสนคาดงกลาวสงมาจากบรษทขายสงใด
การเรยกคนขอมลจากตารางขอมล
Database System Database Management Application 33
SELECT GOODS.GOODS_NO, GOODS.GOODS_NAME, GOODS.STOCK,GOODS.REORD_PT, SALE_ORG.SALE_NAME, SALE_ORG.SALE_TELFROM GOODS, SALE_ORGWHERE GOODS.STOCK <= GOODS.REORD_PTAND GOODS.SALE_NO = SALE_ORG.SALE_NO;
GOODS_NO GOODS_NAME STOCK REORD_PT SALE_NAME SALE_TELJ-011 ORANGE-JUICE 200 200 SAITIP 24471139J-014 GRAPE-JUICE 180 200 SAITIP 24471139
ตองการทราบยอดขายจากการจาหนายสนคาในวนท 06/04/2001
การเรยกคนขอมลจากตารางขอมล
Database System Database Management Application 34
SELECT SUM(GOODS.SALE_PRI * DETAIL.AMT_SALE)FROM BILL, DETAIL, GOODSWHERE BILL.BILL_DATE = 06/04/2001AND BILL.BILL_NO = DETAIL.BILL_NOAND DETAIL.GOODS_NO = GOODS.GOODS_NO;
SUM(GOOD.SALE_PRI * DETAIL.AMT_SALE)4320
ตองการทราบรายการสนคา,รายละเอยดสนคา และยอดขายแตละสนคา ทจาหนายตามใบเสรจรบเงนเลขท 200889
Test
Database System Database Management Application 35
ตองการทราบรายการสนคา,รายละเอยดสนคา และยอดขายแตละสนคา ทจาหนายตามใบเสรจรบเงนเลขท 200889
Solution
Database System Database Management Application 36
BILL_NO BILL_DATE GOODS_NO GOODS_NAME AMT_SALE EXPRESSION200889 6/3/2001 E-003 VIDEO 1 5500200889 6/3/2001 E-004 TELEVISION 1 4780200889 6/3/2001 K-008 TABLE 1 800
SELECT BILL.BILL_NO, BILL.BILLDATE,DETAIL.GOODS_NO, GOODS.GOODS_NAME,DETAIL.AMT_SALE, (GOOD.SALE_PRI * DETAIL.AMT_SALE) AS EXPRESSIONFROM BILL, DETAIL, GOODSWHERE BILL.BILL_NO = 200889AND BILL.BILL_NO = DETAIL.BILL_NOAND DETAIL.GOODS_NO = GOODS.GOODS_NO;
กรณศกษา 2
Database System Database Management Application 37
Entity
Database System Database Management Application 38
ER Diagram
Database System Database Management Application 39
Table
Database System Database Management Application 40
Table
Database System Database Management Application 41
Table
Database System Database Management Application 42
Database System Database Management Application 43
Alternative Orders table structure Create Table
Database System Database Management Application 44
INSERT
Database System Database Management Application 45
UPDATE
Database System Database Management Application 46
DELETE
Database System Database Management Application 47
Note
Database System Database Management Application 48