Seseorang menyarankan saya menggunakan ORM untuk sebuah proyek yang saya'm merancang, tapi aku'm kesulitan mencari informasi tentang apa itu atau bagaimana cara kerjanya.
Siapa pun dapat memberikan saya penjelasan singkat dari apa yang ORM dan bagaimana cara kerjanya dan bagaimana saya harus memulai menggunakan satu?
Object-Relational Mapping (ORM) adalah sebuah teknik yang memungkinkan anda untuk query dan memanipulasi data dari database menggunakan paradigma berorientasi objek. Ketika berbicara tentang ORM, kebanyakan orang merujuk ke perpustakaan yang mengimplementasikan Pemetaan Objek-Relasional teknik, oleh karena itu kalimat "ORM".
Sebuah ORM perpustakaan adalah benar-benar biasa library yang ditulis dalam bahasa pilihan yang merangkum kode yang dibutuhkan untuk memanipulasi data, sehingga anda don't menggunakan SQL lagi; anda berinteraksi secara langsung dengan objek dalam bahasa yang sama anda're menggunakan.
Sebagai contoh, di sini adalah benar-benar imajiner kasus dengan pseudo bahasa:
Anda memiliki buku kelas, anda ingin mengambil semua buku-buku yang penulis "Linus". Secara manual, anda akan melakukan sesuatu seperti itu:
book_list = new List();
sql = "SELECT book FROM library WHERE author = 'Linus'";
data = query(sql); // I over simplify ...
while (row = data.next())
{
book = new Book();
book.setAuthor(row.get('author');
book_list.add(book);
}
Dengan ORM perpustakaan, itu akan terlihat seperti ini:
book_list = BookTable.query(author="Linus");
Bagian mekanik ini diurus secara otomatis melalui ORM perpustakaan.
Menggunakan ORM menghemat banyak waktu karena:
Menggunakan ORM perpustakaan ini lebih fleksibel karena:
Tapi ORM dapat menjadi sakit:
untuk
loop.Nah, gunakan salah satu. Mana ORM perpustakaan yang anda pilih, mereka semua menggunakan prinsip yang sama. Ada banyak ORM perpustakaan di sini:
Jika anda ingin mencoba sebuah ORM perpustakaan dalam pemrograman Web, anda'a akan lebih baik menggunakan seluruh kerangka stack seperti:
Jangan mencoba untuk menulis anda sendiri ORM, kecuali jika anda mencoba untuk belajar sesuatu. Ini adalah raksasa bagian dari pekerjaan, dan lama mengambil banyak waktu dan bekerja sebelum mereka menjadi dapat diandalkan.
siapa pun Dapat memberikan saya penjelasan singkat...
Yakin.
ORM adalah singkatan dari "Objek untuk Pemetaan Relasional" di mana
The Obyek bagian adalah salah satu yang anda gunakan dengan bahasa pemrograman ( python dalam kasus ini )
The Relasional bagian adalah sebuah Relational Database Manager ( Sistem database yang ) ada jenis lain dari database tapi yang paling populer adalah relasional ( anda tahu tabel, kolom, pk fk dll misalnya Oracle, MySQL, MS-SQL )
Dan akhirnya Pemetaan bagian mana yang anda lakukan jembatan antara objek dan tabel anda.
Dalam aplikasi di mana anda don't menggunakan ORM framework anda melakukan ini dengan tangan. Menggunakan ORM framework akan memungkinkan anda mengurangi boilerplate yang diperlukan untuk membuat larutan.
Jadi let's mengatakan anda memiliki objek ini.
class Employee:
def __init__( self, name ):
self.__name = name
def getName( self ):
return self.__name
#etc.
dan meja
create table employee(
name varcar(10),
-- etc
)
Menggunakan ORM framework akan memungkinkan anda untuk memetakan objek itu dengan db merekam otomatis dan menulis sesuatu seperti:
emp = Employee("Ryan")
orm.save( emp )
Dan memiliki karyawan yang dimasukkan ke dalam DB.
Ups itu bukan yang singkat tapi saya harap hal ini cukup sederhana untuk menangkap artikel lain anda baca.
ORM (Object Relational Mapper) adalah suatu bagian/lapisan dari perangkat lunak yang membantu peta kode Objek untuk database anda.
Beberapa menangani aspek lebih dari yang lain...tapi tujuan adalah untuk mengambil beberapa dari berat Lapisan Data dari pengembang's bahu.
Berikut ini's sebuah klip singkat dari Martin Fowler (Data Mapper):
Seperti semua akronim itu's ambigu, tapi saya menganggap mereka berarti object-relational mapper - cara untuk menutupi mata anda dan membuat percaya ada's tidak ada SQL di bawah, melainkan itu's semua benda;-). Tidak benar, tentu saja, dan bukan tanpa masalah -- yang selalu warna-warni Jeff Atwood telah dijelaskan ORM sebagai Vietnam CS;-). Tapi, jika anda tahu sedikit atau tidak ada SQL, dan memiliki cukup sederhana / kecil-skala masalah, mereka dapat menghemat waktu anda!-)
Model objek yang bersangkutan dengan berikut tiga konsep Abstraksi Data Enkapsulasi Warisan Model relasional digunakan konsep dasar dari suatu relasi atau tabel. Object-relational mapping (ATAU pemetaan) produk mengintegrasikan objek bahasa pemrograman kapasitas dengan database relasional.