• Tidak ada hasil yang ditemukan

Normalisasi 1 Normalisasi 2 Normalisasi 3 BCNF

N/A
N/A
Protected

Academic year: 2021

Membagikan "Normalisasi 1 Normalisasi 2 Normalisasi 3 BCNF"

Copied!
7
0
0

Teks penuh

(1)

Basis Data I

Danny Kriestanto, S.Kom., M.Eng

Perancangan SBD dengan Model Relasional

Normalisasi 1

Normalisasi 2

Normalisasi 3

BCNF

Normalisasi (Ramon, 2004)

•Merupakan proses langkah demi langkah yang dapat reversibel (dapat dibalik) yang menjadikan sebuah himpunan yang diketahui dari suatu relasi digantikan oleh kumpulan berurutan dari relasi-relasi yang memiliki suatu struktur yang lebih sederhana dan biasa.

Setiap langkah dikenal sebagai suatu bentuk

normal, mendefinisikan sebuah himpunan kriteria.

•Karena reversibel, maka himpunan asli dari relasi dapat dikembalikan tanpa ada informasi yang hilang.

Normalisasi (Hoffer,2002)

Sebuah proses normal untuk

menentukan atribut mana yang

harus dikelompokkan

bersama-sama di dalam sebuah relasi.

Tujuan Normalisasi

•Normalisasi ditujukan untuk

menciptakan relasi yang berstruktur

baik, dengan memenuhi kondisi

(Kadir,2009):

Mengandung redundansi sesedikit

mungkin

Memungkinkan baris-baris dalam relasi

disisipkan, dimodifikasi, dan dihapus tanpa

menimbulkan kesalahan atau

ketidakkonsistenan

Redundansi

Data yang disimpan berkali-kali

(2)

Anomali Data

Anomali data akan terjadi pada proses insertion, deletion, dan

update; yakni proses INSERT, DELETE, dan UPDATE.

•Namun umumnya hanya ada dua, yakni: UPDATE dan INSERT/DELETE karena yang mengalami anomali DELETE pasti juga akan mengalami anomali INSERT

•Dibutuhkan analisis tupel pada tabel untuk mengetahui apakah sebuah field/kolom akan mengalami anomali/kehilangan data ataukah tidak.

•Perhatikan tiap-tiap tahap normalisasi!

Anomali Data

•Contoh kasus:

PEMASOK_BARANG

Kode Nama_Brg Harga Kd_Pemasok Nm_Pemasok Kota

T-001 TV SN 14” 600000 P22 PT Sumber Jakarta T-002 TV SN 21” 950000 P22 PT Sumber Jakarta T-003 TV SS 14” 450000 P11 PT Tunas Jaya Surabaya T-004 TV M 34” 4500000 P33 PT Mekar Semarang T-005 TV S 24” 1200000 P44 PT Holic Semarang

Anomali Data

Anomali Penyisipan (INSERT)

•Kunci ada yang bernilai null

•Ada data yang perlu diisikan ulang (redundansi tinggi)

Anomali Pengubahan (UPDATE)

•Apabila ada satu sel yang berubah, tupel seluruh tabel dengan data yang mirip juga harus diubah (kerancuan data). Contoh: ada perusahaan yang pindah alamat

Anomali Penghapusan (DELETE)

•Saat data dihapus ada data lain yang ikut hilang

Anomali Data

Kode_Barang Nama_Barang Harga_Jual Kode_Pemasok

T-001 TV SN 14” 600000 P22 T-002 TV SN 21” 950000 P11 T-003 TV SS 14” 450000 P22 T-004 TV M 34” 4500000 P33 T-005 TV S 12” 1200000 P44

BARANG

Kode_Pemasok Nama_Pemasok Kota

P11 PT Tunas Jaya Surabaya P22 PT Sumber Jakarta P33 PT Mekar Semarang P44 PT Holic Semarang

PEMASOK

Dependensi

•Dependensi sering digunakan dalam

normalisasi.

•Ada beberapa jenis:

Dependensi fungsional

Dependensi sepenuhnya

Dependensi parsial

Dependensi total

Dependensi transitif

Dependensi Fungsional

•Sering kali cukup disebut dependensi

saja.

•Merupakan kekangan antara dua buah

atribut atau dua buah himpunan atribut.

•Contoh: R(A, B, …)

•B memiliki dependensi fungsional

terhadap A apabila nilai A memiliki

hubungan satu nilai dengan B

(3)

Dependensi Fungsional

•Notasi: A

B

•Dapat dibaca sebagai:

A panah B,

A menentukan B, atau

B tergantung secara fungsional pada A

Item di sebelah kiri disebut

penentu/determinan, sebelah kanan

disebut dependen (“yang bergantung”)

Dependensi Fungsional

•Contoh kasus: PEMASOK_BARANG

Kode Nama_Brg Harga Kd_Pemasok Nm_Pemasok Kota

T-001 TV SN 14” 600.000 P22 PT Sumber Jakarta T-002 TV SN 21” 950.000 P22 PT Sumber Jakarta T-003 TV SS 14” 450.000 P11 PT Tunas Jaya Surabaya T-004 TV M 34” 4.500.000 P33 PT Mekar Semarang T-005 TV S 24” 1.200.000 P44 PT Holic Semarang

Dependensi Fungsional

Berdasarkan tabel tersebut, diperoleh:

•Kode Nama_Brg

•KodeHarga

•Kode Kd_Pemasok

•Kode Nm_Pemasok

•Kd_PemasokNm_Pemasok

Setiap Kode pasti berhubungan dengan satu Nama_Brg begitu juga antara Kode dan Harga. Begitu seterusnya. Misalnya: T-001 hanya cocok dengan 1 barang, yaitu TV SN 14”

Dependensi Fungsional

Catatan: Bagaimana kalau dibalik?

Harga tidak menentukan barangnya, (karena

banyak barang mempunyai harga yang sama);

tapi satu jenis barang punya satu harga.

Nama_Brg

Kode

Nm_Pemasok

Kode_Pemasok

Dependensi Fungsional

•Perhatikan bagian ini:

Kode Nama_BrgKodeHargaKode Kd_Pemasok

•Kode Nm_pemasok

•Kd_PemasokNm_Pemasok

Ternyata, Kode menentukan lebih dari satu atribut. Notasinya dapat diganti sebagai berikut:

•Kode {Nama_Brg, Harga, Kd_Pemasok}

•Kode Nm_Pemasok (yang ini bagaimana?)

Dependensi Fungsional

•Contoh lain: DOSEN_PENDIDIKAN

•Sebuah atribut bisa tergantung lebih dari satu atribut. Contoh dalam kasus ini:

{No_Dosen, Strata} Lulus_Thn

No_Dosen Nama_Dosen Jns_Klmn Strata Lulus_Thn

D41 Lintang Pria S1 1987 D41 Lintang Pria S2 1990 D42 Murni Wanita S1 1988 D42 Murni Wanita S2 1990 D42 Murni Wanita S3 1999 D43 Rio Pria S1 1994

(4)

Dependensi Fungsional

{No_Dosen, Strata}

Lulus_Thn

No_Dosen saja tidak menentukan Lulus_Thn,

karena untuk D41 saja ada 2 tahun lulus.

Tapi pasangan No_Dosen dan Strata hanya

memiliki satu nilai tahun lulus.

Contohnya: {D42, S3}

1999

Dependensi Sepenuhnya

Dikatakan memiliki dependensi

sepenuhnya jika memiliki dua syarat

berikut:

1. B mempunyai dependensi fungsional

terhadap A

2. B tidak mempunyai dependensi

terhadap bagian dari A

Dependensi Sepenuhnya

Lulus_Thn tidak bergantung pada No_Dosen saja

karena:

1. Untuk dosen D41 memiliki 2 nilai Lulus_Thn yaitu: 1987 dan 1990.

2. Strata S1 memiliki 3 nilai, yakni: 1987, 1988, 1994

Dengan demikian, Lulus_Thn bergantung sepenuhnya terhadap gabungan No_Dosen dan Strata, dan tidak bergantung pada bagian dari {No_Dosen, Strata}.

•Oleh karena itu Lulus_Thn dikatakan memiliki

dependensi sepenuhnya terhadap {No_Dosen, Strata}

Dependensi Parsial

•Syaratnya adalah sebagai berikut:

1. B adalah atribut bukan kunci primer dan A adalah kunci primer

2. B memiliki dependensi terhadap bagian dari A Contoh:

Pada tabel DOSEN_PENDIDIKAN memiliki kunci

primer {No_Dosen, Strata}.

Atribut Jns_Klmn bergantung pada No_Dosen namun tidak pada Strata, dikatakan memiliki dependensi parsial.

Dependensi Total

•Dikatakan dependensi total jika memenuhi syarat berikut:

1. B memiliki dependensi fungsional terhadap A 2. A mempunyai dependensi fungsional terhadap B

•Notasinya : A ↔ B Seperti pada contoh :

•Nm_PemasokKd_Pemasok

•Kd_PemasokNm_Pemasok

•Dapat ditulis : Kd_Pemasok ↔ Nm_Pemasok

Dependensi Transitif

•Dikatakan memiliki dependensi transitif jika: 1. C memiliki dependensi fungsional terhadap B 2. B memiliki dependensi fungsional terhadap A

•Notasinya : A B C Pada contoh di depan:

•Kode Kd_Pemasok

•Kd_PemasokNm_Pemasok

•Kode Nm_Pemasok

Jadi ketiga dependensi ini sebenarnya dapat ditulis:

(5)

1. 1stNormal Form

•Atribut dengan nilai ganda (atau kelompok yang berulang-ulang) dihilangkan, menyisakan nilai tunggal (atau juga

null) pada setiap cell.

2. 2ndNormal Form

Dependensi parsial dihilangkan

3. 3rdNormal Form

Dependensi transitif dihilangkan

4. Boyce/Codd Normal Form

Semua anomali yang tersisa dari dependensi fungsional dihilangkan

5. 4thNormal Form

•Dependensi nilai ganda dihilangkan 6. 5thNormal Form

•Anomali yang tersisa dihilangkan

1NF (First Normal Form)

Sebuah relasi sudah berada di 1NF jika tidak

ada satu pun atribut dengan nilai ganda.

Jika Tabel dikonversi dari ERD, otomatis

sudah tidak ada nilai ganda (lihat cara

konversi data dengan nilai ganda)

Data Tidak Ternormalisasi

No_peg Nama_peg No_klien Nama_klien

E37 Nina K05 Martini

K08 Anton

K02 Sarmini

E38 Tono K04 Eka

K10 Andin

K24 Buyung

E39 Hadi K06 Mitha

K24 Buyung

K90 Indah

Data 1NF

No_peg Nama_peg No_klien Nama_klien

E37 Nina K05 Martini

E37 Nina K08 Anton

E37 Nina K02 Sarmini

E38 Tono K04 Eka

E38 Tono K10 Andin

E38 Tono K24 Buyung

E39 Hadi K06 Mitha

E39 Hadi K24 Buyung

E39 Hadi K90 Indah

2NF (Second Normal Form)

Syarat dari 2NF adalah:

•Sudah berada dalam bentuk 1NF

•Setiap atribut bukan kunci primer telah bergantung sepenuhnya pada kunci primer.

Hilangkan Dependensi Parsial, langkahnya:

•Ubahlah tiap dependensi parsial menjadi relasi, dengan kunci primer sebagai penentunya (baca lagi pengertian dependensi parsial)

•Ubah dependensi yang terkait langsung dengan kunci primer sebagai relasi tersendiri dan kunci primernya adalah kunci primer dalam relasi semula.

Menghilangkan Dependensi Parsial

Diandaikan terdapat sebuah relasi R dengan:

R(A,B,C,D)

Kunci Primer (A,B)

AD

Maka relasi R dapat digantikan dengan dua

buah relasi R1 dan R2 sebagai berikut:

R1(A,D) dengan Primary Key-nya (A)

R2(A,B,C) dengan Primary Key-nya (A,B) dan

Foreign Key-nya (A) Referensi R1

(6)

Menghilangkan Dependensi Parsial

Sehingga contoh kasus pada slide 27

dapat diubah menjadi:

•PEGAWAI(No_peg, Nama_peg)

•KLIEN(Id_klien, Nama_klien)

•PEGAWAI_KLIEN(No_Peg, Id_Klien)

Menghilangkan Dependensi Parsial

PEGAWAI KLIEN No_peg Nama_peg E37 Nina E37 Nina E37 Nina E38 Tono E38 Tono E38 Tono E39 Hadi E39 Hadi E39 Hadi Id_klien Nama_klien K05 Martini K08 Anton K02 Sarmini K04 Eka K10 Andin K24 Buyung K06 Mitha K24 Buyung K90 Indah

Menghilangkan Dependensi Parsial

PEGAWAI_KLIEN

Tips: pisahkan entitas objek dengan semua atribut yang melekat padanya dan buat tabel penghubung No_peg Id_klien E37 K05 E37 K08 E37 K02 E38 K04 E38 K10 E38 K24 E39 K06 E39 K24 E39 K90

3NF (Third Normal Form)

Syarat dari bentuk normal ketiga adalah:

•Sudah berada dalam bentuk normal kedua

•Tidak ada dependensi transitif (baca lagi pengertian tentang dependensi transitif)

Mudahnya, dependensi transitif di dalam

sebuah relasi adalah sebuah dependensi

fungsional di antara dua atau lebih atribut

yang bukan kunci primer

Menghilangkan Dependensi Transitif

Bila terdapat sebuah relasi R

R(A, B, C) dengan kunci primer (A)

B

C

Maka relasi R dapat digantikan dengan dua

buah relasi R1 dan R2 sebagai berikut:

R1(B, C) dengan kunci primer (B)

R2(A, B) dengan kunci primer (A) dan kunci

tamu (B) referensi R1

Menghilangkan Dependensi Transitif

Jika diaplikasikan untuk tabel

PEMASOK_BARANG pada slide 14, dapat

dihasilkan:

PEMASOK(Kd_Pemasok, Nm_Pemasok, Kota)

BARANG(Kode, Nama_Brg, Harga,

Kd_Pemasok)

(7)

BCNF (Boyce-Codd Normal Form)

•Suatu relasi sudah dalam BCNF bila

semua dependensi/ketergantungan

dalam relasi tersebut hanya terhadap

kunci.

•BCNF disebut juga sebagai 3,5NF dan

jarang terjadi karena pada umumnya

3NF sudah cukup.

Referensi

Dokumen terkait

Candidate Key merupakan atribut-atribut dalam suatu table yang mungkin dapat mengidentifikasikan secara unik suatu kejadian spesifik dari entity3. Jika satu kunci kandidat

Suatu relasi pada himpunan A dikatakan sebagai relasi ekivalen jika relasi tersebut bersifat refleksif, simetris, dan transitif. Dua anggota A yang berelasi oleh suatu

Manfaat dari metabolit primer dan sekunder yang terdapat dalam daun dan buah nipah dapat dikembangkan menjadi produk pangan fungsional dan sediaan farmasetika.. Kata kunci :

Contohnya, nilai atribut KodeDiv sebagai kunci asing pada relasi PEGAWAI harus mempunyai nilai dan tidak boleh null sesuai dengan referansinya yakni atribut KodeDiv pada

Dekomposisi ini dilakukan dengan cara membagi sebuah himpunan entitas menjadi dua atau lebih dengan pemisahan atribut..

Contohnya, jika dalam suatu relasi terdapat dua multivalued atribut, kita harus mengulang setiap nilai dari satu atribut dengan setiap nilai dari atribut lain, untuk menjaga

Hal ini berarti bahwa sebuah nilai KodeDep_Kar dalam sembarang tupel t 1 pada relasi KARYAWAN harus sesuai dengan nilai kunci primer DEPARTEMEN (atribut

/ kunci asing Satu atau gabungan sembarang atribut yang menjadi PK dalam relasi lain yang mempunyai hubungan secara logik Domain Himpunan nilai yang memenuhi syarat.. Schema