• Tidak ada hasil yang ditemukan

Normalisasi Much Aziz Muslim, S.Kom., M.Kom

N/A
N/A
Protected

Academic year: 2018

Membagikan "Normalisasi Much Aziz Muslim, S.Kom., M.Kom"

Copied!
36
0
0

Teks penuh

(1)

Normalisasi

(2)

Normalisasi

Normalisasi

adalah proses pembentukan

struktur basis data sehingga sebagian besar

ambiguity

bisa dihilangkan.

Proses normalisasi merupakan proses

pengelompokan data elemen menjadi tabel

yang menunjukkan entity dan relasinya

(Kristanto, H., 1994).

Normalisasi data merupakan suatu proses

untuk mendapatkan struktur tabel atau relasi

yang efsien dan bebas dari anomali, dan

(3)

The goal of a relational database

design is to generate a set of relation

scheme that allow us to store

informastion easily. One approach is to

design scheme that are in an

appropriate

normal form

(silberschatz,

H., 1991)

Normalisasi adalah suatu teknik untuk

mengorganisasi data ke dalam

tabel-tabel untuk memenuhi kebutuhan

(4)

Tujuan Normalisasi

Untuk menghilangkan kerangkapan

data

Untuk mengurangi kompleksitas

(5)

Proses Normalisasi

Data diuraikan dalam bentuk tabel,

selanjutnya dianalisisberdasarkan

persyaratan tertentu ke beberapa

tingkat.

Apabila tabel yang diuji belum

memenuhi persyaratan tertentu,maka

tabel tersebut perlu dipecah menjadi

beberapa tabel yanglebih sederhana

(6)

Kriteria Tabel efsien

Sebuah tabel dikatakan baik (efsien) atau normal jika memenuhi 3 kriteria sbb:

1.

1. Jika ada dekomposisi (penguraian) tabel, maka Jika ada dekomposisi (penguraian) tabel, maka

dekomposisinya harus dijamin aman (

dekomposisinya harus dijamin aman (Lossless-Join Lossless-Join

Decomposition

Decomposition). Artinya, setelah tabel tersebut ). Artinya, setelah tabel tersebut

diuraikan / didekomposisi menjadi tabel-tabel baru,

diuraikan / didekomposisi menjadi tabel-tabel baru,

tabel-tabel baru tersebut bisa menghasilkan tabel

tabel-tabel baru tersebut bisa menghasilkan tabel

semula dengan sama persis.

semula dengan sama persis.

2.

2. Terpeliharanya ketergantungan fungsional pada saat Terpeliharanya ketergantungan fungsional pada saat

perubahan data (Dependency Preservation).

perubahan data (Dependency Preservation).

3.

3. Tidak melanggar Boyce-Code Normal Form (BCNF) (-Tidak melanggar Boyce-Code Normal Form (BCNF)

(-akan dijelaskan kemudian-)

(7)

Tahapan Normalisasi

Bentuk Tidak Normal

Menghilangkan perulangan group

Bentuk Normal Pertama (1NF)

Menghilangkan ketergantungan sebagian

Bentuk Normal Kedua (2NF)

Menghilangkan ketergantungan transitif

Bentuk Normal Ketiga (3NF)

Menghilangkan anomali-anomali hasil dari ketergantungan fungsional

Bentuk Normal Boyce-Codd (BCNF)

Menghilangkan Ketergantungan Multivalue

Bentuk Normal Keempat (4NF)

Menghilangkan anomali-anomali yang tersisa

(8)

Ketergantungan

Fungsional

Defnisi

Atribut Y pada relasi R dikatakan

tergantung fungsional padaatribut X

(R.X ---> R.Y), jika dan hanya jika setiap

nilai X pada relasi R mempunyai tepat

satu nilai Y pada R.

R= Relasi / Tabel

(9)

Contoh Ketergantungan

Tabel PEMASOK-BARANG

Ketergantungan fungsional dari tabel

PEMASOK-BARANG adalah :

No_Pem ---> Nama_Pem

No_Pem Nama_Pem

P01 Imam_x

P02 Yazix

(10)

Ketergantungan Fungsional

Penuh

Atribut Y pada relasi R dikatakan tergantung

fungsional penuh pada atribut X pada

relasi R, jika Y tidak tergantung pada

subset dari X ( bila X adalah key

gabungan).

Suatu atribut Y mempunyai dependensi

sepenuhnya terhadap atribut X jika

Y mempunyai dependensi terhadap X

Y tidak mempunyai dependensi terhadap bagian

(11)

KIRIM-BARANG( No_pem, Na_pem, No_bar, Jumlah)

Ketergantungan fungsional :

No-pem --> Na-pem

No-bar, No-pem --> Jumlah (Tergantung penuh thd

keynya)

No_pem Na_pem No_bar Jumlah

P01 Bahana B01 1000

P01 Bahana B02 1400

P01 Bahana B03 2000

P02 Sinar Mulia B03 1000

(12)

Ketergantungan Transitif

Atribut Z pada relasi R dikatakan

tergantung transitif pada atribut X ,

jika atribut Y tergantung pada atribut

X pada relasi R dan atribut Z

(13)

Pengertian Dependensi

Transitif

Suatu atribut Z mempunyai

dependensi transitif terhadap X jika:

Y memiliki dependensi terhadap X dan

Z memiliki dependensi terhadap Y

(14)

Contoh Dependensi Transitif

Kuliah Ruang Tempat Waktu

Jaringan Komputer Merapi Gedung Utara Senin, 08.00-09.50

Pengantar Basis Data Merbabu Gedung Utara Selasa, 08.00-09.50

Matematika I Rama Gedung Selatan Rabu, 10.00-11.50

Sistem Pakar Sinta Gedung Selatan Kamis, 08.00-09.50

Kecerdasan Buatan Merapi Gedung Utara Selasa, 10.00-11.50

Kuliah → { Ruang, Waktu }

(15)

Contoh Lain Dependensi

Transitif

Id_Pelanggan Nama Salesman Area

A-001 Andi Farkan Jateng

A-002 Kurnia Jati Dian Jabar

B-001 Fika Dewi Joned Jatim

B-002 Gani Wirawan Farkan Jateng

C-001 Cici Kusuma Joned Jatim

(16)

Contoh Lain Dependensi

Transitif

No_Pesan No_Urut Kode_Item Nama_Item

No_Pesan

No_Pesan No_UrutNo_Urut Kode_ItemKode_Item Nama_ItemNama_Item JumlahJumlah 06008

06008 11 P1P1 PensilPensil 55 06008

06008 22 P2P2 Buku TulisBuku Tulis 1010 06008

06008 33 P3P3 PenggarisPenggaris 66 06008

06008 44 P4P4 PenghapusPenghapus 44 06009

06009 11 P3P3 PenggarisPenggaris 11 06009

06009 22 P5P5 PulpenPulpen 1010 06009

06009 33 P6P6 SpidolSpidol 55 06010

06010 11 P1P1 PensilPensil 44 06010

06010 22 P2P2 Buku TulisBuku Tulis 1010

(17)

Problem pada Dependensi

Transitif

Id_Pelanggan Nama Salesman Area

A-001 Andi Farkan Jateng

A-002 Kurnia Jati Dian Jabar

B-001 Fika Dewi Joned Jatim

B-002 Gani Wirawan Farkan Jateng

C-001 Cici Kusuma Joned Jatim

Anomali penyisipan:

Seorang salesman baru yang bertugas di Jateng tidak dapat

dimasukkan dalam tabel sampai salesman tersebut mendapatkan seorang pelanggan

Anomali penghapusan:

Jika pelanggan A-002 dihapus, informasi bahwa Dian menangani daerah Jabar ikut hilang

Anomali peremajaan:

(18)

Tahap Normalisasi dimulai dari tahap

paling ringan (1NF) hingga paling

ketat (5NF)

(19)
(20)

Tabel Universal

Tabel Universal (Universal / Star Table)

sebuah tabel yang merangkum semua

kelompok data yang saling berhubungan,

bukan merupakan tabel yang baik.

(21)
(22)

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)

(23)

Bentuk Normal Tahap Pertama

(1st Normal Form / 1NF)

Bentuk normal 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

(24)

Contoh 1

Misal data mahasiswa sbb:

Atau:

Atau:

Tabel-tabel di atas tidak memenuhi syarat

Tabel-tabel di atas tidak memenuhi syarat

1NF

(25)

Contoh 1

Didekomposisi menjadi:  Tabel Tabel

Mahasiswa

Mahasiswa

(26)

Contoh 2 (composite)

JadwalKuliah

Kodekul

Kodekul NamaKulNamaKul DosenDosen KelasKelas JadwalJadwal

 Dimana nilai pada atribut jadwal berisi gabungan Dimana nilai pada atribut jadwal berisi gabungan

antara Hari dan Jam.

antara Hari dan Jam.

 Jika asumsi hari dan jam memegang peranan Jika asumsi hari dan jam memegang peranan

penting dalam sistem basis data, maka atribut

penting dalam sistem basis data, maka atribut

Jadwal perlu dipisah sehingga menjadi JadwalHari

Jadwal perlu dipisah sehingga menjadi JadwalHari

dan JadwalJam sbb:

dan JadwalJam sbb:

JadwalKulia

JadwalKulia

h

(27)

Bentuk Normal Tahap Kedua

(2nd Normal Form)

Bentuk normal 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)

Jika terdapat atribut yang tidak memiliki

ketergantungan terhadap primary key, maka atribut tersebut harus dipindah atau

(28)

Contoh

Tabel berikut memenuhi 1NF tapi tidak termasuk 2NF:

Mhs_nrp

Mhs_nrp mhs_nama mhs_nama mhs_alamatmhs_alamat mk_kode mk_kode mk_nama mk_nama mk_sks mk_sks nihurufnihuruf

 Tidak memenuhi 2NF, karena {Mhs_nrp, Tidak memenuhi 2NF, karena {Mhs_nrp,

mk_kode} yang dianggap sebagai primary key

mk_kode} yang dianggap sebagai primary key

sedangkan:

sedangkan:

{Mhs_nrp, mk_kode}

{Mhs_nrp, mk_kode}  mhs_namamhs_nama {Mhs_nrp, mk_kode}

{Mhs_nrp, mk_kode} mhs_alamatmhs_alamat

{Mhs_nrp, mk_kode}

{Mhs_nrp, mk_kode} mk_namamk_nama {Mhs_nrp, mk_kode}

{Mhs_nrp, mk_kode}  mk_sksmk_sks

{Mhs_nrp, mk_kode}

{Mhs_nrp, mk_kode}  nihurufnihuruf

Tabel di atas perlu didekomposisi menjadi beberapa Tabel di atas perlu didekomposisi menjadi beberapa

tabel yang memenuhi syarat 2NF

(29)

Contoh

Functional dependencynya sbb:

{Mhs_nrp, mk_kode}  nihuruf (fd1)

Mhs_nrp  {mhs_nama, mhs_alamat} (fd2)

Mk_kode  {mk_nama, mk_sks} (fd3)

fd1 (mhs_nrp, mk_kode, nihuruf)  Tabel

Nilai

fd2 (Mhs_nrp, mhs_nama, mhs_alamat)  Tabel Mahasiswa

(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.

Untuk setiap Functional Dependency

dengan notasi X

A, maka:

• X harus menjadi superkey pada tabel tsb.X harus menjadi superkey pada tabel tsb.

• Atau A merupakan bagian dari primary key pada Atau A merupakan bagian dari primary key pada

tabel tsb.

(31)

Contoh

Tabel berikut memenuhi 2NF, tapi tidak memenuhi 3NF:

Mahasiswa

Nrp

Nrp NamaNama Alm_JalanAlm_Jalan Alm_KotaAlm_Kota Alm_ProvinsiAlm_Provinsi Alm_KodeposAlm_Kodepos

karena masih terdapat atribut karena masih terdapat atribut non primary key non primary key (yakni (yakni

alm_kota

alm_kota dan dan alm_Provinsialm_Provinsi) yang memiliki ) yang memiliki ketergantungan terhadap atribut

ketergantungan terhadap atribut non primary key non primary key yang yang lain (yakni

lain (yakni alm_kodeposalm_kodepos):):

alm_kodepos  {alm_Provinsi, alm_kota}

 Sehingga tabel tersebut perlu didekomposisi menjadi:Sehingga tabel tersebut perlu didekomposisi menjadi:Mahasiswa (Nrp, nama, alm_jalan,

alm_kodepos)

(32)

Boyce-Code Normal Form

(BCNF)

• Bentuk BCNF terpenuhi dalam sebuah tabel, jika untuk setiap functional dependency terhadap

setiap atribut atau gabungan atribut dalam bentuk: X  Y maka X adalah super key

tabel tersebut harus di-dekomposisi berdasarkan functional dependency yang ada, sehingga X

menjadi super key dari tabel-tabel hasil dekomposisi

Setiap tabel dalam BCNF merupakan 3NF. Akan

tetapi setiap 3NF belum tentu termasuk BCNF . Perbedaannya, untuk functional dependency X 

(33)

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

(34)

Contoh

Misal, tabel berikut tidak memenuhi 4NF:

Setiap employee dapat bekerja di lebih dari project

Setiap employee dapat bekerja di lebih dari project

dan dapat memiliki lebih dari satu skill. Untuk kasus

dan dapat memiliki lebih dari satu skill. Untuk kasus

seperti ini tabel tersebut harus di-dekomposisi

seperti ini tabel tersebut harus di-dekomposisi

menjadi:

menjadi:

(35)

Bentuk Normal Tahap

Keempat (5th Normal Form

/5NF)

Bentuk normal 5NF terpenuhi jika tidak dapat

memiliki sebuah

lossless decomposition

menjadi tabel-tabel yg lebih kecil.

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

(36)

No Class Time Day Teacher Start Room Remark

1 B.1I 17.00-18.30 Tuesday Thursday

Ms. Avi

Ms. Oki 19/08/20

04

A202 Run

2 B.5I 15.30-17.00 Tuesday Friday

Ms. Beta

Ms. Susi 20/08/20

04

A302 Run

3 B.1J 17.00-18.30 Monday Thursday

Ms. Galuh

Ms. Avi 23/08/20

04

A301 Run

4 B.2J 17.00-18.30 Tuesday Thursday

Mr. Aris

Ms. Beta 24/08/20

04

A102 Run

5 B.3J 15.30-17.00 Tuesday Thursday

Mr. Aris

Ms. Oki 05/08/20

04

A103 Run

6 B.2F 15.30-17.00 Monday Thursday

Ms. Galuh

Mr. Hery 19/08/20

04

A203 Run

7 B.1I 18.30-20.00 Wednesday Friday

Ms. Ria

Ms. Galuh 04/08/20

04

Gambar

tabel untuk memenuhi kebutuhan
tabel tersebut perlu dipecah menjadi
tabel yang berkualitas baik.
Tabel Universal
+4

Referensi

Dokumen terkait