Sistem Basis Data Mahmud Yunus, S.Kom., M.Pd. [email protected] [email protected] 081-8538101 Pengantar Manajemen Sistem Basis Data Fokus utama dalam manajemen Basisdata adalah bagaimana; • • • • Mengumpulkan/menginventarisir/memburu data, Mengorganisasi/mengelompokkan data, Menambah, mengubah dan menghapus data serta Menampilkan data yang diperlukan dalam bentuk informasi, secara efektif dan efisien, yang akan digunakan sebagai bahan analisis dalam menuntun aktivitas-aktivitas perusahaan selanjutnya. Beberapa pertanyaan dasar dapat diajuakan sebagai test-case pengetahuan kita terhadap basisdata, diantaranya adalah; Apa yang dimaksud Data dan Informasi itu ? Apa yang dimaksud Basisdata dan Sistem Manajemen Basisdata (Database Manajemen System/DBMS) ? Sebarapa pentingkah DBMS bagi perusahaan ? Apa keunggulan dan kelemahan dari DBMS ? Data vs Informasi Data adalah fakta tentang suatu obyek di dunia nyata yang dapat direkam dan disimpan pada media komputer (Fred McFadden ”Database Management”) Data hanya akan bermakna jika dihubungkan dengan konteks tertentu Informasi merupakan data yang telah diolah sedemikian rupa sehingga memiliki makna tertentu bagi pengguna Informasi adalah sesuatu yang lebih bermakna dari data Basis Data Menurut Fabbri dan Schwab, basisdata adalah sistem berkas terpadu yang dirancang untuk meminimalkan pengulangan (redudancy) Menurut Date, basisdata adalah sistem terkomputerisasi yang tujuan utamanya memelihara informasi dan membuat informasi tersebut tersedia saat dibutuhkan Secara umum Basisdata dapat didefinisikan sebagai sekumpulan data yang terorganisasi dengan cara sedemikian rupa sehingga data mudah disimpan dan dimanipulasi untuk memenuhi kebutuhan pemakai akan informasi Data merupakan Refleksi Fakta yang ada, Pereflesian data tersebut dapat berupa perekaman fakta kedalam media penyimpanan, misalnya Disk Storage. Hasil perekaman data tersebut diorganisasi atau dikelola dengan baik (mengikuti kaidah/metode yang berlaku), sehingga dapat berguna dan dipakai secara efisien dan efektif dalam rangka mendukung operasioperasi pengendalian organisasi. Data dapat dipandang sebagai sumber daya (aset) penting pada perilaku manajemen modern Basis data dapat digambarkan dengan tabel-tabel sebagai berikut: Atribut / elemen/field File Barang Kode Nama Jumlah Harga SB-01 SABUN GIV 10 Rp. 500 SB-02 SABUN LUX 5 Rp. 750 SG-03 SIKAT GIGI FORMULA 20 Rp. 1000 Nilai data / data value Record / tuple Beberapa definisi yang berhubungan dengan basis data: 1. Entity adalah obyek pada dunia nyata yang dapat dibedakan satu dengan lainnya, yang bermanfaat bagi aplikasi yang sedang dikembangkan 2. Atribute/Data Field/Elemen Data adalah data-data item yang mewakili suatu entity 3. Data Value/Isi Data adalah data aktual atau informasi yang disimpan pada atribut 4. Record/Tuple/Rekaman adalah kumpulan elemen-elemen yang saling berkaitan menginformasikan tentang suatu entity secara lengkap 5. File/berkas adalah kumpulan record-record sejenis yang mempunyai panjang elemen dan atribut yang sama serta data value yang berbeda 6. Meta data adalah data yang menjelaskan data yang lainya, penjelasan tersebut dapat berupa definisi data,struktur data, aturan serta batasan Exp. 2011.51.0007 => meta datanya bisa berupa NIM yang tersusun dari 12 karakter, tidak boleh ada angka negatif, tidak boleh menggunakan “, *” dsb Sistem Pengolahan Data Dengan Sistem Pemrosesan Berkas (File) 1. Pada awalnya pemrosesan data berbasis komputer, tidak mengenal sistem basisdata 2. Untuk memenuhi kebutuhan bisnis, aplikasi komputer dikembangkan untuk mampu memanipulasi, menyimpan serta memanggil berkas (File) tertentu saja. 3. Setiap program aplikasi mendefinisikan dan mengelola datanya sendiri, tanpa adanya penetapan standart format data yang universal, sehingga data yang dimiliki perusahaan, berupa file-file tidak terintegrasi dengan baik. File-file tersebut berdiri sendiri dan belum terelasi satu dengan yang lainnya (terpisah-pisah). Diagram Sistem Pemrosesan Berkas Program A Program B Program C Sistem Pemesanan File Master Pelanggan File Master Persediaan File Pemesanan Program A Program B Program A Sistem Penjualan Sistem Gaji File File File Master Master Penjualan Persediaan Pelanggan File Karyawan Diagram Sistem Pemrosesan Berkas (file) Kekurangan Sistem Pemrosessan Berkas 1. Kendali yang buruk terhadap data. Data selalu bergantung pada program aplikasi (data tidak independen) 2. Terjadinya pemisahan/isolasi data karena format data yang tidak kompetibel dengan aplikasi lainnya (kompetibelitas data yag rendah) 3. Terjadinya duplikasi (redudansi) data, yang dapat berarti • Duplikasi data sebagai pemborosan • Duplikasi dapat menyebabkan data tidak konsisten (inkonsistensi data) 4. Query data untuk memperoleh informasi tertentu sangat terbatas Apikasi Berbasis File Merupakan Sistem Pengolahan Data Yang Usang Dengan berbagai keterbatasan yang ada, maka dapat disimpulkan bahwa aplikasi yang berbasis file(data yang berorientasi terhadap program aplikasi), sangat tidak menguntungkan untuk dipakai atau dikembangkan lebih lanjut. Paradigma atau cara pandang, bahwa data tergantung pada program aplikasi harus dirubah, kehadiran data harus bersifat independen (berdiri secara mandiri) dan universal, bebas dari pengaruh dan karakteristik bahasa pemrograman, sehingga bahasa pemrograman-lah yang harus menyesuaikan dengan data dan bukan sebaliknya. Solusinya bagaimana ? Sistem Pengolahan Data Dengan Pendekatan Basis Data 1. Sistem pengolahan data dengan pendekatan basis data memberi tekanan pada integrasi dan berbagi data(data shared) dalam organisasi. 2. Basis data merupakan kumpulan data (elementer) yang secara logika berkaitan dalam mempresentasikan fenomena/fakta yang ada secara terstruktur dalam domain tertentu, guna mendukung aplikasi pada sistem tertentu. 3. Basisdata dapat juga berarti sebagai kumpulan data yang saling berhubungan dalam merefleksikan fakta-fakta yang terdapat pada sebuah organisasi atau perusahaan 4. Sistem Basis Data merupakan sekumpulan data yang saling terintegrasi satu dengan lainnya dan dapat dimanipulasi (insert, update, dalete dll) dengan mudah, menggunakan perangkat lunak basis data (DBMS) 5. Sistem Manajemen Basisdata atau DBMS (Database Manajemen System) merupakan sistem yang dapat digunakan untuk merancang/mendefinisikan, menciptakan, mengelola dan mengendalikan pengaksesan basisdata. Pada prakteknya konsep DBMS ini diterapkan pada sebuah perangkat lunak (software) DBMS. Beberapa software DBMS yang populer saat ini adalah; • Oracle • MySQL • Microsoft SQL Server • PostgreSQL • Sybase, dll. Tujuan Penggunaan DBMS Tujuan utama dari DBMS, adalah menyediakan lingkungan yang nyaman dan efisien untuk penyimpanan dan pengambilan data dari basis data. Software DBMS dengan kemampuannya untuk pengelolaan koleksi data yang besar, dapat berperan dalam memberikan abstraksi (gambaran) data tingkat tinggi yang lebih akrab, nyaman dan fleksibel ke pemakai (perintah-perintah query data layaknya bahasa manusia). Tolok ukur kenyamanan dan ke-efisienan dalam pengelolaan data oleh DBMS, tercermin dari tujuan dasar penerapan konsep DBMS, yaitu menghindari; Redudansi, inkonsistensi dan anomali data serta masalah integritas data mekanisme konstrain data Kesulitan pengaksesan dan isolasi data standarisasi bahasa query Masalah-masalah keamanan data pemberian hak akses dan batasannya pada pengguna Keunggulan DBMS Keunggulan penerapan DBMS jika dibandingkan dengan Aplikasi Berbasis File adalah; Pengendalian terhadap redudansi data yang tercermin dalam konsistensi data Informasi yang lebih banyak dapat dibentuk dari data tersimpan yang sama (lebih variatif) dan cepat melalui perintah SQL. Pemakaian bersama terdahap data yang sama Peningkatan integritas data dan mengurangi terjadinya inkonsistensi data Pemaksaan terhadap standart data dan cara pengaksesannya Peningkatan pengaksesan dan daya tanggap data Peningkatan produktifitas dengan membantu pengguna mengakses lebih banyak data yang terorganisir secara lebih baik Peningkatan pemeliharaan lewat ketidaktergantungan data pada program aplikasi tertentu Peningkatan layanan cadangan (backup) dan pemulihan (recovery) data Lebih ekonomis karena pengelolaan data dapat dilakukan dengan lebih efisien dan efektif Kelemahan DBMS Kompleksitas yang tinggi Ukuran perangkat lunak yang besar Ongkos terhadap pengadaan, pengoperasian dan perawatan DBMS Penambahan biaya pengadaan perangkat keras untuk menjalankan DBMS Biaya konversi dari sistem lama ke sistem baru Dampak yang tinggi bila terjadi kegagalan sistem (resiko) Kinerja yang rendah bila tidak mampu menggunakan dengan optimal (biaya vs outcome) DBMS dapat saja tidak cocok diaplikasikan sebagai standart database pada aplikasi-aplikasi tertentu, misalnya pada aplikasi yang membutuhkan pengguna terbatas dengan alasan proteksi dan keamanan data/informasi (closed system information) serta kinerja manipulasi dan penerapan metode akses yang spesifik Kebutuhan Akan DBMS Seiring dengan perkembangan teknologi informasi (komputer & telekomunikasi) khususnya basisdata dijumpai fenomena bahwa; Kebanyakan sistem basis data yang digunakan, berbasis model data relasional, dimana data disimpan dalam bentuk relasi-relasi (tabeltabel) yang dapat diakses dengan bahasa SQL sederhana, sehingga pemrogram komputer tidak lagi dipusingkan dengan kopleksitas nyata, bagaimana data disimpan, direlasikan & diakses/dimanipulasi. Basis data dapat berupa objek-objek yang variatif (teks, suara, gambar, film dll.) dan berukuran besar, seperti katalog berbasis internet, ensiklopedia digital, video clip dan sebagainya. Sistem basisdata sering digunakan secara on-line dan 24 jam sehari Pengaksesan yang konkuren (multi user, sharing dan real time) melalui transaksi on-line terhadap basisdata Melibatkan komputasi dan data tersebar (mirroring, replikasi) serta melibatkan sistem-sistem yang heterogen dalam lingkup platform berbeda Transaksi-transaksi data biasanya dilakukan oleh orang yang awan mengenai basis data (view level) dan sistem komputer pada umumnya, sehingga diperlukan suatu metode pencatatan data/transaksi yang sederhana/mudah untuk membantu pelaksanaan kegiatan-kegiatan bisnis yang digelutinya Fenomena tersebut mendorong terjadinya peningkatan kebutuhan terhadap fitur-fitur sistem basis data yang bersifat; Ketersedian yang tinggi (high availability) Kehandalan yang tinggi (high reliability) Tingginya kemampuan penyelesaian jumlah job dalam satuan waktu tertentu (high throughput) Waktu tanggap yang rendah (low response time/low idle time) Waktu hidup yang lama (long lifetime) Keamanan (security) Penggunaan lintas platform O/S (Windows, Linux, Mac etc.) Biaya rendah vs kinerja tinggi (low cost versus high perform) Keterujian kapasitas yang tinggi (high capability) Saat ini hampir semua pengembang telah menerapkan standar tersebut untuk mengembangan software DBMS-nya Pemakai Basis Data Terdapat empat tipe pemakai basis data, yaitu; Pemrogram aplikasi (aplication programmer) Pemakai canggih Pemakai terspesialisasi/khusus Pemakai awam Pemrogram Aplikasi Pemrogram aplikasi, merupakan pembuat program aplikasi yang akan digunakan pemakai awam basisdata. Pemrogram aplikasi akan berinteraksi dengan basisdata lewat DML Call yang ditempelkan ke bahasa pemrograman seperti Delphi, VB, C++, Java, PHP dsb. DML Call digunakan sebagai alat manipulasi basisdata berupa operasi-operasi CRUDI (Create, Read, Update, Delete dan Insert). Pemrogram aplikasi terkadang harus memrogram sampai pada CLI (Call Level Interace) yang disediakan vendor DBMS agar dapat menghubungkan program dengan DBMS yang digunakan. Contoh CLI adalah ODBC (Open Database Connectifity) dan JDBC (Java Database Connectifity). Pemakai Canggih Pemakai canggih, merupakan pemakai yang berinteraksi langsung dengan DBMS untuk memanipulasi data, dengan cara memberikan perintah-perintah dalam bahasa query basisdata (database query language) ke mesin basis data (tidak memerlukan perantara program aplikasi). Syarat utama agar kelompok pemakai canggih ini dapat bekerja secara optimal dalam memanipulasi data pada mesin DBMS adalah pengetahuannya yang menyeluruh (komprehensif) terhadap struktur data dan skema relasi antar tabel dari database yang diaksesnya Pemakai Terspesialisasi Pemakai terspesialisasi, merupakan aktor yang secara khusus melakukan pengendalian data dan program-program pengakses DBMS, serta mengatur siapa saja pemakai-pemakai yang diperbolehkan mengakses datanya. Pemakai terspesialisasi ini biasanya tidak mengikuti kerangka pemrosesan basisdata tradisional. Contoh pemakai tipe ini adalah Database Administrator yang bertanggung jawab penuh terhadap; Pendefinisian skema konsep basisdata Pendefinisian struktur penyimpanan dan metode pengaksesan Pendefinisian batasan (constrain) untuk integrasi data Perawatan berupa modifikasi skema organisasi fisik Pendifinisian metode atau prosedur backup dan recovery data Pemantauan kinerja DBMS Pemberian dan pembatasan wewenang (otorisasi) pengguna basisdata Pemakai Awam Pemakai awam, merupakan tipe pemakai yang berhubungan secara tidak langsung dengan mesin DBMS dalam rangka memanipulasi data. Pemakai awam memerlukan sebuah interface berupa program aplikasi untuk dapat melakukan manipulasi data dari sebuah database. Biasanya, pemakai awam ini memiliki pengetahuan tentang basis data sebatas pada apa yang dia lakukan terhadap formulir isian (entry form) data. Skema Pengguna Basis Data Pemakai Awam Pemrogram Aplikasi User Mahir Database Administrator Aplikasi Program System Call Query Pola Database DML Precompiler Object Code Program Aplikasi Query Processor DDL Compiler Database Manager File Manager File Data Data Dictionary Disk Storage Perkembang DBMS & Produknya Konsep DBMS bertujuan umum (General Purpose) pertama kali dirancang oleh Charles Bachman dari General Electric (GE) pada tahun 1960-an. DBMS yang dirancangnya disebut Integrated Data Store (IDS) yang menggunakan model data jaringan. Model data jaringan yang dikenalkannya itu kemudian distandarkan oleh Conference on Data System Language (CODASYL). Pada akhir tahun 1960-an, IBM mengembangkan IMS (Information Management System) DBMS yang menggunakan model data hirarki. Kemudian pada tahun 1970, Edgar Codd salah seorang peneliti IBM, mengusulkan DBMS yang menggunakan model data relasional. Kemudian Pada tahun 1990-an, DBMS dikembangkan dengan menggunakan konsep transaksi untuk menjamin integritas basisdata. Aktor utama penerapan konsep transaksi pada DBMS adalah James Gray. Perkembangan DBMS modern saat ini mengarah pada pembuatan fitur-fitur berorientasi aplikasi diatas DBMS. Paket ERP (Enterprise Resource Planning) yang mengidentifikasi sekumpulan tugas-tugas yang sering terdapat di perusahaan-perusahaan besar seperti manajemen inventori, manajemen sumber daya manusia, analisis keuangan, sistem informasi akuntansi dsb. Data disimpan di DBMS dan lapisan aplikasi dapat disesuaikan dengan kebutuhan perusahaan yang berbeda-beda sehingga dapat menekan biaya keseluruhan. Paket ERP saat ini telah dikembangkan oleh Oracle, Baan, PeopleSoft, SAP, Siebel dll. Konsep Komputasi 1-Tier Server * S/O Novell Netware * Non-Database Server Komputasi 1-TIER Proses : * Server mengirim seluruh data ke Client * Searching dilakukan disisi Client * S/O DOS * C ++ * S/O DOS * Foxpro Masalah : * Overload Network & terjadi Collision * Jumlah workstation terlayani terbatas * S/O DOS * Dbase * S/O DOS * Clipper Workstation 1 Workstation 2 Workstation 3 Workstation 4 Cari data BUDI di table SALES Cari data SUSTAGENT di table BARANG Cari data PT. INDOMARINE di table VENDOR Tampilkan seluruh data Penjualan dari sales ID 12345 di table JUAL Konsep Komputasi 2-Tier * S/O: Windows NT, Windows 2000/2003 Server, Linux/Unix * Database Server:Oracle Server, Ms-SQL Server, DB2, MySQL dll. Server Komputasi 2-TIER Back-End & Front-End Proses : Masalah : * Server menerima request data dari Client berupa SQL C o m m a n d * Server mengirim data(RecordSet) sesuai request Java Visual Basic Jika terjadi perubahan bussines rule (rumus, suku bunga, form isian dll.), maka semua Client perlu di re-instalasi program aplikasi Borland Delphi Oracle Developer Client 1 Client 2 Client 3 Client 4 Select * From SALES Where nmsales=‘BUDI’ Select * From BARANG Where nmbarang=‘SUSTAGENT’ Select * From VENDOR Where nmvendor=‘PT. INDOMARINE’ Select * From JUAL Where salesID=‘12345’ Client: Bertindak sebagai User Interface (presentasi data) & tempat bussines logic (SI Keuangan, SI Personalia dll.) berada Konsep Komputasi Multi-Tier (Client-Server) Database Server Komputasi 3-TIER Back-End, Middle-Tier & Front-End S/O: Windows NT, Windows 2000/2003 Server, Linux/Unix Web Server: IIS + ASP, Apache + PHP Web Server Opera * S/O: Windows NT, Windows 2000/2003 Server, Linux/Unix * Database Server:Oracle Server, Ms-SQL Server, DB2, MySQL,Sybase, Informix dll. Internet Explorer Netscape Navigator Mozila Client 1 Client 2 Client 3 Client 4 Select * From SALES Where nmsales=‘BUDI’ Select * From BARANG Where nmbarang=‘SUSTAGENT’ Select * From VENDOR Where nmvendor=‘PT. INDOMARINE’ Select * From JUAL Where salesID=‘12345’ Client: Hanya bertindak sebagai User Interface (presentasi data) Web Server: Tempat bussines logic (SI Keuangan, SI Personalia dll.) berada Oracle ERP Dengan Komputasi Tersebar * Oracle DBA-Tools * Oracle SQLServer Komputasi 3-TIER Back-End, Middle-Tier & Front-End Web Server (MiddleTier) Oracle B O M Oracle Internet Application Server (Oracle IAS) Apache Web-Server + CGI Interface Oracle Work In Process Client 1 Oracle MRP Oracle Capacity Oracle Financial (Inventory, Assete, GL etc.) Client 2 Client 3 Client 4 Pasar DBMS sendiri saat ini telah tersegmentasi pada pemakai aplikasi skala kecil dan besar, baik yang tersdia secara komersial maupun gratis (free dan open source). MySQL dan FireBird merupakan contoh DBMS untuk aplikasi skala kecil. Sedangkan untuk aplikasi skala besar Microsoft SQL server, Oracle, Sybase, PostgreSQL, Borland Interbase Server dsb. Trend komputasi yang terjadi saat ini adalah sistem komputasi tersebar yang didorong oleh alasan keamanan data (tersedianya cadangan/backup data yang memadai dan kemudahan proses recover) dan peningkatan kecepatan akses. Oleh karena itu beberapa software DBMS telah memiliki fasilitas replikasi atau mirroring data serta metode data backup and recovery yang mudah Teknologi RDBMS Relational Database Manajemen System (RDBMS) merupakan penerapan model data relasional pada DBMS, yang diperkaya dengan penerapan konsep transaksi. Teknologi yang diterapkan pada RDBMS adalah; Penerapan standart SQL (SQL86, SQL89, SQL92 dan SQL99) Mendukung pemodelan basisdata lain, seperti: jaringan, hirarki, berorientasi objek dan objek relasi Tiap basis data memiliki mekanisme penyimpanan dan pengaksesan data yang berbeda-beda Beberapa RDBMS mendukung objek lain selain relasi (tabel), seperti Makro/Fungsi Prosedur tersimpan (stored procedure) Rutin keluar Pengaturan hak akses Profile pemakai Relasi dengan basis data, tabel atau kolom Pertimbangan Pengembangan RDBMS Beberapa pertimbangan lain yang dilakukan vendor pada software RDBMS yang dikembangkannya; Dapatkah pemakai mengakses tabel-tabel yang berasal dari beberapa basisdata pada satu waktu Dapatkah pemakai membuat operasi join pada tabeltabel dari beberapa basisdata yang berbeda Dapatkah mengindikasi parameter dan batasan alokasi penyimpanan data Apakah ada pengamanan dan batasan hak akses yang diterapkan pada level basis data dan objek-objek di dalamnya Bagaimana prosedur lock dan unlock table untuk pengaksesan konkuren (Transaction)