Professional Documents
Culture Documents
SQL 3. Wprowadzenie
SQL 3. Wprowadzenie
SQL 3. Wprowadzenie
WPROWADZENIE
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
• 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
• 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
• modelu danych
• oprogramowania
• 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..
• Tabele • Pole
• 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.
• 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
• 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.
• 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
• 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
• 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.