Bazy danych

Transkrypt

Bazy danych
2010-10-21
PLAN WYKŁADU
Relacyjny model danych
Struktury danych
 Operacje
 Integralność danych
 Algebra relacyjna


BAZY DANYCH
Wykład 2
dr inż. Agnieszka Bołtuć
MODEL DANYCH
HISTORIA
Model danych jest zbiorem ogólnych zasad posługiwania
się danymi.
Definiuje on:
 struktury danych,
 operacje na danych,
 ograniczenia integralnościowe.

powstał dzięki jednej osobie – E.F.Coddowi, która w
1970 roku opublikowała pracę będącą fundamentem
pod omawiany model danych,
 w latach 1968-1988 opublikował ponad 40 prac na
temat relacyjnego modelu danych,
 prace
nad relacyjnym modelem danych były
prowadzone przez niego ze względu na:

dane we wcześniejszych modelach były traktowane w
niezdyscyplinowany sposób,

słaby poziom niezależności danych od aplikacji,

słaba wydajność tworzenia oprogramowania.
model relacyjny
1
2
3
1
2010-10-21
POSTULATY CODDA (1985)
POSTULATY CODDA

postulat informacyjny – dane są reprezentowane
jedynie za pomocą tabel wartości,
 postulat dostępu – każda wartość w bazie danych jest
dostępna za pomocą nazwy tabeli, atrybutu oraz
wartości klucza głównego,
 postulat wartości NULL – dostępna jest specjalna
wartość NULL dla reprezentacji wartości nieokreślonej i
nieznanej, inna od wszystkich pustych i podlegająca
przetwarzaniu,

POSTULATY CODDA




postulat modyfikowania bazy danych przez
perspektywy - system musi umożliwiać modyfikowanie
perspektyw, o ile jest ono semantycznie realizowane,
postulat modyfikowalności danych na wysokim
poziomie abstrakcji – system musi umożliwiać operacje
modyfikacji danych, których argumentami są tabele,
postulat fizycznej niezależności danych – zmiany
fizycznej reprezentacji danych i organizacji dostępu nie
wpływają na aplikacje,
postulat logicznej niezależności danych – zmiany
wartości w tabelach nie wpływają na aplikacje,

postulat słownika danych – informacje o obiektach
bazy danych tworzących schemat bazy danych są na
poziomie logicznym zgrupowane w tabele i dostępne w
taki sam sposób jak każde inne dane,
postulat pełnego języka danych – system musi
dostarczać pełnego języka przetwarzania danych, który:
charakteryzuje się liniową składnią, może być używany
zarówno w trybie interaktywnym, jak i w obrębie
programów
aplikacyjnych,
obsługuje
operacje
definiowania
danych
i
perspektyw,
operacje
manipulowania danymi, ograniczenia związane z
bezpieczeństwem i integralnością oraz operacje
zarządzania transakcjami,
POSTULATY CODDA
postulat niezależności więzów spójności – więzy
spójności są definiowane w języku bazy i nie zależą
od aplikacji,
 postulat niezależności dystrybucyjnej –
działanie aplikacji nie zależy od rozmieszczenia i
rozproszenia bazy,
 postulat bezpieczeństwa względem operacji na
niższych poziomach abstrakcji – operacje
niskiego poziomu nie mogą naruszać modelu
relacyjnego i więzów spójności.

2
2010-10-21
MODEL RELACYJNY
STRUKTURY DANYCH

struktura danych jest relacją,

manipulacje na danych odbywają się poprzez:
selekcję, projekcję, połączenie i operacje na
zbiorach,

integralność danych zachowana jest poprzez: klucz
podstawowy, klucz obcy, zawężenie dziedziny,
unikalność wartości, możliwość nadawania wartości
pustych.
jedyną strukturą danych w relacyjnej bazie danych jest
relacja (R) - dwuwymiarowa tabela,
 kolumny tabeli – atrybuty (A),
 wiersze tabeli – krotki (t),
 liczba atrybutów w tabeli – stopień tabeli (n),
 liczba krotek w tabeli – liczebność tabeli (m),
 klucz główny – jednoznaczny identyfikator w tabeli,
 baza danych – zbiór relacji,
 dziedzina (D) – zbiór dopuszczalnych wartości,
 schemat relacji – R(A1, A2,…, An),
 schemat bazy danych – zbiór schematów relacji.

STRUKTURY DANYCH
rejestracja
klucz główny
kolor
relacja samochody
liczebność
relacji
marka
dziedziny
atrybuty
RELACJA
Relacja r o schemacie R(A1,A2, ...,An), oznaczona r(R),
na zbiorze dziedzin {D1,D2, ...,Dn} jest zbiorem krotek r
= {t1, t2, ..., tm} postaci t =< v1, v2, ..., vn >, będących
uporządkowaną listą, gdzie vi , dla 0 < i ≤n należy do
zbioru Di {NULL}, n jest stopniem relacji R, zaś m jej
liczebnością.
krotki
stopień relacji
3
2010-10-21
W ŁASNOŚCI RELACJI
INTEGRALNOŚĆ DANYCH
każda relacja ma jednoznaczną nazwę w ramach bazy
danych,
 w ramach jednej relacji atrybuty mają jednoznaczne
nazwy,
 wszystkie wartości w kolumnie są tego samego typu
(zdefiniowane w tej samej dziedzinie),
 kolejność kolumn w relacji nie ma znaczenia,
 w relacji nie istnieją powtarzające się krotki,
 kolejność krotek nie ma znaczenia,
 każde pole na przecięciu kolumna/wiersz ma wartość
atomową.
Każda relacja może posiadać zdefiniowane ograniczenia
integralnościowe, które muszą spełniać zawarte w niej
dane.
KLUCZ KANDYDUJĄCY
KLUCZ GŁÓWNY

klucz kandydujący w relacji R jest podzbiorem K
zbioru atrybutów relacji R, mającym własność
jednoznaczności oraz nieredukowalności,

klucz kandydujący to kolumna lub zbiór kolumn,
które mogą stanowić jednoznaczny identyfikator
wierszy w tabeli,

w jednej relacji może być wiele kluczy
kandydujących,


Wyróżniamy ograniczenia:
 klucz podstawowy (PRIMARY KEY),
 klucz obcy (FOREIGN KEY),
 unikalność (UNIQUE),
 zawężenie domeny/dziedziny (CHECK),
 wartość pusta/niepusta (NULL/NOT NULL).

klucz główny jest wybierany ze zbioru kluczy
kandydujących, pozostałe nazywamy
alternatywnymi,

klucz główny zawierający jeden atrybut nazywamy
prostym, zawierający wiele atrybutów złożonym,

klucz główny jest jednoznaczny i nie może mieć
wartości NULL.
przykłady: PESEL, NIP, nr dowodu, nr paszportu.
4
2010-10-21
PRZYKŁAD
KLUCZ OBCY
relacja samochody

klucz alternatywny?
relacja wypadki
Istnieje relacja podstawowa R2. Klucz obcy relacji R2
jest to podzbiór FK, zbioru atrybutów R2, taki że:

istnieje relacja R1 (relacje R1 i R2 nie muszą być różne) z
kluczem kandydującym CK,

i w każdej chwili każda wartość FK w aktualnej wartości
relacji R2 jest taka sama, jak wartość CK w pewnej krotce
aktualnej wartości relacji R1,
klucz główny

klucz obcy
Klucz obcy jest kolumną lub grupą kolumn w tabeli,
która czerpie swoje wartości z tej samej dziedziny co
klucz główny tabeli powiązanej z nią w bazie danych.
klucz główny
POZOSTAŁE OGRANICZENIA
INTEGRALNOŚĆ DANYCH

unikalność (UNIQUE) – niepowtarzalność wartości,


zawężenie domeny/dziedziny (CHECK) - zbiór
wartości domeny atrybutu może być zawężony przez
wyrażenie logiczne do pewnego podzbioru: przedziału
lub wyliczeniowej listy wartości,
np. kolor oczu: szary, niebieski, zielony, piwny;
cena: wartości dodatnie,
wiek: od 0 do 120,
integralność encji – każda tabela musi mieć klucz
główny, a każda kolumna lub kolumny wybrane jako
klucz powinny być jednoznaczne i nie zawierać
wartości null,

integralność referencyjna - baza nie zawiera
żadnych niedopuszczalnych wartości klucza
obcego i narzuca je poprzez tzw. więzy propagacji,

dodatkowa – gdy nie możemy wyrazić wszystkich
aspektów integralności należących do konkretnej
aplikacji, definiujemy więzy.

wartość pusta/niepusta (NULL/NOT NULL) –
dopuszczanie/niedopuszczanie wartości pustej.
5
2010-10-21
ALGEBRA RELACYJNA
SELEKCJA
Algebra relacyjna jest zbiorem operatorów:
 restrykcja (selekcja)
 rzut (projekcja)
 złączenie
 suma
 przecięcie
 różnica
 iloczyn kartezjański
 iloraz

Daje w wyniku relację składającą się ze wszystkich
krotek ze wskazanej relacji, które spełniają określone
warunki.
 Jako argument bierze jedną relację i w wyniku
produkuje jedną relację.
 Może być uważana za „poziomą maszynę do cięcie”,
gdyż wydobywa z relacji wejściowe wiersze spełniające
warunek.
selekcja
SELEKCJA
SELEKCJA - PRZYKŁADY

Notacja: σ<warunki> (< nazwa relacji >)


Warunek restrykcji ma postać
< atrybut >< operator relacyjny >< literał > lub
< atrybut >< operator relacyjny >< atrybut >
SELECT * FROM samochody WHERE rocznik=1980;

Warunki są łączone operatorami logicznymi AND
lub OR


σrocznik= 1980(samochody)
σrocznik= 1980 AND kolor=‘biały’ AND marka=‘mercedes’ (samochody)
SELECT * FROM samochody WHERE rocznik=1980
AND kolor=‘biały’ AND marka=‘mercedes’;
Właściwości: operacja jest komutatywna.
σ<war1>(σ<war2>(R)) = σ<war2>(σ<war1>(R))
6
2010-10-21
RZUT
RZUT
Daje w wyniku relację składającą się ze wszystkich
krotek, które pozostały jako krotki w danej relacji po
usunięciu z niej wskazanych atrybutów.
 Jako argument bierze jedną relację i w wyniku
produkuje jedną relację.
 Może być uważana za „pionową maszynę do
cięcie”, gdyż tworzy na wyjściu relację będącą
podzbiorem kolumn z relacji wejściowej.


Notacja: π<atrybuty>(< nazwa relacji >)

Właściwości: operacja nie jest komutatywna.
Składanie operacji projekcji możliwe jest jedynie
wtedy kiedy lista1 lista2:
π <lista1>(π <lista2>(R)) = π <lista1>(R)
rzut
RZUT

π rejestracja (samochody)
SELECT rejestracja FROM samochody;

π rejestracja, marka, kolor (samochody)
SELECT rejestracja, marka, kolor FROM
samochody;
ZŁĄCZENIE
Daje relację składającą się ze wszystkich
możliwych krotek, będących kombinacjami dwóch
krotek, po jednej z każdej wskazanej relacji, takich,
że dwie krotki dające wkład do którejkolwiek
kombinacji mają tę sama wartość wspólnego
atrybutu (atrybutów) tych dwu relacji.
 Jako argument bierze dwie relacje i w wyniku
produkuje jedną relację,
 Najpowszechniejsze złączenie to złączenie
naturalne – będące rozszerzeniem równozłączenia.

7
2010-10-21
RÓWNOZŁĄCZENIE
Jest iloczynem kartezjańskim, po którym jest
wykonywana restrykcja,
 Łączone są dwie tabele, jednak tylko dla wierszy, w
których wartości w kolumnach złączenia są takie
same,
 Domyślne kolumny złączenia tworzą klucz główny i
obcy tabel.

R1
R2
R3
A1
A2
A3
A4
A
X
X
I
B
X
Y
J
C
Y
Z
K
równozłączenie
ZŁĄCZENIE NATURALNE

Jest iloczynem kartezjańskim, po którym jest
wykonywana restrykcja oraz rzut, w którym nie
bierze się pod uwagę powtórzeń kolumn złączenia.
R1
R2
R3
A1
A2
A3
A4
A
X
X
I
A1
A2
A3
A4
B
X
Y
J
A
X
X
I
C
Y
Z
K
B
X
X
I
C
Y
Y
J
zł. naturalne
A1
A2
A4
A
X
I
B
X
I
C
Y
J
SELECT A1,A2 FROM R1 NATURAL JOIN R2;
SELECT A1,A2 FROM R1 JOIN R2 ON R1.A2=R2.A3;
ILOCZYN KARTEZJAŃSKI
Daje relację składającą się ze wszystkich
możliwych krotek, będących kombinacjami dwóch
krotek, po jednej z każdej wskazanej relacji,
 Jako argument bierze dwie relacje i w wyniku
produkuje jedną relację,
 Jeżeli relacja R ma N krotek, a relacja S ma M
krotek, to relacja wynikowa Q będzie miała N*M
krotek
ILOCZYN KARTEZJAŃSKI

Q
A X
R
A
A Y
S
B
X
C
Y
iloczyn
B X
B Y
C X
C Y
iloczyn
8
2010-10-21
SUMA
SUMA
Daje w wyniku relację składającą się ze wszystkich
krotek, które występują w jednej lub obu wskazanych
relacjach.
 Jako argumenty bierze dwie zgodne (tabele mają
taką samą strukturę – te same kolumny określone w
tych samych dziedzinach) relacje R i S i w wyniku
produkuje jedną relację R S.
 Suma jest operacją komutatywną R S = S R.

Pracownicy_Polska
Pracownicy_Francja
nazwisko
nazwisko
Adam Kowalski
Paweł Koc
Jerzy Tamborski
Matylda Modra
Olga Zalewska
Olga Zalewska
Katarzyna Ferenc
Artur Oniśko
nazwisko
Paweł Koc
Matylda Modra
Olga Zalewska
Artur Oniśko
Adam Kowalski
Jerzy Tamborski
Katarzyna Ferenc
SELECT nazwisko FROM Pracownicy_Polska
UNION
SELECT nazwisko FROM Pracownicy_Francja;
suma
PRZECIĘCIE
Daje w wyniku relację składającą się ze wszystkich
krotek, występujących w obu wskazanych
relacjach,
 Jako argumenty bierze dwie zgodne (tabele mają
taką samą strukturę – te same kolumny określone
w tych samych dziedzinach) relacje R i S i w
wyniku produkuje jedną relację R S,
 Przecięcie jest operacją komutatywną.

PRZECIĘCIE
Pracownicy_Polska
Pracownicy_Francja
nazwisko
nazwisko
Adam Kowalski
Paweł Koc
Jerzy Tamborski
Matylda Modra
Olga Zalewska
Olga Zalewska
Katarzyna Ferenc
Artur Oniśko
nazwisko
Olga Zalewska
SELECT nazwisko FROM Pracownicy_Polska
INTERSECT
SELECT nazwisko FROM Pracownicy_Francja;
przecięcie
9
2010-10-21
RÓŻNICA
RÓŻNICA
Daje w wyniku relację składającą się ze wszystkich
krotek występujących w jednej ze wskazanych
relacji, a nie występujących w drugiej,
 Jako argumenty bierze dwie zgodne relacje R i S i
w wyniku produkuje jedną relację R - S,
 Różnica nie jest operacją komutatywną.

Pracownicy_Polska
Pracownicy_Francja
nazwisko
nazwisko
Adam Kowalski
Paweł Koc
Jerzy Tamborski
Matylda Modra
Olga Zalewska
Olga Zalewska
Katarzyna Ferenc
Artur Oniśko
nazwisko
Adam Kowalski
Jerzy Tamborski
Katarzyna Ferenc
SELECT nazwisko FROM Pracownicy_Polska
MINUS
SELECT nazwisko FROM Pracownicy_Francja;
różnica
ILORAZ
ILORAZ
Bierze dwie relacje, jedną binarną, a drugą unarną i
daje w wyniku relację składającą się ze wszystkich
wartości jednego atrybutu relacji binarnej, które
zgadzają się (pod względem wartości tego drugiego
atrybutu) ze wszystkimi wartościami relacji unarnej.
 Jako argument bierze dwie relacje i w wyniku
produkuje jedną relację.

Pracownicy_Polska
nazwisko
staż_pracy
Adam Kowalski
3
Jerzy Tamborski
4
Olga Zalewska
3
Katarzyna Ferenc
11
Anna Piwot
7
Pracownicy_staż
nazwisko
Adam Kowalski
R1
3
Olga Zalewska
iloraz
10
2010-10-21
W YKŁAD PRZYGOTOWANO NA PODSTAWIE
C. J. Date, Wprowadzenie do systemów baz
danych, WNT, Warszawa, 2000,
 http://wazniak.mimuw.edu.pl/index.php?title=Bazy_
danych
 P. Beynon-Davies, Systemy baz danych, WNT,
2003.

11

Podobne dokumenty