P9 Normalisasi
SQ http://sidiq.mercubuana-yogya.ac.id
Program Studi Teknik Informatika Fakultas Teknologi Informasi Universitas Mercu Buana Yogyakarta
Tujuan ●
●
Mahasiswa dapat memahami dan menjelaskan mengenai normalisasi basis data. Mahasiswa dapat menggunakan teknik normalisasi untuk merancang basis data yang sesuai dengan kebutuhan.
SQ - http://sidiq.mercubuana-yogya.ac.id
[email protected]
2
Pembahasan ●
Konsep dasar normalisasi
●
Tujuan Normalisasi
●
Aturan Normalisasi
●
Fuctional Dependencies
●
Normalisasi
SQ - http://sidiq.mercubuana-yogya.ac.id
[email protected]
3
Pengantar SQ - http://sidiq.mercubuana-yogya.ac.id
[email protected]
4
Pengantar ●
●
Normalisasi adalah teknik perancangan yang banyak digunakan sebagai pemandu dalam merancang basis data relasional. Pada dasarnya normalisasi adalah proses dua langkah dalam meletakkan data dalam bentuk tabulasi dengan menghilangkan kelompok berulang lalu menghilangkan data yang terduplikasi dari tabel relasional.
SQ - http://sidiq.mercubuana-yogya.ac.id
[email protected]
5
●
●
Teori normalisasi di dasarkan pada bentuk normal. Sebuah tabel relasional dikatakan berada pada bentuk normal tertentu jika tabel memenuhi himpunan batasan tertentu.
SQ - http://sidiq.mercubuana-yogya.ac.id
[email protected]
6
Konsep Dasar Normalisasi SQ - http://sidiq.mercubuana-yogya.ac.id
[email protected]
7
Konsep Dasar Normalisasi ●
●
Normalisasi adalah bagian dari perancangan basis data. Tanpa normalisasi basis data menjadi tidak akurat, lambat, tidak efisien, serta tidak memberikan data yang diharapkan.
SQ - http://sidiq.mercubuana-yogya.ac.id
[email protected]
8
Target Normalisasi ●
●
●
●
Mengatur data dalam kelompok-kelompok, sehingga masing-masing kelompok hanya menangani bagian kecil sistem. Meminimalkan jumlah data berulang dalam basis data. Membuat basis data yang datanya diakses dan dimanipulasi secara cepat dan efisien tanpa melupakan integritas data. Mengatur data sedemikian rupa sehingga ketika memodifikasi data, anda hanya mengubah pada suatu tempat. SQ - http://sidiq.mercubuana-yogya.ac.id
[email protected]
9
Sering disebut dengan : Integritas Data, Integritas Referensial, dan Pengaksesan Data
SQ - http://sidiq.mercubuana-yogya.ac.id
[email protected]
10
Tujuan Normalisasi ●
●
Membuat sekumpulan tabel yang bebas dari data berulang dan dapat dimodifikasi secara benar dan konsisten. Ini berarti bahwa semua tabel dalam basis data relasional harus berada pada bentuk normal ke 3 (3 NF) dan hanya jika semua kolom bukan kunci adalah : ●
●
Saling independen, tidak ada kolom bukan kunci yang tergantung pada sembarang kombinasi kolom lain. Sepenuhnya tergantung pada kunci utama
SQ - http://sidiq.mercubuana-yogya.ac.id
[email protected]
11
Aturan Normalisasi SQ - http://sidiq.mercubuana-yogya.ac.id
[email protected]
12
Aturan Normalisasi ●
Hilangkan kelompok berulang ●
●
Hilangkan data berulang ●
●
Buat tabel terpisah untuk setiap himpunan atribut yang berhubungan dan tentukan kunci utama pada masingmasing tabel. Jika sebuah atribut tergantung pada sebagian kunci utama gabungan, pindahkan aribut ke tabel lain.
Hilangkan kolom yang tidak tergantung pada kunci ●
Jika atribut tidak tergantung pada kunci, pindahkan atribut ke tabel lain. SQ - http://sidiq.mercubuana-yogya.ac.id
[email protected]
13
●
Pisahkan relasi majemuk ●
●
Pisahkan relasi majemuk yang terhubung secara semantik ●
●
Ada batasan pada informasi yang memperbolehkan pemisah relasi many-to-many yang berhubungan secara logis.
Bentuk normal optimal ●
●
Tidak ada tabel yang bisa mengandung dua atau lebih relasi 1:n atau n:m yang tidak berhubungan langsung.
Sebuah model hanya dibatasi oleh fakta sederhana.
Bentuk normal domain key ●
Sebuah model harus terbebas dari semua anormaly. SQ - http://sidiq.mercubuana-yogya.ac.id
[email protected]
14
Functional Dependencies SQ - http://sidiq.mercubuana-yogya.ac.id
[email protected]
15
FD ●
●
Kosep functional dependence adalah dasar dari ketiga bentuk normal pertama. Definisi dari functional dependence adalah: ●
Diberikan sebuah relasi R, Atribute Y dari R adalah bergantung fungsi pada atribute X dari R jika dan hanya jika setiap nilai X dalam R punya hubungan dengan tepat satu nilai Y dalam R (dalam setiap satu waktu).
SQ - http://sidiq.mercubuana-yogya.ac.id
[email protected]
16
Notasi FD ●
●
Notasi : R.x -> R.y Keterangan : ●
●
●
●
Sebuah kolom y pada suatu tabel relasional R dikatakan tergantung secara fungsional pada kolom x jika dan hanya jika setiap nilai x pada tabel R berhubungan dengan tepat suatu nilai y pada suatu saat tertentu. x dan y bisa berupa gabungan kolom. kolom y tergantung secara fungsional pada x = mengatakan bahwa nilai kolom x menentukan kolom y. jika kolom x adalah kunci utama, maka semua kolom pada semua tabel relasional R harus tergantung secara fungsional pada x. SQ - http://sidiq.mercubuana-yogya.ac.id
[email protected]
17
Contoh FD Tabel Pegawai No_Induk
No_KTP
Nama
Tempat_Lahir
Tgl_Lahir
Alamat
Kota
Pegawai = No_induk → Nama
●
lsi dari atribute Nama bergantung pada Nomor_Induk, ●
●
●
Jadi dapat dikatakan bahwa atribute Nama bergantung secara fungsi pada No_Induk, dan No_Induk menunjukkan secara fungsi Nama.
Jika Anda mengetahui No_Induk pegawai, maka Anda dapat menentukan Nama pegawai tersebut. SQ - http://sidiq.mercubuana-yogya.ac.id
[email protected]
18
●
Notasi untuk kebergantungan fungsi ini adalah: No_Induk
●
Nama
Atau : Nama = f(No_Induk)
SQ - http://sidiq.mercubuana-yogya.ac.id
[email protected]
19
Bentuk Un-Normalized Form (UNF) SQ - http://sidiq.mercubuana-yogya.ac.id
[email protected]
20
Ciri UNF ●
Bentuk normal ke satu mempunyai ciri : ●
●
●
Setiap data dibentuk dalam non flat file (file datar/rata), terjadi akibat data disimpan sesuai dengan kedatangannya, sehingga tidak memiliki struktur yang sama/tertentu, terjadi duplikasi/tidak lengkap. Tidak ada set atribute yang berulang ulang atau atribute bernilai ganda (multivalue). Tiap field memuat atribut non-atomic value.
SQ - http://sidiq.mercubuana-yogya.ac.id
[email protected]
21
Contoh Definisi Tabel : SUPLIER (s#, status, kota, b#, qty) dimana – – – – –
s# : kode suplier status : kode status kota kota : nama kota b# : kode barang yang dipasok qty : jumlah barang yang dipasok
SQ - http://sidiq.mercubuana-yogya.ac.id
[email protected]
22
Contoh UNF Suplier s# p1
p2
status 20
10
kota Yogyakarta
Medan
b#
qty
b1
300
b2
200
b3
400
b4
200
b5
100
b6
100
b1
300
b2
400
p3
10
Medan
b2
200
p4
20
Yogyakarta
b2
200
b4
300
b5
400
Tabel Suplier dalam bentuk Un-Normal
SQ - http://sidiq.mercubuana-yogya.ac.id
[email protected]
23
Bentuk Normal Pertama (1 NF) SQ - http://sidiq.mercubuana-yogya.ac.id
[email protected]
24
Ciri 1 NF ●
Bentuk normal ke satu mempunyai ciri : ●
●
●
Setiap data dibentuk dalam flat file (file datar/rata), data dibentuk dalam satu record demi satu record dan nilai dari field field berupa 'atomic value'. Tidak ada set atribute yang berulang ulang atau atribute bernilai ganda (multivalue). Tiap field hanya satu pengertian, bukan merupakan kumpulan kata yang mempunyai arti mendua, hanya satu arti saja dan juga bukanlah pecahan kata kata sehingga arlinya lain.
SQ - http://sidiq.mercubuana-yogya.ac.id
[email protected]
25
UNF -> 1 NF ●
Melengkapi nilai-nilai dalam atribut
●
Mengubah struktur relasi
SQ - http://sidiq.mercubuana-yogya.ac.id
[email protected]
26
Contoh 1 NF Fakta :
Suplier s#
status
kota
b#
qty
p1
20
Yogyakarta
b1
300
p1
20
Yogyakarta
b2
200
p1
20
Yogyakarta
b3
400
p1
20
Yogyakarta
b4
200
p1
20
Yogyakarta
b5
100
p1
20
Yogyakarta
b6
100
p2
10
Medan
b1
300
p2
10
Medan
b2
400
p3
10
Medan
b2
200
p4
20
Yogyakarta
b2
200
p4
20
Yogyakarta
b4
300
p4
20
Yogyakarta
b5
400
●
●
●
INSERT = fakta bahwa suplier tertentu (p5) berlokasi pada kota tertentu (Bandung) tidak dapat ditambahkan hingga mereka memasok barang. DELETE = jika sebuah baris dihapus, maka yang hilang tidak hanya informasi mengenai barang dan jumlah, tetapi juga informasi tentang suplier. UPDATE = jika suplier p1 pindah dari Yogyakarta ke Jakarta maka enam baris selanjutnya harus di Update karena adanya perubahan.
SQ - http://sidiq.mercubuana-yogya.ac.id
[email protected]
27
FD Contoh 1 NF s#
status
+
kota
b#
qty
SQ - http://sidiq.mercubuana-yogya.ac.id
[email protected]
28
Bentuk Normal Kedua (2 NF) SQ - http://sidiq.mercubuana-yogya.ac.id
[email protected]
29
Ciri 2 NF ●
Bentuk normal kedua mempunyai syarat : ● ●
●
Bentuk data telah memenuhi kriteria 1NF. Atribute bukan kunci haruslah bergantung secara fungsi pada kunci utama/primary key.
Sehingga untuk membentuk normal kedua haruslah sudah ditentukan kunci kunci field. ●
Kunci field haruslah unik dan dapat mewakili atribute lain yang menjadi anggotanya. SQ - http://sidiq.mercubuana-yogya.ac.id
[email protected]
30
Permasalahan 2 NF ●
Data Redundancy
●
Data Incosistency
●
Proses pembaharuan data tidak efisien
●
Penyimpangan/permasalahan pada saat penyisipan, penghapusan dan pembaharuan
SQ - http://sidiq.mercubuana-yogya.ac.id
[email protected]
31
1NF -> 2 NF ●
●
●
●
●
Tentukan sembarang kolom penentu selain kunci gabungan dan kolom-kolom yang ditentukan. Buat dan beri nama tabel baru untuk masing-masing penentu dan kolom-kolom yang ditentukannya. Pindahkan kolom-kolom yang ditentukan dari tabel asal ke tabel baru. Penentu akan menjadi kunci utama pada tabel baru. Hapus kolom yang baru dipindahkan dari tabel asal, kecuali penentu yang akan berfungsi menjadi kunci tamu (FK). Tabel asal bisa diberi nama baru. SQ - http://sidiq.mercubuana-yogya.ac.id
[email protected]
32
Contoh 2 NF ●
s# -> kota status
●
kota -> status
●
(s#, b#) -> qty
SQ - http://sidiq.mercubuana-yogya.ac.id
[email protected]
33
BARANG
SUPLIER2
Fakta :
s#
status
kota
s#
b#
qty
p1
20
Yogyakarta
p1
b1
300
p2
10
Medan
p1
b2
200
p3
10
Medan
p1
b3
400
p4
20
Yogyakarta
p1
b4
200
p5
30
Bandung
p1
b5
100
p1
b6
100
p2
b1
300
p2
b2
400
p3
b2
200
p4
b2
200
p4
b4
300
p4
b5
400
●
●
INSERT = fakta bahwa kota tertentu mempunyai status tertentu (Semarang mempunyai status 40) tidak dapat dimasukkan hingga ada suplier kota tersebut. DELETE = menghapus sembarang baris pada suplier2 akan menghilangkan informasi status tentang kota tersebut serta hubungan antara suplier dan kota.
SQ - http://sidiq.mercubuana-yogya.ac.id
[email protected]
34
Bentuk Normal Ketiga (3 NF) SQ - http://sidiq.mercubuana-yogya.ac.id
[email protected]
35
3 NF ●
Untuk menjadi bentuk normal ketiga maka : ●
●
Relasi haruslah dalam bentuk normal kedua dan semua atribute bukan primer tidak punya hubungan yang transitif. Dengan kata lain, setiap atribute bukan kunci haruslah bergantung hanya pada primary key dan pada primary key sacara menyeluruh.
SQ - http://sidiq.mercubuana-yogya.ac.id
[email protected]
36
2 NF -> 3 NF ●
●
●
●
●
Tentukan semua penentu selain kunci utama dan koom yang ditentukannya Buat dan beri nama tabel baru untuk masing-masing penentu dan kolom yang ditentukannya Pindahkan kolom yang ditentukan dari tabel asal ketabel baru, pennetu menjadi kunci utama tabel baru. Hapus kolom yang baru saja dipindahkan dari tabel asal, kecuali penentu yang akan berfungsi sebagai kunci tamu. Tabel asal bisa diberi nama baru. SQ - http://sidiq.mercubuana-yogya.ac.id
[email protected]
37
Contoh 3 NF ●
suplier2.s# -> suplier2.status
●
suplier2.s# -> suplier2.kota
●
suplier2.kota -> suplier2.status
SQ - http://sidiq.mercubuana-yogya.ac.id
[email protected]
38
BARANG
SUPLIER3 s#
status
s#
b#
qty
p1
20
p1
b1
300
p2
10
p1
b2
200
p3
10
p1
b3
400
p4
20
p1
b4
200
p5
30
p1
b5
100
p1
b6
100
p2
b1
300
p2
b2
400
p3
b2
200
p4
b2
200
p4
b4
300
p4
b5
400
STATUS status
kota
20
Yogyakarta
10
Medan
30
Bandung
BARANG (s#,b#,qty) PK(s#,b#) FK(s#) references SUPLIER3.s# SUPLIER3(s#,kota) PK(s#) FK(kota) references STATUS.kota STATUS(kota,status) PK(s#)
SQ - http://sidiq.mercubuana-yogya.ac.id
[email protected]
39
Relasi 3 NF Suplier *
S#
**
Status
Status *
Barang *
S#
*
B# Qty
Status Kota
SQ - http://sidiq.mercubuana-yogya.ac.id
[email protected]
40
Fakta ●
●
●
INSERT = fakta tentang sebuah status kota, Semarang mempunyai status 40, dapat ditambahkan meskipun tidak ada suplier kota tersebut. Demikian juga fakta tentang suplier baru dapat ditambahkan meskipun mereka belum memasok barang. UPDATE = informasi tentang barang yang dipasok dapat dihapus tanpa menghilangkan informasi tentang suplier atau kota. DELETE = perubahan lokasi suplier atau status suatu kota hanya membutuhkan modifikasi 1 baris.
SQ - http://sidiq.mercubuana-yogya.ac.id
[email protected]
41
Thanks For Participating In My Class C U Next Week
SQ - http://sidiq.mercubuana-yogya.ac.id
[email protected]
44