Pola active record

Dalam ilmu komputer, pola active record (:en:active record pattern) adalah sebuah pola desain (en:design pattern) yang sering ditemui dalam aplikasi enterprise.

Active record adalah salah satu pendekatan untuk membaca data dari sebuah basis data. Sebuah tabel atau view dibungkus ke dalam sebuah kelas sedemikian sehingga sebuah instansi objek terikat dengan satu baris tunggal dalam tabel. Setelah objek dibuat, sebuah baris baru ditambahkan pada tabel pada saat disimpan. Objek-objek yang dimuat mendapatkan informasi tentang dirinya dari basis data; ketika sebuah objek diubah, baris yang berkaitan dalam tabel juga diubah. Kelas pembungkus mengimplementasikan metode-metode aksesor untuk setiap kolom di dalam tabel atau view.

Implementasi Active Record dapat ditemukan dalam banyak sekali framework pemrograman, termasuk di antaranya dalam framework web CakePHP dan Ruby on Rails. Sebagai contoh, jika ada sebuah tabel onderdil dengan kolom id (kunci primer berseri), nama (tipe varchar) dan harga (tipe money atau presisi double), dan terdapat sebuah kelas Onderdil, kode berikut:

 a = Onderdil.new
 a.nama = "Contoh onderdil"
 a.harga = 123.45
 a.save

akan menyimpan sebuah baris baru dalam basis data dengan nilai-nilai yang diberikan, kurang-lebih sama dengan perintah SQL berikut ini:

 INSERT INTO onderdil (nama, harga) values ('Contoh onderdil', 123.45);

Sebaliknya, kelas dapat digunakan untuk melakukan kueri ke basis data:

 namaalat = "kotakperkakas"
 b = Onderdil.find(:first,:conditions => [ "nama = ?", namaalat ])

akan membuat sebuah objek dari baris pertama basis data yang kolom nama-nya sama dengan isi variabel Ruby namaalat, kurang-lebih sama dengan perintah SQL:

 SELECT * from onderdil WHERE nama = 'kotakperkakas' LIMIT 1;

Selain cara tersebut, kode di atas dapat diperpendek menjadi:

 b = Onderdil.find_by_name("kotakperkakas")

 Pranala luar 
  Halaman Active Record dari katalog Patterns of Enterprise Application Architecture oleh Martin Fowler
  Castle Project Active Record  sebuah implementasi Microsoft .NET
  SubSonic - Zero Code DAL implementasi Microsoft .NET lainnya