You are on page 1of 33

IDZ DO

PRZYKADOWY ROZDZIA
SPIS TRECI

KATALOG KSIEK
KATALOG ONLINE
ZAMW DRUKOWANY KATALOG

TWJ KOSZYK
DODAJ DO KOSZYKA

CENNIK I INFORMACJE
ZAMW INFORMACJE
O NOWOCIACH
ZAMW CENNIK

CZYTELNIA
FRAGMENTY KSIEK ONLINE

Wydawnictwo Helion
ul. Chopina 6
44-100 Gliwice
tel. (32)230-98-63
e-mail: helion@helion.pl

Wprowadzenie do
systemw baz danych
Autor: Ramez Elmasri, Shamkant B. Navathe
Tumaczenie: Mikoaj Szczepaniak (rozdz. 0 9, 27 29),
Bartomiej Garbacz (rozdz. 10 19, dod. A C),
Bartomiej Moczulski (rozdz. 20 26)
ISBN: 83-7361-716-7
Tytu oryginau: Fundamentals of Database
Systems, 4th Edition
Format: B5, stron: 1056
Bazy danych to podstawa wikszoci zoonych systemw informatycznych.
W oparciu o dane czerpane z tabel w bazie dziaaj portale i sklepy internetowe,
aplikacje biznesowe i informacyjne, a nawet multimedialne witryny, coraz czciej
spotykane w urzdach, muzeach i innych budynkach uytecznoci publicznej.
Na rynku dostpnych jest wiele systemw zarzdzania bazami danych, oferowanych
przez rnych producentw i na rnych zasadach licencjonowania. Pomimo istotnych
rnic, wszystkie opieraj si na podobnych zaoeniach, a projektowanie wydajnych
baz danych odbywa si w niemal identyczny sposb, niezalenie od docelowego
systemu zarzdzania nimi. Opanowanie wiadomoci lecych u podstaw projektowania
i wykorzystywania baz danych jest wic niezbdne do stworzenia efektywnego
i bezpiecznego zaplecza bazodanowego dla systemu informatycznego.
Ksika Wprowadzenie do systemw baz danych to szczegowe omwienie
wszystkich aspektw projektowania i stosowania baz danych. Szczeglny nacisk
pooono w niej na podstawy modelowania danych i definiowania tabel. Ksika moe
peni rol podrcznika pomocnego przy poznawaniu zagadnie zwizanych z bazami
danych lub rda informacji dla projektantw i administratorw systemw
bazodanowych.
Rozwizania oparte na bazach danych
Uytkownicy baz danych
Architektury systemw zarzdzania bazami danych
Modelowanie danych oparte na zwizkach encji
Zastosowanie jzyka UML w modelowaniu danych
Relacyjny model danych
Jzyk SQL-99
Normalizacja danych
Skadowanie danych na dysku
Indeksy i klucze
Algorytmy przetwarzania zapyta
Mechanizmy transakcyjne
Obiektowe bazy danych
Bezpieczestwo danych
Jzyk XML w bazach danych
Technologie eksploracji danych
Hurtownie danych, systemy GIS i bazy danych dla urzdze mobilnych
Ksika stanowi rdo wiedzy dla projektantw baz danych i oprogramowania
bazodanowego.

Spis treci

Przedmowa ................................................................................................................13

I
WPROWADZENIE I MODELOWANIE KONCEPCYJNE ..........................................19

1.
Bazy danych i ich uytkownicy .................................................................................21
1.1. Wprowadzenie .............................................................................................................................22
1.2. Przykad .......................................................................................................................................23
1.3. Waciwoci rozwiza opartych na bazach danych ....................................................................26
1.4. Aktorzy na scenie ........................................................................................................................31
1.5. Pracownicy poza scen ................................................................................................................33
1.6. Zalety stosowania rozwiza opartych na systemach zarzdzania bazami danych ......................34
1.7. Krtka historia praktycznych zastosowa baz danych .................................................................40
1.8. Kiedy nie naley uywa systemw zarzdzania bazami danych ................................................43
1.9. Podsumowanie .............................................................................................................................44

2.
Architektura systemw baz danych i zwizane z nimi pojcia .................................47
2.1. Modele danych, schematy i egzemplarze .....................................................................................48
2.2. Trjwarstwowa architektura i niezaleno danych .....................................................................51
2.3. Jzyki i interfejsy baz danych ......................................................................................................54
2.4. rodowisko systemu bazy danych ...............................................................................................57
2.5. Architektury systemw zarzdzania bazami danych scentralizowane i typu klient-serwer .........61
2.6. Klasyfikacja systemw zarzdzania bazami danych ....................................................................66
2.7. Podsumowanie .............................................................................................................................68

3.
Modelowanie danych zgodnie z modelem zwizkw encji ......................................71
3.1. Stosowanie wysokopoziomowych, koncepcyjnych modelw danych podczas projektowania
bazy danych ................................................................................................................................72
3.2. Przykadowa aplikacja bazy danych ............................................................................................74
3.3. Typy encji, zbiory encji, atrybuty i klucze ...................................................................................75
3.4. Typy zwizkw, zbiory zwizkw, role i ograniczenia strukturalne ...........................................82
3.5. Sabe typy encji ...........................................................................................................................89
3.6. Udoskonalanie projektu ER dla bazy danych FIRMA .................................................................90

SPIS TRECI

3.7. Diagramy ER, konwencje nazewnictwa oraz zagadnienia zwizane z projektowaniem ..............91
3.8. Notacja dla diagramw klas UML ...............................................................................................95
3.9. Podsumowanie .............................................................................................................................97

4.
Rozszerzony model zwizkw encji oraz modelowanie UML ...............................105
4.1. Podklasy, nadklasy i dziedziczenie ............................................................................................106
4.2. Specjalizacja i generalizacja ......................................................................................................108
4.3. Ograniczenia i waciwoci zwizkw specjalizacji i generalizacji ...........................................111
4.4. Modelowanie typw UNII w oparciu o kategorie ......................................................................118
4.5. Przykad schematu EER dla bazy danych UNIWERSYTET oraz formalne definicje
dla modelu EER ........................................................................................................................120
4.6. Reprezentowanie specjalizacji-generalizacji oraz dziedziczenia na diagramach klas
metodologii UML .....................................................................................................................124
4.7. Typy zwizkw stopnia wyszego ni drugi .............................................................................125
4.8. Abstrakcja danych, reprezentacja wiedzy oraz zagadnienia zwizane z ontologi ....................129
4.9. Podsumowanie ...........................................................................................................................135

II
MODEL RELACYJNY: ELEMENTY SKADOWE, OGRANICZENIA,
JZYKI, PROJEKTY I PROGRAMOWANIE .............................................................143

5.
Relacyjny model danych i ograniczenia relacyjnych baz danych ...........................145
5.1. Podstawowe pojcia relacyjnego modelu danych ......................................................................146
5.2. Ograniczenia modelu relacyjnego i schematy relacyjnych baz danych .....................................152
5.3. Operacje aktualizacji i obsuga narusze wizw integralnoci ................................................160
5.4. Podsumowanie ...........................................................................................................................163

6.
Algebra relacyjna i rachunek relacji ........................................................................169
6.1. Relacyjne operacje unarne: selekcja i projekcja ........................................................................170
6.2. Operacje algebry relacyjnej pochodzce z teorii zbiorw ..........................................................175
6.3. Binarne operacje na relacjach: zczenie i dzielenie ..................................................................179
6.4. Dodatkowe operacje relacyjne ...................................................................................................186
6.5. Przykady zapyta w algebrze relacyjnej ...................................................................................192
6.6. Relacyjny rachunek krotek ........................................................................................................194
6.7. Relacyjny rachunek dziedzin .....................................................................................................203
6.8. Podsumowanie ...........................................................................................................................206

7.
Projektowanie relacyjnych baz danych przez odwzorowywanie modelu ER i EER
w model relacyjny ...................................................................................................213
7.1. Projektowanie relacyjnych baz danych w oparciu o odwzorowywanie modelu ER
w model relacyjny .....................................................................................................................213
7.2. Odwzorowania konstrukcji modelu EER w relacje ...................................................................221
7.3. Podsumowanie ...........................................................................................................................225

SPIS TRECI

8.
SQL-99: Definicja schematu, podstawowe ograniczenia oraz zapytania ................229
8.1. Definicje danych i typy danych jzyka SQL ..............................................................................231
8.2. Okrelanie podstawowych ogranicze w jzyku SQL ...............................................................236
8.3. Dostpne w jzyku SQL polecenia zmiany schematu ................................................................240
8.4. Podstawowe zapytania jzyka SQL ...........................................................................................242
8.5. Bardziej skomplikowane zapytania jzyka SQL ........................................................................253
8.6. Dostpne w jzyku SQL polecenia INSERT, DELETE i UPDATE ..........................................270
8.7. Dodatkowe wasnoci jzyka SQL ............................................................................................273
8.8. Podsumowanie ...........................................................................................................................274

9.
Wicej o jzyku SQL: asercje, perspektywy i techniki programowania .................279
9.1. Definiowanie oglnych ogranicze w postaci asercji ................................................................280
9.2. Perspektywy (tabele wirtualne) w jzyku SQL ..........................................................................281
9.3. Programowanie baz danych: najwaniejsze zagadnienia i stosowane techniki ..........................286
9.4. Osadzony jzyk SQL, dynamiczny jzyk SQL oraz jzyk SQLJ ...............................................289
9.5. Programowanie baz danych z wywoaniami funkcji: SQL/CLI oraz JDBC ..............................301
9.6. Procedury skadowane w bazie danych i technika SQL/PSM ...................................................311
9.7. Podsumowanie ...........................................................................................................................314

III
TEORIA I METODOLOGIA PROJEKTOWANIA BAZ DANYCH ...........................317

10.
Zalenoci funkcyjne i normalizacja w relacyjnych bazach danych .......................319
10.1. Nieformalne wskazwki dotyczce projektowania schematw relacji ......................................321
10.2. Zalenoci funkcyjne .................................................................................................................329
10.3. Postaci normalne oparte na kluczach gwnych ........................................................................337
10.4. Definicje oglne drugiej i trzeciej postaci normalnej ................................................................345
10.5. Posta normalna Boycea-Codda ...............................................................................................349
10.6. Podsumowanie ...........................................................................................................................351

11.
Algorytmy projektowania relacyjnych baz danych i dodatkowe zalenoci ...........357
11.1. Waciwoci dekompozycji relacyjnych ....................................................................................358
11.2. Algorytmy projektowania schematw relacyjnych baz danych .................................................364
11.3. Zalenoci wielowartociowe i czwarta posta normalna ..........................................................370
11.4. Zalenoci zczeniowe i pita posta normalna .......................................................................376
11.5. Zalenoci zawierania ................................................................................................................378
11.6. Inne zalenoci i postaci normalne ............................................................................................379
11.7. Podsumowanie ...........................................................................................................................381

12.
Praktyczna metodologia projektowania baz danych i uycie diagramw UML .....385
12.1. Rola systemw informacyjnych w przedsibiorstwach .............................................................386
12.2. Projekt bazy danych i proces jej implementacji .........................................................................390
12.3. Uycie diagramw jzyka UML jako rodka wspomagajcego tworzenie specyfikacji... .........408
12.4. Rational Rose narzdzie projektowe oparte na jzyku UML ................................................417
12.5. Narzdzia zautomatyzowanego projektowania baz danych .......................................................421
12.6. Podsumowanie ...........................................................................................................................425

SPIS TRECI

IV
PRZECHOWYWANIE DANYCH, INDEKSOWANIE,
PRZETWARZANIE ZAPYTA ORAZ PROJEKTOWANIE FIZYCZNE .................429

13.
Skadowanie danych na dysku, podstawowe struktury plikowe
i funkcje mieszajce ................................................................................................431
13.1. Wprowadzenie ...........................................................................................................................432
13.2. Drugorzdne urzdzenia pamiciowe ........................................................................................435
13.3. Buforowanie blokw .................................................................................................................441
13.4. Rozmieszczanie rekordw plikw na dysku ..............................................................................442
13.5. Operacje wykonywane na plikach .............................................................................................446
13.6. Pliki nieuporzdkowanych rekordw (pliki stertowe) ...............................................................449
13.7. Pliki uporzdkowanych rekordw (pliki posortowane) .............................................................450
13.8. Techniki mieszania ....................................................................................................................453
13.9. Inne podstawowe metody organizacji plikw ............................................................................461
13.10. Zapewnianie rwnolegego dostpu do dysku przy uyciu architektury RAID .........................462
13.11. Sieci obszarw skadowania danych ..........................................................................................467
13.12. Podsumowanie ...........................................................................................................................468

14.
Struktury indeksowe dla plikw ..............................................................................475
14.1. Rodzaje jednopoziomowych indeksw uporzdkowanych ........................................................476
14.2. Indeksy wielopoziomowe ..........................................................................................................485
14.3. Dynamiczne indeksy wielopoziomowe z uyciem B-drzew i B+-drzew ....................................488
14.4. Indeksy na wielu kluczach .........................................................................................................501
14.5. Inne rodzaje indeksw ...............................................................................................................505
14.6. Podsumowanie ...........................................................................................................................506

15.
Algorytmy przetwarzania i optymalizacji zapyta ..................................................513
15.1. Translacja zapyta jzyka SQL do postaci wyrae algebry relacji ..........................................515
15.2. Algorytmy sortowania zewntrznego ........................................................................................516
15.3. Algorytmy operacji wybierania i zczenia ...............................................................................518
15.4. Algorytmy operacji rzutowania i teoriomnogociowych ...........................................................528
15.5. Implementacja operacji agregujcych oraz zcze zewntrznych ............................................529
15.6. czenie operacji poprzez mechanizm potokowy .....................................................................531
15.7. Wykorzystanie metod heurystycznych do optymalizacji zapyta ..............................................532
15.8. Wykorzystanie oszacowa selektywnoci i kosztu w optymalizacji zapyta ............................543
15.9. Przegld technik optymalizacji zapyta w systemie Oracle ......................................................552
15.10. Semantyka optymalizacji zapyta .............................................................................................553
15.11. Podsumowanie ...........................................................................................................................554

16.
Praktyczne projektowanie i strojenie baz danych ...................................................557
16.1. Fizyczne projektowanie baz danych w przypadku baz relacyjnych ...........................................557
16.2. Przegld technik strojenia baz danych w systemach relacyjnych ..............................................560
16.3. Podsumowanie ...........................................................................................................................567

SPIS TRECI

V
ZAGADNIENIA Z ZAKRESU PRZETWARZANIA TRANSAKCJI .........................569

17.
Wprowadzenie do problematyki i teorii przetwarzania transakcji ..........................571
17.1. Wprowadzenie do problematyki przetwarzania transakcji ........................................................572
17.2. Pojcia dotyczce transakcji i systemu ......................................................................................578
17.3. Podane waciwoci transakcji ...............................................................................................581
17.4. Charakteryzowanie harmonogramw na podstawie moliwoci odtwarzania ...........................582
17.5. Charakterystyka harmonogramw wedug ich szeregowalnoci ...............................................586
17.6. Obsuga transakcji w jzyku SQL .............................................................................................596
17.7. Podsumowanie ...........................................................................................................................598

18.
Techniki sterowania wspbienego ........................................................................601
18.1. Techniki blokowania dwufazowego dla celw sterowania wspbienego ...............................602
18.2. Sterowanie wspbiene w oparciu o uporzdkowanie wedug znacznikw czasu ...................612
18.3. Techniki wielowersyjnego sterowania wspbienego ..............................................................614
18.4. Techniki walidacyjnego (optymistycznego) sterowania wspbienego ...................................617
18.5. Ziarnisto elementw danych i blokowanie z wieloma poziomami ziarnistoci ......................619
18.6. Uycie blokad dla celw sterowania wspbienego w przypadku indeksw ...........................623
18.7. Inne kwestie zwizane ze sterowaniem wspbienym .............................................................624
18.8. Podsumowanie ...........................................................................................................................625

19.
Techniki odtwarzania baz danych ...........................................................................629
19.1. Pojcia zwizane z odtwarzaniem .............................................................................................630
19.2. Techniki odtwarzania oparte na aktualizacjach odroczonych ....................................................636
19.3. Techniki odtwarzania oparte na aktualizacjach natychmiastowych ...........................................641
19.4. Stronicowanie z przesanianiem ................................................................................................642
19.5. Algorytm odtwarzania ARIES ...................................................................................................644
19.6. Odtwarzanie w systemach wielu baz danych .............................................................................647
19.7. Tworzenie kopii bezpieczestwa bazy danych i odtwarzanie po awariach ................................648
19.8. Podsumowanie ...........................................................................................................................649

VI
OBIEKTOWE I OBIEKTOWO-RELACYJNE BAZY DANYCH ...............................655

20.
Idea obiektowych baz danych .................................................................................657
20.1. Przegld poj zorientowanych obiektowo ...............................................................................658
20.2. Tosamo i struktura obiektw oraz konstruktory typw ........................................................661
20.3. Enkapsulacja operacji, metody i trwao obiektw ..................................................................666
20.4. Hierarchia typw i klas oraz dziedziczenie ................................................................................670
20.5. Obiekty zoone .........................................................................................................................674
20.6. Inne pojcia zorientowane obiektowo .......................................................................................676
20.7. Podsumowanie ...........................................................................................................................678

10

SPIS TRECI

21.
Standardy, jzyki i projektowanie obiektowych baz danych ..................................681
21.1. Wstp do modelu obiektowego ODMG ....................................................................................682
21.2. Jzyk definicji obiektw ODL ...................................................................................................693
21.3. Obiektowy jzyk zapyta OQL .................................................................................................699
21.4. Przegld wizania z jzykiem C++ ............................................................................................707
21.5. Projektowanie pojciowe obiektowej bazy danych ...................................................................708
21.6. Podsumowanie ...........................................................................................................................711

22.
Systemy obiektowo-relacyjne i rozszerzone relacyjne ............................................713
22.1. Przegld SQL i jego cech obiektowo-relacyjnych .....................................................................714
22.2. Obecne tendencje i ewolucja w technologiach baz danych .......................................................721
22.3. Informix Universal Server .........................................................................................................722
22.4. Obiektowo-relacyjne cechy systemu Oracle 8 ...........................................................................732
22.5. Problemy implementacyjne w rozszerzonych systemach typw ...............................................735
22.6. Zagniedony model relacyjny ..................................................................................................736
22.7. Podsumowanie ...........................................................................................................................739

VII
INNE TEMATY .............................................................................................................741

23.
Bezpieczestwo baz danych i mechanizmy uwierzytelniania .................................743
23.1. Wprowadzenie do bezpieczestwa baz danych .........................................................................743
23.2. Dyspozycyjna kontrola dostpu polegajca na nadawaniu i odbieraniu uprawnie ..................747
23.3. Realizacja zabezpiecze wielopoziomowych za pomoc obowizkowej kontroli dostpu
i zabezpiecze opartych na rolach .............................................................................................752
23.4. Wprowadzenie do bezpieczestwa statystycznych baz danych .................................................756
23.5. Wprowadzenie do kontroli przepywu .......................................................................................758
23.6. Szyfrowanie i infrastruktura klucza publicznego .......................................................................759
23.7. Podsumowanie ...........................................................................................................................761

24.
Rozszerzone modele danych stosowane w zaawansowanych aplikacjach ..............765
24.1. Wyzwalacze i inne pojcia zwizane z aktywnymi bazami danych ..........................................766
24.2. Koncepcja czasowych baz danych .............................................................................................776
24.3. Przestrzenne i multimedialne bazy danych ................................................................................787
24.4. Wprowadzenie do dedukcyjnych baz danych ............................................................................790
24.5. Podsumowanie ...........................................................................................................................803

25.
Rozproszone bazy danych i architektury klient-serwer ...........................................809
25.1. Koncepcja rozproszonej bazy danych ........................................................................................810
25.2. Techniki fragmentacji, replikacji i alokacji danych w projekcie rozproszonej bazy danych .....815
25.3. Rodzaje rozproszonych systemw baz danych ..........................................................................820
25.4. Przetwarzanie zapyta w rozproszonych bazach danych ...........................................................823
25.5. Techniki sterowania wspbienego i odzyskiwania danych w rozproszonych bazach danych ... 828
24.6. Przegld trjwarstwowej architektury klient-serwer ..................................................................831
25.7. Rozproszone bazy danych w Oracle ..........................................................................................833
25.8. Podsumowanie ...........................................................................................................................836

SPIS TRECI

11

VIII
NOWE TECHNOLOGIE ...............................................................................................841

26.
XML i internetowe bazy danych .............................................................................843
26.1. Dane strukturalne, pstrukturalne i niestrukturalne ..................................................................843
26.2. Hierarchiczny (drzewiasty) model danych w dokumentach XML .............................................846
26.3. Dokumenty XML, DTD i schematy ..........................................................................................848
26.4. Dokumenty XML a bazy danych ...............................................................................................855
26.5. Zapytania XML .........................................................................................................................862
26.6. Podsumowanie ...........................................................................................................................864

27.
Elementy drenia danych .......................................................................................867
27.1. Przegld technologii drenia danych .......................................................................................868
27.2. Reguy asocjacyjne ....................................................................................................................872
27.3. Klasyfikacja ...............................................................................................................................884
27.4. Grupowanie ...............................................................................................................................888
27.5. Strategie rozwizywania pozostaych problemw zwizanych z dreniem danych .................891
27.6. Zastosowania technik drenia danych ......................................................................................894
27.7. Komercyjne narzdzia drenia danych ....................................................................................894
27.8. Podsumowanie ...........................................................................................................................897

28.
Przegld hurtowni danych i rozwiza OLAP ........................................................901
28.1. Wprowadzenie, definicje i terminologia ....................................................................................901
28.2. Waciwoci hurtowni danych ...................................................................................................903
28.3. Modelowanie danych dla hurtowni danych ...............................................................................904
28.4. Budowanie hurtowni danych .....................................................................................................910
28.5. Typowa funkcjonalno hurtowni danych .................................................................................913
28.6. Hurtownie danych kontra perspektywy .....................................................................................914
28.7. Problemy i nierozwizane zagadnienia zwizane z hurtowniami danych ..................................914
28.8. Podsumowanie ...........................................................................................................................916

29.
Przegld najnowszych technologii i zastosowa baz danych ..................................919
29.1. Mobilne bazy danych .................................................................................................................920
29.2. Multimedialne bazy danych .......................................................................................................928
29.3. Systemy informacji geograficznej .............................................................................................936
29.4. Zarzdzanie danymi kodu genetycznego ...................................................................................943

DODATKI ......................................................................................................................953
A Alternatywne notacje modeli zwizkw encji .....................................................955
B Parametry dyskw ...............................................................................................959
C Omwienie jzyka QBE ......................................................................................963
Bibliografia ..........................................................................................................971
Skorowidz .........................................................................................................1007

Bazy danych i ich uytkownicy

Bazy danych i systemy baz danych stay si kluczowym narzdziem w yciu codziennym wspczesnego spoeczestwa. Niemal codziennie kady z nas wykonuje wiele czynnoci, ktre w taki czy inny
sposb wi si z wykorzystywaniem bazy danych. Przykadowo, kiedy idziemy do banku celem
wpacenia lub wypacenia pienidzy z naszego konta, kiedy rezerwujemy pokj w hotelu lub bilet lotniczy, kiedy szukamy interesujcych nas pozycji w skomputeryzowanym katalogu biblioteki lub kiedy
kupujemy cokolwiek (ksik, zabawk czy choby komputer) w sklepie internetowym obsugiwanym
za porednictwem strony WWW, jest bardzo prawdopodobne, e tego typu czynnoci wymagaj od
kogo lub od jakiego programu komputerowego wanie dostpu do bazy danych. Nawet zwyke
zakupy w supermarkecie w wielu przypadkach wi si obecnie z automatyczn aktualizacj bazy
danych reprezentujcej stan zapasw poszczeglnych artykuw.
Wymienione powyej dziaania s przykadami tego, co moemy nazwa tradycyjnymi zastosowaniami baz danych, w ktrych wikszo przechowywanych i uzyskiwanych informacji ma posta
albo danych tekstowych, albo danych numerycznych. Przez ostatnie kilka lat stay postp technologiczny doprowadzi do wynalezienia zupenie nowych, pasjonujcych zastosowa dla systemw baz
danych. Multimedialne bazy danych mog teraz przechowywa obrazy, klipy wideo czy komunikaty
gosowe. Geograficzne systemy informacyjne (ang. Geographic Information Systems GIS) mog
przechowywa i analizowa mapy, dane o pogodzie, a nawet zdjcia satelitarne. Hurtownie danych
i systemy OLAP (od ang. Online Analytical Processing) s wykorzystywane do wydzielania z ogromnych baz danych przydatnych informacji i ich analizy, ktra ma ostatecznie uatwi podjcie waciwych decyzji. Technologie baz danych czasu rzeczywistego i aktywnych baz danych s przydatne podczas sterowania procesami w produkcji przemysowej. Okazuje si take, e techniki
przeszukiwania baz danych znalazy zastosowanie w wiecie witryn i stron internetowych, gdzie
w ostatnim czasie znacznie usprawniono mechanizmy wyszukiwania przez uytkownikw potrzebnych
informacji w internecie.
Aby zrozumie podstawy tych technologii, musimy jednak rozpocz nasze rozwaania od analizy bardziej tradycyjnych zastosowa baz danych. W podrozdziale 1.1 zdefiniujemy wic to, czym
faktycznie jest baza danych, i dopiero potem przystpimy do omawiania innych podstawowych poj.
W podrozdziale 1.2 przedstawimy prosty przykad bazy danych   , ktry bdzie stanowi
dobr ilustracj dla naszych rozwaa. W podrozdziale 1.3 opiszemy niektre spord najwaniejszych
wasnoci systemw baz danych, natomiast w podrozdziaach 1.4 i 1.5 sprbujemy odpowiednio
skategoryzowa typy pracownikw, ktrych praca wie si z wykorzystywaniem systemw baz
danych. Podrozdziay 1.6, 1.7 oraz 1.8 zawieraj bardziej szczegow analiz moliwoci oferowanych przez systemy baz danych oraz ich typowych zastosowa. Tre podrozdziau 1.9 bdzie podsumowaniem caego rozdziau.

22

1. BAZY DANYCH I ICH UYTKOWNICY

Czytelnicy, ktrzy chcieliby bardzo szybko przebrn przez teoretyczne wprowadzenie do systemw baz danych, mog przeczyta jedynie podrozdziay od 1.1 do 1.5, pomin podrozdziay od 1.6
do 1.8 i od razu przej do rozdziau 2.

1.1. Wprowadzenie
Bazy danych i technologie baz danych w ogromnym stopniu przyczyniaj si do wzrostu liczby zastosowa komputerw. Moemy z penym przekonaniem stwierdzi, e wanie bazy danych odgrywaj
gwn rol niemal we wszystkich obszarach, w ktrych w ogle wykorzystuje si komputery
wystarczy wymieni takie gazie jak biznes, handel elektroniczny, inynieria, medycyna, prawo,
edukacja czy bibliotekarstwo. Okrelenie baza danych jest dzi na tyle popularne, e powinnimy
rozpocz nasze rozwaania od zdefiniowania, czym faktycznie jest baza danych. Przedstawiona poniej definicja bdzie na razie dosy oglna.
Baza danych jest zbiorem powizanych ze sob danych. Przez dane rozumiemy w tym przypadku znane fakty, ktre mona jako zarejestrowa, i ktre maj konkretne znaczenie. Przykadowo, rozwamy nazwiska, numery telefonw oraz adresy osb, ktre znamy moemy mie te
dane zarejestrowane w odpowiednio indeksowanej ksice adresowej lub przechowywa je na
twardym dysku swojego komputera z wykorzystaniem oprogramowania (choby aplikacji Microsoft
Access lub Microsoft Excel). Mamy wic zbir powizanych ze sob danych o konkretnym znaczeniu, co oznacza, e dysponujemy baz danych.
Powysza definicja bazy danych jest dosy oglna; przykadowo, moemy traktowa zbir sw
skadajcych si na t stron tekstu jako zbir wzajemnie powizanych danych, a wic (zgodnie
z przyjtymi przed chwil warunkami) jako baz danych. Pojcie bazy danych w powszechnym
rozumieniu jest jednak znacznie wsze. Kada taka baza danych musi mie nastpujce wasnoci:
Baza danych reprezentuje jaki wybrany aspekt wiata rzeczywistego, nazywany niekiedy
mini-wiatem lub dziedzin problemu (ang. Universe of Discourse UoD). Zmiany w takim
mini-wiecie musz by uwzgldniane w bazie danych.
Baza danych jest logicznie koherentnym zbiorem danych z jakim spjnym znaczeniem. Przypadkowy zbir danych nie jest prawidow baz danych i nie naley dla niego stosowa tego
okrelenia.
Baza danych jest projektowana, konstruowana i wypeniana danymi w okrelonym celu. Do bazy
danych powinna by przypisana grupa docelowych uytkownikw oraz z gry przyjte zastosowania, ktre bd realizowane przez tych uytkownikw.
Innymi sowy, kada baza danych powinna mie pewne rdo, z ktrego bd pochodzi przechowywane dane, pewien stopie interakcji ze zdarzeniami majcymi miejsce w reprezentowanym
przez ni wycinku wiata rzeczywistego oraz uytkownikw, ktrzy s aktywnie zainteresowani
jej zawartoci.
Bazy danych mog mie dowolne rozmiary i zrnicowane poziomy zoonoci. Przykadowo,
wspominana ju lista nazwisk i adresw moe si skada tylko z kilku tysicy rekordw, z ktrych
kady ma stosunkowo prost struktur. Z drugiej strony, skomputeryzowany katalog zbiorw
wielkiej biblioteki moe si skada z p miliona wpisw zorganizowanych w rnych kategoriach (wedug nazwiska autora, tematu, tytuu itp.), ktre s z kolei uporzdkowane w kolejnoci
alfabetycznej. Jeszcze wiksza i bardziej skomplikowana baza danych jest utrzymywana przez
amerykaski urzd skarbowy (Internal Revenue Service), ktry przechowuje formularze podatkowe
wypeniane przez podatnikw na terenie caych Stanw Zjednoczonych. Jeli przyjmiemy, e takich

1.2. PRZYKAD

23

podatnikw jest 100 milionw i rekord dla kadego z nich zawiera rednio pi formularzy po 400
znakw informacji, otrzymamy baz danych zawierajc 1001064005 znakw (bajtw) informacji.
Gdyby okazao si, e amerykaski urzd skarbowy przechowuje dodatkowo dla kadego podatnika po
trzy formularze nadesane w przeszoci (poza formularzem tegorocznym), otrzymalibymy baz danych
zawierajc a 81011 bajtw (800 gigabajtw) informacji. Tak ogromna ilo informacji musi by
zorganizowana i zarzdzana w taki sposb, aby uytkownicy mogli t baz danych przeszukiwa,
uzyskiwa interesujce ich informacje oraz w razie potrzeby aktualizowa istniejce zapisy.
Baza danych moe by generowana i utrzymywana rcznie lub moe zosta cakowicie skomputeryzowana. Przykadowo, katalog kart bibliotecznych jest tym rodzajem bazy danych, ktry
mona stworzy i utrzymywa bez pomocy komputerw. Skomputeryzowane bazy danych mog
by tworzone i utrzymywane zarwno za pomoc grupy programw napisanych specjalnie z myl
o tym zadaniu, jak i przez uniwersalny system zarzdzania baz danych. W tej ksice bdziemy
si oczywicie skupiali wycznie na skomputeryzowanych bazach danych.
System zarzdzania baz danych (w skrcie SZBD, ang. Database Management System
DBMS) jest zbiorem programw, ktre umoliwiaj tworzenie i utrzymywanie bazy danych. SZBD jest
wic uniwersalnym systemem programowym, ktry uatwia definiowanie, konstruowanie, manipulowanie i udostpnianie baz danych rnym uytkownikom i aplikacjom. Definiowanie bazy danych
wie si z okrelaniem typw i struktur danych oraz ogranicze dla przechowywanych informacji. Konstruowanie bazy danych jest kontrolowanym przez SZBD procesem umieszczania w niej
waciwych informacji na jakim medium przechowywania. Manipulowanie baz danych obejmuje takie dziaania jak wykonywanie zapyta wycigajcych z bazy okrelone informacje, aktualizowanie bazy danych w taki sposb, aby zawarte w niej informacje odzwierciedlay rzeczywisty
stan reprezentowanego mini-wiata, oraz generowanie raportw na podstawie informacji zawartych
w bazie danych. Udostpnianie bazy danych umoliwia wielu uytkownikom i programom jednoczesne operowanie na zawartych w niej informacjach.
Do pozostaych funkcji oferowanych przez systemy zarzdzania bazami danych naley ochrona
bazy danych oraz konserwowanie jej przez dugi okres czasu. Proces ochrony bazy danych obejmuje zarwno ochron systemow przed niewaciwym dziaaniem (lub awariami) sprztu oraz
oprogramowania, jak i zabezpieczanie przed nieuprawnionym dostpem. Cykl ycia wielkich baz
danych moe trwa wiele lat, zatem systemy zarzdzania takimi bazami danych musz umoliwia
ich konserwowanie, tak aby moliwe byo dostosowywanie ich do ewoluujcych wymaga.
Implementowanie skomputeryzowanych baz danych wcale nie wymaga stosowania uniwersalnego oprogramowania typu SZBD. Moemy przecie napisa wasny zbir programw tworzcych
i utrzymujcych nasz baz danych, tworzc tym samym wasne, specyficzne oprogramowanie
typu SZBD. W obu przypadkach (a wic niezalenie od tego, czy zdecydowalimy si wykorzysta
uniwersalny SZBD) musimy zwykle wdroy w docelowym systemie komputerowym do skomplikowany pakiet oprogramowania. W rzeczywistoci wikszo systemw zarzdzania bazami
danych jest bardzo skomplikowanymi systemami oprogramowania.
Aby prezentowany w tym podrozdziale zbir definicji wprowadzajcych by kompletny, musimy
jeszcze okreli, czym jest system bazy danych ot jest to poczenie samej bazy danych z oprogramowaniem SZBD. Rysunek 1.1 ilustruje niektre spord omwionych do tej pory zagadnie.

1.2. Przykad
Przeanalizujmy teraz prosty przykad, ktry wikszoci czytelnikw tej ksiki moe wyda si
znajomy chodzi o baz danych   reprezentujc informacje dotyczce studentw,
przedmiotw i ocen w rodowisku wyszej uczelni. Na rysunku 1.2 przedstawiono struktur bazy

24

1. BAZY DANYCH I ICH UYTKOWNICY

RYSUNEK 1.1.
Uproszczone
rodowisko systemu
bazy danych

danych wraz z kilkoma przykadowymi informacjami wypeniajcymi poszczeglne tabele. Prezentowana baza danych skada si z piciu plikw, z ktrych kady zawiera rekordy danych tego
samego typu1. Plik  
 zawiera dane na temat poszczeglnych studentw, plik  

na temat poszczeglnych przedmiotw, plik  na temat poszczeglnych kursw z odpowiednich przedmiotw, plik    zawiera dane na temat ocen uzyskanych przez studentw
podczas zaliczania poszczeglnych kursw, natomiast plik     informacje o wymaganiach odnonie do zaliczonych zaj przed uzyskaniem moliwoci uczestnictwa w zajciach
z poszczeglnych przedmiotw.
Aby zdefiniowa tak baz danych, musimy okreli struktur rekordw przechowywanych
w kadym z plikw przez sprecyzowanie rnych typw elementw danych, ktre maj by przechowywane w kolejnych rekordach. Na rysunku 1.2 kady rekord pliku  
 zawiera dane reprezentujce nazwisko studenta (element danych Nazwisko), numer indeksu (element danych NumerIndeksu), rok studiw (element danych RokSt, ktry moe zawiera takie wartoci jak pierwszy lub 1,
Drugi lub 2, ) oraz kierunek (element danych Kierunek, ktry moe zawiera takie wartoci jak
MAT, Informatyka lub INF, ). Kady rekord pliku  
 zawiera dane reprezentujce nazw
przedmiotu (element danych NazwaPrzedmiotu), identyfikator przedmiotu (element danych NumerPrzedmiotu), liczb godzin tygodniowo (element danych Godziny) oraz wydzia, na ktrym dany
przedmiot jest wykadany (element danych Wydzia), itd. Dla kadego takiego elementu danych
wewntrz rekordu musimy take okreli typ danych. Przykadowo, moemy okreli, e element
danych Nazwisko w pliku  
 jest cigiem znakw alfabetu, element danych NumerIndeksu w tym
1
Wykorzystujemy w tym miejscu pojcie pliku w sposb nieformalny. Na poziomie koncepcyjnym plik
jest zbiorem rekordw, ktre mog (cho nie musz) by uporzdkowane.

25

1.2. PRZYKAD

RYSUNEK 1.2.
Baza danych
zawierajca
informacje
o studentach
i przedmiotach

samym pliku jest liczb cakowit, natomiast element danych Ocena w pliku    jest pojedyncz wartoci ze zbioru {5, 4, 3, 2}. Do reprezentowania wartoci poszczeglnych elementw
danych moemy take uy odpowiedniego schematu kodowania. Przykadowo, w widocznym na
rysunku 1.2 elemencie danych RokSt w pliku  
 warto 1 lub Pierwszy reprezentuje studenta
pierwszego roku, warto 2 lub Drugi studenta drugiego roku, warto 3 lub Trzeci studenta trzeciego
roku, warto 4 lub Czwarty studenta czwartego roku, a warto 5 lub Pity studenta pitego roku.
Aby skonstruowa baz danych   , zapisujemy dane, ktre maj reprezentowa poszczeglnych studentw, przedmioty, kursy, oceny i wymagania w postaci rekordu w odpowiednim
pliku. atwo zauway, e rekordy w rnych plikach mog by ze sob powizane. Przykadowo,
rekord Nowak w pliku  
 moe by powizany z dwoma rekordami w pliku   ,
ktry przechowuje oceny, jakie student o takim nazwisku uzyska z dwch zaliczanych przeze
kursw. Podobnie, kady rekord w pliku     jest zwizany z dwoma rekordami

26

1. BAZY DANYCH I ICH UYTKOWNICY

reprezentujcymi dwa rne przedmioty: przedmiot, dla ktrego zdefiniowano dane wymaganie,
oraz przedmiot, ktrego zaliczenie stanowi warunek uczestnictwa w zajciach z pierwszego przedmiotu. Wikszo rednich i wielkich baz danych skada si z wielu typw rekordw i zawiera wiele
zwizkw pomidzy tymi rekordami.
Manipulowanie baz danych wie si z wykonywaniem zapyta i aktualizacj zawartych w niej
informacji. Przykadowo, zapytania mog mie nastpujc posta: wygeneruj list wszystkich
przedmiotw, w ktrych uczestniczy student o nazwisku Nowak, wraz z uzyskanymi ocenami,
wygeneruj list nazwisk studentw, ktrzy brali udzia w zajciach z danego kursu w ramach
przedmiotu Bazy Danych w semestrze jesiennym 1999 roku wraz z uzyskanymi przez nich ocenami
z tego kursu oraz jakie wymagania naley speni przed przystpieniem do zaj z przedmiotu
Bazy danych?. Przykadowe instrukcje aktualizujce mog natomiast mie posta: zmie rok
studiw studenta Nowak na drugi (Drugi), stwrz nowy kurs dla przedmiotu Bazy danych prowadzonego w biecym semestrze oraz zapisz ocen 5 dla studenta Nowak za zaliczenie w ostatnim
semestrze wskazanego kursu z przedmiotu Bazy danych. Przetworzenie wymienionych przed chwil
nieformalnych zapyta i instrukcji aktualizujcych wymaga oczywicie nadania im postaci precyzyjnych polece zapisanych w jzyku zapyta, ktry jest obsugiwany w wykorzystywanym systemie zarzdzania baz danych.

1.3. Waciwoci rozwiza opartych na bazach danych


Wiele unikatowych waciwoci odrnia rozwizania oparte na bazach danych od tradycyjnych
metod programowania aplikacji wykorzystujcych pliki z danymi. W tradycyjnym przetwarzaniu
plikw kady uytkownik definiuje i implementuje pliki, ktre s mu potrzebne do konkretnego
zastosowania danego programu, i czynno ta stanowi jeden z elementw programowania tego zastosowania. Przykadowo, jeden uytkownik przyjmijmy, e jest to dziekanat moe utrzymywa plik z informacjami o studentach i uzyskanych przez nich ocenach. Programy drukujce listy
studentw i umoliwiajce wpisywanie do pliku nowych ocen s implementowane w postaci jednego z elementw tego zastosowania. Drugi uytkownik niech to bdzie tym razem dzia ksigowoci moe zarzdza przyznawaniem i wypacaniem stypendiw. Chocia oba podmioty s
zainteresowane danymi na temat studentw, kady utrzymuje wasne pliki (wraz z programami
operujcymi na tych plikach), poniewa kady z tych podmiotw wymaga pewnych danych, ktre
nie s dostpne w plikach utrzymywanych przez pozostae podmioty. Efektem tej nadmiarowoci
w definiowaniu i przechowywaniu danych jest niepotrzebna strata wykorzystywanej przestrzeni
oraz zwikszony koszt utrzymywania aktualnych informacji.
Typowe rozwizanie oparte na bazie danych przewiduje, e utrzymywane jest tylko jedno repozytorium danych, ktre, raz utworzone, jest udostpniane wielu rnym uytkownikom. Poniej
przedstawiono gwne cechy odrniajce rozwizania oparte na bazach danych od rozwiza
opartych na przetwarzaniu plikw:

samoopisujca natura systemw baz danych,


oddzielenie programw od danych oraz abstrakcja danych,
obsuga wielu perspektyw dla tych samych danych,
wspdzielenie danych oraz przetwarzanie transakcji.

W poniszych punktach opiszemy oddzielnie kad z tych waciwoci. Dodatkowe omwienie


wasnoci systemw baz danych mona znale w podrozdziaach 1.6 i 1.8.

1.3. WACIWOCI ROZWIZA OPARTYCH NA BAZACH DANYCH

27

1.3.1. Samoopisujca natura systemw baz danych


Podstawowa waciwo rozwiza opartych na stosowaniu baz danych okrela, e system bazy danych
zawiera nie tylko sam baz danych, ale take kompletn definicj lub opis jej struktury i ogranicze. Wspomniana definicja jest przechowywana w katalogu systemu zarzdzania baz danych
(SZBD), ktry zawiera informacje odnonie do struktury poszczeglnych plikw, typu i formatu przechowywania poszczeglnych elementw danych oraz rozmaitych ogranicze naoonych na te dane.
Informacje przechowywane w katalogu s czsto nazywane metadanymi. Metadane zawsze opisuj struktur gwnej bazy danych (patrz rysunek 1.1).
Katalog jest wykorzystywany nie tylko przez oprogramowanie systemu zarzdzania baz danych,
ale take przez jej uytkownikw, ktrzy potrzebuj informacji na temat struktury bazy danych.
Uniwersalne pakiety programowe SZBD nie s tworzone z myl o konkretnych zastosowaniach
baz danych, a wic musz si odwoywa do katalogw celem uzyskania informacji o strukturze
plikw w konkretnych bazach danych (np. aby dysponowa niezbdn wiedz na temat typu i formatu danych, ktre maj zosta odczytane lub zapisane). Oprogramowanie systemu zarzdzania baz
danych, ktre wykorzystuje katalog do przechowywania definicji baz danych, musi si sprawdza
tak samo dobrze we wszystkich moliwych zastosowaniach obsugiwanych baz danych niezalenie od tego, czy jest to baza danych uniwersytetu, banku, czy jakiegokolwiek innego podmiotu.
W tradycyjnym modelu przetwarzania plikw definicja danych jest zwykle czci samych
aplikacji wykorzystywanych do ich obsugi. Oznacza to, e moliwoci tych programw ograniczaj si do pracy tylko z jedn baz danych, ktrej struktura zostaa w nich z gry zadeklarowana.
Przykadowo, aplikacja napisana w jzyku programowania C++ moe zawiera deklaracje struktur
lub klas, natomiast program napisany w jzyku COBOL moe wykorzystywa do definiowania
swoich plikw instrukcji Data Division. O ile oprogramowanie przetwarzajce pliki moe uzyskiwa dostp wycznie do okrelonych baz danych, oprogramowanie systemw zarzdzania bazami
danych moe obsugiwa rozmaite bazy danych przez odczytywanie i odpowiednie wykorzystywanie ich definicji zawartych w katalogu.
W przykadzie zaprezentowanym na rysunku 1.2 katalog wykorzystywanego systemu SZBD
bdzie przechowywa definicje wszystkich przedstawionych plikw. Takie definicje s tworzone
i umieszczane w katalogu przez projektanta bazy danych, zanim jeszcze przystpi do jej tworzenia.
Za kadym razem, gdy do systemu zarzdzania baz danych dociera danie dostpu, np. wartoci
elementu danych Nazwisko rekordu w pliku  
 , oprogramowanie tego systemu odwouje si do
katalogu, aby okreli struktur pliku  
 oraz pozycj i rozmiar elementu danych Nazwisko
wewntrz danego rekordu. Zupenie inaczej byoby w przypadku typowej aplikacji przetwarzajcej
pliki, gdzie struktura pliku i w ekstremalnej sytuacji take dokadne pooenie elementu danych
Nazwisko wewntrz rekordu  
 s na stae zakodowane wewntrz kadego programu, ktry
moe uzyska dostp do skadowanych w ten sposb informacji.

1.3.2. Oddzielenie programw od danych oraz abstrakcja danych


W tradycyjnej metodzie przetwarzania plikw struktura plikw z danymi jest umieszczana w wykorzystywanych programach, zatem wszystkie ewentualne zmiany tej struktury mog wymaga odpowiedniego zmodyfikowania wszystkich programw, ktre uzyskuj dostp do danego pliku. Zupenie
inaczej jest w przypadku programw wykorzystujcych porednictwo systemw zarzdzania bazami
danymi, ktre w wikszoci podobnych sytuacji nie wymagaj tego typu dodatkowych zmian.
Struktura plikw z danymi jest przechowywana w specjalnym katalogu systemu SZBD, dziki czemu
jest oddzielona od programw dostpowych. Taki model nazywamy niezalenoci programu od
danych. Przykadowo, pewien program uzyskujcy dostp do pliku mgby zosta napisany w taki

28

1. BAZY DANYCH I ICH UYTKOWNICY

sposb, e bdzie mg pracowa wycznie z rekordami pliku  


 , ktrych struktura jest
identyczna jak ta przedstawiona na rysunku 1.3. Jeli uznamy za konieczne dodanie kolejnego
elementu danych do kadego rekordu w tym pliku, np. reprezentujcy dat urodzenia element
DataUrodzenia, tak skonstruowany program nie bdzie mg duej dziaa i najprawdopodobniej
konieczna bdzie ingerencja w jego kod rdowy. Gdybymy zamiast tego programu uyli rodowiska SZBD, musielibymy jedynie zmieni w katalogu opis rekordw pliku  
 w taki
sposb, aby uwzgldniay dodanie nowego elementu danych DataUrodzenia zmiana struktury
nie pocigaaby wic za sob koniecznoci dodatkowych modyfikacji adnego programu. Ju podczas nastpnego odwoania programu SZBD do zmienionego katalogu zostaaby odczytana i wykorzystana nowa struktura rekordw pliku  
 .

RYSUNEK 1.3. Wewntrzny format przechowywania dla rekordu z pliku STUDENT

W niektrych typach systemw baz danych, np. w systemach obiektowych i obiektowo-relacyjnych (patrz rozdziay 20. i 22.), to uytkownicy mog (w ramach definiowania baz danych) okrela moliwe operacje na danych. Taka operacja (nazywana take funkcj lub metod) skada si
z dwch elementw. Pierwszym z nich jest interfejs (nazywany czsto sygnatur), ktry zawiera
nazw operacji oraz typy danych jej argumentw (nazywanych take parametrami). Drugim jest
implementacja (metoda), ktra jest definiowana osobno i moe by zmieniana bez koniecznoci
modyfikowania odpowiadajcego jej interfejsu. Aplikacje uytkownika mog operowa na danych
przez wywoywanie tak zdefiniowanych operacji poprzez ich nazwy i argumenty, niezalenie od
tego, w jaki sposb te operacje zostay zaimplementowane. Mona taki model nazwa niezalenoci programu od operacji.
Waciwo, ktra umoliwia zapewnienie niezalenoci programu od danych oraz niezalenoci programu od operacji, jest nazywana abstrakcj danych. Systemy zarzdzania bazami danych udostpniaj uytkownikom koncepcyjn reprezentacj danych, ktra nie zawiera wielu
szczegw zwizanych z wykorzystywanymi technikami przechowywania danych oraz implementacji operacji. Nieformalnie mona przyj, e jednym z typw abstrakcji danych jest model danych,
stosowany do zapewniania wanie reprezentacji koncepcyjnej. Model danych wykorzystuje takie
logiczne pojcia jak obiekty, ich wasnoci oraz ich wewntrzne relacje, ktre dla wielu uytkownikw s bardziej zrozumiae od poj zwizanych z przechowywaniem danych na wspczesnych
komputerach. Oznacza to, e model danych ukrywa szczegy przechowywania i implementacji
danych, ktre nie s przedmiotem zainteresowania dla wikszoci uytkownikw baz danych.
Przykadowo, przeanalizujmy ponownie struktur bazy danych przedstawion na rysunku 1.2.
Wewntrzna implementacja pliku moe by zdefiniowana za pomoc dugoci jego rekordw
liczby znakw (bajtw) w kadym rekordzie natomiast kady z wykorzystywanych elementw
danych moe zosta okrelony za pomoc jego bajtu pocztkowego wewntrz odpowiedniego rekordu
oraz dugoci (take wyraonej w bajtach). Rekord z pliku  
 byby w takim przypadku reprezentowany w taki sam sposb, jak to przedstawiono na rysunku 1.3. Typowego uytkownika bazy
danych nie interesuj jednak ani dokadne miejsce przechowywania poszczeglnych elementw danych
wewntrz rekordu, ani jego rzeczywista dugo; zamiast tego, taki uytkownik oczekuje przede
wszystkim tego, aby po odwoaniu si do elementu Nazwisko wybranego rekordu w pliku  

zostaa zwrcona prawidowa warto. Koncepcyjn reprezentacj rekordw w pliku  
 przedstawiono na rysunku 1.2. Wiele innych szczegw organizacji plikw z danymi (w tym zdefiniowanych

1.3. WACIWOCI ROZWIZA OPARTYCH NA BAZACH DANYCH

29

dla niego cieek dostpu) mona ukry przed uytkownikami baz danych dziki odpowiednim mechanizmom systemu zarzdzania bazami danych (szczegy zwizane z przechowywaniem danych
omwimy w rozdziaach 13. i 14.).
W typowym rozwizaniu opartym na bazie danych szczegowa struktura i organizacja poszczeglnych plikw jest przechowywana w katalogu. Uytkownicy bazy danych i obsugujcych j
aplikacji odwouj si jedynie do koncepcyjnej reprezentacji tych plikw, a za wydobywanie z katalogu
szczegw zwizanych z przechowywaniem plikw odpowiadaj stosowne moduy dostpu uywanych systemw zarzdzania bazami danych. Do zapewniania abstrakcji danych uytkownikom
baz danych mona wykorzystywa rozmaite modele danych. Znaczna cz tej ksiki jest powicona prezentacji rnych modeli danych i stosowanym w nich mechanizmom abstrahowania reprezentacji danych.
W obiektowych i obiektowo-relacyjnych bazach danych proces abstrahowania obejmuje nie
tylko struktury danych, ale take zdefiniowane dla nich operacje. Takie operacje stanowi abstrakcj
dla czynnoci w reprezentowanym przez baz danych mini-wiecie, ktre zwykle s atwiejsze do
zrozumienia dla zwykych uytkownikw. Przykadowo, do obliczania redniej ocen wskazanego
obiektu z pliku  
 moe suy operacja  . Operacje takie jak ta mog by wywoywane przez uytkownika za pomoc odpowiednich zapyta (lub za porednictwem aplikacji obsugujcych baz danych) bez znajomoci szczegw dotyczcych sposobu zaimplementowania
wykonywanych dziaa. W tym sensie abstrakcja czynnoci z reprezentowanego mini-wiata jest
udostpniana uytkownikowi jako operacja abstrakcyjna.

1.3.3. Obsuga wielu perspektyw dla tych samych danych


Typowa baza danych ma wielu uytkownikw, z ktrych kady moe potrzebowa dostpu do innej
perspektywy (ang. view) dla tej bazy danych. Perspektywa moe by albo podzbiorem bazy danych,
albo moe zawiera dane wirtualne, ktre zostay wywiedzione z plikw bazy danych, gdzie s
przechowywane w nieco innej postaci (dane wirtualne same w sobie nie s wic trwale skadowane
w bazie danych). Niektrzy uytkownicy w ogle nie musz wiedzie, czy dane, do ktrych si
odwouj, faktycznie s przechowywane w takiej postaci w bazie danych, czy s z niej jedynie w odpowiedni sposb wywiedzione (w procesie tworzenia perspektywy). Wielodostpny system zarzdzania baz danych, ktry jest wykorzystywany przez uytkownikw do odmiennych celw, musi
zapewnia mechanizmy uatwiajce definiowanie wielu rnych perspektyw. Przykadowo, jeden
z uytkownikw bazy danych przedstawionej na rysunku 1.2 moe by zainteresowany wycznie
dostpem z moliwoci drukowania do listy studentw wraz z opisujcymi ich informacjami; perspektyw przygotowan dla takiego uytkownika przedstawiono na rysunku 1.4(a). Drugi uytkownik, ktrego interesuje wycznie sprawdzanie, czy poszczeglni studenci zaliczyli wszystkie
przedmioty wymagane do ich udziau w zajciach, na ktre si zapisali, moe potrzebowa perspektywy przedstawionej na rysunku 1.4(b).

1.3.4. Wspdzielenie danych oraz wielodostpne


przetwarzanie transakcji
Wielodostpny system zarzdzania baz danych, jak sama nazwa wskazuje, musi umoliwia
wielu uytkownikom jednoczesny dostp do bazy danych. Ta waciwo ma zasadnicze znaczenie,
jeli z pojedyncz baz danych chcemy zintegrowa wiele aplikacji. System zarzdzania baz danych

30

1. BAZY DANYCH I ICH UYTKOWNICY

RYSUNEK 1.4. Dwie perspektywy dla bazy danych z rysunku 1.2. (a) Perspektywa REJESTR_OCEN_STUDENT.
(b) Perspektywa PRZEDMIOT_WYMAGANIA_WSTPNE

musi wwczas zawiera oprogramowanie sterowania wspbienego (ang. concurrency control),


ktre zapewni w sposb kontrolowany wielu uytkownikom moliwo podejmowania prb
aktualizacji tych samych danych i zagwarantuje, e efekt tych dziaa bdzie spjny logicznie.
Przykadowo, kiedy wielu pracownikw linii lotniczych sprbuje jednoczenie zarezerwowa
miejsce w samolocie, system zarzdzania baz danych powinien zagwarantowa dostpno kadego
miejsca tylko dla jednego pasaera obsugiwanego przez jednego pracownika. Tego typu zastosowania s okrelane oglnym terminem rozwiza z przetwarzaniem transakcji na bieco (ang.
Online Transaction Processing OLTP). Zasadnicz rol oprogramowania wielodostpnego systemu zarzdzania baz danych jest wwczas zapewnienie waciwego przetwarzania wspbienych
transakcji.
Pojcie transakcji stao si centralnym elementem w wielu wspczesnych zastosowaniach baz
danych. Transakcja jest wykonywanym programem lub procesem, na ktry skada si jeden lub wicej
operacji dostpu do bazy danych, takich jak odczytywanie czy aktualizacja jej rekordw. Kada
transakcja, ktra zostanie zrealizowana w caoci, ma w zaoeniu wykonywa logicznie poprawne
operacje dostpu do bazy danych i nie moe wpywa na przebieg pozostaych transakcji. System
zarzdzania baz danych musi wymusza wiele waciwoci transakcji. Wasno izolacji daje nam
gwarancj, e kada transakcja bdzie wykonywana w warunkach separacji od pozostaych transakcji, nawet jeli jednoczenie bd wykonywane setki transakcji. Wasno niepodzielnoci gwarantuje, e albo zostan wykonane wszystkie operacje na bazie danych skadajce si na dan
transakcj, albo nie zostanie wykonana adna z tych operacji. Szczegowe omwienie transakcji
mona znale w czci 5. tej ksiki.
Wymienione w tym podrozdziale waciwoci s gwnymi elementami odrniajcymi systemy zarzdzania bazami danych od tradycyjnego oprogramowania przetwarzajcego pliki. W podrozdziale 1.6 omwimy dodatkowe cechy charakterystyczne dla systemw zarzdzania bazami danych;
najpierw jednak sprbujemy skategoryzowa rne typy osb pracujcych w rodowisku systemw
baz danych.

1.4. AKTORZY NA SCENIE

31

1.4. Aktorzy na scenie


W przypadku nieduej, osobistej bazy danych (np. wspominanej w podrozdziale 1.1 listy adresw)
zwykle jedna osoba definiuje, konstruuje i operuje na bazie danych, zatem nie ma potrzeby zapewniania mechanizmw jej wspdzielenia pomidzy wielu uytkownikw. Wiele osb jest jednak
zaangaowanych w przedsiwzicia zupenie innego typu i innej skali w projektowanie, wykorzystywanie i konserwacj ogromnych baz danych wykorzystywanych przez setki uytkownikw.
W tym podrozdziale sprbujemy zidentyfikowa osoby, ktrych praca wie si z codziennym wykorzystywaniem ogromnych baz danych nazwiemy ich aktorami na scenie. W podrozdziale 1.5
przeanalizujemy role osb, ktre mona nazwa pracownikami poza scen czyli osb, ktre co
prawda pracuj nad utrzymaniem rodowiska systemu bazy danych, ale nie s aktywnie zainteresowane sam zawartoci tej bazy danych.

1.4.1. Administratorzy bazy danych


W kadej organizacji, gdzie wiele osb wykorzystuje te same zasoby, istnieje konieczno zatrudnienia gwnego administratora, ktry bdzie te zasoby nadzorowa i nimi zarzdza. W rodowisku
bazy danych gwnym zasobem jest oczywicie sama baza danych, drugim zasobem jest natomiast
system zarzdzania baz danych lub oprogramowanie pokrewne. Obowizki zwizane z administrowaniem tymi zasobami spadaj na administratora bazy danych (ang. database administrator
DBA). Osoba na tym stanowisku odpowiada za uwierzytelnianie dostpu do bazy danych, koordynowanie i monitorowanie jej wykorzystania oraz za pozyskiwanie niezbdnych zasobw programowych i sprztowych. Administrator bazy danych jest take odpowiedzialny za wszystkie problemy zwizane z administrowanym rodowiskiem, w tym ewentualne naruszenia bezpieczestwa
lub zbyt dugi czas odpowiedzi. W wielkich organizacjach administratorzy baz danych dysponuj
zwykle caym sztabem ludzi, ktrzy pomagaj im w realizacji wymienionych zada.

1.4.2. Projektanci bazy danych


Projektanci bazy danych odpowiadaj za identyfikacj danych, ktre docelowo maj by przechowywane w bazie danych, oraz za wybr waciwych struktur, ktre bd te dane reprezentoway
i przechowyway. Wikszo tych zada musi by wykonana zanim jeszcze baza danych zostanie
faktycznie zaimplementowana i wypeniona danymi. Projektanci baz danych odpowiadaj za zapewnienie odpowiedniej komunikacji ze wszystkimi potencjalnymi uytkownikami projektowanych
rozwiza, aby dobrze zrozumie definiowane przez nich wymagania tylko w ten sposb mog
zapewni zgodno efektw swojej pracy z tymi wymaganiami. W wielu przypadkach projektanci
nale do zespou kierowanego przez administratora bazy danych i mog mie przydzielane zupenie
inne obszary odpowiedzialnoci ju po zakoczeniu procesu projektowania bazy danych. Projektanci bazy danych zazwyczaj uzgadniaj oczekiwany ksztat opracowywanego rozwizania z kad
grup potencjalnych uytkownikw i tworz takie perspektywy bazy danych, ktre w jak najwikszym stopniu odpowiadaj zdefiniowanym przez te grupy wymaganiom dotyczcym dostpnych
danych i funkcji przetwarzajcych. Kada perspektywa jest nastpnie analizowana i integrowana
z perspektywami opracowanymi dla pozostaych grup przyszych uytkownikw. Ostateczna wersja
projektu bazy danych musi by zgodna z wymaganiami zgoszonymi przez wszystkie takie grupy.

32

1. BAZY DANYCH I ICH UYTKOWNICY

1.4.3. Uytkownicy kocowi


Uytkownicy kocowi to ci pracownicy organizacji, ktrych codzienna praca wymaga dostpu do
takich operacji na bazie danych jak przetwarzanie zapyta, aktualizowanie informacji oraz generowanie raportw baza danych jest wic tworzona przede wszystkim dla nich. Istnieje kilka
kategorii, do ktrych mona przypisa uytkownikw kocowych:
Uytkownicy dorywczy korzystaj z bazy danych tylko od czasu do czasu, ale mog za kadym razem potrzebowa innych informacji. Tacy uytkownicy kocowi czsto uywaj do
definiowania swoich da wyszukanych jzykw zapyta do bazy danych i zwykle peni
stanowiska menaderw redniego lub wysokiego szczebla.
Naiwni lub parametryczni uytkownicy kocowi stanowi znaczc cz wszystkich uytkownikw bazy danych. Ich praca polega przewanie na wielokrotnym wykonywaniu zapyta
i aktualizowaniu informacji zawartych w bazie danych. Uytkownicy nalecy do tej grupy
wykorzystuj zwykle standardowe typy zapyta i operacji aktualizacji, ktre zostay bardzo
uwanie zaprogramowane i przetestowane (s to tzw. transakcje zapuszkowane ang.
canned transactions). Zadania realizowane przez tego typu uytkownikw mog si od siebie
bardzo rni:
Kasjerzy bankowi mog sprawdza salda kont i wykonywa operacje wpat oraz wypat.
Pracownicy biur rezerwacji linii lotniczych, hoteli oraz firm wynajmujcych samochody sprawdzaj dostpno danego zasobu i dokonuj rezerwacji.
Pracownicy magazynu firmy kurierskiej rejestruj identyfikatory i opisy przyjtych paczek za
pomoc kodw kreskowych, aktualizujc tym samym centraln baz danych otrzymanych i transportowanych przesyek.
Do grupy dowiadczonych uytkownikw kocowych nale najczciej inynierowie, naukowcy, analitycy biznesowi i wszyscy inni pracownicy organizacji, ktrzy mieli ju do czynienia z mechanizmami systemw zarzdzania bazami danych oraz stosowali ju rozmaite rozwizania odpowiadajce ich skomplikowanym wymaganiom.
Samodzielni uytkownicy utrzymuj zwykle osobiste bazy danych w oparciu o gotowe pakiety oprogramowania, ktre oferuj atwe w uyciu interfejsy, czsto oparte na wygodnych
menu lub na komponentach graficznych. Przykadem moe by uytkownik pakietu uatwiajcego zarzdzanie podatkami, ktry przechowuje w swoim oprogramowaniu osobiste dane
finansowe.
Typowe systemy zarzdzania bazami danych oferuj wiele mechanizmw uatwiajcych dostp
do obsugiwanych baz danych. Niedowiadczeni uytkownicy kocowi nie musz wwczas powica zbyt duo czasu na nauk obsugi udostpnianej w ten sposb funkcjonalnoci musz
jedynie zrozumie, jak naley korzysta z interfejsu uytkownika dla standardowych transakcji,
ktre zostay zaprojektowane i zaimplementowane specjalnie z myl o nich. Uytkownicy korzystajcy z bazy danych dorywczo musz si nauczy tylko kilku funkcji, ktre bd by moe wielokrotnie stosowali w swojej pracy. Dowiadczeni uytkownicy zapewne sprbuj pozna wikszo
mechanizmw wykorzystywanego systemu zarzdzania baz danych, aby mc w przyszoci realizowa funkcje zdefiniowane w ich zawiych wymaganiach. Samodzielni uytkownicy zwykle nabieraj
ogromnej wprawy w wykorzystywaniu konkretnych pakietw oprogramowania.

1.5. PRACOWNICY POZA SCEN

33

1.4.4. Analitycy systemowi i programici aplikacji


(inynierowie oprogramowania)
Analitycy systemowi okrelaj wymagania uytkownikw kocowych, szczeglnie tych nalecych
do grupy naiwnych lub parametrycznych, i opracowuj specyfikacje wielokrotnie wykonywanych
transakcji, ktre powinny w jak najwikszym stopniu odpowiada tym wymaganiom. Programici
aplikacji w pierwszej kolejnoci implementuj w postaci programw specyfikacje otrzymane od
analitykw systemowych, po czym poddaj gotowe rozwizania testom, przygotowuj niezbdn
dokumentacj i konserwuj przygotowane w ten sposb transakcje. Analitycy systemowi i programici
aplikacji (nazywani czsto inynierami oprogramowania) powinni mie odpowiedni wiedz na
temat wszystkich tych moliwoci oferowanych przez wykorzystywany system zarzdzania baz
danych, ktre mog si przyda podczas realizacji tego zadania.

1.5. Pracownicy poza scen


Poza osobami, ktre projektuj, wykorzystuj i administruj baz danych, dziaania zwizane z projektowaniem, tworzeniem i operowaniem na oprogramowaniu i rodowisku systemowym SZBD wymagaj udziau take innych osb. Pracownicy nalecy do tej grupy zwykle nie s zainteresowani
sam baz danych ani zawartymi w niej informacjami nazywamy ich pracownikami poza scen.
Takie osoby mona podzieli na trzy gwne grupy:
Projektanci i programici systemu zarzdzania baz danych s autorami projektw i (majcych posta pakietw oprogramowania) implementacji moduw i interfejsw systemu zarzdzania baz danych. Systemy zarzdzania bazami danych s bardzo skomplikowanymi pakietami oprogramowania, ktre skadaj si z wielu moduw (komponentw), wcznie z moduami
implementujcymi katalog, jzyk przetwarzania zapyta, interfejs przetwarzania, mechanizmy
dostpu i buforowania, sterowanie wspbiene oraz obsug odzyskiwania danych i bezpieczestwa. Kady system zarzdzania baz danych musi oferowa interfejsy dla innych systemw oprogramowania, takich jak systemy operacyjne czy kompilatory rnych jzykw programowania.
Do grupy programistw narzdzi nale wszystkie osoby projektujce i implementujce
narzdzia, czyli pakiety oprogramowania, ktre nie tylko uatwiaj projektowanie i wykorzystywanie systemu bazy danych, ale take pomagaj poprawi jego wydajno. Narzdzia
s opcjonalnymi pakietami, ktre w wielu przypadkach mona dokupi osobno do ju posiadanego systemu zarzdzania baz danych. Takie pakiety mog suy atwiejszemu projektowaniu baz danych, monitorowaniu wydajnoci, obsudze interfejsw jzyka naturalnego lub
interfejsw graficznych, modelowaniu, przeprowadzaniu symulacji oraz testowemu generowaniu danych. W wielu przypadkach narzdzia tego typu s opracowywane i wprowadzane
na rynek przez niezalenych producentw.
Kategoria operatorw i personelu pomocniczego obejmuje administratorw systemw, ktrzy
odpowiadaj za biece funkcjonowanie i konserwacj rodowiska sprztowego i programowego dla wykorzystywanego systemu bazy danych.
Wymienione powyej kategorie pracownikw poza scen s co prawda bardzo pomocne podczas udostpniania systemw baz danych uytkownikom kocowym, jednak pracownicy zaliczani
do tej grupy raczej nie wykorzystuj tych samych baz danych do wasnych celw.

34

1. BAZY DANYCH I ICH UYTKOWNICY

1.6. Zalety stosowania rozwiza


opartych na systemach zarzdzania bazami danych
W tym podrozdziale omwimy niektre z zalet stosowania systemw zarzdzania bazami danych
oraz cechy, ktre powinien posiada dobry system tego typu. Prezentowane tutaj moliwoci systemw zarzdzania bazami danych naley traktowa jako elementy uzupeniajce cztery podstawowe waciwoci omwione w podrozdziale 1.3, zwikszajce atrakcyjno tego typu rozwiza.
Administratorzy baz danych wykorzystuj tak dodatkow funkcjonalno do osigania rozmaitych celw zwizanych z projektowaniem, administrowaniem i wykorzystywaniem ogromnych,
wielodostpnych baz danych.

1.6.1. Kontrola nadmiarowoci


W tradycyjnych pakietach oprogramowania tworzonych z myl o przetwarzaniu plikw z danymi,
kada grupa uytkownikw utrzymuje wasne pliki obsugiwane przez aplikacje operujce na zawartych w nich danych. Przykadowo, przeanalizujmy raz jeszcze przykad bazy danych  
z rysunku 1.2; przyjmijmy, e dwie grupy uytkownikw mog stanowi personel dziekanatu oraz
dziau ksigowoci. W podejciu tradycyjnym kada z tych grup niezalenie od siebie utrzymywaaby pliki reprezentujce informacje o studentach. Dzia ksigowoci obsugiwaby zarwno
oglne dane o przebiegu studiw, jak i charakterystyczne dla zada tego dziau informacje o przyznanych stypendiach; natomiast dziekanat ledziby przedmioty, w ktrych poszczeglni studenci
uczestnicz, oraz dane o uzyskanych ocenach. Dua cz wykorzystywanych przez obie grupy danych
byaby wic przechowywana dwukrotnie w osobnych plikach, z ktrych kady zawieraby
wszystkie informacje przetwarzane przez odpowiedni jednostk uczelni. Kolejne grupy uytkownikw mogyby dodatkowo powiela niektre lub wszystkie te dane we wasnych plikach.
Taka nadmiarowo (redundancja), polegajca na wielokrotnym przechowywaniu tych samych
danych, prowadzi do wielu niepotrzebnych problemw. Po pierwsze, kada logiczna aktualizacja
reprezentowanych w ten sposb informacji (jak choby wpisanie danych nowego studenta) musi
by przeprowadzana wielokrotnie przynajmniej raz w kadym pliku, w ktrym rejestrowane s
dane studentw. To za prowadzi do zwielokrotnienia wysiku. Po drugie, w sytuacji, gdy te same
dane s przechowywane w wielu miejscach, mamy do czynienia z marnotrawstwem przestrzeni przechowywania. Po trzecie, pliki reprezentujce te same dane mog si sta niespjne. Moe to by
efekt np. zastosowania operacji aktualizacji tylko dla niektrych danych, z pominiciem pozostaych. Okazuje si, e nawet jeli aktualizacja (np. wspomniana operacja dodania nowego studenta)
zostanie zastosowana dla wszystkich wymagajcych tego plikw, dane dotyczce danego studenta
nadal mog by naraone na niespjno spowodowan niezalenymi aktualizacjami przeprowadzanymi przez poszczeglne grupy uytkownikw. Przykadowo, jedna z grup uytkownikw moe
bdnie poda dat urodzenia studenta, natomiast pozostae grupy mog wpisa poprawn dat
wartoci reprezentujce t sam informacj bd wwczas rne.
Podobne niekorzystne zjawiska nie byyby moliwe w przypadku zastosowania techniki opartej
na bazie danych, ktra przewiduje tworzenie i integracj perspektyw dla rnych grup uytkownikw bazy danych ju w fazie jej projektowania. Idealnym rozwizaniem jest oczywicie posiadanie
jednego projektu bazy danych, ktry uwzgldnia wszystkie logiczne elementy danych (np. nazwisko i dat urodzenia studenta) umieszczone w jednym miejscu. W ten sposb mona jednoczenie
zapewni spjno danych oraz oszczdzi przestrze przechowywania. W praktyce jednak czsto
konieczne jest zastosowanie techniki kontrolowanej nadmiarowoci, ktra poprawi wydajno
przetwarzania zapyta. Przykadowo, moemy nadmiarowo przechowywa elementy danych

1.6. ZALETY STOSOWANIA ROZWIZA OPARTYCH NA SYSTEMACH ZARZDZANIA BAZAMI DANYCH

35

NazwiskoStudenta i NumerPrzedmiotu w pliku    (patrz rysunek 1.5(a)), poniewa za


kadym razem, gdy wskutek wykonania zapytania uzyskamy rekord z tego pliku, bdziemy chcieli
otrzyma jednoczenie nazwisko studenta i numer (identyfikator) przedmiotu wraz z wystawion
ocen, numerem studenta oraz identyfikatorem kursu. Jeli umiecimy wszystkie te dane w jednym miejscu, skompletowanie potrzebnych informacji nie bdzie wymagao przeszukiwania wielu
plikw. W takich przypadkach system zarzdzania baz danych powinien jednak zapewnia moliwo kontrolowania nadmiarowoci, aby zapobiec ewentualnym niespjnociom pomidzy rnymi plikami. Taki mechanizm moe to robi automatycznie przez sprawdzanie, czy pary wartoci
NazwiskoStudenta-NumerIndeksu we wszystkich rekordach pliku    (patrz rysunek 1.5(a))
odpowiadaj parom wartoci Nazwisko-NumerIndeksu w odpowiednich rekordach pliku  

(patrz rysunek 1.2). Podobnie, pary wartoci IdentyfikatorKursu-NumerPrzedmiotu w poszczeglnych rekordach pliku    musz odpowiada odpowiednim parom wartoci w rekordach
pliku . Takie testy mona zdefiniowa w systemie zarzdzania baz danych ju podczas projektowania bazy danych SZBD bdzie wwczas wymusza odpowiednie dziaania kontrolne za
kadym razem, gdy zostanie podjta prba zaktualizowania pliku   . Na rysunku 1.5(b)
przedstawiono rekord pliku   , ktry jest niespjny z przedstawion na rysunku 1.2 zawartoci pliku  
 jest to wic przykad sytuacji, w ktrej nie zastosowano kontroli nadmiarowoci i zapisano w pliku    bdne dane.

RYSUNEK 1.5. Nadmiarowe przechowywanie elementw danych NazwiskoStudenta i NumerPrzedmiotu


w pliku RAPORT_OCEN. (a) Spjne dane. (b) Niespjny rekord

1.6.2. Ograniczanie moliwoci uzyskania


nieautoryzowanego dostpu
Kiedy jedn wielk baz danych wspdzieli wielu uytkownikw, jest mao prawdopodobne, by
wikszo uytkownikw moga uzyska autoryzowany dostp do wszystkich informacji przechowywanych w tej bazie danych. Przykadowo, dane finansowe s czsto uznawane za poufne i powinny w zwizku z tym by dostpne tylko dla niektrych uytkownikw. Niektrzy uytkownicy
mog dodatkowo uzyska prawo wycznie do odczytywania pewnych danych, inni natomiast mog
dysponowa zarwno uprawnieniami odczytu, jak i moliwoci aktualizacji. Oznacza to, e typ
operacji dostpu (odczytu lub aktualizacji) take musi by odpowiednio kontrolowany. Uytkownicy
lub grupy uytkownikw maj zwykle przydzielane numery (identyfikatory) kont zabezpieczonych
hasem dostp do bazy danych jest wwczas moliwy wycznie po podaniu tych informacji

36

1. BAZY DANYCH I ICH UYTKOWNICY

uwierzytelniajcych. System zarzdzania baz danych powinien oferowa podsystem bezpieczestwa i autoryzacji, za pomoc ktrego administrator bazy danych bdzie mg tworzy konta
uytkownikw (lub grup uytkownikw) i nakada na nie odpowiednie ograniczenia. System zarzdzania baz danych powinien nastpnie automatycznie wymusza przestrzeganie tych ogranicze.
Warto pamita, e podobne elementy zabezpieczajce mona spotka w samym oprogramowaniu
systemu zarzdzania baz danych. Przykadowo, tylko osoby z uprawnieniami administratora bazy
danych mog uruchamia pewne uprzywilejowane elementy tego oprogramowania, np. moduy
przeznaczone do tworzenia nowych kont uytkownikw. Podobnie, uytkownicy parametryczni
mog mie moliwo uzyskiwania dostpu do bazy danych wycznie za porednictwem transakcji
zaprojektowanych specjalnie z myl o realizowanych przez nich zadaniach.

1.6.3. Zapewnianie miejsca trwaego przechowywania


dla obiektw stosowanych w programach
Bazy danych mog by wykorzystywane do zapewniania miejsca trwaego przechowywania dla
obiektw i struktur danych stosowanych w programach. Jest to jedna z przyczyn tworzenia obiektowych systemw baz danych. Jzyki programowania wykorzystuj zwykle skomplikowane
struktury danych, jak typy rekordw w jzyku Pascal czy definicje klas w jzykach C++ i Java.
Wartoci reprezentowane przez zmienne wykorzystywane w tak napisanych programach s porzucane z chwil zakoczenia ich pracy, chyba e programista napisze kod, ktry wprost bdzie je
umieszcza w trwaych plikach dyskowych (co zwykle wie si z koniecznoci konwertowania
tych skomplikowanych struktur do odpowiedniego formatu). Kiedy zaistnieje potrzeba ponownego
odczytania tak utrwalonych danych, programista musi je przekonwertowa z formatu pliku do
struktury danych, ktra moe by przetwarzana w jego programie. Obiektowe systemy baz danych
s zgodne z takimi jzykami programowania jak C++ czy Java, a oprogramowanie systemw zarzdzania bazami danych moe automatycznie wykonywa niezbdne konwersje. Oznacza to, e
skomplikowany obiekt w C++ moe by trwale przechowywany w obiektowym systemie zarzdzania baz danych. O takiej strukturze mwimy, e jest obiektem trwaym, poniewa zakoczenie
pracy jego programu nie powoduje jego usunicia przeciwnie, taka utrwalona struktura moe
zosta ponownie odczytana nawet przez inny program napisany w jzyku C++.
Trwae przechowywanie obiektw i struktur danych stosowanych w programach jest wanym
elementem funkcjonalnoci systemw baz danych. Tradycyjne systemy tego typu czsto byy naraone
na problem niezgodnoci impedancji, poniewa struktury danych oferowane przez systemy zarzdzania bazami danych byy niezgodne ze strukturami danych wykorzystywanymi w jzykach programowania. Obiektowe systemy baz danych oferuj zwykle zgodno obsugiwanych struktur danych
ze strukturami stosowanymi w jednym lub wikszej iloci obiektowych jzykw programowania.

1.6.4. Zapewnianie struktur przechowywania


dla efektywnego przetwarzania zapyta
Systemy baz danych musz zapewnia moliwo efektywnego wykonywania zapyta i operacji
aktualizacji danych. Poniewa baza danych jest zwykle przechowywana na dysku, system zarzdzania baz danych musi udostpnia wyspecjalizowane struktury danych, ktre przyspiesz proces
przegldania dysku w poszukiwaniu danych rekordw. Do tego celu wykorzystywane s pliki

1.6. ZALETY STOSOWANIA ROZWIZA OPARTYCH NA SYSTEMACH ZARZDZANIA BAZAMI DANYCH

37

zewntrzne nazywane indeksami. Indeksy opieraj si zwykle na drzewiastych strukturach danych


lub strukturach mieszajcych niezalenie od wybranej metody reprezentowania indeksw, kada
z tych struktur jest odpowiednio przystosowana do zadania przeszukiwania danych dyskowych. Aby
przetworzy rekordy bazy danych dane przez konkretne zapytanie, naley je najpierw skopiowa
z dysku do pamici operacyjnej. Oznacza to, e systemy zarzdzania bazami danych czsto zawieraj specjalne moduy buforujce, ktre utrzymuj fragmenty baz danych w wyasygnowanych do
tego celu buforach w pamici operacyjnej. Istniej take przypadki, w ktrych systemy zarzdzania bazami danych wykorzystuj do buforowania danych dyskowych odpowiednie mechanizmy
systemw operacyjnych.
Nalecy do systemu zarzdzania baz danych modu przetwarzania zapyta i optymalizacji odpowiada za wybr (w oparciu o istniejce struktury przechowywania danych) efektywnego
planu wykonania dla kadego zapytania. Wybr rodzaju tworzonych i utrzymywanych indeksw
jest czci procesw fizycznego projektowania i strojenia bazy danych, za ktre zawsze odpowiedzialny jest zesp administratorw bazy danych.

1.6.5. Zapewnianie moliwoci tworzenia kopii bezpieczestwa


i odzyskiwania danych
System zarzdzania baz danych musi take zapewnia mechanizmy uatwiajce przywracanie
pierwotnego stanu w przypadku ewentualnych awarii sprztowych lub programowych. Za przywracanie tego stanu odpowiada nalecy do systemu zarzdzania baz danych specjalny podsystem tworzenia kopii bezpieczestwa i odzyskiwania danych. Przykadowo, jeli wykorzystywany
system komputerowy ulegnie awarii w czasie wykonywania skomplikowanej transakcji aktualizujcej dane, podsystem odzyskiwania musi si upewni, e baza danych zostanie przywrcona do
stanu sprzed momentu, w ktrym rozpoczo si wykonywanie przerwanej transakcji. Istnieje take
rozwizanie alternatywne podsystem odzyskiwania moe w takim przypadku zapewni, e wykonywanie przerwanej transakcji zostanie wznowione od punktu, w ktrym nastpia awaria, co
zagwarantuje zarejestrowanie w bazie danych penego (a wic spjnego) efektu przetwarzania.

1.6.6. Zapewnianie interfejsw dla wielu uytkownikw


Poniewa bazy danych mog by wykorzystywane przez wiele typw uytkownikw, ktrzy dysponuj wiedz techniczn na bardzo zrnicowanych poziomach, systemy zarzdzania bazami danych powinny udostpnia rne interfejsy uytkownika. Takim interfejsem jest jzyk zapyta
wykorzystywany przez uytkownikw doranych, interfejs jzyka programowania dla programistw
aplikacji, formularze i kody polece dla uytkownikw parametrycznych oraz interfejsy oparte na
menu i jzyku naturalnym dla samodzielnych uytkownikw. Zarwno interfejsy oparte na formularzach, jak i te oparte na menu s czsto nazywane graficznymi interfejsami uytkownika
(ang. Graphical User Interface GUI). Istnieje wiele wyspecjalizowanych jzykw i rodowisk
do definiowania takich graficznych interfejsw uytkownika. Dosy popularne s take narzdzia
tworzce interfejsy GUI dla baz danych oparte na stronach WWW.

38

1. BAZY DANYCH I ICH UYTKOWNICY

1.6.7. Reprezentowanie skomplikowanych relacji


pomidzy danymi
Baza danych moe zawiera wiele zrnicowanych danych, ktre s wzajemnie powizane na rne
sposoby. Przykadowo, przeanalizujmy raz jeszcze baz danych przedstawion na rysunku 1.2. Rekord
dla studenta o nazwisku Kowalski w pliku  
 jest zwizany z czterema rekordami w pliku
  . Podobnie, kady rekord reprezentujcy pojedynczy kurs jest zwizany nie tylko z pojedynczym rekordem reprezentujcym przedmiot, ale take z kilkoma rekordami z pliku   
po jednym dla kadego studenta, ktry zaliczy dany kurs. System zarzdzania baz danych musi
oferowa moliwo nie tylko samego reprezentowania wraz z danymi rozmaitych skomplikowanych zwizkw, ale take atwego i efektywnego generowania i aktualizowania powizanych ze
sob informacji.

1.6.8. Wymuszanie ogranicze integralnociowych


Wikszo baz danych ma zdefiniowane pewne ograniczenia integralnociowe, ktre musz by
spenione przez przechowywane dane. System zarzdzania baz danych powinien oferowa moliwo zarwno definiowania takich ogranicze, jak i wymuszania ich przestrzegania. Najprostszym
typem ograniczenia integralnociowego jest wymuszenie okrelonego typu danych dla poszczeglnych elementw danych. Przykadowo, w zaprezentowanej na rysunku 1.2 bazie danych moemy
okreli, e element danych RokSt w kadym z rekordw pliku  
 musi by liczb cakowit
z przedziau od 1 do 5, natomiast wartoci elementu danych Nazwisko w rekordach tego samego
pliku musz by maksymalnie 30-znakowymi cigami liter alfabetu. Bardziej skomplikowane, popularne typy ogranicze integralnociowych polegaj na okrelaniu wymaganych zwizkw pomidzy
rekordami w jednym pliku a rekordami w innych plikach. Przykadowo, w bazie danych przedstawionej na rysunku 1.2 moemy okreli, e kady rekord kursu musi by powizany z odpowiednim rekordem przedmiotu. Jeszcze inny rodzaj ogranicze integralnociowych okrela wyjtkowo wartoci we wskazanym elemencie danych takie ograniczenie moe mie posta: kady
rekord przedmiotu musi mie unikatow warto elementu danych NumerPrzedmiotu. Zaprezentowane przed chwil przykadowe ograniczenia wynikaj z semantyki (znaczenia) danych oraz reprezentowanego za ich pomoc mini-wiata. Za identyfikacj ogranicze integralnociowych w fazie
projektowania bazy danych zawsze odpowiada jej projektant. Niektre ograniczenia mog by definiowane w systemie zarzdzania baz danych i automatycznie przez ten system wymuszane; inne
mog wymaga przeprowadzania odpowiednich testw na poziomie programw aktualizujcych
dane lub ju w momencie wpisywania informacji.
Element danych moe by bdnie wpisany i nadal spenia warunki wynikajce z okrelonych
ogranicze integralnociowych. Przykadowo, jeli na skutek bdu osoby wpisujcej dane, dla studenta, ktry uzyska w rzeczywistoci ocen 5, zostanie zarejestrowana w bazie danych ocena 3, system zarzdzania baz danych nie bdzie mg automatycznie wykry tego bdu, poniewa ocena 3
jest poprawn wartoci dla elementu danych Ocena. Podobne bdy wynikajce z nieuwanego
wpisywania danych do systemu mona wykrywa wycznie rcznie (np. kiedy student poskary
si, e zarejestrowana ocena jest niezgodna z rzeczywistoci) i poprawia przez odpowiedni aktualizacj bazy danych. Okazuje si jednak, e prba wpisania oceny 7 moe by automatycznie
odrzucana przez system zarzdzania baz danych, poniewa 7 nie jest poprawn wartoci dla
elementu danych Ocena.

1.6. ZALETY STOSOWANIA ROZWIZA OPARTYCH NA SYSTEMACH ZARZDZANIA BAZAMI DANYCH

39

1.6.9. Zezwalanie na wnioskowanie i podejmowanie dziaa


w oparciu o zdefiniowane reguy
Niektre systemy baz danych oferuj moliwo definiowania regu wnioskowania (regu dedukcyjnych), w oparciu o ktre mona wywodzi nowe informacje na podstawie faktw reprezentowanych w bazie danych. Takie systemy s nazywane dedukcyjnymi systemami baz danych.
Przykadowo, w wiecie rzeczywistym (mini-wiecie reprezentowanym przez baz danych) mog
istnie skomplikowane zasady okrelajce, czy dany student odbywa sta. Mona te zasady zdefiniowa deklaratywnie w postaci regu, ktre bd kompilowane i utrzymywane przez system zarzdzania baz danych, i ktre bd umoliwiay wyszukiwanie wszystkich studentw odbywajcych
sta. W tradycyjnych systemach zarzdzania bazami danych do obsugi tego typu zastosowa konieczny byby odpowiedni kod programu proceduralnego. Jeli jednak reguy obowizujce w reprezentowanym mini-wiecie ulegn zmianie, generalnie znacznie atwiejszym zadaniem (od ponownego
kodowania programw proceduralnych) jest zmiana zadeklarowanych wczeniej regu wnioskowania. Mechanizmy zapewniajce jeszcze wiksze moliwoci s oferowane przez aktywne systemy baz danych, gdzie w przypadku wystpienia okrelonych zdarze lub spenienia okrelonych
warunkw aktywne reguy mog automatycznie inicjowa zdefiniowane wczeniej dziaania.

1.6.10. Dodatkowe wasnoci wynikajce ze stosowania


rozwiza opartych na bazach danych
W tym podrozdziale omwimy niektre dodatkowe korzyci wynikajce ze stosowania rozwiza
opartych na bazach danych i dotyczce wikszoci organizacji.
Moliwo wymuszania stosowania standardw. Rozwizania oparte na bazach danych umoliwiaj administratorom baz danych wymuszanie na uytkownikach stosowania standardw przyjtych w danej organizacji. Standardy uatwiaj wzajemn komunikacj i wspprac pomidzy
rnymi dziaami organizacji oraz pomidzy uytkownikami przydzielonymi do rnych projektw.
Standardy mona definiowa zarwno dla nazw i formatw elementw danych, jak i dla formatw
wywietlania, struktury raportw, terminologii itp. Administrator bazy danych moe atwiej wymusza
stosowanie standardw w rodowisku scentralizowanej bazy danych ni w rodowisku, w ktrym
kada grupa uytkownikw sama kontroluje swoje oprogramowanie i przetwarzane pliki.
Skrcony czas wytwarzania aplikacji. Szybko wytwarzania nowych aplikacji (choby takich,
ktre pobieraj z bazy danych pewne dane i drukuj na ich podstawie nowy raport) jest zwykle
wykorzystywana w roli kluczowego hasa marketingowego promujcego wszelkie rozwizania oparte
na bazach danych. Projektowanie i implementowanie od zera nowych baz danych moe w wielu
przypadkach wymaga wicej czasu ni pisanie wyspecjalizowanych aplikacji operujcych na plikach.
Kiedy jednak taka baza danych bdzie ju gotowa, tworzenie nowych aplikacji w oparciu o odpowiednie mechanizmy systemu zarzdzania baz danych wymaga generalnie minimalnych nakadw
czasowych. Tworzenie aplikacji z wykorzystaniem tych mechanizmw wymaga w przyblieniu od
jednej szstej do jednej czwartej czasu, ktry zuylibymy na opracowanie odpowiedniego programu pracujcego w tradycyjnym systemie plikw.

40

1. BAZY DANYCH I ICH UYTKOWNICY

Elastyczno. Kada ewentualna zmiana wymaga moe si wiza z koniecznoci zmodyfikowania struktury bazy danych. Przykadowo, nowa grupa uytkownikw moe zgosi konieczno
przetwarzania informacji, ktre nie s przechowywane w bazie danych w obecnym ksztacie. W efekcie, moe zaistnie potrzeba dodania do bazy danych nowego pliku lub rozszerzenia elementw
danych w pliku ju istniejcym. Wspczesne systemy zarzdzania bazami danych oferuj na szczcie pewne moliwoci w zakresie wprowadzania ewolucyjnych zmian do struktury bazy danych
bez koniecznoci modyfikowania ju przechowywanych danych ani istniejcych aplikacji.
Dostpno aktualnych informacji. System zarzdzania baz danych udostpnia t baz wszystkim
uytkownikom, ktrzy tylko dysponuj odpowiednimi uprawnieniami. Oznacza to, e w momencie
zastosowania w udostpnianej bazie danych operacji aktualizacji wykonanej przez jednego uytkownika, wszyscy pozostali uytkownicy mog natychmiast zobaczy efekt wykonania tej operacji.
Dostpno najbardziej aktualnych informacji ma zasadnicze znaczenie w wielu aplikacjach przetwarzajcych transakcje (takich jak systemy rezerwacji czy bankowe bazy danych) jest to moliwe
dziki mechanizmom sterowania wspbienego i podsystemowi odzyskiwania danych systemu zarzdzania baz danych.
Korzyci ekonomiczne. Rozwizania oparte na systemach sterowania bazami danych umoliwiaj
konsolidowanie danych i aplikacji celem ograniczenia niepotrzebnego pokrywania si dziaa personelu przetwarzajcego dane przydzielonego do rnych projektw lub pracujcego w rnych
dziaach organizacji. Dziki temu caa organizacja moe inwestowa wiksze rodki w nowoczesne
procesory, ukady pamici czy systemy komunikacji, zamiast pozwala poszczeglnym dziaom na
dokonywanie samodzielnych zakupw (czsto gorszego) wyposaenia. Mona w ten sposb zredukowa czne koszty operacyjne i zarzdzania.

1.7. Krtka historia praktycznych zastosowa baz danych


Przedstawimy teraz krtki przegld historii zastosowa systemw zarzdzania bazami danych oraz
ich wpywu na dynamik rozwoju nowych rodzajw systemw baz danych.

1.7.1. Wczesne zastosowania baz danych


oparte na systemach hierarchicznych i sieciowych
Wiele wczesnych rozwiza opartych na bazach danych polegao na przechowywaniu rekordw
utrzymywanych przez ogromne organizacje, takie jak korporacje, uniwersytety, szpitale czy banki.
W wielu z tych rozwiza trzeba byo reprezentowa wielkie liczby rekordw o podobnej strukturze. Przykadowo, w oprogramowaniu stosowanym przez uniwersytety podobne informacje byy
przechowywane dla kadego studenta, kadego przedmiotu, kadej oceny itp. Takie rozwizania
wizay si z koniecznoci utrzymywania wielu typw rekordw oraz obsugi wielu istniejcych
pomidzy nimi relacji.
Jednym z gwnych problemw wystpujcych we wczesnych systemach baz danych byo
mieszanie relacji koncepcyjnych z fizycznym modelem przechowywania i rozmieszczania rekordw
na dysku. Przykadowo, rekordy reprezentujce oceny uzyskane przez konkretnego studenta mogy
by fizycznie przechowywane bezporednio obok odpowiedniego rekordu reprezentujcego samego

1.7. KRTKA HISTORIA PRAKTYCZNYCH ZASTOSOWA BAZ DANYCH

41

studenta. Takie rozwizanie zapewniaoby co prawda bardzo efektywny dostp do oryginalnych


zapyta i transakcji, ktrych obsuga stanowia jeden z celw projektowania caej bazy danych,
jednak nie gwarantowaoby wystarczajcej elastycznoci w zakresie efektywnoci dostpu do danych za pomoc nowych zapyta i transakcji. Szczeglnie trudna byaby efektywna implementacja
nowych zapyta, ktre wymagayby do sprawnego przetwarzania danych zupenie innej organizacji fizycznego przechowywania informacji. Okazuje si, e dosy trudne byoby take zreorganizowanie bazy danych w sytuacji, gdyby pojawiy si jakie zmiany w oryginalnych wymaganiach
dotyczcych danego rozwizania.
Innym niedocigniciem wczesnych systemw baz danych byo udostpnianie przez nie wycznie interfejsw dla jzykw programowania. Takie rozwizanie niepotrzebnie wyduao czas
i zwikszao koszty implementowania nowych zapyta i transakcji, poniewa wymagao pisania
i testowania nowych programw. Wikszo tego typu systemw baz danych bya implementowana
na duych i drogich komputerach centralnych (dziao si tak poczwszy od poowy lat 60-tych a
do koca lat 80-tych). Najbardziej popularne odmiany wczesnych systemw baz danych byy konstruowane zgodnie z trzema paradygmatami byy to odpowiednio systemy hierarchiczne, systemy oparte na modelu sieciowym oraz odwrcone systemy plikw.

1.7.2. Zapewnianie elastycznoci w rozwizaniach


opartych na relacyjnych bazach danych
Pocztkowo, relacyjne bazy danych miay stanowi rozwizanie, ktre pozwoli oddzieli mechanizmy fizycznego przechowywania danych od ich koncepcyjnej reprezentacji i jednoczenie wniesie
odpowiedni model matematyczny dla technologii baz danych. Relacyjny model danych wprowadzi take wysokopoziomowe jzyki zapyta, ktre stanowiy pierwsz ciekaw i efektywn alternatyw dla interfejsw jzykw programowania ich wprowadzenie pozwolio oczywicie na
znaczne przyspieszenie procesu tworzenia nowych zapyta. Przykadem relacyjnej reprezentacji
danych jest struktura bazy danych przedstawiona na rysunku 1.2. Systemy relacyjne byy pocztkowo przeznaczone do tych samych zastosowa co wspominane w poprzednim podrozdziale wczesne
rozwizania oparte na bazach danych, jednak szybko okazao si, e oferuj nieporwnanie wiksz
elastyczno w obszarze szybkiego tworzenia nowych zapyta oraz reorganizacji struktury bazy
danych (np. w odpowiedzi na zmiany pierwotnych wymaga).
Wczesne eksperymentalne systemy relacyjne byy tworzone i rozwijane ju w pnych latach
70-tych, natomiast komercyjne relacyjne systemy zarzdzania bazami danych (ang. Relational
Database Management System RDBMS) zostay wprowadzone we wczesnych latach 80-tych
pierwsze rozwizania tego typu byy mao wydajne, poniewa podczas operacji dostpu do rekordw
wzajemnie powizanych za pomoc relacji nie wykorzystywano jeszcze wskanikw do fizycznych obszarw pamici. Wraz z rozwojem nowych technologii przechowywania danych, nowych
technik indeksowania informacji, a take lepszych metod przetwarzania i optymalizacji zapyta,
wydajno relacyjnych systemw zarzdzania bazami danych stopniowo wzrastaa. Relacyjne bazy
danych stay si ostatecznie dominujcym rodzajem systemw baz danych, przynajmniej w tradycyjnych zastosowaniach. Relacyjne bazy danych s obecnie dostpne dla niemal wszystkich typw
komputerw, od niewielkich komputerw osobistych do duych serwerw.

42

1. BAZY DANYCH I ICH UYTKOWNICY

1.7.3. Aplikacje obiektowe i konieczno wprowadzenia nowych,


bardziej skomplikowanych baz danych
Rozwj obiektowych jzykw programowania, ktry nastpi w latach 80-tych, oraz potrzeba przechowywania i udostpniania obiektw o skomplikowanej strukturze doprowadziy ostatecznie do
rozwoju obiektowych baz danych. Obiektowe bazy danych byy pocztkowo uwaane za rozwizanie konkurencyjne wzgldem relacyjnych baz danych, poniewa oferoway bardziej oglne struktury danych. Twrcy tego typu baz danych zastosowali take wiele przydatnych regu znanych ze
wiata obiektowych jzykw programowania, a wic abstrakcyjne typy danych, hermetyzacj operacji, dziedziczenie czy mechanizm identyfikacji obiektw. Poziom zoonoci tego modelu i brak
wczeniejszych standardw przyczyni si jednak do bardzo ograniczonej popularnoci tego typu
rozwiza. Obiektowe bazy danych s obecnie wykorzystywane do bardzo wyspecjalizowanych
celw, takich jak projektowanie inynierskie, publikowanie multimediw czy obsuga systemw
produkcji przemysowej.

1.7.4. Wykorzystywana w handlu elektronicznym wymiana


danych za porednictwem stron WWW
Internet jest ogromn sieci poczonych ze sob komputerw. Uytkownicy internetu mog tworzy
dokumenty za pomoc specjalnych jzykw publikacji w sieci WWW, takich jak HTML (od ang.
HyperText Markup Language), i umieszcza tak przygotowane materiay na serwerach WWW,
gdzie pozostali uytkownicy (klienci) mog uzyskiwa do nich dostp. Dokumenty mona ze sob
czy za pomoc tzw. hiperczy, ktre s w rzeczywistoci logicznymi wskanikami do innych
dokumentw. W latach 90-tych ogromn popularno zdobyo zupenie nowe zastosowanie internetu handel elektroniczny (ang. electronic commerce lub e-commerce). Szybko okazao si, e
cz informacji wywietlanych na stronach WWW sklepw internetowych moe by dynamicznie pobierana z dziaajcego w tle systemu zarzdzania baz danych. W odpowiedzi na rosnce
zapotrzebowanie na rozwizania tego typu opracowano wiele technik wymiany danych za porednictwem stron WWW. Za gwny standard wymiany danych pomidzy rnymi typami baz danych
i stron internetowych uwaa si obecnie jzyk XML (ang. eXtended Markup Language). Jzyk XML
czy w sobie pojcia typowe dla systemw opartych na dokumentach z pojciami charakterystycznymi dla modelowania baz danych.

1.7.5. Rozszerzanie moliwoci wspczesnych systemw


baz danych z myl o nowych zastosowaniach
Sukces systemw baz danych w tradycyjnych zastosowaniach zachci programistw do opracowania zupenie innych rodzajw aplikacji, w ktrych z powodzeniem bdzie mona wykorzystywa
podobne technologie. Nowe rozwizania miay by wykorzystywane w obszarach, w ktrych do
tej pory dominoway tradycyjne aplikacje operujce na wyspecjalizowanych plikach i strukturach
danych. Poniej przedstawiono przykady takich obszarw:

1.8. KIEDY NIE NALEY UYWA SYSTEMW ZARZDZANIA BAZAMI DANYCH

43

Rozwizania naukowe, ktre wymagaj przechowywania ogromnych iloci danych generowanych w trakcie eksperymentw naukowych w takich obszarach jak fizyka czstek elementarnych czy odwzorowywanie ludzkiego materiau genetycznego.
Przechowywanie i udostpnianie obrazw, poczwszy od zeskanowanych artykuw prasowych i rodzinnych fotografii, a skoczywszy na zdjciach satelitarnych i obrazach powstajcych podczas takich procedur medycznych jak przewietlenia rentgenowskie czy rezonans
magnetyczny.
Przechowywanie i udostpnianie obrazu wideo, np. filmw czy klipw wideo z wiadomociami telewizyjnymi lub zapisem z osobistych kamer cyfrowych.
Rozwizania w zakresie drenia danych, w ktrych ogromne iloci danych s poddawane
analizie pod ktem wystpie konkretnych wzorcw lub relacji.
Techniki przestrzenne, w ktrych przechowuje si przestrzenne lokalizacje takich danych jak
informacje o pogodzie czy mapy wykorzystywane w systemach informacji geograficznej.
Zastosowania zwizane z przechowywaniem szeregw czasowych, w tym danych ekonomicznych odpowiadajcych rwnomiernie rozoonym punktom w czasie; mog to by np. wykresy
dziennej sprzeday lub miesicznego produktu krajowego brutto.
Bardzo szybko okazao si, e podstawowe relacyjne systemy baz danych nie nadaj si do obsugi
wielu z wymienionych przed chwil zastosowa zwykle powodem takiego stanu rzeczy jest jeden
z poniszych problemw:
Do modelowania istniejcego stanu mini-wiata potrzebne s bardziej skomplikowane struktury danych ni prosta reprezentacja relacyjna.
Poza podstawowymi typami numerycznymi i znakowymi niezbdne s nowe typy danych.
Do operowania na nowych typach danych potrzebne s zupenie nowe operacje i konstrukcje
jzyka zapyta.
Niezbdne s nowe struktury przechowywania i indeksowania danych.
Wymienione powyej ograniczenia spowodoway, e twrcy systemw zarzdzania bazami
danych zaczli wprowadza do swoich pakietw dodatkowe elementy zwikszajce ich funkcjonalno. Zastosowania niektrych z nowych funkcji s uniwersalne dotyczy to np. przenoszenia
poj z obiektowych baz danych do systemw relacyjnych. Inne elementy nowej funkcjonalnoci
maj bardzo konkretne przeznaczenie i s zwykle oferowane w postaci opcjonalnych moduw,
ktre mona stosowa tylko podczas realizacji specyficznych zada. Przykadowo, uytkownicy
mog zakupi modu obsugujcy szeregi czasowe, ktry bd nastpnie wykorzystywali w swoim
relacyjnym systemie zarzdzania baz danych do obsugi takich szeregw.

1.8. Kiedy nie naley uywa systemw zarzdzania


bazami danych
Pomimo wymienionych w tym rozdziale zalet systemw zarzdzania bazami danych, istnieje kilka
sytuacji, w ktrych stosowanie tego typu rozwiza wie si z niepotrzebnymi kosztami, ktrych
z kolei mona unikn stosujc tradycyjne rozwizania przetwarzajce pliki. Nadmierne koszty
stosowania systemw zarzdzania bazami danych mog wynika z nastpujcych uwarunkowa:

44

1. BAZY DANYCH I ICH UYTKOWNICY

Zbyt wysoki pocztkowy koszt inwestycji w sprzt, oprogramowanie i szkolenia.


Zbyt may poziom szczegowoci oferowanej przez system zarzdzania baz danych w zakresie definiowania i przetwarzania danych.
Negatywne skutki dla wydajnoci, bdce efektem automatycznego stosowania mechanizmw
bezpieczestwa, sterowania wspbienego, odzyskiwania i zapewniania spjnoci danych.
Dodatkowe problemy mog wystpi take w sytuacji, gdy programici lub administratorzy
baz danych popeni bdy podczas projektowania, lub gdy aplikacje systemu bazy danych nie zostan
waciwie zaimplementowane. Zatem zastosowanie tradycyjnych rozwiza opartych na przetwarzaniu zwykych plikw z danymi moe by usprawiedliwione w nastpujcych okolicznociach:
Sama baza danych i aplikacje dodatkowe s proste, dobrze zdefiniowane i nie bd w przyszoci zmieniane.
Zostay zdefiniowane cise wymagania dotyczce projektowanego pakietu oprogramowania,
ktrych nie mona speni przy uyciu systemu zarzdzania baz danych (np. z powodu mniejszej wydajnoci).
Reprezentowane dane nie musz by dostpne dla wielu uytkownikw.

1.9. Podsumowanie
W tym rozdziale zdefiniowalimy baz danych jako zbir wzajemnie powizanych danych (informacji), gdzie przez same dane rozumiemy zarejestrowane fakty ze wiata rzeczywistego. Typowa
baza danych reprezentuje jaki aspekt tego wiata i jest wykorzystywana do okrelonych celw przez
jedn lub wicej grup uytkownikw. System zarzdzania baz danych jest uniwersalnym pakietem
oprogramowania, ktry umoliwia implementowanie i utrzymywanie skomputeryzowanej bazy
danych. Baza danych w poczeniu z tym oprogramowaniem tworzy system bazy danych. Wymienilimy w tym rozdziale szereg waciwoci, ktre odrniaj rozwizania oparte na bazach danych
od tradycyjnych aplikacji przetwarzajcych pliki z danymi. W dalszej kolejnoci omwilimy najwaniejsze kategorie uytkownikw baz danych nazwalimy ich aktorami na scenie. Stwierdzilimy take, e poza wymienionymi rodzajami uytkownikw baz danych istnieje take kilka kategorii personelu wspierajcego tych uytkownikw podczas ich pracy w rodowisku bazy danych
nazwalimy ich pracownikami poza scen.
Przedstawilimy take list moliwoci i funkcji, ktre powinny by dostpne na poziomie
systemw zarzdzania bazami danych dla administratorw, projektantw oraz uytkownikw baz
danych, i ktre powinny im uatwia projektowanie, administrowanie i wykorzystywanie tyche
baz danych. Zaraz potem krtko omwilimy histori i ewolucj rozwiza opartych na bazach
danych. Wreszcie skupilimy si przez chwil na kosztach wynikajcych ze stosowania systemw
zarzdzania bazami danych oraz przedstawilimy sytuacje, w ktrych wykorzystywanie tego typu
rozwiza moe powodowa wicej strat ni korzyci.

1.9. PODSUMOWANIE

45

Pytania powtrkowe
1.1. Zdefiniuj nastpujce pojcia: dane, baza danych, system zarzdzania baz danych, system
bazy danych, katalog bazy danych, niezaleno programu od danych, perspektywa uytkownika, administrator bazy danych, uytkownik kocowy, transakcja zapuszkowana, dedukcyjny system bazy danych, trway obiekt, metadane oraz aplikacja przetwarzajca transakcje.
1.2. Jakie trzy gwne typy dziaa wi si ze stosowaniem baz danych? Krtko omw kady
z wymienionych typw.
1.3. Omw gwne waciwoci rozwiza opartych na bazach danych i przedstaw krtko rnice
dzielce te rozwizania od ich odpowiednikw majcych posta tradycyjnych systemw
plikw.
1.4. Jakie s zadania administratora bazy danych i projektanta bazy danych?
1.5. Wymie rne typy uytkownikw kocowych bazy danych. Omw gwne czynnoci podejmowane przez uytkownikw nalecych do poszczeglnych typw.
1.6. Przedstaw moliwoci, jakie powinny by oferowane przez systemy zarzdzania bazami
danych.

wiczenia
1.7. Przedstaw kilka nieformalnych zapyta i operacji aktualizujcych, ktre chciaby zastosowa dla bazy danych przedstawionej na rysunku 1.2.
1.8. Jaka jest rnica pomidzy kontrolowan a niekontrolowan nadmiarowoci? Odpowied
zilustruj odpowiednimi przykadami.
1.9. Wymie wszystkie zwizki czce rekordy bazy danych przedstawionej na rysunku 1.2.
1.10. Podaj kilka dodatkowych perspektyw, ktre mog by przydatne dla innych grup uytkownikw bazy danych zademonstrowanej na rysunku 1.2.
1.11. Przedstaw kilka przykadw ogranicze integralnociowych, ktre Twoim zdaniem powinny
zosta zdefiniowane dla bazy danych zaprezentowanej na rysunku 1.2.

Wybrane publikacje
Wydanie miesicznika Communications of the ACM z padziernika roku 1991 oraz ksika Kima
(1995) zawieraj wiele artykuw i materiaw opisujcych systemy zarzdzania bazami danych
nastpnej generacji; wiele spord rozwiza omwionych w tym pierwszym czasopimie jest ju
dostpnych w oferowanych obecnie komercyjnych pakietach oprogramowania. Wydanie miesicznika
ACM Computing Surveys z marca roku 1976 zawiera wczesne wprowadzenie do systemw baz
danych, ktre dla zainteresowanych czytelnikw moe stanowi ciekawy materia historyczny na
ten temat.

You might also like