HUKUM CODDS

13 hukum codds adalah sebuah kumpulan 13 aturan yang diajukan oleh Edgar F. "Ted" Codd, pionir di bidang model relasional untuk sistem basisdata, yang di desain untuk menetapkan kriteria-kriteria yang di butuhkan dari sebuah manajemen sistem basisdata agar dapat dikatakan sebagai relasional. Misalnya RDBMS. 

Codds mengajukan hukum-hukum ini sebagai bagian dari kampanye personal yang dilakukan untuk menjaga visinya atas konsep basisdata relasional agar tidak hanya menjadi bias, sebagaimana banyak vendor-vendor database yang berseteru pada awal tahun 1980-an dalam mempaketkan produk-produk basisdata dengan kata-kata relasional. Dalam kenyataannya ke 13 hukum tersebut sangat ketat, bahkan sebuah sistem yang hanya memiliki antarmuka dengan menggunakan bahasa SQL pun gagal memenuhi kriteria-kriteria yang ditetapkan.

Hukum-hukum Codds
 
1. Hukum 0, suatu sistem harus memenuhi kualifikasi sebagai relasional, sebagai basisdata, dan sebagai sebuah sistem manajemen.
Agar sebuah sistem dapat dikatakan sebagai sebuah sistem manajemen berbasis relasional (RDBMS), sistem tersebut harus menggunakan fasilitas relasionalnya secara penuh untuk memanajemen sistem berbasisdata.

2. Hukum 1, hukum informasi
Seluruh informasi yang terdapat dalam basisdata harus bisa direpresentasikan hanya dalam satu cara, yaitu dalam bentuk nilai-nilai yang terisi dalam bentuk tabular baris dan kolom.

3. Hukum 2, hukum jaminan akses
Seluruh data harus bisa diakses tanpa ada kerancuan, hukum ini merupakan sebuah penegasan dari kebutuhan mendasar atas senuah kunci primer. Hukum tersebut menjelaskan bahwa setiap nilai skalar dalam basisdata haruslah memiliki alamat secara loikal dengan cara menspesifikasikan nama dari tabel, nama dari kolom, dan nilai kunci priemer dari baris data dalam tabel tersebut.

4. Hukum 3, Perlakuan sistematik terhadap nilai null
Sebuah sistem manajemen basisdata harus mengijinkan setiap field terisi dengan nilai null (kosong). Secara spesifik, ia harus mendukung representasi dari “hilangnya informasi atau tidak kebergunaannya suatu informasi” secara sistematis, membedakan dengan jelas dari nilai-nilai yang lain.

5. Hukum 4, Katalog online yang aktif haruslah berbasis relasional
Hukum harus mendukung sebuah katalog relasional yang bersifat online, inline yang bisa di akses oleh pengguna yang sah dalam arti melalui bahasa query reguler. Lebih jelas lagi, pengguna harus dapat mengakses struktur data tersebut dengan cara yang sama menggunakan bahasa query yang digunakan pula untuk mengakses data.

6. Hukum 5, Hukum sub-bahasa data yang komprehensif
Sistem setidaknya harus mendukung satu bahasa relasional yang memiliki sintaksis linear, dapat digunakan baik secara interaktif maupun melalui program aplikasi, dan mendukung pendefinisian data (termasuk pendefinisan view), operasi manipulasi data, aspek kemanan dan pembatasan integritas, operasi-operasi manajemen transaksi (begin, commit, dan rollback).

7. Hukum 6, hukum pembaruan/update view
Semua view yang secara teoritis dapat di update dalam implementasinya juga harus dapat di update oleh sistemnya.

8. Hukum 7, level tingkat tinggi dalam operasi insert, update, dan delete.
Sistem harus mendukung serangkaian operasi-operasi insert, update, dan delete dalam satu waktu masa yang sama.

9. Hukum 8, data secara fisik bersifat independent
Perubahan pada level fisik (bagaimana suatu data disimpan menggunakan larik atau senarai berantai) harus tidak mengakibatkan perubahan pada struktur aplikasi pada level yang lebih tinggi.

10. Hukum 9, data secara logikal bersifat independent
Perubahan pada level logikal (tabel, kolom, dan baris) harus tidak mengakibatkan perubahan pada struktur di sisi aplikasi pada level yang lebih tinggi. Hukum ini relatif lebih sulit dicapai dibandingkankan dengan hukum nomer 8.

11. Hukum 10, integritas data bersifat independen
Integritas data harus dispesifikasikan secara terpisah dari program aplikasi dan disimpan dalam katalog/struktur dan harus memungkinkan untuk melakukan perubahan terhadap struktur tersebut ketika dibutuhkan tanpa memengaruhi aplikasi yang telah ada.

12. Hukum 11, Distribusi yang bersifat independen
Distribusi atas sebagian dari basisdata ke berbagai lokasi harus dapat diatur sedemikian rupa sehingga tidak terlihat oleh pengguna dari basisdata tersebut. Begitu pula aplikasi-aplikasi yang ada harus tetap dapat beroperasi secara normal seperti biasanya ketika:
(a) saat versi dari DBMS yang terdistribusi pertamakali diperkenalkan; dan/ataupun
(a) ketika data-data yang terdistribusi tersebut diredistribusikan ke seluruh sistem.

13. Hukum 12, Hukum nonsubversion
Jika sebuah sistem menyediakan antarmuka tingkat rendah, maka antarmuka tersebut tidak dapat digunakan untuk menggagalkan sistem, sebagai contoh, membypass aturan-aturan yang terkait dengan keamanan data, ataupun integritasnya.