โดย อ.อภพงศ ปงยศรายวชา สธ312 ระบบการจดการฐานขอมลทางธรกจ
บทท 5 การควบคมความถกตองใหกบขอมล (Data Integrity)
• Data Integrity
• Keys
• Null
• กฎ Entity Integrity
• กฎ Referential Integrity
Overview
2
3
• โดยปกตแลวขอมลในฐานขอมลจะมจ านวนมากมาย จงอาจท าใหขอมลทเกบอยในแตละ Relation ไมถกตองตามความเปนจรงได
• จงตองมการก าหนดกฎขนมาเพอควบคมความถกตอง เรยกกฎนวา “Integrity Rule” ซงเปนขอจ ากดตางๆ ทใชควบคมขอมลใหมความถกตองอยเสมอ
Data Integrity
4
• รหสพนกงานจะตองเปนตวเลขจ านวน 5 ตวเทานน
• วฒการศกษาจะตองเปนคาใดคาหนงจาก 4 คา คอ ต ากวาปรญญาตร ปรญญาตร ปรญญาโท และปรญญาเอก
• พนกงานแตละคนสามารถสงกดแผนกไดเพยงแผนกเดยว
• เงนเดอนของพนกงานจะตองมคามากกวา 0 เสมอ
• เพศของพนกงานตองเปนชายหรอหญง
• สถานะจะตองเปนคาใดคาหนงจาก 3 คา คอ โสด สมรส หรอหยาราง
Data Integrity [cont.]
5
• Key คอ Attribute หรอกลมของ Attribute ทบงบอกถงความเปนเอกลกษณ (Uniquely) ของแตละ Tuple ในรเลชนนนๆ
Keys
EMPLOYEE (empID, empName, surname, sex, salary, {deptID} )
(empID)
(empName)
(empNo, empName)(empName, surname) Composite Key
6
Keys [cont.]
EmpID EmpName Surname Sex Salary DeptID
00001 สมบรณ สขมาก M 10,000 01
00002 สมเกยรต เจรญพร M 8,000 02
00003 จนจรา แจงเกด F 12,000 03
00004 น าฝน มวงทอง F 9,500 01
EMPLOYEE
7
• Candidate Key คอ “คยคแขง” ซงกคอ Key ทมขนาดเลกทสด ทสามารถระบความแตกตางในแตละ Tuple บนรเลชนได กลาวคอเปน Key ทไมม Subset ของตวเอง เพราะฉะนน คยคแขงกคอ empID, empName
Keys (Candidate Key)
EMPLOYEE (empID, empName, surname, sex, salary, {deptID} )
(empID)
(empName)
(empNo, empName)
(empName, surname)
8
• Primary Key คอ Candidate Key ทผานการคดเลอกเพอใหเปนคยหลก และใชในการอางองความเปนเอกลกษณ (Uniquely) ของรเลชนนนๆ
Keys (Primary Key)
EmpID EmpName Surname Sex Salary DeptID
00001 สมบรณ สขมาก M 10,000 01
00002 สมเกยรต เจรญพร M 8,000 02
00003 จนจรา แจงเกด F 12,000 03
00004 น าฝน มวงทอง F 9,500 01
EMPLOYEE
ในตวอยางนควรใช EmpID เปน Primary Key เพราะจะท าให Tuple มเอกลกษณเฉพาะ
9
• Alternate Key หรอ “คยส ารอง” เปน Candidate Key ทไมไดถกเลอกใหเปนคยหลก กลาวคอ คยส ารองนเมอน าไปใชในการคนหาขอมลจากความสมพนธจะไดมากกวาหนง Tuple นนเปนเพราะวาคยส ารองนนจะไมมความเปนเอกลกษณ
• จากในตวอยางอาจใช Candidate Key “EmpName+surname” เปน Alternate Key
Keys (Alternate Key)
10
• Foreign Key หรอ “คยนอก” เปนคยทใชส าหรบเชอมโยงความสมพนธระหวางรเลชน
• หรอกลาวอกนยหนงวาเปน Attribute หนงในรเลชน ทใชอางองไปยง Attribute ทท าหนาทเปน Candidate Key (มกเปน Primary Key) ของอกรเลชนหนงทมความสมพนธกน
Keys (Foreign Key)
10
EmpID Name Surname Sex Salary DeptID
00001 สมบรณ สขมาก M 10,000 01
00002 สมเกยรต เจรญพร M 8,000 02
00003 จนจรา แจงเกด F 12,000 03
00004 น าฝน มวงทอง F 9,500 01
EMPLOYEE
DeptID DeptName
01 ฝายบคคล
02 ฝายไอท
03 ฝายการตลาด
DEPARTMENT
Foreign Key Candidate Key
11
12
• ขอมลทจดเกบอยในฐานขอมล บอยครงทปรากฎขอมลทถกจดเกบไมครบถวน เชน ขอมลวน เดอนปเกดของประชากร ซงบางคนไมสามารถระบได แตเนองจากทกแอตตรบวตในฐานขอมลแบบ Relational จะตองมคาขอมล ดงนน เพอแกปญหาดงกลาวจงไดมการก าหนดคาส าหรบขอมลทไมสามารถระบคาไดขนมา ซงเรยกวา Null
• Null จะมคาทแตกตางจากชองวางหรอจ านวนศนย เนองจาก Null จะไมใชคาทปรากฏอยจรงในโลกของความเปนจรง รวมทงเปนคาทแทนขอมลทไมสามารถระบคาได สวนชองวางหรอศนยนนเปนคาทปรากฏจรง จงถอวาเปนคาของขอมลทระบคาได
Null
13
EmpID Name Surname Birth_date
00001 สมบรณ สขมาก 1/8/2520
00002 สมเกยรต เจรญพร 11/5/2530
00003 จนจรา แจงเกด Null
00004 น าฝน มวงทอง 2525
14
• กฎทใชควบคมคาของแอตตรบวตทท าหนาทเปนคยหลก (Primary Key) ของรเลชนใดๆ หามมคาเปน Null
• ถา Candidate Key ใดทก าหนดใหขอมลมคาเปน Null ไดแลว Candidate Key นนจะไมถกเลอกใหท าหนาทเปน Primary Key
Entity Integrity
15
• เปนกฎทใชรกษาความสมพนธของขอมล ซงเปนกฎเกณฑทก าหนดไววา คาของขอมลในแอตตรบวตทท าหนาทเปน Foreign Key ทกๆ คาไมวาจะเปนของ Relation ใด จะตองสามารถจบคกบคาของขอมลในแอตตรบวตทท าหนาทเปน Candidate Key ในอก Relation หนงไดเสมอ
• แตในแงความเปนจรงแลวคาของ Foreign Key ในบางครงกไมสามารถระบคาได เพราะฉะนนจงก าหนดให Foreign Key มคาเปน Null ได
Referential Integrity
16
• กรณทมการลบขอมลใน Target Relation จะตองเลอกกระท าอยางใดอยางหนงตอไปน– ไมยอมใหมการลบขอมลเกดขน
– ลบขอมลทงใน Target และ Referencing Relation ทม foreign key อางองอยทงหมด
• กรณทมการแกไขเปลยนแปลงขอมลใน Target Relation ทมความสมพนธกบ Candidate Key ของอกรเลชนหนง จะตองเลอกกระท าอยางใดอยางหนงตอไปน– ไมยอมใหมการลบขอมลเกดขน
– แกไขขอมลทงใน Target และ Referencing Relation ทม foreign key อางองอยทงหมด
Referential Integrity [cont.]
17
17
EmpID Name Surname Sex Salary DeptID
00001 สมบรณ สขมาก M 10,000 01
00002 สมเกยรต เจรญพร M 8,000 02
00003 จนจรา แจงเกด F 12,000 03
00004 น าฝน มวงทอง F 9,500 01
EMPLOYEE
DeptID DeptName
01 ฝายบคคล
02 ฝายไอท
03 ฝายการตลาด
DEPARTMENT
Foreign Key Candidate Key
ตองมการลบหรอแกไขทงสองรเลชน