บทที่ 5 การควบคุมความถูกต้องให้กับ...

17
โดย อ.อภิพงศ์ ปิงยศ รายวิชา สธ312 ระบบการจัดการฐานข้อมูลทางธุรกิจ บทที่ 5 การควบคุมความถูกต้องให้กับ ข้อมูล (Data Integrity)

Transcript of บทที่ 5 การควบคุมความถูกต้องให้กับ...

Page 1: บทที่ 5 การควบคุมความถูกต้องให้กับ (Data Integrity) · บทที่ 5 การควบคุมความถูกต้องให้กับ

โดย อ.อภพงศ ปงยศรายวชา สธ312 ระบบการจดการฐานขอมลทางธรกจ

บทท 5 การควบคมความถกตองใหกบขอมล (Data Integrity)

Page 2: บทที่ 5 การควบคุมความถูกต้องให้กับ (Data Integrity) · บทที่ 5 การควบคุมความถูกต้องให้กับ

• Data Integrity

• Keys

• Null

• กฎ Entity Integrity

• กฎ Referential Integrity

Overview

2

Page 3: บทที่ 5 การควบคุมความถูกต้องให้กับ (Data Integrity) · บทที่ 5 การควบคุมความถูกต้องให้กับ

3

• โดยปกตแลวขอมลในฐานขอมลจะมจ านวนมากมาย จงอาจท าใหขอมลทเกบอยในแตละ Relation ไมถกตองตามความเปนจรงได

• จงตองมการก าหนดกฎขนมาเพอควบคมความถกตอง เรยกกฎนวา “Integrity Rule” ซงเปนขอจ ากดตางๆ ทใชควบคมขอมลใหมความถกตองอยเสมอ

Data Integrity

Page 4: บทที่ 5 การควบคุมความถูกต้องให้กับ (Data Integrity) · บทที่ 5 การควบคุมความถูกต้องให้กับ

4

• รหสพนกงานจะตองเปนตวเลขจ านวน 5 ตวเทานน

• วฒการศกษาจะตองเปนคาใดคาหนงจาก 4 คา คอ ต ากวาปรญญาตร ปรญญาตร ปรญญาโท และปรญญาเอก

• พนกงานแตละคนสามารถสงกดแผนกไดเพยงแผนกเดยว

• เงนเดอนของพนกงานจะตองมคามากกวา 0 เสมอ

• เพศของพนกงานตองเปนชายหรอหญง

• สถานะจะตองเปนคาใดคาหนงจาก 3 คา คอ โสด สมรส หรอหยาราง

Data Integrity [cont.]

Page 5: บทที่ 5 การควบคุมความถูกต้องให้กับ (Data Integrity) · บทที่ 5 การควบคุมความถูกต้องให้กับ

5

• Key คอ Attribute หรอกลมของ Attribute ทบงบอกถงความเปนเอกลกษณ (Uniquely) ของแตละ Tuple ในรเลชนนนๆ

Keys

EMPLOYEE (empID, empName, surname, sex, salary, {deptID} )

(empID)

(empName)

(empNo, empName)(empName, surname) Composite Key

Page 6: บทที่ 5 การควบคุมความถูกต้องให้กับ (Data Integrity) · บทที่ 5 การควบคุมความถูกต้องให้กับ

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

Page 7: บทที่ 5 การควบคุมความถูกต้องให้กับ (Data Integrity) · บทที่ 5 การควบคุมความถูกต้องให้กับ

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)

Page 8: บทที่ 5 การควบคุมความถูกต้องให้กับ (Data Integrity) · บทที่ 5 การควบคุมความถูกต้องให้กับ

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 มเอกลกษณเฉพาะ

Page 9: บทที่ 5 การควบคุมความถูกต้องให้กับ (Data Integrity) · บทที่ 5 การควบคุมความถูกต้องให้กับ

9

• Alternate Key หรอ “คยส ารอง” เปน Candidate Key ทไมไดถกเลอกใหเปนคยหลก กลาวคอ คยส ารองนเมอน าไปใชในการคนหาขอมลจากความสมพนธจะไดมากกวาหนง Tuple นนเปนเพราะวาคยส ารองนนจะไมมความเปนเอกลกษณ

• จากในตวอยางอาจใช Candidate Key “EmpName+surname” เปน Alternate Key

Keys (Alternate Key)

Page 10: บทที่ 5 การควบคุมความถูกต้องให้กับ (Data Integrity) · บทที่ 5 การควบคุมความถูกต้องให้กับ

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

Page 11: บทที่ 5 การควบคุมความถูกต้องให้กับ (Data Integrity) · บทที่ 5 การควบคุมความถูกต้องให้กับ

11

Page 12: บทที่ 5 การควบคุมความถูกต้องให้กับ (Data Integrity) · บทที่ 5 การควบคุมความถูกต้องให้กับ

12

• ขอมลทจดเกบอยในฐานขอมล บอยครงทปรากฎขอมลทถกจดเกบไมครบถวน เชน ขอมลวน เดอนปเกดของประชากร ซงบางคนไมสามารถระบได แตเนองจากทกแอตตรบวตในฐานขอมลแบบ Relational จะตองมคาขอมล ดงนน เพอแกปญหาดงกลาวจงไดมการก าหนดคาส าหรบขอมลทไมสามารถระบคาไดขนมา ซงเรยกวา Null

• Null จะมคาทแตกตางจากชองวางหรอจ านวนศนย เนองจาก Null จะไมใชคาทปรากฏอยจรงในโลกของความเปนจรง รวมทงเปนคาทแทนขอมลทไมสามารถระบคาได สวนชองวางหรอศนยนนเปนคาทปรากฏจรง จงถอวาเปนคาของขอมลทระบคาได

Null

Page 13: บทที่ 5 การควบคุมความถูกต้องให้กับ (Data Integrity) · บทที่ 5 การควบคุมความถูกต้องให้กับ

13

EmpID Name Surname Birth_date

00001 สมบรณ สขมาก 1/8/2520

00002 สมเกยรต เจรญพร 11/5/2530

00003 จนจรา แจงเกด Null

00004 น าฝน มวงทอง 2525

Page 14: บทที่ 5 การควบคุมความถูกต้องให้กับ (Data Integrity) · บทที่ 5 การควบคุมความถูกต้องให้กับ

14

• กฎทใชควบคมคาของแอตตรบวตทท าหนาทเปนคยหลก (Primary Key) ของรเลชนใดๆ หามมคาเปน Null

• ถา Candidate Key ใดทก าหนดใหขอมลมคาเปน Null ไดแลว Candidate Key นนจะไมถกเลอกใหท าหนาทเปน Primary Key

Entity Integrity

Page 15: บทที่ 5 การควบคุมความถูกต้องให้กับ (Data Integrity) · บทที่ 5 การควบคุมความถูกต้องให้กับ

15

• เปนกฎทใชรกษาความสมพนธของขอมล ซงเปนกฎเกณฑทก าหนดไววา คาของขอมลในแอตตรบวตทท าหนาทเปน Foreign Key ทกๆ คาไมวาจะเปนของ Relation ใด จะตองสามารถจบคกบคาของขอมลในแอตตรบวตทท าหนาทเปน Candidate Key ในอก Relation หนงไดเสมอ

• แตในแงความเปนจรงแลวคาของ Foreign Key ในบางครงกไมสามารถระบคาได เพราะฉะนนจงก าหนดให Foreign Key มคาเปน Null ได

Referential Integrity

Page 16: บทที่ 5 การควบคุมความถูกต้องให้กับ (Data Integrity) · บทที่ 5 การควบคุมความถูกต้องให้กับ

16

• กรณทมการลบขอมลใน Target Relation จะตองเลอกกระท าอยางใดอยางหนงตอไปน– ไมยอมใหมการลบขอมลเกดขน

– ลบขอมลทงใน Target และ Referencing Relation ทม foreign key อางองอยทงหมด

• กรณทมการแกไขเปลยนแปลงขอมลใน Target Relation ทมความสมพนธกบ Candidate Key ของอกรเลชนหนง จะตองเลอกกระท าอยางใดอยางหนงตอไปน– ไมยอมใหมการลบขอมลเกดขน

– แกไขขอมลทงใน Target และ Referencing Relation ทม foreign key อางองอยทงหมด

Referential Integrity [cont.]

Page 17: บทที่ 5 การควบคุมความถูกต้องให้กับ (Data Integrity) · บทที่ 5 การควบคุมความถูกต้องให้กับ

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

ตองมการลบหรอแกไขทงสองรเลชน