Skip to content →

Memanfaatkan Object Oriented Database PostgreSQL

PostgreSQL adalah salah satu database engine faforit saya. Alasannya karena banyak kelebihan yg dimiliki oleh PostgreSQL. Diantaranya adalah:

  1. Cross platform PostgreSQL dapat dijalankan hampir di setiap jenis Unix (34 platform yang paling baru dirilis), juga di Windows dengan menggunakan Cygwin.
  2. 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. 
  3. Terpercaya dan stabil
    Banyak perusahaan yang melaporkan bahwa PostgreSQL tidak pernah, bahkan sekalipun, mengalami crashed pada saat melakukan operasi dengan tingkat aktivitas yang tinggi.
  4. 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.

Published in Database Dunia IT Uncategorized

Comments

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.