Normalisasi Basis Data (Revisi)

Post on 16-Apr-2017

407 views 12 download

Transcript of Normalisasi Basis Data (Revisi)

Manajemen

DATAAdamMukharil Bachtiar, M.T.

Normalisasi

Pemahaman Normalisasi & Anomali

Teknik mendekomposisi satu tabel menjadi beberapa buah tabel agar tidak terjadi anomali pada tabel tersebut

apa itu anomali?

Anomali Penyisipan (Insert)

Apa yang terjadi jika B. Jerman ditambahkan ke Kursus?

No_Siswa Kursus Biaya

10 B. Inggris 60000

10 B. Perancis 80000

10 B. Jepang 70000

15 B. Inggris 60000

20 B. Jepang 60000

No_Siswa Kursus Biaya

10 B. Inggris 60000

10 B. Perancis 80000

10 B. Jepang 70000

15 B. Inggris 60000

20 B. Jepang 60000

B.Jerman 90000

Solusi Anomali Penyisipan (Insert)

No_Siswa Kursus Biaya

10 B. Inggris 60000

10 B. Perancis 80000

10 B. Jepang 70000

15 B. Inggris 60000

20 B. Jepang 60000

Kursus Biaya

B. Inggris 60000

B. Jepang 70000

B.Jerman 90000

No_Siswa ...

10 ..

15 ..

20 ..

No_Siswa Kursus

10 B. Inggris

.. ..

20 B. Jepang

Anomali Peremajaan (Update)

Pemasok Kota Barang JumlahKartika Jakarta Mouse 5Citra Bandung Monitor 2Yudi Medan CPU 2Citra Bandung Printer 1

Apa yang terjadi jika Citra pindah kota ke Bogor?

Solusi Anomali Peremajaan (Update)

Pemasok Kota Barang JumlahKartika Jakarta Mouse 5Citra Bandung Monitor 2Yudi Medan CPU 2Citra Bandung Printer 1

Pemasok Kota

Kartika JakartaCitra BandungYudi Medan

Pemasok Barang JumlahKartika Mouse 5Citra Monitor 2Yudi CPU 2Citra Printer 1

Anomali Penghapusan (Delete)

Apa yang terjadi jika No_Siswa 10 dihapus?

No_Siswa Kursus Biaya

10 B. Inggris 60000

10 B. Perancis 80000

10 B. Jepang 70000

15 B. Inggris 60000

20 B. Jepang 60000

No_Siswa Kursus Biaya

15 B. Inggris 60000

20 B. Jepang 60000

Solusi Anomali Penghapusan (Delete)

No_Siswa Kursus Biaya

10 B. Inggris 60000

10 B. Perancis 80000

10 B. Jepang 70000

15 B. Inggris 60000

20 B. Jepang 60000 Kursus Biaya

B. Inggris 60000

B. Jepang 70000

B.Jerman 90000

No_Siswa ...

15 ..

20 ..

No_Siswa Kursus

15 B. Inggris

20 B. Jepang

Semua solusi dari anomaliadalah memecah tabel,itulah normalisasi

Ada aturannya gapak?

Apakah memecahtabelnya boleh asal-

asalan?

tentu tidak, kan ada aturan

dependensi!!!

Pemahaman Dependensi

mulai dari istilah di

dependensi!!!

Menggambarkan relasi/hubungan, batasan, dan keterkaitan antara atribut-atribut dalam suatu relasi

No_KTP à NamaDeterminan/Penentu Dependent

Atribut No_KTP menentukan atribut Nama dan atribut Nama bergantung pada atribut No_KTP

Dependensi paling dasaradalah dependensifungsional

Dependensi Fungsional

Sebuah atribut berdependensi fungsional terhadap atributlainnya jika dan hanya jika satu nilai pada atribut

tersebut tepat dipetakan satu terhadap satu nilaidari atribut dependentnya

Pembeli Kota Barang JumlahP1 Yogyakarta B1 10P1 Yogyakarta B2 5P2 Jakarta B1 4P2 Jakarta B2 7P3 Solo B3 6P3 Solo B4 6

Pembeli à Kota{Pembeli, Barang} à Kota

Dependensi Fungsional

Selain dependensifungsional, ada 4 jenisdependensi lainnya, yaitu:

Dependensi Total

Atribut y memiliki dependensi fungsional total terhadap atribut x jika y berdependensi fungsional terhadap x

begitu juga sebaliknya (x ↔ y)

Dependensi Fungsional Total

Diasumsikan tidak pernah ada nama yang sama makaNo_Siswa ↔ Nama

No_Siswa Nama Alamat

A1 Budi Bandung

A2 Andi Bogor

A3 Ani Serang

A4 Dian Madura

A5 Andri Ciamis

DependensiFungsional Penuh

Atribut y memiliki dependensi fungsional penuh terhadap atribut x jika y berdependensi fungsional terhadap x

dan y hanya berdependensi fungsionalterhadap subset dari x

{x,y} à z

Dikatakan dependensi fungsional penuh jika z tidak hanya cukup bergantung pada x saja atau y saja

DependensiFungsional Sebagian

Atribut y memiliki dependensi fungsional sebagian terhadap atribut x jika Y berdependensi

fungsional terhadap X dan Y tidak berdependensi fungsional terhadap subset dari X

{x,y} à zx à z

Maka z berdependensi fungsional sebagian terhadap x

DependensiFungsional Transitif

Atribut z memiliki dependensi fungsional transitif terhadap atribut x jika y berdependensi fungsional

terhadap x dan z berdependensi fungsional terhadap y

x à yy à z

Jadi x à zMaka z berdependensi fungsional transitif terhadap x

Dependensi Fungsional Transitif

Kuliah à {Kampus, Waktu}Kampus à RuangKuliah à Waktu (Kuliah à Kampus à Waktu)

Kuliah Kampus Ruang WaktuRPL 5 5406 SeninBasis Data 4 4417 SelasaKalkulus 2 2505 RabuData Mining 1 1407 Kamis

Mari kita mulai

normalisasi!

Proses Normalisasi

Tabel PadaBasis Data

Penentuan Atribut

Bentuk Normal1 - BCNF

UnnormalizedForm

Dokumen Manual• Atribut bawaan (dari dokumen)• Atribut bentukan (dari aturan

bisnis atau asumsi)

Jenis Input

Bagian pada dokumen akan menjadi atribut apabila isian ataunilainya bersifat dinamis (data bisa berubah nilai)

Contoh Atribut

Contoh Nilai

Bentuk Normalisasi

BentukTidak

Normal

BentukNormal Pertama

BentukNormal Kedua

BentukNormal Ketiga

BCNFBentukNormal

Keempat

BentukNormal kelima

Jarang Digunakan kecuali jika masih ada anomali

Diberikan suatu kasusbentuk unnormalized

PROJ_NUM PROJ_NAME EMP_NUM EMP_NAME JOB_CLASS CHG_HOUR HOURS15 Evergreen 103 Juni E. Arbough Elect. Engineer 84.50 23.8

101 John G. News Database Engineer 105.00 19.4

105 Alice K. Johnson Database Engineer 105.00 35.7

106 William Smithfield Programmer 35.75 12.6

102 David H. Senior System Analyst 96.75 23.8

18 Amber Wave 114 Annelise Jones Application Designer 48.10 24.6

118 James J. Frommer General Support 18.36 45.3

104 Anne K. Ramoras System Analyst 96.75 32.4

112 Darlene M. Smithson DSS Analyst 45.95 44.0

22 Rolling Tide 105 Alice K. Johnson Database Desginer 105.00 64.7

104 Anne K. Ramoras System Analyst 96.75 48.4

113 Delbert K. Joenbrood Application Designer 48.10 23.6

111 Geoff B. Wabash Clerical Support 26.87 22.0

106 William Smithfield Programmer 35.75 12.8

25 Starflight 107 Maria D. Alonzo Programmer 35.75 24.6

115 Travis B. Bawangi System Analyst 96.75 45.8

101 John G. News Database Designer 105.00 56.3

114 Annelise Jones Application Designer 48.10 33.1

108 Ralph B. Washington System Analyst 96.75 23.6

118 James J. Frommer General Support 18.36 30.5

112 Darlene M. Smithson DSS Analyst 45.95 41.4

Bentuk normal pertama(1st normal form)

• Eliminasi nilai null pada repeating groups

• Identifikasi primary key (Suggestion)

• Identifikasi seluruh dependensi (Suggestion)

PROJ_NUM PROJ_NAME EMP_NUM EMP_NAME JOB_CLASS CHG_HOUR HOURS15 Evergreen 103 Juni E. Arbough Elect. Engineer 84.50 23.8

15 Evergreen 101 John G. News Database Designer 105.00 19.4

15 Evergreen 105 Alice K. Johnson Database Engineer 105.00 35.7

15 Evergreen 106 William Smithfield Programmer 35.75 12.6

15 Evergreen 102 David H. Senior System Analyst 96.75 23.8

18 Amber Wave 114 Annelise Jones Application Designer 48.10 24.6

18 Amber Wave 118 James J. Frommer General Support 18.36 45.3

18 Amber Wave 104 Anne K. Ramoras System Analyst 96.75 32.4

18 Amber Wave 112 Darlene M. Smithson DSS Analyst 45.95 44.0

22 Rolling Tide 105 Alice K. Johnson Database Designer 105.00 64.7

22 Rolling Tide 104 Anne K. Ramoras System Analyst 96.75 48.4

22 Rolling Tide 113 Delbert K. Joenbrood Application Designer 48.10 23.6

22 Rolling Tide 111 Geoff B. Wabash Clerical Support 26.87 22.0

22 Rolling Tide 106 William Smithfield Programmer 35.75 12.8

25 Starflight 107 Maria D. Alonzo Programmer 35.75 24.6

25 Starflight 115 Travis B. Bawangi System Analyst 96.75 45.8

25 Starflight 101 John G. News Database Designer 105.00 56.3

25 Starflight 114 Annelise Jones Application Designer 48.10 33.1

25 Starflight 108 Ralph B. Washington System Analyst 96.75 23.6

25 Starflight 118 James J. Frommer General Support 18.36 30.5

25 Starflight 112 Darlene M. Smithson DSS Analyst 45.95 41.4

Primary key:{PROJ_NUM,EMP_NUM} {PROJ_NUM,EMP_NUM} à PROJ_NAME, EMP_NAME, JOB_CLASS, CHG_HOUR, HOURS

Dependensi Fungsional Sebagian:PROJ_NUM à PROJ_NAMEEMP_NUM à EMP_NAME, JOB_CLASS, CHG_HOUR

Dependensi Fungsional Transitif:JOB_CLASS à CHG_HOUR

PROJ_NUM PROJ_NAME EMP_NUM EMP_NAME JOB_CLASS CHG_HOUR HOURS

Primary key

Partial DependencyPartial Dependency

TransitiveDependency

Bentuk normal kedua(2nd normal form)

• Pastikan tabel sudah dalam bentuk normal pertama

• Eliminasi depedensi fungsional sebagian

• Tentukan atribut yang berdepedensi terhadap atribut lain

PROJ_NUM PROJ_NAME

EMP_NUM EMP_NAME JOB_CLASS CHG_HOUR

HOURS

Nama tabel: PROJECT

PROJ_NUM à PROJ_NAME

Nama tabel: EMPLOYEE

EMP_NUM à EMP_NAME, JOB_CLASS, CHG_HOURS

JOB_CLASS à CHG_HOUR

PROJ_NUM EMP_NUM

{PROJ_NUM,EMP_NUM} à HOURSNama tabel: ASSIGNMENT

Nama tabel: PROJECT

Nama tabel: EMPLOYEE

Nama tabel: ASSIGNMENT

PROJ_NUM PROJ_NAME

15 Evergreen

18 Amber Wave

.. ..

EMP_NUM EMP_NAME JOB_CLASS CHG_HOUR101 John G. News Database Engineer 105.00

102 David H. Senior System Analyst 96.75

.. .. .. ..

PROJ_NUM EMP_NUM HOURS

15 103 23.8

15 101 19.4

.. .. ..

Tabel hasil normalisasi bentuk kedua (2nd form)

Bentuk normal ketiga(3rd normal form)

• Pastikan tabel sudah dalam bentuk normal kedua

• Eliminasi depedensi transitif

• Tentukan kembali depedensi antar atribut

PROJ_NUM PROJ_NAME EMP_NUM EMP_NAME JOB_CLASS

HOURS

Nama tabel: PROJECT

PROJ_NUM à PROJ_NAME

Nama tabel: EMPLOYEE

EMP_NUM à EMP_NAME, JOB_CLASS

JOB_CLASS à CHG_HOUR

PROJ_NUM EMP_NUM

{PROJ_NUM,EMP_NUM} à HOURS

Nama tabel: ASSIGNMENT

JOB_CLASS CHG_HOUR

Nama tabel: JOB

Nama tabel: PROJECT Nama tabel: EMPLOYEE

Nama tabel: ASSIGNMENT

PROJ_NUM PROJ_NAME

15 Evergreen

18 Amber Wave

.. ..

EMP_NUM EMP_NAME JOB_CLASS101 John G. News Database Engineer

102 David H. Senior System Analyst

.. .. ..

PROJ_NUM EMP_NUM HOURS

15 103 23.8

15 101 19.4

.. .. ..

JOB_CLASS CHG_HOURDatabase Engineer 105.00

System Analyst 96.75

.. ..

Nama tabel: JOB

Tabel hasil normalisasi bentuk ketiga (3rd form)

Bentuk normal Boyce-Codd(Boyce-Codd normal form)

• Pastikan tabel sudah dalam bentuk normal ketiga

• Hanya dilakukan jika dan hanya jika semua determinan

merupakan candidate key

CA B

{A,B} à C, DC à B

3rd normal form but not BCNF

D

DA C

{A,C} à D

3rd normal form and BCNF

BC

C à B

SISWA KURSUS TUTOR

Anwar B. Perancis Pierre

Anwar B. Inggris Richard

Budi B. Perancis Pierre

Cecep B. Inggris Suzanne

Ilustrasi tabel BCNFSISWA TUTOR

Anwar Pierre

Anwar Richard

Budi Pierre

Cecep Suzanne

TUTOR KURSUS

Pierre B. Perancis

Richard B. Inggris

Suzanne B. Inggris

{SISWA,KURSUS} à TUTORTUTOR à KURSUS

TUTOR à KURSUS

Relasi SISWA dengan TUTOR

Pada kasus sebelumnya, tabel sudah dalam bentuknormal ketiga dan BCNF

Latihan Normalisasi