Szkolenie Bazy danych w python – SQLAlchemy
Poziom
ŚredniozaawansowanyCzas
16h / 2 dniTermin
IndywidualnieCena
IndywidualnieSzkolenie Bazy danych w python – SQLAlchemy
Praktyczne szkolenie z pracy z relacyjnymi bazami danych w Pythonie przy użyciu SQLAlchemy 2.0. Uczestnicy poznają dwa uzupełniające się podejścia: SQLAlchemy Core oraz ORM. Zakres obejmuje konfigurację połączeń, definiowanie schematów i modeli, wykonywanie zapytań, operacje CRUD, relacje między tabelami, sesje, transakcje oraz podstawy migracji schematu z użyciem Alembic. Podczas ćwiczeń uczestnicy przygotowują niewielką warstwę dostępu do danych, wykorzystując współczesny interfejs select(), typowane modele Mapped i mapped_column() oraz jawne granice transakcji. Program uwzględnia zapytania parametryzowane, ograniczenia integralności, bezpieczną konfigurację poświadczeń, obsługę wyjątków, rollback oraz podstawową diagnostykę wygenerowanego SQL i problemu N+1.
Programistów Python, którzy znają funkcje, klasy, type hints, moduły, środowiska wirtualne i instalowanie pakietów za pomocą pip
Programistów backendowych i webowych, którzy rozumieją podstawy SQL, klucze główne i obce oraz relacje między tabelami
Analityków danych i specjalistów automatyzacji, którzy potrafią pracować w terminalu, wykonywać podstawowe zapytania SELECT, INSERT, UPDATE i DELETE oraz chcą tworzyć warstwy dostępu do relacyjnych baz danych
Czego nauczysz się na tym szkoleniu?
- Skonfigurujesz środowisko SQLAlchemy 2.0, sterownik bazy danych, obiekt Engine i bezpieczny adres połączenia bez zapisywania poświadczeń w kodzie
- Zdefiniujesz tabele, kolumny, klucze, ograniczenia i indeksy oraz przygotujesz podstawową zmianę schematu za pomocą Alembic
- Wykonasz parametryzowane operacje SELECT, INSERT, UPDATE i DELETE, obejmujące filtrowanie, sortowanie, łączenie tabel i stronicowanie wyników
- Zbudujesz typowane modele ORM oraz relacje One-to-One, One-to-Many i Many-to-Many
- Zastosujesz Session, model Unit of Work i jawne granice transakcji obejmujące flush, commit i rollback
- Przeanalizujesz wygenerowany SQL, rozpoznasz problem N+1 i dobierzesz podstawową strategię ładowania relacji
- Porównasz SQLAlchemy Core i ORM oraz przygotujesz niewielką, spójną warstwę dostępu do danych dla przykładowej aplikacji
Program szkolenia
Dzień 1
Moduł 1: Wprowadzenie do baz danych i SQLAlchemy
- Relacyjne bazy danych: tabele, rekordy, typy danych, klucze główne i obce, ograniczenia integralności oraz relacje
- Podstawy języka SQL: SELECT, INSERT, UPDATE, DELETE, filtrowanie, sortowanie, złączenia i transakcje
- Rola ORM w aplikacjach Python: mapowanie obiektowo-relacyjne, korzyści, kompromisy i granice abstrakcji
- Środowisko SQLAlchemy 2.0: instalacja biblioteki i sterownika, konfiguracja projektu, adres połączenia oraz SQLite i PostgreSQL
Moduł 2: Architektura SQLAlchemy
- SQLAlchemy Core i ORM – różnice, wspólny język wyrażeń SQL, zakres kontroli oraz kryteria doboru podejścia
- Engine, Connection, MetaData, Table, Select i Result – struktura warstwy Core, pula połączeń i cykl wykonania zapytania
- Session i Unit of Work – mapa tożsamości, śledzenie zmian, flush, granice transakcji oraz cykl życia obiektów
Moduł 3: Praca z bazą danych w trybie SQLAlchemy Core
- Połączenie z bazą danych: dialekt, sterownik DBAPI, adres URL, Engine, Connection, pula połączeń i konfiguracja poświadczeń
- Definicja tabel: Table, Column, typy danych, klucze główne i obce, ograniczenia, wartości domyślne oraz indeksy
- Schemat bazy danych: metadane, operacje DDL, create_all() w środowisku laboratoryjnym oraz podstawy wersjonowanych migracji Alembic
- Operacje INSERT, UPDATE i DELETE: wyrażenia SQLAlchemy, parametry, transakcje, kontrola liczby zmienionych rekordów i integralność danych
- Zapytania SELECT: warunki, sortowanie, złączenia, agregacje, aliasy, stronicowanie oraz przetwarzanie obiektów Result
Dzień 2
Moduł 4: Praca z bazą danych w trybie ORM
- Modele deklaratywne ORM: DeclarativeBase, Mapped, mapped_column(), typy, klucze, ograniczenia i reprezentacja encji
- Relacje ORM: One-to-One, One-to-Many i Many-to-Many, relationship(), tabela asocjacyjna, kaskady oraz strategie ładowania
- Operacje CRUD w ORM: Session.add(), Session.get(), select(), aktualizacja encji, usuwanie oraz synchronizacja stanu
- Transakcje i cykl życia sesji: sessionmaker, bloki kontekstowe, flush, commit, rollback, wygasanie obiektów i zakres sesji
- Obsługa wyjątków i odtwarzanie spójności: IntegrityError, błędy DBAPI, rollback, diagnostyka wygenerowanego SQL, problem N+1 i bezpieczne logowanie