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 :
0 1 2 3 4 5 6 |
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; |
Kemudian misalkan kita akan membuat turunan dari tabel “customer”, caranya sebagai berikut :
Kita beri nama misalnya “special_customer”
0 1 2 3 |
CREATE TABLE "public"."special_customer" ( "level" INTEGER ) INHERITS ("public"."customer") WITHOUT OIDS; |
Jika kita query tabel “special_customer”
0 |
select * from special_customer |
Hasilnya sebagai berikut :
Sedangkan jika kita query tabel “customer” maka hasilnya sebagai berikut :
0 |
select * from customer |
Mari kita perhatikan. Isi record dari tabel special_customer juga ikut muncul ketika tabel induknya “customer” di select.