0Pricing
Python Academy · Ders

SQLAlchemy Core ve ORM Karşılaştırması

İki katmanı anlayın

SQLAlchemy Core ve ORM Karşılaştırması, CoddyKit'te ücretsiz bir Python Academy dersidir. Bu, 4 dersinin 1. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, Python Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Python Academy kursu toplamda 4 dersten oluşur.

SQLAlchemy Nedir?

SQLAlchemy, ilişkisel veritabanlarıyla çalışmak için en popüler Python araç takımıdır. İki katman sunar: Core ve ORM.

Kurulumunu pip install sqlalchemy ile yaparsınız.

from sqlalchemy import create_engine
engine = create_engine('sqlite:///:memory:')
print('Engine:', engine)

Motor

Her iki katman da create_engine() ile oluşturulan bir Motor ile başlar. Motor, bağlantı havuzunu yönetir ve bir URL aracılığıyla belirli veritabanınızla nasıl iletişim kuracağını bilir.

from sqlalchemy import create_engine
engine = create_engine('sqlite:///app.db')
print('Dialect:', engine.dialect.name)

İki Katman

Core bir SQL ifade araç takımıdır: SQL'e yakından karşılık gelen sorgular oluşturursunuz.

ORM, Core'un üzerinde çalışır ve Python sınıflarını tablolara eşler; böylece satırlar yerine nesnelerle çalışırsınız.

# Core: think in tables and SQL expressions
# ORM: think in Python classes and objects
print('Core = SQL toolkit, ORM = object mapping')

Core: Tablo Tanımlama

Core'da tabloları Table ve MetaData nesneleriyle açıkça tanımlarsınız.

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: Sorgu Oluşturma

Core, doğrudan SQL'e çevrilen select() gibi Python ifadeleriyle sorgular oluşturur.

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: Eşlenmiş Bir Sınıf

ORM'de bir Python sınıfı bir tabloyu temsil eder. Her öznitelik bir sütuna eşlenir. Ham satırlar yerine nesneleri sorgular ve kaydedersiniz.

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__)

Core Ne Zaman Kullanılır?

Tam SQL üzerinde ayrıntılı denetim istediğinizde, toplu veri işlemleri yaptığınızda veya nesnelerin ek yük oluşturduğu karmaşık raporlama sorgularını çalıştırdığınızda Core uygundur.

# Core is great for:
# - bulk inserts/updates
# - complex analytical queries
# - close control over generated SQL
print('Core: control and performance')

ORM Ne Zaman Kullanılır?

ORM, tipik uygulama kodu için uygundur: iş varlıklarını sınıflar olarak modellendirir, değişiklik takibi elde eder ve daha az tekrarlı kod yazarsınız.

# ORM is great for:
# - application domain models
# - automatic change tracking
# - relationships between objects
print('ORM: productivity and clarity')

Aynı Motoru Paylaşırlar

ORM, Core üzerine kurulduğu için ikisi de aynı Motoru ve bağlantı havuzunu kullanır. Hatta bunları tek bir uygulamada birlikte kullanabilirsiniz.

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')

Tabloları Oluşturma

ORM ile Base.metadata.create_all(engine), eşlenmiş tüm sınıflar için CREATE TABLE ifadelerini çalıştırır.

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')

Bir Katman Seçme

Çoğu uygulama günlük işler için varsayılan olarak ORM'yi kullanır; daha sonra nadir görülen ağır veya yüksek düzeyde optimize edilmiş bir sorgu için Core'a geçer. Her ikisini de bilmek size esneklik kazandırır.

# Rule of thumb:
# Start with the ORM. Use Core where you need raw power.
print('Default ORM, escape to Core when needed')

Hızlı Kontrol

İki katman hakkındaki anlayışınızı sınayın.

Özet

SQLAlchemy mimarisini tanıdınız.

  • Engine, create_engine() aracılığıyla her şeyin temelini oluşturur
  • Core, denetim ve performans için bir SQL ifade araç takımıdır
  • ORM, verimli uygulama kodu için sınıfları tablolara eşler
  • İkisi de aynı motoru paylaşır ve birlikte kullanılabilir

Sıkça Sorulan Sorular

“SQLAlchemy Core ve ORM Karşılaştırması” dersi ücretsiz mi?

Evet — “SQLAlchemy Core ve ORM Karşılaştırması” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve Python Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Python Academy kursu toplamda 4 dersten oluşur.

“SQLAlchemy Core ve ORM Karşılaştırması” dersinde ne öğreneceğim?

İki katmanı anlayın Python Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.

Python Academy öğrenmeye başlamak için deneyim gerekli mi?

Önceden deneyim gerekmez. CoddyKit'te Python Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 1. dersidir.

“SQLAlchemy Core ve ORM Karşılaştırması” dersi ne kadar sürer?

Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.

Bu Python Academy dersinde kod yazıp çalıştırabilir miyim?

Evet. Her Python Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.

Bu kursun tüm dersleri

  1. SQLAlchemy Core ve ORM Karşılaştırması
  2. Modelleri Tanımlama
  3. Session ile Sorgulama
  4. İlişkiler ve Birleştirmeler
← Python Academy Sayfasına Dön