Bazy Danych
Europejska Wyższa Szkoła Informatyczno-
Ekonomiczna
Mgr inż. Piotr Greniewski
Wykład 3: Podstawy relacyjnych baz danych
Copyright by Piotr Greniewski
2
Spis treści
Bazy danych wstęp
Geneza relacyjnych baz danych
Podstawy relacyjnych baz danych
Podstawy-SQL-1
Podstawy-SQL-2
Podstawy-SQL-3
Operacje na danych
Transakcje i blokady
Normalizacja
Copyright by Piotr Greniewski
3
Podstawy relacyjnych baz danych
Arkusze kalkulacyjne.
Czym wyróżniają się bazy danych?
Dane w bazie danych.
Prosty projekt bazy danych z wieloma
tabelami.
Definiowanie związków między tabelami.
Projektowanie tabel – kilka podstawowych
zasad
Wersja demonstracyjna bazy danych.
Proste typy danych.
Copyright by Piotr Greniewski
4
Arkusze kalkulacyjne
Powszechne wykorzystywane narzędzie do
przechowywania przeglądania danych:
Wydajny sposób do zdefiniowania zbioru danych;
Łatwość interpretacji danych
Funkcje sortowania po kolumnach itp...
Dobre narzędzie pod warunkiem, że danych nie jest
zbyt dużo;
Copyright by Piotr Greniewski
5
Arkusze kalkulacyjne
Pani Anna
Kowalska
Tamka 13 m.
1
826-32-
11
Pan
Jan
Zieliński
Miła 15 m.
23
826-22-
90
Pani Ewa
Wysocka
Solec 6 m.
56
826-98-
09
Wiers
z
Kolumna
Copyright by Piotr Greniewski
6
Czym wyróżniają się bazy danych?
Duże podobieństwo między relacyjną bazą
danych danych a arkuszem kalkulacyjnym.
Baza może służyć do przechowywania bardziej
złożonych danych niż arkusz.
Daje możliwość dostępu wielu użytkownikom
jednocześnie.
Baza danych składa się z tabel.
Copyright by Piotr Greniewski
7
Czym wyróżniają się bazy danych?
Rozpoczynając pracę nad projektem prostej
tabeli musimy odpowiedzieć na następujące
pytania:
Ile kolumn potrzeba do przechowywania atrybutów
związanych z każdym z elementów?
Jakiego typu dane będzie reprezentować każdy z
atrybutów (kolumna)?
Jak rozróżniać wiersze (rekordy)?
Copyright by Piotr Greniewski
8
Podstawowe typy danych
Numeryczne typy danych
SMALLINT – liczby całkowite małe z przedziału
(-32 768,+32 767);
INT – liczby całkowite z przedziału
(-2 147 483 648,+2 147 483 647);
NUMERIC (p,s) – liczby rzeczywiste, gdzie p
oznacza całkowitą liczbę cyfr, a s oznacza liczbę cyfr
po przecinku;
Copyright by Piotr Greniewski
9
Podstawowe typy danych
Tworzenie tabeli – CREATE TABLE dla
wartości numerycznych
CREATE TABLE test
(
mala_calkowita
SMALLINT,
liczba_calkowita INT,
liczba_rzeczywista
NUMERIC (5,2)
);
Copyright by Piotr Greniewski
10
Podstawowe typy danych
Znakowe typy danych:
CHAR – pojedynczy znak;
CHAR(n) – ciąg złożony dokładnie z n znaków, które
są uzupełniane spacjami;
VARCHAR(n) – ciąg znaków o długości do n znaków.
Ciąg nie jest uzupełniany spacjami.
TEXT Nieograniczony ciąg znaków podobny do
VARCHAR, ale bez konieczności definiowania
maksimum.
Copyright by Piotr Greniewski
11
Podstawowe typy danych
Tworzenie tabeli – CREATE TABLE dla
znakowych typów danych
CREATE TABLE test
(
znak
CHAR,
cztery_znaki
CHAR(4),
znaki_do_128
VARCHAR(128)
);
Copyright by Piotr Greniewski
12
Podstawowe typy danych
Typy danych daty i czasu:
DATE – przechowuje informacje o dacie;
TIME – przechowuje informacje o czasie.
Copyright by Piotr Greniewski
13
Podstawowe typy danych
Kasowanie tabeli – DROP TABLE nazwa_tabeli – jeśli tabela
nie jest już potrzebna można ją skasować. Należy to robić z
dużą ostrożnością.
DROP TABLE test;
Copyright by Piotr Greniewski
14
Tworzenie tabel
nr
imię
nazwisko
stanowisko
telefon
001 Jan
Kowalski
Sprzedawca
826-78-90
002 Anna
Kamińska
Sprzedawca
826-78-91
003 Krzysztof
Adamski
Kierownik
826-79-00
004 Piotr
Michalski
Mechanik
826-79-90
005 Marzena
Kownacka
Kasjer
826-79-21
006 Alicja
Makowieck
a
Sprzedawca
826-78-22
007 Wojciech
Bagielski
Sprzedawca
826-78-23
Copyright by Piotr Greniewski
15
Tworzenie tabel
Tworzenie tabeli polega na definiowaniu jej
kolumn. Dla każdej kolumny należy określić
nazwę, typ danych i długość oraz to czy jest
dozwolone pozostawienie wartości pustej
(NULL)
CREATE TABLE pracownicy
(
id_pracow
CHAR(3)
NOT NULL,
imie
VARCHAR(18)
NOT
NULL,
nazwisko
VARCHAR(24)
NOT
NULL,
stanowisko
VARCHAR(12)
NOT
NULL,
dzial
VARCHAR(12)
NOT
NULL,
...........
data_urodz
DATE,
telefon_domowy
CHAR(12)
);
Copyright by Piotr Greniewski
16
Projektowanie tabel
Podstawowe zasady projektowania tabel w
bazach danych:
Podział danych na kolumny;
Określenie unikalnego sposobu identyfikacji
każdego wiersza;
Usunięcie powtarzających się informacji;
Stosowanie właściwych nazw.
Copyright by Piotr Greniewski
17
Projektowanie tabel
Podział danych na kolumny
W każdej kolumnie powinien znaleźć się jeden
rodzaj informacji (lub atrybut). Jeżeli w
kolumnie umieścimy cały adres wraz z kodem
pocztowym to trudno będzie nam posortować
dane po kodzie pocztowym znajdującym się
gdzieś pomiędzy 14 a 20 znakiem. Dostęp do
danych jest bardzo utrudniony.
Kościuszki 3/5 m. 28 00-567 Warszawa
Dobra 4 m. 12 00-786 Warszawa
Kasprowicza 2 00-799 Warszawa
Copyright by Piotr Greniewski
18
Projektowanie tabel
Określenie unikalnego sposobu identyfikacji
każdego wiersza
Każdy wiersz w tabeli musi być unikalny. Aby to
zapewnić stosujemy klucz podstawowy. W
zasadzie nie musi nim być pojedyncza – może
to być para lub nawet kombinacja kilku
kolumn, która jednoznacznie identyfikuje
wiersz. Musimy zapewnić sposób który ze
100% pewnością spowoduje unikalność
rekordów.
1
Kowalski
Jan
25-02-1967
2
Kowalski
Jan
25-02-1967
3
Kwiatkowski
Marian
30-05-1976
Unikalny klucz
Copyright by Piotr Greniewski
19
Projektowanie tabel
Usunięcie powtarzających się informacji
(powtarzających się grup) – relacja jeden do wielu;
Id_klienta
Nazwa
Miasto
telefon
1
ABC S.A.
Warszawa
824-90-98
2
XYZ S.A.
Toruń
345-09-87
Id_zamówienia Id_klienta
Towar
Ilość kg
1
1
Jabłka
10
2
1
Gruszki
6
Copyright by Piotr Greniewski
20
Projektowanie tabel
Stosowanie właściwych nazw.
Większość
projektantów posiada własne
zasady nazywania tabel i kolumn w bazie
danych. Nie należy mieszać liczby
pojedynczej i mnogiej. Tabele i kolumny
powinny mieć krótkie i treściwe nazwy, a
nazwy w obrębie bazy danych powinny
być spójne. Jeżeli kolumna jednej tabeli
jest kluczem obcym innej tabeli to
powinny posiadać takie same nazwy.
Osiągnięcie tego celu bywa trudne.