DBMS - Model Data Relasional
Hai, para penggemar basis data yang bersemangat! Hari ini, kita akan memulai perjalanan menarik ke dunia Model Data Relasional. Sebagai guru komputer yang ramah di lingkungan sekitar Anda, saya akan memandu Anda melalui konsep fundamental ini dalam sistem manajemen basis data (DBMS). Jangan khawatir jika Anda baru belajar pemrograman – kita akan mulai dari dasar dan menaikkan tingkatnya. Jadi, ambil secangkir kopi, dan mari kita masuk ke dalam!
Konsep
Apa Itu Model Data Relasional?
Bayangkan Anda sedang mengatur perpustakaan besar. Anda memiliki buku, penulis, genre, dan penerbit. Bagaimana Anda akan mencatat semua informasi ini secara efisien? Itu adalah tempat model data relasional berguna!
Model data relasional adalah cara mengatur data dalam basis data yang mengorganisir informasi ke dalam tabel (juga disebut relasi) dengan baris dan kolom. Itu seperti membuat serangkaian spreadsheet yang saling terhubung.
mari kita rincikan ini dengan 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 di 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 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 mendalami kunci dengan tabel yang praktis:
Tipe Kunci | Deskripsi | Contoh |
---|---|---|
Kunci Primer | Mengidentifikasi setiap rekord dalam tabel | BookID di tabel Books |
Kunci Asing | Mengacu pada kunci primer tabel lain | AuthorID di tabel Books |
Kunci Kandidat | Bisa 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 bisa 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 bisa 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. P想象 mereka seperti petugas perpustakaan yang memastikan buku-buku tercatat dengan benar dan diatur di rak yang sesuai.
Jenis Constraint
Tipe Constraint | Deskripsi | Contoh |
---|---|---|
NOT NULL | Memastikan kolom tidak bisa memiliki nilai NULL | Name VARCHAR(50) NOT NULL |
UNIQUE | Memastikan semua nilai di kolom berbeda | Email VARCHAR(100) UNIQUE |
Kunci Primer | Mengidentifikasi 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 di kolom memenuhi syarat khusus | CHECK (Age >= 18) |
DEFAULT | Mengatur nilai default untuk kolom jika nilai tidak 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 boleh 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. Mereka seperti aturan di perpustakaan kita yang memastikan buku-buku tercatat dengan benar, diidentifikasi secara unik, dan terhubung ke penulis dan penerbit yang tepat.
Sekarang kita telah selesai memperkenalkan Model Data Relasional, saya harap Anda mulai melihat betapa kuat dan teratur pendekatan ini dalam manajemen data. Itu seperti memiliki perpustakaan yang benar-benar teratur di mana setiap buku berada di tempatnya, mudah dicari, dan terhubung ke semua informasi relevan.
Ingat, belajar basis data adalah perjalanan. Jangan khawatir jika segala sesuatu belum jelas segera. Latih membuat tabel, menetapkan hubungan, dan mengatur constraint. Sebelum Anda sadari, Anda akan menjadi ahli dalam mendesain struktur basis data yang efisien dan kuat!
Dalam pelajaran berikutnya, kita akan mendalami cara mengquery struktur relasional ini menggunakan SQL. Sampai jumpa, selamat modeling data!
Credits: Image by storyset