ฐานขอมลเชงสมพนธฐานขอมลเชงสมพนธRelationaRelationa l Database l Database
3204-2005 ระบบฐานขอมล
อ. ภมพฒน วนพพฒนพงศสาขาวชาคอมพวเตอรธรกจ
Today Topic•ความรเบองตนเกยวกบฐานขอมล
เชงสมพนธ•การสรางตาราง•การสรางความสมพนธระหวาง
ตาราง
ศพทเทคนคศพทเทคนค ศพทเทคนค ศพททวไป
• รเลชน (Relation) ตาราง (Table)• ทเพล (Tuple) แถว (Row) หรอ Reccord• แอททรบวต (Attribute) คอลมน
(Column), Field• คารดนาลต (Cardinality) จำานวนแถว
(Number of Rows)• คยหลก (Primary Key) คาเอกลกษณ
(Unique Identifier)
ความหมายของฐานขอมลเชงความหมายของฐานขอมลเชงสมพนธสมพนธ
เปนการจดเกบรวบรวมขอมลเปนแถวและ คอลมนในลกษณะตารางสองมต ทประกอบไปดวย
Attribute ทแสดงคณสมบตของ Relation หนงๆ
โดย Relation ตางๆ ไดผานกระบวนการทำาให Relation เปนบรรทดฐาน (Normalized)
ในระหวางการออกแบบเพอลดความซำาซอน และเพอใหการจดการฐานขอมลเปนไปอยางมประสทธภาพ
แนวคดเรองโมเดลเชงสมพนธ– ความสมพนธของฐานขอมลจะอยในรปแบบของตาราง– ชอของตารางคอ ชอของความสมพนธ– แตละคอลมนของตารางความสมพนธ เรยกวา แอททร
บว(attribute) ของความสมพนธ– คาและขอบเขตของขอมลของแอททรบวเรยกวา
โดเมน(Domain)– แตละแถวของตารางความสมพนธ เรยกวา แถว หรอ
ทเพล(tuple) ของความสมพนธ
ฐานขอมลเชงสมพนธ (Relational Database)
• ดกรดกรของความสมพนธ คอ จำานวนแอททรบวทมในตารางนน
• CardinalityCardinality ของความสมพนธคอ จำานวนแถวในตาราง
คณสมบตของความสมพนธ
A Sample RelationEmployeeNumber
FirstName LastName
100 Mary Abermany700 Jerry Caldera300 Alea Copley40 Murugan Jacksoni• Deegree = • Cardinality =
Attributes
34
คณลกษณะในการจคณลกษณะในการจดดเกบขอมลเกบขอมลของรเลชนของรเลชน
1. ขอมลในแตละแถวจะไมซำากน
คณลกษณะในการจคณลกษณะในการจดดเกบขอมลเกบขอมลของรเลชนของรเลชน
2. การเรยงลำาดบของขอมลในแตละแถวไมเปนสาระสำาคญ
คณลกษณะในการจคณลกษณะในการจดดเกบขอมลเกบขอมลของรเลชนของรเลชน
3. การเรยงลำาดบของ Attribute จะเรยงลำาดบกอนหลงอยางไรกได
คณลกษณะในการจคณลกษณะในการจดดเกบขอมลเกบขอมลของรเลชนของรเลชน
4. คาของขอมลในแตละ Attribute ของ Tuple หนงๆ จะบรรจ
ขอมลไดเพยงคาเดยว (Single Value)
คณลกษณะในการจคณลกษณะในการจดดเกบขอมลเกบขอมลของรเลชนของรเลชน
5. คาของขอมลในแตละ Attribute จะบรรจคาของขอมล ประเภทเดยวกน
ประเภทของคยประเภทของคย
1. 1. คยหลก คยหลก (Primary Key)(Primary Key)เปน Attribute ทมคณสมบต
ของขอมลทมคาเปนเอกลกษณ หรอไมมคาซำากน
โดยคณสมบตนนจะสามารถระบวาขอมลนนเปนของ Tuple ใด
ประเภทของคยประเภทของคย2.2. คยผสม คยผสม (Composite Key)(Composite Key)
• การนำาฟลดตงแต 2 ฟลดขนไป มารวมกน• เพอใหมคณสมบตเปน Primary Key • เนองจากหากใชฟลดใดฟลดหนงเปน PK จะสงผล
ใหขอมลในแตละเรคอรดซำาซอนได
3. 3. คยคแขง คยคแขง ((Candidates Key)Candidates Key) ในแตละ Relation อาจม Attribute ททำาหนาทเปน
คยหลกไดมากกวาหนง Attribute โดยเรยก Attribute เหลานวา คยคแขง คยคแขง (Candidate Key)(Candidate Key)
• เชน นกศกษาแตละคน ม– รหสประจำาตวนกศกษา– รหสประจำาตวบตรประชาชน
• โดยปกตแลวจะเลอก Candidates Key ทสนทสดเปนPrimary Key
ประเภทของคยประเภทของคย
ประเภทของคยประเภทของคย
โดยเราจะเรยก Candidate Candidate KeyKey ทถกเลอกมาใชเปนคยหลกในตารางวา “Primary Key”Primary Key” และเรยก Candidate KeyCandidate Key ทไมถกเลอกเปนคย
หลกวา “ คยสำารอง คยสำารอง (Alternate Key)”(Alternate Key)”
Key Rule (Continued)
รหส ชอ สกล บตรประชา
ชน
ชนเรยน
สาขา
คยคแขง Candidate Key
คยหลก (Primary Key)คยสำารอง Alternate Key
Key Rule (Continued)• Candidate Key สามารถเปน
Primary Key และ Alternate Key ได
ประเภทของคยประเภทของคย
2. 2. คยนอก คยนอก (Foreign Key)(Foreign Key)คอคยซงประกอบดวยแอทรบวต
หรอกลมของแอตทรบวตในรเลชนหนงซงมคณสมบตเปนคยหลก และไปปรากฏอกรเลชนหนง เพอประโยชนในการเชอมโยงขอมลซงกนและกน
2. 2. คยนอก คยนอก (Foreign Key)(Foreign Key)• เปน Key ทใชในการเชอมโยงขอมลระหวางตารางเขาดวยกน• เชน ฐานขอมลของธนาคารแหงหนงประกอบดวย 2 ตาราง
คอ– ตารางบญชทลกคาเปด (เลขประจำาตวลกคา, ชอ-
นามสกล และประเภทของบญช ) – ตารางลกคา (เลขประจำาตวลกคา, ชอ- นามสกล และทอย)
หากตองการทราบวาลกคารายหนงเปดบญชใดบาง กเชอม โยงขอมล 2 ตารางเขาดวยกน โดยใชเลขประจำาตวลกคา
เปน Foreign Key
ประเภทของคยประเภทของคย
เลขประจำาตวประชาชน ชอ นามสกล อาย
3501552150054 สมชาย แซตง 25
3210077565107 สมศร แซอง 42
4110597520235 สมฤทย แซตง 23
2156800512473 สมปอง แซแต 16
7812350453784 สมชย แซเอง 50
Primary Key ?
ชอ นามสกล อาย เพศ
สมชาย แซตง 25 ชาย
สมศร แซอง 42 หญง
สมฤทย แซตง 23 ชาย
สมปอง แซแต 16 ชาย
สมชย แซเลง 50 ชาย
Primary Key?
ID ชอ นามสกล อาย เพศ
1 สมชาย แซตง 25 ชาย
2 สมศร แซอง 42 หญง
3 สมฤทย แซตง 23
ชาย
4 สมปอง แซแต 16 ชาย
5 สมชย แซเลง 50 ชาย
Primary Key ? ID เพ
ศ
รหสสนคา ชอสนคา จำานวน
รหสพนกงาน รหสสนคา ยอดขาย
Foreign Key ?ตารางสนคา
ตารางยอดขาย
กฎเกยวของกบคยในฐานขอมลกฎเกยวของกบคยในฐานขอมลเชงสมพนธเชงสมพนธ• คอขอบงคบหรอเงอนไขในการอนญาตใหเกบเฉพาะ
ขอมลทเหมาะสมลงในฐานขอมล• เพอใหการเลอกขอมลจากฐานขอมลมความถกตองประเภทของเงอนไข•Key constraint ม 2 รปแบบ คอ
– คยหลก คาจะไมเปน NULL– Null ไมใชคาทเปน 0 (กรณเปนตวเลข )
และไมใช space (ในกรณเปนขอความ)– Null หมายถงไมทราบคาหรอไมรคาแนชด
มคาเปน Null หมายถงอะไร ?• Null เปนศพทเฉพาะใน Relational
Database หมายถง ไมทราบคาขอมลทร แนชด เราสามารถกำาหนดใหคาของคอลมนใดๆ เปน Null ได (ถาเปนไปไดควรใสใหครบจะดทสด ) ยกเวนคอลมนทเปน ยกเวนคอลมนทเปน Primary KeyPrimary Key เพราะจะไมสามารถนำา Primary Key มาใชเขาถงขอมลในแตละแถวได
ตวอยางตารางทแสดงคา Nullรหสนกศกษา รหสวชา เกรดทได4900222 E1824900123 M117 C4900125 P210 B+4900236 E182 A
Referential Integrity เปนการอางองขอมลจากความสมพนธอน คาของ Foreign Key ตองมาจากคาของ Primary Key จากตารางทเกยวของเทานน
กฎเกยวของกบคยในฐานขอมลเชงสมพนธกฎเกยวของกบคยในฐานขอมลเชงสมพนธ
รหสสนคา ชอสนคา จำานวนbk00198 เสอยด 100cd00034 กางเกงขา
ยาง250
รหสพนกงาน รหสสนคา ยอดขายHY001 bk00198 80HY002 cd00034 200
ตารางยอดขาย
ตารางสนคา
กฎการควบคมความถกตองของขอมล (Data Integrity)
ฐานขอมลไมสามารถรไดเองวาขอมลทเกบอยนนสอดคลองกบความเปนจรงหรอไม เราจงตองบอกใหฐานขอมลรดวยสงทเรยกวา กฎการควบคมความถกตองของขอมล หรอ Data IntegrityData Integrity
ตวอยางงานระบบทะเบยนนกศกษาจะม Integrity Rule ดงตอไปน• นกศกษาทกคนตองสงกดคณะทมอยเทานน• วชาทลงทะเบยนตองเปนวชาทเปดสอนเทานน• เกรดเฉลยแตละเทอมจะอยระหวาง 0.00-4.00 เทานน• เกรดทไดจะตองเปน A,B+,B,C+,C,D+,D หรอ F เทานนเปนตน
ประเภทของรเลชนประเภทของรเลชน
1. 1. รเลชนหลก รเลชนหลก (Base (Base Relation)Relation)
Relation ทถกกำาหนดขนเพอเกบขอมลเพอนำาไปใช
โดย Base Relation จะเปน relation ทเกบขอมลอยจรง
ประเภทของรเลชนประเภทของรเลชน
2. 2. วว วว (View)(View)Relation ทถกสรางขนตามความ
ตองการของผใชงานแตละคน โดยจะกำาหนด view ของตนขนมาจากรเลชนหลก
Virtual Table Or Derived Table
Relationship (ความสมพนธ)• แบงออกเปน 3 ประเภท คอ
– One to One Relationship 1( 1– )
– One to Many Relationship 1( – M)
– Many to Many Relationship (M – N)
ความสมพนธแบบหนงตอหนง(One to One Relationship)
• เปนความสมพนธทเขาใจงายทสด• เปนความสมพนธของขอมลใน 1 เรคอรดในตาราง
หนงมความสมพนธกบขอมลอยางมากหนงขอมลกบอกเรคอรดในอกตารางหนงเทานนในลกษณะทเปนหนงตอหนง– นกศกษา 1 คนเทานนทจะเปนนายกองคการนกศกษา
นกศกษา องคการนกศกษาเปนนายกฯ1 1
ความสมพนธแบบหนงตอกลม(One to Many Relationship)
• เปนความสมพนธทพบบอยทสดในฐานขอมล• เปนความสมพนธของขอมลใน 1 เรคอรดในตารางหนง
มความสมพนธกบขอมลมากกวาหนงขอมลกบอกเรคอรดในอกตารางหนงเทานนในลกษณะทเปนหนงตอหนง– นกศกษาแตละคนสามารถลงทะเบยนเรยนไดมากกวา 1 วชา
นกศกษา รายวชาลงทะเบยน1 M
ความสมพนธแบบกลมตอกลม(Many to Many Relationship)
• เปนความสมพนธทพบไมบอยนก• เปนความสมพนธของขอมลในเรคอรดใดๆ ของตาราง
หนงมคาตรงกบขอมลของหลายๆ เรคอรดในตารางอนๆ – รายวชา 1 รายวชามอาจารยสอนไดมากกวา 1 คน– การสงซอสนคาในแตละครงสามารถสงซอสนคาไดมากกวา 1
ชนด
รายวชา อาจารยสอนโดยM N
ขอดของฐานขอมลเชงสมพนธขอดของฐานขอมลเชงสมพนธ 1. ผใชงานเหนภาพของขอมลไดงาย
2. ผใชไมตองรวาขอมลจดเกบจรงอยางไรรวมถงการเขาถง วธการเรยกใชขอมล
3. ภาษาทใชในการเรยกดขอมล มลกษณะ คลายภาษาองกฤษ
และไมจำาเปนตองเขยนเปนลำาดบขนตอน 4. การเรยกใชหรอเชอมโยงขอมลทำาไดงาย
Microsoft Access
ขนตอนการออกแบบฐานขอมล
• วเคราะหตวงาน พจารณาวาตองการวเคราะหตวงาน พจารณาวาตองการเกบขอมลใดในฐานขอมลเกบขอมลใดในฐานขอมล–สอบถามจากผใชงาน
•ขอมลทจะจดเกบ•ตองการรายงาน / แบบฟอรมอยางไร ขอมล
ทใหแสดงมอะไรบาง–ดแบบฟอรม / รายงานทใชงานในขณะนน
ขนตอนการออกแบบฐานขอมล
• จดขอมลใหเปนหมวดหม จดขอมลใหเปนหมวดหม / / กลมกลม–พจารณาจากลกษณะของขอมล–พจารณาจากความสมพนธของขอมล
• พจารณาขอมลแตละกลมมาประกอบดวยพจารณาขอมลแตละกลมมาประกอบดวยขอมลใดบาง ขอมลใดบาง ((โดยละเอยดโดยละเอยด))–ขอมลนกศกษา : รหสประจำาตว , คำานำาหนา ,
ชอ , นามสกล , เพศ , สาขาวชา เปนตน
ขนตอนการออกแบบฐานขอมล
•แปลงขอมลแตละตวใหเปนชอฟลด (Field Name)–ชอฟลดควรเปนภาษาองกฤษ–ความยาวไมควรเกน 64 ตวอกษร
•กำาหนดชนดของขอมล (Data Type ) ทจะจดเกบ•พจารณาเลอกฟลดทเหมาะสมเปนคยหลก (PK)•กำาหนดความสมพนธ (Relationship) ระหวาง
ตาราง
ชนดของขอมล(Data Type)ชนด ขนาด ความหมาย
Text สงสด 255 ตว
อกษร
ตวอกษร ตวเลข หรอเครองหมายตางๆ
ทไมไดใชในการคำานวณMem
oสงสด 6563,
5 ตวอกษร
ตวหนงสอ หรอตวเลขทเปนคำาอธบาย
หรอบกทกทมความยาวมากๆ
Number
1 – 8 ไบท ขอมลตวเลขทงจำานวนเตม หรอทศนยม
ทตองใชในการคำานวณ
ชนด ขนาด ความหมายDate/Time
8 ไบท วนทและเวลาซงมรปแบบการแสดงผลหลายแบบ และสามารถกำาหนดแบบของการแสดงผลเอง
ไดCurrency
8 ไบท เกบขอมลทเปนจำานวนเงน เพอปองกนเรองการปดเศษทศนยม
Auto Number
4 Byte
กำาหนดตวเลขทเรยงลำาดบตอเนองกนโดยอตโนมต โดย
โปรแกรม
ชนดของขอมล(Data Type)
ชนดของขอมล (Data Type)ชนด ขนาด ความหมาย
Yes/No 1 บท เกบขอมลในรปทเปนได 2อยาง
เชน จรง/เทจ ชาย/หญง ถก/ผด
OLE Object
1 GB เกบขอมลทถกสรางโดยโปรแกรมอน
เชน รปภาพ เสยง หรอไฟลขอมล เปนตน
Hyperlink
สงสด 204
8 ตวอกษร
จด Link ตางๆ
Lookup Wizard
4 ไบท ขอมลทเลอกจากตารางอนๆ ทสมพนธกน
ตวอยางการออกแบบฐานขอมล• ตองการสรางฐานขอมลนกศกษาสาขาวชา
คอมพวเตอรธรกจ• ขอมลทจะเกบลงฐานขอมล ประกอบดวย
– รหสนกศกษา– ชอ-นามสกล– หลกสตร– เพศ– E-Mail
– ทอย– หมายเลขโทรศพท– วนเดอนปเกด– อาจารยทปรกษา
ตวอยางการออกแบบฐานขอมล
•แปลงขอมลแตละตวใหเปนชอฟลด (Field Name)– รหสนกศกษา StuID– ชอ-นามสกล StuName– หลกสตร StuMajor– เพศ StuSex– E-mail StuMail
ตวอยางการออกแบบฐานขอมล
•แปลงขอมลแตละตวใหเปนชอฟลด (Field Name)– ทอย StuAddr– หมายเลขโทรศพท StuTel– วนเดอนปเกด StuBirth– อาจารยทปรกษา StuAdvisor
ตวอยางการออกแบบฐานขอมล
•กำาหนดชนดของขอมล (Data Type ) ทจะจดเกบ– รหสนกศกษา StuID Text 8/ ตวอกษร– ชอ-นามสกล StuName Text 30/ ตว
อกษร– หลกสตร StuMajor Text 20/ ตวอกษร– เพศ StuSex Text 5/ ตวอกษร–E-Mail StuMail Text / 20 ตวอกษร
ตวอยางการออกแบบฐานขอมล
•กำาหนดชนดของขอมล (Data Type ) ทจะจดเกบ– ทอย StuAddr Text 20/ ตวอกษร– หมายเลขโทรศพท StuTel Text 9/ ตว
อกษร– วนเดอนปเกด StuBirthday Date 8/ ตว
อกษร– อาจารยทปรกษา StuAdvisor Text 30/ ตว
อกษร
ตวอยางการออกแบบฐานขอมล
•เมอกำาหนดประเภทและขนาดของขอมลแลว พบวา–คณะวทยาการจดการ ม 3 สาขาวชา–อาจารยทปรกษาของนกศกษาสาขาวชา
คอมพวเตอรธรกจมนกศกษาในการดแลมากกวา 1 คน
ตวอยางการออกแบบฐานขอมล
•ดงนนฐานขอมลนกศกษาประกอบดวยตาราง–ตาราง Student
•เกบขอมลนกศกษา–ตาราง Major
•เกบขอมลสาขาวชา–ตาราง Advisor
•เกบขอมลอาจารยทปรกษา
ตวอยางการออกแบบฐานขอมล• ตาราง Student
– รหสนกศกษา StuIDText 8/ ตวอกษร– ชอ-นามสกล StuName Text 30/ ตวอกษร– หอ-หอง StuRoom Text 7/ ตวอกษร– หลกสตร MajID Text 2/ ตวอกษร– เพศ StuSex Text 5/ ตวอกษร– ทอย StuAddr Text 20 ตวอกษร– E-mail StuMail Text 20 ตวอกษร– หมายเลขโทรศพท StuTel Text 9/ ตวอกษร– วนเดอนปเกด StuBirthday Date 8 8 ตวอกษร– อาจารยทปรกษา AdvID Text 8 2 ตวอกษร
ตวอยางการออกแบบฐานขอมล•ตาราง Major
– รหสสาขาวชา MajID Text 8 2 ตวอกษร– ชอหลสาขาวชา MajName Text 30 ตว
อกษร
•ตาราง Advisor– รหสอาจารยทปรกษา AdvID Text 8 2 ตวอกษร– ชออาจารยทปรกษา AdvName Text 30
ตวอกษร
ตวอยางการออกแบบฐานขอมล
•พจารณาเลอกฟลดทเหมาะสมเปนคยหลก (PK)–ตาราง Student กำาหนดให StuID
เปน PK–ตาราง Major กำาหนดให MajID เปน PK–ตาราง Advisor กำาหนดให AdvID
เปน PK
ตวอยางการออกแบบฐานขอมล
•กำาหนดความสมพนธ (Relationship) ระหวางตาราง– ฟลด MajID ตาราง Major กบฟลด MajID ตาราง Student•ความสมพนธแบบ 1 : M
–ฟลด AdvID ตาราง Advisor กบฟลด AdvID ตาราง Student •ความสมพนธแบบ 1 : M
• คลกเลอกเมนTools
• เลอกคำาสงRelationships
การกำาหนดความสมพนธระหวางตาราง
การกำาหนดความสมพนธระหวางตาราง
• ปรากฏหนาตาง Show Table
การกำาหนดความสมพนธระหวางตาราง
•คลกเลอกชอตารางทตองการ
•คลกปม Add
การกำาหนดความสมพนธระหวางตาราง
•ปรากฏหนาตาง Relationship
การกำาหนดความสมพนธระหวางตาราง•การเชอมความสมพนธระหวางตาราง
– คลกเมาสทฟลด MajID ของตารางMajor
– คลกเมาสคางไวแลวลากมายงฟลดMajID ของตาราง Student
–ปลอยเมาส
การกำาหนดความสมพนธระหวางตาราง
• ปรากฏหนาตาง Edit Relationship
Enforce Referential Integrity
•การตรวจสอบความถกตองของความสมพนธ–ปรากฏขอความเตอนเมอมการปอนขอมลทผด
พลาดหรอไมสอดคลองกนระหวางตารางทเชอมความสมพนธ
•ม 2 ประเภทคอ– Cascade Update Related Fields– Cascade Delete Related Records
Cascade Update Related Fields
• กรณทตารางหลกเกบฟลด ID ทเปนคยหลก( PK) และตารางสมพนธเกบ ID เปนคย
นอก ( FK) –MajID ใน Major
เปน PK–MajID ใน Student
เปน FK
• หากผใชแกไขขอมลในฟลด ID ในตารางหลก จะสงผล ใหคา ID ในตารางสมพนธไมสามารถอางองขอมลใน
ตารางหลกได• เพราะโปรแกรม MS-Access ไมยอมใหแกไขขอมลใน
ID ของตารางหลก• ดงนนถาเลอกตวเลอก Cascade Update
Related Fields แลว หากแกไขขอมลใน ฟลด ID ของตารางหลก คา ID ของตารางสมพนธก
จะเปลยนใหเหมอนกนโดยอตโนมต
Cascade Update Related Fields
Cascade Delete Related Records
• มลกษณะการทำางานคลายคลงกบCascade Update Related Fields
• เมอลบระเบยบ (Record) ในตาราง หลก ระเบยนในตารางความสมพนธทม
ความสมพนธกนดวย PK และ FK จะถกลบไปพรอมกน
การกำาหนดความสมพนธระหวางตาราง
•คลกเลอก Enforce Referential Integrity
•คลกปม Create
การกำาหนดความสมพนธระหวางตาราง
• ปรากฏหนาตาง Relationship ทแสดงการเชอมความสมพนธระหวางตาราง
คำาถามทายบท• 1. โครงสรางขอมลเชงสมพนธประกอบดวยอะไรบาง จง
อธบาย• 2 . คณสมบตในการจดเกบขอมลของรเลชนมอะไรบาง• 3 . รเลชนประกอบดวยคยประเภทตางๆ อะไรบาง จงอธบาย
พรอมยกตวอยางประกอบประเภทคยดงกลาว• 4 . Null หมายถงอะไรใน Relational Database• 5 . เหตใดจงตองมการนำา Integrity rule มาใชในฐาน
ขอมล• 6 . ความสมพนธระหวางรเลชนมกประเภท อะไรบาง จงยก
ตวอยางประกอบ (หามยกตวอยางซำากบสไลดประกอบการเรยน)