Normalisasi Tujuan Pembelajaran 1. 2. 3. 4. 5. 6. 7. Memahami pentingnya normalisasi. Memahami normalisasi bentuk pertama (1NF). Memahami aturan pembuatan normalisasi 1NF. Memahami normalisasi bentuk kedua (2NF) Memahami aturan normalisasi 2NF Memahami normalisasi.
Download ReportTranscript Normalisasi Tujuan Pembelajaran 1. 2. 3. 4. 5. 6. 7. Memahami pentingnya normalisasi. Memahami normalisasi bentuk pertama (1NF). Memahami aturan pembuatan normalisasi 1NF. Memahami normalisasi bentuk kedua (2NF) Memahami aturan normalisasi 2NF Memahami normalisasi.
Normalisasi 1 Tujuan Pembelajaran 1. 2. 3. 4. 5. 6. 7. 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 : a) Mempunyai penggandaan field yang sejenis Contoh : Tabel dibawah adalah tabel siswa mengambil mata kuliah SISWA b) Elemen datanya memungkinkan untuk null value (kosong) Contoh : 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 1. Apakah bentuk relasi table Department sudah memenuhi normal 1 (1NF)? Jika belum normalisasikan. 2. 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) 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 • Bentuk Normal ke Tiga (3NF) : 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). 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 22 Transformasi umum/dasar Tabel Mahasiswa nim nama_mhs nim nama_mhs alamat_mhs tgl_lahir Mahasiswa alamat_mhs tgl_lahir Transformasi himpunan entitas dan atribut ke basis data fisik 23 23 Transformasi umum/dasar kode_dos alamat_dos kode_dos 1 Jurusan field yang ditambahkan dari relasi “mengepalai” nama_dos Tabel Dosen kode_dos nama_jur 1 mengepalai Dosen kode_jur kode_jur Tabel Jurusan nama_dos alamat_dos kode_jur nama_jur kode_dos Transformasi relasi satu ke satu ke basis data fisik 24 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 01 Agus 65 02 Khamidinal 67 03 Fikri 68 04 Nurochman 05 Didik Kode_jur Nama_jur 65 TIF 67 KIMIA 68 FISIKA Kode_jur 26 Transformasi umum/dasar nama_dos kode_dos kode_dos 1 waktu Tabel Dosen kode_dos Tabel Kuliah nama_dos alamat_dos kode_kul nama_kul N mengajar Dosen alamat_dos kode_kul kode_kul Kuliah tempat sks semester field yang ditambahkan dari relasi “mengajar” nama_kul sks semester kode_dos tempat waktu Transformasi relasi satu ke banyak ke basis data fisik 27 27 Kode_dos Kode_kul Nama Nama Alamat Sks Kode-kul Tempat Waktu semester 28 28 Transformasi umum/dasar nim nama_mhs N alamat_mhs tgl_lahir nama_kul N mempelajari Mahasiswa kode_kul kode_kul nim Kuliah indeks_nilai sks semester Tabel khusus yang mewakili himpunan relasi Tabel Mahasiswa nim nama_mhs Tabel mempelajari/tabel nilai alamat_mhs tgl_lahir nim Kode_kul Indeks_nilai Tabel Kuliah Kode_kul nama_kul sks semester Transformasi relasi banyak ke banyak ke basis data fisik 29 29 Implementasi himpunan entitas lemah Tabel Mahasiswa nim nama_mhs alamat_mhs tgl_lahir nim nama_ortu nama_ortu 1 memiliki Orang tua Tabel Orang tua nim nim nama_ortu alamat_ortu alamat_ortu 1 nama_mhs Tabel Hobbi nim hobbi Mahasiswa alamat_mhs tgl_lahir 1 nim hobbi N menyenangi Hobbi hobbi 30 Implementasi sub entitas hasil spesialisasi nama_dos Tabel Dosen alamat_dos Dosen kode_dos nama_dos alamat_dos ISA nik pangkat nama_kantor Dosen tetap Dosen tidak tetap alamat_kantor tgl_masuk Tabel Dosen Tidak Tetap Tabel Dosen Tetap kode_dos nik pangkat tgl_masuk kode_dos Key yang diambil dari key himpunan entitas utamanya 31 nama_kantor alamat_kantor 31 Implementasi relasi tunggal (unary relation) nama_dos nama_dos 1 Tabel Dosen kode_dos Dosen Nama_dos Alamat_dos Kode_dos_pend mendampingi N Tabel Kuliah Kode_kul nama_kul sks semester kode_kul kode_kul N Tabel Prasyarat Kuliah kuliah kuliah prasyarat Kode_kul Kode_kul_prasyarat N 32 Implementasi relasi multi entitas (N-ary relation) kode_kul kode_kul Kuliah nama_dos nama_dos Dosen pengajaran kode_ruang waktu Ruang kode_ruang kapasitas nama_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) nama_dos kode_kul mengajar 1 N Dosen waktu tempat Kuliah N N menguasai kode_kul nama_dos Tabel Kuliah Tabel Dosen kode_dos nama_dos alamat_dos kode_kul Tabel Menguasai Nama_kul sks semester Kode_dos Kode_dos Kode_kul 35 Implementasi spesialisasi dan generalisasi Mahasiswa generalisasi ISA Mahasiswa D3 Mahasiswa S1 Tabel Mahasiswa Nim Nama_mhs Alamat_mhs Tgl_lahir Prog_studi 36 Implementasi agregasi Mahasiswa N N mempelajari nim N Kuliah Tabel Mempelajari/nilai kode_kul nim Kode_kul Indeks_nilai Nama_pra Jumlah_jam mengikuti kode_pra N Tabel Praktikum nilai Kode_pra praktikum Tabel Mengikuti kode_pra jumlah_jam nim Kode_kul Kode_pra nilai nama_pra 37