The Three Keys
Konsep tentang key adalah konsep yang penting untuk memahami keterkaitan antar atribut data dalam tabel dan akan sangat berguna dalam proses normalisasi. Dalam setiap tabel, terdapat 3 macam key:
Untuk memperjelas pemahaman kita terhadap 3 macam key di atas, perhatikan contohnya pada tabel mata_kuliah di bawah ini:
Beberapa super key dari tabel di atas adalah:
Perhatikan 5 super key yang sudah kita peroleh dari analisis sebelumnya:
Dari analisis ini, kita memperoleh 2 buah candidate key yaitu (kode_mk) dan (nama_mk). Salah satu dari beberapa candidate key ini akan dipilih untuk digunakan dalam DBMS sebagai primary key. Ada beberapa pertimbangan untuk memilih primary key, di antaranya adalah jaminan keunikan yang lebih kuat, representasi yang lebih baik dan lain-lain.
Super key
Super key adalah satu atribut atau gabungan atribut (kolom) pada tabel yang dapat membedakan semua baris secara unik.Candidate key
Candidate key disebut juga dengan minimal super key, yaitu super key yang tidak mengandung super key yang lain. Setiap candidate key pasti merupakan super key, namun tidak semua super key akan menjadi candidate key.Primary key
Primary key adalah salah satu candidate key yang dipilih (dengan berbagai pertimbangan) untuk digunakan dalam DBMS. Tiap tabel hanya memiliki 1 primary key, namun primary key tersebut bisa saja dibentuk dari beberapa atribut (kolom).Untuk memperjelas pemahaman kita terhadap 3 macam key di atas, perhatikan contohnya pada tabel mata_kuliah di bawah ini:
Kode_MK | Nama_MK | Semester | SKS |
DU-001 | English | 2 | 2 |
DU-002 | Kalkulus | 1 | 3 |
IF-001 | Algoritma | 1 | 3 |
IF-002 | Database | 2 | 3 |
IF-003 | Artificial Intelligence | 5 | 2 |
TE-001 | Elektronika | 4 | 3 |
- (kode_mk)
Dari 6 baris data yang ada pada tabel di atas tak ada satupun yang memiliki kode_mk yang sama. - (nama_mk)
Demikian pula dengan nama_mk, masing-masing baris data memiliki nama_mk yang unik. Tidak ada satupun baris data yang memiliki kolom nama_mk dengan nilai yang sama persis. - (kode_mk,nama_mk,semester)
Walaupun beberapa baris data memiliki kolom semester dengan nilai yang sama (misalnya baris 1&4, baris 2&3) namun tidak ada satupun baris data yang memiliki kombinasi kode_mk, nama_mk dan semester yang sama persis. - (kode_mk,nama_mk, sks)
Kombinasi kode_mk, nama_mk dan sks juga digolongkan sebagai super key dengan alasan yang kurang lebih sama dengan poin 3. - (kode_mk,nama_mk, semester, jml_temu)
Kombinasi kode_mk, nama_mk, semester dan jml_temu juga digolongkan sebagai super key dengan alasan yang kurang lebih sama dengan poin 3 dan 4.
- (sks)
Perhatikan bahwa kolom sks tidak bisa membedakan baris data secara unik, contohnya baris data 2,3, 4 dan 6 sama-sama memiliki kolom sks bernilai 3. - (semester)
Kolom semester juga tidak bersifat unik, contohnya baris data 1 dan 4 sama-sama memiliki kolom semester bernilai 2 - (semester, sks)
Kombinasi semester dan sks juga tidak membedakan tiap baris data secara unik, contohnya baris data ke 2 dan 3 sama-sama memiliki kolom semester bernilai 1 dan sama-sama memiliki kolom sks bernilai 3
Perhatikan 5 super key yang sudah kita peroleh dari analisis sebelumnya:
- (kode_mk)
- (nama_mk)
- (kode_mk,nama_mk,semester)
- (kode_mk,nama_mk, sks)
- (kode_mk,nama_mk, semester, jml_temu)
Dari analisis ini, kita memperoleh 2 buah candidate key yaitu (kode_mk) dan (nama_mk). Salah satu dari beberapa candidate key ini akan dipilih untuk digunakan dalam DBMS sebagai primary key. Ada beberapa pertimbangan untuk memilih primary key, di antaranya adalah jaminan keunikan yang lebih kuat, representasi yang lebih baik dan lain-lain.
0 komentar:
Post a Comment