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 Report

Transcript 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