entity relational model - .atribut deskriptif: atribut yang tidak menjadi primary key, ... atribut

Download ENTITY RELATIONAL MODEL - .Atribut deskriptif: atribut yang tidak menjadi primary key, ... atribut

Post on 31-Mar-2019

215 views

Category:

Documents

0 download

Embed Size (px)

TRANSCRIPT

NORMALISASI

Dr.Budi Setiyono, MT

Perancangan basis data

Entity Relation Diagram (ERD)

Identifikasi entitas table

Entitas table

Normalisasi

Identifikasi keterkaitan field dalam suatu table table

Table table normal

Key dan atribut

Jenis key

Superkey

Satu atau lebih atribut yang dapat membedakan setiap baris data secara unik

Contoh :

(nim, nama_mhs, almaat_mhs, tgl_lahir)

(nim, nama_mhs) dan (nim)

Key dan atribut (ljt)

Candidate key Kumpulan atribut minimal yang dapat

membedakan setiap baris data dalam sebuah table secara unik.

Tidak boleh berisi atribut atau kumpulan atribut yang telah menjadi superkey yang lain sehingga setiap candidate key pasti superkey, tetapi tidak sebaliknya.

Contoh :

(nim)

(nama_mhs) : jika dapat menjamin keunikan untuk setiap baris

Key dan atribut (ljt)

Primary key

Salah satu candidate key (jika lebih dari satu) dapat dijadikan primary key, dengan pertimbangan :

key tersebut lebih sering dijadikan acuan

lebih ringkas

jaminan keunikan key tersebut lebih baik.

Tipe-tipe atribut

Atribut deskriptif :

atribut yang tidak menjadi primary key, misal nama_mhs, tgl_lahir.

Atribut sederhana

(simple attribute)

atribut atomic, tidak dapat pecah-pecah (break down) lebih lanjut,missal nim, nama_mhs.

Tipe-tipe atribut (ljt)

Atribut komposit (composit attribute) :

atribut yang masih memungkinkan dipecah menjadi beberapa atribut lain, missal alamat_mhs dapat dpecah menjadi kota, jalan, kode_pos

Atibut bernilai tunggal (single valued attribute) :

ditujukan pada atribut yang paling banyak mempunyai satu nilai pada setiap baris.

Atribut bernilai ganda (multivalued attribute) :

atribut yang dapat diisi dengan lebih dari satu nilai, asalkan sejenis. Misal penambahan atribut pada table mhs akan dapat diisi dengan beberapa jenis hobi.

Tipe-tipe atribut (ljt)

Mandatory attribute :

Atribut yang harus ada isinya,misal nim, nama_mhs . Tidak boleh bernilai Null (note : Null tidak sama dengan spasi)

Atribut turunan (derived attribute) :

atribut yang nilainya diperoleh dari atribut lain. Misal penambahan atribut angkatan dan ip pada table mhs. (note : biasanya tidak diperlukan)

Functional Dependencies

Definisi

Jika diberikan sebuah table T dengan minimal 2 atribut A dan B, maka notasi

A B diartikan sebagai A secara

fungsional menentukan B atau

B secara fungsional tergantung pada A

jika dan hanya jika untuk setiap kumpulan baris (record) pada table T, apabila terdapat 2 baris data dengan nilai A yang sama, dipastikan bawa B juga sama.

Functional Dependencies KF yang terjadi misalnya :

nim nama_mhs atribut nama_mhs hanya

bergantung pada atribut nim, berarti untuk setiap nilai nim yang sama, dipastikan bahwa nama_mhs juga sama.

MataKuliah, nim nilai Walaupun tidak dapat secara

eksplisit ditunjukan bahwa jika matakuliah dan nim yang sama pasti nilai juga sama.

Juga bisa ditunjukan untuk non KF, misal

MataKuliah nim Atribut nim tidak tergantung

pada atribut MataKuliah

Kriteria table yang baik

Sebuah table dikategorikan baik (normal) jika telah memenuhi 3 kriteria berikut:

Jika ada dekomposisi (penguraian) table, maka dekomposisinya harus dijamin aman (Lossless-Join decomposition)

Terpeliharanya ketergantungan fungsional pada saat perubahan data (Dependecy Preservation)

Tidak melanggar Boyce Code Normal Form (BCNF)

Jika kriteria ketiga tidak dapat terpenuhi, maka paling tidak table tidak melanggar bentuk normal tahap ketiga.

Losless-Join Decomposition

Syarat : hasil dekomposisi jika digabungkan akan kembali menjadi table semula.

Contoh (lossy-join decomposition)

Misal Table ABC dengan KF : A B dan B C

Losless-Join Decomposition

Jika table ABC asal row 4 diganti

KF : A B dan B C tidak dilanggar

Dekomposisi yang Losless Decomposition

Closure dari Functional Dependencies

Tidak memungkinkan untuk me- list semua KF yang mungkin dalam suatu table.

Kumpulan KF yang diimplikasikan oleh sekumpuilan KF yang lain disebut sebagai ketertutupan dari S closure(S) atau S+.

Contoh : {a} {b}; {b} {c}; maka {a} {c} disebut KF transitif via {b}

Algoritma untuk menghitung S+ dari S diusulkan oleh Armstrong inferensi

Closure dari Functional Dependencies

Misal terdapat variable khayal A,B,C yang berisi kumpulan kolom dari relasi R dengan 8 field {s,t,u,v,w,x,y,z}; A={s,t}, B={u,v}, C={w,x}, D={y,z}. Inferensi amstrong didefinisikan :

refleksifitas : bila B subset dari A, maka AB

Augmentasi : bila AB, maka ACBC

Transitivitas : bila AB dan BC, maka AC

Self determinitation : AA

Dekomposisi : bila ABC, maka AB dan AC

Union : bila AB dan AC, maka ABC

Komposisi : bila AB dan CD, maka ACBD

Closure dari Functional Dependencies

Contoh, misal ada relasi R1 dengan 6 kolom {s,t,u,v,w,x} dengan KF :

{s} {t,u}; {t} {w}; {u,v} {w,x}

bisa disimpulkan KF {s,v} {x} dari inferensi :

1. {s} {t,u} (diberikan)

2. {s} {u} (aturan dekomposisi)

3. {s,v} {u,v} (aturan augmentasi)

4. {u,v} {w,x} (diberikan)

5. {s,v} {w,x} (transitivitas dari 3 dan 4)

6. {s,v} {x} (aturan dekomposisi)

DEPENDENCY PRESERVATION (Pemeliharaan ketergantungan)

Perubahan pada data harus dapat menjamin tidak akan menghasilkan inkonsistensi data yang mengakibatkan terlanggarnya KF yang telah terbentuk

Perubahan yang terjadi tersebut juga harus efisien Contoh :

Jika table nilai ditambah atribut nama_mhs dan terjadi perubahan data pada table mhs,maka perubahan tersebut harus dijalarkan ke table nilai, sehingga KF selalu terjaga.

Analisa tabel berikut :

NRP Nama Alamat KodeJur NamaJur Kajur

M100 Joko Surabaya 1002 IF Rianto

M101 Arianto Surabaya 1006 Ekonomi Suprapto

M105 Adrian Sidoarjo 1002 IF Rianto

M107 Tuti S Pasuruan 1008 Hukum Sigit

Bentuk Normal tahap pertama

Jika sebuah table tidak memiliki atribut bernilai banyak (multivalued attribute) Apabila terdapat

attribute yang bernilai banyak, harus didekomposisi Contoh

Bentuk Normal tahap pertama

Table mhs harus di dekomposisi (tiga alternatif)

Alternatif satu Masing-masing hobi dijadikan satu record, (tabel

tersebut terdapat 6 record)

Alternatif dua Hobi dipecah menjadi hobi1, hobi2, dan

seterusnya (dari tabel terdapat 7 kolom)

Alternatif tiga Table mhs (nim, nama_mhs, alamat, tgl_lahir)

Table hobi (nim, hobi)

Bentuk Normal tahap kedua

Jika atribut yang bukan primary key mempunyai ketergantungan fungsional (KF) pada key primer secara utuh.

Contoh : Tabel nilai punya primary key {kode, nim}

Table nilai (kode, nim, nilai) KF : kode, nim nilai

Jika table nilai ditambah atribut nama. Maka :

Table nilai (kode, nim, nama_mhs, nilai) KF : kode, nim nilai;

nim nama_mhs.

Mengakibatkan terlanggarnya Bentuk normal kedua, karena nama hanya tergantung secara parsial terhadap primary key.

Bentuk Normal tahap ketiga

Merupakan bentuk alternatif, jika BCNF tidak dapat terpenuhi.

Jika untuk setiap KF dengan notasi X A,

dimana A mewakili semua atribut tunggal dalam table yang tidak ada di dalam X, maka : X harus superkey dari table tersebut

Atau A merupakan bagian dari primary key pada table tersebut

Bentuk Normal tahap ketiga

Contoh :

Jika Table mhs (nim, nama_mhs, alamat, tgl_lahir) dimana atribut alamat dipisah menjadi atribut jalan, kota, dan kode_pos

Jika Table mhs (nim, nama_mhs, jalan, kota,kode_pos, tgl_lahir)

Tidak memenuhi bentuk normal ketiga. KF baru yang muncul : jalan, kota kode_pos

{jalan, kota} bukan merupakan superkey. Sebagai solusi : table mhs didekomposisi menjadi table mhs dan table alamat :

Table mhs (nim, nama_mhs, jalan, kota, tgl_lahir)

Table alamat (alamat, kota, kode_pos)

Bentuk Normal tahap keempat dan kelima

Bentuk normal keempat berkaitan dengan sifat ketergantungan banyak nilai, yang merupakan pengembangan dari ketergantungan fungsional.

Bentuk normal kelima merupakan ketergantungan relasi antar table

BOYCE-CODD NORMAL FORM (BCNF)

Syarat : Jika untuk semua KF dengan notai X Y, maka X harus

merupakan super key pada table tersebut. Jika tidak, table harus didekomposisi sedemikian hingga X menjadi super key dari table-table hasil dekomposisi.

Contoh : Pada table universal (not BCNF) terdapat 4 KF minimum, yaitu : Nim nam_mhs, alamat, tgl_lahir Kode_kul MataKuliah, sks, semester, waktu, ruang,

nama_dos Nama_dos alamat_dos Nim, kode_kul nilai

Table nilai (kode_kul, nim, nilai) Keempat table dalam kondisi BCNF.

Keuntungan Normalisasi

Keuntungan bentuk normal

Efek penghapusan tidak akan menghilangkan informasi yang ada

Efek penambahan data insert tidak fleksibel

Efek penghapusan ?

Efek penghapusan ?