background image

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”.

background image

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.

background image

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.

background image

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)

background image

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)

background image

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)

background image

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)

background image

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.

background image

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.

background image

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.

background image

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

.

.

background image

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.

background image

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).

background image

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).

background image

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).

background image

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).


Document Outline