Opis szkolenia:
Kurs przeznaczony jest dla programistów pragnących poszerzyć swoją wiedzę w zakresie tworzenia aplikacji z wykorzystaniem narzędzi ORM (Object/Relational Mapping). Tematem szkolenia jest biblioteka SQLAlchemy będąca jednym z najpopularniejszych framework-ów napisanych w języku Python. Dodatkowo uczestnicy będą mieli okazję zapoznać się z biblioteką Elixir, która rozszerza możliwości SQLAlchemy o deklaratywne opisanie modelu. Od uczestnika wymagana jest znajomość podstaw programowania w języku Python oraz zagadnień związanych z bazami danych.
Plan szkolenia:
Wprowadzenie
- Object/Relational Mapping (ORM) - omówienie
- Zalety systemów ORM
- Niezgodności pomiędzy podejściami: obiektowym i relacyjnym
- Filozofia i architektura SQLAlchemy
- Instalacja wymaganych narzędzi: Python, SQLAlchemy/Elixir, Eclipse/PyDev
SQLAlchemy - wyrażenia SQL
- Definiowanie i tworzenie tabel
- Modyfikowanie zawartości bazy danych (dodawanie/modyfikacja/usuwanie)
- Budowanie zapytań pobierających dane
- Operatory is null, and, or, between... and...
- Używanie aliasów, złączeń join i operacji union
- Stosowanie funkcji agregujących
- Używanie podzapytań
Mapowanie Obiektowo-Relacyjne
- Mapowanie kolumn
- Opóźnione ładowanie
- Prosta walidacja
- Mapowanie hierarchii dziedziczeń
- Użycie wielu tablic
- Użycie pojedynczej tablicy
- Użycie dedykowanych tablic
- Mapowanie relacji
- Podstawowe wzorce
- One To Many
- Many To One
- One To One
- Many To Many (także z atrybutami)
- Mapowanie hierarchicznych danych
- Strategie ładowania: Lazy vs Eager
Obiekt sesji
- Pojęcie sesji
- Tworzenie, używanie obiektu sesji
- Zarządzanie transakcjami
- Kontekstowe sesje
Database Engines
- Wspierane bazy danych
- Opcje obiektu Database Engine
- Konfiguracja logowania
Metadane
- Opis struktury bazy danych przy użyciu metadanych
- Tworzenie i usuwanie tabel bazodanowych
- Domyślne wartości dla kolumn
- Definiowanie więzów integralności oraz indeksów
Deklaratywne opisywanie modelu
- Pakiet sqlalchemy.ext.declarative
- Definiowanie atrybutów
- Definiowanie relacji
- Mapowanie hierarchii dziedziczeń
- Elixir
- Definiowanie atrybutów
- Definiowanie relacji
- Mapowanie hierarchii dziedziczeń
- Budowanie zapytań
Czas trwania szkolenia:
3 dni po 8 godzin lekcyjnych