DBMS - 12 Rules Codd

Hai, penggemar basis data yang ambisius! Hari ini, kita akan melihat dunia yang menarik Basis Manajemen Data (DBMS) dan mengexplore 12 Rules Codd. Aturan ini, yang diatur 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 memecahkan aturan ini dalam cara yang bahkan mereka yang belum pernah menulis baris kode pun dapat mengerti. Jadi, minumlahkan一杯咖啡, betahlah, dan mari kita embarkasi pada perjalanan yang menarik ini bersama!

Rule 1: Information Rule

Imaginilah Anda mengatur rak bukunya. 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 menciptakan tabel "Students". Setiap piece 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.

Rule 2: Guaranteed Access Rule

Aturan ini seperti memiliki kartu perpustakaan yang memberikan akses ke semua buku di perpustakaan. 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 menjamin akses ke piece informasi tertentu yang kita butuhkan, mengikuti Rule 2.

Rule 3: Systematic Treatment of NULL Values

NULL values seperti buku misteri di perpustakaan 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;

Rule 4: Active Online Catalog

Pikirkan ini seperti sistem katalog digital perpustakaan. Basis data harus memiliki "katalog" yang terpasang di dalamnya untuk menyimpan informasi tentang semua tabel, kolom, indeks, dan lainnya. Dalam kebanyakan DBMS modern, ini biasanya disebut "data dictionary" atau "system catalog".

Kita dapat query 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.

Rule 5: Comprehensive Data Sub-Language Rule

Aturan ini seperti mengatakan perpustakaan 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');

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

Rule 6: View Updating Rule

Views seperti rak buku khusus di perpustakaan kita. Aturan ini menyatakan bahwa jika Anda dapat melihat view, Anda harus dapat mengupdate itu (dengan beberapa batasan).

Ini adalah contoh membuat dan mengupdate view:

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

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

Rule 7: High-Level Insert, Update, and Delete Rule

Aturan ini memastikan bahwa kita dapat mengubah set data dalam satu go, bukan satu catatan pada saat yang sama. Itu seperti dapat memindahkan rak buku penuh sekaligus, bukan buku per buku.

Misalnya:

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

-- Update beberapa catatan
UPDATE Students
SET Age = Age + 1
WHERE Age < 20;

-- Hapus beberapa catatan
DELETE FROM Students
WHERE Age > 25;

Rule 8: Physical Data Independence

Aturan ini tentang memisahkan penyimpanan fisik data dari bagaimana kita berinteraksi dengannya. Itu seperti tidak peduli apakah buku keras atau buku pop - Anda masih dapat 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.

Rule 9: Logical Data Independence

Mirip dengan Rule 8, tetapi 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 ada yang query tabel Students seharusnya terus bekerja tanpa modifikasi.

Rule 10: Integrity Independence

Aturan ini memastikan bahwa batasan integritas (seperti "Umur harus positif") didefinisikan dalam basis data dan bukan dalam aplikasi. Itu seperti memiliki aturan kategorisasi buku diberlakukan oleh sistem perpustakaan, bukan oleh petugas perpustakaan 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 integritas independen.

Rule 11: Distribution Independence

Aturan ini menyatakan bahwa basis data harus bekerja sama seperti itu terdistribusi di beberapa lokasi ataukah tidak. Itu seperti dapat mengakses buku dari cabang perpustakaan berbeda secara seamless.

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

Rule 12: Non-Subversion Rule

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

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 Information Rule
2 Guaranteed Access Rule
3 Systematic Treatment of NULL Values
4 Active Online Catalog
5 Comprehensive Data Sub-Language Rule
6 View Updating Rule
7 High-Level Insert, Update, and Delete Rule
8 Physical Data Independence
9 Logical Data Independence
10 Integrity Independence
11 Distribution Independence
12 Non-Subversion Rule

Dan itu adalah, teman-teman! 12 Rules Codd dalam bentuk ringkas. Ingat, aturan ini dibentuk 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 Rules Codd ini telah sama menarik bagi Anda seperti setiap kali 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 latih, tetap bersemangat, dan siapa tahu? Mungkin suatu hari Anda akan membentuk set aturan database yang berkepanjangan berikutnya!

Credits: Image by storyset