Database / IB-Firebird

Dasar Interbase/Firebird Database Server [Bagian I]


I. Pendahuluan

Borland Interbase Server (Selanjutnya kita sebut IB saja) adalah database server yang sangat handal dan sangat terkenal dikalangan programmer yang menggunakan Borland Delphi sebagai alat untuk mengembangkan aplikasi database-nya. Firebird Server (selanjutnya kita sebut Firebird saja) bisa dibilang sebagai “adik sepupu” dari IB karena fitur dan perluasan bahasa SQL-nya sangat mirip dengan IB. Firebird juga dapat diartikan sebagai versi free dari IB. Dalam tutorial ini, saya akan coba menjabarkan bagaimana cara instalasi Firebird, Administrasi database, koneksi ke IB/Firebird via command line(menggunakan MS-DOS/ cmd.exe) dan via GUI (Graphical User Interface). Khusus untuk koneksi database via GUI, kita akan menggunakan IBO Console yang dapat didownload di situs resmi firebird (www.ibphoenix.com). Interface dari IBO Console sangat mirip dengan IBConsole (GUI tool IB yang langsung terinstall saat anda melakukan instalasi IB server secara default). IBO Console diperlukan disini karena Firebird Server secara default tidak memiliki console GUI untuk administrasi dan management databasenya, disamping itu fitur IBO Console lebih lengkap (menurut opini saya pribadi ) dari IBConsole bawaan IB, dan yang paling penting IBO Console adalah Freeware . Selain itu, saya juga akan membahas bagaimana cara untuk membuat database, table, view, generator, stored procedure dan trigger, dan sebagainya.

II. Instalasi Firebird

Sebelum memulai tutorial ini, anda harus sudah memasang IB/Firebird pada komputer anda. Bila anda sudah menginstal Delphi (Delphi 6 atau yang lebih baru) Profesional/ Enterprise edition dengan mode instalasi default, maka IB sudah terinstalasi pada system anda. Untuk menginstal Firebird, anda harus mendownloadnya terlebih di situs resminya (www.ibphoenix.com). Apabila anda belum memiliki binary/ installer Firebird Server, anda dapat mendownloadnya di situs resmi Firebird (www.ibphoenix.com).

Dalam tutorial ini, saya menggunaka Firebird Server versi 2.0.1 dengan platform Microsoft Windows XP SP1.

Setelah Firebird berhasil anda download, maka lakukanlah pemasangan Firebird dengan langkah-langkah seperti dibawah ini :

  1. Klik ganda pada binary/ setup file Firebird yang baru anda download.

Klik OK untuk melanjutkan proses instalasi.

  1. Setelah muncul Welcome Screen Instalasi Firebird, Klik next.

  2. Setelah muncul jendela ‘License agreement’, centang pilihan ‘I accept the agreement’, kemudian klik ‘Next’.

  3. Pilih lokasi instalasi Firebird anda (Defaultnya adalah C:\Program Files\Firebird\Firebird_2_0), kemudian klik ‘Next’. Pada pilihan ‘Install Component’, pilihlah pilihan-pilihan yang ada seperti gambar dibawah ini, klik ‘Next’.

  4. Bila pilihan additional task sudah muncul, isilah pilihan-pilihannya seperti gambar dibawah ini, kemudian klik ‘Next’

Kemudian klik install. Tunggu sampai instalasi selesai. Bila jendela konfirmasi untuk me reboot/ restart computer muncul, klik Yes/ Ok .

III. Management Database

  1. Via Command Line

Catatan :

Untuk membuka Command Line, pilih ‘Start->Run’, kemudian ketik ‘cmd’ (tanpa tanda petik) lalu klik tombol ‘Ok’.

Sebelum melakukan operasi pada Command Line, pertama-tama, tambahkan terlebih dahulu path lokasi instalasi Firebird kedalam Path system environtment computer anda. Untuk menambahkan Path Firebird kedalam Path system environtment, Lakukan langkah-langkah seperti dibawah ini :

  1. Klik kanan pada icon ‘My Computer->Properties’ yang ada pada desktop atau dapat juga dengan meng-klik ‘Start->control Panel->System’.

  2. Pilih Tab ‘Advanced’ dan klik ‘Environtment Variables’.

  3. Pada Kotak ‘User Varibles for xxx’ (dimana xxx adalah nama computer anda), apabila variable ‘PATH’ belum ada, maka klik tombol ‘New’ dan masukkan ‘PATH’ (tanpa tanda kutip) pada isian ‘Variable Name’, dan lokasi directory bin Firebird (missal anda menginstal Firebird pada lokasi ‘C:\Program Files\Firebird\Firebird_2_0’, maka lokasi directory bin Firebird Server adalah ‘C:\Program Files\Firebird\Firebird_2_0\bin’ tanpa tanda kutip) anda pada isian ‘Variable Value’. Sedangkan bila variable ‘PATH’ sudah ada, klik ‘PATH’, kemudian tekan tombol ‘Edit’. Setelah itu, tambahkan lokasi directory bin Firebird Server pada kotak isian ‘Variable Value’. Ingat, untuk memisahkan variable value, gunakan semi colon (tanda titik koma) pada akhir PATH yang sudah ada, missal (c:\php;C:\Program Files\Firebird\Firebird_2_0\bin)

  1. Management User

Secara default SuperUser pada IB/Fireberd adalah ‘sysdba’ dan password defaultnya adalah ‘masterkey’ (tanpa tanda kutip). Untuk alasan keamanan, ubahlah password SuperUser anda setelah instalasi IB/Firebird. Dalam melakukan operasi penambahan/pengubahan/penghapusan data user, dibutuhkan hak akses SuperUser atau user yang memiliki hak akses untuk menambah/mengubah/menghapus data yang ada pada table RDB$USERS pada database security2.fdb.

Dalam melakukan operasi management user, dibutuhkan program gsec.exe yang ada pada directory bin IB/Firebird. Untuk melakukan operasi ini, buka Command Line dan tulislah:

gsec -user A -pass B –<op> C -pw D

Penjelasan :

    • parameter –user A adalah user yang melakukan operasi. Dalam hal ini yang melakukan operasi adalah user yang bernama A.

    • parameter –pass B adalah password user yang melakukan operasi. Dalam hal ini password A adalah B

    • parameter <OP> C adalah operasi yang dikenakan pada user C dimana <op> adalah operasi yang dilakukan.

Pilihan <op> adalah :

      1. add untuk melakukan penambahan user ,

      2. mo untuk mengubah user (modify), dan

      3. del untuk menghapus user (delete).

Dalam hal ini, operasi yang dilakukan dikenakan pada user yang bernama C.

    • Parameter –pw D adalah password yang digunakan oleh C dimana D adalah password dari C. parameter ini hanya diperlukan pada operasi penambahan dan pengubahan user saja. Untuk operasi penghapusan user, parameter ini tidak diperlukan.

Missal :

    • Operasi untuk menambah user dengan nama user1 dan password pwuser1

gsec -user sysdba -pass masterkey -add user1 -pw user1

    • Operasi untuk mengubah password user dengan nama user1 dan password barunya adalah user123

gsec -user sysdba -pass masterkey -mo user1 -pw user1

    • Operasi untuk menghapus user dengan nama user1

gsec -user sysdba -pass masterkey -del user1

  1. Operasi Database

      1. Membuat Database & Koneksi Database

Untuk membuat database, diperlukan program isql.exe yang ada pada directory binIB/Firebird. Dalam pembuatan database, usahakan sebisa mungkin tidak menggunakan superuser (sysdba), karena sysdba memiliki control penuh pada IB/Firebird Server anda serta dapat melakukan apa saja pada server IB/firebird, termasuk merusak struktur, isi, serta data-data penting yang ada pada database anda. Gunakanlah sysdba hanya untuk management user saja.

Membuat Database

Untuk membuat database baru, bukalah terlebih dahulu Command Line, kemudian ketik ‘isql’ (tanpa tanda petik), lalu tekan enter.

Setelah muncul prompt SQL> , ketik

CREATE DATABASE ‘A’ page_size 1234 user ‘B’ password ‘C’;

Penjelasan :

    • A adalah nama database beserta full path nya, missal : c:\data\test.fdb atau d:\my data\test.gdb

    • 1234 adalah ukuran page size dari database. Nilai – nilai page size dapat diisi dengan 1024,2048,4096,8192,16384, dan kelipatannya. Secara default, ukuran dari page size adalah 1024.

    • B adalah nama user yang membuat (pemilik) database.

    • C adalah password user pembuat database.

Contoh:

CREATE DATABASE ‘c:\data\POS.fdb’ page_size 1024 user ‘user1’ password ‘user1’;

Kemudian klik Enter.

Maka akan terbentuk database bernama POS.fdb dengan lokasi di c:\data (di drive C pada directory data).

Koneksi ke Database

Untuk koneksi ke database, pada isql, ketik

CONNECT ‘A’ USER ‘B’ PASSWORD ‘C’;

Penjelasan :

  • A adalah nama beserta lokasi lengkap (full path) dari database

  • B adalah nama user yang akan melakukan koneksi kedalam database.

  • C adalah password user yang akan melakukan koneksi.

Contoh :

CONNECT ‘c:\data\POS.fdb’ USER ‘user1’ PASSWORD ‘user1’;

      1. Backup/Restore

Backup dapat diartikan sebagai salinan dari file program atau dalam hal ini file database yang dibuat untuk memberi jaminan agar data yang ada tidak hilang atau terhapus apabila terjadi sesuatu pada file aslinya.

Sedangkan Restore dapat diartikan sebagai proses pengembalian file/data dari file backup yang dibuat sebelumnya untuk merecovery kerusakan file asli atau mengembalikan data file asli sesuai dengan isi data file asli saat dibuatnya file backup.

Untuk melakukan backup/restore database, diperlukan program gbak.exe yang ada pada directory bin IB/Firebird.

Secara umum untuk melakukan standard backup/restore, dapat dilakukan dengan mengeksekusi perintah berikut pada Command Line:

Gbak A –[b] B –user C –pas D

Penjelasan

Gbak adalah program yang dipanggil untuk melakukan operasi backup/restore

A adalah file input. Untuk backup, file inputnya berupa file IB/Firebird database (Extensinya : *.gdb | *.fdb | *.ib). Sedangkan untuk operasi restore inputnya berupa file backup (Extensinya : *.gbk | *.fbk | *.ibk).

[b] adalah operasi yang dilakukan. Operasi-operasi dalam penggunaan gbak adalah

B(ACKUP_DATABASE) backup database ke dalam file

-BU(FFERS) override page buffers default

-C(REATE_DATABASE) membuat database dari backup file

-CO(NVERT) backup external files sebagai tabel

-E(XPAND) tanpa kompresi data

-FA(CTOR) blocking factor

-G(ARBAGE_COLLECT) mencegah data sampah

-I(NACTIVE) mematikan indek saat restore

-IG(NORE) mengabaikan bad checksums

-K(ILL) restore tanpa membuat shadows

-L(IMBO) abaikan transaksi dalam limbo

-M(ETA_DATA) hanya backup metadata

-MO(DE) <access> “read_only” or “read_write” access

-N(O_VALIDITY) tidak merestore kondisi validitas database

-NT Format backup file Non-Transportable

-O(NE_AT_A_TIME) restore satu tabel saja

-OL(D_DESCRIPTIONS) simpan deskripsi metadata yang lama

-P(AGE_SIZE) override page size default

-PAS(SWORD) Firebird password

-R(ECREATE_DATABASE) [O(VERWRITE)] membuat (atau mengganti bila OVERWRITE digunakan) database from backup file

-REP(LACE_DATABASE) mengganti database dari file backup

-RO(LE) Firebird SQL role

-SE(RVICE) gunakan manager service

-T(RANSPORTABLE) transportable backup-data dlm format XDR

-USE_(ALL_SPACE) tanpa membuat cadangan untuk versi record

-USER Firebird user name

-V(ERIFY) laporkan tiap aksi yang diambil

-Y <path> redirect/suppress status message output

-Z cetak version number

Contoh :

Backup :

Gbak c:\POS.fdb –b c:\POS_2007_aug_16.fbk –user user1 –pas user1

Perintah diatas akan membuat file backup yang bernama POS_2007_aug_16.fbk yang terletak di drive c:\ dari file database yang bernama POS.fdb yang terletak pada drive c:\. Operasi backup ini dilakukan oleh user1 dengan password dari user1 adalah user1.

Restore :

Gbak c:\POS_2007_aug_16.fbk –c c:\POS_Restore.fdb –user user1 –pas user1

Perintah diatas akan membuat file database yang bernama POS_Restore.fdb yang terletak pada drive c:\. Dimana POS_Restore.fdb ini dibuat dari backup file bernama POS_2007_aug_16.fbk yang terletak di drive c:\. Operasi ini dilakukan oleh user yang bernama user1 dengan passwordnya adalah user1 juga.

21 thoughts on “Dasar Interbase/Firebird Database Server [Bagian I]

  1. Mas,saya mau tanya…
    kalo masukin karakter kutip satu(‘) ke data base gimana?
    ato akses database tapi tanpa kutip satu(‘)..ada ga?
    saya bingung ni dengan adanya kutip satu(‘)…

  2. @Aziz
    Maksudnya dari aplikasi yang mas buat atau dari console databasenya?]
    Kalo maksud mas dari aplikasi yang mas buat,tanda petik tunggal ditulis 2x. Misal :

    a : string;
    a:= 'Nama saya adalah ''rudi''';
    writeln(a);

    output : >> nama saya adalah ‘rudi’

    untuk fungsi(function)-nya, bisa digunakan fungsi quotedstr();

    misal :
    a:string;
    a:= 'Nama saya adalah '+quotedstr('rudi');

    Output : >> nama saya adalah ‘rudi’

    Semoga membantu

  3. Tip untuk setting :
    1. Database Pages (1024,2048,4098,8192)
    2. database Cache Buffers
    3. Sweep
    4. etc…
    Gimana bro ???

    database server gwe lagi Lambat…buanget/……….
    hampir stack…

  4. mas saya pake firebird dgn toolnya ibexpert, koneksinya dengan delphi saya pake interbase aja. tp masih sering error.
    ada saran lain ngk mas?
    thanks before

    • Pakenya component IBX yah?!servernya pake firebird yang versi berapa?!Tiap release baru,. biasanya ada penambahan dan pengurangan/penggantian kata tercadang/ keyword untuk perintah consolenya, coba mas cek dulu “JIKALAU” mas upgrade firebird servernya (misal mas buat database tsb di versi firebird yang berbeda). Biasanya perubahan2/ penambahan2 fitur dan kata tercadang sudah dicantumkan dalam “quick start” atau “what news”nya.Kalau masalah extention file, saya sarankan untuk pake *.fdb dan jika mas pake component IBX, saya sarankan migrasi memakai komponen MDO (Mercury Database Object) karena komponent tersebut sangat mirip dengan IBX. Tapi sepertinya, masalah error tsb karena tidak compatiblenya versi interbase/firebird server saat mas buat databasenya dgn firebird server yang mas pakai sekarang ini.

      Semoga Membantu..
      Reshi Mahendra

  5. iya mas ternyata problemnya tdk kompatible,
    sekarang saya beralik pake zeos sbg konektornya ke firebird dari delphi udh lancar. tp skrg permasalahannya saya mau nyimpan file image (format jpeg&bitmap) masih ngk bisa. errornya diparameter sub type field blobnya, caranya agar image bisa disimpan di record firebirdnya gmn ya?

    thanks
    banja

    • Untuk save image (blob image) ke dalam firebird mas Banja bisa menggunakan procedure dibawah ini (Procedure dibawah hanya dapat digunan pada Component turunan dari TDataset, misal TTable, TIBTable, TMDOTable (kalau menggunakan Mercury Database Object), etc. Procedure dibawah hanya untuk turunan TDataset jenis table) :

      Pertama, Tambahkan DBTables pada clause uses. Unit DBTables berfungsi untuk dapat memanggil fungsi CreateBlobStream

      Kedua, Tambahkan Baris dibawah ini pada bagian Private atau Public (kalau mas Banja akan menggunakannya agar bisa dipanggil dari form lain) :

      procedure SimpanBlobField(Tabel : TDataSet;NamaField,AlamatGambar:string);

      Parameter :
      Tabel : Nama tabel yang akan dipakai untuk operasi penyimpanan
      NamaField : Nama Kolom/Field blob yang untuk gambar
      AlamatGambar : Filepath gambar
      Ketiga, pada procedure SimpanBlobField, tambahkan kode dibawah.
      procedure TForm1.SimpanBlobField(Tabel : TDataSet;NamaField,AlamatGambar:string);
      var
      fs: TFileStream;
      blob: TBlobStream; //Ingat untuk menyertakan "DBTabel" pada Clause Uses
      begin
      blob := TBlobStream(Tabel.CreateBlobStream(Tabel.FieldByName(NamaField), bmWrite));
      try
      blob.Seek(0, soFromBeginning);
      fs := TFileStream.Create(AlamatGambar, fmOpenRead or fmShareDenyWrite);
      try
      blob.CopyFrom(fs, fs.Size);
      finally
      fs.Free;
      end;
      finally
      blob.Free;
      end;
      end;

      Keempat, Sintaks untuk memanggil procedure (digunaakan pada saat operasi save data) : SimpanBlobField(MDOTable1,'GAMBAR','F:\Breakout_Dancer_by_Dapperdan10.jpg');
      Diasumsikan memakai component MDOTable, operasi dikenakan pada kolom/field bernama ‘Gambar’, dan FilePath penuh (beserta nama filenya) tempat gambar disimpan : ‘F:\Breakout_Dancer_by_Dapperdan10.jpg’

      Contoh :
      MDOTable1.Append;
      MDOTable1.Fields[0].AsInteger := 4;
      MDOTable1.Fields[1].AsString := 'Test';
      SimpanBlobField(MDOTable1,'GAMBAR','F:\Breakout_Dancer_by_Dapperdan10.jpg');
      MDOTable1.Post;

      Catatan :
      1. File gambar yang didukung hanya file format *.BMP
      2. Contoh diatas menggunakan MDOTable dari mercury

      Semoga Membantu

      Salam,
      Reshi Mahendra

  6. saya ingin membuat program database multi user dengan interbase, kira2 dimana saya bisa mendapatkan contoh2nya ya Mas, atas bantuannya saya ucapkan terimakasih

    • @Mas Herman,

      Mas bisa menemukan contoh database Interbase/ Firebird di C:\Program Files\Firebird\Firebird_X_X\examples, atau jika mas menggunakan delphi, mas bisa juga temukan samplenya di C:\Program Files\Common Files\Borland Shared\. kalo mas mau googling juga banyak kok contoh-contohnya mas😉

      Salam,

      Reshi Mahendra

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s