ENTITY RELATIONAL MODEL -...
Transcript of ENTITY RELATIONAL MODEL -...
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.