ฐานข้อมูลเชิงสัมพันธ์ relational database...– ค...
TRANSCRIPT
ฐานขอมลเชงสมพนธ Relational Database
4122206A ระบบจดการฐานขอมล 3(2-2)
อ.ชนดา ค าเพง สาขาวชาเทคโนโลยสารสนเทศ
Today Topic • ความรเบองตนเกยวกบฐานขอมลเชงสมพนธ • การสรางฐานขอมลดวย MS Access • การสรางตาราง • การสรางความสมพนธระหวางตาราง
ศพทเทคนค ศพทเทคนค ศพททวไป
• รเลชน (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
• ดกรของความสมพนธ คอ จ านวนแอททรบวทมในตารางนน • Cardinality ของความสมพนธคอ จ านวนแถวในตาราง
คณสมบตของความสมพนธ
A Sample Relation
EmployeeNumber FirstName LastName
100 Mary Abermany
700 Jerry Caldera
300 Alea Copley
40 Murugan Jacksoni
• Deegree = • Cardinality =
Attributes
3 4
คณลกษณะในการจดเกบขอมลของรเลชน
1. ขอมลในแตละแถวจะไมซ ากน
คณลกษณะในการจดเกบขอมลของรเลชน
2. การเรยงล าดบของขอมลในแตละแถวไมเปนสาระส าคญ
คณลกษณะในการจดเกบขอมลของรเลชน
3. การเรยงล าดบของ Attribute จะเรยงล าดบกอนหลงอยางไรกได
คณลกษณะในการจดเกบขอมลของรเลชน
4. คาของขอมลในแตละ Attribute ของ Tuple หนงๆ จะบรรจ ขอมลไดเพยงคาเดยว (Single Value)
คณลกษณะในการจดเกบขอมลของรเลชน
5. คาของขอมลในแตละ Attribute จะบรรจคาของขอมล ประเภทเดยวกน
ประเภทของคย
1. คยหลก (Primary Key) เปน Attribute ทมคณสมบตของขอมลทมคาเปนเอกลกษณ หรอไมมคาซ ากน
โดยคณสมบตนนจะสามารถระบวาขอมลนนเปนของ Tuple ใด
ประเภทของคย 2. คยผสม (Composite Key)
• การน าฟลดตงแต 2 ฟลดขนไปมารวมกน • เพอใหมคณสมบตเปน Primary Key • เนองจากหากใชฟลดใดฟลดหนงเปน PK จะสงผลใหขอมลในแตละ
เรคอรดซ าซอนได
3. คยคแขง (Candidates Key)
ในแตละ Relation อาจม Attribute ทท าหนาทเปนคยหลกไดมากกวาหนง Attribute โดยเรยก Attribute เหลานวา คยคแขง (Candidate Key)
• เชน นกศกษาแตละคน ม – รหสประจ าตวนกศกษา – รหสประจ าตวบตรประชาชน
• โดยปกตแลวจะเลอก Candidates Key ทสนทสดเปน Primary Key
ประเภทของคย
ประเภทของคย
โดยเราจะเรยก Candidate Key ทถกเลอกมาใชเปนคยหลกในตารางวา “Primary Key” และเรยก Candidate Key ทไมถกเลอกเปนคยหลกวา “คยส ารอง (Alternate Key)”
Key Rule (Continued)
รหส ชอ สกล บตรประชาชน
ชนเรยน สาขา
คยคแขง Candidate Key
คยหลก (Primary Key) คยส ารอง Alternate Key
Key Rule (Continued)
• Candidate Key สามารถเปน Primary Key และ Alternate Key ได
ประเภทของคย
2. คยนอก (Foreign Key) คอคยซงประกอบดวยแอทรบวตหรอกลมของ แอตทรบวตในรเลชนหนงซงมคณสมบตเปนคยหลก และไปปรากฏอกรเลชนหนง เพอประโยชนในการเชอมโยงขอมล ซงกนและกน
2. คยนอก (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 Key เพราะจะไมสามารถน า Primary Key มาใชเขาถงขอมลในแตละแถวได
ตวอยางตารางทแสดงคา Null
รหสนกศกษา รหสวชา เกรดทได
4900222 E182
4900123 M117 C
4900125 P210 B+
4900236 E182 A
Referential Integrity
เปนการอางองขอมลจากความสมพนธอน
คาของ Foreign Key ตองมาจากคาของ Primary Key จากตารางทเกยวของเทานน
กฎเกยวของกบคยในฐานขอมลเชงสมพนธ
รหสสนคา ชอสนคา จ านวน
bk00198 เสอยด 100
cd00034 กางเกงขายาง 250
รหสพนกงาน รหสสนคา ยอดขาย
HY001 bk00198 80
HY002 cd00034 200
ตารางยอดขาย
ตารางสนคา
กฎการควบคมความถกตองของขอมล (Data Integrity)
ฐานขอมลไมสามารถรไดเองวาขอมลทเกบอยนนสอดคลองกบความเปนจรงหรอไม เราจงตองบอกใหฐานขอมลรดวยสงทเรยกวา กฎการควบคมความถกตองของขอมล หรอ Data Integrity
ตวอยางงานระบบทะเบยนนกศกษาจะม Integrity Rule ดงตอไปน • นกศกษาทกคนตองสงกดคณะทมอยเทานน • วชาทลงทะเบยนตองเปนวชาทเปดสอนเทานน • เกรดเฉลยแตละเทอมจะอยระหวาง 0.00-4.00 เทานน • เกรดทไดจะตองเปน A,B+,B,C+,C,D+,D หรอ F เทานน เปนตน
ประเภทของรเลชน
1. รเลชนหลก (Base Relation)
Relation ทถกก าหนดขนเพอเกบขอมลเพอน าไปใช โดย Base Relation จะเปน relation ทเกบขอมลอยจรง
ประเภทของรเลชน
2. วว (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 ตวอกษร ตวอกษร ตวเลข หรอเครองหมายตางๆ ทไมไดใชในการค านวณ
Memo สงสด 65,635 ตวอกษร ตวหนงสอ หรอตวเลขทเปนค าอธบาย หรอบกทกทมความยาวมากๆ
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 สงสด 2,048 ตวอกษร
จด 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
– รหสนกศกษา StuID Text / 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 ตวอกษร – อาจารยทปรกษา AdvID Text / 2 ตวอกษร
ตวอยางการออกแบบฐานขอมล • ตาราง Major
– รหสสาขาวชา MajID Text / 2 ตวอกษร – ชอหลสาขาวชา MajName Text / 30 ตวอกษร
• ตาราง Advisor
– รหสอาจารยทปรกษา AdvID Text / 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. ความสมพนธระหวางรเลชนมกประเภท อะไรบาง จงยกตวอยาง
ประกอบ (หามยกตวอยางซ ากบสไลดประกอบการเรยน)