SQLAlchemy Core vs ORM
Pahami kedua lapisan tersebut
SQLAlchemy Core vs ORM adalah pelajaran Python Academy gratis di CoddyKit. Ini adalah pelajaran 1 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar Python Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Python Academy mencakup 4 pelajaran total.
Apa Itu SQLAlchemy
SQLAlchemy adalah perangkat bantu Python paling populer untuk bekerja dengan basis data relasional. Perangkat ini menyediakan dua lapisan: Core dan ORM.
Anda dapat memasangnya dengan pip install sqlalchemy.
from sqlalchemy import create_engine
engine = create_engine('sqlite:///:memory:')
print('Engine:', engine)Mesin
Kedua lapisan dimulai dengan Engine, yang dibuat oleh create_engine(). Mesin ini mengelola kumpulan koneksi dan mengetahui cara berkomunikasi dengan basis data tertentu melalui URL.
from sqlalchemy import create_engine
engine = create_engine('sqlite:///app.db')
print('Dialect:', engine.dialect.name)Dua Lapisan
Core adalah perangkat bantu ekspresi SQL: Anda membangun kueri yang sangat mirip dengan SQL.
ORM dibangun di atas Core dan memetakan kelas Python ke tabel, sehingga Anda bekerja dengan objek, bukan baris.
# Core: think in tables and SQL expressions
# ORM: think in Python classes and objects
print('Core = SQL toolkit, ORM = object mapping')Core: Mendefinisikan Tabel
Dalam Core, Anda mendeskripsikan tabel secara eksplisit dengan objek Table dan MetaData.
from sqlalchemy import MetaData, Table, Column, Integer, String
metadata = MetaData()
users = Table('users', metadata,
Column('id', Integer, primary_key=True),
Column('name', String))
print('Table defined:', users.name)Core: Membangun Kueri
Core membangun kueri dengan ekspresi Python seperti select() yang diterjemahkan langsung ke SQL.
from sqlalchemy import MetaData, Table, Column, Integer, String, select
metadata = MetaData()
users = Table('users', metadata,
Column('id', Integer, primary_key=True),
Column('name', String))
stmt = select(users).where(users.c.name == 'Alice')
print(stmt)ORM: Kelas yang Dipetakan
Dalam ORM, sebuah kelas Python mewakili sebuah tabel. Setiap atribut dipetakan ke sebuah kolom. Anda menguerikan dan menyimpan objek, bukan baris mentah.
from sqlalchemy.orm import DeclarativeBase, Mapped, mapped_column
class Base(DeclarativeBase):
pass
class User(Base):
__tablename__ = 'users'
id: Mapped[int] = mapped_column(primary_key=True)
name: Mapped[str]
print('Mapped class:', User.__tablename__)Kapan Menggunakan Core
Core cocok ketika Anda menginginkan kontrol terperinci atas SQL yang tepat, perlu memproses data secara massal, atau menjalankan kueri pelaporan kompleks yang akan terbebani oleh objek.
# Core is great for:
# - bulk inserts/updates
# - complex analytical queries
# - close control over generated SQL
print('Core: control and performance')Kapan Menggunakan ORM
ORM cocok untuk kode aplikasi pada umumnya: Anda memodelkan entitas bisnis sebagai kelas, mendapatkan pelacakan perubahan, dan menulis lebih sedikit kode berulang.
# ORM is great for:
# - application domain models
# - automatic change tracking
# - relationships between objects
print('ORM: productivity and clarity')Keduanya Berbagi Mesin
Karena ORM dibangun di atas Core, keduanya menggunakan Engine dan kumpulan koneksi yang sama. Anda bahkan dapat memadukan keduanya dalam satu aplikasi.
from sqlalchemy import create_engine
engine = create_engine('sqlite:///:memory:')
# Core uses engine.connect()
# ORM uses a Session bound to the same engine
print('One engine powers both layers')Membuat Tabel
Base.metadata.create_all(engine) mengeluarkan pernyataan CREATE TABLE untuk semua kelas yang dipetakan.
from sqlalchemy import create_engine
from sqlalchemy.orm import DeclarativeBase, Mapped, mapped_column
class Base(DeclarativeBase):
pass
class User(Base):
__tablename__ = 'users'
id: Mapped[int] = mapped_column(primary_key=True)
engine = create_engine('sqlite:///:memory:')
Base.metadata.create_all(engine)
print('Tables created')Memilih Lapisan
Sebagian besar aplikasi menggunakan ORM sebagai bawaan untuk pekerjaan sehari-hari, lalu beralih ke Core untuk kueri berat atau kueri yang sangat dioptimalkan. Dengan menguasai keduanya, Anda mendapatkan fleksibilitas.
# Rule of thumb:
# Start with the ORM. Use Core where you need raw power.
print('Default ORM, escape to Core when needed')Pemeriksaan Cepat
Uji pemahaman Anda tentang kedua lapisan.
Rangkuman
Anda telah mengenal arsitektur SQLAlchemy.
Enginemenggerakkan semuanya melaluicreate_engine()- Core adalah perangkat bantu ekspresi SQL untuk kontrol dan kinerja
- ORM memetakan kelas ke tabel untuk kode aplikasi yang produktif
- Keduanya berbagi mesin yang sama dan dapat dipadukan
Pertanyaan yang Sering Diajukan
Apakah pelajaran “SQLAlchemy Core vs ORM” gratis?
Ya — teks lengkap “SQLAlchemy Core vs ORM” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Python Academy, upgrade ke CoddyKit PRO. Kursus Python Academy mencakup 4 pelajaran total.
Apa yang akan aku pelajari di “SQLAlchemy Core vs ORM”?
Pahami kedua lapisan tersebut Kamu berlatih Python Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.
Apakah aku perlu pengalaman untuk memulai Python Academy?
Tidak diperlukan pengalaman sebelumnya. Python Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 1 dari 4.
Berapa lama pelajaran “SQLAlchemy Core vs ORM” memakan waktu?
Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.
Bisakah aku menulis dan menjalankan kode dalam pelajaran Python Academy ini?
Ya. Setiap pelajaran Python Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.
Semua pelajaran dalam kursus ini
- SQLAlchemy Core vs ORM
- Mendefinisikan Model
- Membuat Kueri dengan Session
- Relasi dan Join