SysTel-04.Relacyjne bazy danych

advertisement
Dr Michał Tanaś (http://www.amu.edu.pl/~mtanas)
Bazy danych – podstawowe pojęcia
Baza danych jest to zbiór danych zorganizowany
zgodnie ze ściśle określonym modelem danych.
danych.
Model danych to zbiór ścisłych zasad określających
strukturę organizacji danych.
Przykładem modelu danych jest dowolna tabelka z
nagłówkami kolumn.
Silnik bazy danych – oprogramowanie umożliwiające
przechowywanie i udostępnianie danych, zgodnie z
danym modelem danych.
Bazy danych – podstawowe pojęcia
Baza danych może, ale nie musi, być zrealizowana przy
pomocy systemu informatycznego.
Przykłady baz danych:
Książka telefoniczna
Dziennik szkolny
Rozkład jazdy autobusów
Terminarz spotkań
Album ze zdjęciami
Stojak z płytami CD
Bazy danych – podstawowe pojęcia
Bazą danych nie jest:
jest:
Notatnik (brak dobrze określonej struktury)
Pusty arkusz egzaminacyjny (brak danych)
Pusty zeszyt (nie ma ani danych ani struktury)
Podsumowując:
Baza danych = dane + struktura
Relacyjny model danych
Dane zorganizowane są w formie prostokątnych tabel
Każda tabela posiada unikalną nazwę
Kolumny tabeli określają rodzaje przechowywanych
danych
Wiersze tabeli (krotki
(krotki)) są kolejnymi rekordami
(,,paczkami’’) danych przechowywanymi w bazie.
Relacyjny model danych
Przykładem relacyjnej bazy danych jest indeks
Kolumnami są:
Data
Nazwa przedmiotu
Ocena
Podpis wykładowcy
Wierszami (krotkami) są oceny z kolejnych
przedmiotów.
Relacyjny model danych
Definicja kolumny w bazie danych zawiera:
Nazwę kolumny – zazwyczaj określającą interpretację
danych przechowywanych w kolumnie (np. ,,data’’,
,,ocena’’, itp.)
Typ danych – określa wewnętrzny sposób
przechowywania danych przez komputer.
Relacyjny model danych
Typy danych
Liczby całkowite (integer
(integer,, int)
int)
Ze znakiem (signed
(signed)) – mogą przechowywać liczby dodatnie i
ujemne
Bardzo krótkie (1 bajt) – zakres od -127 do 128
Krótkie (2 bajty) – zakres od -32 tys do 32 tys
Długie (4 bajty) – zakres od -2 mld do 2 mld
Bardzo długie (8 bajtów) – zakres praktycznie nieograniczony
(od -263 do 263)
Relacyjny model danych
Typy danych
Liczby całkowite (integer
(integer,, int)
int)
Bez znaku (unsigned
(unsigned)) – mogą przechowywać wyłącznie liczby
dodatnie
… ale za to dwukrotnie większe niż typy signed
Bardzo krótkie (1 bajt) – zakres od 0 do 256
Krótkie (2 bajty) – zakres od 0 do 64 tys
Długie (4 bajty) – zakres od 0 do 4 mld
Bardzo długie (8 bajtów) – zakres praktycznie nieograniczony
(od 0 do 264)
Relacyjny model danych
Typy danych
Liczby zmiennoprzecinkowe (float
(float,, double, real
real))
Zawsze mogą przechowywać zarówno liczby dodatnie jak i
ujemne
Większość liczb przechowują w sposób przybliżony, z
dokładnością do określonej liczby miejsc po przecinku
Pojedynczej precyzji – zakres od -1038 do -10-38 i od 10-38 do
1038, dokładność 7 cyfr po przecinku
Podwójnej precyzji – zakres od -10308 do -10-308 i od 10-308 do
10308, dokładność 15 cyfr po przecinku
Relacyjny model danych
Typy danych
Liczby stałoprzecinkowe (decimal
(decimal))
Każda liczba zawsze zawiera tą samą ilość miejsc po przecinku
… nawet jeżeli nie jest to potrzebne
… np. notacja księgowa 123,00 zł
Brak standardów – dokładność i zakres zależą od konkretnego
programu.
Relacyjny model danych
Typy danych
Liczby stałoprzecinkowe (decimal
(decimal))
Każda liczba zawsze zawiera tą samą ilość miejsc po przecinku
… nawet jeżeli nie jest to potrzebne
… np. notacja księgowa 123,00 zł
Brak standardów – dokładność i zakres zależą od konkretnego
programu.
Relacyjny model danych
Typy danych
Typy związane z czasem
Czas – zazwyczaj z dokładnością do 1s
Data – zazwyczaj w zakresie od 1.01.1000 do 31.12.9999
Typ łączony data + czas
,,Znacznik czasu’’ (timestamp
(timestamp)) – liczba sekund, które upłynęły
od północy 1.01.1970 (początek tzw. ery Unixa
Unixa))
Co oznacza że tzw. ,,problem roku 2000’’ (pluskwa milenijna)
tak naprawdę wystąpi dopiero w roku 2038.
Relacyjny model danych
Typy danych
Teksty (różne długości) – uwaga na sposób kodowania
polskich liter!
Typ boolowski – może mieć dwie wartości:
prawda
fałsz
Dane binarne (tzw. BLOB – Binary Large OBject
OBject)) –
dowolne dane (zazwyczaj zdjęcia). Najczęściej rozmiar
pojedynczego BLOBa jest ograniczony do 4GB.
Relacyjny model danych
Typy danych
Typ wyliczeniowy (ENUM) – może przyjmować jedną
wartość z podanego zbioru
Typowy przykład: płeć (mężczyzna, kobieta)
Typ zbiorowy (SET) – może przyjmować jednocześnie
wiele wartości z podanego zbioru
Typowy przykład: stopień naukowy (można być jednocześnie
„dr”, „hab.” i „prof.”)
Relacyjny model danych
Lp
Nazwa
Szerokość
geograficzna
Długość
geograficzna
Liczba
mieszkańców
1
Poznań
52N
17E
550 tys.
2
Warszawa
52N
21E
1,7 mln.
3
Kraków
50N
20E
750 tys.
Relacyjny model danych
Każdemu wierszowi tabeli program nadaje unikalny
numer
… dzięki któremu program odróżnia wiersze od siebie
… ale najczęściej numer ten albo w ogóle nie jest
dostępny dla użytkownika albo jest bardzo niewygodny
w użyciu.
Relacyjny model danych
Dlatego w tabeli powinno się zawsze określać podzbiór
kolumn, którego wartość jest unikalna dla każdego
wiersza.
Taki podzbiór nazywa się kluczem (key
key))
Klucz może składać się z jednej kolumny (np. PESEL)
… lub wielu kolumn łącznie (np. Imię, Nazwisko,
DataUrodzenia))
DataUrodzenia
… zauważmy że w takim wypadku tylko pełny klucz
musi być unikalny (np. może być wielu Janów
Kowalskich)
Relacyjny model danych
Do komunikacji z relacyjną bazą danych służy język
SQL (Structured
(Structured Query Language)
Language)
Podstawowe operacje języka SQL:
Wyszukiwanie danych (SELECT)
Dodawanie nowych danych (INSERT)
Modyfikacja istniejących danych (UPDATE)
Usuwanie danych (DELETE)
Relacyjny model danych
Zaawansowane operacje języka SQL:
Warunki logiczne (WHERE)
Sortowanie danych (ORDER BY)
Klasyfikacja danych (GROUP BY)
Przykład zapytania SQL:
SELECT imie,nazwisko FROM pracownicy WHERE
pensja>3000 ORDER BY pensja;
Download