Analisa terhadap DBMS PostgreSQL

Analisa terhadap DBMS PostgreSQL

PostgreSQL merupakan database server cukup dikenal di kalangan administrator database, programer aplikasi, maupun pengembang web. Popularitasnya ikut menanjak mengikuti saudaranya “MySQL” yang telah lebih dulu merebut hati jutaan pengguna di seluruh dunia. Sifatnya yang open source dan lisensi bebas, serta sama-sama berawal dari platform Unix ikut menunjang penyebarannya. Paket PostgreSQL juga dapat ditemukan dikekemas bersama beberapa distro Linux.
PostgreSQL merupakan database RDMBS ‘bebas” yang powerful dan tidak kalah dengan database komersil sekelasnya Oracle, maupun Sybase, dan Informix, seperti Blue Elephant yang menjadi gambar logonya. Pengembang PostgreSQL selama kurun waktu 15 tahun ini adalah ratusan orang di banyak universitas dan organisasi yang melakukan kominikasi lewat internet.
Berbagai fitur yang ada di PostgreSQL semacam transaction, merupakan jawaban untuk mereka yang memerlukan fasilitas tersebut tapi belum menemukannya di MySQL. Anda akan diajak pula dari melakukan instalasi sampai mempergunakan tool-tool berbasis gratis untuk melakukan pemeliharaan database dan sebagai user PostgreSQL.
Database Server PostgreSQL yang kini mendukung platform NT, Solaris, Sun OS, HPUX, AIX, Linux, Irix, FreeBSD dan kebanyakan Unix lainnya telah dikembangkan sejak 1985.
Database ini diturunkan dari INGRES dan POSTGRES, proyek database akademis pada University of California di Berkeley. Selama ini PostgreSQL telah dipelihara, ditingkatkan dan didukung oleh sekelompok pengembang yang stabil serta sejumlah kontributor.
PostgreSQL didisain untuk skala besar, memiliki ciri berorientasi objek, namun tetap dapat digunakan layaknya RDBMS pada umumnya. Para pengembangnya (dulu) mengutamakan kelengkapan feature ketimbang dukungan penuh akan standar SQL. Dalam perjalanannya, kelebihan feature ini justru membuat Postgres semakin powerful dan membuatnya dapat disejajarkan dengan database besar lainnya seperti Oracle. Salah satu contoh standar SQL yang belum dipenuhi oleh PostgreSQL saat ini (versi 6.5.3) adalah referential integrity dan outer-join. Meski demikian, programmer Postgres tetap merencanakan untuk membuatnya memiliki standar SQL yang sudah ditetapkan. Fasilitas standar lain yang telah didukung adalah trigger dan function.
Function dalam PostgreSQL sangat unik karena PostgreSQL tidak menetapkan built-in language untuk penulisan function. PostgreSQL menyerahkan kepada pemakai untuk memilih sendiri bahasa yang diinginkan yang disebut Procedural Language. Pada saat deklarasi function, Anda harus menyebutkan bahasa yang digunakan. Pada versi 6.5.3 procedural language yang tersedia adalah pgSQL dan Tcl. Jadi script function yang dideklarasikan akan diterjemahkan oleh library yang bersangkutan (tergantung bahasa yang dipilih) untuk selanjutnya library tersebut melakukan koordinasi dengan library PostgreSQL.
Tools yang tersedia cukup banyak dan sangat berguna seperti:

  • pg_dump: konversi objek database menjadi script SQL
  • pgaccess: drag & drop-nya cukup menyenangkan

PostgreSQL didukung oleh banyak bahasa (atau Postgres mendukung banyak bahasa?), antara lain: C++, Java, Perl, Tcl, PHP3 dan Python. Library untuk ODBC dan JDBC juga telah tersedia, sehingga bahasa lainnya yang mendukung keduanya dapat mengakses PostgreSQL. Source lengkapnya dapat Anda peroleh di situsnya, dan juga tersedia di distribusi Linux seperti SuSE, RedHat dan Mandrake.

Mengapa PostgreSQL? BSD License. BSD License adalah lisensi yang sangat bebas. Bahkan kalau ada seseorang yang mengembangkan Software yang dipublikasikan di bawah BSD License kemudian menjualnya, itu diperbolehkan. Sebab, tanpa perubahan yang besar orang akan tetap memilih versi gratisnya, jadi, sang pengembang dibayar untuk pengembangan yang dilakukannya. MySQL yang GPL hanya gratis untuk aplikasi yang GPL pula. Jadi tidak boleh digabungkan dengan software yang bisa dijual.

Itu saya sebut di awal untuk mengingatkan mereka yang hendak menjual software yang mengandung MySQL Client Library di dalamnya. Alasan lainnya masih banyak, salah satunya, PostgreSQL adalah Object-RDBMS. Misal, Anda memiliki tabel karyawan (nip, nama), dengan PostgreSQL Anda dapat membuat tabel kabag(inherit(karyawan), bagian). Untuk kemudian mendapati semuanya terdaftar saat melakukan SELECT * FROM karyawan (untuk mendaftar karyawan saja tanpa para kabag, gunakan SELECT * FROM ONLY karyawan)

Keunggulan-keunggulan lain dari PostgreSQL di antaranya adalah Stored Procedure, Views, Cursors, Referential Integrity, Subqueries. Versi MySQL baru versi 5 yang memiliki vitur tersebut. Di sisi lain MySQL juga memiliki keunggulan, misalnya untuk replikasi, pengolahan masih tercepat.

MySQL versus PostgreSQL
Pada dasarnya, banyak kelebihan dari postgreSQL dibanding MySQL. Seperti halnya developmentnya cepat, dimana tiap sekian bulan pasti ada pengembangan berupa rilisan baru dan ada major feature implemented, kemudian postgreSQL untuk error messagesnya deskriptif dan helpful. Selain itu, untuk pengguna unix/linux dan command line, postgreSQL lebih cocok karena memiliki integrasi yang baik dan desain yang baik juga. Contohnya psql tab completion-nya jauh memiliki kelebihan daripada MySQL command line client. Selain itu, postgreSQL bisa menggunakan less. Kemudian untuk mengamati kegiatan server, dapat hanya dengan penggunakan ps ax saja. Dan juga, terdapat beberapa fitur yg menarik dan sangat membantu, misalnya dollar quoting atau PL dengan berbagai macam bahasa. atau TEXT dan BYTEA. Selain itu juga type systemnya juga baik, dan strong typing lebih safe.
Untuk fokus pengembangan yg benar, postgreSQL menomorsatukan data integrity dan menomorduakan speed. Oleh karena itulah, versi 2 6.x sering crash dan MySQL lebih baik. Kerusakan pada data memang jarang terjadi. Arsitektur yg dipilih, misalnya menolak multithreading juga karena ingin lebih menjamin data safety. Selain itu, sering mengalami tabel .MYI rusak pada kondisi high update rate dan terjadi fs quota. Pada innodb juga memungkinkan terjadi corrupt. Sementara itu, di postgreSQL sangat jarang terjadi seperti hal-hal tersebut kecuali karena hardware yang bermasalah.
Sedangkan pada MySQL sendiri seperti halnya MySQL 5, sampai saat ini belum mendukung beberapa fitur yang bisa dikatakan masih dalam tataran dasar . Contoh : CHECK constraint, apabila sering “bermain” database dan apresiasi terhadap integritas dan kebersihan data, CHECK constraint sering kali digunakan. Kemudian, FULL OUTER JOIN jarang sekali digunakan. Akan tetapi, type join ini masih tidak diperbolehkan. Selain itu juga, meskipun haluannya sudah cukup berubah menuju standar compliance dan proper design, secara tradisional MySQL itu hanya mengandalkan pada kecepatannya saja dan bukan pada keselamatan dan integritas data, dan itu merupakan kebalikan dari postgreSQL.
Pada MySQL 3.x juga disebutkan bahwa foreign key tidak perlu, dengan alasan hanya memperlambat kinerja database, padahal, ketika dilakukan pengecekan dari aplikasinya yang terjadi tidaklah seperti itu. Apabila pada postgreSQL yang awalnya proper design and slow, kemudian sekarang menjadi semakin cepat, sedangkan pada MySQL memiliki arah gerak yang berbeda, yakni dari fast and loose, baru sekarang semakin melambat. Sejak upgrade dari 3.23 ke 5.0, server hosting di MWN sebagian besar memerlukan peningkatan max_connections-nya, hal itu dikarenakan sering tejadi terlalu banyak koneksi yang terjadi dan load di beberapa server juga semakin meninggi.
Tentang fitur-fitur MySQL sendiri masih banyak kelemahannya dibandingkan dengan postgreSQL meskipun pada MySQL telah tersedia fitur-fitur seperti trigger, view, SP. Akan tetapi, banyak fitur yg hanya ada di satu tipe engine saja. Untuk foreign key constraint tidak terdapat pada MyISAM, harus menunggu 5.1. Selain itu, full text search juga tidak tersedia pada InnoDB. Dan juga, 2-phase commit hanya terdapat pada NDB.

Cara menjalankan servernya :

Kalau anda pakai linux

login dulu ke root

# service postgresql start

menghentikan

# service postgresql stop

restart ulang

# service postgresql restart

menguji login : login dulu pakai user postgres

# su postgres
$ psql template1

Pakai Versi WINDOWS

C:\Program Files\PostgreSQL\8.3\bin>psql template1

Welcome to psql 8.3.1, the PostgreSQL interactive terminal.

Type:  \copyright for distribution terms

\h for help with SQL commands

\? for help with psql commands

\g or terminate with semicolon to execute query

\q to quit

Warning: Console code page (437) differs from Windows code page (1252)

8-bit characters might not work correctly. See psql reference

page “Notes for Windows users” for details.

template1=#

About nugan88
Mencoba untuk selalu menjadi orang yang lebih baik dan lebih maju

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

%d bloggers like this: