Design
Development
PRACA W ZESPOLE
KANAŁY KOMUNIKACJI W ZESPOLE
PRZYDATNE NARZĘDZIA
ORGANIZACJA PLIKÓW I ZASOBÓW
WSPÓLNY JĘZYK
Od czego zacząć?
1
SQL OD PODSTAW
Zadania do przepracowania
Rozdział 1: Podstawy SQL
#1
Identyfikatory bohaterów powinny być unikalne. Zmodyfikuj identyfikator (adventurer_id) postaci Brass Comtel na wartość, która zagwarantuje unikalność danych w tej kolumnie.
#2
Dodaj kilka dodatkowych postaci do tabeli adventurers. Upewnij się, że identyfikatory nowych postaci będą unikalne.
#bonus
Możesz spróbować dodać tych kilka postaci używając jednego zaptyania INSERT INTO.
DDL - zadanie #1
PODSTAWY
Problem:
Rozwiązanie:
Dodatkowo:
Do tabeli adventures chcemy dodać kolumnę birthdate. Jaki typ danych będzie pasował najlepiej?
<....> - ew. zamiast Rozwiązania np Wskazówki, a rozwiązanie na kolejnym slajdzie
- zmień wartość domyślną kolumny health na 200
- zadbaj o to, aby nowa postać tworzyła się z zapasem zdrowia

Zapamiętaj!
PRACA W ZESPOLE
Korzystaj z narzędzi kontroli wersji
Dokumentację i inspiracje trzymaj w chmurze
Zorganizuj pliki PSD oraz korzystaj z kontroli wersji
Proces cięcia stron WWW ewoluował
Pokazuj, nie tłumacz! Rozmawiaj, współpracuj
Statyczne obrazki są martwe
Baw się tym! Droga może być lepsza od celu
TYPOWE ZADANIA
CID (Identyfikacja wizualna)
Bannery
Layout strony WWW
Aplikacja mobilna
Plakat
Ilustracja
Ile to kosztuje?
Opłaty dodatkowe – licencje
Po co mi pliki edycyjne?
.psd
.ai
.indd
.cdr
.fla
.swf
.pdf
.png
Dokumentacja
PRACA W ZESPOLE
Tworzenie repozytoriów treści oraz wytycznych do wybranych Milestone'ów z pomocą rozwiązań chmurowych ułatwia współpracę i synchronizację plików.



Dlaczego designer musi umieć czytać kod?
PRACA W ZESPOLE
- Aby lepiej rozumieć medium na które tworzy
- Aby tworzyć lepsze tickety
- Aby skutecznie komunikować się z programistą
- Aby znać ograniczenia technologi
- Aby samodzielnie testować rozwiązania w przeglądarce


Zrób tą beleczkę na górze bardziej fioletową
i powiększ kapkę font
Zmień kolor .header > span na #631cb2 i ustaw font-size na 1.2em
Umowa z Agencją Kreatywną
UMOWA
- Terminy, terminy, terminy!
- Etapy oddawek
- Poprawki oraz płatności
- Kara umowna a odszkodowanie
- Zaliczka a zadatek
- Autorskie prawa majątkowe
- Licencje
- Pliki graficzne
- Fonty - Muzyka - Zdjęcia i wideo
- Oświadczenia uczestników
- Pliki źródłowe oraz produkcyjne
- Możliwość publikacji w Portfolio
- NDA w umowie lub osobny dokument
- Brief jako załącznik

PODSTAWY SQL
Mikołaj Antoszkiewicz
Czym jest SQL?
PODSTAWY SQL
Wstęp
Structured Query Language -
strukturalny język zapytań używany do tworzenia i modyfikowania baz danych, jak również do wprowadzania i pobierania do nich samych danych
SEQUEL vs. SQL
PODSTAWY SQL
Wstęp

Gdzie się używa SQL?
PODSTAWY SQL
Wstęp
Wszędzie gdzie wykorzystywane są relacyjne bazy danych





Wersje SQL
PODSTAWY SQL
Wstęp
Standardy
Prototyp SEQUEL (IBM)
Pierwsze komercyjne wdrożenie (ORACLE)
1973
1979
1986
Pierwszy standard
ANSI SQL:86
1970
E.T.Codd wymyśla relacyjny model zarządzania danymi
2016
2003
1999
ANSI SQL:99
ANSI SQL:2003
ANSI SQL:2016
Informacje uzupełniające
PODSTAWY SQL
Wstęp
Oparty na konkretnym projekcie - stworzenie bazy danych do gry przygodowej
Każda lekcja będzie zawierać zadanie do pracy samodzielnej
Zadania z kursu można ćwiczyć na dowolnym środowisku bazodanowym
Dodatkowe informacje o zapytaniach SQL można zdobyć w dokumentacji dla wybranego środowiska
PODSTAWY SQL
Mikołaj Antoszkiewicz
PODSTAWY SQL
1
Przygotowanie narzędzi
PODSTAWY SQL
Mikołaj Antoszkiewicz
PODSTAWY SQL
2a
Od czego zacząć?
PODSTAWY SQL
Struktura bazy danych
Gdzie jest Hello World....???
PODSTAWY SQL
Struktura bazy danych

ERD - Entity Relationship Diagram
heroes
equipment
teams
PODSTAWY SQL
Struktura bazy danych
Podzbiory języka SQL
Przykład z bazą
PODSTAWY SQL
Struktura bazy danych
Zadania do przepracowania:
Do zrobienia:
Rozwiązanie:
Dodatkowo:
PODSTAWY SQL
Struktura bazy danych
Usuń stworzoną bazę danych i spróbuj ją odtworzyć.
Spróbuj napisać zapytanie usuwające, bez zaglądania do jakiegokolwiek samouczka czy dokumentacji SQL'a
DROP DATABASE sqland;
CREATE DATABASE sqland;
PODSTAWY SQL
2b
Struktura bazy danych -
- tworzenie tabel
Przykład z bazą
PODSTAWY SQL
Struktura bazy danych - tworzenie tabel
Przykład z bazą
PODSTAWY SQL
Struktura bazy danych - tworzenie tabel
PODSTAWY SQL
Struktura bazy danych - tworzenie tabel
Zadania do przepracowania:
Do zrobienia:
Rozwiązanie:
Dodatkowo:
Do tabeli heroes dodaj kolumnę birthdate.
Jaki typ danych będzie pasował najlepiej?
Kiedy będziesz miał gotowe swoje rozwiązania, porównaj je z zaproponowanymi na początku następnej lekcji.
Zadbaj o to, aby nowa postać tworzyła się z zapasem zdrowia.
Zmień wartość domyślną kolumny health na 200.
PODSTAWY SQL
Mikołaj Antoszkiewicz
3
Wprowadzanie danych
do bazy
PODSTAWY SQL
Rozwiązania do zadań samodzielnych
Wprowadzanie danych do bazy
ODCZYTYWANIE DANYCH
Wprowadzanie danych do bazy
Podstawowe zapytanie INSERT:
ODCZYTYWANIE DANYCH
Zapisanie pojedynczego rekordu:
INSERT INTO <nazwa_tabeli> (<kol2>, <kol1>, <kol3>)
VALUES (<val1>, <val2>, <val3>) ;
Wartości zostaną zapisane w kolumnach według kolejności zadeklarowanej w zapytaniu
| val1 | kol2 | |
| val2 | kol1 | |
| val3 | kol3 |
Wprowadzanie danych do bazy
Podstawowe zapytanie INSERT:
ODCZYTYWANIE DANYCH
INSERT INTO <nazwa_tabeli>
VALUES (<val1>, <val2>, <val3>) ;
Zapisanie pojedynczego rekordu:
Wartości zostaną zapisane w kolumnach według kolejności, w której kolumny były dodawane do tabeli
Dla kolumn dodawanych w kolejności: kol1, kol2, kol3
| val1 | kol1 | |
| val2 | kol2 | |
| val3 | kol3 |
Przykład z bazą
Wprowadzanie danych do bazy
ODCZYTYWANIE DANYCH
Wprowadzanie danych do bazy
CRUD
ODCZYTYWANIE DANYCH
Create - INSERT
Read - SELECT
Update - UPDATE
Delete - DELETE
Zapisywanie danych do pliku
(export / import)
Wprowadzanie danych do bazy
ODCZYTYWANIE DANYCH
Zadania do przepracowania:
Do zrobienia:
Rozwiązanie:
Dodatkowo:
Dodaj klika dodatkowych postaci do tabeli heroes.
Pamiętaj o odpowiednich wartościach identyfikatora hero_id.
Po dodaniu nowych postaci zwiększ identyfikatory (hero_id) wszystkich istniejących postaci o 10.
Przy dodawaniu kilku nowych bohaterów, spróbuj zrobić to jednym poleceniem INSERT INTO.
Kiedy będziesz miał gotowe swoje rozwiązania, porównaj je z zaproponowanymi na początku następnej lekcji.
Wprowadzanie danych do bazy
ODCZYTYWANIE DANYCH
PODSTAWY SQL
Mikołaj Antoszkiewicz
4
Wyprowadzanie danych
z bazy
PODSTAWY SQL
Odczyt danych z bazy
(z filtrowaniem)
Rozwiązania do zadań samodzielnych
Odczyt danych z bazy
ODCZYTYWANIE DANYCH
Przykład z bazą
Odczyt danych z bazy
ODCZYTYWANIE DANYCH
Przykład z bazą
Odczyt danych z bazy
ODCZYTYWANIE DANYCH
OGRANICZENIA I WERYFIKACJA DANYCH
Rozdział 2
Przykład z arkuszem kalkulacyjnym
OGRANICZENIA DANYCH I WERYFIKACJA
OGRANICZENIA DANYCH I WERYFIKACJA
Odtworzenie bazy z plików źródłowych
Dane bazy sqland - do rozdziału 2.sql
OGRANICZENIA I WERYFIKACJA DANYCH
1
Więcej o typach danych
Podstawowe typy danych:
| nazwa | alias | |
|---|---|---|
| character varying(n) | varchar(n) | |
| integer | int | |
| character(n) | char(n) | |
| boolean | boolean | |
| date | date | |
| timestamp | timestamp | |
| numeric | decimal |
character varying(n) varchar(n)
integer int
character(n) char(n)
boolean boolean
date date
timestamp timestamp
numeric decimal
Więcej o typach danych
OGRANICZENIA I WERYFIKACJA DANYCH
Więcej o typach danych
OGRANICZENIA DANYCH I WERYFIKACJA
Przykład z bazą bohaterów
PODSTAWY SQL
Zadania do przepracowania:
Do zrobienia:
Rozwiązanie:
Dodatkowo:
Więcej o typach danych
Zmień typ kolumny gold na taki, który umożliwiłby zapisywanie wartości z groszami - 2 miejsca po przecinku.
Przypisz paru bohaterów jako team leader'ów, a następnie napisz zapytanie SELECT, które ich wybierze.
Tym razem rozwiązania znajdziesz na początku następnej lekcji.
OGRANICZENIA I WERYFIKACJA DANYCH
2
Autoinkrementacja i sekwencje
Autoinkrementacja i sekwencje
OGRANICZENIA DANYCH I WERYFIKACJA
Rozwiązania do zadań samodzielnych
OGRANICZENIA DANYCH I WERYFIKACJA
Przykład z bazą
Autoinkrementacja i sekwencje
PODSTAWY SQL
Zadania do przepracowania:
Do zrobienia:
Rozwiązanie:
Korzystając z zapytań INSERT w pliku
Dane do lekcji 2 rozdziału 2 - pod zadania.sql
dopisz kilka nowych postaci do tabeli heroes.
Następnie tak zmodyfikuj sekwencję przypisaną do kolumny hero_id abyś mógł dodać jeszcze jednego nowego bohatera.
Omówienie rozwiązania znajdziesz w następnej lekcji.
Będzie zaraz po wprowadzeniu do tematu ograniczeń.
Autoinkrementacja i sekwencje
OGRANICZENIA I WERYFIKACJA DANYCH
3
Ograniczenia danych
OGRANICZENIA DANYCH I WERYFIKACJA
Rozwiązania do zadań samodzielnych
Ograniczenia danych
Ograniczenia danych
OGRANICZENIA DANYCH I WERYFIKACJA
CHECK
NOT NULL
UNIQUE
PRIMARY KEY
Rodzaje ograniczeń (constraints):
OGRANICZENIA DANYCH I WERYFIKACJA
Przykład z bazą
Ograniczenia danych
ODCZYTYWANIE DANYCH
Rozdział 3
ODCZYTYWANIE DANYCH
1
Podstawy odczytywania danych
Podstawy odczytywania danych
ODCZYTYWANIE DANYCH
SELECT ...
DQL
SELECT ...
Podstawy odczytywania danych
Podstawowa składnia SELECT-a:
ODCZYTYWANIE DANYCH
SELECT * FROM <nazwa_tabeli>;
SELECT <kolumna1>, <kolumna2> FROM <nazwa_tabeli>;
Wybranie wszystkich danych:
Wybranie danych z niektórych kolumn (pól):
SELECT <kolumna1> AS <alias> FROM <nazwa_tabeli>;
Wykorzystanie aliasów kolumn:
SELECT DISTINCT <kolumna1> FROM <nazwa_tabeli>;
Wybranie unikalnych wartości z kolumny:
Podstawy odczytywania danych
SELECT dla średnio-zaawansowanych:
ODCZYTYWANIE DANYCH
SELECT CASE WHEN <warunek> THEN <resultat>
Warunkowe wybieranie / wyświetlanie danych:
[WHEN <warunek2> THEN <resultat2>]
...
[ELSE <resultat_domyślny>]
END
FROM <nazwa_tabeli>;
Przykład z bazą bohaterów
Podstawy odczytywania danych
ODCZYTYWANIE DANYCH
ODCZYTYWANIE DANYCH
2
Filtrowanie danych
Filtrowanie danych
ODCZYTYWANIE DANYCH
WHERE
(HAVING)
Filtrowanie danych
ODCZYTYWANIE DANYCH
Przykłady warunków filtrowania:
WHERE <wyrażenie> = <wartość> AND <wyrażenie> >= <wartość2>
Wykorzystując operatory porównania i logiczne:
WHERE <wyrażenie> IN (<wartość>, <wartość2>, etc.)
Wykorzystując operator zawierania:
WHERE <wyrażenie> LIKE <tekst_szukany>%
Wykorzystując operator częściowego zawierania tekstu:
Filtrowanie danych
ODCZYTYWANIE DANYCH
WHERE <wyrażenie> BETWEEN <wartość>
AND <wartość2>
Wykorzystując predykat porównania:
Przykłady warunków filtrowania:
WHERE <wyrażenie> NOT BETWEEN <wartość>
AND <wartość2>
Dostępny jest też operator negacji:
Przykład z bazą bohaterów
Podstawy odczytywania danych
ODCZYTYWANIE DANYCH
ŁĄCZENIE TABEL (RELACJAMI)
Rozdział 4
ŁĄCZENIE TABEL
1
Typy relacji łączących tabele
Typy relacji łączących tabele
ŁĄCZENIE TABEL
Film
Aktor
Producent
Dane producenta
1
∞
∞
∞
1
1
Typy relacji między encjami
Przykład z bazą bohaterów
Typy relacji łączących tabele
ŁĄCZENIE TABEL
ŁĄCZENIE TABEL
2
Łączenie tabel na różne sposoby
AGREGACJA DANYCH
Rozdział 5
AGREGACJA DANYCH
1
Podstawy grupowania
Podstawy grupowania
Grupowanie danych w pigułce:
SELECT student, AVG(ocena) AS srednia
FROM <nazwa_tabeli>
GROUP BY student;
Wybranie średnich ocen dla każdego studenta:
AGREGACJA DANYCH
| student | przedmiot | ocena |
|---|---|---|
| Jola | bazy danych | 4 |
| Franek | SQL | 3 |
| Jola | SQL | 5 |
| Witek | Python | 3 |
| Jola | PL/SQL | 3 |
| Witek | SQL | 4 |
| Witek | PL/SQL | 5 |
| student | srednia |
|---|---|
| Jola | 4 |
| Franek | 3 |
| Witek | 4 |
| student | ocena |
|---|---|
| Jola | 4 |
| Franek | 3 |
| Jola | 5 |
| Witek | 3 |
| Jola | 3 |
| Witek | 4 |
| Witek | 5 |
Zadania do przepracowania:
Do zrobienia:
Rozwiązanie:
Bazując na przykładowej tabeli ocen z przedmiotów przedstawionej w czasie lekcji:
Kiedy będziesz miał gotowe swoje rozwiązania, porównaj je z zaproponowanymi na początku następnej lekcji.
Stwórz zapytanie, które zwróci dwie kolumny.
W jednej będą przedmioty, a w drugiej średnia ocen dla każdego z nich.
Podstawy grupowania
AGREGACJA DANYCH
AGREGACJA DANYCH
2
Agregacja danych
Rozwiązania do zadań samodzielnych
Agregacja danych i filtrowanie grup
AGREGACJA DANYCH
Agregacja danych i filtrowanie grup
Funkcje agregujące
SELECT count(student) AS student_count
FROM <nazwa_tabeli>;
Najczęściej używane funkcje:
AGREGACJA DANYCH
SUM(kolumna)
AVG(kolumna)
COUNT(kolumna)
MAX(kolumna) / MIN(kolumna)
Można tych funkcji używać bez klauzuli GROUP BY:
Przykład z bazą bohaterów
AGREGACJA DANYCH
Agregacja danych i filtrowanie grup
Zadania do przepracowania:
Do zrobienia:
Rozwiązanie:
Dodatkowo:
Zlicz ile elementów zbroi znajduje się w tabeli ekwipunku bohaterów.
Kiedy będziesz miał gotowe swoje rozwiązania, porównaj je z zaproponowanymi na początku następnej lekcji.
Jak można by zagregować kolumnę przedmiot z tabeli przedmiotów i ocen omawianej na pierwszej lekcji?
AGREGACJA DANYCH
Agregacja danych i filtrowanie grup
AGREGACJA DANYCH
3
Filtrowanie grup
Agregacja danych i filtrowanie grup
Filtrowanie grup - użycie HAVING
SELECT student, AVG(ocena) AS srednia
FROM <nazwa_tabeli>
GROUP BY student
HAVING AVG(ocena) > 3
Wybranie średnich ocen dla każdego studenta:
AGREGACJA DANYCH
WHERE przedmiot <> 'SQL';
;
Przykład z bazą bohaterów
AGREGACJA DANYCH
Agregacja danych i filtrowanie grup
Zadania do przepracowania:
Do zrobienia:
Rozwiązanie:
Sprawdź czy są zdublowane elementy ekwipunku.
Napisz zapytanie, które wyciągnie z bazy te pozycje, które występują więcej niż raz.
Kiedy będziesz miał gotowe swoje rozwiązania, porównaj je z zaproponowanymi na początku następnej lekcji.
AGREGACJA DANYCH
Agregacja danych i filtrowanie grup
AGREGACJA DANYCH
4
Grupowanie między tabelami
Rozwiązania do zadań samodzielnych
AGREGACJA DANYCH
Grupowanie między tabelami
Grupowanie między tabelami
AGREGACJA DANYCH
Przykład z bazą bohaterów
WIDOKI ZAPYTAŃ
Rozdział 6
WIDOKI ZAPYTAŃ
1
Podstawy widoków
Podstawy widoków
Czym są widoki?
Zapytanie wybierające elfich bohaterów:
WIDOKI ZAPYTAŃ
SELECT hero_id,
first_name,
last_name,
health
FROM heroes
WHERE health > 200;
CREATE VIEW tank_heroes AS
SELECT ...
| hero_id | first_name | last_name | health |
|---|---|---|---|
| 13 | .... | .... | 250 |
| 14 | .... | .... | 320 |
| 15 | .... | .... | 290 |
SELECT * FROM tank_heroes;
Przykład z bazą bohaterów
Podstawy widoków
WIDOKI ZAPYTAŃ
Zadania do przepracowania:
Do zrobienia:
Rozwiązanie:
Stwórz nowy widok, który będzie rozszerzał widok tank_heroes.
Powinien on zwracać dla każdego bohatera informację, czy posiada jakikolwiek ekwipunek ('equipped'), czy nie ('unequipped'), tak jak w poniższym przykładzie:
Masz gotowe rozwiązanie i chcesz je sprawdzić? Nie jesteś pewien czy w dobrą stronę idziesz? Zajrzyj na początek następnej lekcji.
Podstawy widoków
WIDOKI ZAPYTAŃ
| hero_id | first_name | last_name | health | is_equipped |
|---|---|---|---|---|
| 123 | ... | ... | 340 | equipped |
| 321 | .... | .... | 220 | unequipped |
WIDOKI ZAPYTAŃ
2
Zapisywanie do widoków
Rozwiązania do zadań samodzielnych
Zapisywanie do widoków
WIDOKI ZAPYTAŃ
Warunki zapisywalności do widoków:
Tylko jedna tabela w klauzuli FROM
Zwracane dane nie mogą być zagregowane
Dane nie mogą być ograniczone LIMIT-em
W zapytaniu widoku nie może pojawić się łączenie danych poprzez UNION, INTERSECT czy EXCEPT.
Zapisywanie do widoków
WIDOKI ZAPYTAŃ
Przykład z bazą bohaterów
Zapisywanie do widoków
WIDOKI ZAPYTAŃ
Zadania do przepracowania:
Rozwiązanie:
Widok gotowy? Chcesz się upewnić że o to chodziło?
Rozwiązanie znajdziesz za dwie lekcje.
Zapisywanie do widoków
WIDOKI ZAPYTAŃ
Do zrobienia:
Stwórz następujący widok:
CREATE VIEW armor_equipment AS
SELECT eq.* FROM equipment eq
JOIN heroes h ON h.hero_id = eq.hero_id
WHERE armor IS NOT NULL;
A następnie zmodyfikuj go tak, żeby można było zapisać przez niego nowy element ekwipunku.
Uwaga: informacja o bohaterach nie jest tu potrzebna.
WIDOKI ZAPYTAŃ
3
Generowanie danych testowych
Przykład z bazą bohaterów
Generowanie danych testowych
WIDOKI ZAPYTAŃ
WIDOKI ZAPYTAŃ
4
Widoki zmaterializowane
Rozwiązania do zadań samodzielnych
Widoki zmaterializowane
WIDOKI ZAPYTAŃ
Przykład z bazą bohaterów
Widoki zmaterializowane
WIDOKI ZAPYTAŃ
TRANSAKCJE
Rozdział 7
Odtworzenie bazy z plików źródłowych
Dane bazy sqland - do rozdziału 7.sql
TRANSAKCJE I BLOKADY
TRANSAKCJE I BLOKADY
1
Wprowadzenie do transakcji
Przykład z bazą
TRANSAKCJE I BLOKADY
Wprowadzenie do transakcji
Wprowadzenie do transakcji
Co to są transakcje?
- Mechanizm transakcji pozwala na wykonanie kilku zapytań w jednym bloku.
- W ramach transakcji, albo wszystkie zapytania w bloku są wykonane, albo żadne (jeśli na przykład nastąpi błąd)
- Transakcje zapewniają 4 właściwości operacji, które są znane po akronimem ACID
TRANSAKCJE I BLOKADY
Wprowadzenie do transakcji
ACID
- Atomicity (niepodzielność) - zapewnia, że transakcja zostanie wykonana w całości albo wogóle
- Consistency (spójność) - po wykonaniu transakcji zostanie zachowana spójność danych
- Isolation (izolacja) - współbieżnie wykonywane transakcje nie widzą zmian przez siebie wprowadzanych (zależnie od poziomu izolacji)
- Durability (trwałość) - operacje wykonane podczas transakcji zostają na trwale zapisane (na przykład na dysku)
- Atomicity (niepodzielność) - zapewnia, że transakcja zostanie wykonana w całości albo wogóle
- Consistency (spójność) - po wykonaniu transakcji zostanie zachowana spójność danych
- Isolation (izolacja) - współbieżnie wykonywane transakcje nie widzą zmian przez siebie wprowadzanych (zależnie od poziomu izolacji)
- Durability (trwałość) - operacje wykonane podczas transakcji zostają na trwale zapisane (na przykład na dysku)
TRANSAKCJE I BLOKADY
Wprowadzenie do transakcji
Poziomy izolacji
- Serializable - blokowanie zapisów i odczytów (także zakresów danych) podczas równoległych transakcji
- Repeatable Read - blokowanie zapisów i odczytów (ale nie zakresowych) podczas równoległych transkacji
- Read Commited - blokowanie tylko zapisów (blokady odczytów
- Read Uncommited - bez blokowania zapisów ani odczytów
TRANSAKCJE I BLOKADY
2
Operacje na transakcjach
TRANSAKCJE I BLOKADY
Przykład z bazą
Operacje na transakcjach
TRANSAKCJE I BLOKADY
Zadania do przepracowania:
Rozwiązanie:
Jeśli chcesz się upewnić, że dobrze odpowiedziałeś - rozwiązanie znajdziesz na początku następnej lekcji.
Do zrobienia:
Załóżmy, że masz aplikację w której użytkownicy mogą zapisywać swoje profile, które zawierają tylko imię, nazwisko, adres email i płeć.
Jaki poziom izolacji jest wystarczający dla operacji zapisu tych danych do bazy?
Operacje na transakcjach
TRANSAKCJE I BLOKADY
3
Blokady danych
TRANSAKCJE I BLOKADY
Rozwiązania do zadań samodzielnych
Blokady danych
TRANSAKCJE I BLOKADY
Do zapisywania prostych danych, nawet wprowadzanych przez wielu użytkowników wystarczy poziom izolacji
READ COMMITTED
Tutaj dane od siebie nie zależą i wprowadzane są najprawdopodobniej wiersz po wierszu.
Blokady danych
Typy blokad
- blokada tabeli (table level lock)
TRANSAKCJE I BLOKADY
ALTER TABLE..., TRUNCATE, ...
- Dzielone blokady (shared locks)
- Blokady wyłączne (exclusive locks)
SELECT
- Blokady średniego poziomu
UPDATE, CREATE INDEX, ...
Blokady danych
Typy blokad
TRANSAKCJE I BLOKADY
- blokada wierszy (row level lock)
- Blokady do aktualizacji
SELECT ... FOR UPDATE
- Blokady do podziału
SELECT ... FOR SHARE
Przykład z bazą
Blokady danych
TRANSAKCJE I BLOKADY
PRZYSPIESZANIE ZAPYTAŃ
Rozdział 8
Odtworzenie bazy z plików źródłowych
Dane bazy sqland - do rozdziału 7.sql
PRZYSPIESZANIE ZAPYTAŃ
PRZYSPIESZANIE ZAPYTAŃ
1
Indeksy - wprowadzenie
Indeksy - wprowadzenie
Co to są indeksy?
- W skrócie indeks przyporządkowywuje wartość z danej kolumny do miejsca (adresu) na dysku, w którym zapisany jest rekord zawierający tą wartość
- Indeksy bazodanowe mają postać b+-drzew w postaci rozszerzonej. Pozwala to nie tylko szybko znaleźć szukany adres, ale też odczytać sekwencyjnie kolejne rekordy bez potrzeby ponownego przeszukiwania drzewa
PRZYSPIESZANIE ZAPYTAŃ
Indeksy - wprowadzenie
Co to są b+-drzewa?

PRZYSPIESZANIE ZAPYTAŃ
PRZYSPIESZANIE ZAPYTAŃ
2
Operacje na indeksach
Przykład z bazą
Operacje na indeksach
PRZYSPIESZANIE ZAPYTAŃ
Zadania do przepracowania:
Rozwiązanie:
Zapytanie już hula? Chcesz się upewnić że o to chodziło?
Rozwiązanie znajdziesz na początku następnej lekcji.
Do zrobienia:
Mając poniższe zapytanie:
SELECT * FROM big_data
WHERE big_number BETWEEN 100000 AND 140000;
Stwórz indeks, który je przyspieszy.
Operacje na indeksach
PRZYSPIESZANIE ZAPYTAŃ
PRZYSPIESZANIE ZAPYTAŃ
3
Analiza zapytań
Rozwiązania do zadań samodzielnych
Analiza zapytań
PRZYSPIESZANIE ZAPYTAŃ
Przykład z bazą
Analiza zapytań
PRZYSPIESZANIE ZAPYTAŃ
PRZYSPIESZANIE ZAPYTAŃ
4
Inne metody przyspieszania zapytań
Inne metody przyspieszania zapytań
Jak usprawnić zapytania?
- Ograniczyć dane na których działa zapytanie
- Zarchiwizować dane nieurzywane lub je usunąć
- Rozdzielić duże tabele na mniejsze ale powiązane
- Zmodyfikować konfigurację serwera
PRZYSPIESZANIE ZAPYTAŃ
SQL od Podstaw
By eduweb
SQL od Podstaw
- 372