Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> SQL

12 กฎของ Codd สำหรับฐานข้อมูลเชิงสัมพันธ์


Edgar F Codd เป็นนักวิทยาศาสตร์คอมพิวเตอร์ที่คิดค้นโมเดลเชิงสัมพันธ์สำหรับการจัดการฐานข้อมูล เขายังได้รับเครดิตในการสร้างพื้นฐานสำหรับฐานข้อมูลเชิงสัมพันธ์และระบบจัดการฐานข้อมูลเชิงสัมพันธ์

12 กฎของ Codd กำหนดลักษณะที่จำเป็นสำหรับระบบจัดการฐานข้อมูลเพื่อถือว่าเป็นเชิงสัมพันธ์ คือ ระบบจัดการฐานข้อมูลเชิงสัมพันธ์ (RDBMS)

กฎ 0: กฎพื้นฐาน (Foundation rule)

ระบบใดๆ ที่มีคุณสมบัติเป็น RDBMS ควรจัดการข้อมูลของมันโดยใช้ความสามารถเชิงสัมพันธ์ของมัน

กฎ 1: กฎข้อมูล (Information rule)

ข้อมูลทั้งหมด (รวมถึง metadata) ถูกแทนในตารางโดยใช้แถวและคอลัมน์ แถวและคอลัมน์ต้องเป็น unordered อย่างเคร่งครัด

กฎ 2: กฎการเข้าถึงที่รับประกัน (Guaranteed access rule)

ค่าทั้งหมดในฐานข้อมูลควรเข้าถึงได้โดยใช้การผสมผสานของชื่อตาราง คีย์หลัก และชื่อคอลัมน์ (ความสามารถในการเข้าถึงข้อมูลโดยตรงโดยใช้ pointer ไม่ถูกต้องตามกฎนี้)

กฎ 3: การจัดการค่า Null อย่างเป็นระบบ (Systematic treatment of Null values)

ค่า NULL ได้รับการสนับสนุนอย่างเต็มที่ในฐานข้อมูลสำหรับการแทนการขาดหายของข้อมูลหรือข้อมูลที่ไม่ถูกต้องอย่างเป็นระบบ ค่า NULL เป็นอิสระจากชนิดข้อมูล และการดำเนินการใดๆ บนค่า NULL ต้องคืนค่า NULL

กฎ 4: แคตตาล็อกออนไลน์แบบไดนามิก (Dynamic Online Catalog)

แคตตาล็อกคือคำอธิบายครบถ้วนของฐานข้อมูล ถูกจัดเก็บออนไลน์และให้ข้อมูลเพิ่มเติมเกี่ยวกับฐานข้อมูล ภาษาคิวรีที่ใช้กับฐานข้อมูลยังใช้กับแคตตาล็อก

กฎ 5: ภาษาที่ทรงพลังและมีโครงสร้างดี (Powerful and Well-Structured Language)

ฐานข้อมูลเชิงสัมพันธ์อาจรองรับหลายภาษา อย่างไรก็ตาม ควรมีภาษาอย่างน้อยหนึ่งภาษาที่ให้การเข้าถึงข้อมูล การจัดการข้อมูล ฯลฯ ทุกประเภท ภาษาหนึ่งคือ SQL

กฎ 6: กฎการอัปเดตมุมมอง (View Updation rule)

มุมมอง (views) ทั้งหมดที่สามารถอัปเดตได้ในทฤษฎี ควรสามารถอัปเดตได้โดยระบบด้วย

กฎ 7: การแทรก อัปเดต ลบ คุณภาพ (Quality Insertion, Update, Deletion)

ควรมีการแทรก ลบ และอัปเดตได้ในรูปของตัวถูกดำเนินการ (operand) เดียว สิ่งนี้ต้องพร้อมใช้งานในทุกระดับของความสัมพันธ์

กฎ 8: อิสระภาพข้อมูลทางกายภาพ (Physical Data Independence)

การเปลี่ยนแปลงทางกายภาพของระบบ เช่น การเปลี่ยนพื้นที่จัดเก็บ การเปลี่ยนวิธีการเข้าถึง ฯลฯ ไม่ควรส่งผลต่อโปรแกรมประยุกต์และกิจกรรมอื่นๆ ของระบบ

กฎ 9: อิสระภาพข้อมูลทางตรรกะ (Logical Data Independence)

มุมมองของผู้ใช้ต่อฐานข้อมูลเชิงสัมพันธ์ควรคงที่แม้จะมีการเปลี่ยนแปลงโครงสร้างทางตรรกะ กฎนี้ยากที่จะปฏิบัติตาม

กฎ 10: อิสระภาพความสมบูรณ์ (Integrity Independence)

ข้อจำกัดความสมบูรณ์ที่เฉพาะเจาะจงกับฐานข้อมูลเชิงสัมพันธ์ควรถูกกำหนดในภาษาของฐานข้อมูลนั้นและจัดเก็บในแคตตาล็อก กฎนี้หมายความว่า RDBMS ไม่พึ่งพา front end

กฎ 11: อิสระภาพการกระจาย (Distribution Independence)

แม้ข้อมูลในฐานข้อมูลจะกระจายอยู่หลายสถานที่ ผู้ใช้ปลายทางควรเห็นฐานข้อมูลเป็นเอนทิตีเดียวที่สม่ำเสมอ นอกจากนี้ ฐานข้อมูลควรทำงานได้สมบูรณ์แม้จะกระจายอยู่ข้ามเครือข่าย

กฎ 12: กฎไม่ถูกทำลาย (Nonsubversion Rule)

หากอนุญาตการเข้าถึงระดับต่ำสำหรับฐานข้อมูลเชิงสัมพันธ์ มันไม่ควรสามารถทำลายข้อจำกัดความสมบูรณ์และข้ามการรักษาความปลอดภัยเพื่อเปลี่ยนข้อมูลได้