SQLAlchemy adalah toolkit SQL dan Object-Relational Mapping (ORM) open-source yang dirilis dengan menggunakan Lisensi MIT untuk bahasa pemrograman Python. SQLAlchemy berprinsip bahwa database relasional dirancang seperti koleksi objek, sedangkan kumpulan data di dalamnya diperlakukan lebih dari sekadar tabel dan baris, melainkan sebagai koleksi objek yang saling berelasi secara langsung di dalam ekosistem kode Python.
Melalui implementasi mapper disingkat dengan ORM, pengembang dapat mendefinisikan skema database dan melakukan operasi manipulasi data (Create, Read, Update, Delete) menggunakan kelas, atribut, dan objek Python murni tanpa harus menuliskan sintaks SQL mentah secara terus-menerus. Pendekatan ini menjembatani jurang antara paradigma pemrograman berorientasi objek (OOP) dan sistem manajemen database relasional (RDBMS).
Karakteristik Utama dan Arsitektur SQLAlchemy
Secara arsitektural, SQLAlchemy terbagi menjadi dua komponen utama: Core dan ORM. Komponen Core bertindak sebagai fondasi yang menyediakan sistem abstraksi database yang kuat, connection pooling, pengelolaan transaksi, serta SQL expression language. Di sisi lain, komponen ORM dibangun di atas Core untuk memberikan pola pemetaan data relasional tingkat tinggi.
| Komponen | Fungsi Utama | Paradigma |
|---|---|---|
| SQLAlchemy Core | Abstraksi database, SQL expression language, connection pooling | Relational / SQL-centric |
| SQLAlchemy ORM | Pemetaan objek ke tabel, Unit of Work pattern, manajemen relasi | Object-Oriented Programming (OOP) |
Prinsip Kerja Mapper dan Sifat Lisensi
Mapper dalam SQLAlchemy bertanggung jawab untuk menghubungkan kelas-kelas Python dengan tabel database relasional. Dengan mekanisme ini, setiap instansiasi dari sebuah kelas merepresentasikan sebuah baris di dalam tabel, dan perubahan pada atribut objek dapat dilacak serta disinkronkan secara otomatis ke dalam database.
Perangkat lunak ini didistribusikan di bawah Lisensi MIT, yang memberikan kebebasan penuh kepada para pengembang dan perusahaan untuk menggunakan, memodifikasi, mendistribusikan, serta mengintegrasikan SQLAlchemy ke dalam proyek perangkat lunak proprietary maupun open-source tanpa batasan komersial yang memberatkan.