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

Slides:



Advertisements
งานนำเสนอที่คล้ายกัน
ภาควิชาวิทยาการคอมพิวเตอร์ มหาวิทยาลัยสงขลานครินทร์
Advertisements

HO Session 14: Database Design Principles
จัดการฐานข้อมูลด้วย Microsoft Access 2007
Security and Integrity
Entity-Relationship Model
ฐานข้อมูลเชิงสัมพันธ์
ฐานข้อมูลและการออกแบบฐานข้อมูล
ส่วนที่ 4 System Design การออกแบบระบบ.
ส่วนที่ 4 System Design การออกแบบระบบ.
Databases Design Methodology
– Web Programming and Web Database
Structured Query Language (SQL)
บทที่ 3 แบบจำลองข้อมูล Data Models Calculus
Chapter 3 แบบจำลองข้อมูล : Data Models
ความรู้พื้นฐานในการออกแบบ ฐานข้อมูลแบบสัมพันธ์ ธวัชชัย เอี่ยมไพโรจน์
ฐานข้อมูลเชิงสัมพันธ์
การแปลง E-R เป็น Table.
ระบบสารสนเทศเพื่อการขายสินค้า ผ่านเครือข่ายอินเทอร์เน็ต
The Relational Data Model
SQL Structured Query Language.
ฐานข้อมูลเชิงสัมพันธ์ (Relational Database)
1. ศัพท์พื้นฐานของฐานข้อมูล
โมเดลเชิงสัมพันธ์ The relational model.
งานกลุ่ม กลุ่มที่ 3 เรื่อง ฐานข้อมูลเชิงสัมพันธ์
Week 5 Online available at
E-R to Relational Mapping Algorithm
การเขียนโปรแกรมบนเว็บ PHP กับ MySQL
แบบจำลองข้อมูล (Data Model)
หลักการออกแบบฐานข้อมูล
DATABASE RELATIONAL MODEL ER DIAGRAM.
ระบบ ฐานข้อมูล (Database). ระบบฐานข้อมูล หมายถึง โครงสร้างสารสนเทศที่ประกอบด้วย รายละเอียดของข้อมูลที่เกี่ยวข้องกันที่ จะนำมาใช้ในระบบต่าง ๆ ร่วมกัน ระบบฐานข้อมูล.
Chapter 2 Relational Database
ประเภทของคำสั่งของภาษา SQL
Microsoft Access การใช้งานโปรแกรมระบบจัดการฐานข้อมูล
ภาษา SQL (Structured Query Language)
Normalization Lecture 9.
Chapter 3 : แบบจำลองฐานข้อมูล (Data Model)
Integrity Constraints
บทที่ 4 แบบจำลองฐานข้อมูลเชิงสัมพันธ์ Relational Database
บทที่ 4 โครงสร้างฐานข้อมูลแบบ Relational (Relational Database Model)
สถาปัตยกรรมของระบบฐานข้อมูล
Database Planning, Design, and Administration
การเปลี่ยนจาก E-R Diagram เป็นโมเดลเชิงสัมพันธ์ (ตารางข้อมูล)
Chapter 4 : ฐานข้อมูลเชิงสัมพันธ์ (Relational Database)
Chapter 6 : แบบจำลอง E-R (Entity-Relationship Model)
โดย อ.พัฒนพงษ์ โพธิปัสสา
Chapter 9 : ภาษาทางด้านฐานข้อมูลคำสั่ง SQL (SQL Command)
บทที่ 3 แบบจำลองข้อมูล Data Models
การจัดการฐานข้อมูลด้วยโปรแกรม MS Access 2013
7 Entity-Relationship Modeling แผนภาพความสัมพันธ์ ORACLE MS SQL SERVER
บทที่ 3 แบบจำลองของฐานข้อมูล (Database Model)
E-R Diagram (Entity Relationship Diagram)
บทที่ 4 ฐานข้อมูล.
เพศสัมพันธ์ในวัยเรียน
ความรู้เบื้องต้นเกี่ยวกับระบบฐานข้อมูล
การออกแบบโครงสร้างฐานข้อมูลด้วย E-R Model และการแปลงเป็นรีเลชัน
Application of Software Package in Office
โครงสร้างข้อมูล( Data Structure)
กฎการ Normalization 1. จะต้องไม่มีเซลล์ใดในตารางที่มีค่าเกิน 1 ค่า ดังนั้นเราสามารถทำให้ตารางผ่านกฎข้อที่ 1 ได้ด้วยการแยกเซลล์ที่มีค่าเกินหนึ่งออกเป็นเรคคอร์ดใหม่
การออกแบบฐานข้อมูล.
สรุปขั้นตอนการสร้าง E-R Diagram
บทที่ 4 รูปแบบฐานข้อมูลเชิงสัมพันธ์ The Relational model
บทที่ 2 รูปแบบของฐานข้อมูล
Key and SQL วรวิทย์ พูลสวัสดิ์.
ฐานข้อมูลเชิงสัมพันธ์ Relational Database
제 10장 데이터베이스.
[ บทที่ 5 ] การออกแบบฐานข้อมูล
Chapter 7 : ขั้นตอนการแปลงแผนภาพ ER มาเป็นรีเลชั่น ( ER-to-Relational Mapping Algorithm ) อ.คเชนทร์ ซ่อนกลิ่น.
CIT2205 โปรแกรมประยุกต์ด้านการจัดการฐานข้อมูล
Database Design & Development
ใบสำเนางานนำเสนอ:

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

Overview Data Integrity Keys Null กฎ Entity Integrity กฎ Referential Integrity

Data Integrity โดยปกติแล้วข้อมูลในฐานข้อมูลจะมีจำนวน มากมาย จึงอาจทำให้ข้อมูลที่เก็บอยู่ในแต่ละ Relation ไม่ถูกต้องตามความเป็นจริงได้ จึงต้องมีการกำหนดกฎขึ้นมาเพื่อควบคุมความ ถูกต้อง เรียกกฎนี้ว่า “Integrity Rule” ซึ่งเป็น ข้อจำกัดต่างๆ ที่ใช้ควบคุมข้อมูลให้มีความถูกต้อง อยู่เสมอ

Data Integrity [cont.] รหัสพนักงานจะต้องเป็นตัวเลขจำนวน 5 ตัวเท่านั้น วุฒิการศึกษาจะต้องเป็นค่าใดค่าหนึ่งจาก 4 ค่า คือ ต่ำกว่าปริญญาตรี ปริญญาตรี ปริญญาโท และปริญญา เอก พนักงานแต่ละคนสามารถสังกัดแผนกได้เพียงแผนกเดียว เงินเดือนของพนักงานจะต้องมีค่ามากกว่า 0 เสมอ เพศของพนักงานต้องเป็นชายหรือหญิง สถานะจะต้องเป็นค่าใดค่าหนึ่งจาก 3 ค่า คือ โสด สมรส หรือหย่าร้าง

Keys Key คือ Attribute หรือกลุ่มของ Attribute ที่บ่งบอกถึง ความเป็นเอกลักษณ์ (Uniquely) ของแต่ละ Tuple ใน รีเลชั่นนั้นๆ EMPLOYEE (empID, empName, surname, sex, salary, {deptID} ) (empID) (empName) (empNo, empName) (empName, surname) Composite Key

Keys [cont.] EMPLOYEE EmpID EmpName Surname Sex Salary DeptID 00001 สมบูรณ์ สุขมาก M 10,000 01 00002 สมเกียรติ เจริญพร 8,000 02 00003 จันจิรา แจ้งเกิด F 12,000 03 00004 น้ำฝน ม่วงทอง 9,500

Keys (Candidate Key) Candidate Key คือ “คีย์คู่แข่ง” ซึ่งก็คือ Key ที่มีขนาด เล็กที่สุด ที่สามารถระบุความแตกต่างในแต่ละ Tuple บน รีเลชั่นได้ กล่าวคือเป็น Key ที่ไม่มี Subset ของตัวเอง เพราะฉะนั้น คีย์คู่แข็งก็คือ empID, empName EMPLOYEE (empID, empName, surname, sex, salary, {deptID} ) (empID) (empName) (empNo, empName) (empName, surname)

Keys (Primary Key) Primary Key คือ Candidate Key ที่ผ่านการคัดเลือก เพื่อให้เป็นคีย์หลัก และใช้ในการอ้างอิงความเป็น เอกลักษณ์ (Uniquely) ของรีเลชั่นนั้นๆ EMPLOYEE EmpID EmpName Surname Sex Salary DeptID 00001 สมบูรณ์ สุขมาก M 10,000 01 00002 สมเกียรติ เจริญพร 8,000 02 00003 จันจิรา แจ้งเกิด F 12,000 03 00004 น้ำฝน ม่วงทอง 9,500 ในตัวอย่างนี้ควรใช้ EmpID เป็น Primary Key เพราะจะทำให้ Tuple มีเอกลักษณ์เฉพาะ

Keys (Alternate Key) Alternate Key หรือ “คีย์สำรอง” เป็น Candidate Key ที่ ไม่ได้ถูกเลือกให้เป็นคีย์หลัก กล่าวคือ คีย์สำรองนี้เมื่อ นำไปใช้ในการค้นหาข้อมูลจากความสัมพันธ์จะได้มากกว่า หนึ่ง Tuple นั่นเป็นเพราะว่าคีย์สำรองนั้นจะไม่มีความเป็น เอกลักษณ์ จากในตัวอย่างอาจใช้ Candidate Key “EmpName+surname” เป็น Alternate Key

Keys (Foreign Key) Foreign Key หรือ “คีย์นอก” เป็นคีย์ที่ใช้สำหรับเชื่อมโยง ความสัมพันธ์ระหว่างรีเลชั่น หรือกล่าวอีกนัยหนึ่งว่าเป็น Attribute หนึ่งในรีเลชั่น ที่ ใช้อ้างอิงไปยัง Attribute ที่ทำหน้าที่เป็น Candidate Key (มักเป็น Primary Key) ของอีกรีเลชั่นหนึ่งที่มี ความสัมพันธ์กัน Foreign Key Candidate Key EMPLOYEE DEPARTMENT EmpID Name Surname Sex Salary DeptID 00001 สมบูรณ์ สุขมาก M 10,000 01 00002 สมเกียรติ เจริญพร 8,000 02 00003 จันจิรา แจ้งเกิด F 12,000 03 00004 น้ำฝน ม่วงทอง 9,500 DeptID DeptName 01 ฝ่ายบุคคล 02 ฝ่ายไอที 03 ฝ่ายการตลาด 10

Null ข้อมูลที่จัดเก็บอยู่ในฐานข้อมูล บ่อยครั้งที่ปรากฎข้อมูลที่ ถูกจัดเก็บไม่ครบถ้วน เช่น ข้อมูลวัน เดือนปีเกิดของ ประชากร ซึ่งบางคนไม่สามารถระบุได้ แต่เนื่องจากทุก แอตตริบิวต์ในฐานข้อมูลแบบ Relational จะต้องมีค่า ข้อมูล ดังนั้น เพื่อแก้ปัญหาดังกล่าวจึงได้มีการกำหนดค่า สำหรับข้อมูลที่ไม่สามารถระบุค่าได้ขึ้นมา ซึ่งเรียกว่า Null Null จะมีค่าที่แตกต่างจากช่องว่างหรือจำนวนศูนย์ เนื่องจาก Null จะไม่ใช่ค่าที่ปรากฏอยู่จริงในโลกของ ความเป็นจริง รวมทั้งเป็นค่าที่แทนข้อมูลที่ไม่สามารถระบุ ค่าได้ ส่วนช่องว่างหรือศูนย์นั้นเป็นค่าที่ปรากฏจริง จึงถือ ว่าเป็นค่าของข้อมูลที่ระบุค่าได้

EmpID Name Surname Birth_date 00001 สมบูรณ์ สุขมาก 1/8/2520 00002 สมเกียรติ เจริญพร 11/5/2530 00003 จันจิรา แจ้งเกิด Null 00004 น้ำฝน ม่วงทอง 2525

Entity Integrity กฎที่ใช้ควบคุมค่าของแอตตริบิวต์ที่ทำหน้าที่เป็นคีย์หลัก (Primary Key) ของรีเลชั่นใดๆ ห้ามมีค่าเป็น Null ถ้า Candidate Key ใดที่กำหนดให้ข้อมูลมีค่าเป็น Null ได้แล้ว Candidate Key นั้นจะไม่ถูกเลือกให้ทำหน้าที่เป็น Primary Key

Referential Integrity เป็นกฎที่ใช้รักษาความสัมพันธ์ของข้อมูล ซึ่งเป็นกฎเกณฑ์ ที่กำหนดไว้ว่า ค่าของข้อมูลในแอตตริบิวต์ที่ทำหน้าที่เป็น Foreign Key ทุกๆ ค่าไม่ว่าจะเป็นของ Relation ใด จะต้องสามารถจับคู่กับค่าของข้อมูลในแอตตริบิวต์ที่ทำ หน้าที่เป็น Candidate Key ในอีก Relation หนึ่งได้ เสมอ แต่ในแง่ความเป็นจริงแล้วค่าของ Foreign Key ใน บางครั้งก็ไม่สามารถระบุค่าได้ เพราะฉะนั้นจึงกำหนดให้ Foreign Key มีค่าเป็น Null ได้

Referential Integrity [cont.] กรณีที่มีการลบข้อมูลใน Target Relation จะต้องเลือก กระทำอย่างใดอย่างหนึ่งต่อไปนี้ ไม่ยอมให้มีการลบข้อมูลเกิดขึ้น ลบข้อมูลทั้งใน Target และ Referencing Relation ที่มี foreign key อ้างอิงอยู่ทั้งหมด กรณีที่มีการแก้ไขเปลี่ยนแปลงข้อมูลใน Target Relation ที่มีความสัมพันธ์กับ Candidate Key ของอีกรีเลชั่นหนึ่ง จะต้องเลือกกระทำอย่างใดอย่างหนึ่งต่อไปนี้ แก้ไขข้อมูลทั้งใน Target และ Referencing Relation ที่มี foreign key อ้างอิงอยู่ทั้งหมด

ต้องมีการลบหรือแก้ไขทั้งสองรีเลชั่น Foreign Key Candidate Key EMPLOYEE DEPARTMENT EmpID Name Surname Sex Salary DeptID 00001 สมบูรณ์ สุขมาก M 10,000 01 00002 สมเกียรติ เจริญพร 8,000 02 00003 จันจิรา แจ้งเกิด F 12,000 03 00004 น้ำฝน ม่วงทอง 9,500 DeptID DeptName 01 ฝ่ายบุคคล 02 ฝ่ายไอที 03 ฝ่ายการตลาด 17 ต้องมีการลบหรือแก้ไขทั้งสองรีเลชั่น