Pada kesempatan kali ini saya
akan menjelaskan apa itu Basis Data dan apa saja yang dipelajari dalam Basis
Data.
A.
PENGENALAN BASIS DATA
1.
Pengertian
Basis Data
Sebelum
berbicara pengertian Basis Data kita perlu tahu dulu apa definisi-definisi
dalam Basis Data.
·
Data
Data adalah representasi untuk mewakili fakta di dunia
nyata. Representasi dapat berupa nilai numerik, alphabet, suara, video dll.
Fakta di dunia nyata dapat berupa barang, kejadian, aktivitas dan semua
kejadian yang ada di dunia nyata.
·
Informasi
Informasi adalah data yang dikelola dalam bentuk
tertentu untuk memberikan makna atau arti bagi penerimannya.
·
Basis
Basis adalah sebuah sistem dimana sistem tersebut
meliputi input -> proses -> output
·
Basis Data
Basis data sendiri dapat di definisikan dalam sejumlah
sudut pandang
seperti :
a.
Himpunan kelompok data/arsip yang saling berhubungan
yang diorganisasi sedemikian rupa agar kelak dapat dimanfaatkan kembali dengan
cepat & mudah.
b.
Kumpulan data yang saling berhubungan yang
disimpan secara bersama sedemikian rupa dan tanpa pengulangan/penumpukan
(redundansi), untuk memenuhi berbagai kebutuhan.
c.
Kumpulan file/tabel/arsip yang saling
berhubungan yang disimpan dalam media penyimpanan elektronis.
2.
Tujuan
dibangunnya Basis Data
Tujuan
dibangunnya basis data adalah sebagai berikut :
• Kecepatan & kemudahan (speed)
• Efisiensi ruang penyimpanan (space)
• Keakuratan (accuracy)
• Ketersediaan (availability)
• Kelengkapan (completeness)
• Keamanan (security)
• Kebersamaan pemakaian (sharability)
3.
Sistem
Basis Data (DBMS)
Perangkat
lunak yang digunakan untuk mengelola dan
memanggil query basis data disebut
sistem manajemen basis data (Database Management System, DBMS). DBMS memiliki karakteristik sebagai berikut:
•
Software program
•
Supplements operating sistem
•
Manages data
•
Queries data and generates reports
•
Data security
Sistem
basis data adalah 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. Kelebihan pemakaian DBMS :
• 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)
4.
Basis
Data Relasional
Model
Relasional merupakan model yang paling sederhana sehingga mudah digunakan dan
dipahami oleh pengguna. 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). Model database ini dikemukakan
pertamakali oleh EF codd, seorang pakar basisdata. Model ini sering disebut juga dengan database
relasi.
5.
Bahasa
Basis Data
Terdapata
beberapa bahasa Basis Data sebagai berikut :
·
Data
Definition Language (DDL)
DDL adalah perintah-perintah yang biasa digunakan oleh
pengguna basis
data untuk mendefinisikan skema ke DBMS.
·
Interactive
Data Manipulation Language (DML)
DML adalah perintah-perintah yang digunakan untuk
mengubah, manipulasi dan mengambil data pada basis data.
·
Transaction
control
Transaction
control adalah bahasa basis data
yang mengatur transaksi yang dilakukan oleh Data Manipulation Language (DML).
·
Embedded
and Dinamic SQL, contoh C,C++,Java, Cobol, Pascal, etc.
·
Authorization,
untuk mendefinisikan hak akses spesifik terhadap objekobjek basis data.
A. ENTITY RELATIONSHIP MODEL
1. Pengertian
Model Entity-Relationship adalah
model data konseptual tingkat tinggi untuk perancangan basis data. Model data
konseptual adalah himpunan konsep yang mendeskripsikan struktur basis data,
transaksi pengambilan dan pembaruan basis data.
2. Komponen-Komponen Utama ER
Komponen-komponen utama ER adalah :
·
Entitas
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.
Contoh: tempat (ruangan , kantor, rumah,
dll),kendaraan (mobi, motor, becak, dll)
Entitas baisa direpresentasikan dalam bentuk persegi
panjang.
Misal :
- Entitas Mobil
·
Atribut
Atribut adalah karakteristik dari entity atau
relationship, yang
menyediakan penjelasan detail tentang
entiy atau relationship
tersebut . atribut
dalam ERD digambarkan
dalam bentuk oval.
Jenis Key :
- Super Key
- Candidat Key
- Primary Key
·
Relasi
Relasi adalah hubungan yang terjadi antara satu atau
lebih entity. Relasi pada ERD biasa digambarkan dalam bentuk belah ketupat.
Misal :
·
Kardinalitas
Kardinalitas
relasi menunjukkan jumlah
maksimum entitas yang
dapat berelasi dengan entitas pada himpunan entitas lain.
Hubungan Kardinalitas dengan transformasi ERD ke tabel
serta foreign key
Ø
Foreign Key
Foreign Key
adalah Sebuah kumpulan
field dalam satu
relasi yang digunakan untuk me“refer”
(menunjuk) ke suatu
baris (tuple) pada
relasi yang lain
(harus berkorespondensi dengan primary key pada relasi yang
kedua).Foreign Key Akan terjadi pada
suatu relasi yang memiliki kardinalitas one to many atau many to many.
Ø
Transformasi ERD ke Tabel
Model
Entity Relationship (ER)
yang disajikan dengan
Diagram ER (biasa disebut dengan
ERD) bukanlah sebuah
basis data relasional.
Karena itu, maka diperlukan proses
transformasi dari sebuah
ERD menjadi suatu
basis data relasional lengkap
dengan tabel-tabel (atau
relasi). 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.
a.
One to one
Relasi tabel one-to-one (satu-satu) adalah relasi 2
tabel dengan primary key (pk) dan foreign key(fk). Ini dilakukan dengan
meletakkan kolom one-to-one ke
tabel baru. Sebetulnya
relasi ini jarang
digunakan. Namun ada
beberapa alasan relasi ini digunakan :
-
Memindahkan data ke tabel lain memungkinkan
untuk membuat query yang lebih cepat.
-
Mengisolasi dan menghindarkan nilai NULL pada
tabel utama.
-
Membuat sebagian data susah diakses
Contoh :
Maka apabila di transformasikan ke
dalam tabel sebagai berikut :
Dosen : id_dosen,
id_matkul,kode_dosen, nama_dosen.
MataKuliah : id_matkul, id_dosen,
kode_matkul, nama_matkul.
Keterangan : Tambahkan primary key
pada setiap entitas ke setiap pasangan.
b.
One to many
Relasi One to
Many (satu ke
banyak) terjadi apabila
sebuah data yang
ada pada tabel pertama memiliki beberapa data yang sama pada tabel
kedua. Pada relasi ini hanya diizinkan sebuah data pada tabel pertama dan tabel
kedua boleh memiliki beberapa data yang sama dengan tabel pertama.
Contoh :
Maka, apabila ditransformasi ke tabel menjadi :
Pegawai : id_pegawaai, nama , jabatan
Mobil : plat_nomor, jenis, merk ,warna
Keterangan :
Primary key pada tabel One (Pegawai) akan menjadi foreign key pada tabel Many (Mobil).
Foreign key adalah sebuah kumpulan field dalam satu
relasi yang digunakan untuk me“refer”
(menunjuk) ke suatu
baris (tuple) pada
relasi yang lain (harus berkorespondensi dengan primary
key pada relasi yang kedua).
c.
Many to many
Relasi many to many (banyak ke banyak) terjadi apabila
sebuah data yang ada pada tabel pertama memiliki beberapa data yang sama pada
tabel kedua, dan sebuah data yang
ada pada tabel
kedua juga memiliki
beberapa data yang sama pada tabel pertama. Pada relasi
ini, tabel pertama dan kedua diizinkan memiliki beberapa data yang sama dengan
kedua tabel tersebut.
Contoh :
Maka, apabila ditransformasikan pada tabel adalah
sebagai berikut :
Mahasiswa : id_mahasiswa, nim, nama
Mata_Kuliah: id_matkul,kode_matkul, nama_matkul,
kode_dosen
Mengambil : id_mahasiswa, id_matkul
Keterangan :
Pada
relasi Many To
Many ini tabel
relasi akan dibuat
menjadi tabel dan atributnya adalah
primary key dari
masing-masing tabel yang
berelasi.
Primary key pada tabel relasi akan menjadi foreign
key.
3. Diagram ER
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
4. Tahapan Pembuatan ER Diagram
Dapat disimpulkan 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.
C.
KONVERSI ER KE BASIS DATA REALTIONAL
1.
Entitas
Lemah
Secara
umum, 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.
Contoh
Entitas Lemah :
2.
Spesialisasi
dan Generalisasi
Spesialisasi merupakan proses desain top-down
dengan mendesain subgrouping didalam didalam himpunan entitas yang
berbeda dari himpunan entitas.
Contoh
Spesialisasi :
Generalisasi merupakan proses desain bottom-up dengan mengkombinasikan jumla 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.
3.
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.
4.
Ringkasan
notasi simbol di ER
5. Skema ER ke Tabel
Penurunan
skema dimaksudkan untuk mengubah sebuah konsep hubungan entitas dan relasi
kedalam bentuk fisik tabel tabel yang berelasi.
Inti dari Entity Relationship adalah menggambarkan hubungan di dunia
nyata kedalam bentuk entitas entitas yang saling ber-relasi, dari diagram ini
bisa di buat kedalam bentuk tabel yang langsung di implementasikan kedalam
basis data.
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)
6.
Representasi
Atribut menjadi Kolom
7.
Representasi
Himpunan Entitas sebagai Tabel
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.
8. Representasi Relasi (* pada kardinalitas N
to N)
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
9. 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.
D.
NORMALISASI
1. Pengertian
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.
2.
Tujuan
Normalisasi
·
Untuk menghilang kerangkapan data.
·
Untuk mengurangi kompleksitas.
·
Untuk mempermudah pemodifikasian data.
3.
Tahap
Normalisasi
4.
Bentuk-Bentuk
Normal
·
Bentuk Normal Tahap Pertama (1st Normal Form /
1NF).
·
Bentuk Normal Tahap Kedua (2nd Normal Form /
2NF).
·
Bentuk Normal Tahap (3rd Normal Form / 3NF).
·
Boyce-Code Normal Form (BCNF).
·
Bentuk Normal Tahap (4th Normal Form / 4NF).
·
Bentuk Normal Tahap (5th Normal Form / 5NF)
5.
Normal Pertama (1st Normal Form)
Aturan :
ü Tidak adanya atribut multi-value,
atribut komposit atau kombinasinya.
ü Mendefinisikan atribut kunci.
ü
Setiap atribut dalam tabel tersebut harus
bernilai atomic (tidak dapat dibagi-bagi lagi).
Contoh 1 :
Misal data mahasiswa
sbb:
Atau
:
Tabel-tabel di
atas tidak memenuhi syarat 1NF
Didekomposisi
menjadi:
·
Tabel Mahasiswa
·
Tabel Hobi
Contoh 2 :
JadwalKuliah
Kodekul
|
NamaKul
|
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:
6.
Normalisasi Kedua (2nd Normal Form)
Aturan :
ü
Sudah
memenuhi dalam bentuk normal kesatu (1NF).
ü Semua
atribut bukan kunci hanya boleh tergantung (functional dependency) pada atribut
kunci.
ü Jika
ada ketergantungan parsial maka
atribut tersebut harus dipisah pada tabel yang lain.
ü Perlu
ada tabel penghubung ataupun kehadiran foreign key bagi atribut-atribut yang
telah dipisah tadi.
Contoh :
Tabel
berikut memenuhi 1NF tapi tidak termasuk 2NF:
Tidak memenuhi 2NF, karena {Mhs_nrp,
mk_kode} yang dianggap sebagai primary key sedangkan:
{Mhs_nrp,
mk_kode} à/ mhs_nama
{Mhs_nrp,
mk_kode} à/ mhs_alamat
{Mhs_nrp,
mk_kode} à/ mk_nama
{Mhs_nrp,
mk_kode} à/ mk_sks
{Mhs_nrp,
mk_kode} à nihuruf
Tabel di atas perlu didekomposisi
menjadi beberapa tabel yang memenuhi syarat 2NF
Functional dependencynya sbb:
{Mhs_nrp, mk_kode} à nihuruf (fd1)
Mhs_nrp à {mhs_nama, mhs_alamat} (fd2)
Mk_kode à {mk_nama, mk_sks} (fd3)
fd1 (mhs_nrp, mk_kode, nihuruf) à Tabel Nilai
fd2 (Mhs_nrp, mhs_nama, mhs_alamat) à
Tabel Mahasiswa
fd3 (mk_kode,
mk_nama, mk_sks) à Tabel MataKuliah
7. Normalisasi Ketiga (3rd Normal Form)
Aturan :
ü
Sudah berada dalam bentuk normal kedua (2NF)
ü
Tidak ada ketergantungan transitif (dimana
atribut bukan kunci tergantung pada atribut bukan kunci lainnya).
Contoh :
Tabel berikut memenuhi 2NF, tapi
tidak memenuhi 3NF:
Mahasiswa
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) :
Sehingga tabel tersebut perlu didekomposisi
menjadi :
Mahasiswa (Nrp,
nama, alm_jalan, alm_kodepos)
Kodepos (alm_kodepos,
alm_provinsi, alm_kota)
Mungkin segini saja pembahasan Basis Data semoga menjadi
bermanfaat dan terimakasih J
Referensi :
- DIKTAT KULIAH IK 330 - BASIS DATA. Budi Laksono Putro. Ilmu
Komputer-Universitas Pendidikan Indonesia.
- Modul Basis Data : DDL dan ERD. Tim Asisten Basis Data
2014. Ilmu Komputer-Universitas Pendidikan Indonesia.
- Modul Basis Data : Normalisasi. Tim Asisten Basis Data
2014. Ilmu Komputer-Universitas Pendidikan Indonesia.
Link Address :
http://budi.staf.upi.edu/
http://cs.upi.edu
Link Address :
http://budi.staf.upi.edu/
http://cs.upi.edu