2. Perancangan basis data diperlukan, agar kitabisamemiliki basis data yang kompakdanefisiendalampenggunaanruangpenyimpanan, cepatdalampengaksesandanmudahdalampemanipulasian (tambah, ubah, hapus) data. Dalammerancang basis data, kitadapatmelakukannyadengan : Menerapkannormalisasipadastruktur table yang telahdiketahui. Langsungmembuat model ER (Entity Relationship)
3. Upaya pembentukan basis data yang baik akan bisa lebih mudah jika dilakukan dengan lebih dahulu membuat perencanaan basis data. Bagaimana upaca/cara yang baik itu melalui perencanaan basis data yang akan dibahas lebih mendalam dalam materi-materi selanjutnya. Perencanaan basis data dilaksanakan dengan menerapkan sejumlah teori terhadap data (fakta) yang telah dimiliki yang salah satunya adalah penerapan NORMALISASI DATA
4. Normalisasi Basis Data Normalisasi adalah proses pembentukan struktur basis data sehingga sebagian besar ambiguity bisa dihilangkan. Tahap Normalisasi dimulai dari tahap paling ringan (1NF) hingga paling ketat (5NF) Biasanya hanya sampai pada tingkat 3NF atau BCNF karena sudah cukup memadai untuk menghasilkan tabel-tabel yang berkualitas baik.
5. Mengapadilakukannormalisasi? Optimalisasistruktur-strukturtabel Meningkatkankecepatan Menghilangkanpemasukan data yang sama Lebihefisiendalampenggunaan media penyimpanan Mengurangiredundansi Menghindarianomali (insertion anomalies, deletion anomalies, update anomalies). Integritas data yang ditingkatkan Untuk dapat memahami dan mampu menerapkan teori NORMALISASI pada basis data, terlebih dahulu harus mengerti dan mamahami tetang komponen-komponen dasar yang terlibat di dalamnya yaitu, Key dan Attribut
6. Atribut Tabel (Table Attribute) Yaitu identik dengan pemakaian istilah kolomdata pada sebuah tabel. Istilah Atribut lebih umum dipergunakan dalam perancangan basis data karena istilah itu lebih imprensif menunjukkan fungsinya sebagai pembentuk karakteristik (sifat-sifat tabel.
12. Dari 5 table diatas, masing-masing table memiliki field / atributsebagai key, danlainnyasebagaiatributdeskriptif. Ada pula atribut yang tergolongatributsederhanaataukompositdanlainnya.
13. Key dan Atribut Deskriptif Key adalah satu atau gabungan dari beberapa atribut yang dapat membedakan semua baris data (row) dalam tabel secara unik. Ada 3 jenis key yaitu : Super key Candidat key Primery key
14. Super Key Satuatribut/kumpulanatribut yang secaraunikmengidentifikasisebuahtupeldidalamrelasi Bisaterjadi, adalebihdari 1 kumpulanatribut yang bersifatsepertiitupadasebuah table. Contoh : pada tabel Mahasiswayang memiliki 4 buah field / atributtersebut, yang dapatmenjadisuperkeyadalah: nim, nama_mahasiswa, alamat_mahasiswa, dan tgl_lahir nim, nama_mahasiswa, alamat_mahasiswa nim, nama_mahasiswa nim nama_mahasiswa Basis Data Relasional
15. Candidate key merupakankumpulan field / atribut minimal yang dapatmembedakansetiapbaris data dalamsebuah table secaraunik. Sebuah Candidate-key tidakbolehberisiatributataukumpulanatribut yang telahmenjadisuperkey yang lain. Jadisebuah Candidate-key pastisuperkey, tapibelumtentusebaliknya Contoh : nim nama_mahasiswa, jikakitabisamenjamintidakadanilai yang samauntukatributini. Padasebuah table dimungkinkanadalebihdarisatu Candidate-key, seperticontohdiatas. Salahsatudari Candidate–key ini (jikamemanglebihdarisatu) dapatdijadikansebagai Key Primer (Primary key).
16. Primary Key Primary_keyadalah candidate-key yang dipilihuntukmengidentifikasitupelsecaraunikpadasuaturelasi. Kunciutamadapatterbentukdarisatuatributataulebih. Pemilihan Key Primer darisejumlah Candidate-key padasuatu table didasaripadaketigahalberikutini: Key tersebutlebihsering (natural) untukdijadikanacuan. Key tersebutlebihringkas. Jaminankeunikan Key tersebutlebihbaik. Denganpertimbangantersebut, kedua Candidate-key pada table Mahasiswa, yaitunimdannama_mahasiswa, yang lebihcocoksebagai Key Primer adalah (nid). Hal inidikarenakanbahwajaminankeunikandaripadanid (nomorindukdosen) akanterjaminkarenakarenasetiapnidpadasuatuperguruantinggipastinyatidakakansamanilainya, sedangkankenapatidakmemilihnama_d, karenanama_dkemungkinanada yang samanilainya.
17. Foreign-Key adalahsatuatribut (satu set atribut) yang melengkapisatu relationship (hubungan) yang menunjukkankeinduknya. Foreign key ditempatkanpadarelasianakdansamadenganprimary key indukdirelasikan. Hubunganantararelasiindukdengananakadalahsatulawanbanyak (one to many relationship)
19. Atribut Deskriptif Atribut-atribut yang tidakmenjadi atau merupakan anggota primary key Misalnya dalam tabel mahasiswa, atribut seperti : nama_mahasiswa, alamat_mahasiswa, dan tgl_lahir digolongkan sebagai atribut deskriptif Basis Data Relasional
20. Atribut Sederhana & Komposit Atribut Sederhana (Simple Attribute) adl atribut atomik yang tidak dapat dipilah lagi Atribut Komposit (Composite Attribute) merupakan atribut yang masih dapat diuraikan lagi menjadi sub-sub atribut yang masing-masing memiliki makna. Contoh : Pada tabel Mahasiswa, attribut nama_mahasiswa merupakan attribut sederhana, dan alamat_mahasiswa sebagai atribut komposit krn dapat diuraikan lagi menjadi beberapa sub attribut Basis Data Relasional
22. Atribut Bernilai Tunggal & Banyak Atribut bernilai tunggal (Single-value Attribute) ditujukan pada atribut-atribut yang memiliki paling banyak satu nilai untuk setiap bari data. Attribut bernilai banyak (multivalued Attribute) ditujukan pada atribut yang dapat kita isi dengan lebih dari 1(satu) nilai, tetapi jenisnya sama.
26. AtributTurunan (Derived Attribute) adalahatribut yang nilai-nilainyadiperolehdaripengolahanataudapatditurunkandariatributatau table lain yang berhubungan. Penambahanatributtahun_masukpada table dosenmerupakancontohatributturunan
27. Syarat Tabel Yang Baik... Sebuahtabeldikatakanbaik (efisien) atau normal jikamemenuhi 3 kriteriasbb: Jikaadadekomposisi (penguraian) tabel, makadekomposisinyaharusdijaminaman (Lossless-Join Decomposition). Artinya, setelahtabeltersebutdiuraikan / didekomposisimenjaditabel-tabelbaru, tabel-tabelbarutersebutbisamenghasilkantabelsemuladengansamapersis. Terpeliharanyaketergantunganfungsionalpadasaatperubahan data (Dependency Preservation). Tidakmelanggar Boyce-Code Normal Form (BCNF) Jikakriteriaketiga (BCNF) tidakdapatterpenuhi, maka paling tidaktabeltersebuttidakmelanggarBentuk Normal tahapketiga (3rd Normal Form / 3NF).
28. Functional Dependency (4) Functional Dependency daritabelnilai NIM NamaMhs Karenauntuksetiapnilainim yang sama, makanilaiNamaMhsjugasama {Matakuliah, NIM} NilaiHuruf KarenaattributNilaiHuruftergantungpadaMatakuliahdan NIM secarabersama-sama. Dalamarti lain untukMatakuliahdan NIM yang sama, makaNilaiHurufjugasama, karenaMatakuliahdan NIM merupakan key (bersifatunik). MatakuliahNIM NIM NilaiHuruf
29. BENTUK NORMAL PERTAMA (First Normal Form - 1NF) Tidak diperboleh adanya : Atribut yang bernilai banyak (Multivaluedattribut). Attribut komposit atau kombinasi dari keduanya. Jadi : Harga domain atribut harus merupakan harga atomik
30. Contoh (1) Misal Data Mahasiswa sbb : Atau Tabel-tabel di atas tidak memenuhi syarat 1NF
32. BENTUK NORMAL KEDUA (Second Normal Form - 2NF) (1) Bentuk normal 2NF terpenuhi dalam sebuah tabel jika telah memenuhi bentuk 1NF, dan semua atribut selain primary key, secara utuh memiliki Functional Dependency pada primary key Sebuah tabel tidak memenuhi 2NF, jika ada atribut yang ketergantungannya (Functional Dependency) hanya bersifat parsial saja (hanya tergantung pada sebagian dari primary key) Jika terdapat atribut yang tidak memiliki ketergantungan terhadap primary key, maka atribut tersebut harus dipindah atau dihilangkan
33. BENTUK NORMAL KEDUA (Second Normal Form - 2NF) (2) Ketergantungan fungsional X Y dikatakan penuh jika menghapus suatu atribut A dari X berarti Y tidak lagi bergantung fungsional. Ketergantungan fungsional X Y dikatakan partial jika menghapus suatu atribut A dari X berarti Y masih bergantung fungsional. Skema relasi R dalam bentuk 2NF jika setiap atribut non primary key A R bergantung penuh secara fungsioanl pada primary key R.
34. Contoh (1) Tabel berikut ini memenuhi 1NF, tetapi tidak termasuk 2NF
35. Contoh (2) Tidak memenuhi 2NF, karena {NIM, KodeMk} yang dianggap sebagai primary key sedangkan: {NIM, KodeMk} NamaMhs {NIM, KodeMk} Alamat {NIM, KodeMk} Matakuliah {NIM, KodeMk} Sks {NIM, KodeMk} NilaiHuruf Tabel tersebut perlu didekomposisi menjadi beberapa tabel yang memenuhi syarat 2NF
37. BENTUK NORMAL KETIGA (Third Normal Form - 3NF) (1) Bentuk normal 3NF terpenuhi jika telah memenuhi bentuk 2NF, dan jika tidak ada atribut non primary key yang memiliki ketergantungan terhadap atribut non primary key yang lainnya (ketergantungan transitif).
38. BENTUK NORMAL KETIGA (Third Normal Form - 3NF)(2) Untuk setiap Functional Dependency dengan notasi X A, maka: X harus menjadi superkey pada tabel tersebut. Atau A merupakan bagian dari primary key pada tabel tersebut. Ketergantungan fungsional X Y dalam relasi R dikatakan bergantung transitif jika terdapat kumpulan atribut Z himpunan primary key R sehingga X Z dan Z Y.
39. Contoh (1) Tabel mahasis berikut ini memenuhi syarat 2NF, tetapi tidak memenuhi 3NF Karena masih terdapat atribut non primary key (yakni Kota dan Provinsi) yang memiliki ketergantungan terhadap atribut non primary key yang lain (yakni KodePos) : KodePos {Kota, Provinsi}
40. Contoh (2) Sehingga tabel tersebut perlu didekomposisi menjadi : Mahasiswa (NIM, NamaMhs, Jalan, KodePos) KodePos (KodePos, Provinsi, Kota)
41. Latihan Berikut ini contoh basis data yang belum ternormalisasi : Masalah : Tidak perlu berulang-ulang kali menyimpan data alamat, nama barang, dan harga. Redundancy dapat menimbulkan masalah, yaitu data yang tidak konsisten (pensile)