DBMS - 12 Aturan Codd

Halo, para penggemar basis data yang bersemangat! Hari ini, kita akan masuk ke dunia menarik Basis Data Manajemen Sistem (DBMS) dan mengexplore 12 Aturan Codd. Aturan ini, yang dibuat oleh ayah basis data relasional, Dr. Edgar F. Codd, adalah seperti Sepuluh Perintah dalam dunia basis data. Mereka tidak hanya aturan; mereka adalah prinsip panduan yang membentuk bagaimana kita berpikir dan merancang basis data modern.

DBMS - Codd

Sebagai guru komputer yang ramah di lingkungan sekitar Anda, saya akan memecah aturan ini dalam cara yang bahkan mereka yang belum pernah menulis baris kode pun dapat mengerti. Jadi, ambil secangkir kopi, duduk nyaman, dan mari kita mulai perjalanan yang menarik ini bersama!

Aturan 1: Aturan Informasi

Bayangkan Anda mengatur rak buku. Aturan Informasi seperti mengatakan, "Semua di rak ini harus buku." Dalam dunia basis data, aturan ini menyatakan bahwa semua informasi dalam basis data harus direpresentasikan dalam satu dan hanya satu cara - sebagai nilai dalam tabel.

mari lihat contoh sederhana:

CREATE TABLE Students (
StudentID INT PRIMARY KEY,
FirstName VARCHAR(50),
LastName VARCHAR(50),
Age INT
);

Dalam contoh ini, kita membuat tabel "Students". Setiap informasi tentang siswa (ID mereka, nama depan, nama belakang, dan umur) direpresentasikan sebagai kolom dalam tabel ini. Ini adalah esensi Aturan Informasi - semua data disimpan dalam tabel.

Aturan 2: Aturan Akses Terjamin

Aturan ini seperti memiliki kartu pustaka yang memberikan Anda akses ke semua buku di pustaka. Dalam istilah basis data, ini berarti setiap piece data harus dapat diakses dengan mengetahui nama tabel, kunci utama, dan nama kolom.

Misalnya, jika kita ingin menemukan umur siswa dengan ID 1, kita dapat menggunakan:

SELECT Age FROM Students WHERE StudentID = 1;

Kueri ini memberikan akses terjamin ke piece data tertentu yang kita butuhkan, mengikuti Aturan 2.

Aturan 3: Aturan Penanganan NULL Sistematis

NULL values seperti buku misteri di pustaka kita - mereka mewakili informasi yang tak diketahui atau tidak berlaku. Aturan ini memastikan bahwa NULL values diperlakukan konsisten di seluruh operasi.

Misalnya, saat memasukkan siswa baru tanpa mengetahui umurnya:

INSERT INTO Students (StudentID, FirstName, LastName, Age)
VALUES (2, 'Jane', 'Doe', NULL);

Basis data mengolah nilai NULL ini secara sistematis, memungkinkan operasi seperti:

SELECT * FROM Students WHERE Age IS NULL;

Aturan 4: Katalog Online Aktif

Bayangkan ini sebagai sistem katalog digital pustaka. Basis data harus memiliki "katalog" bawaan tempatnya menyimpan informasi tentang semua tabel, kolom, indeks, dan lainnya. Dalam kebanyakan DBMS modern, ini sering disebut sebagai "data dictionary" atau "system catalog".

Kita dapat mengquery katalog ini. Misalnya, di SQL Server:

SELECT * FROM INFORMATION_SCHEMA.TABLES;

Kueri ini memberikan kita informasi tentang semua tabel di basis data kita, menunjukkan katalog online aktif dalam aksi.

Aturan 5: Aturan Sub-LANGUAGE Data Komprehensif

Aturan ini seperti mengatakan pustaka kita harus memiliki bahasa universal untuk menemukan, membaca, dan mengatur buku. Dalam istilah basis data, ini berarti harus ada bahasa komprehensif untuk semua operasi basis data.

SQL (Structured Query Language) adalah contoh umum ini. Itu memungkinkan kita melakukan segala sesuatu dari membuat tabel hingga mengquery data:

-- Membuat tabel
CREATE TABLE Books (
BookID INT PRIMARY KEY,
Title VARCHAR(100),
Author VARCHAR(50)
);

-- Memasukkan data
INSERT INTO Books (BookID, Title, Author)
VALUES (1, 'Database Design 101', 'E. F. Codd');

-- Mengquery data
SELECT * FROM Books WHERE Author = 'E. F. Codd';

Aturan 6: Aturan Pembaruan View

View seperti rak buku khusus di pustaka kita. Aturan ini menyatakan bahwa jika Anda dapat melihat view, Anda seharusnya dapat memperbarui itu (dengan beberapa batasan).

Contoh membuat dan memperbarui view:

-- Membuat view
CREATE VIEW TeenageStudents AS
SELECT * FROM Students WHERE Age BETWEEN 13 AND 19;

-- Memperbarui melalui view
UPDATE TeenageStudents
SET Age = 18
WHERE StudentID = 1;

Aturan 7: Aturan Masukkan, Pembaruan, dan Penghapusan Tingkat Tinggi

Aturan ini memastikan bahwa kita dapat memodifikasi set data dalam satu langkah, bukan satu rekord pada saat yang sama. Itu seperti dapat memindahkan rak buku secara keseluruhan, bukan buku per buku.

Misalnya:

-- Memasukkan beberapa rekord
INSERT INTO Students (StudentID, FirstName, LastName, Age)
VALUES
(3, 'Alice', 'Johnson', 20),
(4, 'Bob', 'Smith', 22),
(5, 'Charlie', 'Brown', 19);

-- Memperbarui beberapa rekord
UPDATE Students
SET Age = Age + 1
WHERE Age < 20;

-- Menghapus beberapa rekord
DELETE FROM Students
WHERE Age > 25;

Aturan 8: Aturan Kemandirian Data Fisik

Aturan ini tentang memisahkan penyimpanan fisik data dari bagaimana kita berinteraksi dengannya. Itu seperti tidak peduli apakah buku keras atau buku tebal - Anda masih bisa membacanya dengan cara yang sama.

Dalam praktek, ini berarti mengubah penyimpanan fisik (seperti beralih dari HDD ke SSD) tidak seharusnya memerlukan perubahan pada kode aplikasi.

Aturan 9: Aturan Kemandirian Data Logis

Similar ke Aturan 8, tapi pada level logis. Itu berarti kita seharusnya dapat mengubah struktur logis (seperti menambahkan kolom baru) tanpa mempengaruhi aplikasi yang ada.

Misalnya, jika kita menambahkan kolom baru ke tabel Students:

ALTER TABLE Students
ADD Email VARCHAR(100);

Aplikasi yang mengquery tabel Students sebelumnya seharusnya tetap berjalan tanpa modifikasi.

Aturan 10: Aturan Kemandirian Keselamatan

Aturan ini memastikan bahwa batasan keselamatan (seperti "Umur harus positif") didefinisikan di basis data, bukan di aplikasi. Itu seperti memiliki aturan kategorisasi buku diberlakukan oleh sistem pustaka, bukan oleh petugas pustaka individual.

Contoh:

CREATE TABLE Students (
StudentID INT PRIMARY KEY,
FirstName VARCHAR(50) NOT NULL,
LastName VARCHAR(50) NOT NULL,
Age INT CHECK (Age > 0 AND Age < 120)
);

Di sini, batasan didefinisikan pada level basis data, memastikan kemandirian keselamatan.

Aturan 11: Aturan Kemandirian Distribusi

Aturan ini menyatakan bahwa basis data harus bekerja sama seperti itu terlepas dari apakah itu tersebar di beberapa lokasi atau tidak. Itu seperti dapat mengakses buku dari beberapa cabang pustaka secara tanpa henti.

Meskipun tidak ada contoh kode sederhana untuk ini, basis data distribusi modern implementasikan prinsip ini di belakang layar.

Aturan 12: Aturan Non-Subversi

Aturan terakhir adalah tentang keamanan dan konsistensi. Itu menyatakan bahwa jika basis data memiliki cara untuk mengakses rekord (seperti SQL), tidak seharusnya ada cara untuk menghindari ini dan mengakses data secara langsung. Itu seperti memastikan semua peminjaman buku melalui sistem pustaka, tanpa akses belakang.

Ini biasanya ditangani pada level sistem basis data, bukan melalui kode yang ditulis pengguna.

Untuk menggabungkan semua aturan ini dalam tabel praktis:

Aturan Deskripsi
1 Aturan Informasi
2 Aturan Akses Terjamin
3 Aturan Penanganan NULL Sistematis
4 Aturan Katalog Online Aktif
5 Aturan Sub-LANGUAGE Data Komprehensif
6 Aturan Pembaruan View
7 Aturan Masukkan, Pembaruan, dan Penghapusan Tingkat Tinggi
8 Aturan Kemandirian Data Fisik
9 Aturan Kemandirian Data Logis
10 Aturan Kemandirian Keselamatan
11 Aturan Kemandirian Distribusi
12 Aturan Non-Subversi

Dan itu adalah, teman-teman! 12 Aturan Codd dalam bentuk singkat. Ingat, aturan ini dibuat pada tahun 1985, dan meskipun tidak semua basis data modern sepenuhnya mengikuti setiap aturan, mereka masih membentuk dasar teoritis sistem basis data relasional.

Saat kita mengakhiri ini, saya harap perjalanan melalui Aturan Codd ini sama menarik bagi Anda seperti saat saya mengajarkannya. Prinsip ini telah membentuk dunia basis data yang kita kenal hari ini, dan memahaminya adalah langkah pertama Anda menuju menjadi ahli basis data. Tetap berlatih, tetap curi-curi, dan siapa tahu? Mungkin suatu hari Anda akan membuat set aturan database inovatif berikutnya!

Credits: Image by storyset