APLIKASI BASIS DATA Bagi pemakai mahir yang berinteraksi langsung terhadap basis data melalui DBMS, operasi basis data itu dapat berbentuk: Penambahan data. Pencarian data. Pengubahan data. Penghapusan data. Pengurutan data. Penggabungan data. Penyimpulan/pengelompokkan data. dan lain-lain. Bagi pemakai akhir (end-user) yang memang tidak bersentuhan langsung dengan objek basis data, tetapi lebih banyak bersinggungan dengan aktivitas nyata yang memang terjadi di mana sistem basis data itu diterapkan, maka akan lebih mengenal operasi basis data seperti: Pemasukan data (master barang, transaksi penjualan, jumal-akuntansi, nasabah baru, dan lain-lain). Monitoring data transaksi. Pencetakan laporan harian/bulanan. Penutupan data transaksi bulanan. dan lain-lain. Pada level implementasi, perbedaan tersebut dijembatani oleh adanya perangkat lunak (aplikasi) yang khusus dibuat untuk dapat digunakan oleh para pemakai akhir (end-user). Aplikasi ini akan menyediakan sejumlah operasi (menu) yang sesuai dengan berbagai aktivitas nyata yang memang dilakukan oleh para pemakai akhir (end-user). Selanjutnya, pilihan operasi user ini akan 'diterjemahkan' oleh aplikasi tersebut menjadi' sejumlah operasi basis data elementer yang memang dapat dikenali/dikerjakan oleh DBMS. Aplikasi semacam itu kita sebut Aplikasi Basis Data. naiveuser DBMS: Terpisah atau Menyatu denganAplikasi? Sofware untuk merancang aplikasi basis data : Java, VB.Net, ASP.Net, Delphi, MS Access, Visual Foxpro dll kadang dianggap bukan DBMS. DBMS yang besar (seperti Oracle, CA-OpenIngres, Sybase, Informix, IBM-DB2, SQL Server) memang dirancang sejak awal untuk berdiri sendiri dan terpisah dari aplikasi basis datanya. Karena berdiri sendiri, maka banyak sekali fasilitas (feature) yang ditangani oleh DBMS ini, seperti masalah pemeliharaan integritas basis data, mekanisme recovery (pemulihan data otomatis akibat adanya kerusakan data), mekanisme backup periodik, pengendalian persaingan pemakaian data oleh banyak pemakai (concurency control), mekanisme pengamanan pemakaian (security mechanism), dan lain-lain. Gambar aplikasi basis data yang terpisah dari DBMS Pada bentuk di atas, basis data dapat dianggap sebagai objek yang hidup, karena sesungguhnya aplikasi tidak pemah berinteraksi langsung dengan basis data. Tetapi selalu melalui DBMS sebagai perantara. Bahkan DBMS sendiri bisa melakukan aktifitas sendiri yang bisa ditangkap oleh aplikasi. Jadi interaksi antara aplikasi basis data dan DBMS merupakan interaksi dua arah (digambarkan dengan adanya tanda panah bolak-balik) antara dua perangkat lunak. Arsitektur Sistem Arsitektur Sistem merujuk pada konfigurasi sistem secara keseluruhan yang akan menjadi 'tempat hidup' dari DBMS, basis data dan aplikasi yang memanfaatkannya. Bagaimana wujud dari 'tempat hidup' tersebut yang juga akan menentukan bagaimana para pemakai berinteraksi dengannya, sudah seharusnya ditetapkan sejak awal sebelum memulai perancangan basis data, atau paling tidak sebelum melaksanakan tahap implementasi basis data. Beberapajenis arsitektur sistem yang dapat digunakan dan akan diuraikan pada bab ini adalah : Sistem Tunggal/Mandiri (Stand-Alone) Sistem Tersentralisasi (Centralized System). Sistem Client-Server 1. Sistem Tunggal/Mandiri (Stand-Alone) Pada arsitektur ini, DBMS, basis data dan aplikasi basis data ditempatkan pada mesin (komputer) yang sama. Dengan demikian, pemakai yang dapat menggunakannya di setiap saat juga hanya satu orang (single user). Arsitektur ini merupakan arsitektur sistem yang paling sederhaha dan paling murah. Arsitektur semacam ini dapat kita pilih dan gunakan, jika basis data yang dikelola memang tidak terlalu besar dan lebih bersifat membantu mempercepat pekerjaan-pekerjaan administratif. 2. Sistem Tersentralisasi (Centralized System) Kita tidak dapat mempertahankan pemakaian Sistem Mandiri, jika harus mengakomodasi pemakaian oleh banyak pemakai (multi-user). Arsitektur ini terdiri atas sebuah mesin server dan sejumlah terminal (yang menjadi tempat user berinteraksi dengan sistem). Yang tersentralisasi dalam arsitektur ini dapat mencakup basis data, DBMS dan aplikasi basis data atau basis data saja. Untuk lingkup sentralisasi yang pertama, maka jenis servernya. sering disebut sebagai DBMS-server atau applicationserver (server aplikasi) dan terminalnya lebih tepat disebut dumb-terminal (terminal pasif). Sedang jika yang disentralisasi hanya basis data, server yang kita gunakan biasa disebut file server dan terminalnya disebut workstation (stasiun kerja). Pada bentuk sentralisasi yang pertama, beban server tentu saja sangat berat, karena digunakan secara bersama-sama oleh banyak pemakai untuk menjalankan aplikasi basis data dan DBMS (di samping tentu saja sistem operasi untuk jaringan). Untuk memperingan beban server (khususnya dalam alokasi sumber daya server seperti prosesor dan memori), bentuk sentralisasi ini umumnya menggunakan aplikasi berbasis teks (text-base application) dengan fasilitas antar-muka layar yang sederhana, sehingga ukuran aplikasi bisa lebih kecil. Performansi operasi basis data sangat dipengaruhi oleh utilitas (pemakaian) sumber daya server. Karena itu, semakin banyak proses yang aktif, maka performansi akan semakin lambat. Sementara itu, lalu lintas data (data traffic) antara terminal dan server rendah, karena yang ditransfer hanyalah aksi pemakai (dari terminal ke server) dan image lay ar (dari server ke terminal pada saat menampilkan hasil query). Dengan begitu, arsitektur ini akan tetap berfungsi baik walaupun digunakan di sebuah jaringan yang lebih besar (Wide Area Network/WAN) dan lebih praktis terutama pada masa instalasi maupun perbaikan aplikasi, karena pemasangan aplikasi (deployment) hanya dilakukan di satu tempat (di server). Pada bentuk sentralisasi ini, kita dapat saja menggunakan DBMS yang terpisah dari aplikasi, tetapi berada di mesin (server) yang sama. Pada bentuk sentralisasi yang kedua, beban server jauh lebih ringan, karena yang 'hidup' di situ hanyalah sistem operasi jaringan (network operating system/NOS) dan basis data dianggap setara dengan sebuah file atau beberapa file pada umumnya. Proses-proses aplikasi basis data dijalankan di setiap workstation (yangjuga memiliki prosesor dan memori) yang digunakan pemakai. Karena itu, beban kerja sistem secara keseluruhan menjadi terbagi. Yang sangat mempengaruhi performansi pada arsitektur tersentralisasi yang kedua ini adalah lalu lintas data (data traffic) yang berlangsung dengan intensitas yang tinggi antara work-station dan server, apalagi jika volume data hasil query cukup besar. Jika ada operasi basis data dari sebuah proses yang sedang aktif di salah satu work-station, maka file-file yang dibutuhkan oleh operasi tersebut akan ditransfer secara keseluruhan dari server ke workstation tersebut, Dengan begitu, arsitektur semacam ini lebih cocok untuk jaringan yang sifatnya lokal (Local Area Network/LAN). Di sisi lain, tahap pemasangan (deployment) aplikasi juga menjadi tidak praktis, karena setiap aplikasi yang baru ataupun perubahannya harus diinstalasi di setiap work-station yang menggunakannya. Memang bisa saja kesulitan ini diatasi dengan menyediakan ruang di disk server untuk menyimpan aplikasi, sehingga sewaktu ingin menjalankan aplikasi, pemakai lebih dulu men-transfer file aplikasi dari serverke work-station lalu kemudian mengaktifkannya. Bentuk sentralisasi kedua ini hanya dapat menggunakan DBMS yang menyatu dengan aplikasi, sehingga basis datanya bersifat pasif (tidak 'hidup'). Kelemahan lain dari bentuk ini adalah rendahnya mekanisme pengamanan basis data (baik dari adanya akses pemakai yang ilegal maupun karena adanya kerusakan data) dan hanya mengandalkan pada mekanisme pengamanan yang dimiliki oleh sistem operasi yang ada di server. 3. Sistem Client-Server Sebagaimana Sistem Tersentralisasi, arsitektur ketiga ini juga diterapkan pada sebuah sistem jaringan. Sistem Client-Server ini ditujukan untuk mengatasi kelemahankelemahan yang terdapat pada Sistem Tersentralisasi sebelumnya (baik sentralisasi pada aplikasi dan basis data maupun sentralisasi hanya pada basis data). Kelemahan pada bentuk Sistem Tersentralisasi yang pertama, yaitu beratnya beban server yang harus menangani semua proses, diatasi dengan membagi beban itu menjadi 2 bagian : client (yang menjalankan aplikasi basis data) dan server (yang menjalankan DBMS dan berisi basis data) pada mesin yang berbeda. Sedang kelemahan pada bentuk Sistem Tersentralisasi yang kedua, yaitu padatnya lalu lintas data antara server dan work-station diatasi dengan mekanisme transfer data yang lebih efisien. Sistem ini terdiri atas dua komponen (mesin) utama, yaitu client dan server. Client berisi aplikasi basis data dan server berisi DBMS dan basis data. Setiap aktivitas yang dikehendaki para pemakai akan lebih dulu ditangani oleh client. Client selanjutnya mengupayakan agar semua proses 'sebisa mungkin' ditangani sendiri. Jika ada proses yang harus melibatkan data yang tersimpan pada basis data, barulah clien melakukan 'kontak' dengan server. Katakanlah ada kebutuhan untuk mendapatkan baris-baris data (row) dengan kriteria tertentu (proses query) dan tabel data bernama T. Pada bentuk Sistem Tersentralisasi yang kedua, kebutuhan ini dijawab dengan mentransfer lebih dulu semua baris data (row) yang ada di tabel T tersebut dari server ke work-station, barulah kemudian di work-station dilakukan pemilihan baris data (query) terhadap tabel T tersebut. Sementara pada Sistem Client-Server, untuk memenuhi kebutuhan itu client akan mengirimkan message (perintah) query pengambilan data. Selanjutnya, server yang menerima message tersebut akan menjalankan query tersebut (melakukan pencarian baris data terhadap tabel T) dan hanya hasilnya (jadi tidak seluruh isi tabel T) yang akan dikirimkan kembali ke client. Dengan begitu, transfer datanya menjadi jauh lebih efisien. Gambar Sistem Client-Server sederhana Gambar sistem client-server kompleks Dari kedua gambar di atas, dapat kita lihat adanya dua macam implementasi Sistem Client-Server. Bentuk yang pertama yang lebih sederhana dapat diterapkan pada sebuah jaringan komputer lokal (LAN), di mana fungsi client (untuk menangani sebagian besar proses pengolahan data seperti perhitungan, perulangan, pembandingan, dan lain-lain) dan fungsi workstation (untuk menangani interaksi dengan pemakai, menerima data masukan dan menayangkan hasil pengolahan) disatukan. BASIS DATA SEKARANG Berdasarkan perkembangan teknologinya, kita dapat memilah DBMS dalam beberapa katagori yang jumlahnya bisa bertambah seiring dengan perkembangan teknologi di masa yang akan datang. Beberapa katagori DBMS itu adalah: 1. DBMS Konvensional (Legacy DBMS) Sebagian besar DBMS yang ada saat ini masih dapat dikatagorikan sebagai DBMS Konvensional yang sudah menjadi standar pemakaian di berbagai tempat. DBMS Konvensional ini meliputi juga DBMS untuk pemakai tunggal maupun banyak pemakai tetapi dengan menerapkan model basis data lama, yaitu model jaringan, model hirarkis, ataupun model yang lebih populer: model relasional. Uraian perancangan dan implementasi dalam buku ini didasarkan pada penerapannya dengan menggunakan DBMS model relasional (RDBMS). 2. DBMS Berorientasi Objek (Object-Oriented DBMS/OODBMS) DBMS Berorientasi Objek merupakan respon terhadap perkembangan yang terjadi dalam dunia pemrograman (pemrograman berorientasi objek). Seorang manusia sebagai sebuah objek dapat melakukan pekerjaanpekerjaan khusus (seperti makan, bergerak, tidur, dan seterusnya) yang tentu dapat pula dikerjakan oleh manusia lain tapi belum tentu dapat dikerjakan oleh objek yang jenisnya berbeda, misalnya sepeda (sepeda bisa bergerak tapi tidak dapat makan dan tidur). Konsep objek tersebut kemudian diterapkan dalam lingkup pemrograman. Dalam sebuah program, menu adalah sebuah objek, tampilan layar (form) adalah sebuah objek, tulisan (teks) yang tertera di layar adalah sebuah objek, isian tempat user memasukkan data adalah sebuah objek dan seterusnya. Namun sedikit berbeda dengan objek manusia dan sepeda di atas, penggunakan istilah sifat/kepemilikan digantikan dengan atribut (atau properti) dan istilah kerja digantikan dengan metoda. Penerapan konsep objek tersebut membawa konsekuensikonsekuensi baru yang sangat menarik, seperti adanya kepemilikan objek (ownership) dan hubungan ayah-anak di antara objek (parent-child relationship), pewarisan (inheritance) atribut dan metoda dari kelas objek yang lebih tinggi ke kelas objek di bawahnya, pembungkusan (encapsulation) atribut dan metoda suatu objek oleh objek lainnya dan pemaksaan perubahan perilaku (polymorphism) suatu objek menjadi objek lain. Penerapan konsep objek ini membuat penulisan pemrograman menjadi lebih sederhana, lebih kompak, lebih fleksibel tetapi dengan kemampuan yang jauh lebih baik (powerful). Keunggulan yang ditunjukkan oleh pemrograman berorientasi objek kemudian menerbitkan gagasan untuk juga menerapkan konsep yang sama dalam lingkungan pengelolaan basis data. Riset dan pembuatan prototipe DBMS yang secara khusus mengelola basis data yang berorientasi objek ini sudah lama dilakukan. Malah saat ini sudah ada DBMS berorientasi objek (Object-Oriented DBMS/OODBMS) yang mulai dipasarkan, seperti CA-Jasmine. Kendati belum semapan apa yang telah dicapai oleh OOP, di masa datang pemakaian OODBMS cukup menjanjikan. Belum populernya pemakaian OODBMS selain disebabkan oleh beberapa keraguan akan kehandalannya.juga karena upaya konversi sistem dari DBMS konvensional ke OODBMS menjadi sangat berat jika kita ingin benar-benar menerapkan aspek object-oriented ini dalam sistem yang baru. 3. DBMS Objek Relasional (ObjectRelationalDBMS/ORDBMS) DBMS Objek Relasional merupakan DBMS yang merupakan kompromi antara DBMS Relasional dengan yang berorientasi objek yang memang masih dalam tarap pengembangan. Secara objektif, DBMS ini sebenarnya masih menerapkan model relasional sebagai basis pengelolaan datanya. Aspek Objek dalam DBMS ini merupakan tambahan feature yang bisa digunakan ataupun tidak digunakan sama sekali. Jika OODBMS sudah menjadi standar dan mulai banyak diterapkan, hampir bisa dipastikan DBMS kompromi ini tidak memadai lagi untuk digunakan. 4. DBMS untuk Web/Internet (Internet DBMS) DBMS untuk Web/Internet merupakan DBMS yang dibuat untuk keperluan khusus yaitu menangani dokumendokumen (halaman-halaman) Web yang banyak digunakan di dunia Internet.