Systemy Baz Danych (cz 1 0)

background image

Prof. dr hab. inż. S. Wiak

1

Systemy Baz

Systemy Baz

Danych

Danych

(cz. 1.0)

(cz. 1.0)

Prof. dr hab.

Prof. dr hab.

inż

inż

. Sławomir Wiak

. Sławomir Wiak

background image

Prof. dr hab. inż. S. Wiak

2

BAZY DANYCH

BAZY DANYCH

Baza danych jest modelem pewnego aspektu rzeczywistości

danej organizacji. Tę rzeczywistość nazywamy

obszarem

analizy (OA) (ang. universe of discourse, w skrócie

UR).

Bazę danych możemy uważać za zbiór danych, których

zadaniem jest reprezentowanie pewnego OA. Dane to fakty.

Dana, jednostka danych, jest jednym symbolem lub zbiorem

symboli, którego używamy, aby reprezentować jakąś „rzecz”.

Dane w bazie danych są traktowane jako trwałe. Przez trwałość

rozumiemy, że dane są przechowywane przez pewien czas.

Ten czas nie musi być bardzo długi. Termin „trwałość” jest

używany do rozróżnienia bardziej trwałych danych od

danych, które są tymczasowe.

Baza danych składa się z dwóch części:

intensjonalnej i

ekstensjonalnej.

Część intensjonalna bazy danych jest

zbiorem definicji, które opisują strukturę danych bazy

danych.

Część ekstensjonalna bazy danych jest łącznym

zbiorem danych w bazie danych.

Część intensjonalną bazy

danych nazywamy schematem bazy danych. Tworzenie

schematu bazy danych nazywamy projektowaniem bazy

danych.

background image

Prof. dr hab. inż. S. Wiak

3

Bazy danych charakteryzują się

Bazy danych charakteryzują się

czterema podstawowymi

czterema podstawowymi

własnościami:

własnościami:

 

 

Niezależność aplikacji i danych.  

Abstrakcyjna reprezentacja danych.  

Różnorodność

sposobów

widzenia

danych.  

Fizyczna i logiczna niezależność danych.

background image

Prof. dr hab. inż. S. Wiak

4

Bazy danych jako maszyny abstrakcyjne

Bazy danych jako maszyny abstrakcyjne

OA

Klasa: Moduł

- liczba

zapisanych

studentów

Klasa:

Studenci

- nazwisko

- imię

- adres

Rzeczy istotne
dla naszego OA
to obiekty
nazywane
klasami

Zinterpretowane dane to informacje.
Natomiast informacja to dane z
przypisaną im
semantyką (znaczeniem).

Baza danych jest modelem
pewnego aspektu
rzeczywistości (OA)

background image

Prof. dr hab. inż. S. Wiak

5

W pewnym uproszczeniu przez bazę danych rozumiemy

uporządkowany zbiór danych, a przez system bazy
danych – bazę danych wraz z oprogramowaniem
umożliwiającym operowanie na niej. Baza danych jest
przechowywana

na

nośnikach

komputerowych.

Precyzując definicję bazy danych można powiedzieć, że
baza danych jest abstrakcyjnym, informatycznym
modelem wybranego fragmentu rzeczywistości (ten
fragment rzeczywistości bywa nazywany miniświatem).

Fragment rzeczywistości może być rozumiany jako:

rzeczywistość fizyczna – taka, którą postrzegamy
naszymi organami percepcji

rzeczywistość konceptualna – istniejąca najczęściej w
wyobraźni pewnych osób; przykładem tej rzeczywistości
może być projekt nowego samolotu firmy Boeing, który
istnieje tylko w wyobraźni konstruktorów.

background image

Prof. dr hab. inż. S. Wiak

6

Poprawne

(z punktu widzenia człowieka) operowanie na

bazie danych wiąże się z właściwą interpretacją danych,
które zostały w niej zapisane. W związku z tym
konieczny jest opis semantyki (znaczenia) danych,
przechowywanych w bazie.

System bazy danych

służy więc do modelowania

rzeczywistości (fragmentu). W systemach baz danych
rzeczywistość opisuje się za pomocą modelu danych.
Przez model danych rozumiemy zbiór abstrakcyjnych
pojęć umożliwiających reprezentację określonych
własności tego świata.

Zbiór pojęć

użyty do opisu własności tego konkretnego

fragmentu świata rzeczywistego, istotnych z punktu
widzenia danego zastosowania tworzy schemat bazy
danych.

Baza danych jest modelem logicznie spójnym

służącym

określonemu celowi. W związku z tym baza danych nie
może (nie powinna) przyjąć stanu, który nie jest nigdy
osiągalny w modelowanej rzeczywistości.

background image

Prof. dr hab. inż. S. Wiak

7

Można więc powiedzieć, że każda baza danych posiada

:

o

źródło danych

o

użytkowników

o

związki z reprezentowaną rzeczywistością.

Baza danych

to dane i tzw. schemat bazy danych

.

Dane

opisują cechy (własności) modelowanych obiektów

. Nie jest

jednak możliwa ich interpretacja bez użycia schematu.

Schemat jest opisem struktury (formatu)

przechowywanych

danych oraz wzajemnych powiązań między nimi.

System

System

Z

Z

arządzania

arządzania

B

B

azą

azą

D

D

anych

anych

(SZBD)

(SZBD)

System Zarządzania Bazą Danych DBMS (Database

Management System) jest to zestaw programów

umożliwiających tworzenie i eksploatację bazy danych.

System zarządzania bazą danych jest oprogramowaniem

ogólnego przeznaczenia. System bazy danych składa się z

bazy danych, systemu zarządzania bazą danych i

ewentualnie z zestawu aplikacji

wspomagających

pracę poszczególnych grup użytkowników.

background image

Prof. dr hab. inż. S. Wiak

8

Czego oczekuje się od systemu DBMS:

1.

Umożliwienia użytkownikowi

utworzenia nowej bazy

danych i określenia jej schematu (logicznej struktury

danych)

za

pomocą

specjalizowanego

języka

definiowania danych (data-definition language).

2.

Udostępnienia użytkownikowi

możliwości tworzenia

zapytań (query) o dane oraz aktualizowania danych, za

pomocą odpowiedniego języka nazywanego językiem

zapytać (query language).

3.

Zapewnienia możliwości

przechowywania ogromnej

ilości danych przechowywanej przez długi czas

chroniąc je przed przypadkowym, lub niepowołanym

dostępem, a także umożliwiając efektywny dostęp do

danych z poziomu języka zapytań i operacji na danych.

4.

Sterowania jednoczesnym

dostępem do danych przez

wielu użytkowników, z zapewnieniem bezkolizyjności

oraz ochrony danych przed przypadkowym

uszkodzeniem.

background image

Prof. dr hab. inż. S. Wiak

9

Architektura systemu DBMS

Schemat

architektury systemu

DBMS

background image

Prof. dr hab. inż. S. Wiak

10

Sch

em

at b

azy

dan

ych

Baz

a da

nyc

h

System bazy

danych

modu³ zarz¹dzania

dostêpem do bazy danych

SZBD

modu³ zarz¹dzania

transakcjami

transkacje

background image

Prof. dr hab. inż. S. Wiak

11

Na samym dole widzimy

element reprezentujący miejsce

składowania danych

. Zauważmy, że ten element służy nie

tylko do zapisu danych, ale także

metadanych

, które

opisują strukturę danych. Na przykład, jeśli rozważany
DBMS jest relacyjny, to metadane obejmują nazwy relacji,
nazwy atrybutów relacji i typy poszczególnych atrybutów (
np. całkowity lub znakowy ).

Często system DBMS

obsługuje

indeksy

danych.

Indeks jest

taką strukturą danych

, która pomaga w szybkim

odnajdywaniu właściwych danych, a posługuje się przy
tym ich wartościami; najbardziej popularny przykład
indeksu umożliwia odnalezienie właściwej krotki relacji,
mającej zadane wartości pewnych atrybutów. Na przykład
relacja obejmująca numery kont i bilans może mieć indeks
założony na numerach kont, wówczas odnalezienie bilansu
konta o podanym numerze odbywa się błyskawicznie.
Indeksy są przechowywane razem z danymi, a informacja
o tym, który atrybut ma założone indeksy, należy do
metadanych

.

background image

Prof. dr hab. inż. S. Wiak

12

Na rysunku można także dostrzec moduł zarządzania pamięcią,

który

ma za zadanie wybierać właściwe dane z pamięci i w razie potrzeby
dostosować je do wymagań modułów z wyższych poziomów

systemu.

Moduł zarządzania pamięcią składa się z dwóch części

:

modułu

zarządzania buforami

oraz

modułu zarządzania plikami

.

1.

Moduł zarządzania plikami

przechowuje dane o miejscu

zapisania plików na dysku i na polecenie modułu zarządzania
buforami przesyła zawartość bloku lub bloków, gdzie jest
zapamiętany żądany plik.

2.

Moduł

zarządzania

buforami

obsługuje

pamięć

operacyjną. Moduł zarządzania plikami przekazuje bloki
danych z dysku, a moduł zarządzania buforami wybiera w
pamięci operacyjnej strony, które zostaną przydzielone dla
wybranych bloków. Blok z dysku może być przez chwile
przechowywany w pamięci operacyjnej, ale musi zostać
przesłany z powrotem na dysk, gdy tylko pojawi się potrzeba
zapisania w to miejsce pamięci innego bloku. Powrót bloku na
dysk może nastąpić również w wyniku żądania modułu obsługi
transakcji.

background image

Prof. dr hab. inż. S. Wiak

13

Widać tam także składową, którą nazwaliśmy procesorem

zapytań, mimo, że taka nazwa może wprowadzać w
błąd, bowiem obsługuje on nie tylko zapytania, ale
również aktualizacje danych oraz metadanych. Jego
zadanie polega na znalezieniu najlepszego sposobu
wykonania zadanych operacji i na wydaniu poleceń do
modułu zarządzania pamięcią, który je wykona.

Typowy DBMS stwarza użytkownikowi sposobność łączenia

jednego lub więcej zapytań, bądź modyfikacji, w
transakcję, która stanowi nieformalną grupę operacji
przeznaczonych do wykonania razem w jednym ciągu,
jako duża operacja jednostkowa.

background image

Prof. dr hab. inż. S. Wiak

14

Moduł zarządzania transakcjami odpowiada za spójność systemu.

Musi on gwarantować

, że

kilka jednocześnie przetwarzanych zapytań

nie będzie sobie nawzajem przeszkadzać

oraz, że

żadne dane nie

zostaną utracone

, nawet jeśli nastąpi awaria systemu. W tym celu

dokumentuje wszystkie operacje, tzn. rozpoczęcie każdej transakcji,
zmiany w bazie danych dokonane przez transakcje oraz zakończenie
transakcji. Zapis taki nazywa się

logiem

. Log jest przechowywany w

pamięci stałej, tzn. na nośniku danych jakim jest dysk, który zapewni
przetrwanie danych w przypadku awarii zasilania.

Zasadnicze przetwarzanie transakcji odbywa się w pamięci
operacyjnej, ale dane o przebiegu jej wykonania są natychmiast
zapisywane na dysku. A więc log wszystkich operacji jest ważnym
czynnikiem zapewniającym systemowi trwałość. Moduł zarządzania
transakcjami współdziała z modułem obsługi zapytań, ponieważ musi
mieć dostęp do szczegółów dotyczących tych danych, na których
przetwarza się bieżące zapytanie. Może się zdarzyć, że część
przetwarzania będzie musiała zostać opóźniona, aby nie powstał
konflikt.

background image

Prof. dr hab. inż. S. Wiak

15

Transakcja jest atomową jednostką pracy, taką że

baza danych jest w stanie spójnym (tj.
zgodnym z modelowanym miniświatem) przed i
po zakończeniu transakcji. Inaczej mówiąc, jeśli
dana transakcja jest wykonana poprawnie,
zmiany, które wprowadziła, będą pamiętane w
bazie danych. W przeciwnym przypadku,
wszystkie zmiany wprowadzone przez
transakcje będą anulowane ( wycofane).

Stan spójny

S1

Stan spójny

S2

transakcja

czas

t1

t2

background image

Prof. dr hab. inż. S. Wiak

16

U góry rysunku można zobaczyć trzy rodzaje wejść

do systemu DBMS:

1.

Zapytania. Są to zapytania o dane. Mogą one być

sformułowane dwojako:

Poprzez interfejs zapytań bezpośrednich. Na przykład

relacyjny DBMS umożliwia wprowadzenie zapytań w SQL,

które są następnie przekazywane do modułu

przetwarzania danych, który z kolei tworzy odpowiedź

Poprzez interfejsy programów użytkowych. Typowy DBMS

umożliwia programiście tworzenie programu użytkowego,

który poprzez wywołania procedur DBMS tworzy zapytania

do bazy danych. Na przykład agent posługujący się

systemem rezerwacji lotniczych uruchamia program

użytkowy, który tworzy zapytanie bazy danych dotyczące

dostępności rejsów. Zapytania mogą być formułowane

dzięki specjalizowanemu interfejsowi, który na ogół składa

się z formularzy z pustymi polami, przeznaczonymi do

wypełnienia konkretnymi danymi, np. nazwą miasta,

terminem itp.. nie można w ten sposób zadać zupełnie

dowolnego pytania, ale jest znacznie łatwiej sformułować

zupełnie typowe zapytanie poprzez taki interfejs, niż

formułować zapytanie bezpośrednio w języku SQL

background image

Prof. dr hab. inż. S. Wiak

17

2.

Aktualizacje. Są to operacje zmiany

danych. Tak jak w przypadku zapytań

można je wprowadzić do systemu poprzez

interfejsy zapytań bezpośrednich lub

poprzez interfejsy programów użytkowych.

3.

Modyfikacje schematu. Polecenia tego

rodzaju wydaje specjalnie uprawniona

osoba nazywana administratorem bazy

danych, której wolno zmieniać schemat

bazy danych i tworzyć nowe bazy danych.

Na przykład, jeśli agencje rządowe wezwą

banki do udokumentowania wypłaty

odsetek zgodnie z numerami ubezpieczenia

społecznego klientów, to bank może

zażądać dodania do relacji opisującej

klientów nowego atrybutu o nazwie np.

nrUbezpieczenia

.

background image

Prof. dr hab. inż. S. Wiak

18

Funkcje systemu zarządzania bazą

Funkcje systemu zarządzania bazą

danych

danych

przechowywanie danych w co wchodzi
tworzenie i utrzymywanie struktur danych,

zapewnianie

mechanizmów

bezpieczeństwa i prywatności,

umożliwianie

równoczesnego,

kontrolowanego korzystania z bazy
danych wielu użytkownikom,

umożliwianie wprowadzania i ładowania
danych,

umożliwianie wydobywania i operowania
na przechowywanych danych,

background image

Prof. dr hab. inż. S. Wiak

19

zapewnianie integralności rekordów
bazy danych,

udostępnianie wydajnych mechanizmów
indeksowania pozwalających na szybkie
przeszukiwanie i odnajdywanie
interesujących nas danych,

zapewnianie ochrony przechowywanych
danych przed ewentualną utratą, na
skutek przyczyn niekoniecznie zależnych
od człowieka, za pomocą metod
tworzenia kopii bezpieczeństwa i
procedur odtwarzania

background image

Prof. dr hab. inż. S. Wiak

20

Języki stosowane w bazach danych

Języki, które stosuje się do projektowania i

wypełniania bazy danych można podzielić na
cztery różne grupy:

język definiowania danych

(

Data Definition Language

– DDL

), który umożliwia definiowanie struktury

danych przechowywanych w bazie, czyli tworzenie
schematu implementacyjnego

język manipulowania danymi

(

Data Manipulation

Language – DML

), który umożliwia wypełnienie,

modyfikowanie i usuwanie informacji z bazy danych

język sterowania danymi

(

Data Control Language –

DCL

), który umożliwia sterowania transakcjami (np.

zatwierdzanie lub wycofywanie)

język zapytań

(

Query Language

), który umożliwia

pobieranie z bazy informacji zgodnych z podanymi
warunkami

background image

Prof. dr hab. inż. S. Wiak

21

Jądro systemu zarządzania bazą danych

Jądro systemu zarządzania bazą danych

Funkcje jądra

S

ystemu

Z

arządzania

B

azą

D

anych

(SZBD) określają następujące kategorie
działań:

Organizacja plików.

Mechanizmy dostępu.

Zarządzanie transakcjami: kontrola współbieżności i
spójności.

Zarządzanie słownikami.

Zarządzanie zapytaniami.

Sporządzanie kopii zapasowych (ang. backup) i
odtwarzanie.

background image

Prof. dr hab. inż. S. Wiak

22

Katalog

Katalog

System

operacyjn

y

Menedżer

danych

Bazy

danych

Katalo

g

*współbieżność

*Kopie

zapasowe

*odtwarzanie

Instrukcje

DLL

Kompilator

DLL

Uprzywilejowa

ne instrukcje

Zapytania

użytkownika

Programy

użytkowe

prekompilator

Kompilator

języka

gospodarz

a

Katalog

Przechow

y-wane

transakcj

e

Kompilato

r DML

Procesor

zapytań

Procesor

czasu

rzeczywisteg

o

Składniki typowego

systemu zarządzania

bazą danych (SZBD)

background image

Prof. dr hab. inż. S. Wiak

23

Organizacja plików dotyczy

Organizacja plików dotyczy sposobu, w jaki układa się dane

w fizycznych urządzeniach przechowywania danych, z
których

najważniejszymi

urządzenia

dyskowe.

Organizacje

plików

i

dostępów

wewnętrznie

powiązane. Poniżej zostaną omówione dwa główne typy
plików systemu relacyjnego: pliki sekwencyjne i

pliki

haszowane

.

Podstawową postacią organizacji

Podstawową postacią organizacji plików sekwencyjnych jest

plik nieuporządkowany. W tej postaci pliku rekordy są
ustawiane w pliku w porządku ich wstawiania.
Wstawianie do pliku nieuporządkowanego jest bardzo
proste.

Wyszukanie

rekordu

wymaga

natomiast

liniowego przeszukania całego pliku, rekord po rekordzie.
Dlatego do pliku o N rekordach średnio trzeba będzie
przeszukać N/2 rekordów.

background image

Prof. dr hab. inż. S. Wiak

24

Z tego powodu większość systemów stara się

utrzymywać pewną postać sekwencyjnej

organizacji pliku. W sekwencyjnym pliku

uporządkowanym rekordy są

uporządkowane według wartości jednego

lub więcej pól. W praktyce dotyczy to

zazwyczaj

klucza głównego pliku.

klucza głównego pliku.

Ogólnie rzecz biorąc, oznacza to, że chociaż

wstawianie wiąże się z większą ilością

przetwarzania niż w przypadku pliku

nieuporządkowanego, wyszukiwanie może

być zrealizowane za pomocą bardziej

efektywnych algorytmów dostępu. Jednym z

najbardziej znanych algorytmów jest

algorytm wyszukiwania binarnego, którego

działanie polega na ciągłym zmniejszaniu

obszaru wyszukiwania o połowę.

background image

Prof. dr hab. inż. S. Wiak

25

Klucz główny

to jedna lub więcej kolumn

tabeli, w których wartości jednoznacznie
identyfikują każdy wiersz tabeli.

Pliki haszowane

dostarczają bardzo szybkiego

dostępu

do

rekordów

na

podstawie

określonego kryterium. Plik haszowany musi
być zadeklarowany za pomocą tak zwanego

klucza haszowania

.

To oznacza, że w pliku

może być tylko jeden porządek haszowania

.

Wstawianie rekordu do pliku haszowanego
oznacza, że klucz rekordu jest przekazywany
do funkcji haszującej. Funkcja haszująca
tłumaczy logiczną wartość klucza na fizyczną
wartość klucza – względny adres bloku.

background image

Prof. dr hab. inż. S. Wiak

26

Powyżej zostały omówione pewne

mechanizmy dostępu, które są
wewnętrznie powiązane z leżącą u ich
podstaw organizacją plików. Dlatego, na
przykład, dostęp sekwencyjny jest
możliwy dla plików sekwencyjnych, a

dostęp haszowany – dla plików
haszowanych

. Poniżej zostanie

omówiony mechanizm dostępu, który
jest dodawany do bazy danych, aby
usprawnić jej działanie bez wpływu na
strukturę przechowywania danych –
indeks.

background image

Prof. dr hab. inż. S. Wiak

27

Podstawowa

idea

indeksu

polega

na

zastosowaniu dodatkowego pliku o dwóch
polach

, dodawanego do systemu baz

danych. Pierwsze pole indeksu zawiera
posortowaną listę logicznych wartości
kluczy, drugie pole – listę adresów bloków
dla wartości kluczy. Główny problem
polega na utrzymaniu odpowiednio małego
indeksu, tak aby mógł być przechowywany
w

pamięci

głównej.

Na

indeksie

wykonujemy

przetwarzanie

używając

algorytmu,

takiego

jak

wyszukiwanie

binarne.

Wyszukiwanie

binarne

jest

szybkim

algorytmem

przeszukiwania

posortowanej listy wartości kluczy.

background image

Prof. dr hab. inż. S. Wiak

28

W praktyce większość indeksów w

SZBD

jest

implementowana za pomocą pewnych postaci

B-drzew. Termin B-drzewo jest skrótem od

„drzewo wyważone” i oznacza hierarchiczną

strukturę danych.

W

systemie

baz

danych

z

wieloma

użytkownikami

transakcjami

nazywamy

procedury, które wprowadzają zmiany do bazy

danych lub które wyszukują dane w bazie

danych.

Transakcja może być zdefiniowana

jako logiczna jednostka pracy. Każda

transakcja

powinna

mieć

właściwości:

niepodzielność, spójność, izolacji i trwałości

(czasami używany skrót to ACID):

Niepodzielność.

Skoro transakcja składa się ze

zbioru akcji, menedżer transakcji powinien zapewnić,

że albo cała transakcja zostanie wykonana, albo w
ogóle nic.

background image

Prof. dr hab. inż. S. Wiak

29

Spójność.

Wszystkie transakcje muszą zachowywać

spójność i integralność bazy danych. Operacje
wykonywane na przykład przez transakcję
modyfikującą nie powinny pozostawiać bazy
danych w stanie niespójnym lub niepoprawnym

Izolacja.

Jeżeli transakcja modyfikuje dzielone

dane, to te dane mogą być tymczasowo niespójne.
Takie dane muszą być niedostępne dla innych
transakcji dopóty, dopóki transakcja nie zakończy
ich używać. Menedżer transakcji musi dostarczać
iluzji, że dana transakcja działa w izolacji od innych
transakcji.

Trwałość.

Gdy transakcja kończy się, wówczas

zmiany dokonane przez nią powinny zostać w pełni
utrwalone. To znaczy, nawet w wypadku awarii
sprzętu lub oprogramowania powinny one zostać
zachowane.

background image

Prof. dr hab. inż. S. Wiak

30

Modele danych

Każda baza danych, a także każdy SZBD

muszą się stosować do zasad określonego
modelu danych. W literaturze baz danych
termin modelu danych używany jest w
odniesieniu do architektury danych oraz
zintegrowanego

zbioru

wymagań

w

odniesieniu do danych. Model danych w
sensie architektury danych jest zbiorem
ogólnych zasad posługiwania się danymi.
Rozróżniamy

trzy

generacje

architektonicznych modeli danych:

Proste modele danych. W tym podejściu
obiekty są reprezentowane za pomocą struktury
rekordów zgrupowanych w strukturach plików.

background image

Prof. dr hab. inż. S. Wiak

31

Klasyczne modele danych

. Są to hierarchiczne,

sieciowe

i

relacyjne

modele

danych.

Hierarchiczny model danych jest rozszerzeniem

opisanego wyżej modelu prostego natomiast

sieciowy model jest rozszerzeniem podejścia

hierarchicznego. Relacyjny model danych jest

następcą

modeli

hierarchicznego

oraz

sieciowego.

Semantyczne modele danych

. Głównym

problemem związanym z klasycznymi modelami

danych, jest to, że zachowują one podstawową

orientację opartą na rekordach. Semantyczne

modele danych próbują dostarczyć bardziej

znaczących sposobów reprezentowania

znaczenia informacji, niż jest to możliwie przy

modelach klasycznych. Pod wieloma względami

obiektowy model danych może być uważany za

semantyczny model danych.

background image

Prof. dr hab. inż. S. Wiak

32

Model danych jako projekt rozumiany jest

jako zintegrowany, niezależny od
implementacji zbiór wymagań dotyczący
danych dla pewnej aplikacji. Mówimy więc
o modelu danych do przetwarzania
zamówień, modelu danych do księgowania
rachunków itp.

background image

Prof. dr hab. inż. S. Wiak

33

Podstawowym

celem

baz

danych

jest

zapewnienie niezależności danych, czyli:
odporność programów użytkowych na zmiany
struktury

pamięci

i

strategii

dostępu.

Rozróżniamy 2 typy niezależności danych:

1

Fizyczna niezależność danych

oznacza, że

rozmieszczenie fizyczne i organizacja danych
mogą być zmieniane bez zmiany programów
użytkowych jak i globalnej struktury logicznej
danych. Niezależność fizyczna wyraża się w
tym, że w wyniku zmian struktury pamięci
zmienia się jedynie definicja odwzorowania
między poziomem pojęciowym a poziomem
fizycznym.

background image

Prof. dr hab. inż. S. Wiak

34

2

Logiczna niezależność danych

oznacza,

że globalna struktura logiczna danych
może

być

zmieniana

bez

zmiany

programów użytkowych (zmiany nie
mogą oczywiście usunąć danych, z
których

te

programy

korzystają).

Niezależność logiczna wyraża się tym, że
w wyniku zmian na poziomie pojęciowym
zmienia się tylko definicja odwzorowania
między

poziomem

pojęciowym

a

poziomem zewnętrznym - umożliwia
zachowanie programów użytkowych w
nie zmienionej postaci.

background image

Prof. dr hab. inż. S. Wiak

35

Reprezentacja danych:

poziom pojęciowy - jest on abstrakcyjnym, lecz

wiernym

opisem

pewnego

wycinka

rzeczywistości.

poziom

wewnętrzny

-

określa

sposoby

organizacji danych w pamięci zewnętrznej.

poziom zewnętrzny - odnosi się do sposobu w

jaki dane są widziane przez poszczególne grupy

użytkowników.

Schemat

kanoniczny

jest

próbą

opisu

wewnętrznych

właściwości

danych.

Jeżeli

System Zarządzania Bazą Danych korzysta z

niego, który nie zmienia się bez względu na

rodzaj

zastosowanego

sprzętu,

oprogramowania

czy

fizycznej

struktury

danych, to można mówić o prawdziwej

niezależności danych. W praktyce nie stosuje

się go.

background image

Prof. dr hab. inż. S. Wiak

36










poziom zewnętrzny

poziom pojęciowy

poziom fizyczny

odwzorowanie zewnętrzno-pojęciowe

odwzorowanie pojęciowo-fizyczne

background image

Prof. dr hab. inż. S. Wiak

37

Schemat kanoniczny jest jako model danych,

przedstawiający

wewnętrzną

strukturę

danych. Tym samym niezależny jest od

poszczególnych dziedzin stosowania danych,

jak również od mechanizmów związanych z

oprogramowaniem lub sprzętem, które to

wykorzystywane są do reprezentowania oraz

zachowywania danych.

Statyczna i dynamiczna niezależność danych

:

o wiązaniu dynamicznym mówimy w trakcie

wyszukiwania danych. Schemat lub fizyczna

organizacja może być wtedy modyfikowana w

dowolnym momencie -

daje ono dynamiczną

niezależność danych

.

Statyczna niezależność

danych wymaga aby przeprowadzenie zmian w

schemacie ogólnym, podschemacie lub fizycznej

reprezentacji, zakończyło się zanim dowolny program

użytkowy używający tych danych zostanie wykonany.

background image

Prof. dr hab. inż. S. Wiak

38

Mamy trzy rodzaje danych:

1.

Dane zagregowane

- treść danej mającej

nazwę definiuje się tylko raz. Każdy

programista odwołujący się do określonej

danej musi zakładać tę samą treść tej

danej.

2.

Dane elementarne

- definiuje się tylko raz.

Programista odwołujący się do tych danych

musi zakładać tę samą ich treść. Z tego

samego zbioru danych elementarnych mogą

być utworzone różne rekordy lub segmenty.

3.

Dane subelementarne

- treści tych danych,

mających nazwę, mogą być różne w różnych

programach użytkowych. I tak np. jeden

program może odwoływać się do

siedmiocyfrowych, a inny do

ośmiocyfrowych danych elementarnych.

background image

Prof. dr hab. inż. S. Wiak

39

Historyczny przegl

Historyczny przegl

ą

ą

d baz danych

d baz danych

ARCHITEKTURA DWUWARSTWOWA

W myśl tej koncepcji systemy oparte na tej

architekturze podzielono na dwie części. Z

jednej strony została wydzielona pewna

część systemu (inaczej mówiąc proces)

odpowiedzialna za przechowywanie danych

i zachowanie ich pełnej spójności.

Z drugiej strony wydzielono pewne aplikacje

czy procesy , które pobierają dane od

użytkownika wyświetlają je i przetwarzają ,

a następnie albo przesyłają je do serwera w

celu zapamiętania, albo generują pewne

zapytania w celu uzyskania konkretnych

informacji z komputera-serwera.

background image

Prof. dr hab. inż. S. Wiak

40

W ten sposób cały proces przetwarzania

danych mamy podzielony na dwie części. Z
jednej strony mamy serwer
, który
przechowuje dane, ale potrafi także je
wyszukiwać z przechowywanej bazy na
podstawie zapytań poszczególnych
komputerów (klientów
), a z drugiej strony
mamy aplikacje klienta, które tak naprawdę
nic nie muszą wiedzieć o fizycznej
strukturze danych przechowywanych na
serwerze o sposobie ich zarządzania o
liczbie użytkowników, a muszą jedynie
umieć wysłać zapytanie do bazy ,
wyświetlić informacje na ekranie lub wysłać
do serwera polecenie aktualizujące dane.

background image

Prof. dr hab. inż. S. Wiak

41

Architektura klient/serwer

Architektura klient/serwer

Przesłanką architektury klient/serwer

jest podział

wykonywania zadań pomiędzy kilka procesorów

znajdujacych się w sieci. Każdy procesor jest

dedykowany do określonego zbioru zadań, które

jest w stanie wykonywać najefektywniej, co w

rezultacie daje zwiększenie wydajności i

skuteczności systemu jako całości.

Rozdzielenie wykonywania zadań

pomiędzy

procesory jest dokonywane poprzez

protokół

usług

: jeden procesor, klient, zleca pewną

usługę drugiemu procesorowi zwanym

serwerem, który ma tę usługę zrealizować.

Najbardziej powszechną implementacją

architektury klient/serwer

jest odseparowanie

części aplikacji będącej interfejsem użytkownika

od części odpowiedzialnej za dostęp do danych.

background image

Prof. dr hab. inż. S. Wiak

42

Typowym rozwiązaniem jest oczywiście kilka

komputerów pracujących w sieci. W takiej

konfiguracji mamy komputer (często jest to

maszyna unixowa) wyposażony w serwer

bazy danych, czyli pewne oprogramowanie

umożliwiające przechowywanie i

zarządzanie danymi.

Z drugiej strony mamy aplikacje klienta,

posadowioną najczęściej w środowisku

graficznym typu Windows, realizującą

komunikację z użytkownikiem tzn.

prezentującą dane, pozwalającą

wprowadzać i uaktualniać informację

zadawać nietypowe zapytania dotyczące

pogrupowanych informacji

przechowywanych na serwerze.

background image

Prof. dr hab. inż. S. Wiak

43

Zastosowanie środowiska graficznego

znacznie wzbogaciło możliwości
prezentacyjne, a jednocześnie
pozwoliło na bardziej naturalną
komunikację z użytkownikiem
z wykorzystaniem wykresów, map
cyfrowych, a także z wykorzystaniem
rozwiązań multimedialnych, co
pozwala na przechowywanie w bazie
danych obrazów i dźwięków.

background image

Prof. dr hab. inż. S. Wiak

44

Jaka jest zatem różnica między tym rozwiązaniem

a innymi architekturami?.

Zasadniczym

elementem

jest fakt , że w przypadku

architektury klient/serwer mamy do czynienia z

równolegle działającymi dwoma programami

(pakietami programów) czy procesami. Jeden z
nich realizuje usługi na żądania drugiego
procesu. Użycie sformułowania proces jest
właściwsze w tym przypadku od użycia słowa
program gdyż zauważmy, że do tej pory nie
stawialiśmy żadnych wymagań na ilość
komputerów użytych do realizacji tej koncepcji.
Okazuje się, że

system o architekturze

klient/serwer

można usadowić na jednym

komputerze, a odbywa się to poprzez możliwość
przełączania procesorów. Jest to jednak
rozwiązanie nietypowe.

background image

Prof. dr hab. inż. S. Wiak

45

ZALETY I WADY

Tworząc system klient/serwer musimy

zastanowić się nad tym co zyskujemy, a co

tracimy wybierając taką właśnie architekturę.

Zyskujemy przede wszystkim dużą

elastyczność całego systemu, gdyż możemy

pracować z różnymi środowiskami graficznymi

równocześnie, możemy operować danymi w

sposób spójny a jednocześnie niezależny od

ich bieżącej struktury.

Zarządzając z kolei

samym serwerem danych jesteśmy

uniezależnieni od konkretnych użytkowników

,

od problemów związanych ze wspólnym

dostępem, a co za tym idzie możemy

skoncentrować się na samej strukturze

informacji, na strukturach biznesowych, na

współbieżności i efektywności.

background image

Prof. dr hab. inż. S. Wiak

46

Pomimo bardzo istotnych i wymiernych

korzyści wybór tej technologii nie
odbywa się nigdy bez strat. Po pierwsze
stopień komplikacji jest dużo większy niż
pojedynczy pakiet programów
przystosowany do pracy na komputerach
pracujących w jakiejkolwiek sieci.
Musimy przy pisaniu programów
zapewniać mechanizmy kontroli
spójności, wielodostępu, co przy
rozległych systemach nie jest sprawą
trywialną. Po drugie pisząc aplikacje
klienckie musimy zapewnić ich właściwe
komunikowanie się z serwerem bazy
danych.

background image

Prof. dr hab. inż. S. Wiak

47

Aplikacja kliencka nie ma

bezpośredniego dostępu do danych
elementarnych, a jedynie za pomocą
specjalnego języka (najczęściej jest to
SQL) komunikuje się z serwerem
zadając pytania, nanosząc pewne
poprawki.

Przy architekturze

klient/serwer musimy także pamiętać
o

odpowiednich połączeniach

sieciowych - o pewnych standardach,
czyli zapewnieniu prawidłowego
porozumiewania się komputerów z
różnymi systemami.

background image

Prof. dr hab. inż. S. Wiak

48

W architekturze klient/serwer zakłada się,

że poszczególne komponenty środowiska

mogą pochodzić od różnych dostawców.

Wynika , to ze specjalizacji firm

produkujących poszczególne komponenty

systemów informatycznych. Jeżeli jakaś

firma specjalizuje się w środowisku

graficznym, to niekoniecznie musi być

najlepsza w produkcji serwerów baz

danych i odwrotnie. Stąd celowym jest

dobieranie najlepszych w swojej klasie

produktów, aby tworzyć najlepsze

systemy. Samo wybieranie komponentów

jest poważnym problemem, gdyż musimy

pamiętać o tym, że później te najlepsze

produkty muszą ze sobą uzgodnić pewien

standard wymiany informacji.

background image

Prof. dr hab. inż. S. Wiak

49

Na poziomie serwera bazy danych

najczęściej takim standardem jest język
SQL, chociaż pomimo przyjętych
pewnych norm każdy z serwerów
operuje pewnymi rozszerzeniami. Nie
korzystanie z tych rozszerzeń powoduje
, że tracimy pewną możliwość, która
jest zaimplementowana bardzo
wydajnie i decyduje o wyższości danego
serwera nad innym. Korzystanie z tych
rozszerzeń powoduje często mniejszą
skalowalność i przenośność aplikacji jak
w przypadku korzystania ze
standardowego SQL.

background image

Prof. dr hab. inż. S. Wiak

50

KOMUNIKACJA

KOMUNIKACJA

Innym zagadnieniem jest sposób

przekazywania danych. Sam SQL nie

oferuje określonych standardów, a jest

kwestią samego łącza. Powstaje problem

jak spowodować, aby aplikacja kliencka

pracująca w systemie Windows mogła

wymieniać dane z serwerem baz danych.

Jednym z rozwiązań jest standard zwany

ODBC, który zapewnia jednolity sposób

wymiany danych pomiędzy aplikacją

kliencką i aplikacją serwera. Obejmuje on

nie tylko sam format zapytań i format ich

przekazywania, ale również sposób

odbierania otrzymanych danych

i określania statusu czyli wyniku

wykonywanych operacji bazodanowych.

background image

Prof. dr hab. inż. S. Wiak

51

Powoduje to z jednej strony, że aplikacje
przestrzegające standard "rozumieją" się
i właściwie razem funkcjonują.
Rozwiązanie to ma tę wadę, że aplikacje
przystosowując się do standardu często
muszą rezygnować ze swoich
oryginalnych rozwiązań, często bardzo
wydajnych i pożytecznych. Tak więc
zdarza się, że standard ODBC w pewnych
sytuacjach nie jest najwydajniejszym
sposobem połączenia z bazą danych.

background image

Prof. dr hab. inż. S. Wiak

52

Dlatego właśnie producenci środowisk

tworzenia aplikacji klienckich bardzo
często dostarczają w ramach swoich
produktów

specjalne

dedykowane

sterowniki (połączenia) do niektórych
serwerów baz danych. Zaznaczyć jednak
należy,

że

taki

sterownik

jest

przeznaczony tylko do jednej konkretnej
bazy danych i z żadną inną się nie
komunikuje. Przejście na inny system
baz danych wymaga najczęściej wymiany
sterownika, ale istnieje groźba, że jeżeli
takiego sterownika nie ma to nie
możemy w sposób bezpośredni dokonać
modyfikacji systemu.

background image

Prof. dr hab. inż. S. Wiak

53

ROZWARSTWIENIE

Środowisko

klient/serwer

z jednej strony

elastyczne i wydajne ma swoje ograniczenia.

Okazuje się, że tworzenie bardzo dużych

systemów, gdzie aplikacja kliencka musi

realizować bardzo dużo funkcji, w których

mamy do czynienia nie z jednym ale z

wieloma serwerami danych rozproszonymi

między oddziałami danej organizacji zaczyna

nastręczać pewne trudności. Wiąże się to

z tym, że musimy zapewnić zarówno

wydajność wykonywania pewnych operacji,

jak i spójność danych. Z kolei

rozbudowywanie aplikacji klienckiej

powoduje ich ogromną czasami złożoność i

wysoki stopień komplikacji przez co

zwiększają się jej wymagania sprzętowe

background image

Prof. dr hab. inż. S. Wiak

54

W związku z tym pojawiła się tendencja do

wydzielania pewnych płaszczyzn
przetwarzania. Jeżeli przyjrzymy się
strukturze informacji w organizacji czy
firmie, to okaże się, że możemy tę

informację podzielić na pewne warstwy

.

Z jednej strony mamy samą

strukturę

informacji

, czyli fizycznie rzecz ujmując

strukturę bazy

danych

- strukturę

tablic, strukturę rekordów, listę pól, typy
wartości jakie mogą przyjmować dane.

background image

Prof. dr hab. inż. S. Wiak

55

Na tą strukturę nakłada się

warstwa

tzw. reguł biznesowych

.

Są to pewne

zależności pomiędzy danymi właściwe
dla konkretnej organizacji lub właściwe
w danym okresie istnienia organizacji.

Taką regułą może być np. algorytm

naliczania oprocentowania dla
kredytów, sposób udzielania zniżek na
bilety lotnicze itd. Są to więc pewne
algorytmy postępowania nie związane w
sposób bezpośredni z danymi, ale ich
sprecyzowanie jest konieczne dla
prawidłowego funkcjonowania firmy.

background image

Prof. dr hab. inż. S. Wiak

56

Trzecia warstwa

to tzw.

warstwa

prezentacyjna

określająca sposób

wprowadzania i wyświetlania danych.
Określa ona np. czy pewne dane
przedstawiamy w postaci listy, czy pól
do wprowadzania, czy dana ma mieć
strukturę dzień-miesiąc-rok, czy też
rok-miesiąc-dzień, czy jak klikniemy
myszą na nazwisku klienta to
wyświetlą się informacje o operacjach
przeprowadzonych na jego koncie itp.

background image

Prof. dr hab. inż. S. Wiak

57

Widać

z

tego,

że

sama struktura

informacji

narzuca

nam

podejście

wielowarstwowe do tworzenia systemu
informatycznego.

Wyraźnie wyłoniła się

pewna warstwa,

która nie dotyczy ani samej struktury
informacji ani sposobu jej prezentacji,
natomiast dotyczy reguł zarządzania tą
informacją.

Powstała wobec tego idea, która zakłada

umieszczenie tychże reguł biznesowych
w odpowiednim miejscu, czy też na
odpowiedniej płaszczyźnie architektury
klient/serwer.

background image

Prof. dr hab. inż. S. Wiak

58

W przypadku

typowej architektury

klient/serwer

mamy do czynienia

architekturą dwuwarstwową

(warstwa

klienta i warstwa serwera); reguły
biznesowe najczęściej są umieszczane w
aplikacji klienckiej.

Reguły, że na każde zamówienie musi być

jedna faktura, a każda faktura musi być
w trzech kopiach itp. umieszczono w
aplikacji klienta. Zmiana tych reguł
powodowała, że trzeba było wymieniać
wszystkie aplikacje klienckie bez
możliwości równoległego
funkcjonowania starej i nowej wersji.

background image

Prof. dr hab. inż. S. Wiak

59

Z drugiej strony mając serwer bazy

danych i funkcjonujące aplikacje
stajemy przed problemem tworzenia
nowych aplikacji tworzących czy
gromadzących nowe informacje w
oparciu o bazę danych.

Co zatem zrobić, aby te nowe aplikacje

nie zaburzyły już istniejących w
systemie? Jak zrobić, aby system
uchował spójność ze starymi
aplikacjami, a jednocześnie prawidłowo
funkcjonowały nowe?

background image

Prof. dr hab. inż. S. Wiak

60

NOWE ROZWIĄZANIA - ARCHITEKTURA

DWU I PÓŁ WARSTWOWA

Powstała idea przeniesienia pewnej warstwy

funkcjonalnej, czyli sposobów zarządzania i

przetwarzania

informacjami

na

stronę

serwera tak, aby aplikacje klienckie dostały

jedynie pewną listę funkcji, operacji, żądań

jakie mogą realizować, a nie miały

bezpośredniego dostępu do danych. Takie

umieszczenie po stronie serwera było

możliwe dzięki temu, że wiele serwerów baz

danych wyposażono w mechanizm zwany

procedurami

wbudowanymi

trigerami,

czyli

pewnymi

procedurami,

które

uruchamiają

się

automatycznie

przy

zachodzeniu pewnych zjawisk

.

background image

Prof. dr hab. inż. S. Wiak

61

Trigery

powodują np., że przy zmianie

pewnych danych inne się uaktualniają; gdy

usuwamy

z

naszej

bazy

informacje

o kliencie, to chcemy usunąć wszystkie

zamówienia jakie on złożył itd. Procedury

te powinny uruchamiać się automatycznie,

bez ingerencji użytkownika.

W takiej architekturze mamy zatem do

czynienia z

aplikacją kliencką

, która

nie

odwołuje

się

bezpośrednio

do

bazy

danych

, ale jedynie wywołuje pewne

operacje w serwerze danych, który bądź

udostępnia pewne dane bądź realizuje

wywołane procedury bazodanowe.

background image

Prof. dr hab. inż. S. Wiak

62

Drugim

elementem

zaimplementowane

w bazie

danych

reguły

biznesowe

wspólne

dla

wszystkich

aplikacji

klienckich.

Wymiana takiej reguły powoduje, że
sposób funkcjonowania aplikacji klienta
zmieni

się

dla

każdego

klienta

jednocześnie.

Taką aplikację z warstwą

kliencką

i warstwą

serwera

bazy

danych, który nie ogranicza się tylko do
przechowywania danych, ale również
realizuje funkcje biznesowe nazywamy
często

architekturą

dwu

i

pół

warstwową.

background image

Prof. dr hab. inż. S. Wiak

63

NOWE TRENDY – ARCHITEKTURA

NOWE TRENDY – ARCHITEKTURA

TRÓJWARSTWOWA

TRÓJWARSTWOWA

Jednak istnieją pewne wady tej architektury.

Język procedur wbudowanych i trigerów
jest dość skomplikowany, a najczęściej jest
to "dialekt" języka SQL z pewnymi
rozszerzeniami dotyczącymi przetwarzania
instrukcji strukturalnych. Niestety każdy
producent serwerów baz danych lansuje
nieco odmienny format tego języka i
trudno znaleźć dwie identyczne pod tym
względem bazy danych.

background image

Prof. dr hab. inż. S. Wiak

64

Stąd też istnieje groźba przepisywania od

nowa procedur w przypadku zmiany
serwera bazy danych. Nie jest to
szczególnie

skomplikowane,

gdyż

większość

procedur

ma

podobne

mechanizmy ale różnią się składnią.

Ponadto często reguły biznesowe są

bardziej skomplikowane niż te podane
jako przykłady i do ich realizacji nie
zawsze najodpowiedniejszy jest język
procedur

wbudowanych

serwera.

Wygodniejsze okazują się języki trzeciej
generacji.

background image

Prof. dr hab. inż. S. Wiak

65

Stąd istnieje potrzeba wprowadzania kodu poza

strukturą serwera bazy danych. Rodzi się

więc pojęcie trzeciej warstwy, warstwy która

byłaby niezależna zarówno od serwera jak też

od aplikacji klienckiej, a która odpowiadałaby

za przetwarzanie funkcjonalne samej

informacji.

W

ten

sposób

aplikacja

kliencka

nie

komunikowałaby się z bazą danych, a nawet

nie musiałaby wiedzieć o jego istnieniu, a

komunikowałaby się jedynie z pewnym

komputerem, na którym zainstalowany byłby;

tzw. serwer aplikacji.

Wykonywałby on

procedury na żądanie aplikacji klienckiej, a

one odwoływałyby się do bazy danych.

Mógłby on także oprócz odwoływania się do

bazy

samodzielnie

realizować

pewne

operacje.

background image

Prof. dr hab. inż. S. Wiak

66

Mógłby on dokonywać pewnych obliczeń

numerycznych,

a

nawet

inicjować

realizowanie

pewnych

operacji

bazodanowych na kilku serwerach baz
danych jednocześnie.

Warstwa aplikacyjna

jest wtedy odpowiedzialna za spójność
danych posadowionych na kilku serwerach
oraz za to, aby aplikacja kliencka nie
"wnikała"

w

to

gdzie

fizycznie

posadowione są dane, do których się
odwołuje.

W ten sposób warstwa środkowa

(aplikacyjna)

stanowiłaby

odrębną

płaszczyznę programową w architekturze
klient/serwer,

z

własnym

językiem

(środowiskiem) programistycznym.

background image

Prof. dr hab. inż. S. Wiak

67

Widać więc, że w łatwy sposób

posługując

się

architekturą

klient/serwer

możemy przeskalować

swoje

myślenie

od

poziomu

prostego

systemu

do

modelu

trójwarstwowego,

za

pomocą

którego tworzymy duże systemy
informatyczne.
W

architekturze

trójwarstwowej

istnieje

szereg

standardów

komunikowania

się

między

warstwami.

background image

Prof. dr hab. inż. S. Wiak

68

Tak jak mechanizm ODBC stosowany

jest

w

architekturze

dwuwarstwowej, tak tu możemy

mówić o standardzie RPC, czyli

zdalnym wywoływaniu procedur. Jest

to

jeden

ze

standardów

przetwarzania rozproszonego, kiedy

aplikacja

kliencka

wywołując

procedurę przekazuje parametry i

inicjuje wykonanie procedury na

innym komputerze,

który z kolei

wykonując pewne obliczenia zwraca

wyniki do procedury, która wywołała

je z aplikacji klienckiej.

background image

Prof. dr hab. inż. S. Wiak

69

Modele systemów zarządzania

Modele systemów zarządzania

bazami danych

bazami danych

(modele baz

(modele baz

danych)

danych)

Hierarchiczny

Obiektowy

Relacyjny

Sieciowy

background image

Prof. dr hab. inż. S. Wiak

70

Hierarchiczny model danych

Hierarchiczny model danych został opracowany w

wyniku analizy istniejących implementacji.
Model ten używa

dwóch struktur

, którymi są:

typy rekordów i związki nadrzędny-podrzędny

.

Typ rekordów jest nazwany strukturą danych,
złożoną ze zbioru nazwanych pól. Każde pole
jest używane do przechowywania prostego
atrybutu i jest mu przyporządkowany typ
danych.

Powiązanie nadrzędny-podrzędny jest związkiem

jeden-do-wiele

między dwoma typami

rekordów.

Mówimy, że typ rekordu po

stronie jeden związku jest nadrzędnym
typem rekordu; rekord po stronie wiele
jest podrzędnym typem rekordu

.

background image

Prof. dr hab. inż. S. Wiak

71

A więc, schemat hierarchiczny jest złożony z

wielu typów rekordów, powiązanych ze
sobą za pomocą związków nadrzędny-
podrzędny. Zauważmy, że schemat ten ma
wiele podobieństw do relacyjnego modelu
danych. Zasadniczymi różnicami są:

o

Struktury

danych

inne

:

w

hierarchicznym modelu danych mamy typy
rekordów; w relacyjnym modelu mamy
relacje i związki.

o

Związki są inaczej implementowane

; w

hierarchicznym modelu danych przez
powiązania

nadrzędny-podrzędny;

w

relacyjnym modelu danych przez klucze
obce.

background image

Prof. dr hab. inż. S. Wiak

72

W hierarchicznym modelu

danych operowanie danymi

jest wykonywane przez wbudowane funkcje dostępu
do baz danych w wybranym języku programowania
(tak zwanym języku gospodarza).

Istnieje wiele wewnętrznych

więzów integralności w

modelu hierarchicznym, które są zawsze obecne,
gdy tworzymy schemat hierarchiczny.

Przykładami

Przykładami

takich więzów są:

takich więzów są:

Nie mogą istnieć żadne wystąpienia rekordów, z
wyjątkiem

rekordu

korzenia

(najwyższego

w

hierarchii),

bez

powiązania

z

odpowiednim

wystąpieniem rekordu nadrzędnego. Oznacza to, że:

-

Nie można wstawić rekordu

podrzędnego dopóty,

dopóki nie zostanie powiązany z rekordem
nadrzędnym.

-

Usunięcie rekordu nadrzędnego

powoduje

automatyczne usunięcie wszystkich powiązanych z
nim rekordów podrzędnych.

background image

Prof. dr hab. inż. S. Wiak

73

Jeżeli podrzędny typ rekordu ma

związane dwa
lub więcej nadrzędnych typów
rekordów, to
rekord podrzędny musi zostać
powielony dla
każdego rekordu nadrzędnego

.

W hierarchicznym modelu bazy danych
(

HMBD

) dane mają strukturę, którą

można

przedstawić

jako

odwrócone

drzewo.

Jedna

z

tabel

pełni

rolę

„korzenia” drzewa, a pozostałe mają
postać „gałęzi” biorących swój początek w
korzeniu. Rysunek przedstawia diagram
struktury

HMBD

.

background image

Prof. dr hab. inż. S. Wiak

74

Diagram modelu hierarchicznego. (Baza

danych pośredników. W przykładzie każdy

pośrednik pracuje dla kilku muzyków i ma

pewną liczbę klientów, którzy zamawiają u

niego obsługę muzyczną różnych imprez.

Klient zawiera umowę z muzykiem przez

pośrednika i u tego właśnie pośrednika uiszcza

należność za usługę.).

background image

Prof. dr hab. inż. S. Wiak

75

W hierarchicznym modelu bazy danych dane mają

strukturę odwróconego drzewa, podobnie jak
struktura drzewa katalogowego w systemie
DOS® czy Windows®. W modelu tym tabela
nadrzędna powiązana jest z wieloma tabelami
podrzędnymi,

natomiast

jedna

tabela

podrzędna powiązana może być tylko z jedną
tabelą nadrzędną. Na przykład:

Schemat

hierarchicznego

modelu bazy danych

background image

Prof. dr hab. inż. S. Wiak

76

Relacje w HMBD

są reprezentowane w kategoriach

ojciec/syn”.

Oznacza to, że tabela nadrzędna

(ojciec) może być powiązana z wieloma tabelami

podrzędnymi (syn), lecz pojedyncza tabela

podrzędna może mieć tylko jedną tabelę

nadrzędną. Aby uzyskać dostęp do danych w

modelu hierarchicznym, użytkownik zaczyna od

korzenia i przedziera się przez całe drzewo

danych, aż do interesującego go miejsca.

Oznacza to, że użytkownik musi dobrze znać

strukturę bazy danych.

Zaletami tego modelu

danych jest szybkie

przywoływanie

potrzebnych

danych

oraz

automatycznie

wbudowana

integralność

odwołań.

Największym problemem

modelu hierarchicznego

jest nadmiarowość danych ze względu na

niezdolność do obsługi złożonych relacji.

background image

Prof. dr hab. inż. S. Wiak

77

Hierarchiczny

model

danych

był

z

powodzeniem stosowany w systemach
zapisu taśmowego, wykorzystywanych w
komputerach

typu

mainframe”

do

późnych lat siedemdziesiątych, i zdobył
dużą popularność w firmach polegających
na tych systemach.

Pomimo tego, że

HMBD

zapewniał szybki,

bezpośredni

dostęp

do

danych

i

znajdował zastosowanie w rozwiązaniu
wielu problemów, narastała potrzeba
wprowadzenia nowego modelu danych
nie wymagającego wprowadzania tak
dużej

nadmiarowości

danych

zaburzających integralność bazy.

background image

Prof. dr hab. inż. S. Wiak

78

Obiektowy model danych

Pod

koniec

lat

osiemdziesiątych

zapowiadano, że systemy baz danych
mające za podstawę obiektowy model
danych, istotnie różny od relacyjnego
modelu

danych,

prześcigną

systemy

relacyjnych baz danych w połowie lat
dziewięćdziesiątych. Chociaż tak się nie
stało, nie ma wątpliwości, że modele
obiektowe wywierają wpływ na rozwój
systemów

informatycznych.

Dowodem

tego może być fakt, że wielu producentów
relacyjnych

SZBD

zaczyna

oferować

modele obiektowe i twierdzi, że

SQL 3

zwraca się w kierunku

obiektowości.

background image

Prof. dr hab. inż. S. Wiak

79

We współczesnej informatyce

pojęcie

obiektowości

ma

wiele

różnych

znaczeń. Termin ten był po raz pierwszy
zastosowany w odniesieniu do grupy
języków programowania wywodzących
się z języka będącego odkryciem
pochodzenia

skandynawskiego,

znanego jako

Simula

. Język

Simula

był

pierwszym językiem, który wprowadził
pojęcie struktur danych i procedur.

background image

Prof. dr hab. inż. S. Wiak

80

Dopiero

niedawno

zastosowano

obiektowość

w dziedzinie baz danych.

Główną

różnicą

między

obiektowymi

językami programowania a bazami danych
jest to, że obiektowe bazy danych
wymagają istnienia trwałych obiektów.

W obiektowych językach programowania

obiekty istnieją tylko przez krótki czas
przy wykonywaniu programu.

W obiektowych bazach danych obiekty

pozostają zapisane w pamięci pomocniczej
przed i po wykonaniu programów

.

background image

Prof. dr hab. inż. S. Wiak

81

Często stwierdza się,

że model relacyjny był

odpowiedni dla zastosowań tradycyjnych takich
jak

zastosowania

bankowe,

ale

jest

nieadekwatny dla nowoczesnych zastosowań w
takich dziedzinach jak np. CAD (Computer Aided
Design).

Zważywszy

na

wyposażenie

współczesnych systemów relacyjnych w takie
cechy jak możliwość pracy z multimediami,
możliwość umieszczania dowolnie długich ciągów
znaków zmiennej długości itp., teoretycznie nie
ma przeszkód w zaimplementowaniu dowolnego
zastosowania różnych dziedzin.

Istotną zaletą modelu obiektowego jest

wyższy poziom abstrakcji

, który umożliwia

zaprojektowanie i zaprogramowanie tej samej
aplikacji

w

sposób

bardziej

elastyczny,

konsekwentny i jednolity.

background image

Prof. dr hab. inż. S. Wiak

82

Model obiektowy dotyczy głównie

struktur

danych przechowywanych w obiektowej
bazie

danych.

Wyznacza

on

bazę

intelektualną i pojęciową określającą
budowę

struktur

danych

oraz

komunikację pomiędzy ludźmi.

Filarami, na których opiera się każdy

model obiektowy są pojęcia: złożone
obiekty, tożsamość, powiązania, klasy i
typy, hierarchia (lub inna struktura)
dziedziczenia,

metody,

komunikaty,

hermetyzacja,

przesłanianie,

polimorfizm.

background image

Prof. dr hab. inż. S. Wiak

83

Celem nadrzędnym obiektowości

jest lepsze

dopasowanie modeli pojęciowych i modeli
relacyjnych

systemów

do

wrodzonych

instynktów,

własności

psychologicznych,

mentalnych

mechanizmów

percepcji

i

rozumienia świata.

Obiekt jest pakietem danych i procedur

. Dane są

trzymane w atrybutach obiektu. Procedury są
definiowane za pomocą metod obiektu. Metody

uaktywniane

przez

komunikaty

przekazywane między obiektami.

Obiektowy model danych powinien

dostarczać

środków do realizacji tożsamości obiektów. Jest
to możliwość rozróżnienia dwóch obiektów o
tych samych cechach.

background image

Prof. dr hab. inż. S. Wiak

84

Relacyjny model danych jest modelem

danych zorientowanym na wartości

. Nie

wprowadza

możliwości

przyporządkowania

jednoznacznego

identyfikatora każdemu obiektowi w
bazie danych.

Dlatego

dwie

identyczne

krotki

w

relacyjnym modelu danych wskazują na
ten sam obiekt. Dwa identyczne rekordy
w

obiektowej

bazie

danych

mogą

odwoływać

się

do

dwóch

różnych

obiektów

dzięki

wprowadzeniu

jednoznacznego

identyfikatora

generowanego przez system.

background image

Prof. dr hab. inż. S. Wiak

85

Wszystkie obiekty

muszą mieć własność hermetyzacji.

Jest to proces umieszczania danych i procesu w
jednym opakowaniu w ramach zdefiniowanego
interfejsu i udostępniania go z zewnątrz w sposób
kontrolowany przez ten interfejs. Hermetyzacja
przejmuje się niejawnie w definicję obiektu, ponieważ
wszystkie

operacje

na

obiektach

muszą

być

wykonywane przez zdefiniowane procedury dołączone
do obiektów.

Klasa

obiektów

jest

zgrupowaniem

podobnych

obiektów. Używamy jej do określenia wspólnych dla
grupy obiektów atrybutów, metod i związków.
Obiekty są więc instancjami pewnej klasy. Mają one
te same atrybuty i metody. Innymi słowy, klasy
obiektów definiują schemat bazy danych – główny
temat dziedziny projektowania baz. Obiekty definiują
zawartość bazy danych – główny temat dziedziny
implementacji baz danych.

background image

Prof. dr hab. inż. S. Wiak

86

Tak więc bazy danych zastosowano w nowych

dziedzinach, formułując nowe, wymagania
związane z

zarządzaniem danymi.

Przykładami takich wymagań są:

Dane

niejednorodne

(nonhomogeneous

data).

Tradycyjne modele danych operują na

jednorodnych

zbiorach

obiektów,

charakteryzujących się niewielką liczbą typów
i dużą liczbą wystąpień każdego typu

. Nowe

zastosowania baz danych wymagają natomiast
różnorodnej

kolekcji

projektowanych

obiektów, które

charakteryzuje duża liczba

typów oraz stosunkowo mała liczba wystąpień
każdego typu.

background image

Prof. dr hab. inż. S. Wiak

87

Długie łańcuchy znakowe o zmiennej
długości (variable length & long strings).

Zapis informacji multimedialnej w postaci
cyfrowej zawiera długie łańcuchy znakowe,
przy czym długość tych łańcuchów jest
zmienna. Tradycyjne bazy danych głównie
pracują

na

formatowanych

liczbach,

krótkich

łańcuchach

i

rekordach

o

ustalonym formacie.

Obiekty

złożone

(complex

objects).

Cechują się one hierarchiczną strukturą
danych. Często muszą być traktowane jako
niepodzielne

jednostki

danych,

mieć

charakter abstrakcyjny. Konwencjonalne
modele danych nie zapewniają takiego
poziomu abstrakcji.

background image

Prof. dr hab. inż. S. Wiak

88

Wielowersyjność (version control).

W wielu

współczesnych zastosowaniach potrzebne jest
zachowanie poprzednich lub alternatywnych
wersji obiektu dla prześledzenia historii
procesu (back tracking) lub jego odtworzenia
(recovering).

Tradycyjne

bazy

danych

reprezentują dane aktualne; stare wersje
danych nie są zachowywane lub nie są
bezpośrednio dostępne dla użytkownika.

Ewolucja schematu (scheme evolution).

Bazy

danych wspomagające projektowanie, z reguły
podlegają modyfikacji schematu, w miarę
ewoluowania projektowanych przedmiotów.
Schemat w konwencjonalnych bazach danych
nie podlega tak szybkim zmianom.

background image

Prof. dr hab. inż. S. Wiak

89

Obiekty

równoważne

(equivalent

objects).

Projektowany obiekt można

rozpatrywać

z

różnych

punktów

widzenia, co odpowiada istnieniu w bazie
danych jego różnych reprezentacji. W
przypadku zmiany wprowadzonej do
jednej reprezentacji obiektu, system
zarządzania bazą powinien dokonać
odpowiednich zmian we wszystkich
pozostałych

reprezentacjach

danego

obiektu. Tradycyjne bazy danych nie
mają mechanizmów do modelowania
semantyki obiektów równoważnych.

background image

Prof. dr hab. inż. S. Wiak

90

Długie

transakcje

(long

transactions).

Transakcja jest sekwencją operacji zapisywania i
odczytu, która nie narusza integralności bazy
danych.

W

tradycyjnych

bazach

danych

transakcje są zazwyczaj krótkie i dotyczą
jednego rekordu lub określonej grupy rekordów.

Inna sytuacja powstaje w bazach danych
wspomagających projektowanie. Projektowanie i
testowanie

jednego

obiektu

może

trwać

tygodnie przed ostatecznym wprowadzeniem
tego obiektu do bazy danych. Dlatego w
przypadku odrzucenia danej wersji projektu,
system zarządzania bazą danych powinien być
zdolny do przywrócenia odpowiednio wczesnego
stanu transakcji, by można było iteracyjnie
powtórzyć dany etap projektowania.

background image

Prof. dr hab. inż. S. Wiak

91

Tradycyjne

modele

danych,

w

tym

najbardziej popularny model relacyjny, nie

były w stanie sprostać lub w efektywny

sposób spełniać tych wymagań. Dlatego

też, w drugiej połowie lat 80-tych,

popularność w systemach informatycznych

zyskuje podejście obiektowe.

Szczególne znaczenie w rozwoju systemów

obiektowych

ma

dynamiczny

rozwój

języków

programowania

opartych

na

pojęciu obiektu. Początku tego trendu w

programowaniu należy szukać w latach

powstania języka Simula (1966 r.) oraz

jego

następcy

-

języka

Smalltalk.

Większość obecnych obiektowych baz

danych używa języka C++ (1980 r.) jako

podstawę opisu języka baz danych.

background image

Prof. dr hab. inż. S. Wiak

92

Powstaje więc kilka kierunków rozwoju baz

danych.

Po pierwsze

Po pierwsze

– dalszy rozwój systemów

opartych o relacyjny model danych

.

Prawdopodobnie będzie jeszcze długo w
powszechnym użyciu, ze względu na:

ich obecne bardzo duże rozpowszechnienie,

zaufanie

jakim

cieszą

się

wśród

użytkowników,

doprowadzoną do perfekcji technologię
dotyczącą w szczególności ochrony danych
i optymalizacji zapytań,

prostotę i elastyczność relacyjnego modelu
danych

.

background image

Prof. dr hab. inż. S. Wiak

93

Drugi kierunek

Drugi kierunek

rozwoju baz danych to

obiektowo – relacyjne bazy danych.

Ich twórcy

starają się zachować jak najwięcej z modelu

relacyjnego (aby wykorzystać osiągnięcia relacyjnych

baz danych), a jednocześnie wprowadzać pewne

aspekty obiektowe. Przedstawicielem tego kierunku

jest standard SQL3.

Trzecim

kierunkiem

Trzecim

kierunkiem

rozwoju,

najbardziej

obiecującym, to obiektowe bazy danych.

Standardem takich baz jest

ODMG (Object

Database Management Group),

organizacja

skupiająca firmy tworzące obiektowe bazy danych.

ODMG stworzyła standardy takich baz, najnowszą z

wersji jest ODMG 2.0. Elementami tego standardu
są:

ODL (Object Definition Language

– Język

definiujący

obiekty),

OQL

(Object

Query

Language

– Obiektowy język zapytań) oraz tzw.

wiązania do trzech języków programowania: C++,

Smalltalk i Java.

background image

Prof. dr hab. inż. S. Wiak

94

Relacyjny model bazy danych (RMBD)

Twórcą relacyjnego modelu danych jest E. F.

Codd. W 1970 roku opublikował pracę, która
położyła

fundament

pod

najbardziej

ze

współczesnych modeli danych. Od 1968 do
1988 r. Codd opublikował ponad 30 prac na
temat relacyjnego modelu danych. Codd
powołuje się na trzy problemy, którym
poświęca

swoją

teoretyczną

pracę.

Po

pierwsze, twierdzi, że wcześniejsze modele
danych traktowały dane w niezdyscyplinowany
sposób.

Jego model, przy użyciu ścisłych

narzędzi matematycznych, zwłaszcza teorii
zbiorów, wprowadza zdyscyplinowany sposób
posługiwania się danymi

.

background image

Prof. dr hab. inż. S. Wiak

95

Codd oczekiwał, że w wyniku stosowania

ścisłych metod zostaną osiągnięte dwie
podstawowe korzyści.

Po pierwsze

,

zostanie

poprawiony

możliwy

do

uzyskania

poziom niezależności między

programami a danymi

.

Po drugie

,

wzrośnie

wydajność

tworzenia

oprogramowania.

background image

Prof. dr hab. inż. S. Wiak

96

Zgodnie z teorią model danych w relacyjnych

bazach

danych

składa

się

z trzech

podstawowych elementów:

Relacyjnych struktur danych

Operatorów

relacyjnych

umożliwiających

tworzenie, przeszukiwanie i modyfikację bazy
danych

Więzów integralności jawnie lub niejawnie
określających wartości danych

Podstawową strukturą danych jest relacja

będąca podzbiorem iloczynu kartezjańskiego
dwóch wybranych zbiorów reprezentujących
dopuszczalne wartości. W bazach danych
relacja przedstawiana jest w postaci tabeli.

Relacja jest zbiorem krotek posiadających taką
samą strukturę, lecz różne wartości.

background image

Prof. dr hab. inż. S. Wiak

97

Każda

krotka

odpowiada

jednemu

wierszowi tablicy. Każda krotka posiada
co najmniej jeden atrybut odpowiadający
pojedynczej kolumnie tablicy. Każda
relacja (tablica) posiada następujące
własności:

krotki (wiersze) są unikalne

atrybuty (kolumny) są unikalne

kolejność krotek (wierszy) nie ma
znaczenia

kolejność atrybutów (kolumn) nie ma
znaczenia

wartości atrybutów (pól) są atomowe

background image

Prof. dr hab. inż. S. Wiak

98

Przykład tabeli wraz z jej

elementami

background image

Prof. dr hab. inż. S. Wiak

99

Dokumentacja

systemów

zarządzania

bazami danych posługuje się najczęściej
terminologią tabela, wiersz i kolumna, a
nie terminologią relacyjną. Wynika to z
tego, że operacje na relacjach są
opisywane za pomocą matematycznych
operacji na zbiorach i relacjach, które są
ścisłe,

ale

trudno

zrozumiałe

dla

przeciętnego użytkownika. Natomiast
posługiwanie się tabelami, wierszami i
kolumnami jest mniej formalne i ścisłe,
ale bardziej przejrzyste. W dalszej części
będzie stosowana zarówno jedna jak i
druga terminologia.

background image

Prof. dr hab. inż. S. Wiak

100

Tabela może reprezentować:

zbiór encji wraz z atrybutami

zbiór powiązań pomiędzy encjami wraz z

ich atrybutami

zbiór encji wraz z atrybutami i ich

powiązania z innymi encjami (wraz z

atrybutami)

Każdy wiersz w tabeli reprezentuje pojedynczą

encję

,

powiązanie lub encję wraz z

powiązaniami

.

W tabeli nie powinny powtarzać

się dwa identyczne wiersze - zabezpieczenie

przed tym powtórzeniem jest realizowane

poprzez pola kluczowe.

Wiersze w odróżnieniu

od kolumn są dynamiczne - działanie bazy

danych polega na dopisywaniu, modyfikacji i

usuwaniu wierszy.

background image

Prof. dr hab. inż. S. Wiak

101

W przypadku projektowania tabeli w bazie

danych należy stosować się do następujących

wskazówek:

Używaj nazw opisowych do nazwania kolumn

tabeli. Kolumny nie powinny mieć znaczenia

ukrytego, ani reprezentować kilku atrybutów

(złożonych w pojedynczą wartość).

Bądź konsekwentny w stosowaniu liczby

pojedynczej lub mnogiej przy nazywaniu tabeli.

Twórz tylko te kolumny, które są niezbędne do

opisania modelowanej encji lub powiązania -

tabele z mniejszą ilością kolumn są łatwiejsze

w użyciu.

Utwórz kolumnę pól kluczowych dla każdej

tabeli.

Unikaj powtarzania informacji w bazie danych

(normalizacja).

background image

Prof. dr hab. inż. S. Wiak

102

Baza danych jest faktycznie zbiorem struktur danych

służących do organizowania i przechowywania

danych. W każdym modelu danych i w
konsekwencji w każdym

SZBD (SZBD - System

Zarządzania Bazą Danych)

musimy mieć do

dyspozycji zbiór reguł określających

wykorzystanie takich struktur danych w

aplikacjach baz danych. Tworząc definicję danych

używamy wewnętrznych struktur danych z myślą

o konkretnym zadaniu.

Jest tylko jedna struktura danych w relacyjnym

modelu danych – relacja

. W związku z tym, że

pojęcie relacji jest matematyczną konstrukcją,

relacja jest tabelą, dla której jest spełniony

następujący zbiór zasad:

1.

Każda relacja w bazie

danych ma jednoznaczną

nazwę. Według Codda dwuwymiarowa tabela jest

matematycznym zbiorem, a matematyczne zbiory

muszą być nazywane jednoznacznie.

background image

Prof. dr hab. inż. S. Wiak

103

2.

Każda kolumna

w relacji ma jednoznaczną

nazwę w ramach jednej relacji. Każda
kolumna relacji jest również zbiorem i dlatego
powinna być jednoznacznie nazwana.

3.

Wszystkie wartości

w kolumnie muszą być

tego samego typu. Wynika to z punktu 2.

4.

Porządek kolumn

w relacji nie jest istotny.

Schemat relacji – lista nazw jej kolumn – jest
również matematycznym zbiorem. Elementy
zbioru nie są uporządkowane.

5.

Każdy wiersz

w relacji musi być różny. Innymi

słowy, powtórzenia wierszy nie są dozwolone
w relacji.

6.

Porządek wierszy

nie jest istotny. Skoro

zawartość relacji jest zbiorem, to nie powinno
być określonego porządku wierszy relacji

.

background image

Prof. dr hab. inż. S. Wiak

104

7.

Każde

pole

leżące

na

przecięciu

kolumny/wiersza w relacji powinno zawierać

wartość atomową. To znaczy, zbiór wartości

nie jest dozwolony na jednym polu relacji.

W swojej pracy na

oznaczenie elementów

swojego

modelu

danych

Codd

użył

terminologii matematycznej.

Kolumny tabeli

to były atrybuty. Wiersze tabeli to były

krotki.

Liczba kolumn w tabeli to stopień

tabeli. Liczba wierszy w tabeli to liczebność

tabeli.

Każda relacja musi mieć klucz główny

. Dzięki

temu możemy zapewnić, aby wiersze nie

powtarzały się w relacji. Klucz główny to

jedna lub więcej kolumn tabeli, w których

wartości jednoznacznie identyfikują każdy

wiersz tabeli.

background image

Prof. dr hab. inż. S. Wiak

105

Klucze obce

są sposobem łączenia danych

przechowywanych w różnych tabelach. Klucz obcy

jest kolumną lub grupą kolumn tabeli, która

czerpie swoje wartości z tej samej dziedziny co

klucz główny tabeli powiązanej z nią w bazie

danych.

W systemach relacyjnych

wprowadzono

specjalną wartość, aby wskazać niepełną

lub nieznaną informację – wartość

null

. Ta

wartość, różna od zera i spacji, jest

szczególnie użyteczna przy powiązaniu

kluczy głównego i obcego. Pojęcie wartości

null nie jest jednak do końca akceptowane.

Codd utrzymuje, że wprowadzenie wartości

null do systemu relacyjnego zmienia

konwencjonalną logikę dwuwartościową

(prawda, fałsz) na logikę trójwartościową

(prawa, fałsz, nieznane).

background image

Prof. dr hab. inż. S. Wiak

106

Schemat relacji jest to zbiór

R = {A

1 ,

A

2 ,.......,

A

n

}

gdzie

A

1 ,

A

2

, ..., A

n

są atrybutami

( nazwami kolumn ).

Każdemu atrybutowi przyporządkowana jest

dziedzina

DOM ( A),

czyli zbiór

dopuszczalnych wartości.  

 
Dziedziną relacji o schemacie

R = {A

1 ,

A

2 ,.......,

A

n

}

nazywamy sumę dziedzin wszystkich

atrybutów relacji:

DOM ( R) = DOM ( A1)

DOM ( A2) ...DOM ( An)

background image

Prof. dr hab. inż. S. Wiak

107

Relacja o schemacie

R = {A

1 ,

A

2 ,.......,

A

n

}

jest to skończony zbiór

r = { t

1

, t

2

, ... ,

t

m

}

odwzorowań

t

i

: R DOM ( R)

takich, że dla

każdego

j, 1<= j <= n , t

i

( A

j

) DOM

( A

j

)

Każde takie odwzorowanie nazywa się

krotką (lub wierszem).

krotką (lub wierszem).

Krotka

odpowiada wierszowi w tabeli.

background image

Prof. dr hab. inż. S. Wiak

108

System zarządzania relacyjną bazą danych, w

skrócie SZRBD

, to program wykorzystywany

do tworzenia i modyfikowania relacyjnych
baz danych. Służy również do generowana
aplikacji,

z

której

będzie

korzystał

użytkownik gotowej bazy.

Oczywiście jakość danego SZRBD zależy od

stopnia, w jakim implementuje on relacyjny
model logiczny. Nawet „prawdziwe” SZRBD
niekiedy diametralnie odbiegają od siebie w
tej kwestii, a pełnej implementacji

RMBD

nadal nie udało się nikomu osiągnąć. Mimo
to

obecne

SZRBD

potężniejsze

i

wszechstronniejsze niż kiedykolwiek.

background image

Prof. dr hab. inż. S. Wiak

109

RMBD relacyjny model baz danych

. Po

raz pierwszy zaprezentowany przez dr
E.F. Codda w lipcu 1970 roku w pracy
Relacyjny model logiczny dla dużych
banków. Model został stworzony w
oparciu o dwie gałęzie matematyki
teorię mnogości i rachunek predykatów
pierwszego rzędu.

background image

Prof. dr hab. inż. S. Wiak

110

Systemy zarządzania relacyjnymi

bazami danych

były wytwarzane przez sporą liczbę producentów
oprogramowania

od

wczesnych

lat

siedemdziesiątych. Programy te działały na
różnych platformach sprzętowych i pod różnymi
systemami operacyjnymi. Istnieją implementacje
SZRBD na praktycznie dowolny komputer.

Przez pewien czas po stworzeniu modelu relacyjnego

SZRBD

były pisane tylko na komputery

mainframe

.

Dwoma

takimi

programami, napisanymi

we

wczesnych latach siedemdziesiątych, były System
R,

opracowany

przez

IBM

w

laboratorium

badawczym w San Jose, oraz INGRES (

interaktywny

System Obsługi Grafiki; ang. Interactive Graphics
Retrieval System

), powstały na Uniwersytecie

Berkeley. Oba te systemy przysłużyły się znacząco
do upowszechnienia modelu relacyjnego.

background image

Prof. dr hab. inż. S. Wiak

111

W miarę jak zalety

RMBD

stawały się coraz

wyraźniejsze,

wiele

organizacji

zaczęło

powoli przechodzić z modeli hierarchicznych
i sieciowych na model relacyjny, stwarzając
tym samym popyt na lepsze i większe
programy SZRBD. Lata osiemdziesiąte były
okresem burzliwego rozwoju komercyjnych
systemów zarządzania dla komputerów

mainframe

, jak np.

Oracle korporacji Oracle,

czy DB2 IBM.

background image

Prof. dr hab. inż. S. Wiak

112

We wczesnych latach osiemdziesiątych do

powszechnego użytku zaczęły wchodzić

komputery osobiste, a razem z nimi,

przeznaczone dla nich, SZRBD. Niektóre z

wcześniejszych programów, jak

dBase

firmy Ashton-Tate czy FoxPro z Fox

Software

,

były

jedynie

prostymi

systemami

zarządzania

danymi,

zapisanymi

w

plikach.

Historia

prawdziwych SZRBD dla komputerów PC

rozpoczęła się wraz z wejściem na rynek

programów

R:BASE firmy Microrim oraz

Paradox firmy Ansa Software

. Każdy z tych

produktów przyczynił się do udostępniania

użytkownikom

komputerów

domowych

możliwości uprzednio zarezerwowanych

dla systemów mainframe.

background image

Prof. dr hab. inż. S. Wiak

113

W miarę jak coraz więcej użytkowników

wchodziło w kontakt z bazami danych, po

koniec lat osiemdziesiątych i na początku

dziewięćdziesiątych potrzeba szerszego

udostępnienia danych gromadzonych w

owych bazach stała się pilna.

Pomysł

centralnie ulokowanej bazy dostępnej dla

dowolnej liczby użytkowników wydawał

się bardzo kuszący.

Poza zwiększeniem

szybkości

systemu,

przechowywanie

danych w jednym miejscu znacznie

ułatwiłoby

ich

obsługę

i

ochronę.

Producenci oprogramowania baz danych

odpowiedzieli na to zapotrzebowanie,

opracowując system

SZRBD typu klient-

serwer

.

background image

Prof. dr hab. inż. S. Wiak

114

W tym typie SZRBD

dane znajdują się w

centralnym komputerze, nazywanym

serwerem

bazy danych

, a użytkownicy uzyskują do nich

dostęp, wykorzystując aplikacje zainstalowane
w ich własnych komputerach PC, nazywanych

klientami bazy danych

.

Serwer „troszczy się” zarówno o integralność

bazy, jak i o ich bezpieczeństwo, umożliwiając
stworzenie wielu różnych aplikacji-klientów,
których

zastosowanie

nie

wyklucza

się

nawzajem

i

nie

zagraża

danym

przechowywanym na serwerze. Zarówno sama
baza danych, jak i obsługujące ją aplikacje są
nadzorowane przez

oprogramowanie SZRBD

typu klient-serwer.

background image

Prof. dr hab. inż. S. Wiak

115

Bazy

danych typu

klient-serwer

obecnie

szeroko

wykorzystywane

przy obsłudze dużych ilości danych
współdzielonych

przez

wielu

użytkowników.

Najnowsze systemy

zarządzania

takimi bazami to między

innymi:

Microsoft SQL Serwer

firmy

Microsoft,

Oracle 7

Cooperative

Server korporacji Oracle czy

Sybase

System 11 SQL Server

firmy

Sybase

.

background image

Prof. dr hab. inż. S. Wiak

116

Systemy zarządzania

relacyjnymi bazami danych

mają za sobą długą historię, a rola odgrywana

przez nie w obsłudze danych zarówno w dużych,

jak i małych organizacjach jest trudna do

przecenienia. Należy oczekiwać, że w niedługiej

przyszłości wpływ tych programów na nasze

życie ulegnie dalszemu zwiększeniu na skutek

integracji ich możliwości z architekturą sieci

Internet.

Model

został

oparty

na

dwóch

gałęziach

matematyki – teorii mnogości i rachunku

predykatów pierwszego rzędu

. W

RMBD

dane

przechowywane są w tabelach. Każda tabela

składa się z rekordów oraz pól. Fizyczna

kolejność pól i rekordów w tabeli jest całkowicie

bez znaczenia. Każdy rekord jest wyróżniany

przez jedno pole zawierające unikatową wartość.

Te dwie cechy RMBD umożliwiają trwanie danych

niezależnie od sposobu, w jaki przechowuje je

komputer.

background image

Prof. dr hab. inż. S. Wiak

117

Użytkownik nie musi zatem znać fizycznego

położenia rekordu, który chce odczytać. To

odróżnia relacyjny model danych od modelu

hierarchicznego

i

sieciowego,

gdzie

użytkownik musiał opanować strukturę bazy

danych, by móc odczytać interesujące go

dane. Rysunek przedstawia diagram modelu

RMBD.

Relacje w RMBD można podzielić na trzy grupy:

jeden – do – jednego,

jeden – do – wielu

wiele – do – wielu.

Każde dwie tabele, między którymi istnieje

relacja, są ze sobą jawnie powiązane,

ponieważ dzielone przez nie pola zawierają

odpowiadające sobie wartości.

background image

Prof. dr hab. inż. S. Wiak

118

1 – 1

- jeden do jednego - relacja ta nazywana jest

związkiem jednoznacznym. W związku tym
jednemu rekordowi z pierwszej tabeli może
odpowiadać tylko jeden rekord z drugiej tabeli i
odwrotnie - jednemu rekordowi z tabeli drugiej
może odpowiadać tylko jeden rekord z tabeli
pierwszej. Jest to rzadko spotykany typ relacji,
gdyż większość informacji powiązanych w ten
sposób byłoby zawartych w jednej tabeli, na
Rysunku przedstawiona została relacja

1–1

dla

tabel

Pracownicy i Wynagrodzenia.

background image

Prof. dr hab. inż. S. Wiak

119

1 – ∞

- jeden do wielu - relacja najczęściej

spotykana w bazach danych. W relacji tej
jednemu rekordowi z tabeli pierwszej może
odpowiadać wiele rekordów z tabeli drugiej,
natomiast jednemu rekordowi z tabeli drugiej
może odpowiadać tylko jeden rekord z tabeli
pierwszej,

na

przykład

relacja

pomiędzy

tabelami

MATKI i DZIECI

(Rys. poniżej), gdzie

jedna matka może mieć wiele dzieci, natomiast
jedno dziecko może mieć tylko jedną matkę.

background image

Prof. dr hab. inż. S. Wiak

120

∞ – ∞

- wiele do wielu - jest to tzw. związek

wieloznaczny. W relacji takiej jednemu rekordowi z
pierwszej tabeli może odpowiadać jeden lub więcej
rekordów z tabeli drugiej i odwrotnie – jednemu
rekordowi z drugiej tabeli może odpowiadać jeden
lub wiele rekordów z tabeli pierwszej. Stworzenie
relacji

wiele-do-wielu

jest trudne, a ponadto wiąże

się

z

wprowadzeniem

dużej

ilości

danych

powtarzających

się,

a

operacje

związane

z

modyfikowaniem,

usuwaniem

czy

wstawianiem

danych sprawiają duże kłopoty. Przykładem takiej
relacji jest Rys. nastepny. Mamy tu tabelę

STUDENCI

oraz tabelę

WYKŁADY

. Występuje tu relacja

wiele-do-

wielu

, ponieważ wiele studentów może chodzić na

wiele wykładów. W praktyce relacje takie zastępuje
się dwiema relacjami

1 – ∞

, z wykorzystaniem relacji pośredniczącej (Rys.

poniżej). Tabela taka składa się z kopii kluczy
podstawowych obu tabel.

background image

Prof. dr hab. inż. S. Wiak

121

Przykład relacji ∞–

Przykład relacji ∞–∞

z tabelą

pośredniczącą

background image

Prof. dr hab. inż. S. Wiak

122



pośrednicy

gatunki/muzycy

muzycy

klienci

rozliczenia

gatunki

muzyczne

Diagram relacyjnego modelu logicznego. (Każdy

pośrednik pracuje dla kilku muzyków i ma

pewną liczbę klientów. Ponadto klienci i muzycy

są ze sobą powiązani przez tabelę umów,

ponieważ klient może zatrudnić dowolną liczbę

muzyków, a każdy muzyk może grać dla wielu

różnych klientów. Oprócz tego każdy muzyk

reprezentuje jeden lub więcej gatunków muzyki,

co odzwierciedla tabela „gatunki/muzycy”)

background image

Prof. dr hab. inż. S. Wiak

123

Jeżeli użytkownik wie, jakie relacje występują

między poszczególnymi tabelami w bazie
danych, może czerpać z niej informacje na
niemal nieograniczoną ilość sposobów,
kojarząc ze sobą dane z bezpośrednio lub
pośrednio powiązanych tabel.

W

RMBD dostęp do danych uzyskuje się,

podając nazwę interesującego nas pola oraz
tabeli, do której należy

. Jednym ze

sposobów jest wykorzystanie strukturalnego
języka zapytań SQL (ang. Structured Query
Language).

SQL

jest

standardowym

językiem używanym do wprowadzania,
modyfikowania

oraz

odczytywania

informacji z bazy danych.

background image

Prof. dr hab. inż. S. Wiak

124

Relacyjny model logiczny bazy danych

posiada wiele zalet. Najważniejsze z
nich to:

Wielopoziomowa

integralność

danych.

Integralność na poziomie pól zapewnia
dokładność

wprowadzania

danych,

integralność na poziomie tabel uniemożliwia
powtarzanie się tego samego rekordu i
pozostawienie

nie

wypełnionych

pól

wchodzących w skład klucza podstawowego,
integralność na poziomie relacji gwarantuje
odpowiednie ich zdefiniowanie, a reguły
integralności kontrolują poprawność danych
z punktu widzenia tematu bazy danych.

background image

Prof. dr hab. inż. S. Wiak

125

Logiczna i fizyczna niezależność od
aplikacji

bazodanowych

.

Zarówno

zmiany

wprowadzane

przez

użytkownika do projektu logicznego,
jak i modyfikacje sposobów fizycznej
implementacji

bazy

przez

producentów oprogramowania mają
znikomy wpływ na działanie aplikacji
obsługującej tę bazę.

background image

Prof. dr hab. inż. S. Wiak

126

Zagwarantowana

dokładność

i

poprawność danych

. Dane są poprawne i

dokładne

dzięki

wprowadzeniu

wielopoziomowej integralności.

Łatwy dostęp do danych.

Dane można w

prosty sposób odczytywać z pojedynczej
tabeli lub z całej grupy powiązanych
tabel.

Te zalety czynią RMBD użytecznym we

wszystkich

sytuacjach

wymagających

gromadzenia i przechowywania danych.
Obecnie jest on najbardziej popularnym
wśród wszystkich modeli baz danych.

background image

Prof. dr hab. inż. S. Wiak

127

Jeszcze do niedawna za

główną wadę RMBD

uważany był fakt, że oparte na nim aplikacje
działały bardzo powoli. Nie była to jednak
wina samego modelu, lecz technologii
wykorzystywanej w czasach kiedy powstawał.
Dostępna wówczas moc obliczeniowa, pamięć
operacyjna i masowa nie wystarczały do
pełnego zaspokojenia potrzeb producentów
oprogramowania obsługującego RMBD.

Postęp w mikroelektronice i w inżynierii

oprogramowania zepchnęły problem mocy
obliczeniowej na dalszy plan i umożliwiły
producentom

oprogramowania

pełną

implementację relacyjnego modelu bazy
danych.

background image

Prof. dr hab. inż. S. Wiak

128

Algebra relacyjna

Algebra relacyjna

jest

zbiorem ośmiu

zbiorem ośmiu

operatorów

operatorów. Każdy operator bierze
jedną lub więcej relacji jako argument
i produkuje jedną relację jako wynik.

Trzema głównymi operatorami

algebry

relacyjnej są:

selekcja

(ograniczenie),

rzut

(projekcja) i

złączenie

. Dzięki tym

trzem operatorom możemy wykonać
większość

operacji

na

danych

wymaganych od systemu relacyjnego.
Istnieją również dodatkowe operatory -

iloczyn, suma, przecięcie, różnica i
iloraz.

background image

Prof. dr hab. inż. S. Wiak

129

Selekcja.

Selekcja jest operatorem, który

bierze jedną relację jako swój argument i
produkuje w wyniku jedną relację.
Selekcja może być uważana za “poziomą
maszynę do cięcia", gdyż wydobywa z
wejściowej relacji wiersze, które pasują
do podanego warunku, i przekazuje je do
relacji wynikowej.

Operator selekcji ma składnię:

RESTRICT <nazwa tabeli>
[WHERE

<warunek>]

<tabela

wynikowa>

np.:

RESTRICT Studenci WHERE Wiek >=

18

Poborowi

background image

Prof. dr hab. inż. S. Wiak

130

Rzut.

Operator rzutu bierze jedną

relację jako swój argument i
produkuje jedną relację
wynikową. Rzut jest “pionową
maszyną do cięcia”

Operator projekcji ma składnię:

PROJECT <nazwa tabeli>
[<lista

kolumn>]

<tabela

wynikowa>

np.:

PROJECT Studenci (Nazwisko)

Lista

background image

Prof. dr hab. inż. S. Wiak

131

Suma.

Suma

()

jest operatorem,

który bierze dwie zgodne relacje jako
swoje argumenty i produkuje jedną
relację

wynikową.

Zgodne,

czyli

tabele

mają

te

same

kolumny

określone

na

tych

samych

dziedzinach (uwzględnia wszystkie
wiersze z obu tabel w tabeli
wynikowej).

Operator sumy ma składnię:

<tabela 1> UNION <tabela 2>

<tabela wynikowa>

background image

Prof. dr hab. inż. S. Wiak

132

Przecięcie.

Przecięcie

()

ma

działanie przeciwne działaniu sumy
(uwzględnia w tabeli wynikowej
tylko wiersze wspólne dla obu
tabel).

Operator przecięcia ma składnię:

<tabela 1> INTERSECTION <tabela

2> <tabela wynikowa>

background image

Prof. dr hab. inż. S. Wiak

133

Złączenie.

Złączenia oparte są na relacyjnym

operatorze iloczynu kartezjańskiego

(),

to znaczy z dwóch relacji będących

argumentami złączenia produkowana
jest jedna relacja wynikowa będąca
wszystkimi możliwymi kombinacjami
wierszy z wejściowych tabel.

Operator iloczynu kartezjańskiego ma

składnię:

PRODUCT <tabela 1> WITH <tabela 2>

<tabela wynikowa>

background image

Prof. dr hab. inż. S. Wiak

134

Rozróżnia się:

Równozłączenie,

które jest iloczynem

kartezjańskim po którym wykonywana
jest selekcja. Onacza to, iż łączy się dwie
tabele, ale tylko dla wierszy, w których
wartości w kolumnach złączenia są takie
same. Kolumnami złączenia może być
klucz główny jednej tabeli i klucz obcy
drugiej tabeli.

Składnia równozłączenia jest następująca:

EQUIJOIN <tabela 1> WITH <tabela 2>
<tabela wynikowa>

background image

Prof. dr hab. inż. S. Wiak

135

Złączenie naturalne

, które jest iloczynem

kartezjańskim po którym wykonywana jest
selekcja oraz rzut, w którym nie bierze się pod
uwagę kolumn złączenia.

Składnia złączenia naturalnego jest następująca:

JOIN <tabela 1> WITH <tabela 2> <tabela

wynikowa>

Może jeszcze istnieć

złączenie zewnętrzne

, w

którym brane są pod uwagę wszystkie wiersze
z

jednej

(złączenie

lewostronne

lub

prawostronne) lub obu relacji (złączenie
obustronne), bez względu na to czy mają swoje
odpowiedniki.

background image

Prof. dr hab. inż. S. Wiak

136

Różnica

W wypadku tego operatora

(-)

istotna

jest

kolejność

określania

argumentów.

Produkuje on te wiersze, które są w pierwszej

tabeli i jednocześnie nie będące w tabeli

drugiej.

Operator różnicy ma składnię:

<tabela 1> DIFFERENCE <tabela 2> <tabela

wynikowa>

Algebra relacyjna jest

proceduralnym językiem

zapytań, ponieważ ma własności domknięcia

,

to

znaczy

wynik

zastosowania

jednego

operatora relacyjnego może być przekazany

jako

argument

wejściowy

kolejnemu

operatorowi relacyjnemu. W związku z tym

dowolny ciąg instrukcji algebraicznych można

zastąpić jednym wyrażeniem zagnieżdżonym.

background image

Prof. dr hab. inż. S. Wiak

137

Operacje dynamiczne na relacjach

Istnieją trzy podstawowe operacje dynamiczne

potrzebne

do

wspomagania

działań

wyszukiwania:

wstawianie (INSERT)

usuwanie (DELETE)

modyfikacja (UPDATE)

INSERT

(<wartość>,<wartość>,...)

INTO

<nazwa

tabeli>

DELETE

<nazwa tabeli>

WITH

<warunek>

UPDATE

<nazwa tabeli>

WHERE

<warunek>

SET

<nazwa kolumny> = <wartość>

Podczas modyfikacji trzeba uważać, żeby nie

naruszyć

żadnych

więzów

integralności

określonych w schemacie relacji.

background image

Prof. dr hab. inż. S. Wiak

138

Integralność danych

Mówimy

, że baza danych ma właściwość

integralności, kiedy istnieje odpowiedniość
między faktami przechowywanymi w bazie
danych a światem rzeczywistym modelowanym
przez tą bazę. Tą właśnie integralność
zapewniają reguły integralności, które można
podzielić na dwa rodzaje:

integralność encji

oraz

integralność referencyjną

.

Integralność encji

dotyczy kluczy głównych.

Mówi ona, że każda tabela musi mieć klucz
główny i, że kolumna lub kolumny wybrane
jako klucz główny powinny być jednoznaczne i
nie zawierać wartości null.

Wynika stąd, że w

tabeli są zabronione powtórzenia wierszy.

background image

Prof. dr hab. inż. S. Wiak

139

Integralność referencyjna

dotyczy kluczy

obcych. Mówi ona, że wartość klucza obcego
może się znajdować tylko w jednym z dwóch
stanów.

Wartość klucza obcego

odwołuje się do wartości

klucza głównego w tabeli w bazie danych.
Czasami wartość klucza obcego może być null,
co oznacza że nie ma związku między
reprezentowanymi obiektami w bazie danych
albo że ten związek jest nieznany.

Utrzymywanie integralności referencyjnej

,

oprócz określenia czy klucz obcy jest null czy
nie, obejmuje również określenie

więzów

propagacji

. Mówią one co powinno się stać z

powiązaną tabelą, gdy modyfikujemy wiersz
lub wiersze w tabeli docelowej
.

background image

Prof. dr hab. inż. S. Wiak

140

Są trzy możliwości

Są trzy możliwości, które określają co się

będzie działo z docelowymi i powiązanymi
krotkami dla każdego związku między
tabelami w naszej bazie:

Ograniczone

usuwanie

(Restricted).

Podejście ostrożne – nie dopuszcza do
usuwania

rekordu

nadrzędnego,

jeśli

istnieją rekordy podrzędne.

Kaskadowe

usuwanie

(Cascades).

Podejście ufne – przy usuwaniu rekordu
nadrzędnego

usuwa

także

rekordy

podrzędne.

Izolowane usuwanie

(Isolated). Podejście

wyważone

usuwa

jedynie

rekord

nadrzędny.

background image

Prof. dr hab. inż. S. Wiak

141

Oprócz wewnętrznej integralności

bazy danych można do schematu
relacji

dodać

dodatkową

integralność

,

przez

dołączenie

ciągu definicji więzów, zapisanych
w

postaci

wyrażeń

algebry

relacyjnej

lub

rachunku

relacyjnego

. Najczęściej stosuje się

do tego zagnieżdżone wyrażenia
algebry relacyjnej.

background image

Prof. dr hab. inż. S. Wiak

142

Modelowanie danych

Modelowanie danych

Diagramy

związków

encji

encji

(ang.

entity

relationship diagramming

; nazywa się je

również

diagramami

ER

)

metodą

modelowania danych. Obrazują podstawowe
składniki bazy danych i związki między nimi w
trakcie jej projektowania.

Diagram ER jest często nazywany semantycznym

modelem danych. Słowo model wskazuje, że ze
świata rzeczywistego będziemy pobierać tylko
te dane, które są istotne dla tworzenia systemu
komputerowego.

Semantyczny charakter diagramu ER wiąże się z

uwzględnianiem

znaczenia

składników

diagramu.

background image

Prof. dr hab. inż. S. Wiak

143

W przypadku diagramu ER,

encje są zazwyczaj

opisywane

rzeczownikami

,

atrybuty-

przymiotnikami i rzeczownikami,

a

związki -

czasownikami

. Ponieważ encje są powiązane

ze sobą za pomocą związków, jakie tworzą,

znaczenie każdej z nich wynika z jej

kontekstu, tak jak znaczenie wyrazu w zdaniu

z kontekstu, w jakim został użyty.

Pierwsza próba utworzenia modelu danych

polega

na

rozpatrzeniu

pomysłów

i

zorientowaniu

się,

jak

różne

elementy

informacji mają się względem siebie. Kolejne

modyfikacje

diagramu

ER

umożliwiają

ulepszanie projektu do chwili, aż będzie

możliwe utworzenie z niego bazy danych.

Semantyczne

modelowanie

danych

daje

sposobność przedstawiania i modyfikowania

projektu.

 

background image

Prof. dr hab. inż. S. Wiak

144

Diagramy związków encji

 

Encja to zbiór obiektów

, istniejących

niezależnie i jednoznacznie zdefiniowanych,
które mogą być reprezentowane za pomocą
jednakowej struktury.

Termin encja

używany

jest zarówno w znaczeniu

typ encji

, czyli

zbiór encji o tych samych własnościach, jak
i

instancja encji

, czyli konkretny egzemplarz

encji. W diagramie ER encje o podobnej
strukturze są grupowane w zbiory, którym
nadaje się nazwy. Nazwy te są umieszczane
na diagramie i reprezentują wiele instancji
modelowanych obiektów, z których każdy
ma identyczną strukturę rekordu.

background image

Prof. dr hab. inż. S. Wiak

145

Przykładowo, encjami w diagramie

przedstawionym na rysunku będą

KLIENT,

WYPOZYCZ, KASETA, FILM.

Przykład systemu pozwalającego na

zapisywanie informacji o wypożyczonych

kasetach video

Po opracowaniu diagramu, nazw encji używa się

w relacyjnej bazie danych jako nazw tabel.

Encje

powiązane

związkami

oraz

scharakteryzowane pewną liczbą właściwości
lub atrybutów.

background image

Prof. dr hab. inż. S. Wiak

146

Atrybuty

zawierają

opisy cech encji

. Z powodów

związanych z samą strukturą relacyjnych baz

danych, ich typ musi być liczbą całkowitą, liczbą

rzeczywistą, datą, wartością logiczną, itd.
Poniższy rysunek przedstawia

encję KLIENT

z

zestawionymi wszystkimi jego atrybutami,

takimi jak numer klienta, jego imię, nazwisko,

data urodzenia, nazwa ulicy, numer telefonu,

numer dowodu, data zapisu oraz miejsce

przewidziane na wprowadzenie dodatkowych

uwag o kliencie.

Atrybuty stają się nazwami kolumn

w tabelach

odpowiadających encjom, gdy diagram zostaje

przetłumaczony na relacyjną bazę danych.

Czasami trudno jest podjąć decyzję,

czy coś jest

encją, czy atrybutem, np. KLIENT może być

atrybutem encji FIRMA

background image

Prof. dr hab. inż. S. Wiak

147

Przykładowa encja

KLIENT z jej atrybutami

Ogólna zasada w takim przypadku polega na

rozpoznaniu, co ma być przechowywane i czy jest

do tego potrzebna cała nowa encja, czy też

wystarczy tylko atrybut w pewnej encji.

Z

atrybutem jest zawsze związana tylko jego

wartość

,

podczas gdy z encją można związać cały

zbiór informacji.

background image

Prof. dr hab. inż. S. Wiak

148

Dwie encje można często połączyć w jedną, gdy

różnią się tylko kilkoma atrybutami. Przy takim

połączeniu niektóre instancje encji nie mają

przypisanych wartości do niektórych swoich

atrybutów.

Istnieje specjalna wartość używana w

takich przypadkach, która nazywa się wartością

pustą (oznaczana przez null), różna od spacji czy

zera.

Oznacza ona wartość albo nieznaną albo

niestosowaną w danej sytuacji.

Połączenie dwóch podobnych rodzajów encji w

jedną ma uzasadnienie wtedy, kiedy dzięki temu

zostaje uproszczony model i baza danych. Trzeba

pamiętać, że im więcej encji, tym bardziej

skomplikowany system. Za uproszczenie modelu

płaci się zwykle zwiększoną pamięcią, jak

również

utratą

zdolności

odróżnienia

rzeczywiście różnych encji.

background image

Prof. dr hab. inż. S. Wiak

149

Ten konflikt między kosztem, a prostotą jest

bardzo

trudny

do

pogodzenia

podczas

projektowania systemu, ponieważ zależy w
dużej mierze od sposobu użycia danych po
zainstalowaniu systemu dla użytkowników. Jest
to jedno z zagadnień, z którymi projektanci
bazy danych mają najwięcej kłopotów.

Należy pamiętać, że wartością każdego atrybutu

musi być wartość prostego typu danych

, aby

można było bezpośrednio przejść od diagramu
do relacyjnej bazy danych. W przypadku
związania z encją zbioru wartości, zbiór ten
musi być reprezentowany jako osobna encja.

Atrybuty mogą opisywać dana encję lub

reprezentować związki danej encji z innymi.

background image

Prof. dr hab. inż. S. Wiak

150

Klucz

jest to atrybut lub zbiór atrybutów

dla danego typu encji, których wartości
jednoznacznie identyfikują każdą instancję
encji. W składa klucza mogą wchodzić
atrybuty określające związki danej encji z
innymi.

Na diagramie atrybuty klucza

mogą być zaznaczane przez umieszczenie
gwiazdki lub pogrubione.

W początkowej fazie tworzenia modelu

danych

nie

należy

stosować

tzw.

atrybutów wyliczanych

. Są to atrybuty

definiowane za pomocą innych atrybutów,
np. wiek na podstawie daty urodzenia.

background image

Prof. dr hab. inż. S. Wiak

151

Związki zachodzące pomiędzy encjami

 

Związek jest to uporządkowana lista encji, w

której

poszczególne

encje

mogą

występować wielokrotnie. Związki określają

wzajemne

relacje

między

zbiorami

egzemplarzy encji, wchodzących w skład

związku. Taka relację nazywa się

instancją

związku

. Związek można formalnie zapisać

przy użyciu notacji relacyjnej, jako:

Z(E

1

,....,E

n

)

Przykładowo, klient może dokonywać

wielokrotnie wypożyczenia kaset - każdemu

więc klientowi jest przyporządkowany zbiór

kaset. Na rysunku poniżej słowo

WYPOŻYCZA, umieszczone w ramce,

symbolizuje związek między encjami.

background image

Prof. dr hab. inż. S. Wiak

152

Przykładowe związki między encjami Klient i Kaseta

Związek WYPOŻYCZA ma przyporządkowaną literę N

po stronie KLIENT, a literę M po stronie KASETA.

Oznaczenie to określa liczebność związku i wskazuje

(w tym przypadku), że każdy KLIENT mógł

wypożyczyć dowolną liczbę KASET oraz, że każda z

KASET może zostać wypożyczona kilkakrotnie dla

różnych klientów. Mamy więc tu do czynienia ze

związkiem wieloznacznym.

Większość związków to związki binarne, czyli

dwuargumentowe, reprezentowane przez linię

łączącą dwie encje. Rozróżnia się następujące

rodzaje związków binarnych:

jedno-jednoznaczne

(jeden do jeden),

jednoznaczne

(wiele do jeden lub

jeden do wiele) i

wieloznaczne

(wiele do wiele).

background image

Prof. dr hab. inż. S. Wiak

153

Związki jedno-jednoznaczne

(jeden do jednego)

 

Związki jedno - jednoznaczne charakteryzują się

tym, że dla każdej instancji jednej z dwóch

encji istnieje dokładnie jedna instancja

drugiej encji, pozostająca z nią w rozważanym

związku.

Związki jedno - jednoznaczne

rzadko

występują w bazach danych, ponieważ istnieje

tendencja, aby łączyć takie pary encji w

jedną.

Aby rozpoznać tego typu związek, należy

sprawdzić, czy dla każdej instancji jednej encji

istnieje dokładnie jedna instancja encji po

przeciwnej stronie związku, a następnie to

samo powtórzyć dla drugiej. Przykładem tego

typu związku mógłby być związek pomiędzy

KLIENT a jego numerem identyfikacji PESEL,

gdyby on występował w oddzielnej encji.

background image

Prof. dr hab. inż. S. Wiak

154

Związki jednoznaczne

(jeden do wielu, lub wiele

do jednego)

 

Związki

jednoznaczne

najczęściej

spotykanymi związkami w typowych bazach

danych. Dzieje się tak dlatego, ponieważ

związek wieloznaczny można prawie zawsze

uprościć, zamieniając go na dwa związki

jednoznaczne.

Jednoznaczne związki są realizowane przez

utworzenie atrybutu encji po stronie

wieloznacznej (tzn. etykietowanej przez N),

aby umieścić w nim klucz encji znajdującej się

po stronie jednoznacznej (tzn. etykietowanej

przez 1). Jednoznaczne związki są zawsze

reprezentowane powiązaniem przez wartość

klucza obcego w tabeli odpowiadającej encji

po stronie wiele związku i klucza głównego w

tabeli odpowiadającej encji po stronie jeden.

background image

Prof. dr hab. inż. S. Wiak

155

Związki wieloznaczne

(wiele do

wielu)

Związki wieloznaczne - przed zastąpieniem

ich dwoma związkami jednoznacznymi -
są bardzo powszechne w bazach danych.
Encje KLIENT i KASETA na przykład są
powiązane związkiem WYPOZYCZ na
przedstawionym

wcześniej

rysunku.

Litery N i M

po obu stronach związku na

tym rysunku oznaczają, że każdy klient
może wypożyczyć wiele kaset. Po drugiej
stronie związku, każda kaseta będzie
wybrana przez wiele osób.

background image

Prof. dr hab. inż. S. Wiak

156

W praktyce, związki wieloznaczne sprawiają

kłopot w relacyjnych bazach danych, ponieważ
przy tłumaczeniu modelu do relacyjnej bazy
danych atrybut używany do połączenia encji,
tzn. klucz obcy, musi zawierać listę wartości
dla każdej powiązanej instancji w innej encji.
W naszym przykładzie - dla każdego klienta
trzeba przechowywać listę kaset i podobnie,
dla każdej kasety trzeba przechowywać listę
klientów, którzy ją oglądali.

Wieloznaczny związek może być łatwo usunięty z

modelu przez utworzenie nowej encji i
zastąpienie wieloznacznego związku dwoma
jednoznacznymi związkami.

background image

Prof. dr hab. inż. S. Wiak

157

Ta nowa encja spełnia funkcję pośrednika dla

instancji obu encji i ponieważ używa dwóch
związków

jednoznacznych,

łatwo

przekształcić na dwa klucze obce w nowej
encji. Jeżeli do naszego przykładu dodamy
encję WYPOZYCZ, to każdy klient będzie miał
przypisaną listę wypożyczeń, a każda KASETA
będzie związana z kolei ze swoją listą klientów.

Specyficznym rodzajem związku jest związek

rekurencyjny, zachodzący między tymi samymi
encjami,

np.:

Element urządzenia jest częścią elementu

urządzenia

.

background image

Prof. dr hab. inż. S. Wiak

158

W przypadku związków encji o większej niż dwa

liczbie argumentów, należy je przekształcić na

binarne związki jednoznaczne, korzystając z

następujących reguł:

Dla każdego związku o liczbie argumentów

większej niż dwa

Z(E

1

,..,E

n

)

n>2

wprowadza

się nową encję

E

0

oraz

n

jednoznacznych

związków binarnych

Z

1

(E

0

,E

1

)

łączących nową

encję ze starymi. Klucz encji

E

0

jest sumą

kluczy encji

E

1

,...,E

n

.

Dla każdego wieloznacznego związku binarnego

Z(E

1

,E

2

)

wprowadza się

nową encję

E

0

oraz

2

związki jednoznaczne

Z

1

(E

0

,E

1

)

oraz

Z

2

(E

0

,E

2

)

łączące nowy zbiór encji ze starymi. Klucz

encji

E

0

jest sumą kluczy encji

E

1

oraz

E

2

.

background image

Prof. dr hab. inż. S. Wiak

159

Przedstawianie związków na diagramach

 

Bardzo

istotnym

zagadnieniem

jest

przedstawienie na diagramach związków
encji ich typów. Można spotkać się w
literaturze

z

kilkoma

sposobami

oznaczeń. W dużej mierze sposób
oznaczania jest często uzależniony od
posiadanych przez wprowadzającego je
autora

narzędzi

umożliwiających

przedstawienie ich graficzne.

Przykładem takiego oznaczania mogą być

rysunki zamieszczone poniżej. Związek
jedno- jednoznaczny (typu 1:1- poziomy
odcinek łączący encję A i B).

Przykład związku

jednojednoznaczn

ego

background image

Prof. dr hab. inż. S. Wiak

160

Związek wieloznaczny (typu N:M. wiele do

wielu - poziomy odcinek zakończony grotami
z obydwu stron).

Przykład związku wieloznacznego

Związki jednoznaczne (typu 1:N jeden do wielu

oraz typu N:1 wiele do jednego - poziome
odcinki zakończone z jednej strony grotem
od strony N).

Przykład związków jednoznacznych

background image

Prof. dr hab. inż. S. Wiak

161

Przekształcenie diagramów E-R w schematy

relacyjne

 

Przy

przekształcaniu

diagramów

ER

w

schematy relacyjne obowiązują następujące

zasady:

Dla każdej encji diagramu tworzona jest

tabela, przy czym zalecane jest, aby nazwę

encji zmienić na liczbę mnogą

Identyfikujący

atrybut

encji

staje

się

kluczem głównym tabeli

Pozostałe

atrybuty

encji

stają

się

niegłównymi atrybutami tabeli,

Dla każdego związku jeden do wiele klucz

główny tabeli strony jeden linii związku

wstawiamy do tabeli strony wiele linii

związku,

background image

Prof. dr hab. inż. S. Wiak

162

Opcjonalność na stronie

wiele

linii

związku

określa,

czy

klucz

obcy

reprezentujący związek może być null,

czy nie. Jeśli strona

wiele

jest wymagana,

to klucz obcy nie może być null.

Istniejące związki

wiele do wiele

musza

być wcześniej rozłożone na jeden do

wiele, natomiast związki

jeden do jeden

można zrealizować umieszczając atrybuty

obu encji tego związku w jednej tabeli.

Związek rekurencyjny

jeden do wiele

przekształca się w jedna tabelę z kluczem

obcym, którego wartościami są wartości

klucza głównego. Związek rekurencyjny

wiele do wiele

należy najpierw rozłożyć

na związki

jeden do wiele.

background image

Prof. dr hab. inż. S. Wiak

163

Modelowanie danych przy pomocy narzędzia

CASE - ErWin

 

Do modelowania danych, obok stosowanych

diagramów związków encji, w postaci
zbliżonej

do

diagramów

opisujących

schematy baz danych, można stosować tzw.
narzędzia

CASE

o nazwie

ErWin

firmy

Logic

Works

. Według konwencji ErWin,

nazwa

tabeli jest zapisywana nad ramką

. Atrybuty

encji

podzielone

na

atrybuty

identyfikujące

, to znaczy wchodzące w skład

klucza, oraz

atrybuty nieidentyfikujące

, to

znaczy nie wchodzące w skład klucza. Obie
części rozdzielone są pozioma kreską.

background image

Prof. dr hab. inż. S. Wiak

164

Tabela według konwencji ErWin

Związek między dwiema encjami jest

reprezentowany za pomocą linii, których

położenie ErWin sam rozplanowuje na

diagramie, umieszczając po stronie

wiele

czarne kółko

.

Dla związku jednoznacznego ErWin sam

wstawia identyfikator encji po stronie

jeden

do encji po stronie

wiele

i oznacza

go jako (FK) – klucz obcy (Foreign Key)

background image

Prof. dr hab. inż. S. Wiak

165

Diagram związku identyfikującego encji w konwencji

ErWin

Przy związku

jedno-jednoznacznym

czarne kółko

oznacza stronę związku, do którego przechodzi

identyfikator z drugiej strony związku, oraz pojawia

się literka

Z

oznaczająca

zero

lub

jeden

, to znaczy,

że każdy Nauczyciel należy do Pracowników, a

każdy Pracownik jest Nauczycielem lub nim nie

jest. ErWin rozróżnia encje niezależne i zależne,

oraz związki identyfikujące i nieidentyfikujące.


Pracownicy

ID_Pracownika
IMIE

NAZWISKO

DATA_URODZ

Nauczyciele

ID_Pracownika (FK)

Z

Z

background image

Prof. dr hab. inż. S. Wiak

166

Encja

niezależna

jest

to

encja,

której

jednoznaczny identyfikator składa się wyłącznie

z atrybutów opisujących encje, a więc nie

zawiera atrybutu oznaczonego przez (FK). Jest

ona rysowana jako ramka o ostrych rogach.

Encja zależna

jest to encja, której jednoznaczny

identyfikator zawiera co najmniej jeden atrybut

opisujący związek, a więc zawiera atrybut

oznaczony przez (FK). Jest ona rysowana jako

ramka o zaokrąglonych rogach.

Związek

identyfikujący

jest

to

związek

jednoznaczny,

który

wchodzi

w

skład

jednoznacznego identyfikatora encji po swojej

stronie wiele. Jest oznaczany linią ciągłą.

Związek nieidentyfikujący

jest to związek

jednoznaczny, który nie wchodzi w skład

jednoznacznego identyfikatora encji po swojej

stronie wiele. Jest oznaczany linią przerywaną.

background image

Prof. dr hab. inż. S. Wiak

167

Diagram związku nieidentyfikującego encji w konwencji

ErWin

Związki wieloznaczne muszą być reprezentowane za

pomocą encji asocjacyjnych i odpowiednich par

związków

jednoznacznych

identyfikujących

encje

asocjacyjne, np. związek wieloznaczny pomiędzy

pracownikami i zajęciami (rysunek poniżej) należy

zastąpić dwoma związkami jednoznacznymi:

Pracownik otrzymuje Przydział
Przydział
dotyczy Zajęć (rys.następny):

background image

Prof. dr hab. inż. S. Wiak

168

Pracownicy

ID_Pracownika
IMIE

NAZWISKO

DATA_URODZ

Przydziały

Termin(FK)

Numer (FK)

ID_Pracownika (FK)

Zajęcia

Termin

Numer (FK)

Diagram związku

wieloznacznego

encji w konwencji

ErWin

Diagram związku

wieloznacznego encji

zastąpionego

związkami

jednoznacznymi

w konwencji ErWin

background image

Prof. dr hab. inż. S. Wiak

169

Związki nieidentyfikujące dzielą się na dwa

rodzaje, w zależności od tego, czy encja po
stronie

wiele

jest

egzystencjonalnie

zależna

od encji po stronie

jeden

, czy też nie.

Encja po stronie

wiele

jest

egzystencjonalnie

zależna

od encji po stronie

jeden

jeśli dla

każdej instancji encji po stronie

wiele

jest

zawsze określona powiązana z nią
związkiem instancja encji po stronie

jeden

.

W przeciwnym przypadku encję po stronie

wiele

związku nazywamy

egzystencjonalnie

niezależną

od encji po stronie jeden.

Oznacza się to przy pomocy pustego rombu
stawianego przy encji po stronie jeden
.

background image

Prof. dr hab. inż. S. Wiak

170

Jeśli przyjmiemy, że w związku nieidentyfikującym

przedstawionym na rysunku powyżej każdy

Samochód

ma przypisany

Nr_modelu

, to encja

Samochody

jest egzystencjonalnie zależna od

encji Typy samochodów, jeśli nie (np. samochód

jest składakiem), to jest ona egzystencjonalnie

niezależna od encji

Typy samochodów

i w takim

przypadku wartością klucza obcego

Nr_modelu

(FK)

w encji po stronie

wiele

może być NULL

Diagramy w konwencji ErWin pozwalaja na

wskazanie atrybutów, na których w bazie danych

ma byc założony indeks unikatowy lub zwykły.

Klucz alternatywny

to dowolny klucz encji, który

nie

został

wybrany

jako

klucz

główny.

Oznaczany jest przez (AKn), gdzie n – kolejny

numer klucza alternatywnego. Może to być np.

Cena, o ile ceny samochodów nie powtarzają

się.

background image

Prof. dr hab. inż. S. Wiak

171

Pozycja inwersji

to dowolny zbiór atrybutów,

względem wartości których będzie następowało

wyszukiwanie instancji. Oznacza się ją jako

(IEn), gdzie n – kolejny numer pozycji inwersji.

Może to być np.

Pojemność silnika.

Przy przekształcaniu diagramu z binarnymi

związkami jednoznacznymi w schemat relacyjnej

bazy danych, każdą encję zamieniamy na tabelę,

której kolumnami są:

wszystkie atrybuty opisujące bezpośrednio daną

encję,

dla każdego binarnego związku jednoznacznego

w encji po stronie

wiele

związku uwzględniamy

atrybuty (oznaczone jako (FK)) tworzące klucz

główny encji po stronie

jeden

związku. Niektóre

z tych atrybutów (identyfikujące) dodajemy do

klucza

głównego

encji

może

to

być

postępowanie rekurencyjne.

background image

Prof. dr hab. inż. S. Wiak

172

Związki jedno-jednoznaczne służą często do

budowy

hierarchii

encji,

to

znaczy

do

hierarchicznego grupowania encji mających

wspólne cechy, przy czym na szczycie hierarchii

jest encja najbardziej ogólna, a na dole –

najbardziej konkretne. Każda podkategoria

dziedziczy własności od swojej nadkategorii.

Podział na podkategorie odbywa się przez

wskazanie atrybutu zwanego wyróżnikiem

kategorii. Są dwa rodzaje związku podkategorii:

pełny

, w którym każdy obiekt nadkategorii jest

suma obiektów rozłącznych podkategorii, czyli

należy do dokładnie jednej podkategorii

(oznaczane jako kółko i dwie kreski poziome),

niepełny

, w którym obiekt nadkategorii może

nie należeć do żadnej podkategorii, ale jesli

należy to tylko do jednej (ozn. jako kółko i

jedna kreska pozioma).

background image

Prof. dr hab. inż. S. Wiak

173

Nie wszystkie związki

jedno-jednoznaczne

, ze

względu na występujące rozłączności, można

zdefiniować

za

pomocą

związków

podkategorii.

Związkom można przyporządkować nazwy lub

określenia,

pisane

na

diagramie.

W

przypadku, gdy ta sama para encji połączona

jest dwoma związkami, można kluczom obcym

nadać dwie różne nazwy, zwane

rolami w

związku

.

W programie ErWin można również określać

więzy spójności, w tym więzy referencyjne,

związane z wykonywaniem instrukcji INSERT,

UPDATE, DELETE, w sytuacji, gdy istnieją

związki między encjami, przy czym jest sześć

możliwości (3 operacje oraz dwie strony

związku – PARENT, czyli strona jeden, oraz

CHILD czyli strona wiele).

background image

Prof. dr hab. inż. S. Wiak

174

ErWin jako narzędzie CASE posiada

zestaw

narzędzi

ułatwiających

tworzenie

diagramów

związków

encji,

zawierających

takie

narzędzia jak encja, związek itp. Po
wybraniu

encji

lub

związku,

prawym klawiszem myszy można
otworzyć

okna

dialogowe

obejmujące podstawowe własności
encji, określania więzów spójności,
własności

związku

i

więzów

spójności referencyjnej.

background image

Prof. dr hab. inż. S. Wiak

175

Ponadto

program

ErWin

może

wygenerować gotowy schemat bazy
danych w jednym z wielu systemów
zarządzania bazą danych (wybranym
w menu Server/Targed Server), oraz
można bezpośrednio połączyć się z
systemem bazy danych Oracle,
Access lub SQL Server i utworzyć w
nim

bazę

danych

(menu

Tasks/Forward Engineer), a także
wrócić do diagramu ErWin (menu
Tasks/Reverse Engineer).

background image

Prof. dr hab. inż. S. Wiak

176

Zatwierdzanie zmian w bazie danych

Instrukcje

INSERT, DELETE, UPDATE

nie

dokonują same trwałych zmian w bazie
danych. Aby zmiany wprowadzone przez
nie utrwalić, należy wykonać instrukcję

COMMIT

.

Można

również

zrezygnować

z

wprowadzania zmian do bazy danych,
wycofując je za pomocą instrukcji

ROLLBACK

.

background image

Prof. dr hab. inż. S. Wiak

177

Normalizacja

W swojej pracy na temat relacyjnego modelu

danych E.F Codd sformułował pewne reguły

projektowania relacyjnych baz danych. Te

reguły zostały pierwotnie wyrażone jako

trzy

postacie normalne: pierwsza postać normalna,

druga postać normalna i trzecia postać

normalna.

Proces kolejnego przekształcania

projektu bazy danych przez te trzy postacie

normalne jest znany jako normalizacja.

W połowie lat siedemdziesiątych spostrzeżono

pewne braki w trzeciej postaci normalnej i

zdefiniowano mocniejszą postać normalną,

znaną jako postać normalna Boyce’a – Codda

.

Później Fagin przedstawił

czwartą postać

normalną

(1977), a w roku 1979

piątą postać

normalną

.

background image

Prof. dr hab. inż. S. Wiak

178

Normalizacja jest procesem identyfikowania

logicznych związków między elementami
bazy i projektowania bazy danych, która
będzie reprezentowała takie związki, by nie
posiadała ona cech niepożądanych takich jak
redundancja (powtarzanie się danych) oraz
anomalii istnienia, wstawiania, usuwania i
modyfikowania danych. Normalizacja składa
się z następujących etapów:

Zebrania zbioru danych,

Przekształcenie nieznormalizowanego zbioru
danych w tabele w pierwszej postaci
normalnej,

Przekształcenie tabel z pierwszej postaci
normalnej w drugą postać normalną,

background image

Prof. dr hab. inż. S. Wiak

179

Przekształcenie tabel z drugiej postaci
normalnej w trzecią postać normalną; jeśli
jeszcze w tej postaci występują anomalie
danych, to należy:

Przekształcić trzecią postać normalną w
czwartą postać normalną,

Przekształcić czwartą postać normalną w
piątą postać normalną.

Relacja jest w pierwszej postaci normalnej

(1NF),

wtedy i tylko wtedy, gdy każdy

atrybut niekluczowy jest funkcyjnie zależny
od klucza głównego. Wartości atrybutów
muszą

być

elementarne

tzn.

to

pojedyncze wartości określonego typu, a
nie zbiory wartości.

background image

Prof. dr hab. inż. S. Wiak

180

Pierwsza postać normalna jest konieczna aby,

tabelę można było nazwać relacją. Większość

systemów baz danych nie ma możliwości

zbudowania tabel nie będących w pierwszej

postaci normalnej.

Relacja jest w drugiej postaci normalnej (2NF),

wtedy i tylko wtedy, gdy jest w 1NF i każdy

atrybut niekluczowy (nie należący do żadnego

klucza) jest w pełni funkcyjnie zależny od

klucza głównego. W celu sprowadzenia relacji

do drugiej postaci normalnej, należy podzielić

ją na takie relacje, których wszystkie atrybuty

będą w pełni funkcjonalnie zależne od kluczy.

Należy zauważyć, że relacja będąca w

pierwszej postaci normalnej, jest równocześnie

w drugiej postaci normalnej, jeśli wszystkie jej

klucze potencjalne są kluczami prostymi.

background image

Prof. dr hab. inż. S. Wiak

181

Dana relacja jest w trzeciej postaci

normalnej (3NF),

wtedy i tylko wtedy, jeśli

jest ona w drugiej postaci normalnej i każdy
jej atrybut niekluczowy (nie wchodzący w
skład żadnego klucza potencjalnego) jest
bezpośrednio zależny (a nie przechodnio
funkcjonalnie zależny) od klucza głównego.
Aby przejść z drugiej postaci normalnej do
trzeciej

postaci

normalnej

usuwamy

zależności przechodnie między danymi. Aby
to zrobić, w każdej tabeli, dla każdej pary
niekluczowych

elementów

danych

sprawdzamy, czy wartość pola A zależy od
wartości pola B. Jeśli tak, to przenosimy
powiązane elementy do oddzielnej tabeli.
Podział relacji ilustruje rysunek.

background image

Prof. dr hab. inż. S. Wiak

182

Podział relacji w trzeciej postaci normalnej

Istota procesu normalizacji polega na tym,

że:

Wszystkie elementy danych w tabeli muszą

całkowicie

zależeć od

całego klucza

.

W tabeli nie mogą wystąpić

powtarzające

się

grupy danych,

W tabeli nie powinny występować

zależności przechodnie

między danymi.

background image

Prof. dr hab. inż. S. Wiak

183

Proces

przekształcania

nieznormalizowanego

zbioru danych w pełni znormalizowaną bazę
danych

(w

trzeciej

postaci

normalnej)

nazywamy

procesem rozkładu odwracalnego

.

Przy każdym kolejnym przekształceniu dzielimy
strukturę danych na coraz więcej tabel
(poprzez rzutowanie), bez straty podstawowych
związków między elementami danych, a więc z
możliwością odwrócenia operacji rozkładu.

Metoda rozkładu wymaga, aby cały zbiór danych

był w pełni określony, zanim rozpocznie się
proces ciągu rzutów, a ponadto, dla każdego
zbioru danych proces ten jest czasochłonny i
podatny na błędy. Metodą alternatywną do
normalizacji jest

metoda diagramów zależności.

background image

Prof. dr hab. inż. S. Wiak

184

Diagramy

zależności

graficznym

podejściem,

polegającym

na

procesie

akomodacji, w celu utworzenia logicznego
schematu bazy danych.

Główną zaletą metody diagramów zależności

jest to, że określa mechanizm przyrostowego
projektowania bazy danych, a więc nie jest
konieczny

pełny

zbiór

danych

przy

rozpoczęciu procesu projektowania, a w
trakcie trwania procesu można dodawać
nowe elementy danych, dopóki wszystkie
zależności nie będą w pełni udokumentowane
(zdeterminowane).

Elementy danych rysuje się na diagramie w

postaci owali lub kółek, natomiast zależności
w postaci strzałek .

background image

Prof. dr hab. inż. S. Wiak

185

Diagram zależności funkcyjnej

Rozróżniamy

zależności funkcyjne

, łączące

determinujący

element

danych

z

elementem zależnym (relacja jeden do
jednego), oraz zależności niefunkcyjne
.
Mówimy, że element danych B jest
niefunkcyjnie zależny od elementu danych
A, jeżeli dla każdej wartości elementu
danych A istnieje ograniczony zbiór
wartości elementu danych B (relacja
jeden do wiele).

Diagram

zależności

niefunkcyjnej

background image

Prof. dr hab. inż. S. Wiak

186

Zależności niefunkcyjne lub wielowartościowe

oznaczamy strzałkami z dwoma grotami,

skierowanymi

jak

poprzednio,

od

determinującego

elementu

danych

do

zależnego.

Zależności

między

dwoma

elementami danych można rysować tylko w

jedną stronę, przy czym zależność może być

funkcyjna

(jednowartościowa)

w

jednym

kierunku, ale wielowartościowa w drugim

kierunku. W takich przypadkach należy zawsze

wybrać kierunek zależności funkcyjnej. Przy

zależnościach funkcyjnych lub niefunkcyjnych

w obu kierunkach, kierunek nie gra roli.

Mogą również istnieć

zależności przechodnie

, to

znaczy takie, w których A determinuje B, B

determinuje C, ale A determinuje również C.

Należy je uprościć do łańcucha: A do B oraz B

do C

background image

Prof. dr hab. inż. S. Wiak

187

Diagram zależności przechodniej

 
Czasami

do

zdeterminowania

jakiegoś

elementu

danych

potrzeba

kilku

elementów. Taką grupę determinujących
elementów

nazywamy

złożonym

związkiem

determinującym

.

Zależność

funkcyjną rysuje się od najbardziej
zewnętrznego owalu.

background image

Prof. dr hab. inż. S. Wiak

188

Proces przekształcania diagramu zależności

w zbiór struktur tabel lub schemat
relacyjny nazywamy akomodacją
, przy
czym obowiązują tu reguły Boyce’a -
Codda:

Każdy funkcyjnie determinujący element
staje się kluczem głównym tabeli

Wszystkie bezpośrednio zależne od niego
elementy danych stają się niegłównymi
atrybutami tabeli

Diagram

zależności złożonej

background image

Prof. dr hab. inż. S. Wiak

189

Diagram zależności może służyć do identyfikacji

kluczy kandydujących. Klucz kandydujący jest to

element danych, który może pełnić funkcję klucza

głównego.

W

diagramie

zależności

klucze

kandydujące

reprezentowane

przez

determinujące elementy danych.

Relacja jest w postaci normalnej Boyce’a-Codda, gdy

każdy funkcyjnie determinujący element staje się

kluczem kandydującym, z których jeden pełni

funkcje klucza głównego.

Najważniejszymi z postaci normalnych są trzecia

postać normalna oraz postać normalna Boyce’a –

Codda.

Trzecią postać normalną da się uzyskać dla

dowolnego schematu bazy danych nie tracąc, ani

własności zachowywania zależności, ani własności

odwracalności. Schemat może być w trzeciej

postaci normalnej i nie mieć postaci normalnej

Boyce’a – Codda. Każdy schemat w postaci

normalnej Boyce’a – Codda jest natomiast w

trzeciej postaci normalnej.

background image

Prof. dr hab. inż. S. Wiak

190

Zależności niefunkcyjne przekształcamy

stosując regułę, że każdy niefunkcyjny,
determinujący element danych staje się
częścią klucza głównego tabeli, to znaczy,
klucz

główny

tworzony

jest

z

determinującego

elementu

danych

i

zależnych elementów danych wchodzących w
skład związku niefunkcyjnego

Pierwsza, druga i trzecia postać normalna

dotyczy zależności funkcyjnych.

Pierwsza

postać

normalna

dotyczy

powtarzających się grup, to znaczy, jeśli
zależności funkcyjne dokumentują związki
jeden do wiele między danymi, to są one
jawną reprezentacja powtarzających się
grup.

background image

Prof. dr hab. inż. S. Wiak

191

Druga postać normalna dotyczy zależności od
części klucza, to znaczy wydobywane są
zależności funkcyjne z klucza złożonego.

Trzecia postać normalna dotyczy zależności
przechodnich między danymi, to znaczy
identyfikowane są determinujące elementy
wśród niegłównych atrybutów tabeli.

Oprócz tego istnieje jeszcze czwarta i piąta

postać normalna dotyczące związków
niefunkcyjnych.

Dana relacja R jest w czwartej postaci

normalnej

wtedy i tylko wtedy, gdy jest w

trzeciej postaci normalnej i wielowartościowa
zależność zbioru Y od X pociąga za sobą
funkcjonalną zależność wszystkich atrybutów
tej relacji od X.

background image

Prof. dr hab. inż. S. Wiak

192

Jak wynika z definicji relacja, która zawiera

trywialną

wielowartościową

zależność

funkcjonalną jest w czwartej postaci normalnej.

Stąd

wniosek,

że

relację

zawierającą

nietrywialną

wielowartościową

zależność

funkcjonalną należy podzielić na takie relacje,

które będą zawierać tylko zależności trywialne.

Dana relacja R jest w piątej postaci normalnej

wtedy i tylko wtedy, gdy jest w czwartej postaci

normalnej i jeżeli nie istnieje jej rozkład

odwracalny na zbiór mniejszych tabel.

Wynika z tego, że w celu doprowadzenia pewnej

relacji do piątej postaci normalnej konieczne

jest podzielenie jej na takie relacje, które

spełniać będą podany wyżej warunek. Piąta

postać normalna dotyczy powiązanych ze sobą

zależności

wielowartościowych,

zwanych

również zależnościami złączenia.

background image

Prof. dr hab. inż. S. Wiak

193

W

większości

przypadków

po

znormalizowaniu bazy danych przychodzi
kolej na przeanalizowanie odwrotnej
operacji,

polegającej

na

łączeniu

niektórych znormalizowanych tabel w
celu przyspieszenia dostępu do danych.
Ponieważ operacja łączenia tabel w bazie
danych jest jedną z najwolniejszych
operacji przeprowadzanych w bazie,
projektantowi zależy na zbudowaniu
schematu o najmniejszej liczbie złączeń i
jednocześnie znormalizowanej.

background image

Prof. dr hab. inż. S. Wiak

194

Normalizację przeprowadzamy w następujących krokach:

1) Zbierz zbiór danych.
2) Przekształć nieznormalizowany zbiór danych w tabele w

pierwszej postaci normalnej.

3) Przekształć tabele z pierwszej postaci normalnej w drugą

postać normalną.

4) Przekształć tabele z drugiej postaci normalnej w trzecią

postać normalną.

Niekiedy w trzeciej postaci normalnej występują

wciąż pewne anomalie danych. W takich
wypadkach musimy wykonać dalsze kroki:

5) Przekształcić trzecią postać normalną w czwartą postać

normalną

6) Przekształcić czwartą postać normalną w piątą postać

normalną

.

ETAPY NORMALIZACJI

ETAPY NORMALIZACJI

background image

Prof. dr hab. inż. S. Wiak

195

nazwa_modułu

nr_pr

ac

nazwa_

prac

nr_stud

enta

nazwisko_stu

denta

ocena

typ_oc

eny

Systemy relacyjne baz
danych

234

Davies

T

34698

37798
34888

Smith S

Jones S

Patel P

B3
B1
B2
B1
B3

cwk1

ck2
ck1
ck1

cwk2

Projektowanie
relacyjnych baz danych

234

Davies

T

34698
34888

Smith S
Smith S

B2
B2

cwk1
cwk1

Dedukcyjne bazy danych

345

Evans R

34668

Smith J

A1

egz

Moduł

Poniższa tabela jest nieznormalizowanym zbiorem

danych. Przyglądając się jej widzimy ,że nr_studenta,
nazwisko_studenta, ocena, i typ_oceny powtarzają się
względem

atrybutu

nazwa_modułu.

Atrybuty

nr_studenta, nazwisko_studenta, ocena i typ_oceny nie
są funkcyjnie zależne od wybranego przez nas klucz
głównego. Natomiast atrybuty nr_prac i nazwisko_prac,
są zależne.

NIEZNORMALIZOWANY ZBIOR DANYCH

NIEZNORMALIZOWANY ZBIOR DANYCH

background image

Prof. dr hab. inż. S. Wiak

196

nazwa_modułu

nr_student

a

nazwisko_stud

enta

ocena

typ_oceny

Systemy relacyjne baz danych

34698

Smith S

B3

cwk1

Systemy relacyjne baz danych

34698

Smith S

B1

cwk2

Systemy relacyjne baz danych

37798

Jones S

B2

cwk1

Systemy relacyjne baz danych

34888

Patel P

B1

cwk1

Systemy relacyjne baz danych

34888

Patel P

B3

cwk2

Projektowanie relacyjnych baz

danych

34698

Smith S

B2

cwk1

Projektowanie relacyjnych baz
danych

34888

Smith S

B3

cwk1

Dedukcyjne bazy danych

34668

Smith J

A1

egz

nazwa_modułu

nr_p

rac

nazw_pr

ac

Systemy relacyjne baz danych

234

Davies

T

Projektowanie relacyjnych

baz danych

234

Davies

T

Projektowanie relacyjnych
baz danych

234

Davies

T

Dedukcyjne bazy danych

345

Evans R

Moduły

Zaliczenia

Relacja jest pierwszej postaci normalnej (1NF) wtedy i
tylko wtedy, gdy każdy atrybut niekluczowy jest
funkcyjnie zależny od klucz głównego.

Oznacza to konieczność utworzenia dwóch tabel: jednej

dla funkcyjnie zależnych atrybutów i drugiej dla
funkcyjni niezależnych atrybutów.

PIERWSZA POSTAC NORMALNA

PIERWSZA POSTAC NORMALNA

Przykła
d

background image

Prof. dr hab. inż. S. Wiak

197

Relacja jest drugiej postaci normalnej (2NF) wtedy i tylko wtedy, gdy jest w 1NF i każdy
atrybut niekluczowy (nie należący do żadnego klucza) jest w pełni funkcyjnie zależny od klucz
głównego,

nazwa_modułu

nr_pra

c

nazw_prac

Systemy relacyjne baz danych

234

Davies T

Projektowanie relacyjnych baz

danych

234

Davies T

Projektowanie relacyjnych baz
danych

234

Davies T

Dedukcyjne bazy danych

345

Evans R

Moduły

nazwa_modułu

nr_stude

nta

ocena

typ_oceny

Systemy relacyjne baz danych

34698

B3

cwk1

Systemy relacyjne baz danych

34698

B1

cwk2

Systemy relacyjne baz danych

37798

B2

cwk1

Systemy relacyjne baz danych

34888

B1

cwk1

Systemy relacyjne baz danych

34888

B3

cwk2

Projektowanie relacyjnych baz
danych

34698

B2

cwk1

Projektowanie relacyjnych baz
danych

34888

B3

cwk1

Dedukcyjne bazy danych

34668

A1

egz

nr_student

a

nazwisko_studen

ta

34698

Smith S

34698

Smith S

37798

Jones S

34888

Patel P

34888

Patel P

34698

Smith S

34888

Smith S

34668

Smith J

Zaliczenia

Studenci

Aby przejść z pierwszej postaci normalnej do drugiej postaci

normalnej, usuwamy zależności od części klucza. Wiąże się to ze
zbadaniem tych tabel, które mają klucze złożone i dla każdego
niekluczowego elementu danych tabeli z postawieniem pytania, czy ten
element nie jest czasem jednoznacznie identyfikowalny przez część
klucz złożonego.

DRUGA POSTAĆ NORMALNA

DRUGA POSTAĆ NORMALNA

Przykła
d

background image

Prof. dr hab. inż. S. Wiak

198

nazwa_modułu

nr_pra

c

Systemy relacyjne baz danych

234

Projektowanie relacyjnych baz
danych

234

Projektowanie relacyjnych baz
danych

234

Dedukcyjne bazy danych

345

Moduły

nr_pra

c

nazw_prac

234

Davies T

234

Davies T

234

Davies T

345

Evans R

Wykładowcy

nazwa_modułu

nr_student

a

ocena

typ_oce

ny

Systemy relacyjne baz danych

34698

B3

cwk1

Systemy relacyjne baz danych

34698

B1

cwk2

Systemy relacyjne baz danych

37798

B2

cwk1

Systemy relacyjne baz danych

34888

B1

cwk1

Systemy relacyjne baz danych

34888

B3

cwk2

Projektowanie relacyjnych baz

danych

34698

B2

cwk1

Projektowanie relacyjnych baz
danych

34888

B3

cwk1

Dedukcyjne bazy danych

34668

A1

egz

nr_student

a1

nazwisko_student

a

34698

Smith S

34698

Smith S

37798

Jones S

34888

Patel P

34888

Patel P

34698

Smith S

34888

Smith S

34668

Smith J

Zaliczenia

Studenci

Relacja jest w trzeciej postaci normalnej (3NF) wtedy i tylko wtedy, gdy jest w 2NF i każdy
niekluczowy atrybut jest bezpośrednio zależny (a nie przechodnio zależny) od klucz głównego.

Aby przejść z drugiej postaci normalnej do trzeciej postaci normalnej, usuwamy tak zwane
zależności przechodnie między danymi. Aby to zrobić, rozważmy każdą tabelę i dla każdej pary
niekluczowych elementów danych zadajemy pytanie, czy wartość pola A zależy od wartości pola B
lub odwrotnie? Jeżeli tak to przenosimy powiązane elementy danych do oddzielnej tabeli.

TRZECIA POSTAĆ NORMALNA

TRZECIA POSTAĆ NORMALNA

Przykła
d

background image

Prof. dr hab. inż. S. Wiak

199

nazwa_modułu

nr_pra

c

nazwa_pr

ac

Systemy relacyjne baz danych

234

Davies T

Projektowanie relacyjnych
baz danych

234

Davies T

Projektowanie relacyjnych
baz danych

234

Davies T

Dedukcyjne bazy danych

345

Evans R

nazwa_modułu

nr_studen

ta

nazwisko_stud

enta

ocena

typ_oce

ny

Systemy relacyjne baz danych

34698

Smith S

B3

cwk1

Systemy relacyjne baz danych

34698

Smith S

B1

cwk2

Systemy relacyjne baz danych

37798

Jones S

B2

cwk1

Systemy relacyjne baz danych

34888

Patel P

B1

cwk1

Systemy relacyjne baz danych

34888

Patel P

B3

cwk2

Projektowanie relacyjnych
baz danych

34698

Smith S

B2

cwk1

Projektowanie relacyjnych
baz danych

34888

Smith S

B3

cwk1

Dedukcyjne bazy danych

34668

Smith J

A1

egz

nazwa_modułu

nr_pra

c

nazwa_prac

Systemy relacyjne baz danych

234

Davies T

Projektowanie relacyjnych
baz danych

234

Davies T

Projektowanie relacyjnych
baz danych

234

Davies T

Dedukcyjne bazy danych

345

Evans R

nazwa_modułu

nr_studen

ta

ocena

typ_oce

ny

Systemy relacyjne baz danych

34698

B3

cwk1

Systemy relacyjne baz danych

34698

B1

cwk2

Systemy relacyjne baz danych

37798

B2

cwk1

Systemy relacyjne baz danych

34888

B1

cwk1

Systemy relacyjne baz danych

34888

B3

cwk2

Projektowanie relacyjnych
baz danych

34698

B2

cwk1

Projektowanie relacyjnych
baz danych

34888

B3

cwk1

Dedukcyjne bazy danych

34668

A1

egz

nr_studen

ta

nazwisko_stud

enta

34698

Smith S

34698

Smith S

37798

Jones S

34888

Patel P

34888

Patel P

34698

Smith S

34888

Smith S

34668

Smith J

nazwa_modułu

nr_pra

c

Systemy relacyjne baz danych

234

Projektowanie relacyjnych
baz danych

234

Projektowanie relacyjnych
baz danych

234

Dedukcyjne bazy danych

345

nr_prac

nazwa_pr

ac

234

Davies T

234

Davies T

234

Davies T

345

Evans R

nazwa_modułu

nr_student

a

ocena

typ_oceny

Systemy relacyjne baz danych

34698

B3

cwk1

Systemy relacyjne baz danych

34698

B1

cwk2

Systemy relacyjne baz danych

37798

B2

cwk1

Systemy relacyjne baz danych

34888

B1

cwk1

Systemy relacyjne baz danych

34888

B3

cwk2

Projektowanie relacyjnych
baz danych

34698

B2

cwk1

Projektowanie relacyjnych

baz danych

34888

B3

cwk1

Dedukcyjne bazy danych

34668

A1

egz

nr_studenta1

nazwisko_stud

enta

34698

Smith S

34698

Smith S

37798

Jones S

34888

Patel P

34888

Patel P

34698

Smith S

34888

Smith S

34668

Smith J

Moduły

Zaliczenia

Studenci

Moduły

Zaliczenia

Moduły

Zaliczenia

Studenci

Wykładowcy

1NF

2NF

3NF

background image

Prof. dr hab. inż. S. Wiak

200

Aby przejść z trzeciej postaci normalnej do czwartej, szukamy tabel,

które

zawierają

dwie

lub

więcej

niezależnych

zależności

wielowartościowych. Które na szczęście występują występują rzadziej
niż zależności od części klucza lub zależności przechodnie. Poniższa
tabela zawiera dane na temat umiejętności i znajomości języków
pracowników. Jeżeli jednak chcemy dodać ograniczenie, takie aby
posiadanie umiejętności i znajomość języków nie były ze sobą
związane.W czwartej postaci normalnej te dwa związki nie mogą być
reprezentowane w jednej tabeli. Tak więc występowanie dwóch
niezależnych zależności wielowartościowych oznacza, że musimy
podzielić tabelę na dwie.

nr_pracown

ika

umiejętności

język

0122443

Pisanie na
maszynie

Angielsk

i

0122443

Pisanie na
maszynie

Francusk

i

0122443

Dyktowanie

Angielsk

i

0221133

Pisanie na

maszynie

Niemiec

ki

0221133

Dyktowanie

Francusk

i

0332222

Pisanie na

maszynie

Francusk

i

0332222

Pisanie na

maszynie

Angielsk

i

Pracownicy

nr_pracown

ika

język

0122443

Angielsk

i

0122443

Francusk

i

0122443

Angielsk

i

0221133

Niemiec

ki

0221133

Francusk

i

0332222

Francusk

i

0332222

Angielsk

i

Języki

Umiejętności

nr_pracown

ika

umiejętności

0122443

Pisanie na
maszynie

0122443

Pisanie na
maszynie

0122443

Dyktowanie

0221133

Pisanie na
maszynie

0221133

Dyktowanie

0332222

Pisanie na
maszynie

0332222

Pisanie na
maszynie

CZWARTA POSTAĆ NORMALNA

CZWARTA POSTAĆ NORMALNA

background image

Prof. dr hab. inż. S. Wiak

201

Tabela w czwartej postaci normalnej jest w piątej postaci

normalnej, jeżeli nie istnieje jej rozkład odwracalny na
zbiór mniejszych tabel.
W poniższej tabeli nie można dokonać rozkładu
struktury, ponieważ, chociaż chociaż dealer Jones
sprzedaje samochody osobowe firmy Ford i furgonetki
firmy Vauxhall, nie sprzedaje furgonetek firmy Ford ani
samochodów osobowych firmy Vauxhall. Piąta postać
normalna dotyczy powiązanych między sobą zależności
wielowartościowych,

nazywanych

też

zależnościami

złączeń.

dealer

firma

pojazd

Jones

Ford

Samochód_osobo
wy

Jones

Vauxhall Furgonetka

Smith

Ford

Furgonetka

Smith

Vauxhall Samochód_osobo

wy

Punkt
y

PIĄTA POSTAĆ NORMALNA

PIĄTA POSTAĆ NORMALNA

background image

Prof. dr hab. inż. S. Wiak

202

Projektowanie relacyjnych baz danych

Proces projektowania baz danych składa się

z trzech faz:

analizy wymagań

,

modelowania danych

i

normalizacji

.

Faza analizy wymagań

zakłada wgłębienie

się w sposób funkcjonowania obsługiwanej
organizacji, przeprowadzenie rozmów z jej
pracownikami i kierownictwem, w celu
dokonania

oceny

aktualnie

wykorzystywanego systemu i poczynienia
prognoz na przyszłość oraz dokonanie
całościowej

oceny

wymagań

informacyjnych organizacji.

background image

Prof. dr hab. inż. S. Wiak

203

Faza modelowania danych

polega na

tworzeniu „zrębów struktury” nowej
bazy danych. Pomocne stają się tu takie
metody

modelowania

danych,

jak

tworzenie tzw.

diagramów związków

encji

(ang.

entity

relationship

diagramming

; nazywa się je również

diagramami ER),

analiza zależności

semantycznych, czy analiza obiektowa

.

Każda z tych metod stanowi sposób
wizualnej

reprezentacji

różnych

aspektów projektowanej struktury, jak
tabel czy relacji oraz ich cech i
atrybutów.

background image

Prof. dr hab. inż. S. Wiak

204

W skład

modelowania danych wchodzi

również

definiowanie pól

i przypisywanie

ich odpowiednim tabelom,

przypisanie

tabelom

kluczy

podstawowych,

wprowadzenie

kolejnych

poziomów

integralności danych oraz

zdefiniowanie

poszczególnych

relacji

za

pomocą

odpowiednich kluczy obcych

.

Kiedy podstawowe struktury tabel są już

gotowe, a relacje zostały zdefiniowane
zgodnie z przyjętym modelem danych,
baza danych jest gotowa do przejścia
przez fazę normalizacji.

background image

Prof. dr hab. inż. S. Wiak

205

Normalizacja jest procesem

, w którym

następuje rozkład dużych tabel na
mniejsze,

w

celu

wyeliminowania

redundantnych i powtarzających się
danych

oraz

uniknięcia

problemów

związanych

z

wstawianiem,

modyfikowaniem i usuwaniem rekordów.

Podczas fazy normalizacji sprawdza się

zgodność

struktur

bazy

danych

z

postaciami normalnymi oraz poddaje się
je poprawkom, jeśli zgodność ta nie jest
zachowana.

background image

Prof. dr hab. inż. S. Wiak

206

Postać normalna to zestaw kryteriów, które

musi spełniać dana tabela, aby mogła być
uznana za poprawną i nie przyczyniała się
do powstawania błędów. Istnieje kilka
różnych postaci normalnych; każda z nich
związana jest z eliminowaniem pewnego
typu problemów.

Obecnie stosowane postacie normalne to:

pierwsza postać normalna, druga postać
normalna,

trzecia

postać

normalna,

czwarta postać normalna, piąta postać
normalna, postać normalna Boyce'a-
Codda

oraz

postać

normalna

klucza/domeny.

background image

Prof. dr hab. inż. S. Wiak

207

 

Analiza wymagań

Formułowanie

definicji

celu

i

założeń

wstępnych

Pierwszą fazą tworzenia projektu bazy danych

jest

zdefiniowanie

celu

oraz

założeń

wstępnych. „Definicja celu” mówi, po co
projektujemy bazę danych, oraz co stanowi
punkt odniesienia dla jej twórcy.

Określając

cel, jakiemu ma służyć baza danych,
ułatwiamy tworzenie właściwego projektu i
umożliwiamy przechowywanie w gotowej
bazie właściwych danych.

Oprócz definicji

celu

na

tym

etapie

należy

również

sformułować założenia wstępne. Są to
wymagania, jakie powinny spełniać dane
przechowywane w bazie.

background image

Prof. dr hab. inż. S. Wiak

208

Warunki te powinny uzupełniać definicję

celu

i

pomagać

w

tworzeniu

poszczególnych elementów bazy danych.

Istnieją

dwie oddzielne grupy ludzi

, którzy

mają wpływ na definicję celu i założeń

wstępnych.

Pierwsza z nich, składająca się z twórcy bazy

danych,

właściciela

lub

dyrektora

organizacji, której baza ta ma służyć, oraz

członków kierownictwa tejże organizacji,

jest odpowiedzialna za definicję celu.

Druga, złożona z twórcy bazy, kierownictwa

organizacji oraz przyszłych użytkowników

bazy, powinna zająć się sformułowaniem

założeń wstępnych.

background image

Prof. dr hab. inż. S. Wiak

209

Analiza istniejącej bazy danych

Drugą fazą procesu projektowania jest

analiza istniejącej bazy danych, jeśli
takowa istnieje. W zależności od
organizacji, będzie to zazwyczaj baza
„spadkowa” lub baza tradycyjna.

Stara baza danych, użytkowana od

wielu lat, to baza „spadkowa”
(czasem

nazywana

bazą

odziedziczoną).

Z

kolei

baza

tradycyjna to luźny zbiór formularzy,
teczek, notatek i tym podobnych.

background image

Prof. dr hab. inż. S. Wiak

210

Niezależnie od typu i stanu

istniejącej bazy danych, dokładne
przyjrzenie

się

jej

strukturze

udzieli

cennych

informacji

na

temat sposobu wykorzystywania
danych

przez

organizację.

Co

więcej, analiza ta pozwoli na
zrozumienie sposobu, w jaki dane
są gromadzone i prezentowane
użytkownikom.

background image

Prof. dr hab. inż. S. Wiak

211

Tworzenie struktur danych

Tworzenie struktur danych jest trzecim

etapem procesu projektowania bazy.

Należy zdefiniować tabele i pola,

wskazać pola kluczowe oraz określić

atrybuty każdego z pól.

Tabele są pierwszą strukturą, jaką

należy zaprojektować. Tematy, którym

mają one być poświęcone, wynikają z

założeń wstępnych, zdefiniowanych w

pierwszej fazie procesu projektowania

oraz z wymagań informacyjnych,

ustalonych w fazie drugiej.

background image

Prof. dr hab. inż. S. Wiak

212

Po

ustaleniu

odpowiednich

tematów, należy dla każdego z nich
utworzyć

tabelę,

a

następnie

przypisać wszystkie pola z listy
sporządzonej

pod

koniec

ostatniego etapu do odpowiednich
tabel.

background image

Prof. dr hab. inż. S. Wiak

213

Po zakończeniu tej czynności należy

przeanalizować każdą tabelę i upewnić

się,

że reprezentuje ona tylko jeden temat

i nie zawiera powtarzających się pól

.

Następnie należy przeanalizować każde

pole z osobna. Jeśli stwierdzono, że

któreś z nich jest wielowartościowe lub

segmentowe, trzeba je rozbić tak, aby

wszystkie

pola

w

tabeli

zawierały

pojedyncze wartości.

Pole nie reprezentujące tematu danej

tabeli powinno zostać przesunięte do

innej, bardziej odpowiedniej tabeli lub

zostać usunięte z bazy.

background image

Prof. dr hab. inż. S. Wiak

214

Na

koniec

należy

zdefiniować

klucze

podstawowe

,

które

będą

jednoznacznie

identyfikować

każdy

rekord

w

poszczególnych tabelach.

Ostatnim krokiem tego etapu jest definiowanie

atrybutów dla każdego pola w bazie danych.
Należy powtórnie przeprowadzić rozmowy z
pracownikami i kierownictwem organizacji w
celu ustalenia odpowiednich atrybutów dla
poszczególnych pól.

Po

zakończeniu

tej

procedury

trzeba

zdefiniować

i

udokumentować

atrybuty

każdego pola.

background image

Prof. dr hab. inż. S. Wiak

215

Definiowanie relacji

W

czwartej

fazie

procesu

projektowania należy zdefiniować
relacje

między

poszczególnymi

tabelami.

Znowu

więc

trzeba

przeprowadzić

rozmowy

z

użytkownikami

bazy,

określić

istniejące relacje, ustalić ich cechy
oraz zagwarantować integralność
na poziomie relacji.

background image

Prof. dr hab. inż. S. Wiak

216

Współpraca

użytkowników

przy

określaniu relacji jest niesłychanie
pomocna,

ponieważ

najprawdopodobniej projektantowi
nie są znane wszystkie aspekty
funkcjonowania danej organizacji.

Większość jej pracowników ma jednak

dobre wyobrażenie o danych, na
których operuje, i może z łatwością
wskazać ewentualne relacje.

background image

Prof. dr hab. inż. S. Wiak

217

Kiedy relacje zostaną już ustalone, należy

określić ich cechy. W zależności od typu
danej relacji wchodzące w jej skład tabele
trzeba połączyć, korzystając albo z klucza
podstawowego, albo z tabeli łączącej.

Następnym

krokiem

powinno

być

zdefiniowanie typu i stopnia uczestnictwa
tabel w poszczególnych relacjach; w
większości przypadków cechy te będą w
prosty sposób wynikać z rodzaju danych
przechowywanych w każdej z tych tabel,
czasami jednak trzeba będzie odwołać się
do reguł integralności.

background image

Prof. dr hab. inż. S. Wiak

218

Wprowadzenie reguł integralności

Wprowadzenie reguł integralności

jest

piątym

etapem

procesu

projektowania bazy danych.

Twórca

bazy

danych

powinien

przeprowadzić

rozmowy

z

jej

przyszłymi użytkownikami, ustalić
ograniczenia, jakim mają podlegać
dane,

zdefiniować

reguły

integralności

oraz

wprowadzić

tabele walidacji.

background image

Prof. dr hab. inż. S. Wiak

219

Sposób w jaki dana organizacja

wykorzystuje swoje dane, dyktuje
wiele

ograniczeń,

które

będą

musiały

zostać

uwzględnione

podczas tworzenia bazy danych.

Rozmowy

z

pracownikami

i

kierownictwem

pomogą

ustalić

wymagania, które powinny być
spełniane przez dane oraz ich
struktury.

Pełną

listę

tych

wymagań można traktować jako
zestaw reguł integralności

.

background image

Prof. dr hab. inż. S. Wiak

220

Następnie

należy

zdefiniować

i

zaimplementować

tabele walidacji

, o

ile tylko okażą się one przydatne we
wprowadzaniu reguł integralności.
Na przykład jeżeli niektóre pola
mogą

przyjmować

tylko

kilka

różnych wartości zdefiniowanych na
podstawie wymagań użytkownika,
tabele

walidacji

pomogą

w

zagwarantowaniu, że rzeczywiste
wartości

tych

pól

odpowiadają

wartościom dozwolonym.

background image

Prof. dr hab. inż. S. Wiak

221

Ważne staje się tu wprowadzenie

poziomu

integralności

danych,

opartego na regułach integralności,
ponieważ odnosi się on bezpośrednio
do sposobu, w jaki dana organizacja
wykorzystuje dane zawarte w bazie.
Wraz z ekspansją tej organizacji jej
wymagania

informacyjne

będą

ulegać zmianie, a w ślad za nimi
również reguły integralności.

Ustalanie reguł integralności jest

procesem ciągłym.

background image

Prof. dr hab. inż. S. Wiak

222

Definiowanie perspektyw

Definiowanie perspektyw to szósta faza

procesu

tworzenia bazy danych. Jeszcze raz

koniecznym staje się skonsultowanie z

pracownikami i kierownictwem organizacji i

zdefiniowanie odpowiednich perspektyw w

oparciu

o

przedstawione

przez

nich

wymagania.

Trzeba ustalić żądane metody prezentowania

danych

użytkownikom

bazy.

Niektórzy

pracownicy będą wymagali specjalnych

sposobów wizualizacji, w zależności od

wykonywanych

przez

siebie

zadań.

Przykładowo, pewne osoby mogą chcieć

odczytywać dane z kilku tabel jednocześnie;

innym

wystarczy

odwoływanie

się

do

pojedynczych tabel.

background image

Prof. dr hab. inż. S. Wiak

223

Kiedy określi się wymagane sposoby

prezentowania

danych,

należy

je

zdefiniować formalnie, jako perspektywy.

Każda perspektywa składa się z pól

należących do jednej lub większej liczby
tabel.

Po zdefiniowaniu wszystkich perspektyw

trzeba

jeszcze

odpowiednio

dobrać

parametry każdej z nich tak, aby zwracały
one tylko żądane rekordy.

background image

Prof. dr hab. inż. S. Wiak

224

Kontrola integralności danych

Siódmą i ostatnią fazy procesu

projektowania

bazy danych jest kontrola struktury bazy
pod kątem integralności zawartych w niej
danych.

Przede wszystkim należy przyjrzeć się każdej

tabeli z osobna i upewnić się, że spełnia ona
odpowiednie kryteria poprawności; należy
też sprawdzić w ten sposób każde z
należących do niej pól.

Wszelkie nieścisłości i problemy powinny być

teraz

rozstrzygnięte

i

usunięte.

Po

wprowadzeniu

odpowiednich

poprawek

należy sprawdzić integralność na poziomie
tabel.

background image

Prof. dr hab. inż. S. Wiak

225

Następnie

trzeba

przejrzeć

atrybuty

wszystkich pól w bazie, wprowadzając

konieczne

poprawki

i

sprawdzając

integralność na poziomie pól. To pozwoli

upewnić się, że integralność wprowadzona na

wcześniejszych etapach projektowania bazy

została zachowana.

Należy sprawdzić poprawność każdej z relacji

oraz jej typ

, jak również rodzaj i stopień

uczestnictwa wszystkich tabel w relacjach, w

których

skład

wchodzą.

Należy

przeanalizować integralność na poziomie

relacji, upewniając się, że współdzielone pola

zawierają odpowiednie wartości oraz że

wprowadzanie, modyfikowanie i usuwanie

danych z powiązanych tabel nie sprawia

żadnych problemów.

background image

Prof. dr hab. inż. S. Wiak

226

Na koniec trzeba ponownie przejrzeć listę

reguł integralności, potwierdzając zgodność

ograniczeń nakładanych przez nie na bazę

danych

z

ustalonymi

wcześniej

wymaganiami. Jeśli podczas późniejszych

faz procesu projektowania zauważono by

konieczność wprowadzenia dodatkowych

ograniczeń, należy je uwzględnić jako

dodatkowe reguły integralności i dopisać do

istniejącej listy.

Po zakończeniu procesu projektowania bazy

danych struktura utworzonej bazy będzie

gotowa do zaimplementowania w programie

SZRBD.

Po zaimplementowaniu bazy danych

ostatnim etapem przed jej wdrożeniem do

użytku

jest

przeprowadzenie

fazy

testowania.

background image

Prof. dr hab. inż. S. Wiak

227

Fizyczne projektowanie relacyjnej bazy

danych

Fizyczne projektowanie relacyjnej bazy danych

można podzielić na następujące etapy:

Opracowanie

modelu

danych

dla

planowanego

systemu

bazy

danych,

z

wykorzystaniem

metody

modelowania

danych,

Oszacowanie

średniej i maksymalnej liczby

instancji

dla każdej encji. Maksymalna liczba

instancji pozwala określić wielkość pamięci
dyskowej potrzebnej na wszystkie tabele bazy
danych, natomiast średnia liczba instancji
pozwala ocenić możliwości modelu co do
spełnienia wymagań dotyczących dostępu do
danych.

background image

Prof. dr hab. inż. S. Wiak

228

Przeprowadzenie

analizy użycia

, polegającej na

zidentyfikowaniu

podstawowych

rodzajów

transakcji wymaganych w systemie bazy danych.
Transakcje
są to ciągi operacji wstawiania,
modyfikowania, wyszukiwania, przemieszczania
i usuwania. Szybkość wykonywania operacji
modyfikowania i wyszukiwania zależy od
zmienności pliku.

Zmienność encji

lub

pliku

określana jest jako różnica między średnią a
maksymalną liczbą instancji obliczoną dla encji.

Stworzenie

struktur dostępu

do danych.

Właściwości dostępu do danych w pliku zależą
od rozmiaru i zmienności pliku.

background image

Prof. dr hab. inż. S. Wiak

229

Przeprowadzenie

analizy integralności

,

poprzez

udokumentowanie

więzów

integralności encji, referencyjnych więzów

integralności oraz więzów dziedziny. Każda

aplikacja wymaga zazwyczaj dodatkowych

więzów;

więzów

przejścia

,

dokumentujących przejście z jednego

stanu bazy danych w drugi, lub

więzów

statycznych

,

wiążących

się

ze

sprawdzeniem,

że

transakcja

nie

spowoduje przejście bazy danych w stan

niepoprawny.

Zdefiniowanie

wydajności

dostępu

i

wydajności modyfikowania

, które na ogół

są sprzeczne. Wydajność zależy istotnie od

aplikacji. W celu poprawienia wydajności

wykorzystywane są następujące opcje:

background image

Prof. dr hab. inż. S. Wiak

230

i.

Tworzenie

mechanizmów

dostępu

związanych z przechowywaniem.

Do

przechowywania

danych

w

pamięci

pomocniczej

wykorzystywana

jest

sekwencyjność, haszowanie i klastry.

Dostęp sekwencyjny

zalecany jest dla

małych tabel, średnich i dużych – jeśli

dostęp musi być uzyskany do więcej niż

20% wierszy, oraz dowolnych tabel, gdy

dostęp następuje przez zapytania o niskim

priorytecie, lub realizowane za pomocą

przetwarzania

wsadowego.

Pliki

haszowane

są budowane zwykle na

kluczach głównych i stosowane jako

główna ścieżka dostępu do pliku.

Klastry

są tworzone, aby ułatwić wykonywanie z

góry ustalonych operacji złączeń danych.

background image

Prof. dr hab. inż. S. Wiak

231

ii.

Dodawanie

indeksów

.

Indeks

jest

mechanizmem poprawienia szybkości

dostępu do danych bez zmiany struktury

ich przechowywania. Rozróżniamy dwa

typy indeksów: główny i wtórny. Indeksy

powinno się tworzyć zawsze na kluczach

głównych (indeksy jednoznaczne) i

obcych, a jedynie czasem na innych

elementach danych, gdyż maja one

negatywny

wpływ

na

wydajność

modyfikacji.

Ogólną

zasadą

jest

tworzenie indeksów na średnich i

dużych tabelach w celu ułatwienia

dostępu do małego procentu wierszy w

tabeli.

background image

Prof. dr hab. inż. S. Wiak

232

iii.

Denormalizacja

ma na celu przyśpieszenia

wyszukiwania lub modyfikowania danych.

Wprowadza ona kontrolowana redundancję,

dlatego

powinna

być

stosowana

wyjątkowo, zwłaszcza dla dużych, często

zmienianych plików.

iv.

Implementowanie więzów integralności.

Stosowane są trzy sposoby.

Wewnętrznie

,

to

znaczy,

że

za

pomocą

prostych

mechanizmów można określić integralność

encji,

referencyjną

i

dziedziny.

Proceduralnie

, to znaczy, że więzy są

implementowane

w

językach

trzeciej

generacji,

takich

jak

C

lub

Cobol.

Nieproceduralnie

, to znaczy, że więzy są

utrzymywane niezależnie od programów

użytkowych,

w

centralnym

słowniku

danych.

background image

Prof. dr hab. inż. S. Wiak

233

v.

Wybór i wykorzystanie SZBD

.

Istnieją systemy które kompilują
wszystkie zapytania uruchomione
na bazie danych i przechowują w
postaci gotowej do ponownego
użycia,

oraz

systemy,

które

interpretują zapytania w czasie
ich wykonywania. Wydajność tych
systemów

zależy

od

rodzaju

zapytań.

background image

Prof. dr hab. inż. S. Wiak

234

Sieciowy model danych

Sieciowy model bazy danych (SMBD)

został

stworzony

głównie

w

celu

rozwiązania

problemów

związanych

z

modelem

hierarchicznym. Tak jak w HMBD, strukturę
SMBD można przedstawić jako odwrócone
drzewo. Różnica polega jednak na tym, że w
przypadku SMBD kilka drzew może dzielić ze
sobą gałęzie, a każde drzewo stanowi część
ogólnej struktury bazy danych. Rysunek 2.
przedstawia diagram modelu sieciowego.

Relacje w SMBD

są definiowane przez kolekcje.

Kolekcja jest niejawną konstrukcją łączącą
dwie tabele poprzez przypisanie jednej z nich
roli właściciela, a drugiej – roli członka.

background image

Prof. dr hab. inż. S. Wiak

235

Diagram modelu sieciowego. (Baza danych
pośredników. Każdy pośrednik pracuje dla kilku
muzyków i ma pewną liczbę klientów, którzy
zamawiają u niego obsługę muzyczną różnych
imprez i uiszczają opłaty. Każdy muzyk może
zawrzeć wiele oddzielnych umów i specjalizować
się w wielu różnych gatunkach muzyki.)

background image

Prof. dr hab. inż. S. Wiak

236

Sieciowy model bazy danych ma, podobnie jak

model hierarchiczny, strukturę odwróconego
drzewa z tą różnicą, że w modelu sieciowym
jest możliwe dowolne połączenie pomiędzy
poszczególnymi elementami. Na przykład:

Schemat sieciowego

modelu bazy danych

background image

Prof. dr hab. inż. S. Wiak

237

Kolekcje

umożliwiają

wprowadzenie

relacji jeden – do – wielu, co oznacza, że
w obrębie struktury każdy rekord z
tabeli – właściciela może być powiązany
z dowolną ilością rekordów z tabeli –
członka,

natomiast

pojedynczemu

rekordowi z tabeli – członka może
odpowiadać tylko jeden rekord w tabeli
– właściciela.

Między każdymi dwoma tabelami

można

zdefiniować dowolną liczbę powiązań
(kolekcji),

a

każda

tabela

może

uczestniczyć

w

wielu

różnych

kolekcjach.

background image

Prof. dr hab. inż. S. Wiak

238

W

SMBD dostęp do danych można uzyskać

,

poruszając

się

po

kolekcjach.

W

przeciwieństwie do modelu hierarchicznego,

gdzie poszukiwanie danych należało rozpocząć

od podstaw, w SMBD użytkownik może

rozpocząć od dowolnej tabeli, a następnie

poruszać się w górę lub w dół po tabelach z nią

powiązanych. Zaletą modelu SMBD jest

szybkość, z jaką można odczytywać z niego

dane. Ponadto użytkownik ma możliwość

tworzenia znacznie bardziej złożonych zapytań

niż miało to miejsce w modelu hierarchicznym.

Wadą tego modelu

jest to, że użytkownik musi

mieć dobre wyobrażenie o strukturze używanej

bazy danych. Kolejną wadą jest niemożność

zmiany struktury bazy danych bez ponownego

tworzenia obsługujących ją programów.

background image

Prof. dr hab. inż. S. Wiak

239

Pomimo, że model sieciowy był dużym

postępem w porównaniu z modelem
hierarchicznym to jednak, w miarę
rozwoju

przemysłu

informatycznego,

użytkownicy

chcieli

uzyskiwać

odpowiedzi na coraz bardziej złożone
zapytania, których istniejące struktury
baz danych nie potrafiły obsłużyć.
Odpowiedzią na takie potrzeby stał się
relacyjny model danych.

background image

Prof. dr hab. inż. S. Wiak

240

Interfejs systemu zarządzania bazą danych

Interfejs systemu zarządzania bazą danych

język SQL

język SQL

Do opisu operacji na bazach danych stworzono

specjalny język

SQL (SQL ang. Structured

Query

Language

-

strukturalny

język

zapytań).

Jego składnia i znaczenie jest

określane

odpowiednimi

standardami

międzynarodowymi. Obecnie obowiązuje już

czwarta wersja standardu. Wyrażenia w SQL

są w większości systemów zarządzania

bazami danych (w szczególności w systemach

wykorzystujących

architekturę klient-serwer

)

formą

pośrednią

pomiędzy

programem

użytkowym

klienta

(

tzw.

front-end

)

a

serwerem bazy danych (

tzw.back-end

).

W

języku tym zapisywane są polecenia (tzw.

zapytania) do serwera bazy danych.

background image

Prof. dr hab. inż. S. Wiak

241

SQL

różni

się

od

innych

języków

programowania pod kilkoma względami.
Po

pierwsze,

jest

językiem

nieproceduralnym. Języki takie jak

C lub

COBOL

instruują komputer krok po

kroku jak wykonać dane zadanie.

background image

Prof. dr hab. inż. S. Wiak

242

Natomiast SQL tylko określa, co ma być

zrobione,

sposób

rozwiązania

pozostawiając SZBD (SZBD - System

Zarządzania Bazą Danych). Jest to

zgodne z filozofią relacyjnych baz

danych.

SZBD

jest

jakby

„czarną

skrzynką”, nie musimy się interesować

jak on wykonuje zadanie.

Najważniejszy dla nas jest poprawny wynik. Ten

sposób podejścia upraszcza operacje i pozwala

na dużą elastyczność twórcom baz danych.

Instrukcje SQL-a operują na dowolnie dużych

zbiorach danych. Przetwarzają one cały zbiór

danych,

natomiast

instrukcje

większości

innych języków operują na pojedynczych

danych.

background image

Prof. dr hab. inż. S. Wiak

243


Inną

ważną

cechą

SQL-a

jest

trójwartościowa

logika

(3VL).

W

większości jęzków wyrażenia logiczne
może

być

prawdziwe

(TRUE)

lub

fałszywe (FALSE).

background image

Prof. dr hab. inż. S. Wiak

244

SQL zezwala

na wprowadzenie do

tablic

wartości

NULL

(

nieznana,

nieokreślona

).

Jest

to

znacznik

wpisywany do kolumny w miejsce
brakującej danej (NULL stosujemy
wtedy, gdy nie możemy wpisać do
bazy żadnej wartości, np. „koloru
włosów łysego człowieka”).

Kiedy wartość NULL jest użyta w

porównaniu, wynik nie będzie ani
FALSE, ani TRUE, lecz nieznany
(UNKNOWN).

Jest

to

najbardziej

kontrowersyjny aspekt SQL-a.

background image

Prof. dr hab. inż. S. Wiak

245

Historia SQL-a zaczyna się we

wczesnych

latach

siedemdziesiątych, kiedy firma
IBM

stworzyła

język

SEQUEL

(

Structured

English

Query

Language

)

dla

projektu

badawczego systemów zarządzania
relacyjnymi bazami danych.

Potem ten język przerodził się w

Sequel/2 i w końcu w

SQL

(ang.

Structured

Query

Language

strukturalny język zapytań).

background image

Prof. dr hab. inż. S. Wiak

246

Inne

firmy

były

także

zainteresowane

pomysłem

relacyjnych

baz

danych

i

interfejscm SQL.

Relational Software Inc. (znane teraz

jako Oracle Corporation) w 1979 r.
Stworzyło

relacyjną bazę danych

zwaną Oracle

. W 1981 r.

IBM wypuścił na rynek pierwszy

produkt relacyjnej bazy danych

SQL/DS

. (

SQL Data System

).

background image

Prof. dr hab. inż. S. Wiak

247

SQL jest standardem

w systemach

zarządzania bazami danych, takich jak:

Oracle,

INGRES,

Informix,

Sybase,

SQLbase,

Microsoft

SQL

Server,

Paradox,

Access,

Approach

,

w

produktach

IBM-a: DB2 I SQL/DS I

innych

. Poza tym niektóre programy, jak

na przykład: dBase lub Interbase,
oprócz swoich własnych interfejsów
mają także (lub właśnie wprowadzają)
SQL.

SQL służy do komunikowania

się z bazą

danych. Za pomocą samego SQL-a nie
można napisać kompletnego programu.

background image

Prof. dr hab. inż. S. Wiak

248

SQL jest używany na trzy sposoby:

Interakcyjny

lub

samodzielny

SQL

używany jest do wprowadzania lub
wyszukiwania

informacji

do/z

bazy

danych. Jeśli użytkownik poprosi o listę
aktywnych kont w bieżącym miesiącu.
Wynik może być wysyłany na ekran,
skierowany do pliku albo wydrukowany,

background image

Prof. dr hab. inż. S. Wiak

249

Statyczny SQL

jest to stały kod SQL-a

napisany przed wykonaniem programu.
Są dwie wersje statycznego SQL-a. W
zanurzonym SQL-u kod SQL-a znajduje się
w źródłowym programie innego języka.
Większość tych aplikacji jest napisana w
języku

C

lub

COBOL,

natomiast

odwoływania do bazy danych są w SQL-u.
Inna wersja statycznego SQL-a to język
modułowy. W tym przypadku moduły SQL-
a są łączone z modułami kodu innych
języków.

background image

Prof. dr hab. inż. S. Wiak

250

Dynamiczny SQL jest to kod SQL-a

generowany przez aplikację w czasie jej
wykonywania.

Jest

używany

zamiast

statycznego SQL-a, gdy potrzebny kod nie
może

być

określony

podczas

pisania

programu. Ten rodzaj kodu SQL-a jest często
generowany w odpowiedzi na działania
użytkownika za pomocą takich narzędzi jak
np. graficzne języki zapytań.

Język został po raz pierwszy zaimplementowany przez

Oracle w 1979 roku, jednak nie był oficjalnie
uznawany za standard do 1986, kiedy to został
opublikowany częściowo przez

ANSI (American

National Standards Institute) i ISO (International
Standards Organization

). W 1989 zrewidowano

standard SQL-a wprowadzając nowe elementy
zwiększające

integralność

.

background image

Prof. dr hab. inż. S. Wiak

251

Do chwili pojawienia się standardu 86 wiele

programów korzystało już z SQL-a.
Dlatego też ISO dopasowało standard do
istniejącego już na rynku. Zdefiniowano
minimalny standard, dając wolną rękę
twórcom programów SQL-a. W standardzie
całkowicie pominięto pewne potrzebne
funkcje, takie jak usuwanie obiektów i
uprawnień.

Teraz,

w

dobie

scalania

się

świata

komputerowego, twórcy oprogramowania
i użytkownicy chcieliby pracować z
różnymi

systemami

baz

danych

w

jednakowy sposób.

background image

Prof. dr hab. inż. S. Wiak

252

Spowodowało to

żądanie standaryzacji

programów

, co dawniej zależało tylko

od dobrej woli twórców programów. W

dodatku wiele lat korzystania z języka i

badań nad nim doprowadziło do tego,

że wielu twórców chciało wprowadzić

nowe elementy do SQL-a. Dlatego też

powstał nowy standard: SQL 92.

SQL 92 jest nadzbiorem standardu 89

.

Jednym z braków starego standardu

poprawionego

w

SQL-u

92

były

definicje użytkowników, schematów i

sesji. Poprzedni standard pozostawił je

całkowicie uznaniu twórcom systemów.

background image

Prof. dr hab. inż. S. Wiak

253

Instrukcje SQL-a są pogrupowane

według funkcji. Taki podział jest
praktyczny w pewnych sytuacjach. W
standardzie SQL-a najczęściej używa
się trzech grup.

Są to:

Język definicji danych (DDL), który zawiera
wszystkie

instrukcje

do

definiowania

schematów i należących do nich obiektów.
Najważniejsze instrukcje DDL służą do
tworzenia

różnych

obiektów:

CREATE

SCHEMA, CREATE TABLE, CREATE VIEW,
CREATE ASSERTION, CREATE DOMAIN.

background image

Prof. dr hab. inż. S. Wiak

254

Język „manipulowania” danymi (DML)

zawierający

wszystkie

instrukcje

do

przechowywania,

modyfikowania

i

wyszukiwania

danych

w

tablicach.

Najważniejsze

instrukcje

to:

SELECT,

INSERT, UPDATE i DELETE. SELECT jest

używany do formułowania zapytań i

prawdopodobnie jest najbardziej złożoną,

pojedynczą instrukcją w SQL-u. Inne

instrukcje operują na danych w tablicach.

Instrukcje

Sterowania

Danymi,

które

kontrolują

uprawnienia

użytkownika

umożliwiające wykonywanie określonych

akcji na obiektach w bazie danych (często

w standardzie 92 uważa się tę część za

fragment DDL). Podstawowe instrukcje to

GRANT i REVOKE.

background image

Prof. dr hab. inż. S. Wiak

255

Inne kategorie standardu 92 to instrukcje

transakcji, łączenia, sesji, dynamiczne i
diagnostyczne. Głównym praktycznym
znaczeniem podziału na kategorie jest
to, że standard nie pozwala na
mieszanie instrukcji DDL i DML w jednej
transakcji

(grupie

instrukcji,

która

kończy się sukcesem lub porażką jako
całość).

background image

Prof. dr hab. inż. S. Wiak

256

Relacja Internet - bazy danych

Trendy w technologii baz danych.

Ze względu na ogromnie szybki rozwój sieci Internet,

i tego że coraz szersze grupy użytkowników
posiadają takie narzędzie jak przeglądarka WWW,
okazało się, że najłatwiejszym sposobem dotarcia
do klienta, będzie dostosowanie baz danych do
wymogów

języka

hipertekstowego.

Ta

technologia baz danych udostępnianych przez
Internet w najbliższych latach rozwijać się będzie w
następujących kierunkach:

trójwarstwowa architektura klient-serwer -

przesunięcie logiki działania aplikacji z
poziomu

komputera/aplikacji-klienta

lub

serwera na pośredni poziom - poziom
działania modułu transakcyjnego

background image

Prof. dr hab. inż. S. Wiak

257

Universal Data Access

- technologia

firmy Microsoft pozwalająca na dostęp

do wszystkich typów danych poprzez

jeden uniwersalny model obiektów.

Wykorzystuje

ona

nowoczesny

standard dostępu do danych zwany

OLE DB

. Z kolei technologia

ActiveX

Data Objects

(

ADO

) udostępnia zestaw

interfejsów do programowego dostępu

do danych. Te techniki pozwalają na

oddzielenie rezerwuarów danych i

modułów przetwarzających zapytania.

Np. lokalna baza danych jest częścią

całościowej,

ogólnopolskiej

bazy

danych.

background image

Prof. dr hab. inż. S. Wiak

258

Remote Data Services

(

RDS

) i

Active Server

Pages

(

ASP

) - Internet mimo całej swoje

uniwersalności zastosowań stwarza nowe

problemy w dostępie do baz danych, tj. w

braku

ciągłości

połączenia

pomiędzy

klientem i serwerem danych. W związku z

tym powstały dwa modele dostępu do danych

poprzez sieć Internet:

1.

RDS jest to zestaw komponentów które

udostępniają infrastrukturę pozwalającą na

efektywne

przenoszenie

danych

z

komponentów serwerowych mieszczących się

w

pośredniej

warstwie

trójwarstwowego

modelu klient-serwer do poziomu klienta

2.

ASP pozwala serwerom WWW na inteligentne

współdziałanie z użytkownikiem-klientem danych i

dynamiczne budowanie stron HTML w zależności od

potrzeb klienta.

background image

Prof. dr hab. inż. S. Wiak

259

Relacja Internet - bazy danych.

Gwałtowny

rozwój

Internetu

i

masowe

udostępnianie go użytkownikom to jeden z
najważniejszych powodów dla jakich projektanci
baz danych musieli znaleźć drogę udostępniania
swoich zasobów przy pomocy zwykłej internetowej
przeglądarki. Obecnie każdy użytkownik Windows
posiada zainstalowaną przeglądarkę WWW, także
ilość przyłączony komputerów do sieci Internet
nieustannie wzrasta.

Zaprojektowana baza danych musi wiec spełniać

kilka wymogów:

jej interfejs musi być w formacie

HTML

,

rozpoznawanym przez przeglądarki

,

jak i

obciążenie związane z wykonywaniem zapytań do
źródła bazy musi zachodzić po stronie serwera

, a

nie klienta.

background image

Prof. dr hab. inż. S. Wiak

260

Proces adaptacji danych i ich wizualizacja

w Internecie.

Jak działa program

Internet Database

Connector (IDC

)? -

Sposób w jaki można uzyskać dostęp do bazy

danych w programie

Internet

Information

Server

(IIS)

przedstawia następujący schemat:

Schemat

funkcjonowania IDC

background image

Prof. dr hab. inż. S. Wiak

261

Przeglądarki WWW (takie jak Internet Explorer

lub przeglądarki innych firm, na przykład
Netscape) zgłaszają zadania do serwera
internetowego, używając protokółu

HTTP

.

Serwer internetowy odpowiada dokumentem
sformatowanym w języku

HTML

.

Dostęp do bazy danych jest realizowany przez

składnik

programu

Internet

Information

Serwer (IIS)

o nazwie

Internet Database

Connector (IDC).

Jego plik -

Httpodbc.dll

jest

biblioteką

ISAPI DLL

używającą

ODBC

do

dostępu do baz danych. Różne konfiguracje
połączenia programu

IIS

z bazami danych,

wyżej wymienionych składników przedstawia
rys.

background image

Prof. dr hab. inż. S. Wiak

262

background image

Prof. dr hab. inż. S. Wiak

263

W programie IDC stosowane są dwa typy plików

do kontrolowania sposobu dostępu do bazy
danych oraz sposobu konstruowania wynikowej
strony WWW. Pliki te to pliki programu

Internet

Database Connector (.idc)

i pliki rozszerzeń

HTML (.htx

).

Pliki programu

Internet Database Connector

zawierają informacje konieczne do połączenia
się z odpowiednim źródłem danych

ODBC

i

wykonania instrukcji

SQL

. Plik

IDC

zawiera

także nazwę i lokalizacje pliku rozszerzenia

HTML

.

Plik

rozszerzenia

HTML

jest

szablonem

rzeczywistego dokumentu

HTML

, który jest

zwracany

do

przeglądarki

WWW

po

umieszczeniu w nim informacji przez program

IDC

.

background image

Prof. dr hab. inż. S. Wiak

264

Edycja stron WWW z dostępem do bazy danych.

 W celu zapewnienia dostępu do bazy danych SQL

ze strony WWW, należy utworzyć plik

Internet

Database

Connector

(rozszerzenie

nazwy

pliku

.idc)

i

plik

rozszerzenia

HTML

(rozszerzenie nazwy pliku .htx).

Cały proces korzystania

z programu Internet Database
Connector jest wykonywany
w sześciu krokach
pokazanych na rysunku.

background image

Prof. dr hab. inż. S. Wiak

265

Sześć kroków korzystania z

IDC

:

1.

Program

IIS

otrzymuje adres

URL

.

2.

Adres

URL

jest

wysłany

przez

przeglądarkę WWW.

3.

IIS

ładuje plik

Httpodbc.dll

i przekazuje

pozostałe informacje z adresu

URL

.

Pliki

.idc

są mapowane do biblioteki

Httpodbc.dll

.

Jest

ona

ładowana

i

uzyskuje nazwę pliku

Internet Database

Connector

(i inne elementy) z adresu

URL

przekazanego do programu

IIS

.

Httpodbc.dll

czyta plik Internet Database

Connector (

.idc

).

background image

Prof. dr hab. inż. S. Wiak

266

4.

Program

IDC

łączy się ze źródłem

ODBC

i wykonuje

instrukcje

SQL

zawarta w pliku Internet

Database

Connector.

Tworzone jest połączenie

IDC

ze źródłem danych

ODBC

, co polega w tym przykładzie na załadowaniu

sterownika

ODBC

bazy

SQL Server

i połączeniu z

serwerem określonym w definicji źródła danych. Po
utworzeniu połączenia, instrukcja

SQL

z pliku

Internet Database Connector

przesyłana jest do

sterownika

ODBC bazy SQL Server

, który z kolei

przesyła ją do bazy

SQL Server

.

5.

IDC

pobiera dane z bazy danych i scala je z plikiem

rozszerzenia

HTML

.

6.

IDC

przesyła scalony dokument z powrotem do

programu

IIS

, który zwraca go do klienta.

Po scaleniu wszystkich danych w pliku

.htx

, pełny

dokument HTML jest przesyłany z powrotem do
klienta.


Document Outline


Wyszukiwarka

Podobne podstrony:
Systemy Baz Danych (cz 1 2)
Systemy Baz Danych (cz 1 3)
Systemy Baz Danych (cz 1 2)
SBD wyklad 4, student - informatyka, Systemy Baz Danych
SBD wykład 2, student - informatyka, Systemy Baz Danych
SBD wykład 3, student - informatyka, Systemy Baz Danych
SBD wykład 1, student - informatyka, Systemy Baz Danych
SYSTEM B, student - informatyka, Systemy Baz Danych
R. 6-2 Struktura OBD-przyklad 1, Uczelniane, Semestr 2, Zaawansowane Systemy Baz Danych, WYKŁ [OZaik
Systemy baz danych 10
Wprowadzenie do systemow baz danych wprsys
Systemy baz danych Kompletny podrecznik Wydanie II 2
Wprowadzenie do systemow baz danych wprsys
Systemy baz danych w7
perspektywy w systemach baz danych
Systemy baz danych Kompletny podrecznik Wydanie II
Wprowadzenie do systemow baz danych

więcej podobnych podstron