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