Jumat, 05 Maret 2010

Object-relational mapping

Object-relational mapping (ORM, O / RM, dan O / R mapping) dalam perangkat lunak komputer adalah sebuah program teknik untuk mengkonversi data antara yang tidak kompatibel sistem tipe dalam database relasional dan berorientasi obyek bahasa pemrograman. Hal ini menciptakan, pada dasarnya, sebuah "virtual object database" yang dapat digunakan dari dalam bahasa pemrograman. Ada baik gratis dan paket komersial yang tersedia yang melakukan pemetaan relasional obyek, walaupun beberapa programer memilih untuk menciptakan alat ORM mereka sendiri.



Pengelolaan data tugas dalam berorientasi obyek (OO) pemrograman ini biasanya dilaksanakan dengan memanipulasi objek yang hampir selalu non-skalar nilai. Sebagai contoh, pertimbangkan sebuah entri buku alamat yang mewakili satu orang bersama-sama dengan nol atau beberapa nomor telepon dan nol atau lebih alamat. Ini bisa dimodelkan dalam implementasi berorientasi obyek oleh "orang objek" dengan "slot" untuk memegang data yang meliputi entri: nama orang, daftar nomor telepon, dan daftar alamat. Daftar nomor telepon sendiri akan berisi "nomor telepon objek" dan seterusnya. Entri buku alamat diperlakukan sebagai nilai tunggal oleh bahasa pemrograman (ini dapat direferensikan oleh variabel tunggal, misalnya). Berbagai metode dapat dikaitkan dengan objek, seperti metode untuk mengembalikan pilihan nomor telepon, alamat rumah, dan sebagainya.
Namun, banyak produk database populer seperti bahasa query terstruktur sistem manajemen database (SQL DBMS) hanya dapat menyimpan dan memanipulasi skalar nilai-nilai seperti bilangan bulat dan string terorganisir dalam normalisasi tabel. Programmer harus baik mengubah nilai-nilai objek ke dalam kelompok nilai-nilai sederhana untuk penyimpanan dalam database (dan mengubahnya kembali pada pengambilan), atau hanya menggunakan nilai-nilai skalar sederhana dalam program ini. Pemetaan objek-relasional digunakan untuk menerapkan pendekatan pertama.
Inti dari masalah ini adalah objek-objek untuk menerjemahkan bentuk-bentuk yang dapat disimpan dalam database untuk memudahkan pencarian, sambil menjaga properti dari objek dan hubungan mereka; objek-objek ini kemudian digunakan terus-menerus.

ORM sering mengurangi jumlah kode perlu ditulis.Ada kontra serta manfaat untuk menggunakan O / R mapping. Misalnya, beberapa O / R piranti pemetaan tidak berkinerja baik selama penghapusan data massal. Stored prosedur mungkin memiliki performa yang lebih baik, tetapi tidak portabel. Selain itu, ketergantungan terhadap perangkat lunak ORM telah menunjuk sebagai faktor utama dalam memproduksi database dirancang dengan buruk.

Solusi lain adalah dengan menggunakan object-oriented sistem manajemen basis data (OODBMS), yang, seperti namanya, adalah database yang dirancang khusus untuk bekerja dengan nilai-nilai yang berorientasi objek. Menggunakan OODBMS menghilangkan kebutuhan untuk mengkonversi data ke dan dari bentuk SQL, karena data disimpan dalam objek aslinya perwakilan dan hubungan secara langsung mewakili, daripada membutuhkan bergabung tabel / operasi.

Salah satu argumen yang menentang menggunakan OODBMS adalah bahwa beralih dari DBMS SQL untuk yang murni berorientasi obyek DBMS berarti bahwa Anda mungkin kehilangan kemampuan untuk menciptakan permintaan aplikasi independen untuk mengambil ad-hoc kombinasi data tanpa batasan untuk mengakses jalan. Untuk alasan ini, banyak programmer menemukan diri mereka lebih memilih dengan objek-SQL sistem pemetaan, meskipun kebanyakan komersial database berorientasi objek dapat memproses SQL queries secara terbatas. Beberapa produk OODBMS dukungan penuh ANSI SQL.
sumber : wikipedia.com

Model View Controller(MVC)


Model-View-Controller (MVC) adalah sebuah perangkat lunak arsitektur saat ini dianggap sebagai sebuah pola arsitektur yang digunakan dalam rekayasa perangkat lunak. Pola isolat "domain logika" (logika aplikasi untuk pengguna) dari masukan dan presentasi (GUI), memungkinkan pengembangan independen, pengujian dan pemeliharaan dari masing-masing.
Model adalah domain spesifik representasi data pada aplikasi yang beroperasi. Domain logika menambahkan makna pada data mentah (misalnya, menghitung apakah hari ini adalah hari ulang tahun pengguna, atau total, pajak, dan biaya pengiriman untuk keranjang belanja item). Ketika sebuah model mengubah keadaan, itu akan memberitahu yang terkait pandangan sehingga mereka dapat menyegarkan.
Banyak aplikasi menggunakan mekanisme penyimpanan persisten seperti database untuk menyimpan data. MVC tidak secara spesifik menyebutkan lapisan akses data karena dipahami bawah atau dienkapsulasi oleh model. Model akses data tidak objek, namun pada aplikasi yang sangat sederhana yang memiliki sedikit domain logika tidak ada perbedaan nyata yang harus dibuat. Juga, ActiveRecord adalah pola desain yang diterima penggabungan domain logika dan data kode akses - sebuah model yang tahu bagaimana untuk bertahan sendiri.
view merender model menjadi bentuk yang cocok untuk interaksi, biasanya elemen antarmuka pengguna. Beberapa pandangan bisa eksis untuk satu model untuk berbagai tujuan.
Pengontrol menerima input dan memulai tanggapan dengan membuat panggilan pada objek model.
Sebuah aplikasi MVC mungkin koleksi model / view / controller kembar tiga, masing-masing bertanggung jawab atas elemen UI yang berbeda.
MVC ini sering terlihat pada aplikasi web di mana tampilan HTML atau XHTML yang dihasilkan oleh aplikasi. Pengendali GET atau POST menerima masukan dan memutuskan apa yang harus dilakukan dengan itu, diserahkan kepada obyek domain (yaitu model) yang berisi aturan bisnis dan tahu bagaimana melaksanakan tugas-tugas khusus seperti pengolahan langganan baru.
sumber : wikipedia.com

Hibernate

Hibernate adalah salah satu teknologi object relational persistence mapping (ORM)dan query service. Transformasi persistent data dari sebuah representasi data (relational database) ke sebuah representasi data yang lain (java objects) ataupun sebaliknya adalah fungsi yang sebenarnya dilakukan oleh ORM.
Dalam aplikasi pemrograman yang berorientasi objek, persistencememperbolehkan sebuah objek untuk bisa tetap ada diluar proses aplikasi yang membuatnya (C. Bauer & Gavin King, Manning: Hibernate In Action). State dari objek tersebut disimpan pada datastore dan objek dengan state yang sama suatu saat dapat di buat kembali jika aplikasi dijalankan lagi.
Transient Object adalah object yang dibuat dimana state dari objek ini tidak disimpan pada datastore, sehingga tidak dapat dibuat kembali sebuah objek dengan state yang sama suatu saat. Masa hidup sebuah transient object terbatas pada proses yang membuatnya. Kebanyakan objek pada aplikasi terdiri dari gabungan persistent dan transient objek sehingga diperlukan sebuah sub-sistem yang menangani persistent objek
Domain model adalah representasi dari business entities yang digunakan dalam aplikasi java. Dalam arsitektur aplikasi yang terbagi menjadi beberapa layer,domain model digunakan untuk menjalankan business logic pada business layer(pada java bukan pada database). Business layer berhubungan dengan persistence layer untuk proses loading dan menyimpan persistent object dari domain model.
ORM adalah middleware pada persistence layer yang menangani persistent object.ORM bukan merupakan satu-satunya solusi permasalahan yang digunakan untuk menangani persistent object, cara lain yang bisa digunakan adalah dengan EJB atau langsung memakai SQL yang mengkopi nilai yang dari JDBC result set padapersistent object di domain model.
Hibernate ditulis dengan menggunakan bahasa pemrograman java meskipun saat ini juga dikembangkan untuk mendukung .NET framework. Persistent objectdapat dibuat menggunakan hibernate dengan idiom bahasa pemrograman java termasuk didalamnya association, inheritance, polymorphism, composition, java collection framework seperti Set, List, Map. Hibernate adalah free software yang menggunakan lisensi LGPL.
Hibernate mendukung banyak DBMS (Database Management System) antara lain Oracle, DB2, MySQL, PostgreSQL, Sybase, SAP DB, HypersonicSQL, Microsoft SQL Server, Posgress, McKoi SQL, Pointbase dan Interbase. Hibernate dapat diintegrasikan dengan Framework-framework java yang lain seperti JBoss(hibernate sekarang merupakan bagian dari JBoss Project), Spring Framework, Struts, JSF maupun framework java yang lain sebagai persistence layer.
Object Oriented Query Language (OOQL) yang digunakan oleh hibernate mendefinisikan join table sebagai object property path. Selain itu OOQL mendukung fungsi dan operator SQL, fungsi aggregat seperti sum, avg, min, max, count. OOQL mendukung fungsi group by, having dan order by. Hibernate juga mendukung sub query (sub select pada database). Query yang dihasilkan oleh hibernate mengembalikan nilai berupa Objek atau nilai skalar
Hibernate memiliki beberapa interface Sekumpulan Application Programming Interface (API) yang digunakan oleh business layer yaitu:
  • Interface yang digunakan untuk melakukan operasi CRUD dan Query. Interface ini merupakan main point antara business logic dengan Hibernate. Interface tersebut adalah SessionTransaction dan Query.
  • Interface yang digunakan oleh aplikasi untuk melakukan konfigurasi Hibernate, yang paling penting adalah class Configuration
  • Callback Interface yang digunakan oleh aplikasi untuk event yang yang terjadi didalam Hibernate seperti InterceptorLifecycle, dan Validatable.
  • Interface yang merupakan implementasi mapping Hibernate sepertiUserTypeCompositeUserTypedan IdentifierGenerator
  • SessionFactory, factory untuk Session, client dari ConnectionProvider.
  • Session, class yang digunakan antara aplikasi dengan database. Session mengelola object untuk aplikasi. Session adalah wrapper dari sebuah koneksi JDBC
  • Persistent Object & Collections, object yang memiliki persistent state dan bisnis proses, bisa berupa JavaBean. Persistent Object & Collection selalu mempunyai 1 Session.
  • Transient Object & Collections, merupakan instance dari persistent classyang tidak terkait dengan Session. Transient Object & Collections bisa berupa object yang di buat oleh aplikasi yang di-persistent-kan. Atau obyek yang session telah di tutup (closed session).
  • Transaction, object yang digunakan oleh aplikasi untuk menspesifikasikan unit kerja yang atomic. Transaction adalah abstraksi dari JDBC, JTA atau CORBA Transaction. Sebuah Session dapat memiliki lebih dari 1 Transaction.
  • ConnectionProvider, yaitu abstraksi dari DataSource atau DriverManager. ConnectionProvider tidak di bisa diakses langsung oleh business layer.
  • TransactionFactory, factory untuk Transaction
Sebuah instance dari Datastore adalah representasi dari keseluruhan mappingantara objek-objek java ke database relasional. Mapping di compile dari berbagai file mapping yang berformat xml. Sebuah instance dari Datastore dapat dibuat dengan memanggil fungsi Hibernate.createDatastore().

sumber: http://heru.wordpress.com/2006/03/21/berkenalan-sekilas-dengan-hibernate/
.... © 2008 Template by:
SkinCorner