I. WPROWADZENIE DO BAZ DANYCH
W module tym uczestnik zapozna się z ogólnie przyjętą nomenklaturą bazodanową oraz pozna podstawowe zasady działania relacyjnych baz danych, dowie się czym jest w ogóle język SQL i T-SQL oraz na jakie grupy się dzieli, ale także zostaną omówione również dostępne edycje oprogramowania.
01. RELACYJNY MODEL DANYCH
➡ Dowiesz się co to są relacyjne bazy danych.
➡ Przećwiczysz kilka przykładowych baz danych pod kątem relacji.
02. ZNACZENIE SKRÓTÓW: DDL, DML, DCL, DQL, TCL
➡ Poznasz grupy języka zapytań SQL.
➡ Dowiesz się co oznacza każda z grup, które występują jako skróty: DDL, DML, DCL, DQL, TCL.
03. RODZAJE JĘZYKÓW: SQL, T-SQL
➡ Dowiesz się, czym jest język SQL.
➡ Poznasz różnicę między SQL i T-SQL.
04. EDYCJE MsSQL SERVER
➡ Dowiesz się jakie są edycje Microsoft SQL Server.
➡ Poznasz podstawowe różnice między edycjami Microsoft SQL Server.
II. ROZPOCZĘCIE PRACY Z BAZAMI DANYCH
Po zainstalowaniu już SQL Server’a uczestnik nauczy się jak uruchamiać środowisko bazodanowe oraz jak się poruszać po SQL Server Management Studio, ale także dowie się jak tworzyć skrypty SQL oraz pozna dobre praktyki pisania kodu.
01. ŚRODOWISKO PROGRAMISTYCZNE SSMS (SQL SERVER MANAGEMENT STUDIO)
➡ Dowiesz się jak uruchomić środowisko serwerowe SQL Server.
➡ Zapoznasz się z głównymi obszarami (elementami) interfejsu SSMS.
02. PRZYGOTOWANIE DBO I DANYCH
➡ Przygotujemy tabele i dane do ćwiczeń.
➡ Zaczytamy dane z plików płaskich.
➡ Wygenerujemy dane dotyczące klientów oraz faktur.
03. TWORZENIE SKRYPTÓW W JĘZYKU T-SQL: WSADY GO, BATCH
➡ Dowiesz się, w jaki sposób należy korzystać i do czego służy polecenie GO.
➡ Poznasz sytuacje, w których można wykorzystać polecenie GO w niestandardowy sposób.
04. DOBRE PRAKTYKI PISANIA KODU
➡ Poznasz dobre praktyki pisania kodu.
➡ Dowiesz się na co zwracać szczególną uwagę podczas implementacji.
➡ Zapoznasz się z ogólnym podejściem podczas programowania.
III. WPROWADZENIE DO PROGRAMOWANIA BAZ DANYCH
W tym module uczestnik nabędzie obszerną wiedzę i konieczne umiejętności, aby móc swobodnie implementować rozwiązania bazodanowe począwszy od totalnych podstaw dotyczących typów danych, podstawowych operacji na danych, tworzenia tabel łącznie z regułami kontrolowania poprawności i formatowania danych, ale także nauczy się implementować podstawowe kwerendy, czyli zapytania do baz danych. Omówione zostaną także zagadnienia dotyczące grupowania oraz agregowania danych, operatory, operacje na zbiorach oraz wiele innych fundamentalnych implementacji zapytań z wykorzystaniem CTE, podzapytań oraz używając łączenia wielu tabel. W module tym nie zabraknie także wiedzy związanej z podstawowymi i najistotniejszymi wbudowanymi różnego rodzaju funkcjami.
01. TYPY DANYCH
➡ Poznasz wszystkie podstawowe typy danych obsługiwane przez SQL Server.
➡ Nauczysz się prawidłowo używać podstawowych typów danych.
➡ Dowiesz się w jaki sposób można formatować oraz rzutować typy danych.
02. PODSTAWOWE OPERACJE NA DANYCH: INSERT, UPDATE, DELETE
➡ Poznasz trzy podstawowe operacje na danych.
➡ Zapoznasz się z implementacją operacji INSERT, UPDATE i DELETE.
03. RÓŻNICE MIĘDZY DELETE i TRUNCATE
➡ Dowiesz się na czym polega DELETE i TRUNCATE.
➡ Poznasz znaczące różnice między tymi poleceniami.
04. TWORZENIE TABEL (CREATE) I ICH ZMIANA (ALTER)
➡ Poznasz założenia dotyczące tworzenia tabel.
➡ Nauczysz się tworzyć tabele.
➡ Dowiesz się w jaki sposób dokonywać zmian struktur istniejących już tabel.
05. REGUŁY KONTROLOWANIA POPRAWNOŚCI I FORMATOWANIA DANYCH
➡ Dowiesz się w jaki sposób można kontrolować poprawność danych na etapie tworzenia tabel.
➡ Nauczysz się implementacji formatowania danych.
06. PODSTAWOWA SKŁADNIA ZAPYTAŃ: SELECT, AS, FROM, TOP, TIES, DISTINCT, WHERE, ORDER BY
➡ Poznasz podstawową składnię zapytań.
➡ Dowiesz się jakie są słowa kluczowe stosowane w podstawowych zapytaniach.
➡ Nauczysz się pobierać, filtrować, formatować i sortować dane.
07. GRUPOWANIE I AGREGOWANIE DANYCH
➡ Dowiesz się jak grupować i agregować dane.
➡ Poznasz funkcje agregujące.
➡ Nauczysz się różnych operatorów służących do grupowania danych.
08. NIBY OCZYWISTE: SELECT 1/3 I ZNACZENIE NULL
➡ Zrozumiesz, że z pozoru oczywiste działania mogą dać nieoczekiwane wyniki.
➡ Dowiesz się, że w SQL Server jest więcej niż dwie wartości logiczne.
09. OPERATORY
➡ Poznasz rodzaje operatorów w SQL Server.
➡ Nauczysz się korzystać ze wszystkich rodzajów operatorów.
10. OPERACJE NA ZBIORACH: UNION, UNION ALL, EXCEPT, INTERSECT
➡ Poznasz jakie są operacje na zbiorach.
➡ Nauczysz się jakie są różnice między operacjami na zbiorach.
11. CTE (COMMON TABLE EXPRESSION)
➡ Dowiesz się co to jest CTE.
➡ Poznasz właściwości CTE.
➡ Nauczysz się implementacji CTE.
12. PODZAPYTANIA
➡ Dowiesz się co to są podzapytania.
➡ Poznasz rodzaje podzapytań.
➡ Nauczysz się prawidłowego korzystania z podzapytań.
13. TYPY ZŁĄCZEŃ TABEL: JOIN, INNER, OUTER, LEFT, RIGHT, FULL, CROSS, SELF, APPLY
➡ Dowiesz się co to są złączenia.
➡ Poznasz rodzaje złączeń obsługiwanych w SQL Server.
14. NAJISTOTNIEJSZE WBUDOWANE FUNKCJE AGREGUJĄCE
➡ Dowiesz się gdzie są dostępne w SQL Server wbudowane funkcje agregujące.
➡ Poznasz najistotniejsze wbudowane funkcje agregujące.
15. NAJISTOTNIEJSZE WBUDOWANE FUNKCJE DATY I CZASU
➡ Dowiesz się gdzie są dostępne w SQL Server wbudowane funkcje daty i czasu.
➡ Poznasz najistotniejsze wbudowane funkcje daty i czasu.
16. NAJISTOTNIEJSZE WBUDOWANE FUNKCJE TEKSTOWE
➡ Dowiesz się gdzie są dostępne w SQL Server wbudowane funkcje tekstowe.
➡ Poznasz najistotniejsze wbudowane funkcje tekstowe.
17. NAJISTOTNIEJSZE WBUDOWANE FUNKCJE BEZPIECZEŃSTWA
➡ Dowiesz się gdzie są dostępne w SQL Server wbudowane funkcje bezpieczeństwa.
➡ Poznasz najistotniejsze wbudowane funkcje bezpieczeństwa.
IV. FUNDAMENTALNE ZASADY RELACYJNYCH BAZ DANYCH
Relacyjne bazy danych charakteryzują się wieloma właściwościami, które są wymagane podczas implementacji, aby bazy danych działały prawidłowo i optymalnie oraz żeby nie dochodziło do różnego rodzaju anomalii w bazach danych, dlatego też uczestnik musi poznać automatyczną inkrementację, zagadnienia dotyczące implementacji kluczy głównych i obcych w tabelach oraz wiedzieć w jaki sposób doprowadzać bazy danych do wymaganych postaci normalnych, ale także konieczna jest znajomość indeksów oraz zasada ich działania, łącznie z ich monitorowaniem oraz fragmentaryzacją.
01. AUTOMATYCZNA INKREMENTACJA: IDENTITY
➡ Poznasz dokładnie automatyczną inkrementację w SQL Server.
➡ Nauczysz się prawidłowo wykorzystywać automatyczną inkrementację w SQL Server.
02. KLUCZE GŁÓWNE I OBCE: PRIMARY KEY I FOREIGN KEY
➡ Dowiesz się co to są klucze główne i obce.
➡ Zrozumiesz ich bardzo ważną istotę.
➡ Nauczysz się ich prawidłowej implementacji.
03. NORMALIZACJA BAZ DANYCH
➡ Dowiesz się co to jest i na czym polega normalizacja baz danych.
➡ Poznasz zalety i wady stosowania normalizacji.
➡ Dowiesz się o postaciach normalnych.
➡ Przećwiczysz normalizowanie danych na konkretnych przykładach.
04. ZASADA DZIAŁANIA INDEKSÓW WIERSZOWYCH
➡ Dowiesz się co to są indeksy.
➡ Poznasz rodzaje indeksów i ich podział.
➡ Dowiesz się o zaletach i wadach stosowania indeksów.
➡ Nauczysz się ich prawidłowej implementacji.
➡ Przećwiczysz mierzenie czasu wykonywania operacji w bazie danych na podstawie użycia indeksów.
➡ Dowiesz się jak monitorować wykorzystanie oraz stan indeksów.
➡ Poznasz dostępne operacje na indeksach dotyczące ich fragmentaryzacji.
05. ANALIZA PLANU ZAPYTANIA
➡ Dowiesz się co to są plany zapytań - Query Execution Plan.
➡ Poznasz rodzaje planów zapytań.
➡ Dowiesz się jak uruchamiać plany zapytań.
➡ Przećwiczysz operacje Index Scan i Index Seek.
➡ Dowiesz się w czym są pomocne plany zapytań.
06. DATABASE ENGINE TUNING ADVISOR
➡ Dowiesz się co to jezt za narzędzie.
➡ Nauczysz się je uruchamiać i z niego korzystać.
V. KLUCZOWE IMPLEMENTACJE
Często w bazach danych zachodzi konieczność implementacji różnego rodzaju rozwiązań biznesowych, a żeby to zrobić, to są rozwiązania umożliwiające sprawne i przejrzyste implementacje oraz różnego rodzaju wyliczenia na danych, a czasami nawet jedyne możliwe do zastosowania, dlatego też każdy uczestnik musi też umieć wykorzystywać tabele tymczasowe jak i złożone typy kolumn. Ponadto migrując dane, co także jest bardzo częstymi operacjami w bazach danych konieczne jest umiejętne posługiwanie się korespondencją seryjną, czyli instrukcją MERGE. Każda baza danych nie istnieje sama dla siebie, ale jest obsługiwana z poziomu różnego rodzaju aplikacji, więc w tej kwestii fundamentalnymi zagadnieniami są również zapytania dynamiczne oraz tzw. SQL INJECTION, których nieumiejętne wykorzystywanie może doprowadzić do przejęcia przez niepowołane osoby całej bazy danych a nawet całego systemu, więc jest to temat niebywale istotny.
01. TABELE TYMCZASOWE (LOKALNE I GLOBALNE) ORAZ ZMIENNE SKALARNE I TABELARYCZNE
➡ Poznasz zmienne skalarne oraz tabelaryczne (tablicowe).
➡ Dowiesz się co to są tabele tymczasowe.
➡ Poznasz różnice między tabelami tymczasowymi lokalnymi i globalnymi.
➡ Zrozumiesz różnice między zmiennymi tabelarycznymi oraz tabelami tymczasowymi.
02. KORESPONDENCJA SERYJNA: INSTRUKCJA MERGE
➡ Poznasz instrukcję MERGE.
➡ Dowiesz się do czego służy, jak działa i kiedy warto z niej korzystać.
03. ZŁOŻONE TYPY KOLUMN: COMPUTED, PERSISTED
➡ Poznasz typ kolumn COMPUTED i dowiesz się w jakim celu są stosowane.
➡ Poznasz typ kolumn PERSISTED i dowiesz się w jakim celu są stosowane.
04. ZAPYTANIA DYNAMICZNE I SQL INJECTION
➡ Dowiesz się co to są zapytania dynamiczne.
➡ Dowiesz się co to jest SQL INJECTION.
➡ Nauczysz się możliwości wykonywania dynamicznych zapytań.
➡ Dowiesz się jakie są zagrożenia dotyczące tego typu zapytań.
VI. IMPLEMENTACJA LOGIKI BIZNESOWEJ
Programując bazy danych nie obejdzie się także bez implementacji różnego rodzaju struktur bazodanowych oraz procedur i funkcji wykonujących niezbędne operacje i wyliczenia na danych znajdujących się w bazach, które są wykorzystywane zarówno przez użytkowników systemu jak i przez mechanizmy automatyczne. Ponadto dostęp do baz danych ma wiele użytkowników w tym samym czasie, więc zapytania muszą być również odpowiednio obsługiwane, a żeby uczestnik wiedział, jakie są potencjalne problemy i umiał sobie z nimi radzić, to nie obejdzie się bez tematyki dotyczącej obsługi błędów, współbieżności oraz transakcji.
01. WIDOKI: VIEW
➡ Dowiesz się co to są widoki.
➡ Zapoznasz się z argumentami oraz rodzajami widoków.
➡ Nauczysz się ich prawidłowej implementacji.
02. TWORZENIE PROCEDUR: CREATE PROCEDURE
➡ Dowiesz się co to jest procedura w SQL Server.
➡ Poznasz sposoby implementacji procedur przechowywanych.
➡ Zapoznasz się z dostępnymi opcjami powiązanymi z procedurami.
➡ Poznasz dodatkowe, cenne uwagi dotyczące implementacji procedur.
➡ Nauczysz się w jaki sposób modyfikować i usuwać procedury.
03. TWORZENIE FUNKCJI – UDF FUNCTION
➡ Dowiesz się co to jest funkcja w SQL Server.
➡ Poznasz sposoby implementacji funkcji.
➡ Zapoznasz się z dostępnymi opcjami powiązanymi z funkcjami.
➡ Poznasz dodatkowe, cenne uwagi dotyczące implementacji funkcji.
➡ Nauczysz się w jaki sposób modyfikować i usuwać funkcje.
04. WYZWALACZE: TRIGGER
➡ Dowiesz się co to są wyzwalacze w SQL Server.
➡ Nauczysz się podziału wyzwalaczy na grupy.
➡ Zapoznasz się z właściwościami wyzwalaczy.
➡ Poznasz dostępne opcje związane z wyzwalaczami.
05. OBSŁUGA BŁĘDÓW: ERROR MESSAGE, RAISERROR, TRY I CATCH, THROW
➡ Nauczysz się jakie są rodzaje błędów w SQL Server.
➡ Dowiesz się jakie są składowe błędów.
➡ Nauczysz się jak przechwytywać i obsługiwać błędy.
➡ Poznasz różnice między typami błędów.
06. TRANSAKCJE CZ.1: WŁAŚCIWOŚCI ACID
➡ Dowiesz się co to są transakcje.
➡ Poznasz ACID – właściwości transakcji.
➡ Zapoznasz się z rodzajami awarii mogącymi mieć wpływ na transakcje.
07. TRANSAKCJE CZ.2: TRAN, TRANSACTION
➡ Nauczysz się definiować transakcje.
➡ Dowiesz się o możliwościach kończenia transakcji.
➡ Poznasz transakcje zagnieżdżone.
08. WSPÓŁBIEŻNOŚĆ I BLOKOWANIE
➡ Dowiesz się na czym polega współbieżność.
➡ Nauczysz się jakie wiążą się problemy z współbieżnością.
➡ Poznasz rodzaje blokad związanych z współbieżnością.
➡ Zapoznasz się z poziomami izolacji.
➡ Dowiesz się o sposobie obsługi blokad.