2. Pendahuluan
Perancangan basis data diperlukan agar:
a. Basis data kompak dan efisien dalam penggunaan
ruang penyimpanan
b. Akses Cepat dan mudah dimanipulasi
Caranya:
1. Normalisasi terhadap struktur tabel-tabel
2. Membuat model Entity-Relationship
3. Definisi Normalisasi
1. Proses memperbaiki / membangun
dengan model data relasional.
2. Proses pengelompokan data ke dalam
bentuk tabel atau relasi untuk
menyatakan entitas dan hubungan
mereka sehingga terbentuk database
yang mudah untuk dimodifikasi.
4. Definisi Normalisasi
3. Proses untuk mengidentifikasi kelompok
atribut “tabel” yang memiliki
ketergantungan yang sangat tinggi
antara satu atribut dengan atribut
lainnya.
4. Proses pengelompokan atribut-atribut
dari suatu relasi sehingga membentuk
WELL STRUCTURED RELATION.
7. Atribut Tabel
Penamaannya unik, berdasarkan fungsinya pada
setiap tabel.
Pengelompokkan atribut:
Key & Atribut Deskritif
Atribut Sederhana & Atribut Komposit
Atribut Bernilai tunggal & Atribut bernilai banyak
Atribut Harus Bernilai/Mandatory & Null
Atribut Turunan
8. Key & Atribut Deskriptif
Key : satu atau gabungan dari beberapa atribut
yang dapat membedakan semua baris data (row)
dalam tabel secara unik.
3 macam key:
Superkey
Candidate Key
Key Primer (Primary Key)
9. Key & Atribut Deskriptif
Superkey: satu atau lebih atribut
(kumpulan atribut) yang dapat
membedakan setiap baris data
dalam sebuah tabel secara unik.
Mungkin terdapat lebih dari 1
kumpulan atribut yang dapat
menjadi superkey.
10. Key & Atribut Deskriptif
Contoh Superkey tabel mahasiswa:
(nim, nama_mhs, alamat_mhs, tgl_lahir)
(nim, nama_mhs, alamat_mhs)
(nim,nama_mhs)
(nama_mhs) jika bisa dijamin tidak ada nama
mahasiswa yang mirip
(nim)
11. Key & Atribut Deskriptif
Candidate-Key : kumpulan atribut minimal yang
dapat membedakan setiap baris data dalam
sebuah tabel secara unik.
Pada satu tabel mungkin ada lebih dari 1
candidate key.
Contoh candidate key tabel mahasiswa:
(nim)
(nama_mhs) jika dijamin tidak ada nilai yang sama utk
kolom nama_mhs
12. Key & Atribut Deskriptif
Salah satu candidate-key dapat menjadi
key primer (primary key).
Dengan syarat:
Key tersebut sering dijadikan acuan
Key tersebut ringkas
Jaminan keunikan lebih baik
Primary key dari tabel Mahasiswa:
(nim)
13. Key & Atribut Deskriptif
Atribut Deskriptif: atribut-atribut
yang tidak menjadi anggota primary
key
Atribut deskriptif tabel mahasiswa:
nama_mhs, alamat_mhs, tgl_lahir
14. Domain
Domain: menekankan pada batas-batas
nilai yang diperbolehkan bagi suatu
atribut dengan mempertimbangkan
kenyataan yang ada
Contoh: pada tabel kuliah:
Atribut sks tipe datanya integer
sks = 0; sks=-1; sks=100 invalid
15. KETERGANTUNGAN FUNGSIONAL
(FUNCTIONAL DEPENDENCY)
Menggambarkan relationship/hubungan antara
atribut-atribut dengan relasi.
Sebagai contoh: Jika A dan B adalah atribut-
atribut dari relasi R. B dikatakan functionally
dependent (bergantung fungsional) terhadap A.
17. Functional Dependency dari tabel nilai
Nrp namaMhs
Karena untuk setiap nilai nrp yang sama, nilai namaMhs
juga sama.
{Namakul, nrp} NiHuruf
Karena atribut Nihuruf tergantung pada Namakul dan
nrp secara bersama-sama. Dalam arti lain untuk
Namakul dan nrp yang sama, maka NiHuruf juga sama,
karena Namakul dan nrp merupakan key (bersifat
unik).
NamaKul nrp
Nrp NiHuruf
18. Kriteria Normalisasi
Sebuah tabel dikatakan baik (efisien) atau normal
jika memenuhi 3 kriteria berikut:
1. Jika ada dekomposisi (penguraian) tabel, maka
dekomposisinya harus dijamin aman (Lossless-Join
Decomposition).
setelah tabel tersebut didekomposisi menjadi
tabel-tabel baru, tabel-tabel baru tersebut tetap
dapat menghasilkan tabel semula dengan sama
persis.
19. Kriteria Normalisasi
2. Terpeliharanya ketergantungan
fungsional pada saat perubahan
data (Dependency Preservation).
3. Tidak melanggar Boyce-Code
Normal Form (BCNF)
20. Kriteria Normalisasi
Jika kriteria BCNF tidak dapat terpenuhi,
maka paling tidak tabel tersebut tidak
melanggar Bentuk Normal tahap ketiga
(3rd Normal Form/3NF).
21. Bentuk-bentuk Normal
1. Bentuk Normal Tahap Pertama (1st Normal Form /
1NF)
2. Bentuk Normal Tahap Kedua (2nd Normal Form /
2NF)
3. Bentuk Normal Tahap (3rd Normal Form / 3NF)
4. Boyce-Code Normal Form (BCNF)
5. Bentuk Normal Tahap (4th Normal Form / 4NF)
6. Bentuk Normal Tahap (5th Normal Form / 5NF)
22. Bentuk Normal Tahap Pertama (1st
Normal Form / 1NF)
1NF terpenuhi jika sebuah tabel tidak memiliki
atribut bernilai banyak (multivalued attribute),
atribut composite atau kombinasinya dalam
domain data yang sama.
Setiap atribut dalam tabel tersebut harus
bernilai atomic(tidak dapat dibagi-bagi lagi)
23. Contoh untuk 1NF
Tabel mahasiswa berikut.
Atau
Tidak memenuhi syarat 1NF
24. Contoh untuk 1NF
Di-dekomposisi menjadi
Tabel Mahasiswa
Tabel Hobi
25. Contoh 2 (composite) 1NF
JadwalKuliah
Bila nilai data pada atribut jadwal berisi gabungan
antara Hari dan Jam.
Jika asumsi hari dan jam memegang peranan penting
dalam sistem basis data, maka atribut Jadwal perlu
dipisah sehingga menjadi JadwalHari dan
JadwalJam sbb:
26. Bentuk Normal Tahap Kedua
(2nd Normal Form)
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)
27. Bentuk Normal Tahap Kedua
(2nd Normal Form)
Jika terdapat atribut yang tidak memiliki
ketergantungan terhadap primary key,
maka atribut tersebut harus dipindah
atau dihilangkan
28. Contoh 2NF
Tabel berikut memenuhi 1NF tapi tidak termasuk 2NF:
Tidak memenuhi 2NF, karena {Mhs_nrp, mk_kode} yang
dianggap sebagai primary key sedangkan:
{Mhs_nrp, mk_kode} mhs_nama
{Mhs_nrp, mk_kode} mhs_alamat
{Mhs_nrp, mk_kode} mk_nama
{Mhs_nrp, mk_kode} mk_sks
{Mhs_nrp, mk_kode} nihuruf
Tabel di atas perlu didekomposisi menjadi beberapa tabel
yang memenuhi syarat 2NF
30. Bentuk Normal Tahap Ketiga (3rd
Normal Form /3NF)
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.
31. Bentuk Normal Tahap Ketiga (3rd
Normal Form /3NF)
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.
32. Contoh untuk 3NF
Tabel berikut memenuhi 2NF, tapi tidak memenuhi 3NF:
Mahasiswa
Karena masih terdapat atribut non primary key (yakni
alm_kota dan alm_Provinsi) yang memiliki
ketergantungan terhadap atribut non primary key yang
lain (yakni alm_kodepos):
alm_kodepos {alm_Provinsi, alm_kota}
Sehingga tabel tersebut perlu didekomposisi menjadi:
Mahasiswa (Nrp, nama, alm_jalan, alm_kodepos)
Kodepos (alm_kodepos, alm_provinsi, alm_kota)
33. Boyce-Code Normal Form (BCNF)
BCNF terpenuhi dalam sebuah tabel, jika untuk
setiap functional dependency terhadap setiap
atribut atau gabungan atribut dalam bentuk:
X Y maka X adalah superkey
Tabel tersebut harus di-dekomposisi berdasarkan
functional dependency yang ada, sehingga X
menjadi superkey dari tabel-tabel hasil
dekomposisi
34. Boyce-Code Normal Form (BCNF)
Setiap tabel dalam BCNF merupakan 3NF.
Akan tetapi setiap 3NF belum tentu termasuk
BCNF . Perbedaannya, untuk functional
dependency
X A, BCNF tidak membolehkan A sebagai
bagian dari primary key.
35. Bentuk Normal Tahap Keempat (4th
Normal Form /4NF)
Bentuk normal 4NF terpenuhi dalam sebuah
tabel jika telah memenuhi bentuk BCNF, dan
tabel tersebut tidak boleh memiliki lebih dari
sebuah multivalued atribute
Untuk setiap multivalued dependencies (MVD)
juga harus merupakan functional dependencies
36. Contoh untuk 4NF
Misal, tabel berikut tidak memenuhi 4NF:
Setiap employee dapat bekerja dilebih dari
project dan dapat memiliki lebih dari satu
skill.Untuk kasus seperti ini tabel tersebut harus di-
dekomposisi menjadi:
(Employee, Project)(Employee, Skill)
37. Bentuk Normal Tahap Keempat
(5th Normal Form /5NF)
Jika 4 bentuk normal sebelumnya dibentuk
berdasarkan functional dependency, 5NF dibentuk
berdasarkan konsep join dependence.
Yakni apabila sebuah tabel telah di-dekomposisi
menjadi tabel-tabel lebih kecil, harus bisa
digabungkan lagi (join) untuk membentuk tabel
semula