ASSALAMU ALAIKUM WR.WB
Hubungan ERD dengan
Normalisasi & Denormalisasi
Basis Data
KELOMPOK VI MIF W4 09
Diagram E-R berupa model datakonseptual,
yang merepresentasikan data dalam suatu
organisasi.
Merupakan diagram yang menggambarkan
hubungan (relationship) antar entitas (entity).
ERD menekankan pada struktur dan
relationship data.
Tiga notasi dasar yang bekerja pada model E-R yaitu :
Entitas Relasi Atribut
Merupakan obyek yang mewakili sesuatu dalam dunia nyata dan dapat dibedakan antara satu dengan lainnya (unique).
Memiliki atribut yang mendeskripsikan karakteristik dari objek tersebut.
Dapat berupa:
Fisik (mobil, rumah, manusia, pegawai dsb)
Abstrak/konsep (department, pekerjaan, mata kuliah dsb) Kejadian (pembelian, penjualan, peminjaman, dll)
Notasi :
Strong Entity (entitas kuat)
Himpunan entitas yg tidak memiliki ketergantungan dg entitas yang lain.
Notasi :
Varian Entitas :
Weak Entity (entitas Lemah)
Himpunan entitas yg keberadaannya ketergantungan dengan entitas yang lain. Himpunan entitas yg demikian tidak memp. atribut yg berfungsi
sebagai key yg benar-benar menjamin keunikan entitas.
Notasi dan contoh :
Varian Entitas :
tanggungan
Entitas tanggungan disebut sebagai entitas lemah karena jika data seorang pegawai dihapus maka data
tanggungannya juga akan terhapus. Keberadaan data tanggungan tergantung pada data di pegawai
karakteristik dari entity atau relationship yang menyediakan detail tentang entity atau relationship tersebut sehingga dapat dibedakan. Nilainya jarang berubah.
Merupakan karakteristik dari sebuah entitas (biasanya
berhubungan dengan field dalam sebuah tabel). Penentuan atribut bagi suatu entitas didasarkan pada relevansinya
terhadap entitas tersebut.
Attribut
Atribut dalam ERD
dilambangkan dengan
bentuk elips
Entitas Atribut
Pegawai NIP, Nama, Alamat, Agama, jenis kelamin Departemen No, Nama, lokasi
Macam-macam Atribut
Simple Attribute dan Composite Attribute
Single Valued Attribute dan Multi Valued Attribute
Mandatory Attribute
Derived Attribute (Attribut Turunan)
Key Attribute (Atribut Kunci)
Atribut sederhana/ Simple Attribute : atribut yang tidak dapat dibagi-bagi menjadi atribut yang lebih mendasar. Contoh : atribut harga dari entity barang.
Atribut komposit/ Composite Attribute : atribut yang terdiri dari beberapa atribut yang lebih mendasar. Contoh : Entity
mahasiswa memiliki atribut nama yang terdiri dari nama depan (first name), nama tengah (middle name) dan nama belakang (last name).
Atribut Berharga Tunggal (Single-valued Attribute) : atribut yang hanya mempunyai satu harga untuk suatu entitas tertentu.
Contoh : atribut umur.
Atribut Berharga Banyak (Multi-valued Attribute) : atribut yang dapat terdiri dari sekumpulan harga untuk suatu entitas
tertentu.
Contoh : atribut hobi.
Single Valued Attribute dan Multi Valued
Attribute
Atribut Derivatif : suatu atribut yang dihasilkan dari atribut lain. Contoh : atribut umur yang dapat dihasilkan dari atribut
tgl_lahir.
Satu atau beberapa atribut yang mempunyai nilai unik
sehingga dapat digunakan untuk membedakan data pada
suatu baris/record dengan baris lain pada suatu entitas
Macam key attribute:
Superkey Candidat Key Primary key
9/4/2011
Basis data MIF W4-09 14
Superkey: satu atau gabungan beberapa atribut yang dapat membedakan setiap baris data dalam sebuah tabel secara unik
Contoh Superkey untuk entitas pegawai:
NoKTP, Nama, Alamat, JenisKel, Gaji NoKTP, Nama, Alamat, JenisKel NoKTP, Nama, Alamat
NoKTP, Nama
Nama (jika dapat dijamin kalau tidak ada nama yang sama antara satu baris dengan baris
yang lain)
NoKTP
Candidat Key: superkey yang jumlah atributnya paling sedikit
Contoh candidat key untuk entitas pegawai
Nama (jika dapat dijamin kalau tidak ada nama yang sama antara satu baris dengan baris
yang lain)
NoKTP
Primary key: suatu candidat key yang dipilih menjadi kunci utama karena sering dijadikan acuan untuk mencari informasi, ringkas, menjadi keunikan suatu baris
Contoh : NoKTP antara satu pegawai dengan pegawai lain pasti berbeda, dalam hal ini
noKTP dapat digunakan sebagai suatu key
Simbol-Simbol Atribut (oval)
nama_atribut nama_atribut bernilai ganda nama_entity nama_atribut_komposit nama_atribut_derivatif nama_atribut_kunci nama_atribut nama_atribut nama_atributRelasi
Hubungan antara beberapa entitas
Notasi :
Relasi kuat:
Macam Relasi
Unary : relasi dengan 1 entitas
Binary: relasi antara 2 entitas
One-to-one (1:1)
One-to-many (1:N) atau many-to-one (N:1) Many-to-many (M:N)
employee
supervison
supervisor supervise employee work_on company
employee work_on brunch job
employee_id
employee_name
title level
Cardinality Ratio
Menjelaskan jumlah keterhubungan satu entity dengan entity yang lainnya. (1 : 1) : satu entitas pada tipe entitas A berhubungan dengan paling banyak
satu entitas pada tipe entitas B dan juga sebaliknya. Contoh : seorang manager hanya memimpin satu departemen dan begitu sebaliknya.
M1 M2 M3 manager R1 R2 R3 manages D1 D2 D3 departement
Cardinality Ratio (lanj)
(1 : N / N : 1) : suatu entitas di A dihubungkan dengan sejumlah entitas di B. Contoh : banyak karyawan berkerja untuk satu depertement atau satu
departement memiliki banyak karyawan yang bekerja untuknya.
E1 E2 E3 E4 E5 E6 employee R1 R2 R3 R4 R5 R6 works_for D1 D2 D3 departement
Cardinality Ratio (lanj)
(M : N) : setiap entitas A dapat berhubungan dengan banyak entitas B dan sebaliknya setiap entitas B juga dapat berhubungan dengan banyak entitas A. Contoh : satu proyek mempunyai banyak karyawan, satu karyawan boleh bekerja di beberapa proyek.
E1 E2 E3 E4 employee R1 R2 R3 R4 R5 R6 works_on P1 P2 P3 project
Symbol E-R Diagram
Symbol ______ = Entity Keterangan = Weak Entity = Relationship = Identifying Relationship = Atribut = Atribut Kunci Symbol Keterangan = Atribut Komposit = Atribut Derivatif E1 R E2 = Total Participation Of E2 In RSebuah upaya untuk memperoleh sebuah basis data dengan struktur yang baik (ruang penyimpanan yang efisien)
dengan cara menerapkan sejumlah aturan (bentuk normal) pada setiap tabel yang menjadi anggota basis data tersebut.
Agar data yang ada tidak redundan dan memiliki data integrity yang kuat sehingga ketika kita melakukan relasi
antara tabel akan dengan mudah kita menjaga data integrity dan mendapatkan datanya.
Redundansi data (ruang penyimpanan)
Anomalies (penyimpangan dalam proses modifikasi data)
o Insert Anomalies
o Update Anomalies
o Delete Anomalies
Redundansi Data
redundan normalisasi
Insert Anomalies
Bagaimana jika kategori diisi ‘minuman ringan’
sedangkan rak diisi ‘A.1’ ?
Update Anomalies
Bagaimana jika kategori ‘mie instan’ ingin diganti dengan ‘makanan ringan’ ?
Delete Anomalies
Bagaimana jika barang ‘fanta’ dihapus?
semua data yang termasuk dalam kategori ‘minuman ringan’ akan ikut terhapus !
Pada sejumlah kasus, penerapan normalisasi secara ketat (strict) dapat mengakibatkan menurunnya performansi pemanfaatan basis data.
Normalisasi digunakan saat melakukan perancangan basis data, dengan pertimbangan tertentu normalisasi ini dapat 'dilanggar‘.
Pelanggaran Normalisasi basis data disebut dengan Denormalisasi.
Satu-satunya alasan mengapa kita boleh melakukan denormalisasi adalah pertimbangan performansi.
Jika performansi yang kita peroleh bisa menjadi jauh lebih baik, maka normalisasi yang telah dilakukan cukup beralasan untuk dilanggar.
Normalisasi akan meningkatkan data integrity tetapi juga akan meningkatkan query complexity.
Denormalisasi akan mengurangi data integrity dan juga akan mengurangi query complexity
Pada basis data relational, redundansi tidak bisa dihilangkan sama sekali khususnya redundansi pada atribut-atribut yang berfungsi sebagai key primer.
Karena dengan inilah keterhubungan antara tabel satu dengan yang lain dapat terakomodasi
Relasi antar tabel tidak akan ada jika redundansi dihilangkan sama sekali.
Akan tetapi redundansi juga harus diminimalisir karena berpotensi mengganggu integritas basis data.
Khususnya pada saat terjadi operasi perubahan data yang tidak dijalarkan ke tabel-tabel lain yang berhubungan
Performansi dapat ditingkatkan dengan mengendalikan redundansi untuk mengurangi perhitungan, kompleksitas perintah dan jumlah tabel yang harus dilibatkan (join).
Untuk itu digunakan Denormalisasi basis data.
Any Question?
Atribut yang terderivasi (atribut turunan) Atribut yang berlebihan
Tabel rekapitulasi (summary table)
Atribut yang nilainya bisa diperoleh dari
nilai-nilai yang sudah ada pada atribut lain
Tampilkan berapa banyak matakuliah yang sudah diambil oleh mahasiswa tertentu !
select count(*) from mengambil where NIM=‘04523356’;
Dari contoh sebelumnya, bagaimana jika data
mahasiswa sangat banyak sedangkan proses untuk
menampilkan jumlah matakuliah, jumlah sks
ataupun IPK sering dilakukan?
membutuhkan waktu yang lama !
Untuk itu perlu ditambahkan atribut baru pada
tabel mahasiswa (total_sks, total_matkul,ipk)
Atribut terkodekan (encoded attribute)
Atribut gabungan (concatenated attribute)
Atribut tumpang-tindih (overlapping attribute)
Atribut bermakna ganda (alternate attribute)
Atribut yang memiliki kode tambahan yang menunjukkan beberapa kondisi lainnya
Contoh :
id_mk di tabel kuliah yang didalamnya sudah terkandung
data program studi. Data program studi ini sebenarnya tidak diperlukan lagi karena sudah ada atribut prog_studi di tabel kuliah
Kode kuliah simbada :
523
044249/4/2011
Basis data MIF W4-09 49
Tapi akan menjadi aneh jika kode matakuliah tidak
mengikuti format aturan penulisan yang ada. Untuk
itu kita bisa lakukan denormalisasi dengan tetap
menuliskan kode matakuliah seperti di atas.
Atribut dalam domain komposit Contoh :
atribut nim di tabel mahasiswa merupakan gabungan dari
tahun masuk/angkatan dengan program studi dan no urut mahasiswa. Dengan demikian atribut ini sebenarnya tidak atomik karena masih bisa dibagi lagi
NIM : 04523500
Atribut berlebihan : atribut gabungan
Sama hal nya dengan atribut terkodekan, akan
menjadi aneh jika nomor mahasiswa tersebut
hanyalah nomor urut. Tentu hal ini akan
membutuhkan informasi lebih tentang angkatan
dan terdaftar di jurusan mana mahasiswa tersebut.
Atribut dengan nilai yang tidak sepenuhnya ekslusif Contoh :
atribut semester di tabel kuliah berisikan :
‘1’ matakuliah ganjil ‘2’ matakuliah genap
‘3’ matakuliah ganjil & genap
nilai ‘3’ mencakup semester genap dan ganjil sekaligus (jadi tidak ekslusif).
9/4/2011
Basis data MIF W4-09 54
Jadi sebaiknya matakuliah dimasukkan dua kali, jika itu
dilaksanakan di semester ganjil dan genap. Tentu saja hal ini melanggar aturan normalisasi (redundansi), tapi untuk
performansi hal ini dapat ‘dilanggar’
Atribut yang memiliki arti berbeda tergantung kelompok entitasnya
Contoh :
Di tabel dosen terdapat atribut gaji. Bagi dosen tetap atribut
ini berisi gaji tetap perbulan, sedangkan bagi dosen tidak tetap gaji ini berisi insentif mengajar tiap sks.
Jika gaji dosen harus dibedakan, maka harus disediakan 2 buah atribut yakni gaji_tetap dan gaji_tidak_tetap.
Walaupun sama-sama berisi tentang jumlah gaji yang diterima dosen, hal ini tentu saja melanggar aturan
normalisasi karena ada blok data yang kosong. Tetapi sekali lagi, denormalisasi dalam hal ini boleh dilakukan.
Wasalamualaikum wr.wb
Semoga bermanfaat dan memenuhi standart penilaian baik dari bapak dosen BASIS DATA yaitu :
R.Dadan Achmad Hamdan NPM : 09402240
Yudhi Supriatna NPM : 09402483
Ujang Wandi NPM : 09402255
Salman Hafidz NPM :
Ihsanudin NPM : 09402444