Database firebird

  • Published on
    24-Jun-2015

  • View
    2.487

  • Download
    1

Embed Size (px)

Transcript

<ul><li> 1. Database FirebirdDisusun oleh:o Hamudi Setiyawan Prabowo (19112100)o Delon Alfred Gultom (19112142)o Mohamad Kawanto (19113092)</li></ul><p> 2. Database FirebirdHamudi Setiyawan Prabowo | Delon Alfred Gultom | Muhamad Kawanto 2BAB IPendahuluan1.1 Latar BelakangBerbicara tentang Database tidak terlepas dari Teknologi Informasi. Karenaperkembangan Database seiring sejalan dengan berkembangnya Teknologi Informasi. Denganberkembangnya Database maka akan mempengaruhi perkembangan penggunaan komputer.Database merupakan kumpulan data yang disusun dalam bentuk tabel-tabel yang salingberhubungan satu sama lainnya maupun berdiri sendiri. Database untuk saat ini sudah banyakdigunakan atau diimplementasikan untuk keperluan dunia perbankan, bisnis, pendidikan,perpustakaan, manufaktur, dan sebagainya. Database yang digunakan mulai dari Database yangbersifat komersil (DB2, Oracle, SQL Server, dll) sampai ke Database non komersil (My-SQL,PostGreSQL, Firebird, dll) alias gratisan. Pada tulisan ini penulis akan membahas mengenaiDatabase Firebird, mulai dari pengenalan Firebird itu sendiri, installasi sampai denganimplementasinya.1.2 Pengenalan FirebirdFirebird adalah Perangkat Lunak Manajemen Database, seperti halnya DB2 oleh IBM,Oracle, SQL Server oleh Microsoft dan PostGresql. Perangkat Lunak Database mempunyai duautama komponen: server database, yang berjalan dikomputer yang sama sebagai Database, danaplikasi sebagai alat penghubung, yang dikenal sebagai Client Library. Client Library adalahsuatu run-time komponen dari suatu DLL pada Windows atau suatu obyek bersama padaplatforms lainnya. Penyebaran datanya memerlukan Client Workstation untuk mengaksesdatabase baik dari suatu web browser ataupun dari perangkat lunak Database Client lainnya.Server Firebird berukuran sangat kecil footprint pada file system ketika diinstall pada server.Instalasi Server executable memakan ruang penyimpanan Kurang dari 1.5 Mb sedangkaninstalasi full server, mencakup semua tool dan dokumentasi, akan memakan ruangpenyimpanan kurang dari 10 Mb. Pemakaian Memori sangat kecil dan bertukartukar menurutskala penyebaran, yang dapat bekerja mulai pada tingkat single user yang menjalankan suatuaplikasi pada database tunggal sampai ratusan koneksi bersamaan hingga dapat menservisberibu-ribu para pemakai pada jaringan wide-area.Firebird merupakan salah satu database open source yang tangguh dan dapat bekerja secaraClient/Server serta dapat dijalankan pada sistem operasi yang berbeda. Firebird dapat berjalanpada sistem operasi Windows, Linux, FreeBSD dan Mac OS. 3. Database FirebirdHamudi Setiyawan Prabowo | Delon Alfred Gultom | Muhamad Kawanto 3Firebird versi 1.5.x mempunyai kapasitas mencapai 11 Terabytes, sedangkan pada satu tablebisa menampung kira-kira 2.000.000.000 baris per table dan maksimum data yang di tampung30 Gigabytes per table. Sedangkan untuk versi 2.x.x penulis belum mendapatkan informasimengenai kapasitas databasenya. Tetapi penulis yakin kinerja dan kapasitas untuk versibarunya akan lebih baik daripada versi sebelumnya. 4. Database FirebirdHamudi Setiyawan Prabowo | Delon Alfred Gultom | Muhamad Kawanto 4BAB IISistem Basis Data Firebird Firebird2.1 Sejarah FirebirdFirebird termasuk perangkat lunak database non komersil atau gratis atau open source,jadi semua orang dapat memakainya tanpa harus membayar. Firebird ini bermula dari databaseInterbase tahun 1985 dibawah Borland Corporation, karena tahun 1999 Borland mengalamimasalah keuangan maka pengembangan Interbase di hentikan.Sehingga pada Juli 2000 Interbase versi 6 keluar dan didistribusikan kepada publicdengan lisensi open source. Maka pada tahun 2002 dua orang pengembang dari Australiamengeluarkan source code yang diberi nama Firebird dengan lisensi open source.2.2 Perkembangan FirebirdPengembangan codebase Firebird 2 dimulai pada awal pengembangan Firebird 1,dengan memporting kode Firebird 1 berbasis C ke dalam bahasa C++ dan merupakanpembersihan kode secara besar-besaran. Firebird 1.5 merupakan rilis pertama dari codebaseFirebird 2. Pengembangan ini merupakan satu kemajuan signifikan bagi para developer danseluruh tim dalam project Firebird, namun tentu ini bukan akhir dari tujuan. Dengan dirilisnyaFirebird 1.5, pengembangan lebih lanjut difokuskan pada Firebird versi 2.Pada bulan April 2003, Yayasan Mozilla memutuskan mengganti nama web browsermereka dari Phoenix menjadi Firebird. Keputusan ini ditanggapi dengan serius oleh proyekFirebird Database dengan asumsi bahwa hal tersebut bisa membingungkan user karena duaproduk berbeda menggunakan nama yang identik. Protes atas hal ini berlanjut hingga parapengembang Mozilla membuat satu pernyataan yang jelas bahwa nama Firebird dalamkenyataannya adalah Mozilla Firebird. Pernyataan ini juga membuat memperjelas bahwanama Mozilla Firebird merupakan sebuah codename atas proyek web browser yang tengahdikerjakan oleh Mozilla. Pada tanggal 9 Februari 2004, Mozilla akhirnya mengganti kembalinama browser mereka sebagai Mozilla Firefox, Dengan demikian hal tersebut secara otomatismenghilangkan kebingungan para pengguna.Firebird dan Interbase. Firebird (juga disebut FirebirdSQL) adalah sistem manajemenbasisdata relasional yang menawarkan fitur-fitur yang terdapat dalam standar ANSI SQL-99 danSQL-2003. RDBMS ini berjalan baik di Linux, Windows, maupun pada sejumlah platform Unix.Firebird ini diarahkan dan di-maintain oleh FirebirdSQL Foundation. Ia merupakan turunan dariInterbase versi open source milik Borland. Karena itulah Interbase dan Firebird sebenarnyamempunyai CORE yang sama karena awalnya sama dikembangkan oleh Borland. 5. Database FirebirdHamudi Setiyawan Prabowo | Delon Alfred Gultom | Muhamad Kawanto 5Namun dalam perkembangannya, Interbase yang komersial di-bundle oleh Borlandmenjadi Phoenix, sedangkan Firebird adalah interbase yang dikembangkan oleh komunitasOpen Source, sehingga menjadikannya sebagai produk Database Server yang FREE. Kalaudikaitkan dengan support, tentunya jelas beda karena produk komersial dan free. Dalamkonsep teknik programmingnya, ada banyak yang sama, namun pengayaan Firebird lebihbanyak dan menjadikannya lebih luwes, terutama dalam koneksi client-server (port) danintegritasnya. Modul-modul kode baru ditambahkan pada Firebird dan berlisensi di bawahInitial Developers Public License (IDPL), sementara modul-modul aslinya dirilis oleh Inpriseberlisensi di bawah InterBase Public License 1.0. Kedua lisensi tersebut merupakan versimodifikasi dari Mozilla Public License 1.1.2.3 Arsitektur FirebirdChan dan Yaskhir (2002) menjelaskan bahwa Firebird/InterBase dapat dibagi menjadiempat komponen subsistem dan pengaturannya digambarkan seperti sebuah pipa. Komponensubsistem yang menyusun arsitektur utama meliputi:1. Remote Connection System. Subsistem yang menghubungkan klien dengan server.2. SQL Translator. Subsistem yang mengubah SQL (structured query language) menjadi BLR(binary language representation).3. Relational Database Engine. Subsistem yang melakukan pengambilan data secara aktual.4. Lock Manager. Subsistem yang berfungsi sebagai alat kontrol konkurensi. 6. Database FirebirdHamudi Setiyawan Prabowo | Delon Alfred Gultom | Muhamad Kawanto 62.3.1 Remote Connection System (REMOTE)Subsistem REMOTE memungkinkan klien-klien untuk berkomunikasi dengan servermelalui jaringan atau lokal. Komunikasi dari klien dengan server melewati berbagaiprotokol-protokol jaringan. TCP/IP, MS LanManager, dan SPX merupakan protokol-protokol jaringan yang menghubungkan klien dengan server. Subsistem ini terdiri dari duabuah bagian yaitu sisi klien dan sisi server. Sisi klien dan sisi server tersusun dari beberapakode generik dan kode protokol spesifik untuk berkomunikasi. Gambar berikutmenjelaskan susunan dari modul REMOTE.Klien mengirim permintaan kepada server melalui sebuah layer komunikasigenerik. Layer komunikasi generik berkomunikasi melalui sebuah layer protocol spesifik.Layer protokol spesifik berkomunikasi melalui jaringan yang ditangani oleh sistem operasi.Model jaringan klien-server Firebird/Interbase hampir mirip dengan sebuah versi dualayer dari model jaringan OSI Layer. Firebird/Interbase memungkinkan klien dapatberkomunikasi secara lokal melalui modul emulasi koneksi jaringan menggunakan memoriterbagi (shared memory).2.3.2 SQL Translator (DSQL)Subsistem DSQL menerjemahkan permintaan dari SQL ke dalam BLR. BLRmerupakan bahasa asli dari basis data. Arsitektur DSQL mirip dengan compiler sederhanayang terdiri dari sebuah lexer, parser, tabel simbol, dan pembangkit kode. Susunanbagian-bagian DSQL dapat dilihat dalam gambar di bawah. 7. Database FirebirdHamudi Setiyawan Prabowo | Delon Alfred Gultom | Muhamad Kawanto 7Lexer, parser, dan pembangkit kode tersusun secara pipeline seperti padasetiapkompiler. Lexer membagi masukan menjadi token-token. Parser menentukan arti darimasukan. Pembangkit kode menghasilkan kode BLR yang ekuivalen dengan kode SQL yangdimasukkan.2.3.3 Relational Database Engine (JRD)JRD (Jims Relational Database) merupakan subsistem yang melakukanpengambilan data secara aktual. Subsistem JRD mengeksekusi permintaan danmengembalikan hasil eksekusi tersebut. JRD menangani akses ke dalam ruang penyimpanmelalui sebuah subsistem virtual IO. JRD melakukan verifikasi keamanan dan memastikanbahwa transaksi data ditangani secara otomatis. JRD mempunyai beberapa subsistempendukung yang masing-masing berfungsi untuk menangani dan memproses permintaan.Susunan dari subsistem pendukung JRD dapat dilihat dalam gambar berikut.Di dalam JRD sebuah permintaan ditangani oleh sebuah kompiler. Kompilermenterjemahkan BLR menjadi sebuah representasi internal dari permintaan yang masuk.Representasi internal memanggil subsistem metadata (MET). MET menghasilkanmetadata sesuai dengan permintaan dan memastikan tabel yang diminta terdapat dalambasis data.Permintaan diproses oleh subsistem Exec dan B-tree ketika permintaan tersebutterkait dengan proses indeks. Hak akses pengguna diperiksa oleh subsistem-subsistem 8. Database FirebirdHamudi Setiyawan Prabowo | Delon Alfred Gultom | Muhamad Kawanto 8exec dan security. Eksekusi atom dari beberapa permintaan diperiksa oleh subsistem execdan transaction. Subsistem exec dan sort digunakan ketika terdapat permintaan untukmengurutkan. Konkurensi data ditangani oleh subsistem exec dan lock handler.Subsistem virtual IO merupakan sebuah sistem layer dengan tiga buah layer didalamnya. Layer teratas memuat metode abstrak untuk mengakses data pada ruangpenyimpan. Layer kedua merupakan cache manager yang menangani proses cache.Proses cache bertujuan mempercepat akses data. Layer kedua merupakan layer terakhiryang menggunakan konsep struktur data basis data. Layer terakhir merupakan layerphysical IO. Layer terakhir berhubungan dengan sistem operasi pada mesin yangdigunakan dan membuat system call untuk pengaksesan data ke ruang penyimpan.2.3.4 Lock Manager (LOCK)Subsistem LOCK menangani proses sinkronisasi transaksi. Fungsi utama subsistemLOCK adalah alat kontrol konkurensi bila terdapat banyak pengguna yang mengakses satuberkas basis data yang sama secara bersamaan. Situasi konkurensi biasa terjadi dalamoperasi normal setiap DBMS.LOCK terdiri dari dua komponen utama yaitu submodul lock handler pada JRD danlock table diluar JRD. Permintaan yang memerlukan mekanisme penguncian dapat dibagimenjadi dua kategori utama yaitu permintaan modifikasi metadata dan permintaan databiasa. Mekanisme penguncian terjadi ketika permintaan menggunakan lock handler.Sebuah mekanisme penguncian pada data yang diinginkan akan masukan padapermintaan ketika terdapat permintaan modifikasi metadata. Mekanisme pengunciandilepaskan kembali setelah proses modifikasi dilakukan. Sebuah lock handler dapatmenunggu beberapa saat jika masih terdapat mekanisme penguncian yang belumdilepaskan. Lock handler melakukan eksekusi normal setelah mekanisme penguncian yanglain telah dilepaskan pada data yang diinginkan. LOCK menunggu permintaan daribeberapa lock handler dan melakukan modifikasi ke lock table untuk mendaftarkanmekanisme penguncian yang ada. 9. Database FirebirdHamudi Setiyawan Prabowo | Delon Alfred Gultom | Muhamad Kawanto 92.3.5 Operasi FirebirdPada Firebird, terdapat berbagai langkah untuk mengeksekusi setiap permintaan.Proses penambahan sebuah tabel baru sesuai dengan perintah SQL pada Interbasemembutuhkan langkah-langkah seperti berikut:1. Permintaan berawal dari aplikasi pengguna di sisi klien.2. Permintaan dikemas dan dikirim melalui jaringan yang dipakai ke sisi server.3. Memanggil DSQL untuk mengubah permintaan SQL menjadi BLR.5. Memanggil JRD dan CMP untuk kompilasi permintaan BLR.6. Memanggil Exec untuk mengeksekusi permintaan dan memanggil MET.7. Eksekusi dilakukan di MET ketika terdapat permintaan untuk memodifikasi metadatadalam basis data.8. Memanggil lock handler untuk memperoleh sebuah mekanisme penguncian padametadata yang digunakan.9. Lock handler memanggil LOCK untuk menambah mekanisme penguncian yangdiinginkan ke dalam lock table.10. MET memanggil virtual IO library untuk melakukan perubahan pada ruang penyimpan.11. Rutin penanganan ruang penyimpan dijalankan tergantung dari sistem berkas yangdigunakan.12. MET memanggil lock handler untuk melepaskan mekanisme penguncian danmelepasnya dari lock table ketika eksekusi selesai.13. JRD memanggil modul REMOTE untuk mengembalikan pesan sukses atau gagal kepadapengguna.14. Modul REMOTE meneruskan pesan dari JRD melalui jaringan dan sampai pada aplikasipengguna.Proses pencarian baris pada suatu tabel menggunakan perintah SQL dalamInterbase membutuhkan langkah- langkah sebagai berikut:1. Permintaan dibuat pada aplikasi pengguna di sisi klien.2. Modul REMOTE mengirim permintaan ke sisi server dan memanggil DSQL.3. DSQL mengubah permintaan SQL menjadi BLR4. Memanggil JRD dan CMP mengkompilasi permintaan.5. EXEC mulai mengeksekusi permintaan.6. Memanggil virtual IO untuk mendapatkan tabel yang sesuai.7. Memeriksa cache untuk data yang diminta.8. Rutin pencarian dilakukan didalam modul b-tree untuk mencari baris menggunakanindeks yang sesuai.9. Memanggil modul REMOTE untuk mengembalikan hasil pencarian kepada aplikasipengguna. 10. Database FirebirdHamudi Setiyawan Prabowo | Delon Alfred Gultom | Muhamad Kawanto 102.4 Kemampuan dan Kelebihan FirebirdKita bisa melihat berbagai macam aktivitas dan kemampuan Firebird pada situsofficialnya yang beralamat di www.firebirdsql.org. Banyak sekali fasilitas menarik yangditawarkan oleh Firebird (ini bisa dibandingkan dengan fasilitas yang ditawarkan oleh MySQL).Firebird memiliki rata-rata fasilitas yang dimiliki oleh sebuah komersial database misalnyaseperti stored procedure, trigger, sistem backup, replikasi dan tools sql yang lengkap. Firebirdjuga support dengan ANSI SQL yang berarti akan semakin memudahkan Anda dalam prosesmigrasi antar database platform.Beberapa kemampuan dari open source DBMS ini antara lain:(1) Firebird support dengan transaksi layaknya pada database komersial lainnya. Sebuahtransaksi bisa di-commit atau di...</p>