UTAMA
Ulasan CD | Klinik | Ulasan | Linux Ready | Utama | Bisnis | Feature | Tutorial
Pilah-pilih Database di Linux
Pilah-pilih Database di Linux Salman Agus Supriadi
Database di dunia komputer memang sudah menjadi bagian yang sangat penting. Hampir semua aplikasi memakai database sebagai tulang punggung. Lantas, database apa yang ada di Linux?
B
eberapa situs besar semacam google.com atau amazon.com sangat mengandalkan database. Tak terkecuali situs-situs berita semacam astaga.com atau detik.com yang mengantarkan berita hangat secara cepat setiap saat. Untuk situs-situs seperti ini, unjuk kerja yang cepat merupakan faktor pertimbangan utama. Berbeda dengan aplikasi-aplikasi perbankan yang sangat mengandalkan keamanan transaksi.“ “Berbagai database server yang berjalan di sistem operasi Linux telah ikut serta meramaikan pasar. Ada yang menganut lisensi GPL (GNU Public Licence) dan ada pula yang komersial. Ada yang mempunyai fitur yang wah dan lengkap, bahkan yang mempunyai fitur-fitur terbatas pun ada. Bisa disebutkan di antaranya adalah MySQL, PostgreSQL, Firebird, Interbase, DB2, Sybase, SAP-DB, bahkan Oracle.“ “Bagaimana memilih database? Pertanyaan yang mudah tapi sulit menjawabnya. Karena akan sangat relatif. Banyak sudut pandang yang harus diperhatikan. Fitur yang dibutuhkan, kecepatan kerja, lingkungan server akan
34
INFOLINUX SEPTEMBER 2003
diimplementasikan, biaya yang harus dikeluarkan, dan sebagainya.“ “Alih-alih mempermasalahkan mana yang terbaik, di edisi ini dibahas dua database server yang populer saat ini, yaitu MySQL dan PostgreSQL. Selain itu, karena hanya dua database ini yang sering disertakan dalam distribusi Linux yang ada di pasaran.“ “MySQL yang mendeklarasikan diri sebagai "The World's Most Popular Open Source Database" memang sudah menjadi standar de facto untuk aplikasi berbasis web yang online di Internet. Database server yang mengutamakan unjuk kerja yang cepat ini menjadi standar database server untuk layanan-layanan web hosting. Bahkan MySQL AB, perusahaan yang mengembangkan MySQL menyebutkan sudah lebih dari 4 juta mesin yang diinstal MySQL. Banyak institusi besar yang memakai MySQL ini, sebagai contoh adalah Yahoo! Finance, MP3.com, Motorola, NASA, Silicon Graphics, dan Texas Instruments. Database ini tumbuh dan berkembang di kalangan praktisi software sehingga proses pengembangannya pun sangat berorientasi pada user.“
www.infolinux.web.id
“Sedangkan PostgreSQL adalah database yang kaya akan fitur. Tak kalah dengan MySQL, para pengembang dabase server yang satu ini mendeklarasikannya sebagai "The most advanced Open Source Database System in the World". Database ini mempunyai komunitas yang kuat di kalangan pendidikan. Karena ia memang tumbuh dan berkembang di dunia pendidikan. Bahkan perkembangannya pun pernah terhenti sesaat karena alasan pendidikan. Karena dipandang waktu yang diperlukan untuk dukungan teknis support lebih besar dari pada waktu untuk riset. Pengembangan PosgreSQL didukung oleh perusahaan besar dari berbagai negara seperti Red Hat, Inc., Afilias Limited, dan Digital Distribution Global Financial Services Pty. Ltd.“ “Akan tetapi untuk menentukan database mana yang tepat untuk aplikasi yang akan dibangun, cara yang paling tepat menurut saya adalah mencoba terlebih dahulu database yang ada. Setelah itu pilih database yang sesuai dengan karakter aplikasi yang akan dibangun.“
UTAMA
Ulasan CD | Klinik | Ulasan | Linux Ready | Utama | Bisnis | Feature | Tutorial
Pilah-pilih Database di Linux
LAMP
Platform Ampuh Aplikasi Database Berbasis Web
Membangun aplikasi e-commerce di Linux itu mudah dan murah. Dengan menginstal salah satu distro, misalnya Red Hat atau Mandrake, sistem Linux Anda sudah siap dijadikan server database berbasis web. AMP adalah singkatan dari LinuxApache-MySQL-PHP. Istilah ini mulai dikenal di kalangan programer Jerman kemudian merebak di kalangan programer web sedunia. Situs-situs khusus yang membahas masalah ini banyak sekali termasuk di dalamnya http://www.onlamp.com. Akronim LAMP juga semakin meluas artinya. Ia bisa menjadi Linux-Apache-MySQLPerl, Linux-Apache-MySQL-Python, atau bahkan menjadi Linux-ApacheMySQL-Ruby. Tapi dalam pembahasan kita ini, definisi pertama yang akan kita gunakan. Terlepas dari maksud akronim yang dipakai, LAMP adalah tempat yang nyaman untuk mengembangkan software berbasis web. Apache adalah web server yang kompak, modular, mengikuti standar protokol HTTP, dan tentu saja sangat digemari. Kesimpulan ini bisa didapatkan dari jumlah pengguna yang jauh melebihi para pesaingnya. Sesuai hasil survai yang dilakukan oleh Netcraft, bulan Juni 2003 saja jumlahnya tidak kurang dari 63% pangsa web server yang berjalan di Internet. Ini berarti jika semua web server selain Apache digabung, masih belum bisa mengalahkan jumlah Apache. Saat ini ada dua versi Apache yang bisa dipakai untuk server produksi, yaitu versi 2.0 dan versi 1.3. Anda bisa menggunakan salah satu dari keduanya. PHP adalah bahasa pemrograman serbaguna yang sangat cocok untuk pemrograman web karena bisa langsung disisipkan dalam halaman HTML. Kepopuleran PHP bisa dilihat indikasinya dari jumlah domain yang memakai PHP. Masih dari hasil survai Netcraft, sampai bulan Mei 2003, PHP digunakan oleh nyaris 13 juta domain. Gejala lain yang bisa diamati adalah
munculnya berbagai user group dan situs yang mengkhususkan diri membahas PHP. Kelebihan PHP dibandingkan dengan bahasa pemrograman yang lain misalnya adalah dukungan terhadap berbagai protokol. Sebutkan saja misalnya FTP, IMAP, dan LDAP. Kebutuhan akses database server juga difasilitasi untuk berbagai database server yang ada, misalnya mSQL, ODBC, PostgreSQL, dan MySQL tentu saja. MySQL adalah server database yang mendukung standar sintaksis ANSI SQL 99. Beberapa fitur yang penting dari MySQL adalah: Cross-platform support, MySQL bisa bekerja di berbagai sistem operasi. Mendukung transaksi, beberapa perintah bisa digabung menjadi satu kesatuan. Independent storage engines, Anda bisa memilih sistem penyimpanan database dalam berbagai format
L
misalnya InnoDB, MyISAM, dan sebagainya. Query caching. Replication. Full-text indexing and searching. MySQL adalah database kelas ringan berat yang sangat populer di dunia web. Ringan karena unjuk kerjanya yang cepat, berat karena tidak hanya dipakai untuk aplikasi-aplikasi kecil. MySQL sendiri tersedia dengan dua versi lisensi, yaitu GPL dan Komersial. Untuk lebih jelasnya Anda bisa melihat situs resmi MySQL di http://www.mysql.com/. Beberapa paket yang siap pakai dengan platform LAMP juga sudah tersedia di Internet. Yang harus dilakukan adalah memodifikasi dan kustomisasi paket tersebut sesuai dengan kebutuhan kita. Tilik saja persaingan ketat antara phpnuke dan postnuke untuk membuat aplikasi situs portal secara cepat. Dalam
Gambar 1. Test page Apache web server
www.infolinux.web.id
INFOLINUX SEPTEMBER 2003
35
UTAMA
Ulasan CD | Klinik | Ulasan | Linux Ready | Utama | Bisnis | Feature | Tutorial
Pilah-pilih Database di Linux
golongan ini bisa juga disebut proyek phpreactor dan phpweblog yang lebih kecil skop komunitasnya. Untuk aplikasi manajemen database bisa dipakai phpmyadmin untuk database MySQL, versi untuk database PostgreSQL pun juga tersedia. Bagi yang tertarik dengan webmail ada pilihan Basilix, squirrelmail, atau IMP. Aplikasi forum diskusi phpBB dan phorum juga siap digunakan. Dengan kata lain, aplikasi apapun yang akan Anda bangun sudah tersedia berbagai library dan aplikasi yang siap untuk diintegrasikan.
Instalasi LAMP LAMP adalah platform bebas. Anda bebas memilih software yang disukai. Termasuk Anda bebas memilih cara instalasi yang menurut Anda lebih baik. Karena demikian banyak distribusi Linux yang tersedia dan masing-masing mempunyai aturan yang tidak sama, maka pada artikel ini hanya akan dibahas instalasi menggunakan paket manajemen software milik Red Hat dan instalasi dari kode sumber secara langsung. Mengapa mesti Red Hat? Karena secara de facto distribusi Red Hat telah menjadi standar distribusi Linux dan mempunyai komunitas yang besar. Selain itu, banyak distro Linux yang merupakan turunan langsung dari Red Hat. Bagi pembaca yang bukan pengguna Red Hat masih bisa mengikuti tulisan ini dengan menginstal dari kode sumber. Meskipun bagi sebagian orang cara ini dianggap sulit dan bertele-tele. Akan tetapi dengan mengikuti tulisan ini, Anda akan bisa menginstal lingkungan pengembangan aplikasi web Anda tanpa banyak mendapatkan kesulitan. Asumsi yang diambil adalah Anda sudah menginstal sistem operasi Linux Anda dengan benar. Sumber informasi yang bisa dipakai untuk menginstal Linux di komputer Anda adalah edisiedisi majalah InfoLINUX terdahulu atau Buku Mini InfoLINUX Red Hat9. Jika pada saat instalasi Linux Anda sudah memilih aplikasi server, database dan development, kemungkinan besar Apache, MySQL, dan PHP sudah terinstal dengan baik.
36
INFOLINUX SEPTEMBER 2003
Instalasi dengan RPM di Red Hat Ini adalah cara termudah yang bisa digunakan jika distro Linux yang Anda gunakan mendukung RPM. Dalam kasus Red Hat—penulis memakai Red Hat 9—Anda memerlukan CD pertama dan kedua dari tiga CD distribusi. Anda bisa mendapatkan CD tersebut dari situs Red Hat atau dari buku Red Hat yang diterbitkan majalah InfolLINUX yang menyertakan 3 CD Red Hat 9. Apache, MySQL, dan PHP juga disertakan dalam CD InfoLINUX edisi September 2003 ini. Atau jika Anda ingin mencari versi terbaru, download saja file-file yang diperlukan dari situs download atau dari http://rpmfind.net. Jika langkah terakhir ini yang ingin Anda lakukan, coba cari daftar file berikut, httpd-2.0.40-21.i386.rpm, paket ini berisi web server Apache versi 2. php-4.2.2-17.i386.rpm, paket ini berisi modul bahasa pemrograman web php untuk Apache web server. mysql-3.23.54a-11.i386.rpm, berisi program-program klien yang digunakan untuk mengakses mysql server. mysql-server-3.23.54a11.i386.rpm, adalah database server mysql. php-mysql-4.2.2-17.i386.rpm, yang terakhir ini adalah modul library php untuk mengakses server database MySQL. Paket pelengkap di bawah ini boleh Anda download juga, akan tetapi tidak harus ada. redhat-config-httpd-1.0.118.noarch.rpm, berisi program untuk mengonfigurasi web server Apache dengan interface grafis. httpd-manual-2.0.40-21.i386.rpm, berisi manual web server Apache. php-manual-4.2.2-17.i386.rpm, berisi manual bahasa pemrograman php. Jika Anda mempunyai CD distribusi Red Hat, siapkan! Dan bagi Anda yang sudah men-download file-file yang diperlukan, salin ke satu direktori dan
www.infolinux.web.id
ubah direktori aktif Anda ke direktori tersebut agar memudahkan Anda. # rpm -ivh httpd-2.0.40-21.i386.rpm Jika paket software tersebut sudah terinstal di sistem Anda, respons yang akan didapatkan kira-kira seperti ini, warning: httpd-2.0.40-21.i386.rpm: V3 DSA signature: NOKEY, key ID db42a60e Preparing... ########################## [100%] package httpd-2.0.40-21 is already installed jalankan server Apache, # /etc/init.d/httpd start kemudian akses server dengan browser, dengan mengisikan pada address/ location bar url berikut, (hasilnya ditunjukkan pada gambar 1) http://localhost/ Jika Anda memerlukan dokumentasi Apache dan interface konfigurasi Apache, jalankan perintah berikut, akan tetapi jika tidak lewati saja. # rpm -ivh httpd-manual-2.0.40-21.i386.rpm # rpm -ivh redhat-config-httpd-1.0.118.noarch.rpm Berikutnya adalah instalasi PHP dan server database MySQL, # rpm -ivh php-4.2.2-17.i386.rpm # rpm -ivh —nodeps mysql-3.23.54a11.i386.rpm # rpm -ivh mysql-server-3.23.54a11.i386.rpm # rpm -ivh php-mysql-4.2.2-17.i386.rpm Tiga paket yang terakhir terletak di CD kedua. Paket mysql-3.23.54a-11 bergantung kepada paket perl-DBDMySQL. Sedangkan paket perl-DBDMySQL sendiri bergantung kepada file library libmysqlclient.so.10 yang dimiliki paket mysql-3.23.54a-11. Option — nodeps diperlukan untuk melepas keterkaitan melingkar ini. Periksa apakah php dan modul phpmysql sudah aktif dengan melakukan langkah-langkah berikut ini, # cd /var/www/html/ # cat > index.php
UTAMA
Ulasan CD | Klinik | Ulasan | Linux Ready | Utama | Bisnis | Feature | Tutorial
Gambar 2. Halaman info PHP
Pilah-pilih Database di Linux
Gambar 3. Informasi modul mysql pada PHP
# cp httpd-2.0.46.tar.gz /usr/local/src/ # cp mysql-4.0.13.tar.gz /usr/local/src/ # cp php-4.3.2.tar.bz2 /usr/local/src/
4 . Salin skrip startup ke direktori startup, # cp support/apachectl /etc/init.d/ # chmod 755 /etc/init.d/apachectl
Tekan tombol Ctrl+d secara bersamaan untuk mengakhiri file. Kemudian restart web server. # /etc/init.d/httpd restart
Pertama, kita akan menginstal Apache web server. Ikuti langkah-langkah berikut ini, 1 . Uraikan file terkompresi di direktori / usr/local/src/ # cd /usr/local/src/ # tar -xzvf httpd-2.0.46.tar.gz
Jika direktori /etc/init.d/ tidak ada dalam distribusi Linux Anda, lewati saja langkah ini. 5 . Jalankan web server Apache dengan perintah, # /etc/init.d/apachectl start
Akses dengan browser url http:// localhost/index.php. Lihat informasi pada halaman web yang ditunjukkan pada Gambar 2 dan Gambar 3. Sampai di sini, selesai sudah proses instalasi lingkungan kerja dengan LAMP melalui paket RPM Red Hat. Berikut ini petunjuk instalasi dari kode sumber.
Instalasi dari kode sumber Bagi pembaca yang suka tantangan dan tidak mendukung paket rpm bisa mencoba menginstal dari kode sumber. Dapatkan terlebih dahulu file-file kode sumber yang diperlukan dari url-url berikut, http://mirrors.ccs.neu.edu/Apache/ dist/httpd/httpd-2.0.46.tar.gz http://mysql.cbn.net.id/Downloads/ MySQL-4.0/mysql-4.0.13.tar.gz http://my.php.net/distributions/php4.3.2.tar.bz2 Jika url-url tersebut tidak bisa diakses Anda bisa mencari mirror-mirror lain dari situs-situs resmi masing-masing software. Salin semua file tersebut ke direktori /usr/local/src/.
2. Konfigurasi kode sumber sesuai dengan lingkungan di mana Anda bekerja, # cd httpd-2.0.46 # ./configure —prefix=/usr/local/apache —enable-so Dengan konfigurasi ini root direktori httpd server akan terletak pada direktori /usr/local/apache/. Pilihan —enable-so, mengaktifkan dukungan terhadap modul shared object. Tujuannya agar nanti PHP bisa dikompilasi sebagai modul dari apache. 3 . Jalankan proses kompilasi dan instalasi. # make # make install Perintah make akan mengompilasi semua kode sumber, kemudian perintah make install akan menyalin program-program hasil kompilasi ke direktori masing-masing sesuai tempat yang telah ditentukan pada proses konfigurasi.
www.infolinux.web.id
Jika distro yang Anda pakai tidak memiliki direktori /etc/init.d/ gunakan perintah, # /usr/local/apache/bin/apachectl start Kemudian coba akses dengan browser alamat http://localhost. Mestinya Anda sudah bisa melihat halaman Test page Apache. Tambahkah perintah ini ke dalam file / etc/rc.local agar setiap kali sistem berjalan web server akan dijalankan. Kedua, kita akan menginstal MySQL. 1 . Seperti langkah instalasi Apache, yang harus dilakukan terlebih dahulu adalah mengurai file. # cd /usr/local/src/ # tar -xzvf mysql-4.0.13.tar.gz 2 . Lakukan persiapan kompilasi dengan menjalankan perintah, # cd mysql-4.0.13 # groupadd mysql # useradd -g mysql -d /var/lib/mysql mysql # ./configure —prefix=/usr/local/mysql —
INFOLINUX SEPTEMBER 2003
37
UTAMA
Ulasan CD | Klinik | Ulasan | Linux Ready | Utama | Bisnis | Feature | Tutorial
Pilah-pilih Database di Linux
localstatedir=/var/lib/mysql —withmysqld-user=mysql Perintah groupadd dan useradd berfungsi untuk menambahkan user dan grup ke dalam sistem. User dan grup ini digunakan untuk menjalankan server mysql. Dan dipakai pada langkah konfigurasi di baris terakhir langkah nomor 2. Username yang akan menjalankan mysqld disebutkan dengan opsi —with-mysqlduser=mysql. 3 . Kompilasi dan instalasi, # make # make install 4 . Salin file konfigurasi # cp support-files/my-medium.cnf /etc/ my.cnf 5 . Inisialisasi database server # ./scripts/mysql_install_db Sistem akan menanggapi dengan pesan, Preparing db table Preparing host table Preparing user table Preparing func table Preparing tables_priv table Preparing columns_priv table Installing all prepared tables 030622 0:12:43 /usr/local/mysql/ libexec/mysqld: Shutdown Complete To start mysqld at boot time you have to copy support-files/mysql.server to the right place for your system PLEASE REMEMBER TO SET A PASS WORD FOR THE MySQL root USER ! This is done with: /usr/local/mysql/bin/mysqladmin -u root password ‘new-password’ /usr/local/mysql/bin/mysqladmin -u root -h fariz password ‘new-password’ See the manual for more instructions. You can start the MySQL daemon with: cd /usr/local/mysql ; /usr/local/mysql/bin/ mysqld_safe & You can test the MySQL daemon with the
38
INFOLINUX SEPTEMBER 2003
benchmarks in the ‘sql-bench’ directory:cd sql-bench ; perl run-all-tests Please report any problems with the /usr/ local/mysql/bin/mysqlbug script! The latest information about MySQL is available on the web at http:// www.mysql.com Support MySQL by buying support/ licenses at https://order.mysql.com 6 . Berikutnya adalah mengubah kepemilikan file dan direktori untuk user mysql, # chown -R root /usr/local/mysql/ # chown -R mysql /var/lib/mysql/ # chgrp -R mysql /usr/local/mysql/ 7 . Salin skrip startup dan file konfigurasi, # cp support-files/mysql.server /etc/ init.d/mysql # chmod 755 /etc/init.d/mysql 8 . Jalankan server dengan perintah, # /etc/init.d/mysql start Atau jika perintah di nomor 7 gagal, atau di sistem Anda tidak terdapat direktori /etc/init.d/ gunakan perintah berikut, # /usr/local/mysql/bin/mysqld_safe — user=mysql& Tambahkan juga baris perintah tersebut pada file /etc/rc.local, agar setiap kali komputer menyala mysql server akan diaktifkan. 9 . Pada tahap ini user root yang berperan sebagai administrator database belum mempunyai password. Untuk menentukan password gunakan program mysqladmin. # /usr/local/mysql/bin/mysqladmin -u root password ‘rootpass’ Ketiga, instalasi PHP. 1 . Mengurai paket PHP, # cd /usr/local/src/ # tar -xjvf php-4.3.2.tar.bz2 2 . Persiapan kompilasi # cd /usr/local/src/php-4.3.2 # ./configure —with-apxs2=/usr/local/
www.infolinux.web.id
apache/bin/apxs —with-pear —withmysql=/usr/local/mysql/ Konfigurasi seperti ini akan menjadikan php sebagai modul web server Apache. Pilihan—with-pear diberikan untuk menginstal PEAR (PHP Extension and Application Repository). Library ini menyediakan kelas-kelas serbaguna yang akan sering Anda pakai. 3 . Lakukan proses kompilasi dan instalasi # make # make install 4 . Salin file konfigurasi # cp php.ini-dist /usr/local/lib/php.ini Terakhir, integrasikan PHP ke konfigurasi Apache dan lakukan pengujian. 1 . Edit file konfigurasi Apache. # vim /usr/local/apache/conf/httpd.conf Tambahkan baris berikut ke dalam file tersebut, AddType application/x-httpd-php .php 2 . Restart Apache web server, # /usr/local/apache/bin/apachectl restart atau # /etc/init.d/apachectl start 3 . Buat skrip php yang berisi fungsi phpinfo() seperti yang disebutkan di depan dan letakkan di direktori /usr/ local/apache/htdocs/. Kemudian akses skrip tersebut dengan browser. Misalnya nama skrip adalah phpinfo.php maka skrip dapat dipanggil seperti ini, http://localhost/phpinfo.php Tahap selanjutnya, untuk bisa mengembangkan aplikasi berbasis web anda perlu mempunyai pengetahuan beberapa hal: HTML, Protokol HTTP, PHP, dan SQL. Mungkin beberapa pengetahuan tambahan juga Anda perlukan misalnya Javascript dan CSS. Ikuti artikel-artikel selanjutnya di InfoLINUX! Dan selamat bekerja.
UTAMA
Ulasan CD | Klinik | Ulasan | Linux Ready | Utama | Bisnis | Feature | Tutorial
Pilah-pilih Database di Linux
Server Database PostgreSQL Jika kita bicara database untuk web, nama PostgreSQL kalah populer dari MySQL. Tapi untuk urusan aplikasi database besar, PostgreSQL tidak boleh dianggap enteng, sehingga Rumah Sakit Pertamina Jaya memilhnya. Kini Anda pun bisa mencobanya.
P
ostgreSQL atau lebih singkatnya disebut postgres, adalah database server yang sering disebut-sebut sebagai database open source paling mutakhir. Meski tidak sepopuler database server semacam MySQL atau bahkan Oracle, postgres mempunyai pengguna fanatik yang tidak sedikit. Semua database server terkenal mempunyai sejarah yang sangat panjang, tidak terkecuali postgres. Sejarah panjang postgres dimulai dengan proyek yang dipimpin oleh seorang profesor di Universitas Barkeley, bernama Michael Stonebraker. Proyek ini disponsori oleh beberapa institusi besar di Amerika semacam DARPA (Defence Advanced Research Projects Agency). Implementasi postgres dimulai pada tahun 1986. Versi yang fungsional dan telah bisa dipakai diselesaikan sekitar setahun kemudian. Proyek ini ditutup secara resmi pada tahun 1994 dengan versi terakhir 4.2. Di tahun itu juga dua mahasiswa barkeley, yaitu Andrew Yu dan Jolly Chen menambahkan interpreter SQL pada postgres. Selain itu, mereka juga melakukan perbaikan-perbaikan terhadap bug yang ada dan perubahan untuk menaikkan unjuk kerja. Versi postgres yang ditambahkan kemampuan SQL ini diberi nama Postgres95. Yang kemudian dipublikasikan di kalangan pengguna Internet di tahun 1995. Karena dirasakan nama Postgres95 sudah tidak sesuai lagi, dipilih sebuah nama baru yang tidak mewakili tahun tertentu, yaitu PostgreSQL. Nama ini dipilih untuk menunjukkan adanya hubungan antara proyek postgres awal dan versi terakhir yang mempunyai kemampuan SQL. Dan Versi awal untuk nama baru ini diberikan 6.0, karena Postgres95 dianggap versi 5.0. Perubahan besar postgres dengan nama baru ini adalah fitur-fitur tambahan yang
bersesuaian dengan standar SQL 92, misalnya adanya primary key, type casting, dan sebagainya. Perbaikan dan penambahan tipe data, misalnya date/ time dan dukungan terhadap tipe data geometry. Fitur-fitur lain yang tidak terdapat di versi sebelumnya juga ditambahkan seperti subselect, constraint, dan trigger. Sejarah tinggal sejarah, kita harus melihat masa depan database server yang satu ini. Saat ini postgres mempunyai versi 7.3. Para developer inti berharap pada versi ini postgres sudah bisa memenuhi kebutuhan akan sebuah database server yang bisa menggantikan database komersial. Saat ini, proyek postgres dikomandoi oleh 5 orang, yaitu Marc Fournier, Tom Lane, Vadim Mikheev, Bruce Momjian, dan Jan Wieck. Mungkin yang paling menawan dari database server ini adalah kemampuan Object-relational-nya. Dengan fasilitas ini, kita bisa membuat tabel yang menurunkan dari struktur tabel yang lain dan cukup menambahkan beberapa atribut yang belum ada di tabel asal. Daftar fitur dari postgres menurut situs resminya dapat Anda lihat pada daftar berikut: Fully ACID compliant. ANSI SQL compliant. Referential Integrity. Replication (non-commercial and commercial solutions) allowing the duplication of the master database to multiple slave machines. Native interfaces for ODBC, JDBC, C, C++, PHP, Perl, TCL, ECPG, Python, and Ruby. Rules. Views. Triggers. Unicode. Sequences. Inheritance.
www.infolinux.web.id
Outer Joins. Sub-selects. An open API. Stored Procedures. Native SSL support. Procedural languages. Hot stand-by (commercial solutions). Better than row-level locking. Functional and Partial indexes. Native Kerberos authentication. Support for UNION, UNION ALL and EXCEPT queries. Loadable extensions offering SHA1, MD5, XML, and other functionality. Tools for generating portable SQL to share with other SQL-compliant systems. Extensible data type system providing for custom, user-defined datatypes and rapid development of new datatypes. Cross-database compatibility functions for easing the transition from other, less SQL-compliant RDBMS.
Kebutuhan yang harus dipenuhi untuk menjalankan postgres pun tidak terlalu banyak, Anda bisa menggunakan mesinmesin berbasiskan processor Intel dengan sistem operasi Linux. Dan juga memerlukan ruang bebas di harddisk sekitar 65 MB untuk meletakkan paket kode sumber jika Anda ingin menginstalasi dari kode sumber. Untuk instalasi dari paket binary diperlukan ruang lega sekitar 15 MB. Jumlah ruang yang diperlukan untuk setiap database yang dibuat adalah sekitar 5 kali ukuran data jika disimpan sebagai file text. Jadi misalnya, Anda mempunyai data sebesar 5 MB, maka Anda harus menyiapkan space sebesar 25 MB. Postgres juga sudah banyak diimplementasikan pada proyek-proyek yang cukup besar, paling tidak proyek yang saya ketahui dengan mata kepala saya sendiri adalah untuk database
INFOLINUX SEPTEMBER 2003
39
UTAMA
Ulasan CD | Klinik | Ulasan | Linux Ready | Utama | Bisnis | Feature | Tutorial
Pilah-pilih Database di Linux
rumah sakit dan database sebuah lembaga bimbingan belajar.
Instalasi PostgreSQL Instalasi dengan RPM Untuk melakukan instalasi dari paket RPM Anda bisa mendapatkan file-file paket dari CD-ROM yang disertakan. Posgres juga sudah disertakan oleh distro-distro besar, misalnya Mandrake dan Red Hat. Daftar file yang lengkap dalam format binary rpm adalah: postgresql-7.3.3-1PGDG.i386.rpm postgresql-contrib-7.3.31PGDG.i386.rpm postgresql-devel-7.3.31PGDG.i386.rpm postgresql-docs-7.3.31PGDG.i386.rpm postgresql-jdbc-7.3.31PGDG.i386.rpm postgresql-libs-7.3.31PGDG.i386.rpm postgresql-pl-7.3.3-1PGDG.i386.rpm postgresql-python-7.3.31PGDG.i386.rpm postgresql-server-7.3.31PGDG.i386.rpm postgresql-tcl-7.3.31PGDG.i386.rpm postgresql-test-7.3.31PGDG.i386.rpm Dari sekian banyak file yang paling diperlukan untuk bekerja dengan database secara langsung adalah postgresql-libs7.3.3-1PGDG.i386.rpm, postgresql7.3.3-1PGDG.i386.rpm, dan postgresqlserver-7.3.3-1PGDG.i386.rpm. Jalankan proses instalasi dengan perintah rpm, 1 . Install file library yang diperlukan [root@localhost redhat-9]# rpm -ivh postgresql-libs-7.3.3-1PGDG.i386.rpm Preparing... ################### ######################## [100%] 1:postgresql-libs ######## ############################### #### [100%] 2 . Instal program-program pendukung postgres [root@localhost redhat-9]# rpm -ivh
40
INFOLINUX SEPTEMBER 2003
postgresql-7.3.3-1PGDG.i386.rpm Preparing... ################### ######################## [100%] 1:postgresql ######## ############################### #### [100%]
# useradd -d /usr/local/pgsql/ -s /bin/ bash postgres 8 . Mempersiapkan direktori untuk menyimpan database di direktori / usr/local/pgsql/. # mkdir /usr/local/pgsql/data
Instalasi dari file Tarball Instalasi dari kode sumber bisa dilakukan dengan mengikuti langkah-langkah yang bertahap dalam bagian ini. 1 . Download paket dari URI salah satu mirror, misalnya: ftp://ftp.be.postgresql.org/ postgresql/source/v7.3.3/postgresql7.3.3.tar.gz File-file yang diperlukan juga disertakan dalam CD InfoLINUX edisi ini. 2 . Salin ke direktori /usr/local/src/ # cp postgresql-7.3.3.tar.gz /usr/ local/src/ 3 . Persiapkan proses instalasi dengan mengurai file hasil download # cd /usr/local/src/ # tar -xzvf postgresql-7.3.3.tar.gz 4 . Kerjakan proses konfigurasi kode sumber untuk dikompilasi. Pada tahap ini akan terjadi serangkaian pesan yang memberikan informasi library-library yang diperlukan. Jika ada salah satu library yang tidak ditemukan cobalah instal library tersebut. Misalnya library readline, zlib, dan sebagainya. Karena jika dalam langkah ini terjadi kegagalan Anda tidak akan bisa melanjutkan ke tahap selanjutnya. # ./configure 5 . Jika langkah di atas bisa dilewati dengan sukses, jalankan proses kompilasi. # make 6 . Instal software pada direktori masing-masing. # make install 7 . Buat user sistem untuk menjalankan server postgres.
www.infolinux.web.id
9 . Ubah kepemilikan direktori di bawah direktori yang telah dibuat di langkah nomor 8. # chown -R postgres /usr/local/pgsql/ 10. Buat database sistem dengan menjalankan skrip initdb. # su - postgres $ /usr/local/pgsql/bin/initdb -D /usr/ local/pgsql/data/ 11. Jalankan server dengan menjalankan program postmaster. $ /usr/local/pgsql/bin/postmaster -D / usr/local/pgsql/data/ >logfile.server 2>&1 & $ logout 12. Jika terdapat direktori /etc/init.d di Linux yang Anda gunakan, bisa Anda gunakan skrip startup yang terletak di direktori contrib/. # cp contrib/start-scripts/linux /etc/ init.d/postgresql # chmod 755 /etc/init.d/postgresql Dengan skrip ini dengan mudah menjalankan, mematikan, dan melihat status server. # /etc/init.d/postgresql start # /etc/init.d/postgresql stop # /etc/init.d/postgresql status
Menggunakan PostgreSQL Untuk mempermudah bekerja dengan postgres masukkan direktori programprogram binary postgres ke dalam variabe llingkungan PATH. Untuk kasus instalasi dari rpm letak file-file binary sudah berada di direktori yang disebutkan dalam variabel tersebut. Akan tetapi untuk Anda yang menginstal dari kode sumber, Anda perlu menentukan secara eksplisit lokasi file-file binary postgres berada. $ export PATH=$PATH:/usr/local/pgsql/bin/ :/usr/local/pgsql/bin/