SQL 3. Wprowadzenie

You might also like

Download as pptx, pdf, or txt
Download as pptx, pdf, or txt
You are on page 1of 46

SQL WPROWADZENIE

WPROWADZENIE

• SQL jest najczęściej stosowanym językiem związanym z bazami danych.

Niezależnie od tego, czy zajmujemy się programowaniem, tworzeniem stron

WWW, administracją baz danych, tworzeniem aplikacji mobilnych czy po

prostu często korzystając z pewnych funkcji pakietów biurowych, dobra

znajomość tego języka może mu pomóc w wydajnym wykorzystaniu baz

danych.
DEFINICJA SQL

• Czym więc jest SQL (ang. Structured Query Language)? W skrócie, SQL jest
strukturalnym, standardowym językiem programowania wykorzystywanym w celu
utrzymywania danych zawartych w relacyjnych bazach danych i korzystania z nich.
Mówiąc prościej, SQL to język, który pozwala użytkownikom na interakcję z
relacyjnymi bazami danych. Począwszy od 1970 roku, przez wiele lat był rozwijany przez
różne organizacje. W 1986 roku Amerykański Instytut Normalizacyjny (ang. ANSI —
American National Standards Institute) opublikował swój pierwszy zestaw norm
dotyczących języka SQL i od tego czasu wielokrotnie je aktualizował.
• Ogólnie rzecz biorąc, język SQL składa się z trzech głównych elementów. Pierwszy z nich
nosi nazwę DML lub języka manipulowania danymi (ang. Data Manipulation Language).
Obejmuje on zestaw instrukcji wykorzystywanych do pobierania, aktualizacji,
dodawania i usuwania danych z bazy danych. Drugi element to DDL bądź język definicji
danych (ang. Data Definition Language). Umożliwia on tworzenie lub modyfikowanie
struktur bazy danych. Na przykład w ramach języka definicji danych występuje
instrukcja ALTER, która pozwala modyfikować tabele w bazie danych. Wreszcie trzeci
komponent języka SQL to DCL lub język kontroli danych (ang. Data Control Language),
pozwalający zarządzać bezpieczeństwem dostępu do obiektów bazy danych.
W SKRÓCIE

• SQL, czyli strukturalny język zapytań (ang. Structured Query Language), umożliwia
odczytywanie i modyfikowanie przechowywanych w bazie danych informacji. Jest on
też podstawowym językiem programowania baz danych, czyli pozwala na tworzenie i
modyfikowanie obiektów bazodanowych, takich jak tabele czy procedury
JĘZYK SQL

• Język SQL został specjalnie zaprojektowany do komunikacji z bazami danych. W


odróżnieniu od innych języków (zarówno naturalnych jak i języków programowania
takich jak Java, C lub PHP) SQL składa się tylko z kilku słów. Nie jest to jednak wadą.
Język ten został zaprojektowany wyłącznie w jednym celu — jego zadaniem jest proste
i wydajne odczytywanie i zapisywanie danych w bazie.
• Oto kilka zalet języka SQL:

• SQL nie jest językiem wymyślonym przez konkretnego producenta systemu baz danych.
Prawie wszystkie znaczące bazy wykorzystują ten język, więc wystarczy nauczyć się go
raz, by móc korzystać z różnych systemów.

• SQL można się łatwo nauczyć. Słowami kluczowymi w tym języku jest kilka wyrazów z
języka angielskiego.

• Pomimo swojej prostoty, język SQL daje bardzo duże możliwości. Dzięki odpowiedniemu
stosowaniu i łączeniu elementów tego języka można wykonywać bardzo złożone i
zaawansowane operacje na bazach danych.
SERWERY BAZODANOWE

• Na rynku dostępnych jest co najmniej kilkadziesiąt różnych serwerów baz danych. Do najpopularniejszych
należą:
• 1. SQL Server firmy Microsoft;
• 2. MySQL — powstał w ramach projektu Open Source, następnie został wykupiony przez szwedzką firmę MySQL AB, a
w lutym 2008 roku przejęty przez Sun Microsystems;
• 3. Oracle Database firmy Oracle;
• 4. PostgreSQL — początkowo dzieło naukowców z uniwersytetu w Berkeley, teraz rozwijany w ramach otwartego
projektu przez społeczność PostgreSQL Global Development Group;
• 5. Wchodzący w skład pakietu Microsoft Office Access;
• 6. Bazujący na udostępnionym w 2000 roku kodzie serwera InterBase Firebird;
• 7. DB2 firmy IBM;
• 8. InterBase firmy Borland.
• Te serwery różnią się prawie wszystkim: niektóre są niesamowicie drogie, inne —
dostępne za darmo; serwery firmy Microsoft działają tylko w środowisku systemu
Windows, pozostałe — w różnych systemach operacyjnych; niektóre wydajnie
zarządzają bazami danych o wielkości tysięcy gigabajtów i realizują tysiące transakcji
na sekundę, inne są przeznaczone do domowego użytku. Jedynym wspólnym punktem
wszystkich tych serwerów jest język SQL.
DEFINICJA BAZY DANYCH

• Termin „baza danych” oznacza zbiór danych przechowywanych w pewien


zorganizowany sposób. Najprościej wyobrazić sobie bazę danych jako szafkę na
dokumenty. Jest to po prostu miejsce umożliwiające przechowywanie informacji,
niezależnie od ich typu i sposobu organizacji

• Baza danych - Pojemnik (na ogół plik lub zbiór plików) przechowujący zorganizowane
dane.
SYSTEM ZARZĄDZANIA
BAZAMI DANYCH (SZBD)
• System Zarządzania Bazą Danych ( w skrócie SZBD lub z angielskiego DBMS —
Database Management System) jest to zbiór programów umożliwiających
użytkownikom definiowanie, konstruowanie, manipulowanie bazą danych (zarządzanie
bazą danych). SZBD pełni rolę pośrednika pomiędzy fizyczną bazą danych a jej
użytkownikiem.
• definiowanie - specyfikacja typów danych, struktur, związków integralnościowych dla
danych przechowywanych w bazie danych

• konstruowanie - proces zapisu danych na nośniku danych oraz ich kontrola przez
SZBD

• manipulowanie - zapytania do bazy danych, modyfikacja, raportowanie


ZADANIA SYSTEMU
ZARZĄDZANIA BAZĄ DANYCH

• Pielęgnacja danych. Umożliwienie użytkownikowi tworzenia nowych baz danych i


określania ich struktury logicznej (przy pomocy specjalnego języka) oraz
aktualizowania ich.

• Wyszukiwanie danych. Udostępnienie użytkownikowi możliwości tworzenia zapytań o


dane.

• Kontrola danych. Sterowanie wielodostępem do danych


SYSTEM BAZ DANYCH

• System baz danych to skomputeryzowany system przechowywania i przetwarzania danych.

• System Baz Danych składa się z następujących elementów:

• modelu danych

• oprogramowania

• System Zarządzania Bazą Danych

• Inne oprogramowanie

• baz danych
• Często do sytemu baz danych zalicza się również:

• sprzęt
• pamięci masowe

• urządzenia systemowe

• użytkowników
• programiści aplikacji - tworzą programy umożliwiające innym użytkownikom dostęp do bazy danych

• użytkownicy końcowi - obsługujący bazę danych - wprowadzający dane, generujący raporty itp..

• administratorzy BD - odpowiada za tworzenie i konserwacje rzeczywistej bazy danych, odpowiada za


jej bezpieczeństwo
PODSTAWY BAZ DANYCH

• Tabele • Pole

• Kolumny i typy danych • Zależności

• Wiersze • Jeden do jeden

• Jeden do wielu
• Klucze główne
• Wiele do wiele
• Widoki
PODSTAWY BAZ DANYCH -
TABELE
• Gdy przechowuje się informacje w szafce, rzadko kiedy umieszcza się wszystko razem
w szufladach. Zamiast tego tworzy się różne teczki, dzięki którym zbierane dane są
posegregowane tematycznie.

• W świecie baz danych teczka nazywana jest tabelą. Jest to plik o określonej strukturze,
przechowujący dane określonego typu. Tabela może zawierać listę klientów, katalog
produktów lub dowolny inny zbiór informacji.
• Tabela - Uporządkowana lista zawierająca
dane określonego typu.
• Najważniejsze jest to, że tabela przechowuje tylko dane jednego typu. W jednej
tabeli nie pojawi się jednocześnie lista klientów i lista zamówień. Choć
technicznie można stworzyć taką tabelę, pobieranie konkretnych elementów
byłoby w takiej sytuacji znacznie utrudnione. Tworzy się więc dwie tabele, po
jednej dla każdej z list.

• Każda tabela posiada nazwę zapewniającą jej jednoznaczną identyfikację.


Nazwa zawsze jest unikalna — żadna inna tabela w bazie danych nie może mieć
takiej samej nazwy.
UWAGA

• Nazwy tabel
• W zasadzie to, co czyni nazwę tabeli unikalną, to połączenie nazwy tabeli i nazwy bazy
danych. W niektórych przypadkach dochodzi do tego jeszcze nazwa właściciela bazy
danych. Oznacza to, że choć nie można użyć tej samej nazwy tabeli dwa razy w jednej
bazie danych, nic nie stoi na przeszkodzie, aby tę samą nazwę tabeli zastosować w
dwóch niezależnych bazach danych.
• Tabele posiadają charakterystykę i właściwości, które definiują sposób
przechowywania w nich danych. Są to między innymi informacje o rodzaju
przechowywanych informacji, ich podziale, nazwach poszczególnych
fragmentów itp. Wymienione elementy tworzą schemat. Służy on do opisu
poszczególnych tabel w bazie danych, jak i opisu całych baz (a także relacji
między poszczególnymi tabelami, jeśli takie istnieją)
• Schemat - Informacje dotyczące bazy danych, znajdujących
się w niej tabel i ich właściwości.
PODSTAWY BAZ DANYCH –
KOLUMNY I TYPY DANYCH
• Tabele składają się z kolumn. Kolumna zawiera pewien fragment informacji
przechowywany w tabeli.

• Kolumna - Pojedyncze pole tabeli. Tabele składają się co najmniej z jednej kolumny
(zwykle jest ich więcej).
• Najłatwiej zrozumieć strukturę tabel i kolumn bazy danych, porównując ją do
siatki przypominającej arkusz kalkulacyjny. Każda z kolumn zawiera pewien
fragment informacji. Przykładowo, w tabeli klientów jedna kolumna będzie
zawierała numery klientów, kolejna nazwę klienta a następne adres, miasto, kod
pocztowy, województwo itp.
• Z poszczególnymi kolumnami tabeli związany jest konkretny typ danych. Definiuje on
rodzaj informacji, jakie może przechowywać dana tabela. Jeśli kolumna ma zawierać
cyfry (na przykład liczbę elementów w zamówieniu), tabela ta będzie typu
numerycznego. Jeśli kolumna ma zawierać datę, tekst, opis, kwoty pieniężne itp.,
należy zastosować odpowiedni dla tych danych typ.
• Podział danych - Bardzo ważne jest poprawne rozmieszczenie danych w poszczególnych
kolumnach. Na przykład miasto, kod pocztowy i województwo powinny znajdować się w
osobnych kolumnach. Dzięki temu rozdzieleniu możliwe jest sortowanie lub filtrowanie
danych pod kątem konkretnej informacji (na przykład gdy chcemy znaleźć wszystkich
klientów z danego województwa lub miasta). Jeśli miasto i województwo znajdowałyby się w
jednej kolumnie, przeprowadzenie sortowania lub filtrowania byłoby niezmiernie trudne.

• W trakcie podziału danych poziom jego szczegółowości zależy od nas samych. Na przykład
dane adresowe zawierają nazwę ulicy oraz numer domu, które w wielu sytuacjach
przechowuje się razem. Gdy jednak w planach pojawi się potrzeba sortowania danych po
nazwie ulicy, warto rozdzielić nazwę i numer domu na dwa osobne pola
• Typ danych - Rodzaj dopuszczalnych danych. Każda kolumna tabeli posiada
ograniczenie co do typu wpisywanych do niej danych.

• Typy danych ograniczają rodzaje informacji, jakie można umieścić w danej kolumnie
(zapobiega to umieszczaniu danych tekstowych w kolumnie numerycznej). Ułatwiają
także poprawne sortowanie i pełnią ważną rolę w optymalizacji przestrzeni
zajmowanej na dysku. Dlatego tworząc tabele należy bardzo uważnie dobierać typy
kolumn
• Zgodność typów danych - Typy danych i ich nazwy są jednym z głównych źródeł
niezgodności języka SQL w różnych rodzajach baz. Choć większość podstawowych
typów danych obsługiwana jest identycznie, typy bardziej zaawansowane często
obsługiwane są w sposób odmienny. Co gorsza, ten sam typ w różnych systemach
zarządzania bazami danych nosi różne nazwy. Niewiele można zmienić w tym zakresie,
więc należy bardzo uważać tworząc schematy tabel.
PODSTAWY BAZ DANYCH -
WIERSZE

• Dane w tabeli przechowywane są w wierszach. Każdy rekord jest zapisywany w


odrębnym wierszu. Ponownie można wyobrazić sobie siatkę z arkusza kalkulacyjnego:
poziome linie to wiersze, a pionowe to kolumny.

• Tabela klientów może przechowywać tylko jednego klienta w wierszu. Liczba wierszy
to jednocześnie liczba rekordów znajdujących się w tabeli.
• Wiersz – Rekord (krotka) w tabeli.

• Rekordy czy wiersze? - Użytkownicy bardzo często nazywają wiersze bazy


danych rekordami. W zasadzie można tych terminów używać zamiennie, choć
od strony technicznej właściwym terminem jest wiersz.
PODSTAWY BAZ DANYCH –
KLUCZE GŁÓWNE

• Każdy wiersz w tabeli powinien posiadać minimum jedną kolumnę, która go


jednoznacznie identyfikuje. Tabela zawierająca klientów możne posiadać kolumnę z
numerem klienta a tabela zamówień kolumnę z numerem zamówienia. Tabela
zawierająca listę pracowników może posiadać kolumnę z identyfikatorem pracownika.
W tabeli zawierającej listę książek można wykorzystać w tym celu numery ISBN.
• Klucz główny - Kolumna (lub zbiór kolumn), która
jednoznacznie identyfikuje wiersz tabeli.
• Kolumna (lub zbiór kolumn), która jednoznacznie identyfikuje każdy wiersz tabeli,
nazywana jest kluczem głównym (ang. primary key). Służy on do wyboru jednego,
konkretnego wiersza. Bez klucza głównego aktualizacja lub usuwanie konkretnej
kolumny staje się bardzo trudne, ponieważ wtedy nie mamy gwarancji, iż odnosimy się
tylko do interesującego nas wiersza.
• Dowolna kolumna tabeli może stać się kluczem głównym, o ile spełnia następujące
warunki:
• dwa wiersze nie posiadają tej samej wartości klucza głównego;

• kolumny wchodzące w skład klucza głównego wiersza nie mogą być puste (nie mogą mieć
przypisanej wartości NULL);
• kolumny zawierające klucz główny nie mogą być modyfikowane ani aktualizowane;

• wartości kluczy głównych nie można stosować wielokrotnie (jeśli usunięto wiersz z tabeli,
jego klucz główny nie może zostać przypisany nowym wierszom).
PODSTAWY BAZ DANYCH –
WIDOKI
• Widok to wirtualna tabela składająca się z kolumn pochodzących z jednej lub kilku tabel znajdujących się w bazie

danych. Tabele wchodzące w skład widoku nazywa się tabelami bazowymi. Traktujemy widoki jako twory wirtualne,

ponieważ zawarte w nich dane są czerpane z tabel bazowych i nie są przechowywane nigdzie indziej. Tak naprawdę

jedyna informacja o widoku zapisana w bazie danych to jego struktura. Widoki umożliwiają przeglądanie informacji

znajdujących się w bazie z różnych perspektyw, co zdecydowanie uelastycznia możliwości pracy z danymi. Widoki

można tworzyć na wiele sposobów — te najbardziej przydatne bazują na kilku powiązanych tabelach. W wielu

programach RDBMS widoki są zaimplementowane w postaci zapisanych zapytań lub po prostu zapytań. W większości

przypadków zapytanie ma wszystkie cechy widoku, a jedyna różnica polega na tym, że po prostu inaczej się je nazywa.
PODSTAWY BAZ DANYCH –
POLE

• Pole (atrybut) – część tabeli przechowująca


jednostkowe dane, np. nazwisko konkretnej osoby w
tabeli.
PODSTAWY BAZ DANYCH –
ZALEŻNOŚCI

• Zależność (relacja) – powiązania logiczne występujące między


dwoma tabelami realizowane za pomocą klucza podstawowego i
klucza obcego albo specjalnej tabeli łączącej.
• Jeśli wiersze z danej tabeli można w jakiś sposób powiązać z wierszami w innej tabeli,
to znaczy, że między tymi tabelami występuje pewna zależność (potocznie zwana
relacją albo związkiem). Sposób zdefiniowania tej zależności jest uzależniony od jej
rodzaju.

• Między dwiema tabelami można wyróżnić trzy rodzaje zależności: jeden do jednego,
jeden do wielu oraz wiele do wielu. Zrozumienie zależności jest niezbędne do
opanowania sztuki tworzenia widoków.
JEDEN DO JEDNEGO

• Jeden do jednego - Związek jeden do jednego między dwiema tabelami zachodzi


wówczas, gdy jeden wiersz z pierwszej tabeli jest powiązany z tylko jednym wierszem z
drugiej tabeli, zaś jeden wiersz z drugiej tabeli jest powiązany z tylko jednym wierszem z
pierwszej tabeli. W tego rodzaju zależności jedna tabela jest zwykle nazywana tabelą
główną, a druga tabelą drugorzędną. Utworzenie zależności polega na wzięciu klucza
głównego z tabeli głównej i wstawieniu go do tabeli drugorzędnej, gdzie staje się on
kluczem obcym. Jest to szczególny rodzaj związku, ponieważ niemal we wszystkich
przypadkach klucz obcy pełni zarazem funkcję klucza głównego tabeli drugorzędnej.
JEDEN DO WIELU

• Gdy w dwóch tabelach można wyróżnić zależność jeden do wielu, to znaczy, że jeden
wiersz z pierwszej tabeli może być powiązany z wieloma wierszami z drugiej tabeli, ale
jeden wiersz z drugiej tabeli może być powiązany z tylko jednym wierszem z pierwszej
tabeli. Tę zależność definiuje się poprzez wzięcie klucza głównego z tabeli po stronie
„jeden” i wstawienie go do tabeli po stronie „wiele”, gdzie staje się on kluczem obcym.
WIELE DO WIELU

• Między dwiema tabelami można wyróżnić zależność wiele do wielu, jeśli jeden wiersz z
pierwszej tabeli może być powiązany z wieloma wierszami z drugiej tabeli, zaś jeden
wiersz z drugiej tabeli może być powiązany z wieloma wierszami z pierwszej tabeli. W
celu prawidłowego zdefiniowania takiej relacji trzeba utworzyć tabelę wiążącą
(pośrednią). Ta tabela stanowi wygodny sposób na powiązanie wierszy z jednej tabeli z
tymi z drugiej tabeli i zarazem ułatwia dodawanie, usuwanie lub modyfikowanie
powiązanych danych.

You might also like