12 Aturan Codd
Dr Edgar F. Codd, setelah penelitian ekstensifnya tentang Model Relasional sistem basis data, menghasilkan dua belas aturannya sendiri, yang menurutnya, basis data harus dipatuhi agar dapat dianggap sebagai basis data relasional yang sebenarnya.
Aturan ini dapat diterapkan pada sistem database apa pun yang mengelola data yang disimpan hanya dengan menggunakan kapabilitas relasionalnya. Ini adalah aturan dasar, yang bertindak sebagai dasar untuk semua aturan lainnya.
Aturan 1: Aturan Informasi
Data yang disimpan dalam database, bisa berupa data pengguna atau metadata, harus berupa nilai dari beberapa sel tabel. Segala sesuatu di database harus disimpan dalam format tabel.
Aturan 2: Aturan Akses Terjamin
Setiap elemen data tunggal (nilai) dijamin dapat diakses secara logis dengan kombinasi nama tabel, kunci-utama (nilai baris), dan nama-atribut (nilai kolom). Tidak ada cara lain, seperti pointer, yang dapat digunakan untuk mengakses data.
Aturan 3: Perlakuan Sistematis terhadap Nilai NULL
Nilai NULL dalam database harus diberikan perlakuan yang sistematis dan seragam. Ini adalah aturan yang sangat penting karena NULL dapat diartikan sebagai salah satu hal berikut - data hilang, data tidak diketahui, atau data tidak berlaku.
Aturan 4: Katalog Online Aktif
Deskripsi struktur dari seluruh database harus disimpan dalam katalog online, yang dikenal sebagai data dictionary, yang dapat diakses oleh pengguna yang berwenang. Pengguna dapat menggunakan bahasa kueri yang sama untuk mengakses katalog yang mereka gunakan untuk mengakses database itu sendiri.
Aturan 5: Aturan Sub-Bahasa Data Komprehensif
Database hanya dapat diakses menggunakan bahasa yang memiliki sintaks linier yang mendukung definisi data, manipulasi data, dan operasi manajemen transaksi. Bahasa ini dapat digunakan secara langsung atau melalui beberapa aplikasi. Jika database memungkinkan akses ke data tanpa bantuan bahasa ini, maka itu dianggap sebagai pelanggaran.
Aturan 6: Lihat Aturan Pembaruan
Semua tampilan database, yang secara teoritis dapat diperbarui, juga harus dapat diperbarui oleh sistem.
Aturan 7: Aturan Penyisipan, Pembaruan, dan Hapus Tingkat Tinggi
Database harus mendukung penyisipan, pembaruan, dan penghapusan tingkat tinggi. Ini tidak boleh dibatasi pada satu baris, yaitu, itu juga harus mendukung operasi union, intersection dan minus untuk menghasilkan kumpulan record data.
Aturan 8: Independensi Data Fisik
Data yang disimpan dalam database harus independen dari aplikasi yang mengakses database. Setiap perubahan dalam struktur fisik database tidak boleh berdampak pada bagaimana data diakses oleh aplikasi eksternal.
Aturan 9: Independensi Data Logis
Data logis dalam database harus independen dari tampilan penggunanya (aplikasi). Setiap perubahan dalam data logis tidak boleh mempengaruhi aplikasi yang menggunakannya. Misalnya, jika dua tabel digabungkan atau satu dibagi menjadi dua tabel yang berbeda, seharusnya tidak ada pengaruh atau perubahan pada aplikasi pengguna. Ini adalah salah satu aturan yang paling sulit diterapkan.
Aturan 10: Kemandirian Integritas
Database harus independen dari aplikasi yang menggunakannya. Semua batasan integritasnya dapat dimodifikasi secara independen tanpa perlu perubahan apa pun dalam aplikasi. Aturan ini membuat database independen dari aplikasi front-end dan antarmukanya.
Aturan 11: Independensi Distribusi
Pengguna akhir tidak boleh melihat bahwa data didistribusikan ke berbagai lokasi. Pengguna harus selalu mendapatkan kesan bahwa data tersebut terletak di satu situs saja. Aturan ini telah dianggap sebagai dasar dari sistem database terdistribusi.
Aturan 12: Aturan Non-Subversi
Jika suatu sistem memiliki antarmuka yang menyediakan akses ke catatan tingkat rendah, maka antarmuka tidak boleh menumbangkan sistem dan melewati batasan keamanan dan integritas.