BASIS DATA
Referensi :Diktat IK 330 Basis Data
Budi Laksono Putro Dosen Ilmu Komputer UPI
Ilmu Komputer UPI
Pengenalan Basis Data
Nah pada thread terbaru ini, kita akan belajar yang namanya Basis Data. Mungkin teman-teman sering mendengar kata “Basis Data”, kalaupun jarang mungkin teman-teman sering mendengar kata “Database”. Nah disini kita akan mengenal lebih jauh apa itu Basis Data atau Database…
Seperti pepatah, “tak kenal maka
tak sayang”. Oleh karena itu, kita kenalan dulu yuk sama yang namanya Basis
Data. Basis Data disusun dari 2 kata yaitu basis dan data. Basis dapat
diartikan sebagai suatu tempat, markas, kumpulan yang memiliki tujuan yang sama (input – proses
– output) sedangkan data yaitu
representasi fakta dunia nyata. Jadi Basis data adalah adalah sekumpulan data yang disimpan secara sistematis di dalam
komputer dan dapat diolah atau dimanipulasi menggunakan perangkat
lunak untuk menghasilkan informasi.
Oh iya, bedakan pula
mana yang data, mana yang informasi. Data, adalah
respresentasi untuk mewakili nilai fakta dunia nyata. Informasi, adalah
data yang telah dikelola dalam bentuk tertentu untuk memberikan makna atau arti
bagi penerimanya.
Tidak semua bentuk penyimpanan
data secara elektronis bisa disebut basis data. Dan tujuan dari dibangunnya
basis data yaitu :
Mengapa sih kita harus
belajar tentang basis data ?? jawabannya ada dibawah ini…
Basis data
juga berkembang dari waktu ke waktu loh, dari pertama dibangun sampai sekarang,
lebih lengkap bisa dilihat digambar…
Data dan informasi mempunyai kualitas yang
dipengaruhi oleh :
•
Merepresentasikan fakta dunia nyata dengan Benar (akurat)
• Tepat waktu, dan
• Tepat penggunaan.
• Tepat waktu, dan
• Tepat penggunaan.
Data dapat diolah menjadi
informasi yang berguna bagi penggunanya, dan proses itu disebut siklus
informasi. Berikut adalah gambarannya…
Mungkin
teman-teman bertanya-tanya, apa sih tujuan dan kegunaan dari basis data.
Teman-teman tahu kan yang namanya lemari arsip, nah lemari arsip dan basis data
sesungguhnya memiliki prinsip kerja dan tujuan yang sama. Prinsip
utamanya adalah pengaturan data/arsip. Tujuan utama basis data dan
lemari arsip adalah kemudahan dan kecepatan dalam pengambilan
kembali data/ arsip.
• Kecepatan &
kemudahan (speed)
• Efisiensi ruang
penyimpanan (space)
• Keakuratan
(accuracy)
• Ketersediaan
(availability)
• Kelengkapan
(completeness)
• Keamanan (security)
• Kebersamaan
pemakaian (sharability)
• Perpindahan dari
komputasi ke informasi,
• Himpunan elemen data semakin banyak dan beragam, contohnya perpustakaan,
• DBMS mencakup bidang ilmu lain, contohnya :System operasi, bahasa pemrograman, teori komputasi, AI, logika, multimedia.
• Himpunan elemen data semakin banyak dan beragam, contohnya perpustakaan,
• DBMS mencakup bidang ilmu lain, contohnya :System operasi, bahasa pemrograman, teori komputasi, AI, logika, multimedia.
Database Management System (DBMS)
Hmm, bagaimana
cara kita mengelola dan memanipulasi basis data yang disimpan dalam komputer ?
Untuk menjawab pertanyaan tersebut kita membutuhkan suatu perangkat lunak yang
disebut system manajemen basis data atau Database
Management System (DBMS). Oh iya, DBMS juga mempunyai beberapa
karakteristik loh, diantaranya sebagai berikut :
• Software program
• Supplements operating sistem
• Manages data
• Queries data and generates reports
• Data security
• Data berdiri sendiri (Data Independence)
• Pengaksesan data efisien (Efficient data access)
• Integritas data dan keamanan terjamin (Data integrity and security)
• Administrasi data (Data administration)
• Dapat diakses bersamaan (Concurrent access )
• Recovery saat terjadi kegagalan (Crash recovery)
• Mengurangi waktu pembangunan aplikasi (Reduced application development time).
Gambar
disamping menjelaskan tentang komponen-komponen pada sebuah system basis data,
diantaranya :
• Perangkat keras • Sistem
operasi • Basis data
• DBMS (Database Management System)
• Pemakai
• Aplikasi lain
Model Basis Data
Berikut ini adalah
beberapa model basis data:
a. Relational
Model ini direpresentasikan dalam tabel dua dimensi, tabel-tabel tersebut
memiliki hubungan yang disebut dengan relasi. Model ini memiliki fleksibilitas
dan kecepatan yang tinggi.
b. Hierarchical
Memiliki struktur pohon dimana field hanya memiliki satu buah induk (parent),
masing-masing parent memiliki banyak child (anak). Model ini memiliki kecepatan
yang baik.
c. Network
Relationship dibuat menggunakan linked list (pointer). Berbeda dengan model
hierarchical satu anak dapat memiliki beberapa induk. Model ini memiliki
fleksibilitas yang tinggi.
d. Object oriented
Object Oriented Database adalah sebuah sistem database yang menggabungkan semua
konsep object oriented seperti pewarisan, abstraksi, enkapsulasi, dll. Model
ini dapat berinteraksi dengan baik dengan bahasa pemrograman berorientasi objek
seperti java dan C++.
Basis Data Relational
Disini kita
akan masuk kedalam model basis data relasional yang merupakan model yang paling
sederhana sehingga mudah digunakan dan dipahami oleh kita. Model ini menggunakan sekumpulan tabel
berdimensi dua ( yang disebut relasi atau tabel ), dengan masing-masing relasi
tersusun atas tupel atau baris dan atribut. DBMS yang bermodelkan relasional
biasa disebut RDBMS (Relational Data Base Management System).
Oh
iya, modul basis data ini dikemukakan pertama kali oleh EF Codd, seorang pakar
basis data. Dan modul basis data ini punya nama lain yaitu database relasi.
Tingkatan Data Dalam Database Relasi
- Karakter (Characters)
Karakter adalah bagian terkecil dalam database, dapat berupa karakter
angka, huruf, ataupun karakter-karakter khusus, seperti simbol-simbol.
- Field atau Attribute
Attribute adalah bagian dari record yang menunjukkan suatu item data yang sama
/ sejenis. Misalnya : field nama, file NIM dan lain sebagainya. Setiap field
harus mempunyai nama dan tipe data tertentu. Isi dari field di sebut Data
Value. Dalam table database, field ini disebut juga kolom.
- Record atau Tupple
Tuple/Record adalah kumpulan data value dari attributee yang berkaitan sehingga
dapat menjelaskan sebuah entity secara lengkap.
- Table/Entity ( entitas )
Entitas adalah sesuatu yang diidentifikasi dari suatu sistem database, bisa
berupa objek, orang, tempat, kejadian atau konsep yang informasinya akan
disimpan di database. Misal. Pada sistem database akademik, yang menjadi entity
adalah, mahasiswa, dosen, matakuliah dan lain-lain. Dalam aplikasi nantinya,
penggunaan istilah Entity sering di samakan dengan istilah Tabel. (Entity =
table). Disebut tabel, karena dalam merepresentasikan datanya di atur dalam
bentuk baris dan kolom. Baris mewakili 1 record dan kolom mewakili 1 field.
Dalam sistem database tradisional, entity/table ini disebut juga dengan
file.
- Database
Kumpulan dari tabel-tabel yang
saling berelasi, disusun secara logis, sehingga menghasilkan informasi yang
bernilai guna dalam proses pengambilan keputusan.
Dikarenakan
model relasional mudah digunakan, banyak produk DBMS terkenal yang
menggunakannya antara lain adalah.
1. DB2 (IBM)
2. Rdb/VMS (Digital Equipment Corporation)
3. Oracle (Oracle Corporation)
4. Informix (Informix Corporation)
5. Ingres (ASK Group Inc)
6. Sybase (Sybase Inc)
7. Dan masih banyak lagi
Bahasa Basis Data
Dalam bahasa basis data,
tentunya memiliki perintah-perintah yang dapat dikelompokan menjadi :
1.
Data Definition Languange (DDL)
DDL adalah, Data Definition Language, merupakan kumpulan perintah SQL yang
digunakan untuk membuat, mengubah dan menghapus struktur dan definisi metadata dari objek-objek database.
2.
Interactive Data Manipulation Manipulation
Languange (DML)
DML adalah Data
Manipulation Language, merupakan kumpulan perintah SQL yang digunakan
untuk proses pengolahan isi data di
dalam table seperti memasukkan, merubah dan menghapus isi data - dan tidak terkait dengan perubahan struktur dan
definisi tipe data dari objek database.
Entity Relationship Diagram
Fiuhh,
setelah berkutat dengan pengertian-pengertian sebelumnya, kita sampai ke bagian
ERD atau Entity Relationship Diagram. Teman-teman
pasti bertanya-tanya, apa sih ERD itu ? Nah disini kita akan belajar tentang
ERD.
Terus apa
tujuan dari ERD, yaitu untuk menyajikan data dan menjadikan data lebih mudah
dimengerti untuk khalayak, sehingga mempermudah perancangan dan pengaksesan
basis data. Dibawah ini merupakan contoh dari ERD. ERD merupakan suatu model untuk
menjelaskan hubungan antar data dalam basis data berdasarkan objek-objek dasar
data yang mempunyai hubungan antar relasi.
Komponen - komponen utama Entity Relationship Diagram
Agar dapat memahami ERD
dengan mudah, kita harus megetahui komponen-komponen pembangun dari ERD yaitu
entitas, atribut, relasi, dan kardinalitas.
1. Entitas (Entity)
Entity merupakan objek yang dapat
dibedakan dengan yang lain dalam dunia nyata. Dalam entity ada yang disebut
sebagai Entity set yaitu kumpulan dari entity yang sejenis.
Entitas dapat berupa objek konkrit/pasti
seperti orang, mobil ataupun objek abstrak seperti jadwal, tabungan dll.
Sebuah
entitas digambarkan dalam ERD berupa persegi panjang. Misal : entitas
Mahasiswa.
2. Atribut
Atribut
adalah karakteristik dari entity atau relationship, yang menyediakan penjelasan
detail tentang entiy atau relationship tersebut . atribut dalam ERD digambarkan
dalam bentuk oval.
Atribut terdiri dari beberapa tipe,
diantaranya yaitu :
a. Simple dan
Composite
Atribut
simpel merupakan atribut yang tidak dapat dibagi menjadi bagian yang lebih
kecil lagi sedangkan atribut komposit kebalikannya. Contoh :
b. 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. Contoh atribut mutlivalued value adalah
Alamat, No telp dan hobi.
c. Derivated Atribut
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. IPK yang didapatkan dari penjumlahan nilai
di bagi dengan jumlah sks yang diambil.
3. Relationship
Relationship
menggambarkan bagaimana entitas – entitas dengan atributnya saling berhubungan.
Notas relasi dalam ERD digambarkan dengan belah ketupat. Contoh :
Dilihat dari
jumlah entitas yang dihubungkan oleh sebuah relasi, maka kita bisa membaginya
menjadi 3 macam :
- Unary (hanya merelasikan 1 entitas)
- Binary (merelasikan 2 entitas)
- Ternary (merelasikan 3 entitas)
4. Kardinalitas Relasi
Kardinalitas relasi menunjukkan jumlah maksimum
entitas yang dapat berelasi dengan entitas pada himpunan entitas lain. Rancangan
basis data relasional hasil transformasi sendiri bergantung kepada desain awal
ERD yang telah dibuat. Pada ERD terdapat 3 jenis kardinalitas, yaitu One To One, One To Many, dan Many To
Many.
5. Key / Kunci
Key adalah satu atau gabungan dari beberapa atribut yang dapat membedakan semua row
dalam relasi secara unik. Macam key dibedakan jadi 3 = super
key, candidate key, primary key.
Selain komponen –
komponen utama tadi, masih ada loh komponen – komponen pembangun dari ERD yang
lain. Dan secara singkat dapat dilihat di gambar di bawah ini…
Tahapan Pembuatan ER Diagram
Setelah kita mengetahui berbagai komponen dalama
ERD, kita dapat menyimpulkan untuk membuat ER Diagram, dapat mengikuti urutan
tahapan berikut:
1.
Mengidentifikasikan dan menetapkan seluruh himpunan entity yang akan terlibat.
2.
Menentukan atribut-atribut dari setiap entity.
3.
Menentukan atribut primary key dari setiap entity.
4.
Menentukan relationship antar entity.
5. Menentukan
atribut-atribut dari setiap relationship (jika ada).
6.
Menentukan Cardinality Rasio.
7.
Menentukan Participation Constraint.
Bentuk normal pertama merupakan bentuk normal dengan lever terendah, dan diperlukan tahapan normalisasi berikutnya untuk mencapai kelebih normalan dan keakuratan data. Berikut adalah persyaratan untuk mencapai First Normal Form :
Untuk mencapai bentuk normal kedua, dibutuhkan beberapa persyaratan sebagai berikut :
Jika tabel telah berada dalam bentuk normal ke tiga ( Third Normal Form ) , maka tabel tersebut bisa dianggap cukup normal. Third Normal Form merupakan syarat minimum bagi sebuah desan tabel walaupun akan lebih baik jika juga memenuhi BCNF.
Berikut adalah persyaratan untuk mencapai bentuk normal ketiga ( 3NF ) :
Denormalisasi merupakan suatu proses untuk menggandakan data secara sengaja (sehingga menyebabkan redundansi atau perulangan data) untuk meningkatkan performa basis data, untuk meningkatkan kecepatan akses data atau memperkecil query cost.
1. Mempercepat proses query dengan cara meminimalkan cost yang disebabkan oleh operasi join antar tabel
2. Untuk keperluan Online Analytical Process (OLAP)
3. Dan lain-lain
Konsekuensi Denormalisasi :
Normalisasi
Normalisasi
merupakan sebuah teknik dalam logical desain sebuah basis data
yang mengelompokkan atribut dari suatu relasi sehingga
membentuk struktur relasi yang baik (tanpa redudansi).
Normalisasi adalah proses pembentukan
struktur basis data sehingga sebagian besar ambiguity bisa dihilangkan.
Adapun
tujuan dari normalisasi yaitu :
•
Untuk menghilang kerangkapan data
•
Untuk mengurangi kompleksitas
•
Untuk mempermudah pemodifikasian
data
Sebelum dinormalisasikan,
data diurai dalam bentuk tabeldianalisis berdasarkan persyaratan tertentu ke
beberapa tingkat.
Apabila
tabel yang diuji belum memenuhi persyaratan tertentu, maka tabel tersebut perlu
dipecah menjadi beberapa tabel yang lebih sederhana sampai memenuhi bentuk yang
optimal.
Tahap
Normalisasi dimulai dari tahap paling ringan (1NF) hingga paling ketat (5NF) Biasanya
hanya sampai pada tingkat 3NF atau BCNF karena sudah cukup memadai untuk
menghasilkan tabel-tabel yang berkualitas baik. Urutan: 1NF, 2NF, 3NF, BCNF,
4NF, 5NF
Sebuah tabel dikatakan baik
(efisien) atau normal jika memenuhi 3 kriteria sbb:
- Jika ada dekomposisi (penguraian) tabel, maka dekomposisinya harus dijamin aman (Lossless-Join Decomposition). Artinya, setelah tabel tersebut diuraikan / didekomposisi menjadi tabel-tabel baru, tabel-tabel baru tersebut bisa menghasilkan tabel semula dengan sama persis.
- Terpeliharanya ketergantungan fungsional pada saat perubahan data (Dependency Preservation).
- Tidak melanggar Boyce-Codd Normal Form (BCNF) (-akan dijelaskan kemudian-)
Bentuk - bentuk normal :
1.Bentuk Normal Tahap
Pertama (1st Normal Form / 1NF)
2.Bentuk Normal Tahap
Kedua (2nd Normal Form / 2NF)
3.Bentuk Normal Tahap
(3rd Normal Form / 3NF)
4.Boyce-Code Normal Form
(BCNF)
5.Bentuk Normal Tahap
(4th Normal Form / 4NF)
6.Bentuk Normal Tahap
(5th Normal Form / 5NF)
- • Bentuk Normal Pertama (1NF)
Bentuk normal pertama merupakan bentuk normal dengan lever terendah, dan diperlukan tahapan normalisasi berikutnya untuk mencapai kelebih normalan dan keakuratan data. Berikut adalah persyaratan untuk mencapai First Normal Form :
1. Tidak adanya atribut
multi-value, atribut komposit atau kombinasinya.
( atribut multi-value adalah atribut
yang bernilai ganda dan dapat dibagi lagi )
2. Mendefinisikan atribut
kunci.
3. Setiap atribut dalam
tabel tersebut harus bernilai atomic (tidak dapat dibagi-bagi lagi)
- • Bentuk Normal Kedua (2NF)
Untuk mencapai bentuk normal kedua, dibutuhkan beberapa persyaratan sebagai berikut :
1. Sudah memenuhi dalam
bentuk normal kesatu (1NF)
2.
Semua atribut bukan kunci hanya boleh tergantung
(functional dependency) pada atribut kunci
3. Jika ada ketergantungan
parsial maka atribut tersebut harus dipisah pada tabel yang lain
4.
Perlu ada tabel penghubung ataupun kehadiran foreign
key bagi atribut-atribut yang telah dipisah tadi
- • Bentuk Normal Ketiga (3NF)
Jika tabel telah berada dalam bentuk normal ke tiga ( Third Normal Form ) , maka tabel tersebut bisa dianggap cukup normal. Third Normal Form merupakan syarat minimum bagi sebuah desan tabel walaupun akan lebih baik jika juga memenuhi BCNF.
Berikut adalah persyaratan untuk mencapai bentuk normal ketiga ( 3NF ) :
1. Sudah berada dalam bentuk normal
kedua (2NF)
2. Tidak
ada ketergantungan transitif (dimana atribut bukan kunci tergantung pada atribut bukan kunci lainnya).
- • Normalisasi BCNF
Bentuk Normal Boyce-codd Normal Form lebih akurat dari 3NF
karena memiliki level ke akuratan yang lebih tinggi.
Persyaratan untuk memenuhi BCNF adalah sebagai berikut :
• Telah memenuhi bentuk normal ketiga ( 3NF )
jika tidak memnuhi 3NF maka tidak akan memenuhi BCNF
jika tidak memnuhi 3NF maka tidak akan memenuhi BCNF
• Untuk semua FD yang terdapat di tabel, ruas kiri dari FD
tersebut adalah super key
Denormalisasi
Denormalisasi merupakan suatu proses untuk menggandakan data secara sengaja (sehingga menyebabkan redundansi atau perulangan data) untuk meningkatkan performa basis data, untuk meningkatkan kecepatan akses data atau memperkecil query cost.
Denormalisasi berbeda dengan normalisasi. Denormalisasi dilakukan
setelah tabel dalam kondisi ‘cukup normal’ (mencapai level bentuk normal yang
dikehendaki). sedangkan normalisasi dimulai sejak tabel dalam keadaan tidak
normal atau belum cukup normal.
Tujuan Denormalisasi :
Tujuan Denormalisasi :
1. Mempercepat proses query dengan cara meminimalkan cost yang disebabkan oleh operasi join antar tabel
2. Untuk keperluan Online Analytical Process (OLAP)
3. Dan lain-lain
Konsekuensi Denormalisasi :
1. Perlu ruang
ekstra untuk penyimpanan data
2. Memperlambat pada saat proses insert, update dan delete sebab proses-proses
tersebut harus dilakukan terhadap data yang redundant (ganda)
Dari uraian diatas dapat disimpulkan bahwa denormalisasi harus dilakukan dengan bijak sebab walaupun memiliki beberapa keuntungan namun juga memiliki konsekuensi yang patut diperhitungkan.
Dari uraian diatas dapat disimpulkan bahwa denormalisasi harus dilakukan dengan bijak sebab walaupun memiliki beberapa keuntungan namun juga memiliki konsekuensi yang patut diperhitungkan.
Sekian postingan dari mimin sekarang, semoga bermanfaat bagi teman - teman semua ^_^ . Sorry buat long post nya :p