normalisasi

6
02/12/2010 1 Normalisasi (Pert. 8) Oleh : Umi Laili Yuhana, S.Kom, M.Sc. Sarwosri, S.Kom, M.T. Dr. Ir. Siti Rochimah 1 BASIS DATA TEKNIK INFORMATIKA - ITS GASAL 2010/2011 Normalisasi Normalisasi adalah proses pembentukan struktur basis data sehingga sebagian besar ambiguity bisa dihilangkan. Digunakan untuk memastikan bahwa database yang dibuat berkualitas baik 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. 2 BASIS DATA TEKNIK INFORMATIKA - ITS GASAL 2010/2011 Normalisasi Sebuah tabel dikatakan baik (efisien) atau normal jika memenuhi 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-) 3 BASIS DATA TEKNIK INFORMATIKA - ITS GASAL 2010/2011 Normalisasi Jika kriteria ketiga (BCNF) tidak dapat terpenuhi, maka paling tidak tabel tersebut tidak melanggar Bentuk Normal tahap ketiga (3rd Normal Form / 3NF). 4 BASIS DATA TEKNIK INFORMATIKA - ITS GASAL 2010/2011 Tabel Universal Tabel Universal (Universal / Star Table) sebuah tabel yang merangkum semua kelompok data yang saling berhubungan, bukan merupakan tabel yang baik. Misalnya: 5 BASIS DATA TEKNIK INFORMATIKA - ITS GASAL 2010/2011 Tabel Universal 6 BASIS DATA TEKNIK INFORMATIKA - ITS GASAL 2010/2011

Upload: rizky-nugraha-amaia

Post on 23-Dec-2015

6 views

Category:

Documents


0 download

DESCRIPTION

Teknik Informatika

TRANSCRIPT

Page 1: Normalisasi

02/12/2010

1

Normalisasi

(Pert. 8)

Oleh : Umi Laili Yuhana, S.Kom, M.Sc.

Sarwosri, S.Kom, M.T.Dr. Ir. Siti Rochimah

1

BASIS DATA TEKNIK INFORMATIKA - ITS GASAL 2010/2011

Normalisasi

• Normalisasi adalah proses pembentukan struktur basis data sehingga sebagian besar ambiguity bisa dihilangkan.

• Digunakan untuk memastikan bahwa database yang dibuat berkualitas baik

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

2BASIS DATA TEKNIK INFORMATIKA - ITS

GASAL 2010/2011

Normalisasi

Sebuah tabel dikatakan baik (efisien) atau normal jika memenuhi 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-)

3BASIS DATA TEKNIK INFORMATIKA - ITS

GASAL 2010/2011

Normalisasi

Jika kriteria ketiga (BCNF) tidak dapatterpenuhi, maka paling tidak tabel tersebuttidak melanggar Bentuk Normal tahap ketiga(3rd Normal Form / 3NF).

4BASIS DATA TEKNIK INFORMATIKA - ITS

GASAL 2010/2011

Tabel Universal

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

Misalnya:

5BASIS DATA TEKNIK INFORMATIKA - ITS

GASAL 2010/2011

Tabel Universal

6BASIS DATA TEKNIK INFORMATIKA - ITS

GASAL 2010/2011

Page 2: Normalisasi

02/12/2010

2

Functional Dependency

• Notasi: A B

• A dan B adalah atribut dari sebuah tabel. Berarti secara fungsional 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.

7BASIS DATA TEKNIK INFORMATIKA - ITS

GASAL 2010/2011

Functional Dependency

Contoh tabel nilai

8BASIS DATA TEKNIK INFORMATIKA - ITS

GASAL 2010/2011

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

NRP NamaKul

Nrp NiHuruf

9BASIS DATA TEKNIK INFORMATIKA - ITS

GASAL 2010/2011

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)

10BASIS DATA TEKNIK INFORMATIKA - ITS

GASAL 2010/2011

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)

11BASIS DATA TEKNIK INFORMATIKA - ITS

GASAL 2010/2011

Contoh 1 (multi value atribut*)

Atau:

Tabel-tabel di atas tidak memenuhi syarat 1NF

12BASIS DATA TEKNIK INFORMATIKA - ITS

GASAL 2010/2011 *Multi value atribut adalah atribut yang memiliki lebih dari satu nilai

NRP Nama Hobi

12020001 Heri Susanto Sepakbola, Membaca Komik, Berenang

12020013 Siti Zulaiha Memasak, membuat program komputer

12020018 Heri Susanto Membuat program Komputer

12020015 Dini Susanti Menjahit, Membuat Roti

NRP Nama Hobi1 Hobi2 Hobi3

12020001 HeriSusanto

Sepakbola Membaca Komik Berenang

12020013 Siti Zulaiha Memasak Membuat Program Komputer

12020018 Heri Susanto

Membuat Program Komputer

12020015 Dini Susanti

Menjahit Membuat Roti

Misal data mahasiswa sbb:

Page 3: Normalisasi

02/12/2010

3

Tabel yang memenuhi 1NF

BASIS DATA TEKNIK INFORMATIKA - ITS GASAL 2010/2011

13

NRP Nama Hobi

12020001 Heri Susanto Sepakbola

12020001 Heri Susanto Membaca Komik

12020001 Heri Susanto Berenang

12020013 Siti Zulaiha Memasak

12020013 Siti Zulaiha Membuat program Komputer

12020018 Heri Susanto Membuat Program Komputer

12020015 Dini Susanti Menjahit

12020015 Dini Susanti Membuat Roti

Contoh 2 (composite)

JadwalKuliah

Kodekul NamaKul Dosen Kelas Jadwal

Dimana nilai 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:

JadwalKuliah

Kodekul NamaKul Dosen Kelas JadwalHari JadwalJam

14BASIS DATA TEKNIK INFORMATIKA - ITS

GASAL 2010/2011

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 dihilangkan

15BASIS DATA TEKNIK INFORMATIKA - ITS

GASAL 2010/2011

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} 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 16

BASIS DATA TEKNIK INFORMATIKA - ITS GASAL 2010/2011

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

17BASIS DATA TEKNIK INFORMATIKA - ITS

GASAL 2010/2011

Bentuk Normal Tahap Ketiga (3rd Normal Form /3NF)

• Bentuk normal 3NF terpenuhi – jika telah memenuhi bentuk 2NF, dan

– jika tidak ada atribut yang bukan kunci memiliki ketergantungan transitif (tidak secara langsung) pada primary key.

18BASIS DATA TEKNIK INFORMATIKA - ITS

GASAL 2010/2011

Page 4: Normalisasi

02/12/2010

4

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

No Pesanan No Urut Kode item Nama item

5001 001 P1 Pensil

5001 002 P2 Buku Tulis

5002 001 P1 Pensil

5003 001 P2 Buku Tulis

19BASIS DATA TEKNIK INFORMATIKA - ITS

GASAL 2010/2011

{No Pesanan, No Urut} Kode Item

{No Pesanan, No Urut} Nama item

Kode Item Nama item (Nama item tergantung pada kode item,

Kode item bukan primary key dari tabel ini)

Nama item bergantung pada No

pesanan dan no urut secara tidak

langsung, karena ia bergantung

pada kode item

Solusi: nama dihilangkan dari tabel di atas dan dibuat tabel sendiri bersamaan dengan kode item

Dengan kata lain ada atribut bukan

primary key yang bergantung pada

atribut yang bukan primary key

Tabel berikut telah memenuhi 3NF

No Pesanan No Urut Kode item

5001 001 P1

5001 002 P2

5002 001 P1

5003 001 P2

20BASIS DATA TEKNIK INFORMATIKA - ITS

GASAL 2010/2011

Solusi: nama dihilangkan dari tabel di atas dan dibuat tabel sendiri bersamaan dengan kode item

Kode item Nama item

P1 Pensil

P2 Buku Tulis

Tabel Pesanan

Primary Key:

No Pesanan + No Urut

Tabel Barang

Primary Key: Kode item

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 . BCNF merupakan perbaikan bagi 3NF yang anomali.

21BASIS DATA TEKNIK INFORMATIKA - ITS

GASAL 2010/2011

Contoh BCNF

• Tabel tersebut tidak melanggar 3NF

• Seorang siswa dapat mengambil sejumlah kursus

• Tutor hanya mengajar pada sebuah kursus, satu kursus bisa diajar oleh banyak tutor

• Kunci kandidat:

– Siswa + Kursus

– Kursus + Tutor

BASIS DATA TEKNIK INFORMATIKA - ITS GASAL 2010/2011

22

Siswa Kursus Tutor

Anwar Bahasa Perancis Pierre

Anwar Bahasa Inggris Richard

Budi Bahasa Perancis Pierre

Cecep Bahasa Inggris Suzanne

SISWA

KURSUS

TUTOR

Hubungan ketergantungan

Jika baris Cecep dihapus,

Informasi suzanne sebagai

tutor bahasa inggris akan hilang

Solusi: dekomposisi tabel

Memenuhi BCNF

BASIS DATA TEKNIK INFORMATIKA - ITS GASAL 2010/2011

23Solusi: dekomposisi tabel

Siswa Tutor

Anwar Pierre

Anwar Richard

Budi Pierre

Cecep Suzanne

Tutor Kursus

Pierre Bahasa Perancis

Richard Bahasa Inggris

Pierre Bahasa Perancis

Suzanne Bahasa Inggris

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

• 4NF terpenuhi jika

– telah memenuhi bentuk BCNF,

– Tidak mengandung dua atribut atau lebih yang bernilai banyak

24BASIS DATA TEKNIK INFORMATIKA - ITS

GASAL 2010/2011

Page 5: Normalisasi

02/12/2010

5

ContohMisal, tabel berikut tidak memenuhi 4NF:

Setiap pegawai dapat bekerja di lebih dari satu proyek dan

dapat memiliki lebih dari satu skill. Untuk kasus seperti ini

tabel tersebut harus di-dekomposisi menjadi:

(Nama Pegawai, Proyek)

(Nama Pegawai, Skill)

25BASIS DATA TEKNIK INFORMATIKA - ITS

GASAL 2010/2011

Nama Pegawai Proyek Skill

Jim 11, 6 Komunikasi, pemrogram mahir, negosiasi

Mary 5, 11 Analisis, Desain

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

• Suatu tabel dikatakan tidak memenuhi 5NF jika ia atributnya saling bergantung dengan atribut lain

• Bentuk normal 5NF terpenuhi jika data yang ada padanya tidak dapat didekomposisi lagi menjadi tabel yang 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 lebih kecil, harus bisa digabungkan lagi (join) untuk membentuk tabel semula

26BASIS DATA TEKNIK INFORMATIKA - ITS

GASAL 2010/2011

ContohDealer Distributor Kendaraan

PT Sumber Jaya Nissan Truk Nissan

PT Sumber Jaya Toyota Toyota Kijang

PT Sumber Jaya Toyota Truk Dyna

PT Asterindo Nissan Sedan Nissan

BASIS DATA TEKNIK INFORMATIKA - ITS GASAL 2010/2011

27

Tidak memenuhi 5NF

memenuhi 5NF

•Pecah menjadi 3 tabel:

•Deal_dist(Dealer, Distributor)

•Dist_kend(Distributor,Kendaraan)

•Deal_kend(Dealer, kendaraan)

•Jika digabung menjadi satu akan kembali menjadi tabel diatas

Latihan Normalisasi

28BASIS DATA TEKNIK INFORMATIKA - ITS

GASAL 2010/2011

Soal Latihan (1)

NoOrder TglOrder Item1 Item2 Item3 Total

TR001 10/01/20

06

P1 P2 P3 500.000

TR002 15/02/20

06

P3 P5 300.000

TR003 18/03/20

06

P1 P2 200.000

Bagaimana bentuk normalisasinya?

29BASIS DATA TEKNIK INFORMATIKA - ITS

GASAL 2010/2011

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

TR003 18/03/2006 P2 200.000

30BASIS DATA TEKNIK INFORMATIKA - ITS

GASAL 2010/2011

Page 6: Normalisasi

02/12/2010

6

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 ?

• Bagaimana bentuk normalisasi tabel tersebut?

31BASIS DATA TEKNIK INFORMATIKA - ITS

GASAL 2010/2011

Pembahasan(2)

KodeProyek NamaPegawai

P001 Adi

P002 Bima

P002 Adi

P003 Bima

P003 Candra

• Tabel soal latihan 2 sudah memenuhi normalisasi pertama

dan kedua tetapi melanggar normaslisasi tahap 3

• Bentuk normalisasi kedua dari tabel tersebut adalah

Relasi: Proyek Relasi: Pegawai

NamaPegawai Bagian

Adi EDP

Bima HRD

Candra Produksi

32BASIS DATA TEKNIK INFORMATIKA - ITS

GASAL 2010/2011

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 normalisasi?

• Bagaimana bentuk normalisasi tabel tersebut?

33BASIS DATA TEKNIK INFORMATIKA - ITS

GASAL 2010/2011

• Primary key: NRP+MataKuliah

Pembahasan (3)

NRP Nama

5103100101 Ali

5103100102 Sita

5103100103 Adi

NRP Mata Kuliah

5103100101 Basis data

5103100102 Basis data

5103100102 RPL

5103100103 AI

• Tabel soal latihan 3 sudah memenuhi normalisasi pertama

• Bentuk normalisasi kedua dari tabel tersebut adalah

Relasi: Mahasiswa1 Relasi: Mahasiswa2

Relasi: Mahasiswa3

Mata Kuliah NIP Dosen

Basis Data 320001123 Ir. X

RPL 320001133 Ir. Y

AI 320021010 Ir. Z

34BASIS DATA TEKNIK INFORMATIKA - ITS

GASAL 2010/2011

Pembahasan (3)

Mata Kuliah NIP

Basis Data 320001123

RPL 320001133

AI 320021010

• Relasi Mahasiswa1 dan mahasiswa2 telah memenuhi normalisasi

tahap 2

• Relasi mahasiswa3 melanggar normalisasi tahap 3 yaitu Nama

dosen bergantung pada NIPRelasi: Mata Kuliah

Relasi: Mahasiswa3

NIP Dosen

320001123 Ir. X

320011133 Ir. Y

320021010 Ir. Z 35BASIS DATA TEKNIK INFORMATIKA - ITS

GASAL 2010/2011

Mata Kuliah NIP Dosen

Basis Data 320001123 Ir. X

RPL 320001133 Ir. Y

AI 320021010 Ir. Z

Relasi: Dosen

Referensi

1. Konsep & Tuntunan Praktis Basis Data, Abdul Kadir, penerbit Andi Yogyakarta

2. Rebecca M. Riordan. 2005. Designing Effective Database System. Addison Wesley Proffesional Chapter 2.

36BASIS DATA TEKNIK INFORMATIKA - ITS

GASAL 2010/2011