Podejście relacyjne
Podejście relacyjne
Podejście relacyjne
Podejście relacyjne
opiera się na wykorzystaniu
opiera się na wykorzystaniu
do przedstawiania danych modelu relacyjnego i
do przedstawiania danych modelu relacyjnego i
zarządzania nimi matematycznego modelu
zarządzania nimi matematycznego modelu
zawierającego algebrę relacyjną i rachunek
zawierającego algebrę relacyjną i rachunek
relacji.
relacji.
Ogólnie system zarządzania relacyjną bazą danych:
Ogólnie system zarządzania relacyjną bazą danych:
►
Reprezentuje całą informację z bazie danych za
Reprezentuje całą informację z bazie danych za
pomocą tabel.
pomocą tabel.
►
Wspiera trzy podstawowe operacje relacyjne:
Wspiera trzy podstawowe operacje relacyjne:
wybór (selekcja, ang. selection), rzutowanie
wybór (selekcja, ang. selection), rzutowanie
(projekcja, ang. projection) i złączanie (ang. join).
(projekcja, ang. projection) i złączanie (ang. join).
Szczegółowe wymagania określa dwanaście tzw.
Szczegółowe wymagania określa dwanaście tzw.
„praw Codda”.
„praw Codda”.
Między innymi system w pełni relacyjny musi:
Między innymi system w pełni relacyjny musi:
►
Reprezentować całą informację zawartą w bazie w
Reprezentować całą informację zawartą w bazie w
postaci tabel.
postaci tabel.
►
Utrzymywać niezależność logicznej reprezentacji danych
Utrzymywać niezależność logicznej reprezentacji danych
od fizycznego sposobu ich przechowywania.
od fizycznego sposobu ich przechowywania.
►
Używać języka wysokiego poziomu w celu
Używać języka wysokiego poziomu w celu
strukturalizacji, wyszukiwania i zmiany informacji w
strukturalizacji, wyszukiwania i zmiany informacji w
bazie danych.
bazie danych.
►
Wspierać podstawowe operacje relacyjne i takie
Wspierać podstawowe operacje relacyjne i takie
operacje teorii zbiorów, jak suma, przecięcie, różnica i
operacje teorii zbiorów, jak suma, przecięcie, różnica i
dzielenie.
dzielenie.
►
Wspierać perspektywy umożliwiające użytkownikowi
Wspierać perspektywy umożliwiające użytkownikowi
określenie alternatywnych sposobów oglądania danych
określenie alternatywnych sposobów oglądania danych
w tabelach.
w tabelach.
►
Dostarczać metodę pozwalającą odróżniać wartości
Dostarczać metodę pozwalającą odróżniać wartości
nieznane (null) od zera lub miejsca niewypełnionego.
nieznane (null) od zera lub miejsca niewypełnionego.
►
Wspierać mechanizmy zapewniające spójność, prawa
Wspierać mechanizmy zapewniające spójność, prawa
dostępu, transakcje i odzyskiwanie danych.
dostępu, transakcje i odzyskiwanie danych.
Postulaty Codda dla relacyjnej
Postulaty Codda dla relacyjnej
bazy danych (1985 rok)
bazy danych (1985 rok)
1.
1.
Postulat informacyjny
Postulat informacyjny
: na poziomie
: na poziomie
logicznym dane są reprezentowane
logicznym dane są reprezentowane
wyłącznie za pomocą tabel.
wyłącznie za pomocą tabel.
2.
2.
Postulat dostępu
Postulat dostępu
: do każdej pojedynczej
: do każdej pojedynczej
danej jest dostęp za pomocą tabel,
danej jest dostęp za pomocą tabel,
kolumn i wartości kluczy głównych.
kolumn i wartości kluczy głównych.
3.
3.
Postulat wartości null
Postulat wartości null
: w systemie jest
: w systemie jest
dostępna specjalna wartość
dostępna specjalna wartość
reprezentująca wartość brakującą,
reprezentująca wartość brakującą,
nieokreśloną lub nieznaną; jest to
nieokreśloną lub nieznaną; jest to
wartość różna od wszystkich konkretnych
wartość różna od wszystkich konkretnych
wartości, jak np. pusty napis lub zero.
wartości, jak np. pusty napis lub zero.
4.
4.
Postulat słownika danych
Postulat słownika danych
: informacje o
: informacje o
obiektach bazy danych tworzących jej
obiektach bazy danych tworzących jej
schemat są na poziomie logicznym
schemat są na poziomie logicznym
zgrupowane w tabele, które są dostępne w
zgrupowane w tabele, które są dostępne w
taki sam sposób, jak każde inne dane.
taki sam sposób, jak każde inne dane.
5.
5.
Postulat pełnego języka danych
Postulat pełnego języka danych
: w systemie
: w systemie
jest zaimplementowany pełny język
jest zaimplementowany pełny język
obejmujący definiowanie danych,
obejmujący definiowanie danych,
perspektyw, więzów spójności, operowanie
perspektyw, więzów spójności, operowanie
danymi (interaktywne lub przez program),
danymi (interaktywne lub przez program),
nadawanie uprawnień użytkownikom,
nadawanie uprawnień użytkownikom,
transakcje.
transakcje.
Postulaty Codda dla relacyjnej
Postulaty Codda dla relacyjnej
bazy danych (1985 rok)
bazy danych (1985 rok)
6.
6.
Postulat modyfikowania bazy danych przez
Postulat modyfikowania bazy danych przez
perspektywy
perspektywy
: system umożliwia modyfikowanie
: system umożliwia modyfikowanie
danych za pomocą perspektyw, w przypadku
danych za pomocą perspektyw, w przypadku
gdy taka modyfikacja jest semantycznie
gdy taka modyfikacja jest semantycznie
sensowna.
sensowna.
7.
7.
Postulat modyfikowania danych na wysokim
Postulat modyfikowania danych na wysokim
poziomie abstrakcji
poziomie abstrakcji
:
:
system umożliwia
system umożliwia
modyfikowanie danych za pomocą operacji,
modyfikowanie danych za pomocą operacji,
których argumentami są tabele (perspektywy),
których argumentami są tabele (perspektywy),
a więc w szczególności nie tylko w sposób
a więc w szczególności nie tylko w sposób
nawigacyjny.
nawigacyjny.
8.
8.
Fizyczna niezależność danych
Fizyczna niezależność danych
: zmiany w
: zmiany w
metodach przechowywania danych i dostępu
metodach przechowywania danych i dostępu
do nich nie mają wpływu na aplikacje.
do nich nie mają wpływu na aplikacje.
Postulaty Codda dla relacyjnej
Postulaty Codda dla relacyjnej
bazy danych (1985 rok)
bazy danych (1985 rok)
9.
9.
Logiczna niezależność danych
Logiczna niezależność danych
: zmiany w
: zmiany w
tabelach zachowujące informacje i
tabelach zachowujące informacje i
dopuszczalne semantycznie nie mają
dopuszczalne semantycznie nie mają
wpływu na aplikacje.
wpływu na aplikacje.
10.
10.
Niezależność więzów spójności
Niezależność więzów spójności
: więzy
: więzy
spójności są definiowane w języku bazy
spójności są definiowane w języku bazy
danych (nie muszą być wyrażane w
danych (nie muszą być wyrażane w
aplikacji).
aplikacji).
Postulaty Codda dla relacyjnej
Postulaty Codda dla relacyjnej
bazy danych (1985 rok)
bazy danych (1985 rok)
11.
11.
Niezależność dystrybucyjna
Niezależność dystrybucyjna
: system (i jego
: system (i jego
język) umożliwiają używanie danych
język) umożliwiają używanie danych
zapisanych w różnych fizycznie miejscach (w
zapisanych w różnych fizycznie miejscach (w
różnych węzłach sieci).
różnych węzłach sieci).
12.
12.
Zabezpieczenie przed operacjami na niższych
Zabezpieczenie przed operacjami na niższych
poziomach abstrakcji
poziomach abstrakcji
: jeżeli system umożliwia
: jeżeli system umożliwia
operacje na niższych poziomach abstrakcji,
operacje na niższych poziomach abstrakcji,
nie mogą one naruszać relacyjnego modelu
nie mogą one naruszać relacyjnego modelu
danych (w tym pomijać ograniczeń
danych (w tym pomijać ograniczeń
określonych przez więzy spójności).
określonych przez więzy spójności).
Postulaty Codda dla relacyjnej
Postulaty Codda dla relacyjnej
bazy danych (1985 rok)
bazy danych (1985 rok)
Postulat 1.
Postulat 1.
Model relacyjny - wszystko jest tabelą
Model relacyjny - wszystko jest tabelą
Tabela
Tabela
podzielona jest na poziome
podzielona jest na poziome
wiersze
wiersze
i
i
pionowe
pionowe
kolumny
kolumny
.
.
Alternatywne pojęcia (niemal synonimy):
Alternatywne pojęcia (niemal synonimy):
►
Tabela – relacja – plik.
Tabela – relacja – plik.
►
Wiersz – krotka (wystąpienie encji) – rekord.
Wiersz – krotka (wystąpienie encji) – rekord.
►
Kolumna – atrybut (właściwość) – pole.
Kolumna – atrybut (właściwość) – pole.
Zbiór powiązanych ze sobą tabel to
Zbiór powiązanych ze sobą tabel to
baza
baza
danych
danych
.
.
Tabela to zbiór wierszy, czyli wystąpień encji.
Tabela to zbiór wierszy, czyli wystąpień encji.
Encje charakteryzują własności, czyli wartości w
Encje charakteryzują własności, czyli wartości w
poszczególnych kolumnach.
poszczególnych kolumnach.
W relacyjnej bazie danych występują dwa
W relacyjnej bazie danych występują dwa
rodzaje tabel:
rodzaje tabel:
►
Tabele użytkownika.
Tabele użytkownika.
►
Tabele systemowe (katalog, słownik systemu)
Tabele systemowe (katalog, słownik systemu)
– czwarte prawo Codda.
– czwarte prawo Codda.
Postulat 1.
Postulat 1.
Postulat 3.
Postulat 3.
Wartość nieokreślona (null)
Wartość nieokreślona (null)
Wartość
Wartość
null
null
(rozwiązanie problemu
(rozwiązanie problemu
brakującej informacji) oznacza brak danej
brakującej informacji) oznacza brak danej
(jest ona nieznana lub nie wprowadzona).
(jest ona nieznana lub nie wprowadzona).
Stosowanie null zmienia tradycyjną logikę
Stosowanie null zmienia tradycyjną logikę
dwuwartościową (tak/nie) na logikę
dwuwartościową (tak/nie) na logikę
trójwartościową (tak/nie/być może) –
trójwartościową (tak/nie/być może) –
stanowi integralną część standardu
stanowi integralną część standardu
języka SQL.
języka SQL.
Postulat 5.
Postulat 5.
Język wysokiego poziomu
Język wysokiego poziomu
System relacyjny wymaga
System relacyjny wymaga
pełnego podjęzyka
pełnego podjęzyka
danych
danych
(np. SQL).
(np. SQL).
Zakres zastosowań pełnego podjęzyka danych:
Zakres zastosowań pełnego podjęzyka danych:
►
Operowanie danymi (wyszukiwanie i
Operowanie danymi (wyszukiwanie i
modyfikowanie).
modyfikowanie).
►
Definiowanie danych.
Definiowanie danych.
►
Administrowanie danymi.
Administrowanie danymi.
Każda operacja języka wyrażona jest
Każda operacja języka wyrażona jest
instrukcją
instrukcją
lub
lub
poleceniem
poleceniem
. Operacje wyszukiwanie
. Operacje wyszukiwanie
nazywane są często
nazywane są często
zapytaniami
zapytaniami
.
.
SQL jako podjęzyk danych
SQL jako podjęzyk danych
Język SQL jest
Język SQL jest
językiem nieproceduralnym
językiem nieproceduralnym
, tzn.
, tzn.
pozwala na określenie warunków, jakie ma spełniać
pozwala na określenie warunków, jakie ma spełniać
wynik bez podawania szczegółów dotyczących
wynik bez podawania szczegółów dotyczących
sposobu realizacji.
sposobu realizacji.
Operacje wyszukiwania powodują utworzenie i
Operacje wyszukiwania powodują utworzenie i
wyprowadzenie tabel wynikowych zwanych
wyprowadzenie tabel wynikowych zwanych
tabelami
tabelami
wyprowadzanymi
wyprowadzanymi
na podstawie
na podstawie
tabel bazowych
tabel bazowych
zawierających surowe dane.
zawierających surowe dane.
Operacje relacyjne:
Operacje relacyjne:
►
Rzutowanie – wybór kolumn (określa podzbiór
Rzutowanie – wybór kolumn (określa podzbiór
kolumn).
kolumn).
►
Wybór – wybór wierszy (określa podzbiór wierszy).
Wybór – wybór wierszy (określa podzbiór wierszy).
►
Złączanie – utworzenie jednej tabeli wynikowej na
Złączanie – utworzenie jednej tabeli wynikowej na
podstawie kilku tabel bazowych.
podstawie kilku tabel bazowych.
Postulat 6.
Postulat 6.
Różne sposoby oglądania danych
Różne sposoby oglądania danych
Perspektywa
Perspektywa
(tabela wirtualna, tabela
(tabela wirtualna, tabela
pochodna) – tabela utworzona na podstawie
pochodna) – tabela utworzona na podstawie
jednej lub kilku tabel bazowych, która umożliwia
jednej lub kilku tabel bazowych, która umożliwia
inny, alternatywny sposób przeglądania danych.
inny, alternatywny sposób przeglądania danych.
Dane oglądane w perspektywie nie są
Dane oglądane w perspektywie nie są
zapamiętane w ten sposób w bazie danych (nie
zapamiętane w ten sposób w bazie danych (nie
jest ona kopią danych).
jest ona kopią danych).
Zmiana danych w perspektywie powoduje
Zmiana danych w perspektywie powoduje
(zwykle) ich modyfikację w rzeczywistości
(zwykle) ich modyfikację w rzeczywistości
(prawo Codda).
(prawo Codda).
Postulat 7.
Postulat 7.
Bezpieczeństwo
Bezpieczeństwo
sprowadza się do kontroli kto
sprowadza się do kontroli kto
używa jakich danych i w jakiem celu. Podjęzyk
używa jakich danych i w jakiem celu. Podjęzyk
danych powinien umożliwić realizację tej
danych powinien umożliwić realizację tej
kontroli. Poziom kontroli zależy od SZBD (na
kontroli. Poziom kontroli zależy od SZBD (na
poziomie baz danych, tabel, kolumn, wierszy).
poziomie baz danych, tabel, kolumn, wierszy).
Rodzaje użytkowników:
Rodzaje użytkowników:
►
Zwykły użytkownik (użytkownik) – prawa
Zwykły użytkownik (użytkownik) – prawa
wynikające z nadanych mu uprawnień.
wynikające z nadanych mu uprawnień.
►
Użytkownik uprzywilejowany – właściciel baz
Użytkownik uprzywilejowany – właściciel baz
danych lub obiektów bazodanowych (osoba
danych lub obiektów bazodanowych (osoba
tworząca te obiekty).
tworząca te obiekty).
►
Administrator systemu (administrator bazy
Administrator systemu (administrator bazy
danych).
danych).
Postulat 8. i 9.
Postulat 8. i 9.
Niezależność danych
Niezależność danych
Niezależność danych
Niezależność danych
jest celem SZBD w modelu
jest celem SZBD w modelu
relacyjnym.
relacyjnym.
Poziomy niezależności:
Poziomy niezależności:
►
Fizyczna niezależność danych (reprezentacja
Fizyczna niezależność danych (reprezentacja
danych widziana przez użytkownika jest
danych widziana przez użytkownika jest
całkowicie niezależna od fizycznego sposobu
całkowicie niezależna od fizycznego sposobu
pamiętania danych – wydzielenie metod
pamiętania danych – wydzielenie metod
dostępu).
dostępu).
►
Logiczna niezależność danych (reprezentacja
Logiczna niezależność danych (reprezentacja
danych widziana przez użytkownika jest
danych widziana przez użytkownika jest
niezależna od programów użytkowych).
niezależna od programów użytkowych).
Postulat 10.
Postulat 10.
Spójność
Spójność
(integralność) to poprawność danych w bazie
(integralność) to poprawność danych w bazie
danych. Ograniczenia (tzw. więzy) dotyczące
danych. Ograniczenia (tzw. więzy) dotyczące
spójności powinny być definiowane w tym samym
spójności powinny być definiowane w tym samym
podjęzyku danych, co reszta systemu i zapamiętane
podjęzyku danych, co reszta systemu i zapamiętane
w słowniku bazy danych (prawo Codda).
w słowniku bazy danych (prawo Codda).
Metody zapewnienia spójności:
Metody zapewnienia spójności:
►
Zarządzanie transakcjami – polecenie podjęzyka
Zarządzanie transakcjami – polecenie podjęzyka
danych musi być wykonane w całości, albo wcale
danych musi być wykonane w całości, albo wcale
(żadna jego część).
(żadna jego część).
►
Spójność encji – ograniczenia dziedziny, ograniczenia
Spójność encji – ograniczenia dziedziny, ograniczenia
na wartości klucza głównego, dodatkowe warunki.
na wartości klucza głównego, dodatkowe warunki.
►
Spójność odwołań – zgodność fragmentów informacji
Spójność odwołań – zgodność fragmentów informacji
powtarzających się w kilku tabelach.
powtarzających się w kilku tabelach.
►
Dodatkowe ograniczenia (np. wyzwalacze).
Dodatkowe ograniczenia (np. wyzwalacze).