Bazy danych, teoria

advertisement
1
Relacyjne bazy danych
2
Relacyjny model baz danych
• Zawdzięcza nazwę pojęciu relacji w teorii mnogości.
• W relacyjnym modelu dane przechowywane
są w relacjach (tabelach).
• Każda relacja składa się z wierszy i wartości
atrybutów (kolumn).
• Baza danych składa się z relacji (tabel) połączonych
ze sobą za pomocą atrybutów kluczowych.
Połączenia te określają, które wiersze
w poszczególnych tabelach są ze sobą związane.
3
Podstawowe pojęcia
• Rekord (zapis) - podstawowa jednostka informacji z bazie danych
zawierająca pełny zestaw informacji o gromadzonych obiektach (np.
opis bibliograficzny, dane teleadresowe itp.)
• Tabele – podstawowe obiekty bazy danych w programie Access
służące do przechowywania danych. Składają się one z wierszy
(rekordów) i kolumn (pól).
• Relacja – skojarzenie ustanowione między wspólnymi polami
(kolumnami) w dwóch tabelach. Relacja może być typu „jeden-dojednego”, „jeden-do-wielu” lub „wiele-do-wielu”. Relacja działa
poprzez dopasowywanie danych w polach klucza.
• Klucz podstawowy - jedno lub większa liczba pól (kolumn), których
wartości jednoznacznie identyfikują każdy rekord w tabeli. Klucz
podstawowy służy do wiązania tabeli z kluczami obcymi w innych
tabelach.
• Klucz obcy - jedno lub większa liczba pól tabeli (kolumn), które
odwołują się do pola lub pól klucza podstawowego w innej tabeli.
Klucz obcy wskazuje, w jaki sposób tabele są powiązane.
4
• Kwerendy – wyrażone w formalnym języku „zapytania”
do bazy danych, które – zależnie od typu – mogą wyświetlać
określone dane, modyfikować je, tworzyć lub usuwać.
Kwerendy pozwalają automatyzować operacje na bazach
danych.
• Formularze – elementy interfejsu SZBD, za pomocą których
Użytkownik może przeglądać i modyfikować przechowywane
w tabelach dane, uruchamiać raporty czy wykonywać zadania
administracyjne.
• Raporty – pozwalają na wyświetlanie oraz drukowanie
sformatowanych danych wraz z obliczeniami oraz
podsumowaniami.
• Strony – pozwalają na publikowanie interaktywnych
formularzy w sieci lokalnej
• Makra (Makropolecenia) – grupy poleceń, które mogą zostać
automatycznie wykonane jak jedna instrukcja.
• Moduły – pozwalają na tworzenie programów w języku VBA
5
Typy rekordów
• Jednostopniowe, rekord dzieli się na pola.
W schemacie tym rekordy symbolizują wiersze
tabeli, zaś polami są kolumny
• Wielostopniowe, rekord dzieli się na pola, pola
zaś na podpola. Bazy tego typu mają własne,
zróżnicowane interfejsy (nie są to tabele, lecz
wyświetlane sekwencyjnie formularze)
6
Tabele
• Zbiór danych dotyczących określonego tematu.
• Używanie oddzielnych tabel dla każdego tematu
eliminuje duplikowanie danych (redundancję),
przechowywanie danych jest bardziej efektywne
i eliminuje błędy wprowadzania danych.
• Tabele organizują dane w kolumnach (zwanych
polami) i w wierszach (zwanych rekordami).
7
8
Typy danych w tabelach
Tekst
• Pól typu Tekst należy używać do przechowywania takich danych, jak
nazwy czy adresy oraz danych liczbowych, na których nie będą
dokonywane żadne obliczenia (na przykład numery telefonów,
numery części, czy kody pocztowe). Pole tekstowe może zawierać do
255 znaków. Domyślnie pola mieści 50 znaków. Aby umożliwić
wprowadzenie do pola większej ilości danych, należy zmienić
ustawienie właściwości Rozmiar pola.
Memo
Pola typu Memo
• są używane do przechowywania danych dłuższych niż 255 znaków
• może zawierać do 64 000 znaków
• nie mogą być indeksowane ani sortowane.
Do przechowywania sformatowanych tekstów i długich dokumentów,
zamiast pola Memo należy użyć pola OLE.
Liczba
• Używany dla danych liczbowych, które mogą być używane
w obliczeniach matematycznych
9
Typy danych w tabelach
Data/Godzina
• Używany dla dat i godzin.
Walutowy
• Używany dla wartości pieniężnych.
Autonumer
• Typ danych pola przechowujący unikatową liczbę automatycznie
przyporządkowaną każdemu rekordowi w chwili jego dołączenia do tabeli.
• Można generować trzy rodzaje liczb: kolejne (rosnące o 1), losowe oraz
identyfikator replikacji (używany przez Menedżera replikacji w celu
zapewnienia integralności danych w replikowanej bazie danych). Liczby
generowane przez pole typu Autonumer nie mogą być usuwane ani
modyfikowane.
Tak/Nie
• Właściwość Format można ustawić na jeden z predefiniowanych formatów:
Tak/Nie, True/Falselub Wł/Wył lub na format niestandardowy
10
Typy danych w tabelach
Obiekt OLE
• Używany dla obiektów, takich jak np. dokumenty
programu Microsoft Word i rysunki, utworzonych
w innych programach przy użyciu protokołu OLE.
Hiperłącze
• Kolorowy i podkreślony tekst lub grafika, który
można kliknąć, aby skoczyć do pliku, określonego
miejsca w pliku, strony HTML w sieci WWW lub
strony HTML w internecie. Hiperłącza mogą
również prowadzić do miejsc Gopher, Telnet, grup
dyskusyjnych i FTP.
11
Podstawowe cechy relacji
• Relacja musi się składać przynajmniej z jednej kolumny
i może zawierać zero, jeden lub więcej wierszy danych
• Każdy wiersz relacji musi mieć wartości unikalne, musi
różnić się wartością przynajmniej w jednej kolumnie od
innych wierszy
• Kolejność wierszy i kolumn w tabeli jest dowolna
• Dane umieszczone w kolumnie należą do domeny tej
kolumny, czyli zbioru jej dopuszczalnych wartości. Każda
relacja w relacyjnej bazie danych posiada klucz
podstawowy, który składa się z jednej lub większej liczby
kolumn, o wartościach jednoznacznie identyfikujących
każdy jej wiersz
12
Atrybuty
• Charakteryzują cechy abstrakcyjnych obiektów
umieszczonych w poszczególnych wierszach relacji
(tabeli).
• Jest to opis poszczególnych kolumn relacji.
• Zakres wartości jakie mogą przyjmować atrybuty
(kolumny) nazywa się ich typem, domeną lub
dziedziną
13
Typy atrybutów
Typy atrybutu
Opis atrybutu
CHAR
Dowolny tekst o stałej długości n-znaków
VARCHAR
Ciąg znaków zmiennej długości, max n znaków
BLOB
Pole binarne o zmiennej długości, służy do pamiętania
grafiki i danych multimedialnych
INTEGER
Liczba całkowita, zakres wartości ±2147483648
SMALL INT
Liczba całkowita, zakres wartości ± 32768
DATA
Data
DATATIME
Data i czas
DECIMAL (p, s)
Liczby dziesiętne, p oznacza liczbę cyfr (razem z kropka i
znakiem), s<6 oznacza liczbę cyfr po kropce dziesiętnej
14
Typ atrybutu
Opis atrybutu
NUMERIC (p, s)
Liczby dziesiętne, p oznacza liczbę cyfr (razem z kropką i
znakiem), s oznacza liczbę cyfr po kropce dziesiętnej
FLOAT
Liczba zmiennoprzecinkowa siedem cyfr znaczących
DOUBLE
PRECISION
Liczba zmiennoprzecinkowa podwójnej precyzji
15
Węzły nałożone na atrybuty
• Na atrybuty w bazach danych można nałożyć
dodatkowe ograniczenia zwane węzłami.
• Podstawowe węzły
NAZWA
OPIS
NOT NULL
Nazwa atrybutu nie może być pusta
UNIQUE
Wartości atrybutów w danej kolumnie muszą być
unikalne
PRIMARY KEY
Dany atrybut jest kluczem podstawowym
określonej relacji, co również oznacza, że musi być
unikalny
FOREIGN KEY
Dany klucz jest kluczem obcym
16
Klucze
• Klucz – kolumna lub zestaw kolumn, który
w jednoznaczny sposób identyfikuje resztę
danych w dowolnie zadanym wierszu
• Obcy klucz – jest atrybutem (kolumną) w obcej
tabeli, gdzie ten atrybut jest podstawowym
kluczem. Dowolne dane w kolumnie obcego
klucza muszą mieć odpowiedniki w
odpowiadającej tabeli, w której ten klucz jest
kluczem podstawowym
17
Rodzaje kluczy
Atrybuty relacji dzielimy na 2 grupy:
• Atrybuty podstawowe–należą do któregokolwiek
z kluczy
• Atrybuty opisowe – nie należą do żadnego z
kluczy
Klucze:
• Proste - klucz, którego zbiór identyfikujący jest
jednoelementowy
• Złożone - klucz, którego zbiór identyfikujący jest
kilkuelementowy
18
Relacje między tabelami
• Powiązanie między tabelami nazywamy relacją.
Relacja istnieje wtedy, gdy dwie tabele są połączone
przez klucz podstawowy i klucz obcy lub, gdy istnieje
dodatkowa, łącząca je tabela, zwana tabelą łączącą.
• Każdej relacji między dwiema tabelami można
przypisać konkretny typ. Istnieją trzy typy relacji
określające typ powiązania między wierszami tabel:
▫ Jeden do jednego
▫ Jeden do wielu
▫ Wiele do wielu
19
Relacja jeden-do-jednego
• W relacji jeden-do-jednego każdy rekord w tabeli A
może mieć tylko jeden dopasowany rekord z tabeli
B, i tak samo każdy rekord w tabeli B może mieć
tylko jeden dopasowany rekord z tabeli A. Ten typ
relacji spotyka się rzadko, ponieważ większość
informacji powiązanych w ten sposób byłoby
zawartych w jednej tabeli.
• Relacji jeden-do-jednego można używać do podziału
tabeli z wieloma polami, do odizolowania części
tabeli ze względów bezpieczeństwa, albo do
przechowania informacji odnoszącej się tylko do
podzbioru tabeli głównej.
20
Relacja jeden-do jednego
id_pracownika
•
imię
nazwisko
100
Jan
Kowalski
101
Jan
Nowak
1:1
Id pracownika
stawka
100
5.5
101
6.6
21
Relacje –relacja jeden-do-wielu
• Między tabelami istnieje relacja jeden do wielu,
jeżeli z każdym rekordem z pierwszej tabeli jest
związany jeden lub kilka rekordów z drugiej
tabeli, natomiast każdemu rekordowi z drugiej
tabeli odpowiada jeden rekord z pierwszej tabeli.
22
Relacja jeden-do-wielu
Id_pracownika
Imię
nazwisko
100
Jan
Kowalski
101
Jan
Nowak
1:n
Id_pracownika
Nazwa narzędzia
100
Klucze nasadowe
100
Młotek
101
Piłka
101
Klucz M12
23
Relacja wiele-do-wielu
• Między dwiema tabelami występuje relacja wiele
do wielu, jeżeli pojedynczemu rekordowi z
pierwszej tabeli może odpowiadać jeden lub
więcej rekordów z drugiej tabeli i na odwrót –
pojedynczy rekord z drugiej tabeli może być
powiązany z jednym lub większą liczbą rekordów
z pierwszej
24
Relacje wiele-do-wielu
Wyroby
Id_wyrobu
Nazwa_wyrobu
34/A
Plecak RYSY
36/B
Plecak ALASKA
12/A
Kurtka POLAR
Części
m:n
Id_części
Nazwa_części
N-12-13
Zapinka wtyk
N-12-14
Zapinka gniazdo
N-08-17
Zamek M12x60
P-16-03
Pas mocujący
25
Zastąpienie relacji wiele-do-wielu dwiema relacjami
jeden-do-wielu
Id_wyrobu
Nazwa_wyrobu
Id_części-
Nazwa_części
N-12-13
Zapinka wtyk
34/A
Plecak RYSY
N-12-14
Zapinka gniazdo
36/B
Plecak ALASKA
N-08-17
Zamek M12x60
12/A
Kurtka POLAR
P-16-03
Pas mocujący
1:n
Id_wyrobu
Id_części
liczba
12/A
N-08-17
1
34/A
N-12-13
4
34/A
N-12-14
4
34/A
N-08-17
2
34/A
P-16-03
1
36/B
N-12-13
5
36/B
N-12-14
5
1:n
26
Normalizacja
• Proces, podczas którego schematy relacji
posiadające niepożądane cechy są
przekształcone na mniejsze schematy relacji
o pożądanych własnościach. Celem normalizacji
jest uzyskanie optymalnej struktury bazy
danych.
27
Warunki procesu normalizacji
• Żaden atrybut nie zostanie zgubiony w czasie
normalizacji
• Dekompozycja relacji nie prowadzi do utraty
informacji
• Wszystkie zależności funkcjonalne są
reprezentowane w pojedynczych schematach
relacji
• Relacje między tabelami mogą być tylko typu
jeden do jeden lub jeden do wielu
28
Tabela nieznormalizowana
Id_klienta
Id_zamówienia
wyroby
5
7
5 łożysk, 18 wiertarek, 3 pilniki
6
8
3 młotki, 2 pilniki
5
9
7 młotków, 2 mlotki
29
Pierwsza postać normalna
1 PN wymaga, aby wszystkie wartości jej kolumn były elementarne
(niepodzielne). Kolumna Nr_pozycji określa kolejność towaru na zamówieniu.
Kluczem głównym tej tabeli jest klucz złożony z pary kolumn id_zamówienia i
nr_pozycji. Kluczem obcym id_kilenta
Id_kienta
Id_zam
Nr_
poz
ilość
wyroby
5
7
1
5
Łożysko
5
7
2
18
Wiertło
5
7
3
3
Pilnik
6
8
1
3
Młotek
6
8
2
2
Pilnik
5
9
1
7
Młotek
5
9
2
2
pilnik
30
Druga postać normalna
• Aby tabela przyjęła drugą postać normalną, musi
być w pierwszej postaci normalnej i każda z jej
kolumn musi być w pełni zależna od klucza
głównego i od każdego atrybutu klucz głównego,
jeśli ten klucz składa się z wielu kolumn.
• Elementy każdej kolumny tabeli, nie będącej
kluczem muszą być jednoznacznie
identyfikowane przez klucz główny tabeli
31
Id_klienta
Id_zamówienia
data
5
7
1999-04-15
6
8
1999-04-16
5
9
1999-04-20
Id_zamówie Nr_pozycji
nia
Ilość
Id_wyrobu
wyrobu
7
1
5
33
Łożysko
7
2
18
44
Wiertło
7
3
3
15
Pilnik
8
1
3
17
Młotek
8
2
2
15
Pilnik
9
1
7
17
Młotek
9
2
2
15
pilnik
Relacja w drugiej postaci normalnej
32
Trzecia postać
• Każda z kolumn musi być zależna od klucza
głównego i niezależna od pozostałych kolumn.
• Tabela musi spełniać warunki drugiej postaci
normalnej, a ponadto każda kolumna nie będąca
kluczem, musi być niezależna od pozostałych
kolumn niekluczowych
33
Id_zamówienia
Nr pozycji
Ilość
Id_wyrobu
7
1
5
33
7
2
18
44
7
3
3
15
8
1
3
17
8
2
2
15
9
1
7
17
9
2
2
15
Id_wyrobu
Nazwa_wyrobu
33
Łożysko
44
Wiertło
15
Pilnik
17
Młotek
34
Projektowanie baz danych
35
Określenie celu, któremu ma służyć
baza danych
• jakich informacji ma dostarczyć baza danych,
• jakie zagadnienia będą analizowane w bazie
danych (tabele)
• jakie informacje mają określać każde
zagadnienie (pola w tabelach)
36
Określenie tabel, które znajdą się
w bazie danych
Projektując tabele należy mieć na uwadze
przedstawione poniżej podstawowe zasady
projektowania:
• Ta sama informacja nie powinna być wielokrotnie
wprowadzona do jednej lub kilku tabel. Jeżeli
informacja jest przechowywana tylko w jednej tabeli,
można ją uaktualnić zmieniając dane tylko w jednym
miejscu.
• Każda tabela powinna zawierać informacje tylko na
jeden temat. Jeżeli tabela zawiera dane na temat
jednego zagadnienia można przetwarzać je
niezależnie od danych dotyczących innych
zagadnień.
37
Określenie pól, które znajdą się
w tabelach
• Każda tabela zawiera informacje na temat jednego
zagadnienia, a każde pole w tabeli zawiera jedną daną
dotyczącą tego zagadnienia, któremu poświęcona jest
tabela.
• Zabierając się do projektowania pól w tabelach dobrze
jest pamiętać o następujących wskazówkach:
▫ Należy powiązać każde pole bezpośrednio z zagadnieniem,
którego dotyczy tabela.
▫ Nie należy wprowadzać danych pośrednich lub obliczonych
(danych, które są wynikiem wyrażenia).
▫ Należy uwzględnić wszystkie potrzebne informacje.
▫ Informacje należy przechowywać w możliwie najmniejszych
jednostkach logicznych (na przykład Imię oraz Nazwisko, a
nie Dane personalne).
38
Przypisanie polom jednoznacznych
wartości
• Aby można było powiązać informacje
przechowywane w różnych tabelach. Na
przykład, aby powiązać klienta ze wszystkimi
jego zamówieniami każda tabela w bazie danych
musi zawierać pole lub zbiór pól, które
jednoznacznie określają każdy rekord. Takie pole
lub zbiór pól nazywany jest kluczem
podstawowym.
39
Określenie relacji (sprzężeń) między
tabelami
• Po podzieleniu danych na tabele i zdefiniowaniu
pól kluczy podstawowych trzeba wprowadzić do
programu Microsoft Access informacje na temat
sposobu poprawnego łączenia powiązanych
danych w logiczną całość. W tym celu definiuje
się relacje między tabelami.
40
Wprowadzenie danych i utworzenie
innych obiektów bazy danych
• Kiedy okaże się, że struktura tabel spełnia
opisane powyżej kryteria, można wprowadzić
wszystkie dane do tabel i utworzyć dowolne
kwerendy, formularze, raporty, makra i moduły.
41
Bibliografia
• Józef Kukuczka, Relacyjne bazy danych
• http://ultra.ap.krakow.pl/~wmkolasa/bazy/101f
ull.html
Download