Kunci Dasar Yang Membuat Manajemen Database Mudah

Kunci basis data adalah cara termudah untuk membuat basis data relasional yang efisien

Seperti yang mungkin sudah Anda ketahui, database menggunakan tabel untuk mengatur informasi. (Jika Anda tidak memiliki keakraban dasar dengan konsep basis data, baca Apa itu Basis Data? ) Setiap tabel terdiri dari sejumlah baris, yang masing-masing sesuai dengan satu catatan basis data. Jadi, bagaimana database menyimpan semua catatan ini secara langsung? Ini melalui penggunaan kunci.

Kunci Utama

Jenis kunci pertama yang akan kita diskusikan adalah kunci utama . Setiap tabel database harus memiliki satu atau lebih kolom yang ditunjuk sebagai kunci utama . Nilai yang dimiliki kunci ini harus unik untuk setiap catatan dalam basis data.

Sebagai contoh, asumsikan kita memiliki tabel yang disebut Karyawan yang berisi informasi personil untuk setiap karyawan di perusahaan kami. Kami harus memilih kunci utama yang tepat yang akan mengidentifikasi setiap karyawan secara unik. Pikiran pertama Anda mungkin menggunakan nama karyawan. Ini tidak akan berjalan dengan baik karena mungkin Anda menyewa dua karyawan dengan nama yang sama. Pilihan yang lebih baik mungkin menggunakan nomor ID karyawan unik yang Anda tetapkan untuk setiap karyawan saat mereka dipekerjakan. Beberapa organisasi memilih untuk menggunakan Nomor Jaminan Sosial (atau pengenal pemerintah yang serupa) untuk tugas ini karena setiap karyawan sudah memiliki satu dan mereka dijamin unik. Namun, penggunaan Nomor Jaminan Sosial untuk tujuan ini sangat kontroversial karena masalah privasi. (Jika Anda bekerja untuk organisasi pemerintah, penggunaan Nomor Jaminan Sosial bahkan mungkin ilegal berdasarkan Privacy Act of 1974). Untuk alasan ini, sebagian besar organisasi telah beralih ke penggunaan pengenal unik (ID karyawan, ID mahasiswa, dll.) .) yang tidak berbagi masalah privasi ini.

Setelah Anda memutuskan kunci primer dan mengatur database, sistem manajemen basis data akan menegakkan keunikan kunci.

Jika Anda mencoba memasukkan catatan ke dalam tabel dengan kunci utama yang menggandakan rekaman yang ada, sisipan akan gagal.

Sebagian besar database juga mampu menghasilkan kunci utama mereka sendiri. Microsoft Access, misalnya, dapat dikonfigurasi untuk menggunakan tipe data AutoNumber untuk menetapkan ID unik untuk setiap catatan dalam tabel. Meskipun efektif, ini adalah praktik desain yang buruk karena meninggalkan Anda dengan nilai tanpa arti di setiap catatan dalam tabel. Mengapa tidak menggunakan ruang itu untuk menyimpan sesuatu yang bermanfaat?

Kunci Asing

Jenis lainnya adalah kunci asing , yang digunakan untuk membuat hubungan antar tabel. Hubungan alami ada di antara tabel di sebagian besar struktur basis data. Kembali ke database Karyawan kami, bayangkan bahwa kami ingin menambahkan tabel yang berisi informasi departemen ke database. Tabel baru ini bisa disebut Departemen dan akan berisi sejumlah besar informasi tentang departemen secara keseluruhan. Kami juga ingin memasukkan informasi tentang karyawan di departemen, tetapi akan berlebihan untuk memiliki informasi yang sama dalam dua tabel (Karyawan dan Departemen). Sebagai gantinya, kita dapat membuat hubungan antara dua tabel.

Mari kita asumsikan bahwa tabel Departemen menggunakan kolom Nama Departemen sebagai kunci utama. Untuk membuat hubungan antara dua tabel, kami menambahkan kolom baru ke tabel Karyawan yang disebut Departemen. Kami kemudian mengisi nama departemen yang dimiliki setiap karyawan. Kami juga menginformasikan sistem manajemen basis data bahwa kolom Departemen dalam tabel Karyawan adalah kunci asing yang merujuk pada tabel Departemen.

Database kemudian akan menegakkan integritas referensial dengan memastikan bahwa semua nilai di kolom Departemen dari tabel Karyawan memiliki entri yang sesuai dalam tabel Departemen.

Perhatikan bahwa tidak ada kendala keunikan untuk kunci asing. Kami mungkin (dan kemungkinan besar melakukannya) memiliki lebih dari satu karyawan yang dimiliki oleh satu departemen. Demikian pula, tidak ada persyaratan bahwa entri di tabel Departemen memiliki entri terkait di tabel Karyawan. Ada kemungkinan kami memiliki departemen tanpa karyawan.

Untuk lebih lanjut tentang topik ini, baca Membuat Kunci Asing .