Java Training : Hari Keempat - Object / Relational Mapping (ORM)

15 Apr 2008

hibernate-with-2-emedded-replicated.jpgPada hari keempat rangkaian training Java kali ini membahas tentang Object/Relational Mapping (ORM). Materi yang diberikan oleh Endy Muhardin dan Ifnu dari Artivisi.com kali ini akan membahas tentang solusi untuk mengatasi beberapa masalah yang biasa dihadapi oleh programmer didalam berhubungan dengan database, antara lain :

  • Perbedaan dialek SQL antar merk database
  • Perbedaan konsep relasional dan object-oriented
  • Peningkatan kinerja (performance)

Maka dengan menggunakan framework hibernate ini, diharapkan akan bisa menjembatani antara kode program dengan SQL Server. Karena kita tidak lagi menjalankan SQL sesuai merk database, tetapi kita menggunakan Query Language yang disediakan oleh ORM. Hal ini punya kelebihan antara lain apabila kita ingin mengganti database, semisalnya dari MySQL diganti dengan Oracle, maka kita cukup mengkonfigurasi setting koneksi yang ada di ORM, tanpa perlu mengganti seluruh code yang berhubungan dengan database di source code kita. Cukup simple dan mudah bukan ?

Beberapa cara yang bisa kita gunakan untuk mengoptimasikan akses ke database, antara lain :

Database connection polling

Dikarenakan proses connect / disconnect dari database merupakan kegiatan yang banyak langkah yang terlibat disana, antara lain : inisialisasi koneksi, proses otentifikasi, dan lain sebagainya, maka aplikasi yang besar hampir bisa dipastikan akan mengoptimasi urusan connect / disconnect ini dengan menggunakan teknik connection polling.Connection polling itu adalah dengan membuat banyak koneksi sekaligus (poll). Bila ada kode program yang ingin menggunakan koneksi untuk menjalankan SQL, maka koneksi diambil dari pool dan diberikan. Setelah selesai menjalankan SQL, koneksi tidak ditutup, melainkan dikembalikan ke pool. Dengan cara ini, overhead proses connect/disconnect dapat dikurangi.

Dengan menggunakan ORM, semua koneksi database diatur disatu tempat, sehingga mengubah konfigurasi dan koneksi biasa menjadi connection-polling tidak berpengaruh besar terhadap keseluruhan kode program.

Lazy-loading

Tidak semua data yang kita ambil dari database akan digunakan pada saat itu juga. Kadangkala sebagian besar data yang diambil akan dibuang. Tentunya hal ini akan membuat pemborosan kerja CPU, penggunaan memori, dan juga bandwidth. Beberapa ORM mendukung fitur lazy-loading, yaitu mengambil data kalau benar-benar diperlukan saja.Bila aplikasi kita menggunakan ORM, perintah SQL ke database dieksekusi oleh ORM, bukan oleh kode program kita. Karena itu didalam ORM kita memiliki kebebasan untuk menjalankan SQL kapan saja, asal tidak mengacaukan aplikasi kita. Kebebasan ini digunakan oleh ORM untuk menunda dan mengumpulkan eksekusi SQL, sehingga bisa dijalankan secara efisien.

Mengurangi hit ke database

Pada aplikasi besar, umumnya application server dan database server di install di mesin yang berbeda. Untuk mengaksesnya digunakan akses melalui jaringan (network). Oleh karena itu, akses ke database harus dipertimbangan secara detail dan teliti pada saat kita mendesign aplikasi tersebut, agar tidak terlalu banyak perintah ataupun data yang ‘menyeberangi’ jaringan. Dengan menggunakan ORM senantiasa berusaha mengurangi komunikasinya dengan database sehingga kinerja aplikasi dapat digunakan.

Query result cache

Mengambil data dari memori jelas akan lebih cepat jika dibandingkan dengan mengambil dari disk ataupun jaringan. Karena kontrol penuh yang dimiliki atas hubungan ke database, ORM dapat menggunakan cache secara leluasa. Dengan ORM dapat mengamati data mana yang jarang berubah, dan kemudian akan menyimpannya di memori (cache). Bila kode program kita meminta data tersebut, ORM tidak perlu mengakses database lagi, melainkan langsung mengambilnya dari cache. Ini akan menambah kecepatan eksekusi aplikasi secara signifikan.

Itulah materi yang sempat aku catat dan ingat didalam training java di hari keempat kemarin. Dikarenakan harus pulang cepat, maklum harus mengejar jadwal kereta terakhir yg ke bogor, maka kali ini aku tidak bisa mengikuti jalannya training tersebut hingga akhir. Tadi pagi sempat aku check kepada teman yang mengikuti sampai selesai, sesi terakhir kemarin diisi dengan praktek secara langsung untuk melakukan proses insert, update, delete pada database dengan menggunakan ORM Hibernate.


TAGS java training orm hibernate database


-

Author

Search

Recent Post