คำจำกัดความที่ชัดเจนของข้อ จำกัด ของฐานข้อมูลคืออะไร? เหตุใดข้อ จำกัด จึงมีความสำคัญสำหรับฐานข้อมูล ประเภทของข้อ จำกัด คืออะไร?
คำจำกัดความที่ชัดเจนของข้อ จำกัด ของฐานข้อมูลคืออะไร? เหตุใดข้อ จำกัด จึงมีความสำคัญสำหรับฐานข้อมูล ประเภทของข้อ จำกัด คืออะไร?
คำตอบ:
ข้อ จำกัด เป็นส่วนหนึ่งของข้อกำหนดสกีมาฐานข้อมูล
ข้อ จำกัด มักจะเกี่ยวข้องกับตารางและสร้างด้วยคำสั่งCREATE CONSTRAINT
หรือCREATE ASSERTION
SQL
พวกเขากำหนดคุณสมบัติบางอย่างที่ข้อมูลในฐานข้อมูลต้องเป็นไปตาม สามารถนำไปใช้กับคอลัมน์ทั้งตารางมากกว่าหนึ่งตารางหรือทั้งสคีมา ระบบฐานข้อมูลที่เชื่อถือได้ช่วยให้มั่นใจได้ว่ามีข้อ จำกัด อยู่ตลอดเวลา (ยกเว้นในธุรกรรมซึ่งเรียกว่าข้อ จำกัด รอการตัดบัญชี)
ข้อ จำกัด ทั่วไปคือ:
เพื่อให้เข้าใจว่าเหตุใดเราจึงต้องการข้อ จำกัด อันดับแรกคุณต้องเข้าใจคุณค่าของความสมบูรณ์ของข้อมูล
ความสมบูรณ์ของข้อมูลหมายถึงความถูกต้องของข้อมูล ข้อมูลของคุณถูกต้องหรือไม่ ข้อมูลของคุณแสดงถึงสิ่งที่คุณออกแบบไว้หรือไม่
คำถามแปลก ๆ ที่ฉันถามคุณอาจคิด แต่น่าเศร้าที่บ่อยเกินไปฐานข้อมูลเต็มไปด้วยข้อมูลขยะการอ้างอิงแถวในตารางอื่นที่ไม่ถูกต้องซึ่งหายไปนาน ... และค่าที่ไม่ได้มีความหมายอะไรกับตรรกะทางธุรกิจ ของคุณอีกต่อไป
ขยะทั้งหมดนี้ไม่ได้มีแนวโน้มที่จะลดประสิทธิภาพการทำงานของคุณเพียงอย่างเดียว แต่ยังเป็นระเบิดเวลาภายใต้ตรรกะของแอปพลิเคชันของคุณซึ่งในที่สุดจะดึงข้อมูลที่ไม่ได้ออกแบบมาให้เข้าใจ
ข้อ จำกัด คือกฎที่คุณสร้างขึ้นในเวลาออกแบบเพื่อป้องกันข้อมูลของคุณไม่ให้เสียหาย มันเป็นสิ่งสำคัญสำหรับการอยู่รอดของหัวใจลูกของคุณเป็นเวลานานของโซลูชันฐานข้อมูล โซลูชันของคุณจะสูญสลายไปตามกาลเวลาและการใช้งานที่หนักหน่วง
คุณต้องยอมรับว่าการออกแบบการออกแบบฐานข้อมูลของคุณเป็นเพียงจุดเริ่มต้นของโซลูชันของคุณ หลังจากนั้นมันจะต้องอยู่ (หวังว่า) เป็นเวลานานและอดทนต่อพฤติกรรม (แปลก ๆ ) ทุกประเภทของผู้ใช้ปลายทาง (เช่นแอปพลิเคชันไคลเอนต์) แต่ขั้นตอนการออกแบบในการพัฒนานี้มีความสำคัญอย่างยิ่งต่อความสำเร็จในระยะยาวของโซลูชันของคุณ! เคารพมันและให้ความสำคัญกับเวลาและความสนใจที่มันต้องการ
นักปราชญ์คนหนึ่งเคยกล่าวไว้ว่า"ข้อมูลต้องปกป้องตัวเอง!" . และนี่คือสิ่งที่มีข้อ จำกัด เป็นกฎที่ทำให้ข้อมูลในฐานข้อมูลของคุณถูกต้องมากที่สุด
มีหลายวิธีในการทำเช่นนี้ แต่โดยทั่วไปแล้วพวกเขาต้มลงไปที่:
sys.check_constraints
มุมมองในฐานข้อมูลตัวอย่าง AdventureWorksดังที่ฉันได้บอกไว้ที่นี่จะต้องใช้การพิจารณาอย่างละเอียดถี่ถ้วนเพื่อสร้างแนวทางการป้องกันที่ดีที่สุดและเหมาะสมที่สุดสำหรับการออกแบบฐานข้อมูลของคุณ ก่อนอื่นคุณต้องทราบถึงความเป็นไปได้และข้อ จำกัด ของประเภทข้อ จำกัด ต่างๆข้างต้น การอ่านเพิ่มเติมอาจรวมถึง:
ข้อ จำกัด สำคัญต่างประเทศ - Microsoft
ข้อ จำกัด ของคีย์ต่างประเทศ - w3schools
โชคดี! ;)
ข้อ จำกัด ไม่ใช่อะไรนอกจากกฎเกี่ยวกับข้อมูล ข้อมูลใดถูกต้องและข้อมูลใดไม่ถูกต้องสามารถกำหนดได้โดยใช้ข้อ จำกัด ดังนั้นจึงสามารถรักษาความสมบูรณ์ของข้อมูลได้ ต่อไปนี้เป็นข้อ จำกัด ที่ใช้กันอย่างแพร่หลาย:
NOT NULL
. ที่นี่เราสามารถระบุข้อมูลที่เราสามารถป้อนสำหรับคอลัมน์นั้นและสิ่งที่ไม่คาดหวังสำหรับคอลัมน์นั้นสามารถใช้ข้อ จำกัด เพื่อบังคับใช้คุณสมบัติเฉพาะของข้อมูล ตัวอย่างง่ายๆคือการ จำกัด คอลัมน์ int ไว้ที่ค่า [0-100000] บทนำนี้ดูดี
ข้อ จำกัด กำหนดว่าค่าใดที่ใช้ได้กับข้อมูลในฐานข้อมูล ตัวอย่างเช่นคุณสามารถบังคับใช้ค่าที่ไม่เป็นโมฆะ ( NOT NULL
ข้อ จำกัด ) หรือว่ามีอยู่เป็นข้อ จำกัด เฉพาะในตารางอื่น ( FOREIGN KEY
ข้อ จำกัด ) หรือค่าที่ไม่ซ้ำกันภายในตารางนี้ ( UNIQUE
ข้อ จำกัด หรือPRIMARY KEY
ข้อ จำกัดอาจขึ้นอยู่กับความต้องการของคุณ ). สามารถใช้CHECK
ข้อ จำกัดทั่วไปเพิ่มเติมได้โดยใช้ข้อ จำกัด
MSDN เอกสารสำหรับ SQL Server 2008 จำกัดน่าจะเป็นสถานที่เริ่มต้นที่ดีที่สุดของคุณ
UNIQUE
ข้อ จำกัด (ซึ่งPRIMARY KEY
ข้อ จำกัด เป็นตัวแปร) ตรวจสอบว่าค่าทั้งหมดของเขตข้อมูลที่ระบุไม่ซ้ำกันในตาราง นี่คือX
- ข้อ จำกัด ของแกน (บันทึก)
CHECK
ข้อ จำกัด (ซึ่งNOT NULL
ข้อ จำกัด เป็นตัวแปร) ตรวจสอบว่าเงื่อนไขบางอย่างมีไว้สำหรับนิพจน์เหนือฟิลด์ของเร็กคอร์ดเดียวกัน นี่คือY
- ข้อ จำกัด ของแกน (ฟิลด์)
FOREIGN KEY
ข้อ จำกัด ตรวจสอบว่าพบค่าของเขตข้อมูลระหว่างค่าของเขตข้อมูลในตารางอื่น นี่คือZ
- ข้อ จำกัด ของแกน (ตาราง)
CHECK
ข้อ จำกัด เหตุใดจึงจัดประเภทให้แตกต่างกัน เช่น " Y
-axis" (อะไรก็ตามที่หมายถึง)
FOREIGN KEY
ใช้CHECK
ข้อ จำกัดโดยใช้อย่างไร?
SELECT
แบบสอบถาม คุณไม่สามารถใช้เคียวรีย่อย (หรือโครงสร้างอื่นใดที่อ้างถึงค่านอกเรกคอร์ดปัจจุบัน) ในCHECK
ข้อ จำกัด ในSQL Server
.
ฐานข้อมูลคือการแสดงเชิงตรรกะทางคอมพิวเตอร์ของแบบจำลองแนวคิด (หรือธุรกิจ) ซึ่งประกอบด้วยชุดของกฎทางธุรกิจที่ไม่เป็นทางการ กฎเหล่านี้เป็นความหมายของข้อมูลที่ผู้ใช้เข้าใจ เนื่องจากคอมพิวเตอร์เข้าใจเฉพาะการแสดงที่เป็นทางการกฎทางธุรกิจจึงไม่สามารถแสดงโดยตรงในฐานข้อมูลได้ ต้องแมปกับการแสดงที่เป็นทางการแบบจำลองเชิงตรรกะซึ่งประกอบด้วยชุดของข้อ จำกัด ด้านความสมบูรณ์ ข้อ จำกัด เหล่านี้ - สคีมาฐานข้อมูล - เป็นตัวแทนเชิงตรรกะในฐานข้อมูลของกฎทางธุรกิจดังนั้นจึงเป็นความหมายที่เข้าใจโดย DBMS ของข้อมูล ตามมาว่าหาก DBMS ไม่ทราบและ / หรือไม่บังคับใช้ข้อ จำกัด ทั้งหมดที่แสดงถึงกฎเกณฑ์ทางธุรกิจก็จะมีความเข้าใจที่ไม่สมบูรณ์ว่าข้อมูลหมายถึงอะไร
หมายเหตุ: ความหมาย DBMS - "เข้าใจ" - ข้อ จำกัด ด้านความสมบูรณ์ - ไม่เหมือนกับความหมายที่ผู้ใช้เข้าใจ - กฎทางธุรกิจ - แต่การสูญเสียความหมายบางอย่างไปอย่างไรก็ตามเราได้รับความสามารถในการใช้การอนุมานเชิงตรรกะจากข้อมูล
"An Old Class of Errors" โดย Fabian Pascal
โดยทั่วไปมีข้อ จำกัด หลัก 4 ประเภทใน SQL:
Domain Constraint:หากค่าแอ็ตทริบิวต์ที่ระบุสำหรับทูเพิลใหม่ไม่ใช่โดเมนแอ็ตทริบิวต์ที่ระบุ
ข้อ จำกัด ของคีย์:หากค่าของคีย์แอ็ตทริบิวต์ในทูเพิลใหม่มีอยู่แล้วในทูเพิลอื่นในความสัมพันธ์
Referential Integrity:ถ้าค่าคีย์ต่างประเทศในทูเพิลใหม่อ้างอิงค่าคีย์หลักที่ไม่มีอยู่ในรีเลชันที่อ้างอิง
ความสมบูรณ์ของเอนทิตี:หากค่าคีย์หลักเป็นค่าว่างในทูเพิลใหม่
ข้อ จำกัด คือเงื่อนไขที่สามารถตรวจสอบเงื่อนไขเฉพาะได้ ข้อ จำกัด ที่เกี่ยวข้องกับฐานข้อมูล ได้แก่ ความสมบูรณ์ของโดเมนความสมบูรณ์ของเอนทิตีความสมบูรณ์ของการอ้างอิงข้อ จำกัด ความสมบูรณ์ที่ผู้ใช้กำหนดเป็นต้น