Terjemahan ke Bahasa Indonesia
DBMS - Model Data Relasional
Hai, para entusiastawan basis data yang sedang berkembang! Hari ini, kita akan memulai sebuah perjalanan yang menarik ke dalam dunia Model Data Relasional. Sebagai guru komputer yang ramah di lingkungan sekitar Anda, saya akan mengorbit Anda melalui konsep fundamental ini dalam sistem manajemen basis data (DBMS). Jangan khawatir jika Anda baru belajar pemrograman - kita akan mulai dari dasar dan kemudian maju perlahan. Jadi, ambil sebuah gelas kopi, dan mari kita masuk ke dalamnya!
Konsep
Apa Itu Model Data Relasional?
Imaginasi Anda sedang mengatur sebuah perpustakaan besar. Anda memiliki buku, penulis, genre, dan penerbit. Bagaimana Anda akan mencatat semua informasi ini secara efisien? Itu di mana model data relasional berguna!
Model data relasional adalah cara menyusun data dalam basis data yang mengatur informasi kedalam tabel (juga disebut relasi) dengan baris dan kolom. Itu seperti membuat sebuah rangkaian spreadsheet yang saling terhubung.
mari kita rinci ini dengan sebuah contoh:
CREATE TABLE Books (
BookID INT PRIMARY KEY,
Title VARCHAR(100),
AuthorID INT,
GenreID INT,
PublisherID INT
);
CREATE TABLE Authors (
AuthorID INT PRIMARY KEY,
Name VARCHAR(50),
BirthDate DATE
);
Dalam contoh ini, kita telah membuat dua tabel: Books dan Authors. Setiap tabel memiliki kolom (field) yang menjelaskan atribut yang berbeda. BookID
dan AuthorID
adalah identifier unik untuk setiap rekord dalam tabel mereka masing-masing.
Komponen Utama Model Relasional
-
Tabel (Relasi): Ini adalah struktur utama yang menahan data. Dalam contoh perpustakaan kita, Books dan Authors adalah tabel.
-
Atribut (Kolom): Ini mewakili properti entitas dalam tabel kita. Sebagai contoh, Title dan Name adalah atribut.
-
Tupel (Baris): Setiap baris dalam tabel mewakili rekord tunggal atau insiden entitas.
-
Domain: Ini adalah himpunan nilai yang diizinkan untuk sebuah atribut. Sebagai contoh, domain untuk
BookID
mungkin adalah bilangan bulat positif. -
Kunci: Ini adalah atribut khusus yang digunakan untuk mengidentifikasi rekord secara unik dan menetapkan hubungan antara tabel.
Jenis Kunci
Mari kita masuk lebih mendalam ke kunci dengan tabel yang praktis:
Tipe Kunci | Deskripsi | Contoh |
---|---|---|
Kunci Primer | Mengidentifikasi secara unik setiap rekord dalam tabel |
BookID di tabel Books |
Kunci Asing | Mengacu ke kunci primer tabel lain |
AuthorID di tabel Books |
Kunci Kandidat | Dapat digunakan sebagai kunci primer | ISBN untuk buku |
Kunci Komposit | Kunci yang terdiri dari beberapa kolom | (CourseID, StudentID) untuk tabel pendaftaran kursus |
Hubungan
Salah satu aspek yang paling kuat dari model relasional adalah kemampuannya untuk menetapkan hubungan antara tabel. Ada tiga jenis utama:
- Satu-ke-Satu (1:1): Setiap rekord di Tabel A terhubung dengan satu rekord di Tabel B.
Contoh:
CREATE TABLE Passport (
PassportID INT PRIMARY KEY,
PassportNumber VARCHAR(20),
ExpiryDate DATE,
CitizenID INT UNIQUE,
FOREIGN KEY (CitizenID) REFERENCES Citizens(CitizenID)
);
- Satu-ke-Banyak (1:N): Satu rekord di Tabel A dapat terhubung dengan banyak rekord di Tabel B.
Contoh:
CREATE TABLE Orders (
OrderID INT PRIMARY KEY,
OrderDate DATE,
CustomerID INT,
FOREIGN KEY (CustomerID) REFERENCES Customers(CustomerID)
);
- Banyak-ke-Banyak (M:N): Banyak rekord di Tabel A dapat terhubung dengan banyak rekord di Tabel B.
Contoh:
CREATE TABLE StudentCourses (
StudentID INT,
CourseID INT,
PRIMARY KEY (StudentID, CourseID),
FOREIGN KEY (StudentID) REFERENCES Students(StudentID),
FOREIGN KEY (CourseID) REFERENCES Courses(CourseID)
);
Constraint
Sekarang, mari kita bicarakan constraint - aturan yang membantu menjaga integritas dan konsistensi data kita. Picturkan mereka sebagai petugas perpustakaan yang memastikan buku-buku terkategorisasi dengan baik, diidentifikasi secara unik, dan terhubung ke penulis dan penerbit yang benar.
Jenis Constraint
Tipe Constraint | Deskripsi | Contoh |
---|---|---|
NOT NULL | Memastikan kolom tidak dapat memiliki nilai NULL | Name VARCHAR(50) NOT NULL |
UNIQUE | Memastikan semua nilai dalam kolom berbeda | Email VARCHAR(100) UNIQUE |
Kunci Primer | Mengidentifikasi secara unik setiap rekord dalam tabel | StudentID INT PRIMARY KEY |
Kunci Asing | Memastikan integritas referensi antara tabel | FOREIGN KEY (AuthorID) REFERENCES Authors(AuthorID) |
CHECK | Memastikan semua nilai dalam kolom memenuhi kondisi tertentu | CHECK (Age >= 18) |
DEFAULT | Menetapkan nilai default untuk kolom jika tidak ada nilai yang ditentukan | Balance DECIMAL(10,2) DEFAULT 0.00 |
Lihat constraint ini dalam aksi:
CREATE TABLE Students (
StudentID INT PRIMARY KEY,
Name VARCHAR(50) NOT NULL,
Email VARCHAR(100) UNIQUE,
Age INT CHECK (Age >= 18),
EnrollmentDate DATE DEFAULT CURRENT_DATE,
DepartmentID INT,
FOREIGN KEY (DepartmentID) REFERENCES Departments(DepartmentID)
);
Dalam contoh ini:
-
StudentID
adalah kunci primer. -
Name
tidak dapat null. -
Email
harus unik untuk setiap murid. -
Age
harus 18 atau lebih tua. -
EnrollmentDate
akan default ke tanggal saat ini jika tidak ditentukan. -
DepartmentID
adalah kunci asing yang mengacu ke tabel Departments.
Constraint ini membantu menjaga integritas dan konsistensi data kita di seluruh basis data. Itu seperti aturan di perpustakaan kita yang memastikan buku-buku terkategorisasi dengan baik, diidentifikasi secara unik, dan terhubung ke penulis dan penerbit yang benar.
Seperti yang kita selesaikan pengenalan ini ke Model Data Relasional, saya harap Anda mulai melihat betapa kuat dan terorganisir pendekatan ini dalam manajemen data. Ingat, belajar basis data adalah perjalanan. Jangan khawatir jika segala sesuatu tidak langsung berjalan mulus. Latih membuat tabel, menetapkan hubungan, dan menempatkan constraint. Secepatnya, Anda akan menjadi ahli dalam mendesain struktur basis data yang efisien dan kuat!
Dalam pelajaran berikutnya, kita akan masuk lebih dalam ke dalam penggunaan SQL untuk mengquery struktur relasional ini. Sampai saat itu, semoga Anda senang modeling data!
Credits: Image by storyset