Kamis, 05 Juni 2014

Berkenalan Yuk dengan Basis Data!

PENGENALAN BASIS DATA

Hallo, apakabar sobat blogger? Saya harap sahabat blogger semua selalu dalam lindungan-Nya. Kali ini saya akan sedikit membagi ilmu saya tentang Basis Data yang saya telah pelajari pada satu semester ini. Ok, tanpa basa-basi mari kita mulai mengenal basis data yah :D.

Pengertian Data dan Informasi

Sahabat blogger pasti bertanya-tanya, apasih sebenarnya Basis Data itu? Eitts, sabar dulu ya sahabat blogger, kita mulai dari yang sederhana dulu
Data

Respresantasi untuk mewakili nilai fakta dunia nyata. Representasi data dapat berupa nilai numerik, alphanumerik, gambar, suara, video, dan lain-lain. Fakta dunia nyata dapat berupa barang, kejadian, aktivitas, perasaan dan semua tentang dunia nya. 

Informasi

Data yang telah dikelola dalam bentuk tertentu untuk memberikan makna atau arti bagi penerimanya. 
Kualitas data dan informasi dipengaruhi oleh hal-hal sebagai berikut:
•  Benar merepresentasikan dunia nyata, dan 
•  Tepat waktu, dan
•  Tepat penggunaan.

Pengertian Basis Data

Basis 

Markas / gudang, tempat berkumpul. 

Data 

Fakta yang mewakili suatu objek seperti manusia, barang, hewan peristiwa, keadaan dan sebagainya, yang direkam dalam bentuk angka, huruf simbol, teks gambar, bunyi atau kombinasinya. 
Kesimpulannya :

Basis Data merupakan informasi berasal dari kumpulan data yang disimpan secara terstruktur pada sebuah sistem.

Tujuan dibuatnya Basis Data

Sahabat blogger, dibawah ini adalah beberapa tujuan dari dibuatnya basis data diantaranya yaitu:

l Kecepatan & kemudahan (speed)
l Efisiensi ruang penyimpanan (space) 
l Keakuratan (accuracy)
l Ketersediaan (availability) 
l Kelengkapan (completeness) 
l Keamanan (security) 
l Kebersamaan pemakaian (sharability) 

Pengertian Sistem Basis Data (Data Base Management System)

Sistem basis data 
Sistem yang terdiri atas kumpulan file-file yang saling berhubungan dan dikelola oleh program (DBMS) yang memungkinkan beberapa pemakai dan atau program lain yang memiliki otoritas untuk mengakses dan memanipulasi data tersebut.

MODEL ENTITY-RELATIONSHIP 

Sahabat blogger, setelah kita memahami dan mengerti apa yang dimaksud dari basis data, selanjutnya kita akan mengenal bagaimana penggunaan basis data pada Model Entity Relationship.

Pengertian 

Model data konseptual tingkat tinggi untuk perancangan basis data. 

Komponen-komponen utama model ER 
 
Entitas (entity), Entitas memodelkan objek-objek yang berada diperusahaan/lingkungan. 
Relationship. Relationship memodelkan koneksi/hubungan di antara entitas-entitas. 
Atribut-atribut (properi-properti), memodelkan properti-properti dari entitas dan relationship. 
Konstrain-konstrain (batasan-batasan) integritas, konstrain-konstrain ketentuan validitas. 
 
Entitas 

Merupakan individu yang mewakili sesuatu yang nyata (eksistensinya) dan dapat dibedakan dari sesuatu yang lain 

Atribut
 
Pengertian 

 Sesuatu yang mendeskripsikan karakteristik (property) dari entitas tersebut. 

l Tipetipe atribut dapat dibedakan:
l Simple dan Composite 
l Single value dan multivalued 
l Derived attribute 

Simple dan Composite 

Atribut Simple 
yaitu suatu atribut yang tidak bisa dibagi menjadi bagian yg lebih kecil lagi. Contoh atribut simple adalah Jenis Kelamin. 

Atribut Composite
 yaitu suatu atribut yang dapat di bagi menjadi beberapa bagian. Contoh atribut composite Nama dapat di bagi menjadi nama depan dan nama belakang.

Single Value dan Multivalued

Atribut Single value 
yaitu suatu atribut yang bisa di isi paling banyak 1 nilai untuk setiap baris data. Contoh atribut single value adalah Jenis Kelamin. 

Atribut Multivalued 
yaitu suatu atribut yang bisa lebih dari 1 nilai yang sejenis untuk setiap baris data.

Derived Attribute 
Derived Attribute 
Yaitu suatu atribut yang nilainya didapatkan dari hasil pengolahan atribut lain. Contoh atribut derived adalah umur yaitu didapatkan dari perhitungan tanggal lahir dan tanggal sekarang.

Relasi
Relasi menggambarkan hubungan antara entitas satu dengan entitas yang lain sesuai dengan proses bisnisnya. Notasi relasi didalam diagram ER digambarkan dengan notasi belah ketupat. 
 




Derajat Himpunan Relasi

Berdasarkan jumlah entitasnya:

nary (Hanya me-relasi-kan 1 entitas) 


 Binary (Me-relasi-kan 2 entitas) 

 
ernary (Me-relasi-kan 3 entitas) 
 


 
Kardinalitas Relasi 

Kardinalias relasi menggambarkan banyaknya jumlah maksimum entitas dapat ber-relasi dengan entitas pada himpunann entitas yang lain 
Pada himpunan relasi biner, pemetaan kardinalitas relasi dibagi menjadi:

Satu ke Satu 
 


Relasi di atas menggambarkan bahwa untuk setiap entitas di himpunan entitas 
A berpasangan dengan maksimal 1 entitas di himpunan entitas B. Dari A ke B kardinalitasnya maksimal 1, dan dari B ke A kardinalitasnya maksimal 1. 
Oleh karena itu relasi ini berkardinalitas 1 ke 1

Satu ke Banyak 

 



Relasi di atas menggambarkan bahwa untuk setiap entitas di himpunan entitas A berpasangan dengan banyak entitas di himpunan entitas B. Dari A ke B kardinalitasnya maksimal adalah banyak, dan dari B ke A kardinalitasnya maksimal 1. Oleh karena itu relasi ini berkardinalitas 1 ke banyak

Banyak ke Satu
 








Relasi di atas menggambarkan bahwa untuk setiap entitas di himpunan entitas A berpasangan dengan maksimal 1 entitas di himpunan entitas B. Dari A ke B kardinalitasnya maksimal adalah 1, dan dari B ke A kardinalitasnya maksimal adalah banyak. Oleh karena itu relasi ini berkardinalitas banyak ke 1.

Banyak ke Banyak 
 



Relasi di atas menggambarkan bahwa untuk setiap entitas di himpunan entitas A berpasangan dengan maksimal banyak entitas di himpunan entitas B. Dari A ke B kardinalitasnya maksimal adalah banyak, dan dari B ke A kardinalitasnya maksimal adalah banyak. Oleh karena itu relasi ini berkardinalitas banyak ke banyak.

Diagram ER 

Definisi

Merupakan diagram model konseptual untuk menggambarkan struktur logis dari basisdata berbasis grafis. 
 

Notasi yang digunakan di Diagram ER adalah : 
Garis : Link yang menghubungkan atara Entitas dengan atribut, 
dan entitas dengan relasi atau entitas 
Elips dobel : Menunjukkan atribut yang multivalued 
Elips dengan garis terputus : Menunjukkan atribut turunan

Tabel - tabel mengenai ERD

 


KONVERSI ER KE BASIS DATA REALTIONAL

Sahabat blogger, kali ini kita akan memahami bagaimana caranya untuk mengkonversikan ER Diagram ke bentuk tabel. Saya harap sahabat blogger bisa mengerti dan paham pada bagian ini, karena pada bagian ini memang perlu sedikit kerja keras kita untuk memahaminya.

Pemodelan ER adalah pemodelan konseptual sebuah basis data relasional. Desain ER bisa di konversikan kedalam bentuk tabel fisik yang akan di simpan di dalam basis data. 

Himpunan Entitas Lemah
Himpunan Entitas Lemah tidak memiliki primary key dan selalu bergantung pada entitas lain. Notasi entitas lemah digambarkan dengan double persegi panjang, sedangkan relasi untuk himpunan entitas lemah digambarkan dengan double diamond. Diskriminator / key parsial adalah atribut – atribut yg dpt membedakan entitas – entitas yang terdapat di 
himpunan entitas lemah.

 


Relasi di atas menggambarkan bahwa seorang pegawai mendapatkan fasilitas tunjangan dari perusahaan tempat dia bekerja. Tunjangan dalam hal ini adalah entitas lemah. Tunjangan sebagai entitas tidak bisa berdiri sendiri, tunjangan harus bergantung pada entitas pegawai (* tidak akan ada tunjangan jika tidak ada pegawai). 

Spesialisasi dan Generalisasi

Spesialisasi  merupakan proses desain  top-down  dengan mendesain subgrouping didalam didalam himpunan entitas yang berbeda dari himpunan entitas. Tujuan dari spesialisasi adalah memberikan gambaran konseptual tentang perbedaan karakteristik dari himpunan entitas yang hampir serupa dengan konsep sub grouping / pengelompokan.
Sifat dari spesialisasi adalah inheritan atribut yaitu atribut pada level tinggi secara otomatis akan di turunkan pada level di bawahnya. Spesialisasi biasa dilambangkan dengan IS A

 



Generalisasi  merupakan proses desain  bottom-up  dengan mengkombinasikan jumlah himpunan entitas yang digunakan secara bersama sama. Spesialisasi dan generalisasi sama sama digambarkan dengan notasi IS A, yang membedakan adalah sudut pandangnya saja. Jika Spesialisasi kita mendefinisikan entitas secara umum kemudian mencari subgroup dari entitas tersebut, tetapi generalisasi memandang sebaliknya, dari adanya subgroup subgroup  yang berbeda kemudian di cari entitas umum yang mewakili 2 himpunan entitas tersebut.

Agregasi

Agregasi adalah enkapsulasi dari entitas entitas yang berelasi (*n-n). Pada umumnya terbentuk dari kardinalitas relasi banyak ke banyak. Didalam konsep  agregasi  terdapat istilah enkapsulasi relasi dari kedua entitas. Enkapsulasi di perlukan karena kedua himpunan entitas yang ber-relasi tersebut merupakan 1 kesatuan yang tidak bisa di pisah. Notasi agregasi di gambarkan dengan gambar persegi panjang yang membungkus himpunan entitas yang saling ber-relasi

Skema ER ke Tabel

Penurunan skema dimaksudkan untuk mengubah sebuah konsep hubungan entitas dan relasi kedalam bentuk fisik tabel tabel yang berelasi.
Secara umum penurunan diagram ER ke tabel memiliki aturan sebagai berikut :

•  Setiap himpunan entitas menjadi Tabel (* baik himpunan entitas kuat atau lemah) 
•  Setiap atribut menjadi kolom di tabel
•  Kardinalitas relasi akan menentukan jumlah tabel yang terbentuk (*akan di bahas di bawah lebih detail)

Representasi Atribut menjadi Kolom

Pada atribut bertipe simple , single dan  derived  direpresentasikan sama persis seperti diagram ER. Tetapi untuk atribut komposit dan multivalued mempunyai aturan tersendiri. 
Atribut  komposit  akan dipecah dengan membuat atribut terpisah untuk masing masing komponennya. Contoh atribut nama pada tabel mahasiwa, di pecah menjadi 2 kolom yaitu nama depan dan nama belakang.Atribut multivalued mengharuskan untuk di pecah menjadi 2 Tabel. Atribut multivalued M dari entitas E direpesentasikan oleh tabel terpisah EM. Perhatikan gambar di bawah yang menunjukkan bagaimana penurunan sebuah 
atribut multivalued : 
 


 Representasi Himpunan Entitas sebagai Tabel

Himpunan entitas kuat di representasikan kedalam tabel dengan kolom sama persis dengan atribut yang sudah di definisikan di diagram ER. 
Perhatikan gambar di bawah ini : 
 

Himpunan entitas lemah akan menjadi tabel tersendiri yang didalamnya ada kolom primary key yang merupakan identifikasi dari himpunan entitas kuat. Contoh di bawah menggambarkan himpunan entitas lemah di turunkan kedalam tabel.  

 



Hubungan kardinalitas dengan tabel yang terbentuk

Kardinalitas relasi dari Himpunan Entitas yang saling ber-relasi akan menentukan banyaknya tabel yang bisa di buat. Adapun aturannya sebagai berikut :
•  1 ke 1
Pilih primary key di 1 himpunan entitas untuk menjadi foreign key bagi himpunan entitas yang lain. 
•  1 ke banyak / banyak ke 1
Primary key pada Tabel berkardinalitas sedikit menjadi foreign key pada tabel berkardinalitas banyak. 
•  Banyak ke banyak
Digambarkan pada bab 3.7.1



Representasi Spesialisasi (IS A)

Ada 2 pendekatan yang dipakai didalam menurunkan spesialisasi kedalam tabel. 

Pendekatan 1
•  Bentuklah tabel untuk level entitas yg lebih tinggi
•  Bentuklah tabel untuk level entitas yg lebih rendah 
(*dengan memasukkan primary key  pada level yg lebih tinggi ke tabel dengan level yang lebih rendah)

Pendekatan 2 
•  Bentuklah tabel untuk tiap himpunan entitas dengan semua atribut lokal dan turunan.
•  Bisa jadi tabel pada level tinggi tidak perlu di simpan jika spesialisasi adalah total. Jika diperlukan bisa dibuat view yang menggabungkan tabeltabel spesialisasi. 

Representasi Agregasi 

Untuk merepresentasikan agregasi, buatlah tabel yang terdiri dari :
– Foreign key dari himpunan entitas yang berhubungan
– Setiap atribut deskriptif
– Atribut baru untuk primary key di tabel relasi

NORMALISASI

 “Sahabat blogger, setelah kita bisa mengkonversikan ER diagram kedalam bentuk tabel, ada beberapa tahap lagi agar ER Diagram dan Tabel kita menjadi lebih baik lagi, yaitu dengan cara normalisasi. Pasti sahabat blogger bertanya, apa sih sebenarnya normalisasi itu? Untuk menjawab pertanyaan dari sahabat blogger, dibawah ini akan dipaparkan mengenai normalisasi.

Definisi Normalisasi

Normalisasi adalah langkah-langkah sistematis untuk menjamin bahwa struktur database memungkinkan untuk general purpose query dan bebas dari insertion, update dan deletion anomalies yang dapat menyebabkan hilangnya integritas data (E.F. Codd, 1970)

Tujuan Normalisasi

normalisasi dilakukan terhadap desain tabel yang sudah ada dengan tujuan untuk meminimalkan redundansi (pengulangan) data dan menjamin integritas data dengan cara menghidari 3 Anomali Data: Update, Insertion dan Deletion Anomaly.

Bentuk Normal dan Langkah-Langkah Normalisasi

Bentuk Normal adalah sekumpulan kriteria yang harus dipenuhi oleh sebuah desain tabel untuk mencapai tingkat/level bentuk normal tertentu. Parameter yang biasanya digunakan dalam menentukan kriteria bentuk normal adalah Functional dependency & The Three Keys. Masing-masing bentuk normal memiliki kriteria dan level tertentu yang tidak 
mungkin dicapai tanpa memenuhi kriteria bentuk nomal level yang berada di bawahnya. Makin tinggi level bentuk normal yang dicapai maka kualitas desain tabel tersebut dinyatakan makin baik dan semakin kecil peluang terjadinya anomali dan redundansi data.
Normalisasi dilakukan dengan cara menerapkan Bentuk-Bentuk Normal secara bertahap dari level terendah sampai level yang dikehendaki. Walaupun ada beberapa bentuk normal namun jika desain tabel tertentu sudah memenuhi kriteria 3rd NF atau BCNF maka desain tabel itu biasanya dianggap sudah cukup normal.

Bentuk Normal Pertama (1st Normal Form)
Bentuk normal pertama atau First Normal Form  (1st NF) adalah bentuk normal yang memiliki level terendah. 
Kriteria 1st NF:

Tidak ada atribut (kolom) pada tabel yang bersifat multi-value
Sebuah atribut disebut bersifat multivalue jika dalam sebuah baris data pada kolom tersbut terdapat lebih dari satu nilai.
Tidak memiliki lebih dari satu atribut dengn domain yang sama 

Sebuah tabel dikatakan memiliki lebih dari satu atribut dengan domain yang sama jika pada tabel tersebut terdapat lebih dari satu kolom yang digunakan untuk menyimpan data yang jenisnya sama.
è Contoh (atribut multi-valued)
Misal data mahasiswa sbb:

 
Atau:

 

Tabel-tabel di atas tidak memenuhi syarat 1NF Didekomposisi  menjadi:

Ø Tabel Mahasiswa
 


Ø Tabel Hobi

 

 

è Contoh 2 (composite)
Jadwal Kuliah
KodeMK  
NamaMK
Dosen 
Kelas 
Jadwal 

Ø Dimana nilai pada atribut jadwal berisi gabungan antara Hari dan Jam.
Ø Jika asumsi hari dan jam memegang peranan penting dalam sistem basis data, maka atribut Jadwal perlu dipisah sehingga menjadi JadwalHari dan JadwalJam sbb:

Jadwal Kuliah
KodeMK
NamaMK
Dosen 
Kelas 
JadwalHari 
JadwalJam 

Bentuk Normal Ke Dua (2nd Normal Form)
Kriteria 2nd NF:
•  Memenuhi 1st NF
Desain tabel yang tidak memenuhi syarat 1st NF sudah pasti tidak akan memenuhi syarat 2nd NF
•  Tidak ada Partial Functional dependency 
Partial Functional dependency terjadi bila (B,C) adalah candidate key dan B ke A

Contoh 

Tabel berikut memenuhi 1NF tapi tidak termasuk 2NF:

nim 
mhs_nama 
mhs_alamat 
mk_kode 
mk_nama 
mk_sks 
nilai 

Ø Tidak memenuhi 2NF, karena {Mhs_nrp, mk_kode} yang dianggap sebagai primary key sedangkan:
 
{nim, mk_kode}         à  mhs_nama (karena mhs_nama tidak bergantung dengan mk_kode)
{nim, mk_kode}         à  mhs_alamat (karena mhs_alamat tidak bergantung dengan mk_kode)
{ nim, mk_kode}        à mk_nama (karena mk_nama tidak bergantung dengan mk_kode)
{ nim, mk_kode}        à mk_sks (karena mk_sks tidak bergantung pada nim)
{ nim, mk_kode}       à nilai

Ø Tabel di atas perlu didekomposisi menjadi beberapa tabel yang memenuhi syarat 2NF 
Functional dependencynya sbb:

fd1  (nimmk_kodenilai)  à Tabel Nilai
fd2  (nim, mhs_nama, mhs_alamat)  à Tabel Mahasiswa
fd3 (mk_kode, mk_nama, mk_sks)  à Tabel MataKuliah

Bentuk Normal Ke Tiga (3rd Normal Form)
Umumnya jika sebuah tabel telah memenuhi syarat bentuk normal ke tiga (3rd NF) maka tabel tersebut sudah dianggap cukup normal. Bentuk normal ke 3 adalah bentuk normal yang biasanya menjadi syarat minimum bagi sebuah desan tabel walaupun akan lebih baik jika juga memenuhi BCNF.
Kriteria 3rd NF:
•  Memenuhi 2nd NF Desain tabel yang tidak memenuhi syarat 2nd NF sudah pasti tidak akan memenuhi syarat 3rd NF
•  Tidak ada Transitive Functional dependency Transitive functional dependency terjadi bila A ke B dan B ke CTransitive dependency

Definisi:
Atribut Z pada relasi R dikatakan tergantung transitif pada atribut X, jika atribut Y tergantung pada atribut X pada relasi R dan atribut Z tergantung pada atribut Y pada relasi R. (XàY, YàZ, maka XàZ)

Contoh
Nrp 
Nama 
Alm_Jalan 
Alm_Kota 
Alm_Provinsi 
Alm_Kodepos 

Ø karena masih terdapat atribut non primary key (yakni alm_kota dan alm_Provinsi) yang memiliki ketergantungan terhadap atribut non primary key yang lain (yakni alm_kodepos):
alm_kodepos à {alm_Provinsi, alm_kota}

Sehingga tabel tersebut perlu didekomposisi menjadi:

· Mahasiswa (Nrp, nama, alm_jalan, alm_kodepos)
· Kodepos (alm_kodepos, alm_provinsi, alm_kota)

Bentuk Normal Boyce Codd (BC Normal Form)
Boyce Codd Normal Form  atau bentuk normal Boyce-Codd adalah 
bentuk normal yang levelnya di atas 3rd NF. 
Kriteria BCNF:
•  Memenuhi 3rd NF
Desain tabel yang tidak memenuhi syarat 3rd NF sudah pasti tidak akan memenuhi syarat BCNF
•  Untuk semua FD yang terdapat di tabel, ruas kiri dari FD tersebut adalah super key
Jika ada satu saja FD pada tabel dimana ruas kirinya bukan super key maka desain tabel tersebut belum memenuhi syarat BCNF. Solusinya adalah dengan melakukan dekomposisi tabel dan tetap mempertahankan konsistensi data seperti beberapa contoh pada sub bab sebelumnya

Bentuk-Bentuk Normal Lainnya
Selain bentuk-bentuk normal yang sudah diperkenalkan pada beberapa sub bab sebelumnya, masih ada beberapa bentuk-bentuk normal lain. 

Beberapa diantaranya adalah sebagai berikut:
1.  Bentuk Normal ke-4 (4th NF) diperkenalkan oleh Ronald Fagin pada tahun 1977
2.  Bentuk Normal ke-5 (5th NF) diperkenalkan oleh Ronald Fagin pada tahun 1979
3.  Domain/Key Normal Form (DKNF) diperkenalkan oleh Ronald Fagin pada tahun 1981
4.  Bentuk Normal ke-6 (6th NF) diperkenalkan oleh Date, Darwen dan Lorentzos pada tahun 2002.
Cukup sekian dulu yah sahabat blogger postingan saya kali ini mengenai Basis Data, semoga sahabat blogger bisa memaklumi apa bila postingan saya kali ini masih banyak kekurangannya dan semoga postingan saya kali ini bisa menambah wawasan sahabat blogger semua. Akhir kata saya mengucapkan terimakasih.

Sumber:
l Diktat Kuliah IK-330 Basis Data oleh Bapak Budi Laksono Putro S.Si, M.T.
l Blog Bapak Budi Laksono Putro S.Si, M.T.  : http://budi.staf.upi.edu/
l Website Ilmu Komputer UPI : http://cs.upi.edu/ 
l Website Kampus : http://upi.edu/ 
l Beberapa Referensi lainnya.





























Tidak ada komentar:

Posting Komentar