Bazy danych

advertisement
SYSTEMY BAZ I HURTOWNI
DANYCH
Wstęp
1
Literatura:
1. „Podstawowy wykład z systemów baz danych” – J.Ullman,
J.Widom, WNT, 2001
2. „Systemy baz danych :praktyczne metody projektowania,
implementacji i zarządzania” T.1 i 2 – T.Connolly, C.Begg,
RM, Warszawa, 2004
3. „Wprowadzenie do systemów baz danych” – C.Date, WNT,
2000
4. „Implementacja systemów baz danych” – H.Garcia-Molina,
J.Ullman, J.Widom, WNT, 2003
5. „SQL: omówienie standardu języka” – C.Date, H.Darwen,
WNT, 2000
6. „Projektowanie hurtowni danych : zarządzanie kontaktami z
klientami (CRM)” – C.Todman
2
Pojęcia:
• informacja;
• dane;
• baza danych;
• ręczne przetwarzanie danych;
• system informacyjny;
• system informatyczny.
Osiągnięcia w dziedzinie baz danych przyczyniły się do rozwoju
systemów komunikacyjnych, zagadnień transportowych i
logistycznych, zarządzania finansami, systemów wnioskowania
na podstawie danych, dostępu do informacji naukowej oraz wielu
innych zastosowań cywilnych i wojskowych.
3
Bazy danych:
Banki
Biura podróży
...
Szpitale
Sklepy internetowe
Linie lotnicze,
kolejowe
Szkoły, uczelnie
4
Uczelnie:
5
USOS:
6
Biblioteki:
7
Kardiochirurgiczna Baza Danych Medycznych:
8
Definicje:
Baza danych - uporządkowany zbiór danych
(def. krótka)
Inna definicja bazy danych - abstrakcyjny, informatyczny
model wybranego fragmentu rzeczywistości.
System zarządzania bazą danych - SZBD (lub DBMSDatabase Management System) – system oprogramowania,
który pozwala użytkownikom definiować, tworzyć i
utrzymywać bazę danych oraz kontrolować do niej dostęp.
9
Systemy baz danych
Tradycyjne systemy oparte na przetwarzaniu plików:
Były pierwszą próbą skomputeryzowania ręcznego
przetwarzania kartotek danych (koniec lat 60-tych).
Mogą dobrze służyć dopóki liczba przechowywanych danych
jest niewielka lub, gdy chcemy jedynie przechowywać dane i
je odszukiwać.
10
Np. w biurze obrotu nieruchomościami
Jak długo trwałoby znalezienie informacji na pytania:
• Podaj wszystkie domy na sprzedaż z trzema sypialniami,
ogrodem i garażem.
• Podaj wszystkie mieszkania do wynajęcia w odległości 5 km
od centrum.
• Jaki jest średni czynsz za mieszkanie dwupokojowe?
• Ile wynosi sumaryczne, roczne wynagrodzenie pracowników?
• Jaki jest stosunek obrotu z zeszłego miesiąca do planowanego
obrotu w bieżącym miesiącu?
• Jaki może być miesięczny obrót w nadchodzącym roku
finansowym?
11
Przykłady plików dla biura nieruchomości:
Dział sprzedaży:
Nieruchomość:
nr
ulica
miasto
kod
typ
A14
L94
B4
B36
B21
B16
Handlowa 16
Akacjowa 6
Leśna 6
Mała 2
Dobra 18
Nowa 5
Augustów
Łomża
Białystok
Białystok
Białystok
Białystok
16-300
18-400
15-900
15-900
15-900
15-900
dom
mieszkanie
mieszkanie
mieszkanie
dom
mieszkanie
pokoje czynsz właściciel
6
4
3
3
5
4
650
400
350
375
600
450
CO46
CO87
CO40
CO93
CO87
CO93
Właściciel:
właściciel
imię
nazwisko
adres
telefon
CO46
CO87
CO40
CO93
Jan
Karol
Tatiana
Tomasz
Kowalski
Frankowski
Marcinkowski
Szymański
16-300 Augustów, Fabryczna 2
15-900 Białystok, Agrestowa 6
15-900 Białystok, Wodna 63
15-900 Białystok, Parkowa 12
0-87-555 4444
0-85-222 6666
0-85-111 5555
0-85-333 4444
Klient:
klient
imię
nazwisko
CR76
CO56
CR74
CR62
Janusz
Alicja
Michał
Maria
Kalinowski
Stefańska
Rafalski
Tomaszewska
adres
telefon
18-400 Łomża
0-86-444 5555
15-900 Białystok
0-85-333 2222
Tykocin,
0-86-123 4567
16-300 Augustów, Trawiasta 5 0-87-111 6666
preferencje maks czynsz
mieszkanie
mieszkanie
dom
mieszkanie
425
350
750
600
12
Przykłady plików dla biura nieruchomości cd:
Dział umów:
Wynajęcie:
nr
nr nieruforma
klient czynsz
kaucja zapłacona
umowy chomości
płatności
1024
1075
1012
A14
L94
B21
CR62
CR76
CR74
650
400
600
karta Visa
gotówka
czek
1300
800
1200
T
N
T
od
do
okres
01.06.200
01.08.200
01.07.200
31.05.200
31.01.200
30.06.200
12
6
12
Nieruchomość:
nr
ulica
miasto
kod
czynsz
A14
L94
B21
Handlowa 16
Akacjowa 6
Dobra 18
Augustów
Łomża
Białystok
16-300
18-400
15-900
650
400
600
Klient:
klient
imię
nazwisko
adres
telefon
CR76
CR74
CR62
Janusz
Michał
Maria
Kalinowski
Rafalski
Tomaszewska
18-400 Łomża
Tykocin,
16-300 Augustów, Trawiasta 5
0-86-444 5555
0-86-123 4567
0-87-111 6666
13
Przetwarzanie plików:
Wprowadzanie Procedury
obsługi plików
danych
i generowanie
Formaty plików
raportów
Dział Sprzedaży
Aplikacje Działu Sprzedaży
Pliki Działu Sprzedaży
Wprowadzanie Procedury
obsługi plików
danych
i generowanie
Formaty plików
raportów
Dział Umów
Aplikacje Działu Umów
Pliki Działu Umów
14
Ograniczenia systemów opartych na
przetwarzaniu plików:
1. Rozproszenie i odseparowanie danych;
2. Powielanie danych;
3. Zależność danych od programu;
4. Niekompatybilne formaty plików;
5. Ograniczone spektrum możliwych pytań i aplikacji.
15
Pomijano lub ograniczano funkcje:
1. Ochrona danych i kontrola ich integralności;
2. Odtwarzanie danych po awarii sprzętu czy
oprogramowania;
3. Organizacja wielodostępu, czyli możliwości
jednoczesnej obsługi przez system wielu pracowników
działu.
16
Systemy oparte na bazach danych:
(lepsza definicja)
Baza danych:
• dostępny dla wielu użytkowników,
• zbiór powiązanych logicznie danych wraz z definicją ich
struktury,
• zaprojektowany dla zaspokojenia potrzeb przetwarzania
danych przez instytucję.
17
Pojęcia związane z bazą danych:
Encja – to wyróżniony obiekt (osoba, miejsce, rzecz,
pojęcie czy zdarzenie) w strukturze instytucji, który
powinien być odzwierciedlony w bazie danych;
Atrybut – to własność opisująca pewien aspekt obiektu,
który zamierzamy opisać;
Związek – to powiązanie pomiędzy dwiema encjami.
18
Przykład diagramu związków encji:
Biuro
BiuroNr
Oferuje
Ma
Personel
PersonelNr
Nadzoruje
Nieruchomość
Ogląda
NieruchomośćNr
Posiada
Właściciel
WłaścicielNr
Klient
KlientNr
Wynajmuje
Wynajęty przez
Wynajęcie
WynajęcieNr
19
Przykład diagramu związków (Access):
20
Przykład diagramu związków (phpMyAdmin):
21
Przykład diagramu związków (MySQLWorkbench.exe):
22
System zarządzania bazą danych:
SZBD – system oprogramowania, który pozwala użytkownikom
definiować, tworzyć i utrzymywać bazę danych oraz kontrolować
do niej dostęp.
Przetwarzanie w bazie danych:
Wprowadzanie
danych i raporty
Dział Sprzedaży
Aplikacje Działu Sprzedaży
SZBD
Wprowadzanie
danych i raporty
Dział Umów
Aplikacje Działu Umów
Informacje o
nieruchomościach,
klientach, umowach
+ definicje plików
Baza danych
23
Elementy środowiska SZBD:
Dane
Sprzęt
Oprogramowanie
Procedury
Ludzie
Most
Zalety SZBD:
• kontrola redundancji;
• spójność danych;
• wspólny dostęp do danych
• poprawa integralności i
bezpieczeństwa danych.
Wady:
• złożoność;
• możliwy spadek efektywności;
• większy zasięg awarii.
System baz danych: SBD = BD + SZBD
24
Środowisko bazy danych
1971 – pierwsza propozycja standardowej terminologii i ogólnej
architektury systemu baz danych przedstawiona przez
specjalną grupę do zadań związanych z bazami danych
(potrzeba stosowania dwuwarstwowej architektury systemu
baz danych: warstwy systemowej i warstw użytkowników).
1975 – komitet planowania standardów SPARC amerykańskiego
instytutu standardów ANSI przedstawił konieczność
stosowania trójwarstwowej architektury.
Wyodrębnione trzy poziomy abstrakcji, tzn trzy różne poziomy
(warstwy) opisu danych przechowywanych w bazie stanowią
trójwarstwową architekturę bazy, składającą się z warstw:
zewnętrznej,
konceptualnej i wewnętrznej.
ANSI (ang. American National Standards Institute)
SPARC (Standards Planning And Requirements Committee)
http://www.ansi.org/
25
Architektura trójwarstwowa ANSI-SPARC
Warstwa
zewnętrzna
Użytkownik 1
Użytkownik 2
Perspektywa 1
Perspektywa 2 ... Perspektywa n
Warstwa
konceptualna
Schemat
konceptualny
Warstwa
wewnętrzna
Schemat
wewnętrzny
Fizyczna
organizacja danych
Użytkownik n
Baza danych
26
Głównym zadaniem trójwarstwowej architektury jest oddzielenie
fizycznej reprezentacji bazy danych od różnych sposobów
widzenia danych w bazie przez użytkowników, ponieważ:
• każdy z użytkowników powinien mieć dostęp do tych samych
danych, ale sposób ich widzenia powinien być dostosowany
do indywidualnych wymagań, zaś zmiana sposobu widzenia
nie powinna wpływać na innych użytkowników;
• użytkownicy nie powinni mieć bezpośrednio do czynienia ze
szczegółami fizycznego sposobu pamiętania bazy danych,
czyli kontakt użytkownika z bazą danych powinien być
niezależny od sposobu przechowywania danych;
27
• administrator bazy danych powinien mieć możliwość zmiany
struktur służących do przechowywania danych i te zmiany
powinny być też niezauważalne dla użytkowników;
• wewnętrzna struktura bazy danych powinna być odporna na
zmiany fizycznych parametrów używanego nośnika pamięci,
np. przy przejściu na nowe rodzaje nośników;
• administrator powinien mieć możliwość zmiany konceptualnej
struktury bazy danych w sposób niezauważalny dla innych
użytkowników.
28
Warstwa zewnętrzna – opisuje jak użytkownicy widzą bazę
danych i w jaki sposób uzyskują do niej dostęp. W tej
warstwie zawarte są wszystkie istotne dla jej
użytkowników informacje o bazie danych.
Warstwa konceptualna – to zebrany, zbiorowy sposób
widzenia bazy danych. Warstwa ta opisuje, jakie dane
są przechowywane w bazie i jakie są ich wzajemne
związki. Zawiera, zatem logiczną strukturę całej bazy
danych.
29
Warstwa konceptualna przedstawia więc:
• wszystkie encje, ich atrybuty i występujące pomiędzy nimi
związki;
• reguły spójności danych;
• informacje semantyczne o danych;
• informacje dotyczące bezpieczeństwa i integralności danych.
Warstwa wewnętrzna – to fizyczna reprezentacja bazy danych
w komputerze. Opisuje sposób przechowywania danych
w bazie.
30
Różnice pomiędzy warstwami
PracownikNr
Warstwa
konceptualna
Warstwa
wewnętrzna
Imię
Nazwisko
PracownikNr
Wiek
Imię
PracownikNr Nazwisko BiuroNr
Pensja
Nazwisko
DataUr
Pensja
BiuroNr
create PERSONEL {
int pracownikNr
int biuroNr;
char imię [15];
date dataUr;
float pensja;
};
Całkowity opis bazy danych nazywany jest schematem bazy
danych. Używane są trzy różne typy schematów odpowiadające
poziomom abstrakcji trójwarstwowej architektury.
31
Niezależność danych
Logiczna niezależność danych – oznacza odporność schematów
zewnętrznych na zmiany dokonywane w schemacie
konceptualnym.
Fizyczna niezależność danych – oznacza odporność schematu
konceptualnego na zmiany dokonywane w schemacie
wewnętrznym.
32
Schemat
zewnętrzny
Schemat
zewnętrzny
Odwzorowanie
Schemat
zewnętrzny
Logiczna
niezależność danych
zewnętrzno-konceptualne
Schemat
konceptualny
Fizyczna
Odwzorowanie
niezależność danych
konceptualno-wewnętrzne
Schemat
wewnętrzny
33
Języki baz danych
Język definicji danych (JDD) – to język, który pozwala
administratorowi lub użytkownikowi opisywać i nazywać
encje, atrybuty i relacje wymagane przez aplikacje, a także
więzy (warunki) integralności i bezpieczeństwa – czyli
definiowanie struktury danych zawartych w bazie.
Język manipulowania danymi (JMD) – język, który dostarcza
zestawu operacji przeznaczonych do manipulowania danymi
przechowywanymi w bazie, czyli:
• dopisywanie nowych danych do bazy;
• modyfikowanie danych przechowywanych w bazie;
• usuwanie danych z bazy;
• (wyszukiwanie danych zawartych w bazie).
34
Język sterowania danych (Data Control Language - DCL),
który umożliwia sterowanie transakcjami tj. akceptacja lub
wycofanie.
Język zapytań (Query Language), który umożliwia pobieranie
informacji z bazy za pośrednictwem określonych zapytań,
warunków.
W praktyce te cztery języki są ze sobą zintegrowane
(w obrębie aplikacji, systemu).
35
Tak zwane języki czwartej generacji:
• języki prezentacji danych;
• języki specjalizowane;
• generatory programów wykonujących
definiowanie,
wstawianie, modyfikowanie i wyszukiwanie danych w
bazie;
• generatory aplikacji.
36
Modele danych
Model danych – zbiór ogólnych zasad posługiwania się danymi,
który obejmuje trzy główne części:
• Definicja danych: zbiór reguł określających strukturę
danych, wcześniej określane jako logiczna struktura bazy
danych;
• Operowanie danymi: zbiór reguł dotyczących procesu
dostępu do danych i ich modyfikacji;
• Integralność danych: zbiór reguł określających, które
stany bazy danych są poprawne (a więc zarazem jakie
operacje prowadzące do modyfikacji danych są
dozwolone).
37
Rozróżnia się trzy główne typy (lub generacje) modeli danych:
1. Proste modele danych. Dane zorganizowane są w strukturę
rekordów zgrupowanych w plikach. Głównymi dostępnymi
operacjami są operacje na rekordach (ewentualnie na ich
poszczególnych polach);
2. Klasyczne modele danych. Należą do nich modele
hierarchiczne, sieciowe i relacyjne. Modele relacyjne stanowią
najbardziej popularną obecnie podstawę architektur systemów
baz danych.
3. Semantyczne modele danych. Semantyka to inaczej
znaczenie. Klasyczne modele danych nie dostarczają łatwego
sposobu odczytania informacji o semantyce danych, stąd
podejmuje się próby stworzenia innych modeli,
uzupełniających ten brak (np. model związków encji, model
obiektowy).
38
Model relacyjny zarządzania bazą danych
Relacyjny system zarządzania bazą danych jest drugą generacją
SZBD (systemy pierwszej generacji – sieciowe i hierarhiczne) i
jest oparte na relacyjnym modelu danych zdefiniowanym przez
dr E. F. Codd’a (1970).
W związku z tym, że pojęcie relacji jest matematyczną
konstrukcją, relacja jest tabelą, dla której jest spełniony
następujący zbiór zasad:
1. Każda relacja w bazie danych ma jednoznaczną
nazwę. Według Codda dwuwymiarowa tabela jest
matematycznym zbiorem, a matematyczne zbiory
muszą być nazywane jednoznacznie;
39
2. Każda kolumna w relacji ma jednoznaczną nazwę w
ramach jednej relacji. Każda kolumna relacji jest
również zbiorem i dlatego powinna być jednoznacznie
nazwana.
3. Wszystkie wartości w kolumnie muszą być tego
samego typu. Wynika to z p. 2.
4. Porządek kolumn w relacji nie jest istotny. Schemat
relacji - lista nazw jej kolumn - jest również
matematycznym zbiorem. Elementy zbioru nie są
uporządkowane.
40
5. Każdy wiersz w relacji musi być różny. Innymi słowy,
powtórzenia wierszy nie są dozwolone w relacji.
6. Porządek wierszy nie jest istotny. Skoro zawartość
relacji jest zbiorem. to nie powinno być określonego
porządku wierszy relacji.
7. Każde pole leżące na przecięciu kolumny i wiersza w
relacji powinno zawierać wartość atomową. To znaczy,
zbiór wartości nie jest dozwolony na jednym polu
relacji.
41
12 reguł Dr Codd’a dotyczących
przedstawiania relacji jako tabeli:
0. Aby można było uznać dany system za system zarządzania
relacyjnych baz danych, musi on wykorzystywać (wyłącznie)
relacyjne mechanizmy do zarządzania bazą danych;
1. Reguła informacyjna: - wymaganie, aby wszystkie
informacje zawarte w bazie danych były przedstawiane w
jeden i tylko jeden sposób, mianowicie za pomocą wartości
umieszczanych w kolumnach w obrębie wierszy tabel;
42
2. Reguła gwarantowanego dostępu: - powtórna instrukcja
zasadniczego wymagania dotyczącego kluczy podstawowych
(każda poszczególna wartość skalarna w bazie danych musi
mieć zapewnioną możliwość logicznego adresowania,
wykorzystując nazwę zawierającej ją tabeli, nazwę
zawierającej ją kolumny oraz wartość klucza podstawowego
zawierającego ją wiersza);
3. Uporządkowana obsługa wartości NULL: wymaga się, aby
SZBD obsługiwał reprezentację brakujących informacji oraz
informacji nieadekwatnych, to znaczy uporządkowanych,
odmiennych od wszystkich wartości prawidłowych oraz
niezależnych od typu danych;
43
4. Aktywny katalog dostępny na bieżąco, oparty na modelu
relacyjnym: - aby system obsługiwał wbudowany katalog
relacyjny z bieżącym dostępem dla uprawnionych
użytkowników używających ich zwykłego języka zapytań.
5. Reguła dotycząca podjęzyka obsługi danych o pełnych
możliwościach: - system musi obsługiwać przynajmniej
jeden język relacyjny;
6. Reguła aktualizacji perspektyw: wszystkie perspektywy,
które teoretycznie dają się aktualizować, muszą być
aktualizowane przez system;
44
7. Polecenia wstawiania, aktualizacji oraz usuwania w
języku wysokiego poziomu: wymaga się, aby system
obsługiwał operatory INSERT, UPDATE oraz DELETE
dotyczące całych zbiorów;
8. Fizyczna niezależność danych;
9. Logiczna niezależność danych;
10. Niezależność
integralnościowa:
ograniczenia
integralnościowe muszą być specyfikowane pojedynczo z
programu aplikacyjnego i przechowywane w katalogu;
45
11. Niezależność dystrybucyjna: istniejące aplikacje powinny
działać bez zakłóceń, kiedy następuje wprowadzenie
rozproszonej Wersji SZBD oraz kiedy istniejące dane
rozproszone są ponownie dystrybuowane w obrębie systemu;
12. Reguła nieprowadzenia "działalności wywrotowej": jeśli
system jest wyposażony w interfejs niskiego poziomu
(operacje na pojedynczych rekordach), nie może być użyty
do np. omijania zabezpieczeń relacyjnych lub ograniczeń
integralnościowych.
46
Cechy modelu relacyjnego:
•
Daleko posunięta niezależność danych;
•
Solidne podstawy pozwalające rozwiązywać problemy
semantyki, spójności i redundancji danych;
•
Umożliwienia rozwoju języków przetwarzania danych
opartych na przetwarzaniu zbiorów.
Dwa punkty widzenia relacyjnych BD (RBD):
•
•
matematyczne - relacje,
tabele
47
System R - pierwszy prototypowy projekt relacyjny SZBD
(1976 IBM San Jose Research Laboratory w Kaliforni)
Przyczynił się do powstania wielu prac badawczych i rozwoju
innych projektów prototypowych, a w szczególności przyczynił
się do:
• rozwoju języka zapytań SQL (Structured Query Language),
który stał się językiem formalnie uznawanym przez
międzynarodową organizację standardów ISO i faktycznym
standardem języka dla relacyjnych SZBD;
• stworzenia
na przełomie lat 70-tych i 80-tych systemów
komercyjnych, których obecnie istnieje około kilkuset.
48
Terminologia
Relacja – to tabela posiadająca kolumny i wiersze.
Relacyjny SZBD określa jedynie, że baza jest dla użytkownika
zbiorem tabel (odnosi się to tylko do logicznej struktury bazy
danych – konceptualnego i zewnętrznego poziomu architektury
ANSI-SPARC).
Atrybut (pole)– to kolumna relacji opatrzona nazwą.
Atrybuty mogą pojawiać się w relacji w dowolnej kolejności i nie
ma to wpływu na znaczenie relacji.
Dziedzina – to zbiór dopuszczalnych wartości dla jednego lub
większej liczby atrybutów.
49
Dziedziny niektórych atrybutów relacji Biuro i Personel:
Atrybut
Nazwa
dziedziny
Znaczenie
Definicja dziedziny
biuroNr
numery biur
zbiór możliwych numerów
biur
typ znakowy: rozmiar 4,
zakres B001-B999
ulica
nazwy ulic
zbiór wszystkich
występujących nazw ulic
typ znakowy: rozmiar 25
miasto
nazwy miast
zbiór wszystkich
występujących nazw miast
typ znakowy: rozmiar 15
kod
pocztowy
kody
pocztowe
zbiór wszystkich kodów
pocztowych
typ znakowy: rozmiar 6
Płeć
typy płci
płeć człowieka
dataUr
daty
urodzenia
możliwe wartości dat
urodzenia pracowników
pensja
pensje
możliwe wysokości pensji
pracowników
typ znakowy: rozmiar 1,
wartość M lub K
typ daty: zakres od
01.01.1920, format
rrrr.mm.dd
typ walutowy: 7 cyfr, zakres
600,00 – 4000,00
50
Krotka – to wiersz relacji (rekord)
Stopień (krotność) relacji – to liczba atrybutów relacji
Moc relacji – to liczba krotek, które znajdują się w relacji.
Relacyjna baza danych – to zbiór znormalizowanych relacji o
różnych nazwach.
51
Stan relacji Biuro i Personel:
Atrybuty
Relacja
Biuro
biuroNr
B005
B007
B003
B004
B002
ulica
miasto
kod pocztowy
Handlowa 16
Akacjowa 6
Leśna 6
Mała 2
Dobra 18
Łomża
Augustów
Grajewo
Białystok
Łomża
18-400
16-300
19-200
15-900
18-400
Moc
Stopień
Klucz główny
Personel
pracownikNr
Relacja
Sl21
SG37
SG14
SA9
SG5
SL41
Klucz obcy
imię nazwisko stanowisko płeć dataUr pensja biuroNr
Jan
Anna
Daniel
Maria
Sabina
Julia
Wiśniewski
Biały
Frankowski
Hojny
Bober
Lisicka
dyrektor
asystent
kierownik
asystent
dyrektor
asystent
M
K
M
K
K
K
01.10.1945
10.11.1960
24.03.1958
19.02.1970
03.06.1940
13.07.1965
3000
1200
1800
900
2400
900
B005
B003
B003
B007
B003
B005
52
Powiązania kluczy obcych:
53
Klucze relacji:
Klucz główny - to jedna lub więcej kolumn tabeli, w których
wartości jednoznacznie identyfikują każdy wiersz w tabeli.
Każda relacja musi mieć klucz główny. Dzięki temu możemy
zapewnić, aby wiersze nie powtarzały się w relacji.
Klucz kandydujący to kolumna lub zbiór kolumn, które mogą
występować jako jednoznaczny identyfikator wierszy w tabeli. W
każdej relacji może istnieć wiele kluczy kandydujących.
Klucz główny jest wybierany ze zbioru kluczy kandydujących.
Klucz obcy - jest kolumną lub grupą kolumn tabeli, która czerpie
swoje wartości z tej samej dziedziny co klucz główny tabeli
powiązanej z nią w bazie danych.
54
Więzy integralności:
1. wymagana obecność danych (NOT NULL);
2. więzy dziedzin atrybutów - dopuszczalny zbiór wartości
atrybutu, dopuszczalny zakres długości i format atrybutu;
3. integralność encji - każda tabela musi posiadać klucz
główny, a wartości klucza głównego muszą być w ramach
tabeli unikalne i nie równe NULL;
4. integralność referencyjna - każda wartość klucza obcego
może być albo równa jakiejś wartości klucza głównego
występującej w tabeli powiązanej, lub (ewentualnie) NULL;
5. więzy ogólne - dodatkowe warunki poprawności danych
określone przez użytkowników lub administratorów bazy
danych.
55
Integralność referencyjna pociąga za sobą konieczność określenia
reguły postępowania w wypadku usuwania wiersza z tabeli
powiązanej, co mogłoby unieważnić niektóre wartości kluczy
obcych w tabelach do niej się odnoszących:
1. ograniczone usuwanie (Restricted). Podejście ostrożne – nie
dopuszcza do usuwania rekordu nadrzędnego, jeśli istnieją
rekordy podrzędne.
2. kaskadowe usuwanie (Cascades). Podejście ufne – przy
usuwaniu rekordu nadrzędnego usuwa także rekordy
podrzędne.
3. izolowane usuwanie (Isolated). Podejście wyważone – usuwa
jedynie rekord nadrzędny, nieważne wartości kluczy obcych
ulegają zastąpieniu przez NULL.
56
Własności relacji:
Baza danych jest zbiorem relacji, o następujących własnościach:
• każda relacja w bazie danych jest jednoznacznie określona
przez swoją nazwę;
• każda kolumna w relacji (atrybut) ma jednoznaczną nazwę (w
ramach tej relacji);
• kolumny relacji tworzą zbiór nieuporządkowany;
• wszystkie wartości w danej kolumnie muszą być tego samego
typu (pochodzić z tej samej dziedziny);
• każdy wiersz (krotka) jest inny – nie ma duplikatów krotek;
57
• teoretycznie, kolejność wierszy nie ma znaczenia (w praktyce
może mieć wpływ na efektywność wyszukiwania
odpowiednich grup kotek);
• każde pole (przecięcie wiersza z kolumną) zawiera wartość
atomową z dziedziny określonej przez kolumnę. Brakowi
wartości odpowiada wartość specjalnej NULL, zgodna z
każdym typem kolumny (chyba, że została jawnie wykluczona
przez definicję typu kolumny).
• każda relacja zawiera klucz główny -- kolumnę (lub kolumny),
której wartości jednoznacznie identyfikują wiersz (a więc w
szczególności nie powtarzają się). Wartością klucza głównego
nie może być NULL.
Wartość pusta (NULL) – reprezentuje wartość atrybutu, która w
danej chwili nie jest znana lub nie może zostać ustalona.
58
SELECT * FROM `Ceny`
CREATE VIEW _null AS select cena1 AS cena1,
cena2 AS cena2,(cena1 + cena2) AS suma
from Ceny;
CREATE VIEW _null2 AS select avg(cena1) AS
Średnia1, avg(cena2) AS Średnia2
from Ceny;
59
Schemat relacyjnej bazy danych:
Relacyjna baza danych składa się z pewnej liczby znormalizowanych
relacji, np.:
Biuro
(biuroNr, ulica, miasto, kod pocztowy)
Personel
(pracownikNr, imię, nazwisko, stanowisko, płeć,
dataUr, pensja, biuroNr)
Nieruchomość (nieruchomośćNr, ulica, miasto, kod pocztowy, typ,
pokoje, czynsz, właścicielNr, pracownikNr, biuroNr)
Klient
(klientNr, imię, nazwisko, adres, telefon, preferencje,
maksCzynsz)
Właściciel
(właścicielNr, imię, nazwisko, adres, telefon)
Wizyta
(klientNr, nieruchomośćNr, dataWizyty, uwagi)
Rejestracja
(klientNr, biuroNr, pracownikNr, dataRejestracji)
Wynajęcie
(umowaNr, nieruchomośćNr, klientNr, czynsz,
formaPłatności, kaucja, zapłacona, od, do, okres)60
Relacje matematyczne
Mamy dwa zbiory D1 i D2, gdzie: D1 = {2,4} i D2 = {1,3,5}
Iloczyn kartezjański D1 x D2 = {(2,1),(2,3),(2,5),(4,1),(4,3),(4,5)}
Dowolny podzbiór takiego iloczynu kartezjańskiego jest relacją,
np.:
R = {(2,1),(4,1)}
Którą możemy zapisać jako:
R  x, y  x  D1, y  D2 oraz y  1
Inna relacja, w której pierwszy element jest zawsze dwa razy
większy niż drugi:
S  x, y x  D1, y  D2 oraz x  2  y
czyli S={(2,1)}
61
Rozszerzając pojęcie relacji na trzy zbiory:
D1={1,3}, D2={2,4}, D3={5,6}
Mamy iloczyn kartezjański:
D1xD2xD3={(1,2,5),(1,2,6),(1,4,5),(1,4,6),(3,2,5),(3,2,6),(3,4,5),(3,4,6)}
Dowolny podzbiór tych uporządkowanych trójek jest relacją.
Niech D1 x D2 x ...x Dn będą n zbiorami. Ich iloczyn
kartezjański:
D1 x D2 x ...x Dn  d1, d 2, ...,d n d1  D1, d 2  D2 , ...,d n  Dn 
Dowolny zbiór n-krotek z tego iloczynu kartezjańskiego jest
relacją n zbiorów.
62
Download