Basis Data Lama
Operasi Dasar
Didalam sebuah disk (hard disk), basis data dapat diciptakan dan dapat pula ditiadakan. Dalam sebuah disk kita dapat menempatkan beberapa (lebih dari satu) basis
data (Misalnya basis data nilaiMahasiswa, kepegawaian, keuangan, penjualan, pepustakaan dan lainnya).
Sementara dalam sebuah basis data kita dapat menempatkan satu atau lebih file/table. Misalkan dalam basis data penjualan terdiri dari table barang, faktur, pelanggan dan transaksi barang.
Operasi-operasi dasar yang dapat kita lakukan berkenaan dengan basis data adalah sebagai berikut:
· Pembuatan basis data baru (create database), identik dengan pembuatan lemari arsip yang baru.
· Penghapusan basis data (drop database), identik dengan perusakan lemari arsip, sekaligus beserta isinya jika ada.
· Pembuatan table baru ke suatu basis data (create table), yang identik dengan penambahan map arsip baru ke sebuah lemari arsip yang telah ada.
· Penghapusan table dari suatu basis data (drop table), identik dengan perusakan map arsip lama yang ada di sebuah lemari arsip.
· Penambahan/pengisian data baru di sebuah basis data (insert), identik dengan penambahan lembaran arsip ke sebuah map arsip.
· Pengambilan data dari sebuah table (retrieve/search), identik dengan pencarian lembaran arsip dalam sebuah map arsip.
· Pengubahan data dalam sebuah table (update), identik dengan perbaikan isi lembaran arsip yang ada di sebuah map arsip.
· Penghapusan data dari sebuah table (delete), identik dengan penghapusan sebuah lembaran arsip yang ada di sebuah map arsip.
Operasi pembuatan basis data dan tabel merupakan operasi awal yang hanya dilakukan sekali dan berlaku seterusnya. Sedangkan untuk operasi pengisian, perubahan, penghapusan dan pencarian data merupakan operasi rutin yang berlaku berulang-ulang.
Contoh Database
Berikut ini ini adalah contoh dari database Penjadwalan_mengajar_dosen pada STMIK bekasi dimana pada database tersebut terdiri dari file / table Dosen,
Matakuliah, Jurusan dan Mengajar.
1. Dosen
Dosen = {nid, nama_d, tempat_lhr, tgl_lahir, jkelamin, alamat, kota, kodepos, gajipokok}
2. Matakuliah
Matakuliah = {kdmk ,nama_mk, sks, semester}
3. Jurusan
Jurusan = {kode_jur, nama_jur, sjenjang, nama_kajur}
4. Mengajar
Mengajar = {nid, thn_akademik, smt,hari, jam_ke, kdmk, waktu, kelas, kode_jur}
Operasi manipulasi yang dapat dilakukan pada database tersebut adalah sebagai
berikut:
1). Insert : Kita dapat melakukan pemasukan data – data baru pada file/table dosen, matakuliah, jurusan dan mengajar.
2). Delete : Kita dapat melakukan penghapusan data yang telah ada pada file/table dosen, matakuliah, jurusan dan mengajar untuk data – data yang tidak diperlukan lagi.
3). Update : Kita dapat melakukan perubahan data – data alamat dan kota seorang dosen pada file / table dosen dikarenakan dosen tersebut pindah alamat, dan kita dapat melakukan perubahan untuk data yang lainnya pada database tersebut.
4). Retrieve : Kita dapat menampilkan Informasi mengenai dosen menurut jenis kelamin, kota alamat dan lainnya, informasi mengenai transaksi mengajar dosen, informasi jurusan, informasi mengenai matakuliah berdasarkan sks nya dan informasi lainnya.
Basis Data Baru
Basis Data dan ERD
Tampilan basisdata secara lojik mirip dengan tampilan software spreadsheet (semisal Open Office Calc atau Microsoft Excel), yakni berupa tabel dua dimensi: baris, dan kolom. Sebuah file spreadsheet biasanya terdiri dari satu atau beberapa tabel; dan jika diperlukan data dari tabel lain, hubungan tersebut bisa diimplementasikan dengan menyalin link ke sel yang dituju.
Link menuju data lainnya (dalam contoh ini: data di sheet lain) ditunjukkan oleh kursor pada sel B2. Sebagai jembatan penghubung, fungsi link ini mirip dengan “link” yang berlaku dalam tabel-tabel basisdata. Di basisdata, link ini dikenal sebagai “Foreign Key”. Kelebihan Foreign Key dibandingkan link biasa pada spreadsheet bisa dilihat pada Bab DDL, sedangkan cara pemakaian Foreign Key bisa dilihat pada Bab JOIN. Lalu, bagaimana cara pembuatannya? Mari kita mulai dari tahap awal, yakni perancangan basisdata (dengan model data berupa ERD), baru dilanjutkan dengan implementasi secara fisik dalam bentuk tabel seperti yang akan dibahas dalam Bab DDL.
Memulai Merancang Basisdata baru
Basisdata adalah sekumpulan data yang saling bertautan dan merupakan representasi dari sebagian dunia nyata (Ramakhrisnan, 2004). Oleh karena itu, pembuatan basisdata pun harus sesuai dengan kasus dan ruang lingkupnya. Setelah itu, dicari fakta-fakta dari arsip-arsip fisik kemudian dianalisis. Sebagai contoh, ketika hendak migrasi dari pengarsipan manual ke basisdata (dalam kasus supermarket), kita bisa menelusuri data dan informasi yang muncul pada struk pembelian (untuk pelanggan), struk penerimaan barang di gudang, laporan penjualan untuk manajer, laporan retur barang, dan lain-lain. Seluruh bukti fisik dikumpulkan, dicari benang merahnya (keterkaitan antar data, red), dan dipertajam dengan bantuan informasi verbal dari (calon) pengguna basisdata. Baru setelah itu, digambarkan dalam ERD dan dikonversi ke bentuk tabel.
Secara ringkas, tahapannya adalah sebagai berikut:
1. Menentukan kasus dan ruang lingkup basisdata.
2. Mengumpulkan fakta untuk data-data yang akan disimpan di basisdata.
3. Memodelkan fakta ke dalam ERD. Proses ini bersifat iteratif, terutama untuk basisdata besar, dalam hal penentuan fakta sebagai atribut atau sebagai entitas.
4. Mengonversi ERD ke dalam bentuk tabel, lengkap dengan properti tabel (kolom, tipe data, dan panjang data).
5. Menjalankan DDL untuk mengimplementasikan tabel ke software DBMS (misalnya Oracle DB).
Terdapat lima macam komponen utama ERD, yakni:
a. Entity (entitas)
b. Attribute (atribut)
c. Unique Identifier
d. Relationship (hubungan antar entitas)
e. Kardinalitas
a. Entity (entitas)
Entitas adalah konsep dasar dalam pemodelan basis data berupa individu yang mewakili sesuatu yang nyata dan dapat dibedakan dari sesuatu yang lain. Kumpulan individu entitas disebut sebagai himpunan entitas. Di dunia nyata, entitas berupa:
1. objek yang dapat diidentifikasikan
2. bisa dibedakan dari objek lain, serta
3. mempunyai karakteristik tertentu, dimana informasi yang berkaitan dengan objek yang bersangkutan dikumpulkan.
Dalam ERD, entitas dilambangkan dengan simbol kotak (▭). Contoh entitas dalam dunia akademik antara lain mahasiswa, dosen, mata kuliah, dan ruang kuliah. Sedangkan contoh entitas dalam toserba antara lain pegawai, barang, dan rak.
b. Attribute (atribut)
Atribut adalah karakteristik atau properti dari entitas yang menyajikan penjelasan detail tentang entitas tersebut. Atribut bisa bersifat WAJIB (harus ada), atau opsional (bisa ada, bisa pula tidak). Atribut dilambangkan dengan simbol elips (ᴑ).
Atribut melekat pada entitas, layaknya atribut dalam seragam sekolah SMU, misalnya. Atribut-atribut inilah yang membedakan antara seragam SMU dan seragam SMP, serta membedakan seragam SMU milik Andi dan seragam SMU Budi. Dalam konteks basisdata, entitas barang memiliki atribut kode barang, nama barang, harga, harga diskon, dan lain-lain.
c. Unique Identifier
Sesuai dengan namanya, unique identifier adalah atribut yang bernilai berbeda untuk masing-masing individu dalam himpunan entitas. Dalam analogi seragam SMU di dunia nyata, diketahui bahwa badge dan warna seragam Andi dan Budi boleh sama, tetapi label nama dada tentu berbeda. Begitu pula dengan dunia basisdata; nama atau tanggal lahir mahasiswa boleh jadi kebetulan sama, tetapi ada satu data yang pasti berbeda, yakni NIM. Sehingga NIM inilah yang disebut sebagai unique identifier.
Untuk membedakannya dengan atribut-atribut biasa, dalam gambar ERD, unique identifier ditandai dengan garis bawah.
d. Relationship (hubungan atau relasi antar entitas)
Kelebihan utama basisdata dibandingkan penyimpanan dalam file terletak pada kemampuan untuk saling berinteraksi antar data. Interaksi inilah yang disebut sebagai relationship. Contoh yang paling mudah dipahami adalah hubungan antara data mahasiswa dan data mata kuliah. Apa nama relasinya? Ya, benar: mahasiswa mengambil mata kuliah. Demikian pula hubungan antara data dosen dan mata kuliah, yakni dengan nama relasi: dosen mengampu mata kuliah. Cara termudah untuk mendapatkan keterkaitan antar data adalah dengan mencari kata kerja yang mungkin menghubungkan antar dua data atau lebih. Dalam contoh di atas, terdapat dua macam kata kerja: mengambil dan mengampu. Relationship digambarkan dalam bentuk diamond (◇). Relasi inilah yang nantinya akan diimplementasikan ke basisdata dalam bentuk “jembatan penghubung” antar data, yakni Foreign Key (bisa dirujuk ke bab DDL).
e. Kardinalitas
Relationship secara lengkap tidak hanya dilihat dari nama relasinya, tetapi juga jumlah kejadian di entitas yang terlibat dalam relasi tersebut. Contohnya adalah 1 pembeli menerima 1 struk bukti transaksi pembelian, 1 dosen bisa mengajar beberapa mata kuliah, dan lain-lain. Rasio jumlah kejadian antara dua entitas inilah yang disebut dengan kardinalitas.
Hanya ada empat kardinalitas yang mungkin terjadi, yakni:
· One to one (1:1) : Satu entitas di A terhubung dengan maksimal satu entitas di B, dan begitu sebalilknya. Misalnya, setiap tenaga sales diberi amanah untuk menjalankan hanya satu mobil box.
· One to many (1:N) : Satu entitas di A terhubung ke sejumlah entitas di B, dan satu entitas di B hanya terhubung dengan maksimal satu entitas di A. Misalnya seorang kustomer boleh mengirim lima surat pesanan (request order), tetapi 1 order hanya berasal dari 1 kustomer.
· Many to one (N:1) : Kebalikan dari kardinalitas 1:N.
· Many to many (N:M) : Sebuah entitas di A terhubung ke sejumlah entitas di B, dan demikian juga sebaliknya. Misalnya mahasiswa mengambil matakuliah. Si Ahmad mengambil matakuliah Alpro 2 (A), Basis Data (A), dsb. Sedangkan Kelas Alpro 2 (A) sendiri berisi Ahmad, Budi, Citra, Dody, Zezen, dsb.