ระบบจัดการฐานข้อมูล (DBMS) ประกอบด้วยชุดโปรแกรมประยุกต์ที่ครอบคลุม ที่สามารถใช้เพื่อเข้าถึง จัดการ และอัปเดตข้อมูล ได้หากข้อมูลมีความเชื่อมโยงกันและคงอยู่อย่างลึกซึ้ง เหมือนระบบจัดการใดๆ เป้าหมายของ DBMS คือการให้สภาพแวดล้อมที่มีประสิทธิภาพและสะดวก ซึ่งทำให้การดึงข้อมูลและจัดเก็บข้อมูลลงในฐานข้อมูลเป็นเรื่องง่าย ไม่ต้องพูดว่าฐานข้อมูลใช้จัดเก็บและจัดการข้อมูลปริมาณมหาศาล
เพื่อให้บรรลุเป้าหมายนี้ ต่อไปนี้เป็นสิ่งที่จำเป็นอย่างยิ่ง:
- Data Modeling - ทั้งหมดเกี่ยวกับการกำหนดโครงสร้างสำหรับการจัดเก็บข้อมูล
- การจัดเตรียมกลไก - เพื่อจัดการข้อมูลที่ประมวลผลแล้ว และแก้ไขโครงสร้างไฟล์และระบบ สำคัญที่จะต้องจัดเตรียมกลไกการประมวลผลคิวรี
- Crash Recovery และ Security - เพื่อหลีกเลี่ยงความขัดแย้งและรับรองว่าข้อมูลปลอดภัย กลไกการกู้คืนจากการล้มเหลวและความปลอดภัยเป็นสิ่งจำเป็น
- Concurrency Control - หากระบบถูกใช้ร่วมโดยผู้ใช้หลายคน การควบคุม concurrency เป็นสิ่งที่จำเป็น
Dr Edgar F Codd
Dr E.F.Codd ที่รู้จักในโลกว่า 'บิดาของระบบจัดการฐานข้อมูล' ได้เสนอ 12 กฎ ซึ่งจริงๆ แล้วมี 13 ข้อ กฎเหล่านี้หมายเลขจากศูนย์ถึงสิบสอง ตามเขา DBMS ถือว่าเป็น fully relational หากปฏิบัติตาม 12 กฎทั้งหมด จนถึงตอนนี้ มีเพียงไม่กี่ฐานข้อมูลที่ปฏิบัติตาม 11 กฎทั้งหมด 12 กฎของเขาถูกเรียกด้วยความรักว่า 'สิบสองบัญญัติของ E.F.Codd' วิจัยที่น่าทึ่งและเป็นต้นแบบ 'A Relational Model of Data for Large Shared Data Banks' ในความสมบูรณ์เป็นเลิศสำหรับตา
Relational Database Management System
มีกฎไม่เหมือนกันในภาษาจาร์กอนของระบบจัดการฐานข้อมูล เนื่องจากฐานข้อมูลที่นำกฎของ E.F.Codd ทั้งหมดมาใช้ นั้นน้อย กฎไม่เหมือนกันได้รับความนิยม

- ถ้าระบบจัดการหรือซอฟต์แวร์ปฏิบัติตามกฎ 5-6 ข้อที่เสนอโดย E.F.Codd มันมีคุณสมบัติเป็น Database Management System (DBMS)
- ถ้าระบบจัดการหรือซอฟต์แวร์ปฏิบัติตามกฎ 7-9 ข้อที่เสนอโดย E.F.Codd มันมีคุณสมบัติเป็น semi-Relational Database Management System (semi-RDBMS)
- ถ้าระบบจัดการหรือซอฟต์แวร์ปฏิบัติตามกฎ 9-12 ข้อที่เสนอโดย E.F. Codd มันมีคุณสมบัติเป็น complete Relational Database Management System (RDBMS)
สิบสองบัญญัติของ Dr Edgar F Codd
นี่คือบันทึกสั้นเกี่ยวกับ 12 กฎของ E.F Codd:
กฎ 0 - กฎพื้นฐาน
RDBMS ใดๆ ที่เสนอหรือโฆษณาว่าเป็น RDBMS ควรสามารถจัดการข้อมูลที่จัดเก็บทั้งหมดได้อย่างสมบูรณ์ผ่านความสามารถเชิงสัมพันธ์ของมัน
กฎ 1 - กฎข้อมูล
ฐานข้อมูลเชิงสัมพันธ์ควรจัดเก็บข้อมูลในรูปของความสัมพันธ์ ตารางคือความสัมพันธ์ใน RDBMS ไม่ว่าจะเป็นข้อมูลที่ผู้ใช้กำหนดหรือ meta-data สำคัญที่จะจัดเก็บค่าเป็นเอนทิตีในเซลล์ตาราง
กฎ 2 - กฎการเข้าถึงที่รับประกัน
การใช้ pointers เพื่อเข้าถึงข้อมูลทางตรรกะถูกห้ามอย่างเคร่งครัด ทุกเอนทิตีข้อมูลที่เป็น atomic ควรเข้าถึงทางตรรกะโดยใช้การผสมผสานที่ถูกต้องของชื่อตาราง คีย์หลักที่แทนด้วยค่าแถวเฉพาะ และชื่อคอลัมน์ที่แทนด้วยค่าแอตทริบิวต์
กฎ 3 - กฎการสนับสนุนค่า Null แบบเป็นระบบ
ค่า Null ได้รับการสนับสนุนอย่างเต็มที่ในฐานข้อมูลเชิงสัมพันธ์ พวกเขาควรถูกพิจารณาอย่างสม่ำเสมอว่า 'ข้อมูลที่หายไป' ค่า Null เป็นอิสระจากชนิดข้อมูลใดๆ พวกเขาไม่ควรสับสนกับ blanks หรือ zeros หรือ empty strings ค่า Null ยังสามารถตีความได้ว่า 'ข้อมูลที่ไม่เกี่ยวข้อง' หรือ 'ข้อมูลที่ไม่ทราบ'
กฎ 4 - กฎแคตตาล็อกเชิงสัมพันธ์ที่ใช้งานและออนไลน์
ในศัพท์ของระบบจัดการฐานข้อมูล 'metadata' คือข้อมูลเกี่ยวกับฐานข้อมูลหรือข้อมูลเกี่ยวกับข้อมูล แคตตาล็อกออนไลน์ที่ใช้งานซึ่งจัดเก็บ metadata เรียกว่า 'Data dictionary' Data dictionary ที่เรียกอย่างนั้นเข้าถึงได้เฉพาะผู้ใช้ที่ได้รับอนุญาตและมีสิทธิ์ที่จำเป็น และภาษาคิวรีที่ใช้เข้าถึงฐานข้อมูลควรใช้สำหรับเข้าถึงข้อมูลของ data dictionary
กฎ 5 - กฎภาษาย่อยข้อมูลที่ครอบคลุม
ภาษาเดียวที่แข็งแกร่งควรสามารถกำหนดข้อจำกัดความสมบูรณ์ views, data manipulations, transactions และ authorizations หากฐานข้อมูลอนุญาตการเข้าถึงสิ่งเหล่านี้ มันละเมิดกฎนี้
กฎ 6 - กฎการอัปเดต Views
Views ควรสะท้อนการอัปเดตของตารางฐานของพวกเขาและในทางกลับกัน View คือตารางตรรกะที่แสดงข้อมูลที่จำกัด Views โดยทั่วไปทำให้ข้อมูลอ่านได้แต่ไม่สามารถแก้ไขได้ Views ช่วยใน data abstraction
กฎ 7 - กฎการแทรก อัปเดต และลบระดับเซต
การดำเนินการเดียวควรเพียงพอสำหรับการดึง แทรก อัปเดต และลบข้อมูล
กฎ 8 - กฎอิสระภาพข้อมูลทางกายภาพ
การดำเนินงานแบบแบทช์และผู้ใช้ปลายทาง แยกทางตรรกะจากที่จัดเก็บทางกายภาพและวิธีการเข้าถึงที่เกี่ยวข้อง
กฎ 9 - กฎอิสระภาพข้อมูลทางตรรกะ
การดำเนินงานแบบแบทช์และผู้ใช้ปลายทางสามารถเปลี่ยน database schema ได้โดยไม่ต้องสร้างใหม่หรือสร้างแอปพลิเคชันที่สร้างบนมันใหม่
กฎ 10 - กฎอิสระภาพความสมบูรณ์
ข้อจำกัดความสมบูรณ์ควรพร้อมใช้งานและจัดเก็บเป็น metadata ใน data dictionary ไม่ใช่ในโปรแกรมประยุกต์
กฎ 11 - กฎอิสระภาพการกระจาย
Data Manipulation Language ของระบบเชิงสัมพันธ์ไม่ควรกังวลเกี่ยวกับการจัดเก็บข้อมูลทางกายภาพ และไม่ควรต้องการการเปลี่ยนแปลงหากข้อมูลทางกายภาพเป็นแบบรวมศูนย์หรือกระจาย
กฎ 12 - กฎไม่ถูกทำลาย (Non Subversion)
แถวใดๆ ควรปฏิบัติตามข้อจำกัดความปลอดภัยและความสมบูรณ์ที่กำหนด ไม่มี đặcสิทธิพิเศษใดๆ ใช้ได้
เกือบ DBMS ขนาดเต็มทั้งหมดคือ RDMSs Oracle ใช้ 11+ กฎ และ Sybase ก็เช่นกัน SQL Server ก็ใช้ 11+ กฎ ในขณะที่ FoxPro ใช้ 7+ กฎ