![]() |
|
![]() |
![]() |
ConstraintsConstraints คือ ข้อบังคับหรือเงื่อนไขในการอนุญาติให้เก็บเฉพาะข้อมูลที่เหมาะสมลงในฐานข้อมูลเพื่อให้การเลือกข้อมูลจากฐานข้อมูลเป็นไปอย่างถูกต้อง ประโยชน์อย่างอื่นของการมีเงื่อนไข ได้แก่
รูปแบบของการแสดงฐานข้อมูล เช่น E/R model เงื่อนไขที่สามารถแสดงได้มีเพียงการประกาศคีย์ ชนิดความสัมพันธ์ ลักษณะการเป็นสมาชิก และความซ้ำซ้อนเท่านั้น ต่างจาก Relational model หรือ SQL ที่สามารถรองรับเงื่อนไขที่มากกว่านี้ได้ คือ
ในการประกาศและบังคับใช้เงื่อนไขเพื่อให้มีผลกับฐานข้อมูล สามารถทำได้โดยการประกาศไว้ในรูปแบบของความสัมพันธ์ หรือประกาศภายหลัง ซึ่งจะมีผลใช้กับฐานข้อมูลที่ใช้อยู่ปัจจุบัน เมื่อประกาศเงื่อนไขบังคับไปแล้ว และมีเหตุการณ์ใดที่ทำให้ผิดเงื่อนไข เช่น คำสั่ง SQL ระบบจัดการฐานข้อมูลก็จะต้องยกเลิกเหตุการณ์หรือคำสั่งนั้นและแจ้งข้อผิดพลาดให้ผู้ใช้ทราบทันที ตัวอย่างที่จะกล่าวต่อไปจะอ้างอิงโดยใช้คำสั่ง SQL ซึ่งเป็นคำสั่งที่นิยมใช้มากในการค้นหาข้อมูลจากฐานข้อมูล Key constraintในฐานข้อมูลเชิงสัมพันธ์มีเงื่อนไขเกี่ยวกับคีย์อยู่ 2 แบบ คือ
การกำหนดคีย์ใน SQL สามารถทำได้สองแบบ คือ การกำหนดให้แอททริบิวแต่ละตัว หรือกำหนดไว้ตั้งแต่ต้นเมื่อสร้างความสัมพันธ์ ดังตัวอย่าง CREATE TABLE Emp (EmpID integer คีย์หลัก, Name char(40), Address char(80) Dept char(3) Office integer, Phone char(10) UNIQUE (name,address)) Referential Integrityการอ้างอิงถึงข้อมูลจากความสัมพันธ์อื่น มีเงื่อนไข คือ
ในการบังคับใช้ Referential Integrity จาก SQL สามารถประกาศไว้กับตัวแอททริบิวโดยตรงหรือประกาศแยกไว้ในความสัมพันธ์ที่ต้องการอ้างอิงถึงแอททริบิวตัวนั้น CREATE TABLE Apply(ID integer REFERENCES Emp(EmpID), Location char(20), Dept char(3), FOREIGN KEY (location) REFERENCES Building(location)) Checkการตรวจสอบค่าของข้อมูลในความสัมพันธ์เป็นเงื่อนไขอย่างหนึ่งที่จะต้องทำตาม เพื่อกรองเฉพาะข้อมูลที่เหมาะสมลงไปเก็บในฐานข้อมูล คำสั่ง CHECK ในภาษา SQL สามารถใช้ร่วมกับคำสั่งสร้างตารางความสัมพันธ์ CREATE TABLE ใน SQL เพื่อตรวจสอบการรับข้อมูลว่าสมควรจะเก็บข้อมูลแถวนั้นในตารางหรือไม่ ยกตัวอย่างเช่น ความสัมพันธ์ Emp มีการเพิ่มอายุของพนักงาน จึงต้องมีการตรวจสอบว่าพนักงานมีอายุเกิน 20 ปีหรือไม่ CREATE TABLE Emp (EmpID integer คีย์หลัก, Name char(40), Age integer, Address char(80) Dept char(3) Office integer, Phone char(10) CHECK (age > 20)) AssertionAssertion คือ เงื่อนไขที่ใช้ทั่วไปในการตรวจสอบความถูกต้องโดยรวมของทุกความสัมพันธ์หรือทุกฐานข้อมูล ซึ่งสามารถใส่เป็นเงื่อนไข เช่น การเปรียบเทียบได้โดยตรง การสร้าง Assertion โดยใช้ SQL สามารถทำได้โดยใช้คำสั่งในรูปแบบต่อไปนี้ CREATE ASSERTION <name> CHECK (<condition>) อาศัยตัวอย่างความสัมพันธ์ Emp ที่ปรับปรุงแล้วข้างต้น CREATE ASSERTION ageover CHECK (NOT EXISTS (SELECT age FROM Emp) > 20) Assertion ที่สร้างไว้จะเป็นเงื่อนไขที่ทำให้ระบบจัดการฐานข้อมูลคอยเช็คว่าเกิดการผิดเงื่อนไขตามที่กำหนดไว้ใน Assertion หรือไม่ ถ้าเกิดการผิดพลาดระบบจัดการฐานข้อมูลก็จะรายงานต่อผู้ใช้ด้วยชื่อของ Assertion ที่สร้างไว้ทันที |
|
|
|