Seseorang menyarankan agar saya menggunakan ORM untuk proyek yang saya rancang, tetapi saya kesulitan menemukan informasi tentang apa itu atau bagaimana cara kerjanya.
Adakah yang bisa memberi saya penjelasan singkat tentang apa itu ORM dan bagaimana cara kerjanya dan bagaimana saya harus mulai menggunakannya?
Jawaban:
pengantar
Pemetaan Relasional Objek (ORM) adalah teknik yang memungkinkan Anda membuat kueri dan memanipulasi data dari database menggunakan paradigma berorientasi objek. Ketika berbicara tentang ORM, kebanyakan orang mengacu pada perpustakaan yang mengimplementasikan teknik Pemetaan Relasional Objek, oleh karena itu frasa "ORM".
Pustaka ORM adalah pustaka biasa yang ditulis dalam bahasa pilihan Anda yang merangkum kode yang diperlukan untuk memanipulasi data, jadi Anda tidak lagi menggunakan SQL; Anda berinteraksi langsung dengan objek dalam bahasa yang sama dengan yang Anda gunakan.
Misalnya, berikut adalah kasus imajiner sepenuhnya dengan bahasa palsu:
Anda memiliki kelas buku, Anda ingin mendapatkan kembali semua buku yang penulisnya adalah "Linus". Secara manual, Anda akan melakukan hal seperti itu:
Dengan pustaka ORM, akan terlihat seperti ini:
Bagian mekanis ditangani secara otomatis melalui perpustakaan ORM.
Pro dan kontra
Menggunakan ORM menghemat banyak waktu karena:
Menggunakan pustaka ORM lebih fleksibel karena:
Tapi ORM bisa menyebalkan:
for
putaran.Bagaimana cara mempelajari ORM?
Nah, gunakan satu. Library ORM mana pun yang Anda pilih, semuanya menggunakan prinsip yang sama. Ada banyak pustaka ORM di sekitar sini:
Jika Anda ingin mencoba pustaka ORM dalam pemrograman Web, Anda akan lebih baik menggunakan keseluruhan kerangka kerja seperti:
Jangan mencoba menulis ORM Anda sendiri, kecuali Anda mencoba mempelajari sesuatu. Ini adalah pekerjaan yang sangat besar, dan yang lama membutuhkan banyak waktu dan pekerjaan sebelum menjadi dapat diandalkan.
sumber
Tentu.
ORM adalah singkatan dari "Object to Relational Mapping" dimana
Bagian Objek adalah yang Anda gunakan dengan bahasa pemrograman Anda (python dalam kasus ini)
Bagian Relasional adalah Sistem Manajer Basis Data Relasional (Basis data yang ada) ada jenis basis data lain tetapi yang paling populer adalah relasional (tahu tabel, kolom, pk fk dll misalnya Oracle MySQL, MS-SQL)
Dan akhirnya bagian Pemetaan adalah tempat Anda melakukan jembatan antara objek dan tabel Anda.
Dalam aplikasi di mana Anda tidak menggunakan kerangka ORM, Anda melakukan ini dengan tangan. Menggunakan kerangka ORM akan memungkinkan Anda mengurangi boilerplate yang diperlukan untuk membuat solusi.
Jadi katakanlah Anda memiliki benda ini.
dan meja
Menggunakan kerangka kerja ORM akan memungkinkan Anda untuk memetakan objek itu dengan catatan db secara otomatis dan menulis sesuatu seperti:
Dan minta karyawan itu dimasukkan ke dalam DB.
Ups, ini tidak sesingkat itu, tetapi saya harap ini cukup sederhana untuk menangkap artikel lain yang Anda baca.
sumber
ORM (Object Relational Mapper) adalah bagian / lapisan perangkat lunak yang membantu memetakan Objek kode Anda ke database Anda.
Beberapa menangani lebih banyak aspek daripada yang lain ... tetapi tujuannya adalah untuk menghilangkan sebagian bobot Lapisan Data dari pundak pengembang.
Ini klip singkat dari Martin Fowler (Data Mapper):
Pola Pemetaan Data Arsitektur Aplikasi Perusahaan
sumber
Seperti semua akronim, itu ambigu, tapi saya berasumsi maksudnya pemeta objek-relasional - cara untuk menutupi mata Anda dan membuat percaya bahwa tidak ada SQL di bawahnya, melainkan semua objek ;-). Tentu saja tidak benar, dan bukannya tanpa masalah - Jeff Atwood yang selalu penuh warna menggambarkan ORM sebagai Vietnam CS ;-). Tetapi, jika Anda tahu sedikit atau tidak sama sekali SQL, dan memiliki masalah yang cukup sederhana / berskala kecil, mereka dapat menghemat waktu Anda! -)
sumber
Model Objek berkaitan dengan tiga konsep berikut Data Abstraksi Enkapsulasi Pewarisan Model relasional menggunakan konsep dasar dari suatu relasi atau tabel. Produk pemetaan objek-relasional (OR mapping) mengintegrasikan kemampuan bahasa pemrograman objek dengan database relasional.
sumber