Normalisasi 1
Tujuan Pembelajaran Memahami pentingnya normalisasi. Memahami normalisasi bentuk pertama (1NF). Memahami aturan pembuatan normalisasi 1NF. Memahami normalisasi bentuk kedua (2NF) Memahami aturan normalisasi 2NF Memahami normalisasi bentuk ketiga (3NF) Memahami normalisasi Boyce-Codd Normal Form (BCNF) 2
Pentingnya Normalisasi Karena adanya struktur database yang kurang bagus Data yang sama tersimpan di beberapa tempat (file atau record) Ketidakmampuan untuk menghasilkan informasi tertentu Terjadi kehilangan informasi Terjadi adanya redundansi (pengulangan) atau duplikasi data sehingga memboroskan ruang penyimpanan dan menyulitkan saat proses updating data Adanya NULL VALUE 3
Tujuan Normalisasi Tujuan normalisasi adalah menyempurnakan struktur table menjadi lebih baik Bentuk normalisasi yang sering digunakan adalah 1st NF, 2nd NF, 3rd NF, dan BCNF 4
FUNCTIONAL DEPENDENCY (FD) Untuk melakukan normalisasi, harus bisa menentukan terlebih dahulu Functional Dependency (FD) atau Ketergantungan Fungsional, khususnya dalam melakukan dekomposisi rancangan database. Functional Dependency (FD) dapat disimbolkan dengan: A B : artinya B memiliki ketergantungan dengan A Berarti A secara fungsional menentukan B atau B secara fungsional tergantung pada A. 5
FUNCTIONAL DEPENDENCY (FD) Contoh: Functional Dependency: NRP Nama Mata_Kuliah, NRP Nilai Non Functional Dependency: Mata_Kuliah NRP NRP Nilai 6
NORMALISASI 1NF 1st Normal Form (1NF) Merubah dari bentuk tabel tidak normal (unnormalized table) menjadi bentuk normal (1NF). Suatu relasi R disebut 1st NF jika dan hanya jika kondisi tablenya dari unnormalized dirubah ke bentuk normal dengan kondisi semua attribute value-nya harus atomic (tidak boleh ada attribute yang composit / multivalue) 7
Unnormalized table (tabel tidak normal) Suatu tabel dikatakan unnormalized jika : Mempunyai penggandaan field yang sejenis Contoh : Tabel dibawah adalah tabel siswa mengambil mata kuliah SISWA Elemen datanya memungkinkan untuk null value (kosong) Tabel yang mencatat No. SIM yang dimiliki siswa SISWA_SIM 8
Tabel dalam bentuk normal 1NF, jika … Suatu tabel dikatakan berada pada bentuk normal I jika ia tidak berada pada bentuk unnormalized table, dimana terjadi penggandaan field yang sejenis dan memungkinkan ada field yang null (kosong) SISWA SIM 9
Latihan Soal Apakah bentuk relasi table Department sudah memenuhi normal 1 (1NF)? Jika belum normalisasikan. Apakah bentuk relasi table Emp_Proj sudah memenuhi normal 1 (1NF)? Jika belum normalisasikan. 10
NORMALISASI 2NF 2st Normal Form (2NF) Normalisasi 2NF: jika tabel berada dalam bentuk Normal Pertama (1NF) dan setiap atribut bukan kunci bergantung penuh pada kunci primer. Sehingga tidak ada atribut bukan kunci yang bergantung pada sebagian (parsial) kunci primer. 11
Syarat 2st Normal Form (2NF) Memenuhi kriteria tabel Normal I (1NF) Di dalam tabel tersebut tidak ada Redundansi / Pengulangan data dan Null Value. Field-field yang bukan PK adalah Full Dependent (bergantung penuh) pada PK. 12
Contoh 2NF: Suatu format tabel Normal I (1NF) : (menghilangkan Redundansi) Bentuk Normal II (2NF) : (Decompose) 13
Ilustrasi 2NF Suatu format tabel Normal I (1NF) : (menghilangkan Redundansi) Bentuk Normal II (2NF) : (Decompose) 14
NORMALISASI 3NF 3rd Normal Form (3NF) Suatu relasi R disebut normal III (3rd NF) jika berada dalam bentuk normal II (2nd NF) dan tidak dijumpai adanya ketergantungan transitif (Transitive Dependency). Kebergantungan Transitif (Transitive Dependency) adalah ketergantungan fungsional antara 2 (atau lebih) atribut bukan key (kunci). 15
Syarat 3NF Syarat 3NF: Harus berada dalam bentuk normal II (2NF). Ketergantungan field-field yang bukan PK adalah harus secara mutlak (full-dependent). Artinya harus tidak ada transitive dependency (ketergantungan secara transitif). 16
Contoh 3NF: Bentuk Normal ke Dua (2NF) : Tabel di samping sudah masuk dalam bentuk Normal 2. Akan tetapi kita lihat bahwa field Nama dan Nilai adalah Full-Dependent terhadap NRP yang bertindak sebagai PK. Berbeda dengan field Keterangan di atas yang Dependent kepada NRP akan tetapi Tidak Mutlak. Ia lebih dekat ketergantungannya dengan field Nilai. Karena field Nilai Dependent kepada NRP dan field Keterangan Dependent kepada Nilai, maka field Keterangan juga dependent kepada NRP. Ketergantungan yang demikian ini yang dinamakan Transitive-Dependent (dependent secara transitif atau samar/tidak langsung). Untuk itu dilakukan Normalisasi III (3NF). Bentuk Normal ke Tiga (3NF) : 17
Boyce-Codd Normal Form (BCNF) Secara praktis, tujuan rancangan database adalah cukup sampai pada 3NF. Akan tetapi untuk kasus-kasus tertentu kita bisa mendapatkan rancangan yang lebih baik lagi apabila bisa mencapai ke BCNF. BCNF ditemukan oleh: R.F. Boyce dan E.F. Codd Suatu relasi R dikatakan dalam bentuk BCNF: jika dan hanya jika setiap Atribut Kunci (Key) pada suatu relasi adalah Kunci Kandidat (Candidate Key). Kunci Kandidat (Candidate Key) adalah atribut-atribut dari entitas yang mungkin dapat digunakan sebagai kunci (key) atribut. BCNF hampir sama dengan 3NF, dengan kata lain setiap BCNF adalah 3NF. 18
Contoh BCNF Normal II (2NF) : Normal III (3NF) atau BCNF 19
Implementasi Basis Data 20
Implementasi basis data Merupakan upaya membangun basis data fisik yang ditempatkan dalam memori sekunder (disk) dengan bantuan DBMS Diawali dengan melakukan transformasi model data ke skema/struktur basis data Diagram E-R ditransformasi ke basis data secara fisik Himpunan entitas dan relasi ditransformasi ke tabel-tabel (file-file data) Atribut-atribut dari himpunan entitas dan relasi ditransformasi ke field-field dari tabel yang sesuai 21
Transformasi model data ke basis data fisik Transformasi umum/dasar Implementasi himpunan entitas lemah dan sub entitas Implementasi relasi tunggal (unary relation) Implementasi relasi multi entitas (N-ary relation) Implementasi relasi ganda (redundant relation) Implementasi spesialisasi dan generalisasi Implementasi agregasi 22
Transformasi umum/dasar Tabel Mahasiswa Mahasiswa nim alamat_mhs nama_mhs tgl_lahir nim nama_mhs alamat_mhs tgl_lahir Transformasi himpunan entitas dan atribut ke basis data fisik 23
Transformasi umum/dasar Jurusan Dosen mengepalai kode_dos alamat_dos kode_jur nama_jur 1 nama_dos field yang ditambahkan dari relasi “mengepalai” Tabel Dosen Tabel Jurusan kode_dos nama_dos alamat_dos kode_jur nama_jur kode_dos Transformasi relasi satu ke satu ke basis data fisik 24
Kode_dos Nama_dos Alamat_dos 01 Agus 02 Khamidinal 03 Fikri Kode_jur Nama_jur Kode_dos 65 TIF 01 67 KIMIA 02 68 FISIKA 03 25
Kode_dos Nama_dos Alamat_dos Kode_jur 01 Agus 65 02 Khamidinal 67 03 Fikri 68 04 Nurochman 05 Didik Kode_jur Nama_jur 65 TIF 67 KIMIA 68 FISIKA 26
Transformasi umum/dasar Kuliah Dosen mengajar kode_dos alamat_dos kode_kul nama_kul 1 N waktu tempat sks semester nama_dos field yang ditambahkan dari relasi “mengajar” Tabel Dosen Tabel Kuliah kode_dos nama_dos alamat_dos kode_kul nama_kul sks semester kode_dos tempat waktu Transformasi relasi satu ke banyak ke basis data fisik 27
Kode_dos Nama Alamat Kode-kul Tempat Waktu Kode_kul Nama Sks semester 28
Transformasi umum/dasar Kuliah Mahasiswa mempelajari nim alamat_mhs kode_kul nama_kul N indeks_nilai sks semester nama_mhs tgl_lahir Tabel khusus yang mewakili himpunan relasi Tabel Mahasiswa Tabel mempelajari/tabel nilai Tabel Kuliah nim nama_mhs alamat_mhs tgl_lahir nim Kode_kul Indeks_nilai Kode_kul nama_kul sks semester Transformasi relasi banyak ke banyak ke basis data fisik 29
Implementasi himpunan entitas lemah Tabel Mahasiswa Mahasiswa memiliki nim nama_mhs alamat_mhs tgl_lahir menyenangi Orang tua Hobbi nama_ortu hobbi alamat_ortu 1 N nim nama_mhs alamat_mhs tgl_lahir Tabel Orang tua nim nama_ortu alamat_ortu Tabel Hobbi nim hobbi 30
Implementasi sub entitas hasil spesialisasi Dosen tetap nik pangkat tgl_masuk Dosen tidak tetap nama_kantor alamat_kantor ISA Dosen nama_dos alamat_dos Tabel Dosen kode_dos nama_dos alamat_dos Tabel Dosen Tetap Tabel Dosen Tidak Tetap kode_dos nik pangkat tgl_masuk kode_dos nama_kantor alamat_kantor Key yang diambil dari key himpunan entitas utamanya 31
Implementasi relasi tunggal (unary relation) Dosen mendampingi kuliah kuliah prasyarat nama_dos kode_kul 1 N Tabel Dosen kode_dos Nama_dos Alamat_dos Kode_dos_pend Tabel Kuliah Kode_kul nama_kul sks semester Tabel Prasyarat Kuliah Kode_kul Kode_kul_prasyarat 32
Implementasi relasi multi entitas (N-ary relation) Kuliah Dosen Ruang pengajaran kode_kul nama_dos waktu kapasitas nama_ruang kode_ruang Tabel Kuliah kode_kul Nama_kul sks semester Kode_dos Kode_ruang waktu 3 buah field yang mewakili relasi pengajaran 33
Implementasi relasi multi entitas (N-ary relation) Bila satu kuliah mungkin diselenggarakan lebih dari satu kali dalam seminggu dan di ruang yang berbeda Tabel Kuliah kode_kul Nama_kul sks semester Tabel Pengajaran/jadwal kode_kul Kode_dos Kode_ruang waktu 34
Implementasi relasi ganda (redundant relation) Dosen Kuliah mengajar menguasai 1 N nama_dos kode_kul tempat waktu Tabel Dosen Tabel Kuliah Tabel Menguasai kode_dos nama_dos alamat_dos kode_kul Nama_kul sks semester Kode_dos Kode_dos Kode_kul 35
Implementasi spesialisasi dan generalisasi Mahasiswa Mahasiswa D3 Mahasiswa S1 ISA generalisasi Tabel Mahasiswa Nim Nama_mhs Alamat_mhs Tgl_lahir Prog_studi 36
Implementasi agregasi Mahasiswa mempelajari Kuliah N mengikuti praktikum jumlah_jam nama_pra kode_pra nim kode_kul nilai Tabel Mempelajari/nilai nim Kode_kul Indeks_nilai Tabel Praktikum Kode_pra Nama_pra Jumlah_jam Tabel Mengikuti nim Kode_kul Kode_pra nilai 37