Pengertian

advertisement
ORM (Object Relational Mapping)
<Terjemahan>
Pengertian
ORM adalah cara otomatis menghubungkan model obyek, kadangkadang disebut sebagai model domain ke sebuah database
relasional dengan menggunakan metadata sebagai deskriptor dari
obyek dan data. Menurut Wikipedia Object Relational Mapping
(dibaca O/RM, ORM atau O/R Mapping) adalah teknik
pemrograman untuk mengkonversi data antara system tipe tidak
kompatibel dalam database relasional dengan bahasa
pemrograman berorientasi obyek. ORM adalah sebuah teknik
pemrograman yang memetakan sebuah objek dengan database.
ORM ini akan membantu menjadi ‘jembatan’ antara obyek yang
didefinisikan dalam kode program dengan database, bagaimana
objek itu disimpan, diambil, dihapus dan sebagainya. Dengan ORM
ini, programmer dibantu untuk melakukan aksi-aksi yang
diperlukan terkait komunikasi objek ketika program dijalankan
dengan database seperti menyimpan objek, mengambil data objek
dari database kemudian ditampilkan, menghapus objek,
mengubah objek dan sebagainya.
Pengertian (lanjutan)
Sebagai contoh penggunaan adalah ketika ada definisi data berupa person yang memiliki
atribut id dan nama. Di database didefinisikan sebuah tabel dengan kolom id dan nama.
Dengan tanpa menggunakan ORM, untuk menyimpan objek itu ke database adalah dengan
menjalan perintah SQL :
“INSERT INTO persons (id, nama) values (’1',’wisnu manupraba’)”
Dengan menggunakan ORM, perintah SQL itu akan digantikan dengan fungsi misalkan save
(tergantung fungsi yang disediakan oleh pustaka ORM yang digunakan), sehingga
pemanggilannya adalah :
Person person = new Person (1, “Wisnu Manupraba”);
person.insert();
ORM -lah yang akan memetakan fungsi insert() sama dengan perintah SQL ”INSERT
INTO….”.
Ada banyak pustaka ORM yang tersedia saat ini, di berbagai bahasa. Di Java misalkan ada
Hibernate dan MyIbatis (dulu namanya IBatis). Di PHP, berbagai framework seperti
CakePHP, CodeIgniter, Yii dan sebagainya menyediakan ORMnya sendiri-sendiri.
MANFAAT OBJECT RELATIONAL
MAPPING
Vijay (2008) memberikan contoh berikut untuk menunjukkan manfaat
ORM. Sebuah perusahaan perangkat lunak yang telah
mengembangkan software untuk produsen makanan anjing dan telah
mengikuti aturan bahwa prosedur yang tersimpan adalah solusi
tercepat, dan semua operasi CRUD harus ditangani dengan
menggunakan prosedur yang tersimpan. Para pengembang di
perusahaan ini telah mengikuti pendekatan ini dan menciptakan
prosedur yang disimpan untuk setiap transaksi CRUD, kini sudah lebih
dari 3.000 prosedur yang tersimpan. Menulis prosedur yang tersimpan
tidak sama dengan desain yang buruk. Sebaliknya, prosedur tersimpan
jika dikelola dengan benar adalah alternatif yang sangat baik untuk SQL
dinamis.
MENGAPA MENGGUNAKAN
MAPPING ?
Akar masalahnya adalah bahwa obyek-obyek tidak dapat langsung
disimpan ke database dan diambil dari database relasional. Sementara
itu obyek memiliki identitas, state, dan perilaku di samping data,
sedangkan RDBMS hanya menyimpan data saja. Bahkan data yang
berdiri sendiri dapat menjadi masalah, karena seringkali tidak ada
pemetaan langsung antara bahasa pemrograman (misalnya, C # atau
Java) dengan (Relational Database Management System) RDBMS tipe
data. Lebih jauh lagi, sementara objek yang dilalui menggunakan
referensi langsung, tabel RDBMS berhubungan melalui nilai-nilai di
dalam foreign key dan primary key. Selain itu, RDBMS saat ini tidak
memiliki paralel untuk objek inheritance data dan perilaku. Akhirnya,
tujuan dari model relasional adalah untuk menormalkan data (yaitu,
menghilangkan data redundan dari tabel), sedangkan tujuan desain
berorientasi obyek adalah model proses bisnis dengan menciptakan
obyek-obyek dunia nyata dengan data dan perilaku.
MAPPING INHERITANCE
Database relasional tidak selalu mendukung inheritance (warisan),
memaksa untuk memetakan struktur warisan dalam skema objek ke
skema data . Konsep warisan menyebabkan beberapa masalah ketika
menyimpan objek ke dalam DB relasional. Bagaimana mengatur atribut
mewarisi dalam model data ? Ada tiga solusi utama untuk warisan
pemetaan ke dalam database relasional. Teknik-teknik ini:
> Map entire class hierarchy to a single table
> Map each concrete class to its own table
> Map each class to its own table
ORM Design Approaches
Pendekatan Bottom Up
Pendekatan Bottom Up adalah mulai dari bagian bawah atau dalam
hal ini database, dan cara kerja menuju ke atas hingga ke model
obyek. Dalam LINQ to SQL (Language Integrated Query in .Net.)
desainer, ini adalah pendekatan yang paling didukung. LINQ to SQL
mendukung pendekatan lain, tetapi cara tercepat dan termudah
adalah mulai dengan database dan menghasilkan model objek dari
skema.
.
ORM Design Approaches (lanjutan)
Pendekatan Top Down
Model Pendekatan Top Down ialah pendekatan pada kebutuhan bisnis
atau konseptual bukan database. Kelemahan utama pendekatan ini
adalah sebagai tantangan bagi orang-orang yang tidak akrab dengan
pendekatan ini, dan butuh waktu lama untuk mempelajarinya
Pendekatan Meet in the Middle
Pendekatan Meet in the Middle yang paling berlaku adalah untuk
situasi di mana model database dan obyek sudah ada, dan tujuan
adalah untuk menentukan pemetaan antara keduanya. Di beberapa
kasus dimana tidak ada sebuah model domain yang ortoganal transek
dengan database, maka pendekatan ini mengubah pendekatan bottom
up dan pendekatan top down.
ORM FRAMEWORKS AND TOOLS
Ada banyak framework ORM yang digunakan saat ini. Richardson
(2009) memberikan gambaran tersendiri dari framework ORM yang
popular saat ini. Sebagai contoh Hibernate, Toplink and OpenJPA
framework yang populer dengan Java developers. Yang terbaru ada
dua framework ORM yang digunakan oleh perusahaan yaitu Active
Record for Ruby dan GORM ( Grails Object Relational Mapping) for
Groovy.
Persyaratan Mutu untuk ORM
Vijay (2008) memberikan kriteria dasar untuk perangkat ORM yang
berkualitas, antara lain :
•Object-to-database mapping.
•Object caching
•Multiple database-platform support
•Lazy loading
•Nonintrusive persistence
•Multiple object-oriented framework support
•Stored procedure support
ORM DENGAN HIBERNATE
Hibernate adalah perangkat untuk memudahkan akses database.
Hibernate menangani koneksi database dari aplikasi Java ke Database
Server. Hibernate juga merupakan framework untuk memetakan
object ke RDBMS sehingga dapat melakukan mapping dari tabel
database ke class
ORM DENGAN HIBERNATE
(lanjutan)
Fitur Hibernate
Pemilihan tipe data otomatis. Hibernate secara otomatis mengkonversi
tipe data dari java menjadi tipe data database server / engine yang
digunakan. Hibernate mendukung banyak database populer. Hibernate
dapat digunakan pada database MySQL, SQL Server, Oracle, DB2,
Postgree, dan lainya. Sehingga penggantian database engine tidak
merubah aplikasi yang sudah dibuat.
Mengapa diperlukan Hibernate?
Hibernate diperlukan oleh programmer yang ingin menjadikan
database sebagai tempat penyimpanan data, dan melakukan syntax
query melalui obyek dan obyek meneruskan query ke dalam database
tujuannya adalah untuk mempermudah dan merelasionalkan query
dari obyek tersebut dan mengambilnya dari database. Hal ini dilakukan
agar programmer bisa langsung mengkoneksi database meskipun dia
tidak melakukan coding dari awal.
ORM DENGAN HIBERNATE
(lanjutan)
Siapa saja pengguna Hibernate?
Pengguna hibernate adalah programmer yang ingin mengintegrasikan
obyek ke dalam database, programmer yang tidak memiliki banyak
data, programmer yang familiar dengan syntax SQL juga sangat
dianjurkan untuk menggunakan hibernate.
Apa manfaat yang diperoleh dengan menggunakan Hibernate?
Dengan menggunakan hibernate, programmer bisa mengitegrasikan
obyek ke dalam database sehingga programmer bisa melakukan
create, update, dan delete (CRUD) melalui obyek. Selain itu,
programmer juga dapat memproses penulisan data lebih cepat
Download