Kunci ( KEY )
Kunci (key) dapat berupa sebuah atribut atau gabungan dari beberapa atribut. Berdasarkan hal ini terdapat istilah kunci sederhana dan kunci komposit (kunci kombinasi).
• Kunci Sederhana : kunci yang dibentuk oleh sebuah elemen data (sebuah atribut)
• Kunci Komposit (Kunci Kombinasi) : kunci yang tersusun atas lebih dari satu atribut.
• Kunci Kandidat (Candidate Key) : kunci yang secara unik dan dapat dipakai untuk identifikasi suatu baris di dalam tabel.
• Kunci Primer (Primary Key) : kunci kandidat yang dipilih sebagai kunci utama untuk identifikasi baris dalam tabel.
• Kunci Alternatif (Alternate Key) : semua kunci kandidat yang tidak bertindak sebagi primary key.
• Kunci Tamu (Foreign Key) : sebarang atribut yang menunjuk ke kunci primer pada tabel lain.
Normalisasi
• Normalisasi adalah proses yang berkaitan dengan model data relasional untuk mengorganisasi himpunan data dengan ketergantungan dan keterkaitan yang tinggi atau erat.
• Hasil dari proses normalisasi adalah himpunan-himpunan data dalam bentuk normal (normal form).
• Anomali adalah proses pada database yang memberikan efek samping yang tidak diharapkan (misalnya ketidakkonsistenan data atau membuat sesuatu data menjadi hilang ketika data lain dihapus).
Ada 3 macam anomali, yaitu :
- Anomali Peremajaan
Anomali ini terjadi bila terjadi pengubahan pada sejumlah data yang mubazir, tetapi tidak seluruhnya diubah.
- Anomali Penyisipan
Anomali ini terjadi apabila penambahan hendak dilakukan ternyata ada elemen data yang masih kosong dan elemen data tersebut justru menjadi kunci.
- Anomali Penghapusan
Anomali ini terjadi apabila suatu baris (tupel) yang tak terpakai dihapus dan sebagai akibatnya terdapat data lain yang hilang.
Dependensi (Ketergantungan)
• Dependensi (ketergantungan) merupakan konsep yang mendasari normalisasi.
• Dependensi menjelaskan hubungan antar atribut, atau secara lebih khusus menjelaskan nilai suatu atribut yang menentukan nilai atribut lainnya.
Ada 4 macam dependensi, yaitu :
- Dependensi Fungsional : Suatu atribut Y mempunyai dependensi fungsional terhadap atribut X, jika dan hanya jika setiap nilai X berhubungan dengan sebuah nilai Y.
Notasi : X Y
- Dependensi Fungsional Sepenuhnya : Suatu atribut Y mempunyai dependensi fungsional penuh terhadap atribut X, jika Y mempunyai dependensi fungsional terhadap X, sedangkan Y tidak memiliki dependensi terhadap bagian dari X.
- Dependensi Total : Suatu atribut Y mempunyai dependensi total terhadap atribut X, jika Y memiliki dependensi fungsional terhadap X, dan X mempunyai dependensi fungsional thdp Y.
Notasi : X Y
- Dependensi Transitif : Atribut Z mempunyai dependensi transitif terhadap X, jika Y memiliki dependensi fungsional terhadap X, dan Z memiliki dependensi fungsional terhadap Y. Bentuk Normal Pertama (1NF)Suatu relasi dikatakan dalam bentuk normal pertama (1NF), jika dan hanya jika setiap atribut bernilai tunggal untuk setiap baris.Bentuk Normal Kedua (2NF)Suatu relasi dikatakan dalam bentuk normal kedua (2NF), jika dan hanya jika berada pada bentuk normal pertama (1NF) dan semua atribut bukan kunci memiliki dependensi sepenuhnya terhadap kunci primer (primary key).Bentuk Normal Ketiga (3NF)Suatu relasi dikatakan dalam bentuk normal ketiga (3NF), jika dan hanya jika berada pada bentuk normal kedua (2NF) dan setiap atribut bukan kunci tidak memiliki dependensi transitif terhadap kunci primer (Primary key).Bentuk Normal Boyce-Codd
(Boyce-Codd Normal Form / BCNF) - Suatu relasi memenuhi BCNF, jika dan hanya jika setiap determinan (penentu) yang ada pada relasi tersebut adalah kunci kandidat (candidate key).
- Determinan adalah gugus atribut dimana satu atau lebih atribut lain tergantung secara fungsional.
TENTANG NORMALISASI
• Normalisasi pertama kali dikemukakan oleh E.F. CODD, salah seorang perintis teknologi database, pada tahun 1970.
• Selain digunakan sebagai metodologi tersendiri untuk menciptakan struktur tabel (relasi) dalam database, normalisasi terkadang hanya digunakan sebagai perangkat verifikasi terhadap tabel-tabel yang dihasilkan oleh metodologi lain, seperti Entity-Relationship.
• Normalisasi memberikan panduan yang sangat membantu bagi pengembang database untuk mencegah penciptaan struktur tabel yang kurang fleksibel atau dapat juga dikatakan mengurangi ke-tidakefisien-an.
• Tanpa normalisasi, sistem database menjadi tidak akurat, lambat tidak efisien, serta tidak memberikan data yang diharapkan.
BEBERAPA PENGERTIAN NORMALISASI
Normalisasi merupakan proses pengelompokkan elemen data menjadi tabel–tabel yang menunjukkan entity dan relasinya.
Normalisasi adalah proses pengelompokan atribute-atribute dari suatu relasi sehingga membentuk WELL STRUCTURE RELATION
WELL STRUCTURE RELATION
Well Structure Relation adalah sebuah relasi yang jumlah kerangkapan datanya sedikit (Minimum Amount Of Redundancy), serta memberikan kemungkinan bagi user untuk melakukan INSERT, DELETE, dan MODIFY terhadap baris-baris data pada relation tersebut, yang tidak berakibat terjadinya ERROR atau INKONSESTENSI DATA, yang disebabkan oleh operasi–operasi tersebut.
Keuntungan dari Normalisasi
- Meminimalkan ukuran penyimpanan yang diperlukan untuk menyimpan data.
- Meminimalkan resiko inkonsistensi data pada database.
- Meminimalkan kemungkinan terjadinya anomali.
- Memaksimalkan stabilitas struktur data.
ANOMALI
ANOMALI merupakan penyimpangan-penyimpangan atau error atau inkonsistensi data yang terjadi pada saat dilakukan proses insert, delete maupun modify.
Terdapat 3 jenis Anomali :
- Insertion Anomaly
- Deletion Anomaly
- Update Anomaly
- Insertion Anomali
• Merupakan error yang terjadi sebagai akibat operasi insert record/tuple pada sebuah relasi.
• Contoh :
Jika ada matakuliah baru (CS-600) yang akan diajarkan, maka matakuliah tsb tidak bisa disisipkan (insert) ke dalam relasi tsb sampai ada mahasiswa yang mengambil matakuliah tsb.
- Deletion Anomali
• Merupakan error yang terjadi sebagai akibat operasi delete record/tuple pada sebuah relasi.
• Contoh :
Jika mahasiswa dengan student-id 92425, memutuskan untuk batal ikut kuliah CS-400, karena dia merupakan satu-satunya peserta matakuliah tsb, maka bila record/tuple tsb dihapuskan (delete) akan berakibat hilangnya informasi bahwa matakuliah CS-400, biayanya 150.
- Update Anomali
• Merupakan error yang terjadi sebagai akibat inkonsistensi data yang terjadi sebagai akibat dari operasi update record/tuple dari sebuah relasi.
• Contoh :
Bila biaya kuliah untuk matakuliah CS-200 dinaikkan dari 75 menjadi 100, maka harus dilakukan beberapa kali modifikasi terhadap record-record/tuple-tuple mahasiswa yang mengambil matakuliah CS-200, agar data tetap konsisten
Problem-Problem pada Relation yang Sudah Dinormalisasi
Meskipun normalisasi membantu menghilangkan anlomali, tetapi harus diwaspadai timbulnya problem baru yang disebabkan oleh normalisasi tersebut.
Terdapat 2 macam problem yang mungkin timbul, yaitu :
- Performance Problem
- Referential Integrity Problem
1. Performance Problem
Contoh :
• Sebelum normalisasi, untuk menghasilkan listing data seperti pada relasi KURSUS, dapat digunakan instruksi SQL sebagai berikut :
SELECT * FROM KURSUS
• Setelah dinormalisasi, untuk menghilangkan listing data-data yang sama, harus terlebih dahulu menggabungkan tuple-tuple dan relasi STUDENT-MTK dengan tuple-tuple MTK-BIAYA, dengan menggunakan instruksi SQL sebagai berikut :
Select STUDENT-ID, MTK-BIAYA.KODE-MTK, BIAYA
From STUDENT-MTK, MTK-BIAYA
Where STUDENT-MTK.KODE-MTK =
MTK-BIAYA.KODE-MTK
• Hasil yang diperoleh akan sama, tetapi waktu eksekusi akan lebih lama.
2. Refferential Integrity Problem
Contoh :
Mengacu pada relasi STUDENT-MTK & MTK-BIAYA, maka :
- Jangan menambah record baru di relasi STUDENT-MTK (kecuali KODE-MTK) untuk record baru tersebut karena sudah ada di relasi MTK-BIAYA.
- Jangan mengahpus (delete) record di relasi MTK-BIAYA. Bila masih terdapat record-record yang berada di relasi STUDENT-MTK, maka MTK-BIAYA yang nilainya sama dengan KODE-MTK yang akan dihapus.
BEBERAPA KONSEP YANG HARUS DIKETAHUI
- Field/ Atribut Kunci
- Ketergantungan Kunci
- KEY
• Key adalah sejumlah atribut yang mengidentifikasi record/baris dalam sebuah relasi secara unik.
• Semua atribut non-key pada sebuah relasi, memiliki ketergantungan fungsi terhadap key-nya.
• Setiap relasi harus mempunyai key dan value, dimana key tersebut harus unik (artinya setiap record/baris dalam sebuah relasi harus berbeda).
Jenis-Jenis KEY
1. Super Key
Yaitu himpunan dari satu atau lebih entitas yang digunakan untuk mengidentifikasikan secara unik sebuah entitas dalam entitas set.
2. Candidate key
Yaitu satu atribut atau satu set minimal atribut yang mengidentifikasikan secara unik suatu kejadian yang spesifik dari entitas.
3. Alternate Key
Yaitu kunci kandidat yang tidak dipakai sebagai primary key.
4. Primary Key
Yaitu satu atribut atau satu set minimal atribut yang tidak hanya mengidentifikasikan secara unik suatu kejadian yang spesifik tapi juga dapat mewakili setiap kejadian dari suatu entitas.
5. Foreign Key
Yaitu satu atribut (atau satu set atribut) yang melengkapi satu relationship (hubungan yang menunjukkan ke induknya).
b. Ketergantungan Kunci
1. Ketergantungan Fungsional (Fungsional Dependent)
• Keterkaitan antar-hubungan antara 2 atribut pada sebuah relasi.
• Dituliskan dengan cara : A -> B, yang berarti :
Atribut B Fungsionality Dependent terhadap atribut A atau isi (value) atribut A menentukan isi atribut B.
• Definisi dari functional dependent :
Diketahui sebuah relasi R, atribut Y dari R adalah FD pada atribut X dari R ditulis R.X -> R.Y jika dan hanya jika tiap harga X dalam R bersesuaian dengan tepat satu harga Y dalam R.
Contoh :
NIM → Nama_MHS
Atribut NIM disebut Determinant, sedangkan atribut Nama_MHS disebut Dependent
2. Fully Functinaly Dependent (FFD)
• Suatu rinci data dikatakan fully functional dependent pada suatu kombinasi rinci data jika functional dependent pada kombinasi rinci data dan tidak functional dependent pada bagian lain dari kombinasi rinci data.
• Definisi dari FDD :
Atribut Y pada relasi R adalah FFD pada atribut X pada relasi R jika Y FD pada X tida FD pada himpunan bagian dari X.
3. Ketergantungan Partial
Sebagian dari kunci dapat digunakan sebagai kunci utama (Primary Key).
4. Ketergantungan Transitif
Menjadi atribut biasa pada suatu relasi tetapi menjadi kunci pada relasi lain.
5. Determinant
Suatu atribut (field) atau gabungan atribut dimana beberapa atribut lain bergantung sepenuhnya pada atribut tersebut.