wykl1 8if, Robert Chwastek - Bazy danych


WYKŁAD

BAZY DANYCH

Janusz Zyskowski

Łódź 1998/99


Spis Treści

1. Pojęcie bazy danych i systemu zarządzania bazą danych


  1. Pojęcie bazy danych i systemu zarządzania bazą danych

    1. Pojęcia pomocnicze służące do opisu baz danych

Niech X1×X2×...×Xn := { x :=(x1,x2,...,xn)  xiXi, i=1,2,...,n }. Funkcję zdaniową n - zmiennych określoną na X1×X2×...×Xn oznaczać będziemy przez Φ(x1,x2,...,xn) lub Φ(x).

Definicja. Dla danych zbiorów X1,X2,...,Xn zbiór G X1×X2×...×Xn nazywamy relacją n-członową.

Zbiór punktów xX := X1×X2×...×Xn, dla których funkcja zadaniowa Φ(x1,x2,...,xn) przyjmuje wartość logiczną "prawda" oznaczać będziemy przez { xX | Φ(x1,x2,...,xn) } lub { x | (xX) ∧ Φ(x1,x2,...,xn) }.

Do geometrycznej ilustracji pewnych pojęć przydatne będzie pojęcie hipergrafu.

Definicja. Hipergrafem (skończonym) nazywamy czwórkę uporządkowaną

H:=( X, K, ω, p),

gdzie

X - skończony zbiór (wierzchołki),

K - skończony zbiór (hiperkrawędzie),

ω : KX, (ω(k) - początek hiperkrawędzi ),

p : K → ℘(X), ( p(k) koniec hiperkrawędzi ),

(℘(X) oznacza zbiór wszystkich podzbiorów zbioru X ).

Definicja. Niech R:={ R1, R2,..., RN }, KOL:={ α1, α2,..., αM } i H:=( X, K, ω, p) hipergraf. Hipergrafem etykietowanym nazywamy czwórkę uporządkowaną

HE := ( H, A, ϕ, ψ ),

gdzie ϕ : X R, ψ : KKOL i A:=(R, KOL). Zbiór A nazywany jest alfabetem etykietującym.

W przypadku, gdy funkcja p : K → ℘(X) redukuje się do funkcji p : KX to zamiast nazwy hipergraf (etykietowany ) używać będziemy nazwy graf zorientowany (etykietowany ).

Definicja. Graf T:=( X, K, ω, p) nazywamy drzewem zorientowanym, gdy

Wierzchołek, który nie jest końcem żadnej krawędzi nazywamy korzeniem, a wierzchołek, który nie jest początkiem żadnej krawędzi nazywamy liściem.

Przykład. Niech X:={a,b,c,d,e}, K:={1,2,3,4,5} i funkcje ω : KX i p : K → ℘(X) dane będą w postaci tabelki

k

1

2

3

4

5

ω(k)

a

b

b

b

b

p(k)

{c,d,e}

{a}

{a}

{c,d}

{b}

Hipergraf H:=( X, K, ω, p) można przedstawić graficznie w następujący sposób:

0x08 graphic

5 b 2

3

4 c

d a

1

e

0x08 graphic
0x08 graphic
( Dla uproszczenia rysunków będziemy również używać zamiast ).

Przykład. Niech X:={a,b,c,d,e,f}, K:={1,2,3,4,5} i funkcje ω : KX i p : K → ℘(X) dane będą w postaci tabelki

k

1

2

3

4

5

ω(k)

a

a

b

b

e

p(k)

b

e

c

d

f

0x08 graphic

a

1 2

b e

3 4 5

c d f

Jest to drzewo zorientowane.

    1. Informacje o sposobie opisu baz danych

Proces przechodzenia od świata rzeczywistego do jego informacyjnej reprezentacji w komputerze nazywać będziemy modelowaniem, a pewien dobrze zdefiniowany sposób jego opisu modelem danych, przy czym sposób zapisania wyselekcjonowanych informacji jaka będzie potrzebna użytkownikowi schematem danych. Pomiędzy informacjami mogą występować relacje (też są informacjami ). Zbiór danych (łącznie z relacjami ) nazywać będziemy bazą danych (BD).

Podstawowe fakty świata rzeczywistego, o których wiedza reprezentowana jest w bazach danych:

Przykład. Przy pomocy jedno argumentowej funkcji zdaniowej Φ określonej na zbiorze obiektów:

  1. Φ(x):="x jest studentem";

  2. Φ(x):= "x jest kobietą",

testujących przynależność obiektu do odpowiedniego zbioru, możemy utworzyć zbiory obiektów: STUDENT, KOBIETA.

Środki sprzętowe i oprogramowanie umożliwiające współpracę z bazą danych nazywamy systemem zarządzania bazą danych, (SZBD).

Funkcje systemu zarządzania bazą danych:

  1. opis danych: logiczny i fizyczny;

  1. możliwości korzystania z bazy;

  1. integralność danych - określenie pewnych warunków, które muszą być spełnione w bazie danych, niezależnie od tego, jakie są w niej aktualnie zapisane wartości;

  1. poufność danych - prawa dostępu poszczególnych użytkowników;

  1. współbieżność dostępu - mechanizmy wykrywające sytuacje konfliktowe w przypadku korzystania jednocześnie z BD przez wielu użytkowników i ich rozwiązywanie;

  1. niezawodność.

Przykłady oprogramowania używanego w SZBD:

1. Oracle, Btrieve, Ingres, Informix, Gupta - (UNIX);

2. Access, dBase, Paradox, Approach, FoxPro, SQL Server - (Windows, Windows 95/NT);

3. dBase, Paradox, FoxPro - (DOS).

Poziomy opisu baz danych:

  1. Poziom wewnętrzny - schemat fizyczny określający sposoby organizacji danych w pamięci zewnętrznej.

  2. Poziom pojęciowy - w procesie modelowania tworzenie przez projektanta bazy danych przy pomocy pewnego języka opisu schematu danych ( DDL - Date Description Language ) i ściśle z nim związanego modelu danych schematu pojęciowego.

  3. Poziom zewnętrzny - sposób widzenia danych przez poszczególnych użytkowników.

W zależności od języka opisu schematu danych ( DDL ) i języka manipulowania danymi ( DML - Data Manipulation Language ) wyróżnia się następujące modele danych:

W zależności od organizacji systemu bazy danych można dokonać następujących podziałów:

1. ze względu na rozproszenie:

2. ze względu na liczbę modeli danych:


  1. Pojęcie sieciowego modelu danych

    1. Podstawowe typy jednostek danych

W sieciowym modelu danych wyróżnia się następujące jednostki danych:

Trzy pierwsze wymienione jednostki mogą istnieć tylko jako składowe rekordu.

Ogólna zasada tworzenia rekordu:

0x01 graphic

Jeżeli został zdefiniowany typ rekordu R, to możemy mówić o rekordach typu R powstałych po określeniu wartości poszczególnych pól. Jednostki danych definiowane w obrębie jednego typu rekordu mogą pozostawać ze sobą jedynie w powiązaniach hierarchicznych.

Podstawową jednostką dostępu do bazy danych są rekordy. Dostęp do grupy powtórzeniowej, wektora i danej elementarnej jest tylko wtedy gdy udostępniony jest rekord zawierający żądaną jednostkę danych.

Definicja. Skończony zbiór rekordów typu R nazywamy plikiem i zapisujemy następująco:

F(R) := {r1, r2,..., rN},

przy czym z chwilą włączenia rekordu r do pliku F(R) rekord ten może być rozszerzony o jedno pole nazywane kluczem bazy danych (KBD, database key), którego wartość jest jednoznaczna w całej bazie danych i umożliwia jednoznacznie zidentyfikowanie rekordu w tej bazie danych. W przypadku, gdy rF(R) będziemy również mówić, że r jest wystąpieniem rekordu typu R.

Przykład. Przykład typu rekordu zapisanego w postaci podobnej do deklaracji rekordu w Pascalu:

PRACOWNIK = Record

nr_pracownika : Integer;

nazwisko : String[20];

data_ur : Array[3] of Integer;

liczba_dzieci : Integer;

dziecko : Array[liczba_dzieci] of Record

imię : String[15];

data_ur : String[8];

End;

liczba_wypłat : Integer;

wypłata : Array[liczba_wypłat] of Real;

End;

Danymi elementarnymi w tym przykładzie są: nr_pracownika, nazwisko, liczba_dzieci, imię, data_ur (w rekordzie dziecko), liczba_wypłat. Dziecko jest grupą powtórzeniową złożoną z dwóch danych elementarnych.

Wystąpienie rekordu tego samego typu można zapisać w postaci tabelarycznej:

nr

data

liczba

dziecko

liczba

pracownika

nazwisko

urodzenia

dzieci

imię

data_ur

wypłat

wypłata

1234

Kowalski

45

2

Jan

79.12.23

3

234

12

Anna

83.11.24

654

25

566

lub w postaci tzw. drzewa:

0x08 graphic
PRACOWNIK

1234 Kowalski 2 3

45 12 25 234 654 566

Jan 79.12.23 Anna 83.11.24

    1. Powiązania między rekordami.

Definicja. Niech dane będą dwa typy rekordów R i S i niech XR i XS będą plikami, odpowiednio, typu R i S:

XR := {r1, r2,..., rN},

XS := { s1, s2,..., sM}.

Mówimy, że między rekordami typów R i S istnieje powiązanie, jeśli określone są odwzorowania:

oraz ,

gdzie oznacza zbiór wszystkich podzbiorów zbioru X.

Między rekordami mogą istnieć powiązania sieciowe, tzn. takie, w których jeden rekord może mieć kilka rekordów nadrzędnych (w powiązaniach hierarchicznych może mieć co najwyżej jeden rekord nadrzędny).

W zależności od własności tych odwzorowań wyróżniamy następujące rodzaje powiązań między rekordami typu R i S:

  1. powiązanie jedno-jednoznaczne (1:1) - gdy wartości odwzorowań i są zbiorami jednoelementowymi i co graficznie oznaczamy

0x08 graphic
0x08 graphic

0x08 graphic
R S

  1. powiązanie jedno-wieloznaczne (1:M) - gdy tylko wartość jednego z odwzorowań lub jest zbiorem jednoelementowym i co graficznie oznaczamy

0x08 graphic

R S lub R S

  1. powiązanie wielo-wieloznaczne (N:M) - gdy odwzorowania i nie spełniają warunków z punktów a) i b) i co graficznie oznaczamy

0x08 graphic
0x08 graphic

0x08 graphic
R S

Przykład. Rozważmy następujące typy rekordów: WYKŁAD, WYKŁADOWCA, KOBIETY, MĘŻCZYŹNI. Między rekordami tych typów można określić między innymi następujące powiązania:

  1. KOBIETY, MĘŻCZYŹNI

być małżeństwem - powiązanie 1 - 1;

być rodzeństwem - powiązanie M - N;

  1. WYKŁAD, WYKŁADOWCA

przypisanie wykładowcy wykładu - powiązanie 1 - M;

Wiele SZBD wymaga usunięcia powiązań wielo-wieloznacznych pomiędzy rekordami. Niech dane będzie powiązanie M:N:

0x08 graphic

R S

Tworzymy rekord typu T, nazywany rekordem łącznikowym, tak aby uzyskać diagram postaci:

0x08 graphic

R S

T

Diagram ten nosi nazwę diagramu Bachmana.

Przykład. Rozważmy dwa typy rekordów:

PRACOWNIK( nr, nazwisko ), KURS( nr_kursu, przedmiot )

i dla tego typu rekordów utwórzmy rekord SZKOLENIE( nr, nr_kursu, ocena ). Powiązanie M:N postaci:

0x08 graphic

PRACOWNIK KURS

możemy zastąpić dwoma powiązaniami typu 1:M:

0x08 graphic

PRACOWNIK KURS

SZKOLENIE

Daną ocena nazywamy daną powiązań. Nie można jej dołączyć ani do rekordu PRACOWNIK ani do rekordu KURS.

    1. Pojęcie kolekcji.

Definicja. Niech dane będą typy rekordów R, S1, S2, ... ,Sm spełniające następujące warunki:

  1. Si Sj dla ij;

  2. dla pewnego i, 1≤ i ≤ m, może zachodzić równość R = Si;

  3. dla każdego i, 1≤ i ≤ m, między rekordami typu R i Si istnieje powiązanie 1:M,

0x08 graphic

R Si

Wówczas (R,S1,S2,...,Sm) nazywamy typem kolekcji i jeżeli α jest pewną nazwą przyporządkowaną temu typowi kolekcji to używamy również następującego oznaczenia typu kolekcji α(R,S1,S2,...,Sm). Typ rekordu R nazywamy typem właściciela (owner) kolekcji α, a każdy z typów Si typem podwładnego (member) kolekcji α.

Przedstawienie graficzne typu kolekcji α(R,S1,S2,...,Sm) przy pomocy tzw. hiperdrzewa:

0x08 graphic

R

α

S1 S2 . . . . . . Sm

Przykład.Przykład typu kolekcji pr_dane(PRACOWNIK, PRACA, WYPŁATA, SZKOLENIE, DZIECKO):

0x08 graphic

PRACOWNIK

pr_dane

PRACA WYPŁATY SZKOLENIE DZIECKO

Uwaga. Z powyższego przykładu widać, że zamiast umieszczać niektóre dane w oddzielnych rekordach można by definiować je jako grupy powtórzeniowe w obrębie rekordu PRACOWNIK. W przypadku potrzebnej informacji o wypłatach nie są potrzebne informacje o dzieciach. Zbędne jest więc sprowadzanie całego rekordu.

Definicja. Typ kolekcji nazywamy jednostkową, gdy jest postaci α(R,S), RS i typ rekordu R ma tylko jedno wystąpienie i wystąpienie to jest rekordem pustym.

Definicja. Typ kolekcji nazywamy rekurencyjnym, gdy istnieje i∈{1,2,...,m}, dla którego R=Si.

Przykład. Kolekcją rekurencyjną jest zależność_służbowa( PRACOWNIK, PRACOWNIK ).

0x08 graphic
Przykłady (typów kolekcji).

R

1) α(R,S,T), β(R,U,V),

α β

S T U V

0x08 graphic
2) α(S,R,U), β(R,V,W),

S

α

R U

β

V W

3) α(R,R,S,T), (rekurencyjny) ,

0x08 graphic

R

α

S T

0x08 graphic

4) α(R,T,U), β(S,U,V), R S

α β

T U V

0x08 graphic
5) α(R,S,T), β(R,T,U), R

α β

S T U

Definicja. Niech dana będzie kolekcja α(R,S1,S2,...,Sm) i niech rF(R) będzie wystąpieniem typu właściciela. Wystąpieniem kolekcji typu α z rekordem właściciela r nazywamy zbiór

α(r):={r,s1,s2,...,sL},

gdzie rekordy s1,s2,...,sL, są różne i pochodzą ze zbioru

F(S1) ∪ F(S2) ∪ ... F(Sm),

( dopuszczalne jest α(r)={r} ).

Zbiór wszystkich wystąpień kolekcji typu α(R,S1,S2,...,Sm) oznaczać będziemy:

KOLEKCJA(α) = {α(r1),α(r2),...,α(rN)},

gdzie F(R) := {r1, r2,..., rN}.

Każdy rekord należący do wystąpienia kolekcji jest rekordem właściciela lub jednego z typów podwładnych.

Uwaga. Ponieważ między typem właściciela i każdym z typów podwładnego w kolekcji α istnieje powiązanie 1:M więc jeden rekord każdego typu podwładnego może należeć co najwyżej do jednego wystąpienia kolekcji α. Do wystąpienia tego może należeć wiele rekordów jednego typu podwładnego lub nie należeć żaden.

W zbiorze wystąpień kolekcji α każde wystąpienie jest jednoznacznie wyznaczone przez wskazanie dowolnego rekordu (właściciela lub podwładnego) należącego do tego wystąpienia.

    1. Sieciowa baza danych.

Bazę danych można traktować jako jednostkę danych.

Definicja. Niech dane będą typy rekordów: R1, R2,..., RN, typy kolekcji: α1, α2,..., αM. Wówczas zbiór

BD(R1, R2,..., RN; α1, α2,..., αM) := { R1, R2,..., RN, α1, α2,..., αM }

nazywamy typem bazy danych.

Definicja. Zbiór

STAN(BD):={ F(R1), F(R2),..., F(RN), kolekcja(α1), kolekcja(α2),...,kolekcja(αM) }

nazywamy stanem bazy danych (wystąpieniem).

Definicja. Niech R:={ R1, R2,..., RN } i KOL:={ α1, α2,..., αM }. Diagramem sieciowego schematu bazy danych nazywamy czwórkę uporządkowaną (hipergrafem etykietowanym)

DSCH:=( H, A, ϕ, ψ ),

gdzie H:=( X, K, ω, p) hipergraf, ϕ : X R, ψ : KKOL i A:=(R, KOL) alfabetem etykietującym. W wyniku etykietowania wierzchołkom i krawędziom hipergrafu przypisane są odpowiednio typy rekordów i nazwy kolekcji tworzące alfabet etykietujący.

Przykład. Przykład hipergrafu z § 1.1 użyjemy do utworzenia schematu sieciowej bazy danych. Niech dane będą następujące typy rekordów:

ST:=STUDENT( n_albumu, nazwisko ), PR:=PRACOWNIK( n_pr, nazwisko ),

P:=PRZEDMIOT( n_p, nazwa, n_pr ), SP:=STYPENDIUM( n_albumu,data, wypłata),

EGZ:=EGZAMIN( n_p, n_albumu, ocena), ZAL:=ZALICZENIE( n_p, n_albumu, ocena )

oraz następujące typy kolekcji:

α := α( PR, PR ) - opieka naukowa;

β := β( PR, ST ) - konsultacja pracy dyplomowej;

χ := χ( PR, ST ) - recenzowanie pracy dyplomowej;

δ := δ( ST, EGZ, ZAL, SP ) - przebieg studiów;

η := η( PR, EGZ, ZAL ) - zajęcia dydaktyczne.

Wtedy

typ bazy danych: BD( ST, PR, P, EGZ, ZAL, SP; α, β, γ, δ, η ),

stan bazy danych: STAN(BD)={F(ST),...,F(SP), kolekcja(α), ... ,kolekcja(η) },

diagram schematu bazy danych:

0x08 graphic
α

β

PR

χ

ST

η

δ

EGZ

ZAL

0x08 graphic

SP

    1. Prosta sieciowa baza danych (PSBD).

W PSBD przyjmuje się następujące założenia:

  1. jednostki danych: dana elementarna, rekord (tylko z danymi elementarnymi), kolekcja, baza danych;

  2. typy kolekcji: postaci α(R,S);

  3. typ bazy danych definiuje się tak jak w § 2.4.

Uwaga. Diagram schematu bazy danych ma postać hipergrafu etykietowanego, w którym każdy koniec hiperkrawędzi jest zbiorem jednoelementowym. Gdy funkcja p w definicji hipergrafu jest funkcją różnowartościową to mówimy o modelu hierarchicznym a diagram schematu bazy danych nazywamy drzewem rekordów. Założenie 2) nie jest istotnym ograniczeniem, gdyż każdą kolekcję α(R,S1,S2,...,Sm) można przedstawić jako zbiór kolekcji α1(R,S1), α2(R,S2),...,αm(R,Sm).

Przykład.

1) Przykład bazy, która nie jest modelem hierarchicznym: BD(ST,W,P,O; α, β, γ), α(ST,O), β(W,P), γ(P,O),

0x08 graphic

ST W

α β

O P

2) Przykład bazy, która jest modelem hierarchicznym: BD(W,P,O; β, γ), β(W,P), γ(P,O),

0x08 graphic
0x08 graphic

W

0x08 graphic

β

0x08 graphic

P

0x08 graphic

0x08 graphic
γ

0x08 graphic

O


  1. Pojęcie relacyjnej bazy danych.

    1. Pojęcie relacji znormalizowanej.

Definicja. Niech dany będzie skończony zbiór U := {A1,A2,...,An}, którego elementy nazywać będziemy atrybutami. Niech każdemu atrybutowi AU przyporządkowany będzie zbiór wartości DOM(A) zwany dziedziną atrybutu A, (domeną).

Definicja. Krotką typu U nazywamy dowolną funkcję

0x01 graphic

taką, że dla dowolnego AU, f(A)∈DOM(A). Zbiór wszystkich krotek typu U oznaczamy przez KROTKA(U).

Uwaga. Zbiór KROTKA(U) może zawierać nieskończenie wiele elementów (krotek) np. gdy jeden ze zbiorów DOM(A) jest zbiorem nieskończonym.

Definicja. Relacją typu U nazywamy dowolny skończony podzbiór zbioru KROTKA(U). Zbiór wszystkich relacji typu U oznaczać będziemy przez REL(U).

Przykład. Niech U := {A1,A2,A3}, gdzie

A1 - część złożona samochodu, DOM(A1):= {samochód,silnik,koło},

A2 - część składowa, DOM(A2):= {podwozie,opona,tłok,koło},

A3 - ilość, DOM(A3):= {1,4,5},

A1

A2

A3

Samochód

podwozie

1

Samochód

tłok

4

Samochód

koło

5

koło

opona

1

silnik

tłok

4

Oznaczenia:

Uwaga. Niech zbiór U := {A1,A2,...,An}. Ponieważ krotka r(U) jest funkcją więc można ją przedstawić w postaci tabeli:

U

A1

A2

...

An

r

r(A1)

r(A2)

...

r(An)

Gdy R(U) := {r1, r2,..., rm} to można tą relację przedstawić w postaci tabeli:

U

A1

A2

...

An

r1(A1)

r1(A2)

...

r1(An)

R

...

...

...

...

rm(A1)

rm(A2)

...

rm(An)

Definicja. Wartość a∈DOM(A) nazywamy wartością prostą, gdy nie jest ona zbiorem ani ciągiem elementów należących do 0x01 graphic
.

Przykład. Niech U := {A1,A2,A3}, DOM(A1) := {{c,d}}, DOM(A2) := {c}, DOM(A3) := {d}, 0x01 graphic
= {c,d, {c,d}}. Niech a∈DOM(A1) tzn. a={c,d}. Wartość a nie jest wartością prostą.

Definicja. Mówimy, że relacja R(U) jest relacją znormalizowaną ( pierwszej postaci normalnej -1PN ) gdy dziedziny DOM(A) wszystkich atrybutów AU są zbiorami wartości prostych.

Definicja. Dla danej krotki r(U) i XU krotkę t typu X nazywamy ograniczeniem krotki r(U) do zbioru X gdy (∀AX) ( r(A)= t(A)}. Dla krotki będącej ograniczeniem będziemy używać oznaczenia r(X) lub r[X].

Przykład. Niech U := {A,B,C}, X := {A,C} i r(U) := (a,b,c). Wtedy r[X] = (a,c).

    1. Operacje na relacjach.

Na relacjach definiuje się pewne operacje mnogościowe i relacyjne.

Definicja. Zbiory

  1. T(U) := { t ∈ KROTKA(U) | t R(U) ∨ t S(U) };

  2. T(U) := { t ∈ KROTKA(U) | t R(U) ∧ t S(U) };

  3. T(U) := { t ∈ KROTKA(U) | t R(U) ∧ t S(U) };

  4. T(U):=KROTKA(U)-R(U) , przy czym zbiór KROTKA(U) jest zbiorem skończonym, gdyż w przeciwnym wypadku byłaby sprzeczność z definicją relacji;

nazywamy odpowiednio sumą, różnicą, przekrojem i dopełnieniem do relacji R(U) i oznaczać będziemy przez R(U)∪S(U), R(U)∩S(U), R(U)-S(U) i -R(U). Zauważmy, że definicje te dotyczą relacji tego samego typu.

Definicja. Niech U będzie zbiorem atrybutów, X,YU, r∈KROTKA(X), s∈KROTKA(Y) i Z:=XY. Krotkę t∈KROTKA(Z) nazywamy złączeniem krotki r i s, co oznaczamy t=r0x01 graphic
s, gdy t[X] = r i t[Y ]= s.

Stwierdzenie. Mają miejsce następujące własności:

  1. r 0x01 graphic
    s = s 0x01 graphic
    r,

  2. r[∅] = ε gdzie ε oznacza krotkę pustą,

  3. r 0x01 graphic
    ε = r.

Definicja. Dla danej relacji R(U) oraz zbioru XU relację T(X) nazywamy projekcją R na X, gdy

T = { t ∈ KROTKA(X) | ( ∃ r R ) ( t = r[X] ) }.

Dla projekcji używać będziemy oznaczenia T=R[X].

Stwierdzenie. Jeżeli dana jest relacja R(U) i XU to

R[X] = { t ∈ KROTKA(X) | ( ∃ s ∈ KROTKA(U-X) ) (t 0x01 graphic
s R ) }.

Przykład. Niech U := {A,B,C} i R(U) określona następująco:

R:

A

B

C

a

x

1

b

x

1

a

x

2

c

y

3

Dla X:={B,C} mamy:

R [X]:

B

C

x

1

x

2

y

3

Definicja. Odwzorowanie

0x01 graphic

przyporządkowujące relacjom typu U ich projekcję na X nazywamy operacją projekcji.

Stwierdzenie. Jeżeli R∈REL(U) to

0x01 graphic

Definicja. Niech U := {A1,A2,...,An}, 0x01 graphic
, ⊗∈{ =, ≠, <, >, , }. Elementarnym warunkiem selekcji nazywamy wyrażenia postaci v Ai lub AiAj. Warunkiem selekcji nazywamy:

  1. elementarny warunek selekcji,

  2. wyrażenia postaci: ∼E , E1 E2 lub E1 E2 gdzie E , E1, E2 są warunkami selekcji.

Definicja. Relację T(U) nazywamy selekcją relacji R(U) względem warunku selekcji E, co oznaczamy przez T=R/E/, gdy T = {tR | E(t)=true }.

Przykład. Dla relacji R(U) postaci

R:

A

B

C

D

a

x

1

3

a

y

4

2

c

x

3

3

b

x

2

1

z warunkiem selekcji E := ( C D ( A = a A = b ) ) relacja T=R/E/ jest postaci

T:

A

B

C

D

a

x

4

2

b

x

2

1

Definicja. Odwzorowanie

0x01 graphic

przyporządkowujące relacji typu U jej selekcję względem warunku E nazywamy operacją selekcji.

Definicja. Dla danych relacji R(X) i S(Y) relację

T:={ t ∈ KROTKA(XY) | ( t[X] R ) ∧ ( t[Y] S ) }

typu XY nazywamy złączeniem relacji i oznaczamy przez R 0x01 graphic
S.

Stwierdzenie. Jeżeli dane są relacje R(X) i S(Y) to

R0x01 graphic
S ={ t ∈ KROTKA(XY) | ( ∃ r R ) ( ∃ s S ) ( t = r 0x01 graphic
s ) }.

Przykład. Dla relacji R(X) i S(Y) określonych następująco:

R:

A

B

C

S:

A

B

D

a

x

1

a

x

f

a

x

2

a

y

g

a

y

2

b

x

h

b

y

3

ich złączenie T:=R 0x01 graphic
S jest relacją postaci:

T:

A

B

C

D

a

x

1

f

a

x

2

f

a

y

2

g

{ krotki nowej relacji tworzone są tylko z tych krotek relacji R i S, które na wspólnych atrybutach mają te same wartości }.

Definicja. Odwzorowanie

0x01 graphic
X,Y : REL(X) × REL(Y) → REL(XY)

przyporządkowujące dwóm relacjom typów, odpowiednio X i Y, relację typu XY będącą ich złączeniem nazywamy operacją złączenia.

Stwierdzenie. Dla danych relacji R ,S ,T i X, YU mamy

  1. R 0x01 graphic
    S = S 0x01 graphic
    R,

  2. (R 0x01 graphic
    S ) 0x01 graphic
    T = R 0x01 graphic
    (S 0x01 graphic
    T),

  3. jeżeli XU to R[X] 0x01 graphic
    R = R,

  4. jeżeli XY=U to R R[X] 0x01 graphic
    R[Y],

  5. jeżeli X=Y to R 0x01 graphic
    S = RS,

  6. jeżeli XY=∅ to R 0x01 graphic
    S = R×S.

Przykład. Niech ai aj, bibj, cicj, dla i j, Wtedy dla relacji R określonej następująco:

Ad. 3) U := {A,B}, X := {B}, XU = U,

R:

A

B

R[X]:

B

R[X]0x01 graphic
R:

A

B

a1

b1

b1

a1

b1

a1

b2

b2

a1

b2

a2

b3

b3

a2

b3

Ad. 5) U := {A,B}, X := {A,B}, Y := {A,B}, XY = {A,B},

R:

A

B

S:

A

B

R0x01 graphic
S:

A

B

a1

b1

a2

b2

a2

b2

a2

b2

a3

b3

Ad. 4)

a) U := {A,B,C}, X := {A,B}, Y := {B,C}, XY = {A,B,C},

R:

A

B

C

R[X]:

A

B

R[Y]:

B

C

R[X]0x01 graphic
R[Y]:

A

B

C

a1

b1

c1

a1

b1

b1

c1

a1

b1

c1

a2

b2

c2

a2

b2

b2

c2

a1

b1

c2

a3

b3

c3

a3

b3

b3

c3

a2

b2

c2

a1

b1

c2

b1

c2

a3

b3

c3

  1. U := {A,B,C}, X := {A}, Y := {B,C}, XY = {A,B,C},

R[X]:

A

R[Y]:

B

C

R[X]0x01 graphic
R[Y]:

A

B

C

a1

b1

c1

a1

b1

c1

a2

b2

c2

a1

b2

c2

a3

b3

c3

a1

b3

c3

b1

c2

a2

b1

c1

a2

b2

c2

...

...

...

a3

b3

c3

Ad. 6) X := {A}, Y := {B}, XY = {A,B},

R:

A

S:

B

R0x01 graphic
S:

A

B

a1

b2

a1

b2

a2

b3

a2

b2

a1

b3

a2

b3

Definicja. Dla danej relacji R(U) i zbioru XU relację T(U-X) nazywamy podzieleniem relacji R przez zbiór X, co oznaczamy przez T=R/X, gdy

T={ t ∈ KROTKA(U-X) | ( ∀ s ∈ KROTKA(X) ) ( t0x01 graphic
sR ) },

{ krotka t typu U-X należy do R/X, gdy dla każdej krotki s typu X złączenie krotek t i s jest krotką należącą do R}.

Przykład. Niech U:={A,B), X:={B}, U-X = {A} zbiory DOM(A):={1,2,3}, DOM(B):={a,b,c}. Wtedy T:=R/{B} dla relacja R(U) określonej następująco:

R:

A

B

T:

A

1

a

1

2

b

1

b

1

c

3

c

Niech 1,2,3 oznacza numer studenta i a,b,c nazwę przedmiotu. Niech (n,p) ∈ R(U) oznacza, że student n zdał egzamin z przedmiotu p. Zatem nT, gdy student n zdał wszystkie egzaminy.

Definicja. Odwzorowanie

0x01 graphic

które relacji typu U przyporządkowuje relację będącą wynikiem podzielenia przez zbiór X nazywamy operacją dzielenia.

Twierdzenie. Jeżeli dana jest relacja R(U), XU i KROTKA(U) jest zbiorem skończonym to

R/X = -(-R )[-X ], 0x01 graphic

gdzie " - " oznacza operację dopełnienia tzn. -X := U-X, -R(U) := KROTKA(U)-R(U).

Dowód. Ponieważ

(-R)[-X] = { t∈KROTKA(U-X) | (∃s∈KROTKA(X)) (t0x01 graphic
s ∈ (-R) ) }

i prawdą jest, że jeżeli A={ t | Φ(x) } to -A={ t | ∼Φ(x) }, więc

-(-R)[-X] = { t∈KROTKA(U-X) | ∼ (∃s∈KROTKA(X)) (t0x01 graphic
s ∈ (-R) ) }=

{ t ∈ KROTKA(U-X) | (∀ s ∈ KROTKA(X) ) (t0x01 graphic
s R ) } = R/X .

ÿ

Definicja. Dla danych relacji R(U) i S(X), XU relację T(U-X) nazywamy podzieleniem relacji R przez relację S, co oznaczamy przez T = R:S, gdy

T = { tR [U-X] | ( ∀ s S ) (t0x01 graphic
s R ) }.

Stwierdzenie. Dla relacji R(U), S(X), XU

R:S = { tR [U-X] | ( SR(t,X) ) },

gdzie

R(t,X) := { sR[X] | (t0x01 graphic
s R ) }.

Dowód. Wystarczy wykazać, że ( ∀ s S ) (t0x01 graphic
s R ) ⇔ SR(t,X) ). Przypuśćmy, że jest prawdziwa lewa strona równoważności i prawa fałszywa. Wtedy (∃sS) (sR(t,X)) tzn. t0x01 graphic
sR, co jest sprzeczne z założeniem. Przypuśćmy teraz, że prawdziwa jest prawa strona i lewa fałszywa. Wtedy (∃sS) (t0x01 graphic
s R ) tzn. s R(t,X), co jest sprzeczne z założeniem o prawdziwości prawej strony.

ÿ

Przykład. Niech U := {A,B}, X := {B }, U-X = {A} oraz

R:

A

B

S:

B

T=R:S :

A

1

a

a

1

2

b

i

b

.Wtedy

1

b

c

1

c

3

c

{ Różnica między R/X i R:S polega na tym, że w przypadku R/X mówimy o wszystkich "wartościach" atrybutu B a w przypadku R:S o "wartościach" atrybutu B o których informacje zawarte są w relacji S}.

Uwaga. Ostatnie stwierdzenie daje możliwość stworzenia pewnego algorytmu wyznaczania relacji T(U-X) := R(U):S(X).

Uwaga. Operacje mnogościowe i relacyjne zdefiniowane w 3.2 tworzą zbiór operacji algebry relacji. Operacje te wykorzystuje się do

  1. tworzenia języków manipulowania danymi;

  1. badania zależności między danymi;

  1. projektowania schematu logicznego relacyjnych baz danych.

    1. Zależności funkcyjne.

Definicja. Niech U będzie zbiorem atrybutów i X,YU. Mówimy, że istnieje zależność funkcyjna między zbiorami X i Y, co oznaczamy XY, gdy w każdej relacji R(U) ⊂ KROTKA(U) istnieje pewna funkcja R[X]→ R[Y], (przy różnych relacjach R(U) funkcje te mogą być różne). Gdy X = { A1, A2..., An } i Y = { B1, B2..., Bm }, gdzie Ai, Bi oznaczają pojedyńcze atrybuty z U, to będziemy również używać oznaczenia A1A2...AnB1B2...Bm.

Definicja. Dla danej relacji R(U), X,YU, mówimy że w R spełniona jest zależność funkcyjna XY, gdy

() (∀ r1,r2R ) [ ( r1(X)=r2(X) ) ⇒ ( r1(Y)=r2(Y) ) ].

Przykład. Niech U := {nr_Indeksu,Nazwisko_studenta,nr_Przedmiotu,Ocena} i relacja R(U) określona następująco:

R:

I

N

P

O

1

a

101

3

1

a

102

4

2

b

101

3

3

c

101

3

W relacji R(U) spełnione są następujące zależności funkcyjne: IN , IPO. Zauważmy, że dla zbiorów {P} i {O} warunek z (∗) jest również spełniony, ale między tymi zbiorami nie istnieje zależność funkcyjna. Istotnie, po dodaniu krotki (3, c, 102, 3) warunek z (∗) nie będzie spełniony.

Definicja, ( założenie o relacji uniwersalnej ). Dla danego zbioru atrybutów U istnieje jedna relacja R(U), a wszystkie inne relacje typu X, XU uzyskuje się z R w wyniku operacji projekcji. Relację R nazywamy relacją uniwersalną.

Uwaga. Przyjęcie założenia o relacji uniwersalnej pozwala mówić o istnieniu uniwersalnego zbioru zależności funkcyjnych na zbiorze U. W dalszej części będziemy przyjmowali, że zbiór U spełnia założenie o relacji uniwersalnej.

    1. Aksjomaty Armstronga.

Przykład. Niech U:={Przedmiot, nr_Indeksu, Ocena,nr_Egzaminatora, Godzina_egzaminu, Sala}. Na tym zbiorze atrybutów można określić np. następujący zbiór zależności funkcyjnych:

F := { PGS, GSP, PIO, GIPS, PGSE }.

Zamiast zależności funkcyjnej PGS można wprowadzić dwie zależności PG i PS. Poza tym np. z zależności PGS wynika zależność PEGS.

Problem. Czy można rozpatrywać zależności funkcyjne ( w tym wyprowadzanie nowych ) bez odwoływania się do relacji ? (Odpowiedzi udzielił Armstrong).

Aksjomaty Armstronga. Niech U będzie zbiorem atrybutów i niech

F ⊂ { X Y | ( X U ) ∧ ( Y U ) }.

Przez F+ oznaczmy najmniejszy (ze względu na relację zawierania) zbiór zależności funkcyjnych, który zawiera zbiór F i dla dowolnych X,Y,ZU spełnia następujące aksjomaty:

  1. ( YX ) ⇒ [ (X Y ) ∈ F+ ], (zwrotność);

  1. [ (X Y ) ∈ F+ ] ⇒ [ (XZ YZ ) ∈ F+ ], (poszerzalność);

  1. [ (X Y ) ∈ F+ ∧ (Y Z ) ∈ F+] ⇒ [ (X Z ) ∈ F+ ], (przechodniość).

Zbiór F+ nazywamy najmniejszym domknięciem zbioru F.

Twierdzenie. Układ aksjomatów Armstronga jest niesprzeczny, tzn., że istnieje relacja typu U w której aksjomaty F1-F3 są prawdziwe.

Dowód. Pokażemy, że relacją tą jest dowolna relacja typu U. Twierdzenie będzie udowodnione, jeżeli pokażemy, że każda zależność funkcyjna (X Y ) ∈ F+ jest spełniona w każdej relacji typu U, w której spełnione są wszystkie zależności funkcyjne ze zbioru F.

Ad. F1). Nie może istnieć relacja R(U), dla której przy YX istnieją r1,r2R takie, że (r1(X)=r2(X)) ∧ (r1(Y)≠r2(Y)).

Ad. F2). Przypuśćmy, że istnieje relacja R(U), w której spełniona jest zależność funkcyjna XY i istnieje Z, takie że nie jest spełniona zależność funkcyjna XZYZ. Wtedy istnieją dwie krotki r1,r2R, dla których

( r1(XZ) = r2(XZ) ) ∧ ( r1(YZ) ≠ r2(YZ) ).

Skąd wynika, że

(r1(Z) = r2(Z)) ∧ (r1(X) = r2(X)) ∧ (r1(Y) ≠ r2(Y)),

co jest sprzeczne z faktem, że w R(U) spełniona jest zależność funkcyjna XY.

Ad. F3). Niech zależności funkcyjne XY i YZ będą spełnione w R(U). Korzystając z prawa ((pq)∧(qr)) ⇒ (pq) do zdania

[ ( r1(X)=r2(X) ) ⇒ ( r1(Y)=r2(Y) )] ∧ [ ( r1(Y)=r2(Y) ) ⇒ ( r1(Z)=r2(Z) ) ]

otrzymamy ( r1(X)=r2(X) ) ⇒ ( r1(Y)=r2(Y) ) co oznacza, że w R(U) spełniona jest zależność funkcyjna XZ.

ÿ

Twierdzenie. Niech F będzie zbiorem zależności funkcyjnych określonych na U i niech X,YU. Zależność funkcyjna XY należy do F+ wtedy i tylko wtedy, gdy

YX+:= { AU | (X A ) ∈ F+ }.

( Zbiór X+ nazywamy domknięciem zbioru X względem zbioru F ).

Dowód. 1) Niech YX+ tzn. Y:={A1,A2,..., Ak) i (∀i) [(XAi )∈F+]. Z aksjomatów F2 i F3 wynika prawdziwość implikacji

[ (X Z ) ∈ F+ ∧ (X Y ) ∈ F+] ⇒ [ (X YZ ) ∈ F+ ].

Istotnie

0x01 graphic
.

Zatem

[ ( X A1 ) ∈ F+ ∧ ( X A2 ) ∈ F+ ] ⇒ [ ( X A1 A2 ) ∈ F+ ],

[ ( X A1 A2 ) ∈ F+ ∧ ( X A3 ) ∈ F+ ] ⇒ [ ( X A1 A2 A3 ) ∈ F+ ],

........................................................................................

[ ( X A1 A2 ...Ak-1 ) ∈ F+ ∧ ( X Ak ) ∈ F+ ] ⇒ [ ( X A1 A2 ...Ak-1Ak ) ∈ F+ ],

co oznacza, że ( XY )∈F+.

2) Niech (XY)∈F+ i niech Y:={A1,A2,..., Ak). Dla dowolnego atrybutu AiY z aksjomatu F1 wynika, że (YAi)∈F+. Z aksjomatu F3 otrzymamy

[ ( X Y ) ∈ F+ ∧ ( Y Ai ) ∈ F+ ]⇒ [ ( X Ai ) ∈ F+ ].

Wobec dowolności wyboru Ai mamy, że (∀Ai) [(XAi)∈F+] tzn. YX+.

ÿ

Twierdzenie. Jeżeli dla danego zbioru zależności funkcyjnych F zależność XY nie należy do F+ to istnieje relacja R(U), w której spełnione są wszystkie zależności funkcyjne ze zbioru F+ i nie jest spełniona zależność XY.

Dowód. Niech F będzie zbiorem zależności funkcyjnych określonych na U i niech (XY)∉F+, X,YU.

Rozważmy relację

R:

X+

U-X+

1

1

...

1

1

1

1

...

1

1

1

1

...

1

1

0

0

...

0

0

Pokażemy, że wszystkie zależności z F+ są spełnione w R. Przypuśćmy, że (VW)∈F+ i nie jest spełniona w R. Jest to możliwe tylko wtedy gdy VX+ i jednocześnie WX+. Ponieważ VX+, więc na podstawie poprzedniego twierdzenia (XV)∈F+. Ponieważ z założenia (VW)∈F+, więc na podstawie aksjomatu F3, (XW)∈F+. Zatem, ponownie korzystając z poprzedniego twierdzenia, WX+, co jest sprzeczne z założeniem, że WX+. Wykazaliśmy więc, że jeżeli (VW)∈F+ to jest ona spełniona w R.

Wykażemy teraz, że jeżeli (XY)∉F+ to zależność XY nie jest spełniona w R. Przypuśćmy, że XY jest spełniona w R. Zatem YX+ i z poprzedniego twierdzenia otrzymamy, że (XY)∈F+, co jest sprzeczne z założeniem.

ÿ

Stwierdzenie, (wynikające z aksjomatów Armstronga).

  1. [ (X Y ) ∈ F+ ∧ (YW Z ) ∈ F+] ⇒ [ (XW Z ) ∈ F+ ],

  1. [ (X Y ) ∈ F+ ∧ (X Z ) ∈ F+] ⇒ [ (X YZ ) ∈ F+ ],

  1. [ (X YZ ) ∈ F+ ] ⇒ [ (X Y ) ∈ F+ ∧ (X Z ) ∈ F+ ].

Definicja. Niech dany będzie zbiór zależności funkcyjnych F określonych na U. Najmniejszy podzbiór F0 zbioru F+, ( F0F+ ), taki że F0+=F+ nazywamy minimalnym generatorem zbioru F+. Jeżeli ponadto wszystkie zależności (XY) ∈ F0 są takie, że X jest możliwie najmniejszym podzbiorem U, a Y pojedyńczym atrybutem należącym do U, to F0 nazywamy minimalnym zredukowanym generatorem zbioru F+.

Przykład. Niech U := { P,I,O,E,G,S } i F := { PGS, GSP, PIO, GIPS, PGSE }. Przykładami minimalnych zredukowanych generatorów całego zbioru F+ są:

  1. F01 := { PG, PS, GSP, PIO, GIP, PE },

  2. F02 := { PG, PS, GSP, PIO, GIS, PE }.

Uwaga. Zredukowane generatory nie muszą być wyznaczone jednoznacznie.

Zadanie. Dla zbior*w U := { A, B, C } i F := { ACB, BC } wyznaczyć zbi*r F+ i minimalne generatory zbioru F+.

    1. Schemat relacyjny i jego związek z relacją.

Definicja. Niech dla danego zbioru atrybutów U F będzie zbiorem zależności funkcyjnych określonych na U. Parę uporządkowaną

R:=( U, F )

nazywamy schematem relacyjnym o zbiorze atrybutów U i ze zbiorem zależności F.

Definicja. Mówimy, że relacja R jest przypadkiem schematu relacyjnego R:=(U,F), (lub, że jej schematem jest R ), gdy R jest relacją typu U i spełniona jest w niej każda zależność funkcyjna (XY)∈F. Zbiór wszystkich relacji R o schemacie R oznaczać będziemy przez INST(R).

Definicja. Dla danego schematu relacyjnego R:=(U,F) i XU schemat relacyjny Π:=(X,G) nazywamy projekcją schematu R na zbiór X, co oznaczamy przez Π=R[X], gdy

G+ = { (Y Z ) ∈ F+ | YZX }+,

tzn. G jest podzbiorem zbioru tych zależności ze zbioru F+, w których występują tylko atrybuty ze zbioru X.

Przykład. Dla R:=({P,I,O,E,G,S}, {PGSE, GSP, PIO, GIP}) mamy R[{I,O,G,S }]:= ({I, O, G, S},{IGSO}). Zauważmy, że gdyby w definicji zbioru G+ nie było domknięcia F+ to otrzymalibyśmy zbiór pusty.

Definicja. Dla schematów relacyjnych R:=(X,F) i S:=(Y,G) schemat Π:=(Z,H) nazywamy złączeniem schematów R i S, co oznaczamy przez Π=R0x01 graphic
S, gdy Z=XY i H=FG.

    1. Rozkładalność schematów relacyjnych.

Definicja. Mówimy, że schemat relacyjny R:=(U,F) jest rozkładalny bez straty danych na dwa schematy R[X] i R[Y], gdy

  1. XY = U,

  1. (∀ R ∈ INST(R ) ) ( R = R[X]0x01 graphic
    R[Y] ).

Twierdzenie. Schemat relacyjny R:=(U,F) jest rozkładalny bez straty danych na schematy R[XY] i R[XZ], XYZ=U, YZ=∅ wtedy i tylko wtedy, gdy (XY)∈F+ lub (XZ)∈F+ tzn., gdy dla każdej relacji R o schemacie R:=(U,F) mamy

( R=R[XY]0x01 graphic
R[XZ] ) ⇔ [ (XY)∈F+ ∨ (XZ)∈F+ ].

{ Warunek wystarczający można udowodnić jeżeli (XY)∈F+ lub (XZ)∈F+ zastąpimy (XY)∈F }.

Przykład. Relacja EGZ(U), U:={I, N, P, O}, gdzie

EGZ:

I

N

P

O

10

f

a

3

10

f

b

4

11

g

a

3

12

h

a

3

jest przypadkiem schematu relacyjnego E:=( {I, N, P, O}, {IN, IPO} ). W zależności od wyboru zbioru zależności funkcyjnych jako podstawy rozkładu relację tą można rozłożyć bez straty danych na dwa sposoby:

a)

E1:

I

N

E2:

I

P

O

10

f

10

a

3

11

g

10

b

4

12

h

11

a

3

12

a

3

b)

E3:

I

P

O

E4:

I

P

N

10

a

3

10

a

f

10

b

4

10

b

f

11

a

3

11

a

g

12

a

3

12

a

h

W obydwu przypadkach mamy: EGZ=E10x01 graphic
E2, EGZ=E30x01 graphic
E4.

Definicja. Mówimy, że schemat relacyjny R:=(U,F) jest rozkładalny bez straty zależności na dwa schematy R1:=(X,G), R2:=(Y,H), gdy

  1. XY = U,

  2. F+ = ( GH )+.

Przykład. Dla schematu relacyjnego

R := ( { A, B, C, D }, { A B , BC D , D B , D C } ) = ( U, F )

rozważmy następujące schematy:

R1 := ( { A, B }, { A B } ), R2 := ( { B, C, D }, { BC D , D B , D C } ),

będące rozkładami schematu R bez straty zależności. Rozkład ten nie jest jednak rozkładem bez straty danych. Istotnie, rozważmy relację R∈INST(R) postaci:

R:

A

B

C

D

a

b

c

d

a1

b

c1

d1

a2

b

c1

d1

Wówczas relacje R1:=R[AB] i R2:=R[BCD] mają postać:

R1:

A

B

R2:

B

C

D

a

b

b

c

d

a1

b

b

c1

d1

a2

b

i RR10x01 graphic
R2. Zauważmy, że zależności BA i BCD nie należą do F+, tzn. nie są spełnione założenia twierdzenia o warunku koniecznym i dostatecznym rozkładalności bez straty danych.

Sposób rozkładu bez straty danych i bez straty zależności podaje następna definicja.

Definicja. Mówimy, że schemat relacyjny R:=(U,F) jest rozkładalny na dwie składowe niezależne S:=(X,G) i T: = (Y,H), gdy

  1. XY = U,

  1. F+ = ( GH )+,

  1. (∀ R ∈ INST(R) ) ( R = R[X]0x01 graphic
    R[Y] ).

Twierdzenie. Schemat relacyjny R:=(U,F) jest rozkładalny na dwie składowe niezależne S[X]:=(X,G) i T[Y]:=(Y,H), X,YU, XY=U, XY≠∅, wtedy i tylko wtedy, gdy:

  1. F+ = ( GH )+,

  1. [( XYX ) ∈ F+ ] ∨ [ ( XYY ) ∈ F+ ].

    1. Normalizacja schematów relacyjnych do drugiej postaci normalnej (2PN).

Definicja. Mówimy, że zbiór KU jest kluczem dla schematu relacyjnego R:=(U,F), gdy spełnia warunki:

  1. ( KU ) ∈ F+,

  1. (∀ X U ) ( [ ( XU ) ∈ F+ ] ⇒ [ ∼ ( XK ) ] ).

Elementy zbioru K nazywamy atrybutami kluczowymi.

Przykład. Dla schematu relacyjnego E:=( {I, N, P, O}, {IN, IPO} ) warunek a) definicji spełniają zbiory {I, P}, {I, N, P}, {I, N, P, O}. Warunek b) spełnia zbiór {I, P} i ten zbiór jest kluczem schematu R.

Uwaga. Schemat relacyjny może posiadać wiele kluczy. Jeden z nich nazywamy kluczem głównym, (primary key).

Definicja. Niech X,YU i XY=∅. Mówimy, że Y jest w pełni funkcyjnie zależny od X, gdy istnieje zależność funkcyjna XY i nie istnieje zależność z żadnego podzbioru właściwego zbioru X w Y.

Definicja. Schemat relacyjny R := (U,F) jest w drugiej postaci normalnej (2PN), gdy każdy niekluczowy atrybut AU jest w pełni zależny od każdego klucza tego schematu.

Przykład. Schemat relacyjny E:=( {Indeks, Nazwisko, Kierunek, Adres, Przedmiot, Ocena}, {INAK, IPO }) z kluczem K:={I, P} nie jest w 2PN, bo np. niekluczowy atrybut N jest zależny funkcyjnie tylko od { I } ⊂ K. Niech E będzie relacją o schemacie E określoną następująco:

E:

I

N

A

K

P

O

10

f

x

mat

a

3

10

f

x

mat

b

4

11

g

y

inf

a

3

12

h

x

inf

a

3

10

f

x

mat

c

5

W relacji tej można zauważyć następujące anomalia:

Dla każdej relacji E∈INST(E) mamy E=E[INKA]0x01 graphic
E[IPO] tzn. uzyskaliśmy dwa schematy relacyjne E1:=({I, N, K, A}, {INAK}) i E2:=({I, P, O}, {IPO}) odpowiednio z kluczami {I} i {I,P}. Jest to rozkład bez straty danych. Relację E można zastąpić dwiema relacjami:

E1:

I

N

A

K

E2:

I

P

O

10

f

x

mat

10

a

3

11

g

y

inf

10

b

4

12

h

x

inf

11

a

3

12

a

3

10

c

5

Każdy z tych rozkładów jest w 2PN.

Stwierdzenie. Jeżeli każdy klucz schematu jest zbiorem jednoelementowym to schemat jest w 2PN.

    1. Normalizacja schematów relacyjnych do trzeciej postaci normalnej (3PN).

Definicja. Zbiór atrybutów Z jest tranzytywnie zależny od zbioru X, gdy

  1. XZ = ∅,

  2. (∃YU) { (YX = ∅ ∧ YZ = ∅) ⇒ [ (XY )∈F+ ∧ (YX)∉F+ ∧ (YZ)∈F+] }.

0x08 graphic
X

Y

Z

(XY )∈F+ ∧ (YX)∉F+ (YZ)∈F+

Definicja. Schemat relacyjny R:=(U,F) jest w trzeciej postaci normalnej (3PN), gdy jest w 2PN i każdy zbiór niekluczowych atrybutów ZU nie jest tranzytywnie zależny od każdego zbioru atrybutów X będącego kluczem tego schematu.

Przykład. Schemat relacyjny E:=({Wykonawca,Adres,Projekt,Data_zakończenia}, {WAPD, PD}) z kluczem K:={W} jest w 2PN. Niech E będzie relacją o schemacie E określoną następująco:

E:

W

A

P

D

30

x

a

f

40

y

a

f

50

y

b

g

60

z

c

f

Ponieważ WPPD to WD tzn. zbiór {D} jest tranzytywnie zależny od zbioru {W}. W relacji tej można zauważyć następujące anomalia: dołączania, aktualizacji i usuwania. Dla każdej relacji E∈INST(E) mamy E=E[WAP]0x01 graphic
E[PD] tzn. uzyskamy dwa schematy relacyjne E1:=( {W, A, P}, {WA, WP} ) i E2:=( { P, D}, {PD} ), przy czym każdy z nich jest 3PN. Jest to rozkład bez straty danych. Relację E można zastąpić dwiema relacjami:

E1:

W

A

P

E2:

P

D

30

x

a

a

f

40

y

a

b

g

50

y

b

c

f

60

z

c

Uwaga. W każdym schemacie będącym w 3PN między atrybutami niekluczowymi nie ma zależności funkcyjnych.

Zadanie. Sprawdzić, czy schemat relacyjny E:=( {A, B, C}, {ABC, CA} ) jest w 3PN.

    1. Normalizacja schematów relacyjnych do postaci normalnej Boyce'a-Codda (PNB-C).

Definicja. Schemat relacyjny R:=(U,F) jest w postaci normalnej Boyce'a-Codda, (PNB-C), gdy z istnienia zależności funkcyjnej (XY )∈F+, YU-X, wynika, że (XU )∈F+.

Uwaga. Każdy schemat w PNB-C jest w 3PN.

Przykład. Schemat relacyjny E:=( {Student, Przedmiot, Wykładowca}, {WP, SPW} ) z kluczem K:={S,P} nie jest w PNB-C, bo mimo, że WP F+, to nie istnieje zależność WU.

Niech E będzie relacją o schemacie E określoną następująco:

E:

S

P

W

10

a

x

11

a

x

10

b

y

11

b

z

W relacji E występują anomalia usuwania i dołączania. Nie można dołączyć wykładowcy i przedmiotu jeżeli brak chociaż jednego studenta uczęszczającego na wykład. Nie można również usunąć ostatniego studenta uczęszczającego na dany przedmiot.

Schemat E można rozłożyć na dwa schematy relacyjne E1:=( {W, P}, {WP} ) i E2:=( { W, S}, ∅), z których każdy jest w PNB-C. Wtedy relację E można przedstawić w postaci:

E1:

W

P

E2:

W

S

x

a

x

10

y

b

x

11

z

b

y

10

z

11

Ponieważ 0x01 graphic
, więc rozkład ten jest rozkładem bez straty danych, ale nie jest rozkładem bez straty zależności, bowiem {WP, SPW}+ ≠ {{WP} ∪ ∅ }+. Nie jest możliwe dopisanie krotki (z,10) do relacji E2, bowiem wykładowca z prowadzi wykład z przedmiotu b, a student 10 uczęszcza na ten przedmiot do wykładowcy y.

    1. Zależności wielowartościowe.

Definicja. Niech X,YU, Z := U - XY. Mówimy, że istnieje zależność wielowartościowa między zbiorami X i Y, co oznaczamy przez X →>Y, gdy dla każdego zbioru KROTKA(U) istnieje pewna funkcja ω : KROTKA(X)→℘(KROTKA(YZ)), gdzie ℘(KROTKA(YZ)) oznacza zbiór wszystkich podzbiorów zbioru KROTKA(YZ), taka, że jeżeli do zbioru ω( KROTKA(X)) należą krotki ( y, z ) i (y′, z′ ), to należą również krotki ( y′, z ) i (y, z′ ).

Definicja. Niech dana będzie relacja R(U), X, YU i Z := U - XY. Mówimy, że w R spełniona jest zależność wielowartościowa X →> Y, gdy spełniony jest jeden z równoważnych warunków:

0x01 graphic

  1. 0x01 graphic

Uwaga. Każda zależność funkcyjna jest zależnością wielowartościową.

Uwaga. Zależności →> U i →> ∅ spełnione są w każdej relacji R(U). Nazywamy je trywialnymi zależnościami wielowartościowymi.

Przykład.

a)

E:

P

D

Z

R

→> D

a

x

10

1983

P →> ZR

a

y

10

1983

a

x

15

1984

a

y

15

1984

b

z

12

1983

b

z

16

1984

b)

E1:

P

D

E2:

P

Z

R

a

x

a

10

1983

a

y

a

15

1984

b

z

b

12

1983

b

16

1984

→> D P­ →> ZR .

    1. Aksjomaty zależności wielowartościowych.

Definicja. Niech U będzie zbiorem atrybutów i M ⊂ { →> Y | XUYU }. Przez oznaczmy najmniejszy (ze względu na relację zawierania ) zbiór zależności wielowartościowych takich, że M ⊂ i dla spełnione są następujące aksjomaty:

M0. ( zwrotność ),

M1. ( dopełnialność ),

M2. ( poszerzalność ),

M3. ( przechodniość ),

M4. ( pseudo-przechodniość ),

M5. ( addytywność ),

M6. ( dekompozycja ).

Uwaga. Między zależnościami funkcyjnymi i wielowartościowymi zachodzą następujące związki:

FM1.

FM2.

Definicja. Dla zbioru atrybutów U i zbiorów F i M, ( zakładamy, że zbiór M nie zawiera zależności funkcyjnych), parę

R := ( U, F M )

nazywamy schematem relacyjnym i mówimy, że relacja R jest przypadkiem schematu relacyjnego R jeśli jest relacją typu U oraz każda zależność funkcyjna i wielowartościowa jest spełniona w R.

    1. Czwarta postać normalna, (4PN).

Definicja. Mówimy, że schemat relacyjny R := ( U, F M ) jest w 4PN gdy

Przykład. Dla schematu relacyjnego

R := ( { P, D, Z, R }, {DP, PRZ, P →> D, })

i relacji E z przykładu z * 3.10 rozważmy dwa schematy

R1 := ( { P, D }, {DP }), R2 := ( { P, Z, R }, { PRZ }).

Wtedy relacje E1 i E2 z tego przykładu są w 4PN.

    1. Schemat relacyjnej bazy danych.

Definicja. Schematem relacyjnej bazy danych nazywamy zbiór wszystkich schematów relacyjnych występujących w danej bazie danych.

Algorytm tworzenia schematu relacyjnej bazy danych:

  1. Określamy jeden schemat relacyjnej bazy danych { R := ( U, F ) }, gdzie U jest zbiorem wszystkich atrybutów występujących w bazie danych, przy czym zbiór U dobieramy w taki sposób aby można było na zbiorze U określić zależności funkcyjne.

  2. Rozkładając schemat relacyjny R na schematy Ri := ( Ui , Fi ), i = 1,2,..,n otrzymamy schemat bazy danych := { Ri := ( Ui , Fi ) | i = 1,2,..,n }.


  1. Projektowanie schematu bazy danych

    1. Równoważność schematów.

Niech dane będą następujące schematy baz danych:

1 := { R := ( U, F ) },

2 := { Ri := ( Ui , Fi ) | i = 1,2,..,n }, U 0x01 graphic
(n ≥ 2).

Wprowadzimy definicje równoważności schematów 1 i 2.

Definicja. Mówimy, że schematy 1 i 2 są EQ1-równoważne, gdy dla każdej relacji R∈INST(1) 0x01 graphic

Definicja. Mówimy, że schematy 1 i 2 są EQ2-równoważne, gdy

.

Definicja. Mówimy, że schematy 1 i 2 są EQ3-równoważne, gdy są EQ1 i EQ2-równoważne.

Uwaga. Rozkład 2 EQ1-równoważny rozkładowi 1 jest rozkładem bez straty danych a EQ2-równoważny bez straty zależności.

Przy rozkładach schematów baz danych wymaga się zazwyczaj aby każdy z wynikowych schematów był w 3PN (4PN) i aby liczba ich była jak najmniejsza. Przedstawione zostaną następujące metody projektowania schematu baz danych: