background image

POJĘCIE BAZY DANYCH  

Czym jest baza danych? 

 

pamięć  trwała  danych  –  duży  zbiór  zawierający  istotne  dane  z  punktu  widzenia 
użytkownika,  te  same  dane  mogą  znajdować  wiele  zastosowań,  mogą  być  wykorzystywane 
przez wielu użytkowników 

 

określona  struktura  i  reguły  integralności  –  zbiór  danych  jest  zorganizowany  zgodnie  z 
pewną strukturą wewnętrzną zgodą z wybranym modelem danych; struktura danych musi 
pozwalać  na  reprezentowanie  istotnych  dla  użytkownika  cech  charakterystycznych  danych 
za  pomocą  wybranych  własności  (wartości  atrybutów);  struktura  bazy  danych  musi 
zapewniać reprezentowanie powiązań (związków) pomiędzy danymi 

(Zbiór danych zorganizowanych zgodnie z pojęciową strukturą opisującą charakterystyki tych 
danych oraz związki między ich elementami, stosowany w jednym lub wielu zastosowaniach.) 

Struktura bazy danych powinna umożliwiać: 

 

niezawodność zapisu danych na zewnętrznym nośniku  

 

integralność danych (spójność danych) 

 

sprawność zapytań (selektywny dostęp do danych) 

System zarządzania bazą danych (SZBD)  

Z  uwagi  na  specjalną  strukturę  zbioru  bazy  danych  konieczny  jest  SZBD  do  jej  obsługi.  System 
Zarządzania  Bazą  Danych  to  odpowiednio  zorganizowane,  specjalistyczne  oprogramowanie 
narzędziowe pozwalające na realizację istotnych dla użytkownika operacji na danych. Podstawowe 
operacje na danych obejmują: 

 

wprowadzanie danych 

 

zapamiętywanie i przechowywanie danych 

 

wyszukiwanie i prezentację danych 

 

aktualizację danych 

 

przetwarzanie arytmetyczne, statystyczne, algebraiczne i logiczne 

 

operacje teoriomnogościowe na danych i operacje algebry relacji 

 

kodowanie i dekodowanie danych 

 

Do zadań SZBD należy: 

 

umożliwienie  projektowania  i  implementacji  nowej  bazy  danych  przy  użyciu  narzędzi  i 
języka  definicji  danych  (z  ang.  Data  Definition  Language  –  DDL)(CREATE  TABLE; 
ALTER TABLE; DROP TABLE) 

 

umożliwienie  selektywnego  dostępu  do  danych  za  pomocą  języka  zapytań  i  tworzonych  w 
nim kwerend (SELECT) 

 

umożliwienie  wykonywania  określonych  operacji  na  danych  przy  pomocy  języka 
operowania  na  danych  (  ang.  Data  Manipulation  Language-  DML)  (INSERT,  UPDATE; 
DELETE) 

 

obsługa  przechowywania  dużych  zbiorów  danych,  zapewnienie  niezawodności  oraz 
efektywności 

 

zapewnienie integralności ( spójności) danych 

 

ochrona  dostępu  do  danych,  zapewnienie  różnych  obszarów  i  poziomów  dostępu 
(przypisywanie uprawnień użytkownikom, hasła) 

 

zapewnienie  dostępu dla wielu użytkowników (wielodostęp) oraz synchronizacja dostępu w 
przypadku dostępu współbieżnego 

 

zapewnienie możliwości komunikacji z innymi systemami (import, eksport danych) 

 

optymalizacja pracy (m.in. wykonywanie zapytań w sposób jak najbardziej efektywny) 

 

dostęp przez sieć (klient-serwer) 

 

zarządzanie transakcjami 

background image

Najbardziej rozpowszechnione SZBD to : ORACLE, MS SQL SERWER , DB2, SYSBASE, 
PostgreSQL,  MySQL, Firebird, ACCESS. 

  
Przykładowe zastosowania baz danych  

 

systemy finansowo-księgowe  

 

systemy płacowe 

 

systemy kadrowe 

 

systemy bankowe 

 

systemy magazyn – sprzedaż 

 

system ZUS- Płatnik 

 

system obsługi bibliotek 

 

systemy w firmach ubezpieczeniowych do rejestracji składek 

 

systemy rezerwacji (np. lotniczej)  

 

systemy wspomagające zarządzanie  

 

CAD (Computer Aided Design)  

 

GIS (Geographical Information Systems) 

 

Ankiety (Firma mająca licznych agentów zbiera od klientów ankiety)  

 

Parametry  procesu  technologicznego  (System  informatyczny  przechowuje  parametry 
pewnego procesu technologicznego 

 

Rozgłośnia  radiowa  (Rozgłośnia  radiowa  nadaje  audycje  na  kilku  programach.  Układanie 
programów ma wspomagać system informatyczny)  

 

Kontrola zamówień (Firma wprowadza system kontroli obiegu wewnętrznych zamówień) 

 

System nadzoru obsługi reklamacji 

 

Oczyszczanie miasta 

 

Baza dla nauczyciela – dziekanat 

 

Firma  remontowa-  Firma  remontowo-budowlana  wykonuje  typowe  usługi  składające  się  z 
typowych czynności - system kosztorysujący 

 

Rekrutacja -Wyższa uczelnia prowadzi nabór kandydatów na studia 

 

Refundacja  leków  -  Apteka  musi,  co  miesiąc  raportować  do  NFZ  informację  o  sprzedaży 
leków refundowanych.  

 

Rejestracja hospitalizacji - Szpital rejestruje hospitalizacje dla celów rozliczenia z NFZ 

 

Zakład  opieki  zdrowotnej  -  Zakład  opieki  zdrowotnej  tworzy  bazę  danych  do  rejestracji 
usług medycznych  

Cele, jakie stawiane są bazą danych. 

 

Umożliwienie pełnego dostępu do wszystkich danych; centralizacja – skupienie 
danych w jednym systemie. 

 

Zapewnienie łatwości wyszukiwania danych. 

 

Zmniejszenie redundancji – nadmiarowości (powtórzeń) 

 

Zachowanie spójności  

 

Zapewnienie jednolitego formatu danych; ułatwienie wymiany danych i dostępu do 
nich 

 

Umożliwienie użytkowania tych samych danych przez wielu użytkowników- 
wielodostęp 

 

Umożliwienie użytkownikom korzystania z danych w dogodnej dla nich postaci  

 

Umożliwienie jednoczesnego operowania na tych samych danych (blokowanie 
dostępu; synchronizacja) – dostęp równoległy 

 

Podział zadań w projektowaniu bazy danych 

 

użytkownik -- odbiorca systemu (kierownicy, managerowie, dyrektorzy określają 
przeznaczenie bazy danych i cele, jakim ma ona służyć) 

background image

 

analityk – bada własności danych (ustala charakterystyki danych), wykrywa zależności 
między danymi 

 

projektant – projektuje schemat bazy danych (tabele, relacje, zapytania, formularze, 
raporty) 

 

programista - tworzy przyjazny użytkownikowi dostęp do bazy danych  

 

administrator bazy danych (zarządza dostępem do bazy danych i przydziela uprawnienia, 
dba o bezpieczeństwo danych (replikacja, archiwizacja danych) 

MODELE BAZ DANYCH 

Model zewnętrzny  

 

opisuje świat z punktu widzenia użytkowników bazy danych.  

 

może istnieć wiele modeli zewnętrznych tej samej rzeczywistości  

 

nie musi być związany z konkretnym modelem danych 

Model pojęciowy (konceptualny)  

 

tworzony przez analityków  

 

opisuje świat w kategoriach konkretnego modelu danych  

 

abstrahuje od szczegółów implementacji  

 

odpowiada na pytanie "co?" a nie "jak?" 

Model logiczny  

 

tworzony przez projektantów bazy danych  

 

opisuje projekt struktury w kontekście konkretnej implementacji  

 

model struktury zgodny z modelem danych, a nie z ich fizyczną reprezentacją  

 

może zawierać parametry dotyczące reprezentacji fizycznej 

Reprezentacja fizyczna  

 

tworzona przez SZBD 

 

izolowana od aplikacji przez SZBD  

 

zarządzana przez administratora 

 

Modele danych 

Model hierarchiczny  
 

Cechy podstawowe  

 

struktura danych ma postać drzewa (graf spójny bez cykli; graf, w którym każda krawędź 
jest mostem) 

 

węzły -- typy opisywanych obiektów  

 

łuki -- związki typu ojciec-syn  

 

drzewo jest uporządkowane, tj. na każdym poziomie kolejność węzłów jest określona  

 

opis obiektu (rekord) zbudowany z pól zawierających dane opisujące obiekt  

 

związki zrealizowane jako wskaźniki 

 

Hierarchiczna struktura danych  

background image

Języki obsługi  

 

o charakterze nawigacyjnym  

 

operacje typu: GET LEFTMOST typ WHERE warunek ; GET NEXT typ 

Ograniczenia 

 

nie ma związków typu n-m (np. oddziały pomieszane w kilku budynkach)  

 

tylko jeden rodzaj związku między dwoma typami obiektów  

Znaczenie praktyczne  

 

system IBM IMS (1978)  

o

 

bardzo wielkie dane zgromadzone  

o

 

poprzednik użyty w programie Apollo  

 

nowych projektów nie robi się 

Model sieciowy  

Cechy podstawowe  

 

struktura danych ma postać grafu (sieci)  

 

wierzchołki grafu -- typy obiektów  

 

łuki w grafie -- powiązania między typami  

 

opis obiektu (rekord) zbudowany z pól zawierających dane opisujące obiekt  

 

reprezentacja wiązań (wskaźniki):  

 

rekordy powiązane stanowią kolekcję (set)  

o

 

jeden rekord nadrzędny  

o

 

wiele rekordów podrzędnych 

 

kolekcja realizowana jako lista zamknięta  

 

brak bezpośredniej reprezentacji  
wiązań n-m
 

Języki obsługi  

 

języki manipulowania -- nawigacyjne  

 

CODASYL: język definiowania danych pozwala określić sposób automatycznego włączania 
rekordów do kolekcji 

Znaczenie praktyczne  

 

system IDS (General Electric)  

 

obecnie raczej nie używany 

Model relacyjny  

Cechy podstawowe  

 

dane zawarte w tabelach  

 

tabele składają się z kolumn  

 

liczba kolumn i typy -- stałe  

 

liczba wierszy zmienna  

 

wiersze nie mają tożsamości innej niż wynikająca z zawartości kolumn  

 

związki pomiędzy wierszami tabel -- zdefiniowane poprzez zależności między wartościami 
wybranych kolumn, tzw. kluczy (nie ma wskaźników)  

background image

 

z punktu widzenia teorii model można opisać algebrą relacji między zbiorami atrybutów 

Języki obsługi  

 

nieproceduralne: SQL, Sequel, QUEL, QBE  

 

proceduralne: xBase 

Znaczenie praktyczne  

 

model dominujący w zastosowaniach komercyjnych  

 

przykłady  SZBD: Oracle, Informix, Sybase, DB2, Progress, SQL Server, Firebird, Access, 
dBase,  

Realizacja relacyjna  

Ograniczenia 

 

brak bezpośredniej reprezentacji związków n-m  

 

dla trudniejszych problemów -- bardzo wiele tabel  

 

mało naturalna reprezentacja danych  

 

ograniczona podatność na zmiany  

 

trudne operowanie na złożonych obiektach -- dane rozproszone w wielu tabelach  

 

brak złożonych typów danych  

Historia:  

 

1970 - E.F.Codd - podstawy relacyjnego modelu danych, rozprawa doktorska; „A relational 
model for large shared data banks” 

 

1968-1979 - opracowanie pierwszej wersji RMD, powstanie algebry relacyjnej 

 

1970-… - IBM opracowuje prototyp relacyjnego SZBD o nazwie System/R, który później 
przekształcił się w INGRES 

 

1979 - Codd wprowadza rozszerzenia do podstawowego modelu relacyjnego RM/T 

 

1980…- początek – dBase II firmy Ashton Tate 

 

1983 - IBM, pierwsza baza danych DB2 

 

Model obiektowy  

Cechy podstawowe  

 

obiekt w bazie reprezentuje obiekt w świecie zewnętrznym  

 

typ obiektowy (klasa):  

o

 

definicja złożonego typu danych (może zawierać inne typy obiektowe lub ich 
kolekcje)  

o

 

procedury (metody) i operatory do manipulowania tymi danymi 

 

tożsamość obiektu jest niezależna od zawartości danych  

 

dziedziczenie (inheritance):  

o

 

strukturalne: potomek dziedziczy strukturę danych  

o

 

behawioralne: potomek dziedziczy metody i operatory 

Cechy dodatkowe  

 

enkapsulacja: wnętrze obiektu dostępne jedynie w sposób w nim zdefiniowany  

 

polimorfizm: tak samo nazwane metody i operatory działają swoiście w zależności od klasy 
obiektu 

background image

Model obiektowy -- zawieranie i dziedziczenie  

Zalety modelu  

 

dość naturalna reprezentacja świata  

 

łatwość działania na złożonych obiektach  

 

duża podatność na zmiany 

Znaczenie praktyczne  

 

w zastosowaniach naukowych lub eksperymentalnych  

 

przykłady systemów: GemStone, O2  

 

przewidywana ewolucja baz relacyjnych w kierunku obiektowo-relacyjnych 

RELACYJNE BAZY DANYCH 

W relacyjnym modelu danych, do opisu własności obiektów reprezentowanych w bazie danych 
wykorzystuje  się  wybrany  zestaw  atrybutów  (własności).  Dla  danego  problemu  dokonuje  się 
wyboru  tych  własności  oraz  stopnia  szczegółowości  ich  opisu.  Przykładami  atrybutów  mogą 
być:  kolor,  waga,  wiek,  marka,  nazwisko,  PESEL,  nip,  wartość  towaru.  Atrybuty  przyjmują 
wartości z określonego  zbioru zwanego dziedziną atrybutu (domeną,  oznaczaną czasami przez 
DOM(A)  gdzie  A  jest  atrybutem).  Dla  danego  obiektu  każdy  z  atrybutów  przyjmuje  tylko 
pojedynczą  wartość  dziedziny  atrybutu  (atrybut  jest  funkcją).  Wymagania,  co  do  atomowego 
(atomicznego)  charakteru  wartości  atrybutu  stanowi  jeden  z  podstawowych  kanonów 
relacyjnych baz danych.  

Typy dziedzin: 

Dziedziny binarne – dziedzina taka zawiera dokładnie dwa elementy np. 0 i 1 (lub Tak i Nie) 

Dziedziny  trójwartościowe  –  dziedzina  taka  zawiera  dokładnie  trzy  elementy  np.  Tak,  Nie, 
Brak_danych (lub TRUE, FALSE, NULL) 

Dziedziny  nominalne  –  skończone  zbiory  nazw;  zbiory  takie  można  jedynie  porządkować 
leksykograficznie. 

Dziedzin częściowo uporządkowane – skończone zbiory nazw z relacją częściowego porządku 

Dziedziny  liniowo  uporządkowane-  zbiory  (nazw  lub  liczb),  w  których  określona  jest  relacja 
liniowego porządku 

Dziedziny  liczbowe  –  na  danych  tego  typu  można  wykonywać  operacje  obliczeniowe  (bajt, 
liczba  całkowita  (krótka,  długa),  liczba  rzeczywista  (pojedynczej,  podwójnej  długości),  data, 
waluta, procenty 

Dane  typu  tekstowego  –  zawierają  dowolne  pliki  tekstowe  (w  polach  typu  Memo);  brak 
możliwości wykonywania operacji poza edycją 

Dane typu dźwięk – w specjalnych plikach; brak możliwości operacji poza odtwarzaniem 

Dane  typu  obraz  –  w  specjalnych  plikach  w  określonym  formacie;  ich  zastosowanie polega na 
prezentacji obrazka (osoba; okładka; widok szczytu górskiego) 

Dane typu sekwencja – podobnie jak obraz – do prezentacji  

Dane typu hiperłącze – umożliwia uruchomienie usługi sieciowej 

background image

Model relacyjny - podstawy teoretyczne  

Niech  zbiór  U:={A

1

,  A

2

,  …,  A

n

}  (zwany  dalej  schematem  relacji)  będzie  zbiorem  atrybutów.  Z 

każdym  z  atrybutów  A

k 

U  związana  jest  dziedzina  D

k 

  dla  k=1,2,  ...,n.  Zakładamy,  że  istnieje 

funkcja  ρU=(ρA

1

ρA

2

, ..., ρA

n

) określona na zbiorze rozważanych obiektów o wartościach w 

 D

1

××××

D

2

××××

...

××××

 D

n

  

Relacja  R(U)  o  schemacie  U  to  podzbiór  iloczynu  kartezjańskiego  dziedzin  atrybutów: 
R
(U)

D

1

××××

D

2

××××

...

××××

 D

n

 

Relacja jest zbiorem krotek:  
R
={k

1,

 k

2,...,

 k

m

 
Krotka to funkcja przyporządkowująca atrybutom wartości atrybutów dla ustalonego obiektu. 
K
[U]={A

1

k[A

1

],  A

2

k[A

2

],..., A

n

k[A

n

],} 

Jeżeli kolejność atrybutów jest ustalona to krotkę  można traktować  jako ciąg wartości atrybutów 
dla wybranego obiektu. 
Zbiór krotek (relacja) może być reprezentowany jako tabela:  

kolumny odpowiadają nazwom atrybutów  
wiersze odpowiadają krotkom  

 
Tablice reprezentujące relacje mają następujące własności: 

 

Liczba kolumn jest ustalona na etapie projektowania i jest taka sama dla wszystkich wierszy 
(krotek) 

 

Kolumny etykietowane są atrybutami 

 

Liczba wierszy zależy od liczby opisywanych obiektów 

 

Kolejność kolumn nie jest istotna 

 

Kolejność wierszy nie jest istotna 

 

W tabeli będącej zapisem relacji wiersze nie mogą się powtarzać 

Relacyjna baza danych  

 

schemat relacyjnej bazy danych jest zbiorem schematów relacji  

 

relacyjna  baza  danych  jest  zbiorem  relacji  spełniających  warunki  integralności  dla  każdej 
relacji i między relacjami 

Klucze 

 

klucz K relacji R(U)  jest zbiorem atrybutów, które jednoznacznie wyznaczają krotkę: 

])

[

]

[

(

(

:

2

1

2

1

)

(

,

2

1

K

k

K

k

k

k

U

K

U

R

k

k

≠≠≠≠

≠≠≠≠

gdzie k

i

 [K] oznacza podkrotkę zawierającą tylko atrybuty z klucza K  

 

klasyfikacja kluczy:  

o

 

klucze właściwe: żaden podzbiór właściwy klucza właściwego nie jest kluczem  

o

 

klucz główny: jeden z kluczy właściwych relacji, wybrany do identyfikowania krotek 

 

klucze wykrywa się analizując opisywany świat, a nie dostępne dane!  

Zbiór identyfikujący (nadklucz) – to dowolny atrybut lub zestaw atrybutów pozwalających na 
identyfikację (jednoznaczną) obiektu w relacji (w bazie danych). 

Klucz  to  każdy  minimalny  zbiór  identyfikujący  tzn.  że  żaden  jego  właściwy  podzbiór  nie  jest 
wystarczający do identyfikacji obiektu (krotki) 

Klucz prosty – klucz złożony z pojedynczego atrybutu 

background image

Klucz obcy – atrybut lub ich zestaw występujący w danej tabeli a będący kluczem w innej tabeli 
(klucz obcy stosowany jest przy złączaniu schematów relacji (tabel)) 

Przykład: (czytelnicy) 

o

 

id czytelnika jest kluczem  

o

 

nazwisko nie jest kluczem  

o

 

nazwisko + imię + data urodzenia + imię ojca -- jest kluczem (?) 

Operacje na relacjach  

Selekcja 

 

selekcja to wybór krotek (wierszy) spełniających określony warunek: 

)}

(

;

{

)

(

k

w

R

k

R

S

w

====

gdzie  w  jest  warunkiem  selekcji  (warunek  selekcji  jest  po  prostu  podzbiorem  iloczynu 
dziedzin atrybutów 

 

selekcja jest komutatywna (przemienna): 

))

(

(

))

(

(

R

S

S

R

S

S

v

w

w

v

====

gdzie w i v są warunkami selekcji 

Projekcja (rzut)  

 

projekcja relacji R to wybór atrybutów (kolumn): 

}

);

'

(

{

)

(

'

R

k

U

k

R

U

====

ππππ

gdzie 

U' jest podzbiorem schematu U  

Operacje teoriomnogościowe  

 

dotyczące relacji opartych na identycznych schematach:  

o

 

suma  

o

 

iloczyn  

o

 

różnica 

Złączenie 

 

operacja na dwóch relacjach -- podzbiór iloczynu kartezjańskiego dwóch relacji: 

)}

'

'

,

'

(

'

'

'

'

'

'

;

'

'

'

{

'

'

'

k

k

w

R

k

R

k

k

k

R

R

∧∧∧∧

∧∧∧∧

====

∗∗∗∗

⊳⊲

gdzie 

w jest warunkiem złączenia.  

 

krotki złączenia stanowią sklejenie (konkatenację) krotek relacji złączanych  

 

rodzaje złączeń:  

o

 

równościowe -- warunek równościowy (zgodność wartości na wybranych atrybutach) 

o

 

naturalne -- równościowe i nazwy atrybutów zgodne 

 

 

 

 
 

background image

Algebra  relacji 
Relacje  typu  U  
  oznaczać  będziemy  R(U),S(U),T(U),....  Jeżeli  z  kontekstu  wynikać  będzie 
jednoznacznie o jaki zbiór atrybutów chodzi, pisać będziemy R
ST, ... .  
Krotki typu U
 oznaczać będziemy r(U),s(U),t(U).... Jeżeli z kontekstu wynikać będzie jednoznacznie 
typ krotki, pisać będziemy r
,s,t,.... 
Podzbiory  zbioru  atrybutów  U
  oznaczać  będziemy  dużymi  literami  X,Y,Z,....  Do  oznaczenia  sumy 
dwóch zbiorów X
,

 U stosować będziemy zapis XY zamiast X

Y

Ścisłe przedstawienie krotki utożsamianej ze zbiorem jej wartości wymaga zapisu  
= { (A

1

a

1

), (A

2

a

2

),..., (A

n

a

n

) }, gdzie   a

i

r(A

i

), = 1,2,...,n. Zamiast tego będziemy pisać (a

1

, a

2

, ... 

, a

n

). 

 

Dla zbioru atrybutów {A,B} zamiast pisać R({A,B}), stosować będziemy zapis R(A,B). 

Uwaga.  Niech  zbiór  U  :=  {A

1

,A

2

,...,A

n

}.  Ponieważ  krotka  r(U)  jest  funkcją,  więc  można  ją 

przedstawić w postaci tabeli: 

U 

A

1

 

A

2

 

... 

A

n

 

r 

r(A

1

r(A

2

... 

r(A

n

 
Gdy R
(U) := {r

1

, r

2

,..., r

m

} to można tą relację przedstawić w postaci tabeli: 

 

U 

A

1

 

A

2

 

... 

A

n

 

 

r

1

(A

1

r

1

(A

2

... 

r

1

(A

n

R 

... 

... 

... 

... 

 

r

m

(A

1

r

m

(A

2

... 

r

m

(A

n

 
Definicja.  Wartość  a

DOM(A)  nazywamy  wartością  prostą,  gdy  nie  jest  ona  zbiorem  ani 

ciągiem elementów należących do 

(((( ))))

{{{{

}}}}

DOM

|

A

A U

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

U  są 

zbiorami wartości prostych. 

Przykład: 
Baza  danych  BIBLIOTEKA  ;  Tabela  Wypożyczenia  (    pole  książki_wypożyczone  a  w  nim 

id_k1, id_k2, id_k3 ) 

Taka baza danych (relacja ) nie jest znormalizowana ( nie jest w 1PN) 
 
Definicja.  Dla  danej  krotki  r
(U)  i  X

U  krotkę t typu X nazywamy ograniczeniem krotki r(U

do  zbioru  X  gdy  (

A

X)  (  r(A)=  t(A)}.  Dla  krotki  będącej  ograniczeniem  będziemy  używać 

oznaczenia r(X) lub r[X]. 

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

Operacje na relacjach. 

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

(a)

 

T(U):={t

KROTKA(U)|

 R(U

∨∨∨∨

 

 S(U) }; 

(b)

 

T(U) := { t 

 KROTKA(U) | 

 R(U

∧∧∧∧

 

 S(U) }; 

(c)

 

T(U) := { t 

 KROTKA(U) | 

 R(U

∧∧∧∧

  t 

 S(U) }; 

(d)

 

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    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,Y

U,  r

KROTKA(X),  s

KROTKA(Y)  i 

Z:=X

Y. Krotkę t

KROTKA(Z) nazywamy złączeniem krotki r i s, co oznaczamy t=r

⊳⊲

s, gdy t[X

r  i  t[Y ]= s

 

background image

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

(a)

 

r 

⊳⊲

 s = s 

⊳⊲

 r

(b)

 

r[

] = 

εεεε

  gdzie 

εεεε

 oznacza krotkę pustą, 

(c)

 

r 

⊳⊲

 

εεεε

 = r

Definicja.  Dla  danej  relacji  R(U)  oraz  zbioru  X

U  relację T(X) nazywamy projekcją R na X

gdy  
= { t 

 KROTKA(X) | ( 

∃∃∃∃

 

 R ) ( r[X] ) }. 

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

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

U to  

R[X] = { t 

 KROTKA(X) | ( 

∃∃∃∃

 

 KROTKA(U-X) ) (t 

⊳⊲

  

  ) }. 

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

R: 

 

 

 

 

 
 
Dla X
:={B,C} mamy: 

[X]: 

 

 

 

 
Definicja. Odwzorowanie 

(((( ))))

(((( ))))

:REL

REL

,

U
X

U

X

X

U

ππππ

  

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

Stwierdzenie. Jeżeli R

REL(U) to 

(((( )))) {{{{ }}}}

,

gdy 

,

,

gdy 

.

U

R

R

R

ππππ

εεεε



=∅

=∅

=∅

=∅

====



≠∅

≠∅

≠∅

≠∅



  

Definicja.  Niech    U  :=  {A

1

,A

2

,...,A

n

}, 

(((( ))))

{{{{

}}}}

DOM

|

v

A

A U

⊗∈

{  =, 

≠≠≠≠

,  <,  >, 

  }. 

Elementarnym  warunkiem  selekcji  nazywamy  wyrażenia  postaci  

  A

  lub  A

i

 

  A

j

.  Warunkiem 

selekcji nazywamy: 

(a)

 

elementarny warunek selekcji, 

(b)

 

wyrażenia  postaci:   

∼∼∼∼

E  ,  E

∧∧∧∧

 

E

  lub  E

∨∨∨∨

 

E

2

  gdzie  E  ,  E

1

,    E

2

  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

R | E(t)=true }. 

Przykład. Dla relacji R(U) postaci 
 

R: 

 

 

 

 

 
z warunkiem selekcji E
  := ( 

 D 

∧∧∧∧

 ( A = a 

∨∨∨∨

 A = b ) ) relacja T=R/E/ jest postaci 

 
 

T: 

 

 

background image

 
Definicja. Odwzorowanie 

(((( ))))

(((( ))))

:REL

REL

U
E

U

U

σσσσ

 

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(X

Y) | ( t[X] 

 R ) 

∧∧∧∧

 (  t[Y] 

 S ) } 

typu X

Y nazywamy złączeniem relacji i oznaczamy przez R 

⊳⊲

 S

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

 R

⊳⊲

={ t 

 KROTKA(X

Y) | ( 

∃∃∃∃

 

 R ) ( 

∃∃∃∃

 

 S ) ( r 

⊳⊲

 s ) }. 

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

R: 

 

S: 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 
ich złączenie T
:=R 

⊳⊲

 S jest relacją postaci: 

 

T: 

 

 

 

 
{ 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 

⊳⊲

X,Y 

 : REL(X

××××

 REL(Y

 REL(X

Y

przyporządkowujące  dwóm  relacjom  typów,  odpowiednio  X  i  Y,  relację  typu  X

Y  będącą  ich 

złączeniem nazywamy operacją złączenia

Stwierdzenie. Dla danych relacji ,, i XY

U mamy 

(1)

 

⊳⊲

 S = S 

⊳⊲

 R

(2)

 

(

⊳⊲

 

⊳⊲

 T = R 

⊳⊲

 (

⊳⊲

 T), 

(3)

 

jeżeli X

U  to R[X

⊳⊲

 R = R

(4)

 

jeżeli X

Y= to 

 R[X

⊳⊲

 R[Y], 

(5)

 

jeżeli X=Y  to 

⊳⊲

 S  = R

S

(6)

 

jeżeli X

Y=

 to 

⊳⊲

 R

××××

S

Przykład. Niech a

i 

 

≠≠≠≠

 a

j

,  b

i

 

≠≠≠≠

 b

j

,  c

i

 

≠≠≠≠

 c

j

, dla 

≠≠≠≠

 j, Wtedy dla relacji R określonej następująco: 

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

U

 

R:  A 

B 

 

R[X]

B 

 

R[X]

⊳⊲

R

A 

B 

 

a

1

 

b

1

 

 

 

b

1

 

 

 

a

1

 

b

1

 

 

a

1

 

b

2

 

 

 

b

2

 

 

 

a

1

 

b

2

 

 

a

2

 

b

3

 

 

 

b

3

 

 

 

a

2

 

b

3

 

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

Y = {A,B},  

 

R

A 

B 

 

S:  

A 

B 

 

R

⊳⊲

S

A 

B 

 

a

1

 

b

1

 

 

 

a

2

 

b

2

 

 

 

a

2

 

b

2

 

 

a

2

 

b

2

 

 

 

a

3

 

b

3

 

 

 

 

 

background image

Ad. 4)  
 

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

Y = {A,B,C}, 

 

R: 

R[X]: 

R[Y]: 

R[X]

⊳⊲

R[Y]: 

 

a

1

 

b

1

 

c

1

 

 

a

1

 

b

1

 

 

b

1

 

c

1

 

 

a

1

 

b

1

 

c

1

 

 

a

2

 

b

2

 

c

2

 

 

a

2

 

b

2

 

 

b

2

 

c

2

 

 

a

1

 

b

1

 

c

2

 

 

a

3

 

b

3

 

c

3

 

 

a

3

 

b

3

 

 

b

3

 

c

3

 

 

a

2

 

b

2

 

c

2

 

 

a

1

 

b

1

 

c

2

 

 

 

 

 

b

1

 

c

2

 

 

a

3

 

b

3

 

c

3

 

 

:= {A,B,C},  := {A}, := {B,C}, X

 = {A,B,C}, 

 

R[X]: 

  R[Y]: 

  R[X]

⊳⊲

R[Y]: 

 

a

1

 

   

b

1

 

c

1

 

   

a

1

 

b

1

 

c

1

 

 

a

2

 

   

b

2

 

c

2

 

   

a

1

 

b

2

 

c

2

 

 

a

3

 

   

b

3

 

c

3

 

   

a

1

 

b

3

 

c

3

 

 

 

   

b

1

 

c

2

 

   

a

2

 

b

1

 

c

1

 

 

 

   

 

 

   

a

2

 

b

2

 

c

2

 

 

 

   

 

 

   

... 

... 

... 

 

 

   

 

 

   

a

3

 

b

3

 

c

3

 

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

= {A,B},  

 

R

A 

 

S:  

B 

 

R

⊳⊲

S

A 

B 

 

a

1

 

 

 

b

2

 

 

 

a

1

 

b

2

 

 

a

2

 

 

 

b

3

 

 

 

a

2

 

b

2

 

 

 

 

 

 

 

 

a

1

 

b

3

 

 

 

 

 

 

 

 

a

2

 

b

3

 

Definicja. Dla danej relacji R(U) i zbioru X

U relację T(U-X) nazywamy podzieleniem relacji 

R przez zbiór X, co oznaczamy przez T=R/X, gdy 
T
={ t 

 KROTKA(U-X) | ( 

 

 KROTKA(X) ) ( t

⊳⊲

s 

 ) }, 

{ krotka t typu U-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: 

 

 

T: 

 

 

 

 

1 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

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 n

T, gdy student n zdał wszystkie egzaminy. 

Definicja. Odwzorowanie 

(((( ))))

((((

))))

:REL

REL

,

,

U

X

U

U

X

X

U

δδδδ

 

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

R
:= { t 

 [U-X] |  ( S  

  R(t,X) ) }, 

gdzie  
R
(t,X) := { s 

 R[X] |  (t

⊳⊲

 

 R ) }. 

 

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

1.

 

tworzenia języków manipulowania danymi; 

2.

 

badania zależności między danymi; 

3.

 

projektowania schematu logicznego relacyjnych baz danych.