Nov 272012
 

Assalamu’ alaikum wr wb

Partitioning in PostgreSQL

Suatu kali saya mengerjakan sebuah program yang transaksinya tiap hari paling sedikit 2000 record dengan kondisi seperti itu saya harus memikirkan sebuah teknologi yang mungkin bisa say gunakan untuk kasus tersebut. Karena jika tidak mungkin untuk mengisi data saja bisa jadi akan lambat karena banyaknya data, apalagi untuk reporting yang perlu melakukan pencarian dengan kondisi tertentu.

Akhirnya teringat dulu pernah coba – coba membuat partitioning di PostrgreSQL dengan Mas Bella.  baiklah mari kita bahas dulu satu – atu bagaimana cara membuat partitioning nya.

Buat sebuah database :

Create databse dbpartisi;

Buat table :

Buat script function trigger untuk partitioning nya :

Buat Trigger untuk menjalankan function di atas:

selamat mencoba
Untuk lebih jelasnya anda bisa membaca disini : http://www.postgresql.org/docs/9.1/static/ddl-partitioning.html

Wassalamu’ alaikum wr wb

Sep 042009
 

Setelah kemaren kita belajar membuat trigger dan function di MySQL sekarang kita akan kembali pada Microsoft alias SQL Server, pada kali ini saya akan memberi contoh bagaimana membuat Trigger di SQL Server dan memanfaat trigger tersebut untuk membuat log pada table tersebut, ok mari kita mulai saja.

Pertama buat 4 Buat table pada SQL Server seperti pada source di bawah ini :

CREATE TABLE [Barang] (
 [kd_barang] [char] (5) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
[nm_barang] [varchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
 [stok] [int] NULL ,
 CONSTRAINT [PK_Barang] PRIMARY KEY  CLUSTERED
 (
 [kd_barang]
 )  ON [PRIMARY]
) ON [PRIMARY];

CREATE TABLE [pembelian] (
 [no_nota] [char] (5) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
 [tgl_beli] [smalldatetime] NULL ,
 [pembeli] [varchar] (30) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
 CONSTRAINT [PK_pembelian] PRIMARY KEY  CLUSTERED
 (
 [no_nota]
 )  ON [PRIMARY]
) ON [PRIMARY];

CREATE TABLE [pembelian_detail] (
 [no_nota] [char] (5) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
 [kd_barang] [char] (5) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
 [jumlah] [int] NULL ,
 CONSTRAINT [PK_pembelian_detail] PRIMARY KEY  CLUSTERED
 (
 [no_nota],
 [kd_barang]
 )  ON [PRIMARY] ,
 CONSTRAINT [FK_pembelian_detail_Barang] FOREIGN KEY
 (
 [kd_barang]
 ) REFERENCES [Barang] (
 [kd_barang]
 ) ON UPDATE CASCADE ,
 CONSTRAINT [FK_pembelian_detail_pembelian] FOREIGN KEY
 (
 [no_nota]
 ) REFERENCES [pembelian] (
 [no_nota]
 ) ON DELETE CASCADE  ON UPDATE CASCADE
) ON [PRIMARY];

CREATE TABLE [pembelian_detail_log] (
 [nomor] [int] IDENTITY (1, 1) NOT NULL ,
 [no_nota] [char] (5) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
 [kd_barang] [char] (5) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
 [jumlah] [int] NULL ,
 [keterangan] [varchar] (15) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
 [tgl] [datetime] NULL ,
 CONSTRAINT [PK_pembelian_detail_log] PRIMARY KEY  CLUSTERED
 (
 [nomor]
 )  ON [PRIMARY]
) ON [PRIMARY]

Setelah kita menyiapkan tiga buat table langsung saja kita buat triggernya, maaf penjelasan tetentang trigger mungkin akan saya jelaskan lain waktu saja, atau anda silakan buat pertanyaan di sini. Continue reading »

Jul 292009
 

Untuk membuat trigger di MySQL and harus mengaktifkan INODB pada MySQL. Setelah aktif barulah kita bisa menggunkan fasilitas trigger pada MySQL. Ok langsung pada tujuan mari kita mulai proyek kita, pertama – tama kita akan membuat 2 buah tabel untuk percobaan kita

Code :

CREATE TABLE <code>tbl_pertama</code> (
  <code>kode</code> char(2) NOT NULL,
  <code>nama</code> varchar(20) default NULL,
  PRIMARY KEY  (<code>kode</code>)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

CREATE TABLE <code>tbl_kedua</code> (
  <code>kode_kedua</code> char(2) NOT NULL,
  <code>nama_kedua</code> varchar(20) default NULL,
  PRIMARY KEY  (<code>kode_kedua</code>)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

Pada dua buah table saya buat sama, agar kita mudah untuk memahami pada proses selanjutnya. Setelah selesai akan tercipta dua buah tabel seperti pada gambar di bawah ini Continue reading »