modul 8 - normalisasi data

38
Norma li sasi Database

Upload: christine

Post on 13-Apr-2018

251 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Modul 8 - Normalisasi Data

7/21/2019 Modul 8 - Normalisasi Data

http://slidepdf.com/reader/full/modul-8-normalisasi-data 1/38

Normalisasi Database

Page 2: Modul 8 - Normalisasi Data

7/21/2019 Modul 8 - Normalisasi Data

http://slidepdf.com/reader/full/modul-8-normalisasi-data 2/38

Pen ga n t a r Pen y em p u r n a a n Sk em a :

Per soa l a n y a n g D i t i m bu l k a n o l eh Red u n d a n si 

 Redundansi ruang penyimpanan: beberapa datadisimpan secara berulang

Update anomaly: Jika satu copy data terulang tsbdiubah, inkonsistensi data dpt terjadi kecuali kalau

semua copy dari data tsb diubah dengan cara yang sama  Insertion anomaly: Mungkin dpt terjadi kesulitan utk 

menyisipkan data tertentu kecuali kalau beberapa datatidak terkait lainnya juga ikut disisipkan

 Deletion anomaly: Mungkin dpt terjadi kesulitan utk 

menghapus data tertentu tanpa harus kehilangan beberapa data tidak terkait lainnya

Page 3: Modul 8 - Normalisasi Data

7/21/2019 Modul 8 - Normalisasi Data

http://slidepdf.com/reader/full/modul-8-normalisasi-data 3/38

Page 4: Modul 8 - Normalisasi Data

7/21/2019 Modul 8 - Normalisasi Data

http://slidepdf.com/reader/full/modul-8-normalisasi-data 4/38

Per soa l a n y a n g D i t i m bu l k a n o l eh 

Redu n da n si : Con t o h  (cont’d)

 Insertion anomaly: Kesulitan utk menyisipkan employee baru kecualinilai wage untuk rating dari employee tsb sudah diketahui

 Deletion anomaly: Jika semua baris yang terkait dg nilai ratingtertentu dihapus (misalnya baris utk employee ‘Smethurst’ dan ‘Guldu’dihapus), maka kita akan kehilangan informasi ketergantungan antaranilai rating dan nilai wages yang diasosiasikan dengan nilai rating tsb(yaitu rating = 5 dan wages = 7)

Page 5: Modul 8 - Normalisasi Data

7/21/2019 Modul 8 - Normalisasi Data

http://slidepdf.com/reader/full/modul-8-normalisasi-data 5/38

PenyebabPenyebab Anomali Anomali

MengapaMengapa anomalianomali -- anomalianomali iniini terjaditerjadi ??

KarenaKarena menggabungkanmenggabungkan duadua tematema ((konsepkonsep entitasentitas))dalamdalam satusatu relasirelasi.. IniIni mengakibatkanmengakibatkan duplikasiduplikasi –– duplikasiduplikasisebagaisebagai akibatakibat daridari ketergantunganketergantungan antarantar atributatribut yang yangtidak tidak padapada tempatnyatempatnya..

SolusiSolusi :: NormalisasiNormalisasi

Page 6: Modul 8 - Normalisasi Data

7/21/2019 Modul 8 - Normalisasi Data

http://slidepdf.com/reader/full/modul-8-normalisasi-data 6/38

Normalisasi

 Normalisasi adalah proses pembentukan struktur basisdata sehingga sebagian besar ambiguity bisadihilangkan.

Tahap Normalisasi dimulai dari tahap paling ringan

(1NF) hingga paling ketat (5NF) Biasanya hanya sampai pada tingkat 3NF atau BCNF

karena sudah cukup memadai untuk menghasilkan tabel-tabel yang berkualitas baik.

Page 7: Modul 8 - Normalisasi Data

7/21/2019 Modul 8 - Normalisasi Data

http://slidepdf.com/reader/full/modul-8-normalisasi-data 7/38

Normalisasi

Sebuah tabel dikatakan baik (efisien) atau normal jikamemenuhi 3 kriteria sbb:

1. Jika ada dekomposisi (penguraian) tabel, maka

dekomposisinya harus dijamin aman (Lossless-Join

Decomposition). Artinya, setelah tabel tersebut diuraikan /

didekomposisi menjadi tabel-tabel baru, tabel-tabel baru

tersebut bisa menghasilkan tabel semula dengan sama

persis.

2. Terpeliharanya ketergantungan fungsional pada saat

perubahan data (Dependency Preservation).

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

dijelaskan kemudian-)

Page 8: Modul 8 - Normalisasi Data

7/21/2019 Modul 8 - Normalisasi Data

http://slidepdf.com/reader/full/modul-8-normalisasi-data 8/38

Normalisasi

Jika kriteria ketiga (BCNF) tidak dapat terpenuhi,maka paling tidak tabel tersebut tidak melanggarBentuk Normal tahap ketiga (3rd Normal Form /

3NF).

Page 9: Modul 8 - Normalisasi Data

7/21/2019 Modul 8 - Normalisasi Data

http://slidepdf.com/reader/full/modul-8-normalisasi-data 9/38

Sistem / Teknologi Basis Data  9 

LangkahLangkah –– LangkahLangkah NormalisasiNormalisasi

Page 10: Modul 8 - Normalisasi Data

7/21/2019 Modul 8 - Normalisasi Data

http://slidepdf.com/reader/full/modul-8-normalisasi-data 10/38

Contoh Tabel Universal

Tabel Universal (Universal / Star Table) sebuah tabel yang merangkum semua kelompok data yang saling berhubungan, bukan merupakan tabel yang baik.

Page 11: Modul 8 - Normalisasi Data

7/21/2019 Modul 8 - Normalisasi Data

http://slidepdf.com/reader/full/modul-8-normalisasi-data 11/38

Tabel Universal

Page 12: Modul 8 - Normalisasi Data

7/21/2019 Modul 8 - Normalisasi Data

http://slidepdf.com/reader/full/modul-8-normalisasi-data 12/38

Functional Dependency 

Notasi: A B

 A dan B adalah atribut dari sebuah tabel. Berarti secarafungsional A menentukan B atau B tergantung pada A,

 jika dan hanya jika ada 2 baris data dengan nilai A yang

sama, maka nilai B juga sama

•   Notasi: A B atau A x  B

 Adalah kebalikan dari notasi sebelumnya.

Page 13: Modul 8 - Normalisasi Data

7/21/2019 Modul 8 - Normalisasi Data

http://slidepdf.com/reader/full/modul-8-normalisasi-data 13/38

Functional Dependency 

Contoh tabel nilai

Page 14: Modul 8 - Normalisasi Data

7/21/2019 Modul 8 - Normalisasi Data

http://slidepdf.com/reader/full/modul-8-normalisasi-data 14/38

Functional Dependency 

Functional Dependency dari tabel nilai

•   Nrp namaMhs

Karena untuk setiap nilai nrp yang sama, maka nilai

namaMhs juga sama.

•   {Namakul, nrp} NiHuruf 

Karena attribut 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 

Page 15: Modul 8 - Normalisasi Data

7/21/2019 Modul 8 - Normalisasi Data

http://slidepdf.com/reader/full/modul-8-normalisasi-data 15/38

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)

Page 16: Modul 8 - Normalisasi Data

7/21/2019 Modul 8 - Normalisasi Data

http://slidepdf.com/reader/full/modul-8-normalisasi-data 16/38

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 harus bernilai atomic(tidak dapat dibagi-bagi lagi)

Page 17: Modul 8 - Normalisasi Data

7/21/2019 Modul 8 - Normalisasi Data

http://slidepdf.com/reader/full/modul-8-normalisasi-data 17/38

Contoh 1

Misal data mahasiswa sbb:

 Atau Atau::

TabelTabel--tabeltabel didi atasatas tidaktidak memenuhimemenuhi syaratsyarat 1NF1NF

Page 18: Modul 8 - Normalisasi Data

7/21/2019 Modul 8 - Normalisasi Data

http://slidepdf.com/reader/full/modul-8-normalisasi-data 18/38

Contoh 1

Didekomposisi menjadi:

• Tabel Mahasiswa

• Tabel Hobi

Page 19: Modul 8 - Normalisasi Data

7/21/2019 Modul 8 - Normalisasi Data

http://slidepdf.com/reader/full/modul-8-normalisasi-data 19/38

Contoh 2 (composite)

JadwalKuliah

Kodekul NamaKul Dosen Kelas Jadwal

Kodekul NamaKul Dosen Kelas JadwalHari JadwalJam

• Dimana nilai pada atribut jadwal berisi gabungan antaraHari 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:

JadwalKuliah

Page 20: Modul 8 - Normalisasi Data

7/21/2019 Modul 8 - Normalisasi Data

http://slidepdf.com/reader/full/modul-8-normalisasi-data 20/38

Bentuk Normal Tahap Kedua(2nd Normal Form)

Bentuk normal 2NF terpenuhi dalam sebuah tabel jikatelah memenuhi bentuk 1NF, dan semua atribut selainprimary key, secara utuh memiliki Functional Dependencypada primary key 

Sebuah tabel tidak memenuhi 2NF, jika ada atribut yangketergantungannya (Functional Dependency) hanya

 bersifat parsial saja (hanya tergantung pada sebagian dariprimary key)

Jika terdapat atribut yang tidak memiliki ketergantunganterhadap primary key, maka atribut tersebut harusdipindah atau dihilangkan

Page 21: Modul 8 - Normalisasi Data

7/21/2019 Modul 8 - Normalisasi Data

http://slidepdf.com/reader/full/modul-8-normalisasi-data 21/38

Contoh

Tabel berikut memenuhi 1NF tapi tidak termasuk 2NF:

Mhs_nrp mhs_nama mhs_alamat mk_kode mk_nama mk_sks nihuruf 

• Tidak memenuhi 2NF, karena {Mhs_nrp, mk_kode} yangdianggap 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

Page 22: Modul 8 - Normalisasi Data

7/21/2019 Modul 8 - Normalisasi Data

http://slidepdf.com/reader/full/modul-8-normalisasi-data 22/38

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

fd3 (mk_kode, mk_nama, mk_sks)   Tabel MataKuliah

Page 23: Modul 8 - Normalisasi Data

7/21/2019 Modul 8 - Normalisasi Data

http://slidepdf.com/reader/full/modul-8-normalisasi-data 23/38

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:

•• XX harusharus menjadimenjadi superkeysuperkey padapada tabeltabel tsbtsb..

•• Atau Atau A A merupakanmerupakan bagianbagian daridari primary keyprimary key padapada tabeltabeltsbtsb..

Page 24: Modul 8 - Normalisasi Data

7/21/2019 Modul 8 - Normalisasi Data

http://slidepdf.com/reader/full/modul-8-normalisasi-data 24/38

Contoh

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

Nrp Nama Alm_Jalan Alm_Kota Alm_Provinsi Alm_Kodepos

Mahasiswa

karenakarena masihmasih terdapatterdapat atributatribut non primary keynon primary key ((yakniyakni alm_kotaalm_kota dandan

alm_Provinsialm_Provinsi) yang) yang memilikimemiliki ketergantunganketergantungan terhadapterhadap atributatribut nonnon

primary keyprimary key yang lain (yang lain (yakniyakni alm_kodeposalm_kodepos):):

alm_kodepos {alm_Provinsi, alm_kota}

SehinggaSehingga tabeltabel tersebuttersebut perluperlu didekomposisididekomposisi menjadimenjadi::

Mahasiswa (Nrp, nama, alm_jalan, alm_kodepos)

Kodepos (alm_kodepos, alm_provinsi, alm_kota)

Page 25: Modul 8 - Normalisasi Data

7/21/2019 Modul 8 - Normalisasi Data

http://slidepdf.com/reader/full/modul-8-normalisasi-data 25/38

Boyce-Code Normal Form(BCNF)

Bentuk BCNF terpenuhi dalam sebuah tabel, jika untuk setiap functional dependency terhadap setiap atributatau gabungan atribut dalam bentuk: X Y maka X

adalah su p er k ey  tabel tersebut harus di-dekomposisi berdasarkan

 functional dependency yang ada, sehingga X menjadisuper 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 A, BCNF tidak membolehkan A sebagai bagian dari primary key.

Page 26: Modul 8 - Normalisasi Data

7/21/2019 Modul 8 - Normalisasi Data

http://slidepdf.com/reader/full/modul-8-normalisasi-data 26/38

Bentuk Normal Tahap Keempat(4th Normal Form /4NF)

Bentuk normal 4NF terpenuhi dalam sebuah tabel jikatelah memenuhi bentuk BCNF, dan tabel tersebut tidak 

 boleh memiliki lebih dari sebuah multivalued atribute

Untuk setiap multivalued dependencies (MVD) jugaharus merupakan functional dependencies

Page 27: Modul 8 - Normalisasi Data

7/21/2019 Modul 8 - Normalisasi Data

http://slidepdf.com/reader/full/modul-8-normalisasi-data 27/38

Contoh

Misal, tabel berikut tidak memenuhi 4NF:

SetiapSetiap employeeemployee dapatdapat bekerjabekerja didi lebihlebih daridari satusatu projectproject dandan

dapatdapat memilikimemiliki lebihlebih daridari satusatu skillskill.. UntukUntuk kasuskasus sepertiseperti iniini

tabeltabel tersebuttersebut harusharus didi--dekomposisidekomposisi menjadimenjadi::

(Employee, Project)(Employee, Skill)

Page 28: Modul 8 - Normalisasi Data

7/21/2019 Modul 8 - Normalisasi Data

http://slidepdf.com/reader/full/modul-8-normalisasi-data 28/38

Bentuk Normal Tahap Keempat(5th Normal Form /5NF)

Bentuk normal 5NF terpenuhi jika tidak dapat memilikisebuah lossless decomposition menjadi tabel-tabel yg lebihkecil.

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

Page 29: Modul 8 - Normalisasi Data

7/21/2019 Modul 8 - Normalisasi Data

http://slidepdf.com/reader/full/modul-8-normalisasi-data 29/38

Latihan Normalisasi

Page 30: Modul 8 - Normalisasi Data

7/21/2019 Modul 8 - Normalisasi Data

http://slidepdf.com/reader/full/modul-8-normalisasi-data 30/38

Soal Latihan (1)

NoOrder TglOrder Item1 Item2 Item3 Total

TR001 10/01/2006 P1 P2 P3 500.000

TR002 15/02/2006 P3 P5 300.000

TR003 18/03/2006 P1 P2 200.000

Bagaimana bentuk normalisasinya?

Page 31: Modul 8 - Normalisasi Data

7/21/2019 Modul 8 - Normalisasi Data

http://slidepdf.com/reader/full/modul-8-normalisasi-data 31/38

Pembahasan(1)

Bentuk Normal Pertama

NoOrder TglOrder Item Total

TR001 10/01/2006 P1 500.000

TR001 10/01/2006 P2 500.000

TR001 10/01/2006 P3 500.000

TR002 15/02/2006 P3 300.000

TR002 15/02/2006 P5 300.000

TR003 18/03/2006 P1 200.000TR003 18/03/2006 P2 200.000

Page 32: Modul 8 - Normalisasi Data

7/21/2019 Modul 8 - Normalisasi Data

http://slidepdf.com/reader/full/modul-8-normalisasi-data 32/38

Pembahasan(1)

Bentuk Normal Kedua

NoOrder TglOrder Total

TR001 10/01/2006 500.000

TR002 15/02/2006 300.000

TR003 18/03/2006 200.000

NoOrder Item

TR001 P1

TR001 P2

TR001 P3

TR002 P3

TR002 P5TR003 P1

TR003 P2

Relasi: Order1 Relasi: Order2

Page 33: Modul 8 - Normalisasi Data

7/21/2019 Modul 8 - Normalisasi Data

http://slidepdf.com/reader/full/modul-8-normalisasi-data 33/38

Soal Latihan(2)

KodeProyek NamaPegawai Bagian

P001 Adi EDP

P002 Bima HRD

P002 Adi EDP

P003 Bima HRD

P003 Candra Produksi

• Apakah sudah memenuhi bentuk normal pertama

• Bagaimana bentuk normalisasi tabel tersebut?

Page 34: Modul 8 - Normalisasi Data

7/21/2019 Modul 8 - Normalisasi Data

http://slidepdf.com/reader/full/modul-8-normalisasi-data 34/38

Pembahasan(2)

KodeProyek NamaPegawai

P001 Adi

P002 Bima

P002 Adi

P003 Bima

P003 Candra

NamaPegawai Bagian

 Adi EDP

Bima HRD

Candra Produksi

• Tabel soal latihan 2 sudah memenuhi normalisasi pertama

• Bentuk normalisasi kedua dari tabel tersebut adalah

Relasi: Proyek1 Relasi: Proyek2

Page 35: Modul 8 - Normalisasi Data

7/21/2019 Modul 8 - Normalisasi Data

http://slidepdf.com/reader/full/modul-8-normalisasi-data 35/38

Pembahasan(2)

KodeProyek NamaProyek KodePeg

awai

P001 XXX N001

P002 YYY N001

P002 YYY N002

P003 ZZZ N002

P003 ZZZ N003

KodePegawai NamaPeg

awai

KodeBagian

N001 Adi B01

N002 Bima B02

N003 Candra B03

KodeBagian NamaBagianB01 EDP

B02 HRD

B03 Produksi

• Bentuk normalisasi ketiga dari tabel tersebut adalah

Relasi: Proyek1 Relasi: Proyek2

Relasi: Proyek3

Page 36: Modul 8 - Normalisasi Data

7/21/2019 Modul 8 - Normalisasi Data

http://slidepdf.com/reader/full/modul-8-normalisasi-data 36/38

Soal Latihan(3)

NRP Nama MataKuliah NIP Dosen

5103100101 Ali Basis Data 320001123 Ir.X

5103100102 Sita Basis Data 320001123 Ir.X

5103100102 Sita RPL 320011133 Ir.Y

5103100103 Adi AI 320021010 Ir.Z

• Apakah sudah memenuhi bentuk normal pertama

• Bagaimana bentuk normalisasi tabel tersebut?

Page 37: Modul 8 - Normalisasi Data

7/21/2019 Modul 8 - Normalisasi Data

http://slidepdf.com/reader/full/modul-8-normalisasi-data 37/38

Pembahasan (3)

NRP Nama

5103100101  Ali

5103100102 Sita

5103100103  Adi

NRP MataKuliah

5103100101 Basis data

5103100101 Basis data

5103100101 RPL

5103100102  AI

NRP NIP Dosen

5103100101 320001123 Ir. X5103100102 320001123 Ir. Y

5103100102 320011133 Ir. Y

5103100103 320021010 Ir. Z

• Tabel soal latihan 3 sudah memenuhi normalisasi pertama• Bentuk normalisasi kedua dari tabel tersebut adalah

Relasi: Mahasiswa1 Relasi: Mahasiswa2

Relasi: Mahasiswa3

Page 38: Modul 8 - Normalisasi Data

7/21/2019 Modul 8 - Normalisasi Data

http://slidepdf.com/reader/full/modul-8-normalisasi-data 38/38

Pembahasan (3)

NRP Nama KodeMatkul

5103100101  Ali MT01

5103100102 Sita MT02

5103100102 Sita MT02

5103100103  Adi MT03

KodeMatkul MataKuliah

MT01 Basis data

MT02 RPL

Mt03  AI

NIP Dosen

320001123 Ir. X

320011133 Ir. Y

320021010 Ir. Z

• Bentuk normalisasi ketiga dari tabel tersebut adalah

Relasi: Mahasiswa1 Relasi: Mahasiswa2

Relasi: Mahasiswa3