Podstawy
4 godz. 8 min · Bazy Danych · Full-stack i Programowanie
Pierwszy rozdział wprowadza w historię powstania języka. Wspomnimy o standardach, wykorzystywanych wersjach i podzbiorach SQL’a. Zaraz potem wskoczymy w pierwsze poważne operacje, które pozwolą na pełny cykl tworzenia, zasilania bazy danych i wyciągnięcia z niej wybranych informacji. Rozwikłamy też tajemniczy akronim - CRUD.
Skoro potrafimy już tworzyć bazę i tabele, w które możemy wstawić nowe wiersze, dowiemy się więcej o bardzo ważnej funkcji bazy danych: weryfikacji danych. Zostaną zaprezentowane mechanizmy i techniki, które pomogą utrzymać spójność danych.
W kolejnych lekcjach znajduje się opis serca SQL’a, czyli polecenia wybierającego dane i możliwości i opcji z nim związanych. Od przekształcenia bazy danych w prosty kalkulator, aż do warunków filtrowania wybieranych danych (klauzulą WHERE), sortowania ich (klauzulą ORDER BY), czy ograniczania dużych zestawów wynikowych - w tym wsparcia do paginacji.
SQL jest językiem obsługi relacyjnych baz danych. Dlatego najwyższy czas, aby wspomnieć o relacjach i tym w jaki sposób rozszerzają one możliwości wyszukiwania danych oraz pozwalają zobrazować powiązania między danymi w bazie. Dowiesz się o różnych rodzajach połączeń między tabelami i jak te połączenia (zwane JOIN’ami) pozwalają wybrać to, czego potrzebujesz.
Kolejny rozdział dotyczy grupowania danych (wykorzystując klauzulę GROUP BY) i związanych z tym nowymi możliwościami. Dowiesz się tutaj też w jaki sposób agregować pogrupowane dane i jak takie zagregowane dane filtrować.
Przekonasz się, w jaki sposób można zapamiętywać trudne lub często wykonywane zapytania, wykorzystując do tego widoki (VIEWS) i jak można poprawić wydajność pobierania z nich danych. Przykładowo zastosujemy widoki zmaterializowane (MATERIALISED VIEWS). W tym rozdziale przećwiczysz też możliwość zapisywania danych przez widoki.
Z baz danych korzysta zwykle wielu użytkowników. Aby operacje, które wykonują na wspólnej bazie nie spowodowały nieoczekiwanych konsekwencji, wykorzystuje się mechanizm transakcji. W tym rozdziale wytłumaczymy Ci w jaki sposób użytkownicy mogą modyfikować równolegle te same dane. Tutaj też dowiesz się o poziomach izolacji transakcji i jak używać ich w różnych sytuacjach bazodanowych.
Przy pracy z większą ilością danych, bardzo szybko doświadczysz spowolnienia wykonywania zapytań. O tym jak je przyspieszyć dowiesz się właśnie w tym rozdziale. Zwiększanie wydajności zapytań jest tematem rozległym i zaawansowanym. Tutaj będziesz miał szansę poznać podstawy, w tym - po co są i jak używać indeksów, w jaki sposób analizować jak zapytania są wykonywane i jakie jeszcze są metody wydajniejszego odczytywania danych.
Kurs jest dla osób początkujących, rozpoczynających przygodę z bazami danych. Nie wymaga się znajomości SQL'a ani zaawansowanej wiedzy dotyczącej baz danych. Warto wiedzieć co to są relacyjne bazy danych. Dobrze mieć dostęp do ulubionego silnika bazy danych, ale nie jest to wymagane.
Pierwszą rzeczą jaką należy sprawdzić przy przyspieszeniu zapytań
to czy są stworzone odpowiednie indeksy no właśnie
co to są indeksy na początku szybka informacja
dane przechowywane w bazach danych najczęściej są
zapisywane na dyskach jeśli tych danych jest dużo żeby
znaleźć w nich jakąś wartość na przykład imię bohatera o podanym
identyfikatorze wymaga to kosztownego przeszukiwania rekordów
zapisanych na dysku aż dotrze się do rekordu o danym identyfikatorze
i wtedy ze znalezionego rekordu można odczytać imię indeks
natomiast jest przyporządkowaniem wartości z kolumny bazy
czyli takiego identyfikatora konkretnej
wartości do miejsca gdzie jest przechowywany rekord zawierający
tą wartość na dysku dzięki indeksom
nie musimy przeszukiwać dysku w poszukiwaniu
tego rekordu tylko od razu wiemy gdzie odczytać szukane
dane dlaczego indeksy są takie szybkie dlatego że są
stworzone w postaci b plus drzew i
pozwala to oprócz tego że szybko znaleźć szukany adres na
dysku to jeszcze umożliwia odczytywanie sekwencyjnie
kolejnych rekordów dlatego że bardzo często potrzebujemy całego
zestawu rekordów a nie tylko jednego skoro wspomniałem
o b plus drzewach to dwa słowa o co w nich chodzi jak widzisz
na rysunku wartości na przykład identyfikatory
rekordów są zapisane w węzłach połączonych w drzewiastą
strukturę każda wartość z wyższego rzędu połączona
jest z dwoma węzłami niższego tak na przykład
wartość z głównego węzła wartość 3
powiązany jest z węzłem po
lewej stronie w którym wartości są odpowiednio mniejsze od tej wybranej
wartości czyli 1 i 2 mniejsze niż 3 i
z węzłem po prawej stronie z wartościami 3 i
4 czyli wartością powtórzoną z wyższego
węzła i wszystkimi wartościami wyższymi aż
do kolejnych wartości w wyższym węźle czyli
to będzie 3 i 4 a 5 już jest w
kolejnym wartości adresów miejsc
na dysku gdzie umieszczone są odpowiednie rekordy zapisane są w komórkach d1
d2 d3 d4 i tak dalej widać
z tego że jeśli chcemy dowiedzieć się gdzie jest zapisany na przykład
rekord zawartości 7 nie musimy przechodzić przez
wszystkie rekordy od 1 do 7 tylko zaglądamy do
indeksu patrzymy na główny węzeł i widzimy że
7 jest większa od 5 w takim razie musimy iść
do węzła prawego że tak powiem względem
wartości 5 tak są dwa węzły przypisane
do tej wartości prawy to są wartości większe niż 5 i
możemy teraz odczytać że dla wartości 7
adres pod którym znajdziemy ten rekord znajduje się w
komórce d7 i tak w dwa odwołania do indeksu jeden
odczyt z dysku mamy pobrany szukany rekord w
sytuacji kiedy szukamy z zakresu wartości na przykład od czterech
do sześciu wystarczy że znajdziemy początek czyli cztery teraz
dzięki powiązaniu węzłów na tym samym poziomie taka czerwona
komórka tutaj która łączy te dwa węzły jesteśmy
w stanie bez szukania znowu piątki i szóstki
od razu odczytać zestaw adresów
gdzie umieszczone są szukane rekordy czyli d4 przechodzimy tutaj
w prawo d5 kolejny d6 i tak dzięki
zapisaniu indeksu w takiej strukturze jesteśmy
w stanie bardzo szybko odczytać potrzebne nam dane a
jak bardzo takie indeksy przyspieszają odczyt zobaczymy
w praktyce już w następnej lekcji