Mendengar istilah primary key dan foreign key mungkin bagi kamu yang sering bermain dengan database, istilah tersebut tidak terlalu asing lagi didengar. Namun mungkin saja bagi sebagian kalangan istilah tersebut mungkin terdengar sangat asing. Bagi kamu yang saat ini sedang belajar mengenai dunia pemrograman, kamu mesti mengetahui kedua istilah tersebut. Karena primary key dan foreign key akan sangat berpengaruh terhadap struktur database yang sedang kamu buat.
Keberadaan primary key dan foreign key
menjadi salah satu hal yang cukup penting dalam suatu database. Selain keberadaanya bisa memudahkan dalam pengolahan
data, juga bisa berperan dalam proses pencarian data dan merelasikan suatu
tabel yang ada di database dengan
tabel yang lain. Dengan kata lain primary
key dan foreign key merupakan
istilah dari aturan yang ada pada database
yang berguna untuk membedakan setiap data pada tabel secara bersifat unik.
Hal yang perlu kamu perhatikan saat
menetapkan atribut sebagai primary key
atau foreign key. Pertama adalah jika
kamu memiliki banyak tabel, maka tabel tersebut tentunya bisa dikaitkan dengan
menggunakan primary key pada tabel
pertama, sedangkan di tabel yang kedua data tersebut bukan lagi primary key melainkan foreign key.
Mengenal Primary Key dan Foreign Key
Perlu kamu ketahui bahwa tabel-tabel yang
ada pada database bisa saling
berkaitan antara tabel yang satu dengan tabel yang lain. Oleh karena itu untuk
mengaitkan atau merelasikan sebuah tabel maka diperlukan sebuah kunci. Kunci
utama ini harus bersifat unik atau nilainya tidak dapat sama dengan yang lain,
karena akan dipergunakan untuk mengidentifikasi apa yang membedakan record yang satu dengan record yang lainnya.
Terdapat beberapa kunci pada suatu database, tergantung dari fungsi dan
operasi apa yang diinginkan. Kunci yang akan kita bahas pada artikel ini adalah
primary key dan foreign key. Lalu, apa maksud dari primary key dan foreign key ini?
Primary Key
Primary key merupakan kunci yang digunakan pada sebuah atribut yang ada pada tabel untuk dapat mengidentifikasi suatu baris atau record yang ada di dalam tabel, sehingga setiap record bisa dibedakan. Nilai yang ada pada atribut primary key harus memiliki nilai yang unik atau tidak boleh ada yang sama dengan data yang lain.
Foreign Key
Foreign
key merupakan kunci dari suatu atribut yang ada pada
tabel untuk melengkapi satu relasi yang mengacu pada tabel yang lain. Tidak
seperti primary key, foreign key bisa terdapat lebih dari
satu pada suatu tabel. Nilai yang ada
pada atribut foreign key nilainya
diambil dari nilai yang ada pada tabel lain yang direlasikan pada tabel
tersebut.
Fungsi Primary Key dan Foreign Key
Saat kamu menggunakan database,terkadang kamu perlu menampilkan record tertentu yang tersimpan pada tabel. Tabel yang ada pada database juga bisa kamu relasikan
sehingga informasi yang diambil bisa terdapat dari beberapa tabel. Seperti yang
diungkapkan sebelumnya untuk merelasikan suatu tabel kamu membutuhkan primary key dan foreign key. Lantas fungsi dari primary
key dan foreign key itu apa? Mari
kita bahas bersama, kamu dapat mencoba skrip SQL nantinya, agar lebih memantapkan
pemahaman kamu.
Fungsi Primary Key
Misalnya kamu memiliki sebuah database dengan nama kampus di dalam database tersebut memiliki sebuah tabel
dengan nama tabel matkul. Struktur tabelnya bisa kamu lihat pada tabel di bawah
ini.
kode_matkul |
nama_matkul |
sks |
TI0001 |
Struktur Data |
2 |
AB004 |
Manajemen Bisnis |
2 |
Kamu juga bisa sekalian mencobanya pada database, silahkan kamu buat database dengan nama kampus. Kemudian
jalankan skrip SQL di bawah ini.
`kode_matkul` varchar(10) NOT NULL,
`nama_matkul` varchar(30) NOT NULL,
`sks` int(2) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
INSERT INTO `matkul` (`kode_matkul`, `nama_matkul`, `sks`) VALUES
('AB0004', 'Manajemen Bisnis', 2),
('TI0001', 'Struktur Data', 2);
ALTER TABLE `matkul`
ADD PRIMARY KEY (`kode_matkul`);
Dari tabel tersebut ketika kamu ingin
menampilkan sebuah record atau baris
data tertentu, maka kamu memerlukan sebuah kunci. Pada tabel matkul di atas
atribut yang cocok untuk dijadikan primary
key adalah kode_matkul. Kenapa kode_matkul? Karena kode_matkul memiliki
sifat unik atau tidak mungkin record
yang lain memiliki kode_matkul yang sama. Sedangkan atribut yang lain bisa saja
memiliki nilai yang sama, maka dari itu kode_matkul lah yang cocok untuk
dijadikan primary key.
Primary
key ini berfungsi untuk membedakan atau
mengidentifikasi setiap record dengan
record yang lain. Misal ketika kamu
ingin menampilkan suatu record pada
aplikasi, ketika kamu melakukan query
berdasarkan nama matkul atau sks, maka bisa saja terdapat beberapa record dengan nilai yang sama. Oleh
sebab itu fungsi dari primary key
disini sangat diperlukan. Perhatikan query
di bawah yang berfungsi untuk menampilkan data dari tabel matkul berdasarkan
kode_matkul.
SELECT * FROM `matkul` WHERE
`kode_matkul`="TI0001"
Maka setelah dijalankan query di atas, data yang akan
ditampilkan terlihat pada tabel di bawah.
kode_matkul |
nama_matkul |
sks |
TI0001 |
Struktur Data |
2 |
Fungsi Foreign Key
Misalnya pada database kampus tersebut
selain ada tabel matkul seperti diatas ada juga tabel mahasiswa. Tabel
mahasiswa ini nantinya akan direlasikan dengan tabel matkul dengan menggunakan
atribut matkul yang dijadikan sebagai foreign
key. Perhatikan struktur dari tabel matkul berikut ini.
nim |
nama_mhs |
jenisKelamin |
tgl_lahir |
matkul |
1630511088 |
Robby |
Pria |
03-12-1997 |
TI0001 |
1730511089 |
Habli |
Pria |
01-09-1999 |
AB0004 |
1630611032 |
Safariyah |
Perempuan |
23-03-1998 |
AB0004 |
Kamu juga bisa sekalian mencobanya pada database, pastikan tabel matkul
sebelumnya sudah ada pada database.
Karena salah satu atribut di tabel mahasiswa ini merupakan foreign key, sehingga tabel mahasiswa merupakan child dari tabel matkul. Silahkan
jalankan skrip SQL di bawah ini.
`nim` int(11) NOT NULL,
`nama_mhs` varchar(50) NOT NULL,
`jenisKelamin` varchar(10) NOT NULL,
`tgl_lahir` date NOT NULL,
`matkul` varchar(10) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
INSERT INTO `mahasiswa` (`nim`, `nama_mhs`, `jenisKelamin`, `tgl_lahir`, `matkul`) VALUES
(1630511088, 'Robby Takkdirillah', 'Pria', '1997-12-03', 'TI0001'),
(1730511089, 'Rendi Juliarto', 'Pria', '1999-09-01', 'AB0004'),
(1630611032, 'Dini Agustian', 'Perempuan', '1998-03-23', 'AB0004');
ALTER TABLE `mahasiswa`
ADD PRIMARY KEY (`nim`),
ADD KEY `matkul` (`matkul`);
ALTER TABLE `mahasiswa`
ADD CONSTRAINT `mahasiswa_ibfk_1` FOREIGN KEY (`matkul`) REFERENCES `matkul` (`kode_matkul`);
Dari tabel tersebut atribut yang
bertindak sebagai foreign key adalah
matkul. Atribut matkul dipilih sebagai foreign
key bukan tanpa alasan, karena salah satu syarat untuk menjadikan sebuah
atribut sebagai foreign key adalah
nilai pada atribut tersebut berasal dari tabel yang akan direlasikan. Selain
memiliki foreign key, tabel mahasiswa
juga memiliki primary key yang
terletak pada atribut nim.
Foreign
key ini berfungsi untuk memberi tanda atau
mengidentifikasi hubungan tabel yang satu dengan tabel yang lain. Misal ketika
kamu ingin menampilkan suatu record pada
aplikasi dengan merelasikan dua tabel sehingga saat record mahasiswa ditampilkan ada informasi berupa nim, nama
mahasiswa, nama matkul dan jumlah sksnya. Untuk menampilkan informasi tersebut
maka kamu memerlukan sebuah query
seperti berikut.
Setelah query tersebut dijalankan, maka dua tabel yang direlasikan tadi
akan menampilkan informasi seperti pada tabel di bawah.
nim |
nama_mhs |
nama_matkul |
sks |
1630511088 |
Robby |
Struktur Data |
2 |
1630611032 |
Yessy |
Manajemen bisnis |
2 |
1730511089 |
Habli |
Manajemen Bisnis |
2 |
Ciri-ciri Primary Key dan Foreign Key
Dari pembahasan sebelumnya, mungkin kamu
sudah dapat menyimpulkan ciri-ciri dari primary
key dan foreign key. Seperti
penerapan primary key harus pada
atribut yang memiliki nilai yang unik, sedangkan foreign key nilainya diambil dari tabel lain. Selain ciri-ciri
tersebut masih terdapat beberapa ciri-ciri lagi. Mari kita simak bersama
ciri-ciri yang dimiliki oleh primary key
dan foreign key berikut ini.
Ciri-ciri Primary Key
- Nilai pada primary key selain tidak boleh sama
atau harus bersifat unik, nilainya juga tidak boleh null atau kosong.
- Kamu tidak
dapat menghapus nilai dari primary
key apabila nilainya digunakan oleh foreign key, sehingga kamu harus menghapus terlebih dahulu
pada tabel child.
- Pada satu
tabel kamu hanya bisa membuat satu
primary key.
- Nilai pada primary key bisa kamu tambah atau
ubah walaupun pada foreign key
nilai tersebut belum digunakan.
Ciri-ciri Foreign Key
- Nilai pada foreign key bisa sama dan juga
nilainya bisa berupa null atau
kosong.
- Kamu bisa
menghapus nilai dari foreign key
yang direlasikan dengan tabel yang lain.
- Pada suatu
tabel bisa saja kamu membuat atribut foreign
key lebih dari satu.
- Nilai pada foreign key tidak dapat kamu tambah
atau ubah, apabila primary key
yang dijadikan rujukan tidak memiliki nilai tersebut
Demikian pembahasan yang bisa disampaikan
mengenai primary key dan foreign key. Teruslah belajar dan jangan
lupa untuk tetap berlatih mengoperasikan database
pada sebuah aplikasi yang sedang kamu bangun. Dengan membuat struktur database yang terencana dan bagus akan
membuat kamu mudah untuk mengelola data dan merelasikan tabel di dalamnya.
0 Comments
Komentar akan dimoderasi terlebih dahulu untuk sementara karena ada beberapa komentar yg mengandung spam porno. Jadi komentar tidak akan langsung muncul sebelum disetujui.
Dilarang berkomentar yang mengandung porno, judi, spam, rasis, promosi iklan dan sara.
Form komentar akan di nonaktifkan setelah komentar mencapai 30 komentar lebih.