PostgreSQL adalah salah satu database engine faforit saya. Alasannya karena banyak kelebihan yg dimiliki oleh PostgreSQL. Diantaranya adalah:
- Cross platform PostgreSQL dapat dijalankan hampir di setiap jenis Unix (34 platform yang paling baru dirilis), juga di Windows dengan menggunakan Cygwin.
- Desain database GUI dan administration tools
Selain PgAdmin yang merupakan tool bawaan PostgreSQL, banyak juga tool2 database managament tool lain dari perusahaan pihak ketiga seperti PgManager dan lain-lain. - Terpercaya dan stabil
Banyak perusahaan yang melaporkan bahwa PostgreSQL tidak pernah, bahkan sekalipun, mengalami crashed pada saat melakukan operasi dengan tingkat aktivitas yang tinggi. - Object Oriented, Dan lain-lain.
Tapi, yang paling saya suka dari PostgreSQL adalah nomor 4 yaitu Object Oriented-nya. Jika selama ini kita mengenal konsep object oriented dalam bahasa pemrograman. Maka di PostgreSQL kita dapat melakukan hal yang sama. Kita dapat meng inherits object-object di PostgreSQL.
Berikut ini contohnya :
[sql]
CREATE TABLE “public”.”customer” (
“id” INTEGER NOT NULL,
“nama” VARCHAR(300),
“email” VARCHAR(32),
“telp” VARCHAR(32),
CONSTRAINT “cusomer_pkey” PRIMARY KEY(“id”)
) WITHOUT OIDS;
[/sql]
Kemudian misalkan kita akan membuat turunan dari tabel “customer”, caranya sebagai berikut :
Kita beri nama misalnya “special_customer”
[sql]
CREATE TABLE “public”.”special_customer” (
“level” INTEGER
) INHERITS (“public”.”customer”)
WITHOUT OIDS;
[/sql]
Jika kita query tabel “special_customer”
[sql]
select * from special_customer
[/sql]
Hasilnya sebagai berikut :
Sedangkan jika kita query tabel “customer” maka hasilnya sebagai berikut :
[sql]
select * from customer
[/sql]
Mari kita perhatikan. Isi record dari tabel special_customer juga ikut muncul ketika tabel induknya “customer” di select.