Darmowy fragment publikacji:
IDZ DO
IDZ DO
PRZYK£ADOWY ROZDZIA£
PRZYK£ADOWY ROZDZIA£
SPIS TREĎCI
SPIS TREĎCI
KATALOG KSI¥¯EK
KATALOG KSI¥¯EK
KATALOG ONLINE
KATALOG ONLINE
ZAMÓW DRUKOWANY KATALOG
ZAMÓW DRUKOWANY KATALOG
TWÓJ KOSZYK
TWÓJ KOSZYK
DODAJ DO KOSZYKA
DODAJ DO KOSZYKA
CENNIK I INFORMACJE
CENNIK I INFORMACJE
ZAMÓW INFORMACJE
ZAMÓW INFORMACJE
O NOWOĎCIACH
O NOWOĎCIACH
ZAMÓW CENNIK
ZAMÓW CENNIK
CZYTELNIA
CZYTELNIA
FRAGMENTY KSI¥¯EK ONLINE
FRAGMENTY KSI¥¯EK ONLINE
Wydawnictwo Helion
ul. Chopina 6
44-100 Gliwice
tel. (32)230-98-63
e-mail: helion@helion.pl
Wprowadzenie do
systemów baz danych
Autor: Ramez Elmasri, Shamkant B. Navathe
T³umaczenie: Miko³aj Szczepaniak (rozdz. 0 – 9, 27 – 29),
Bart³omiej Garbacz (rozdz. 10 – 19, dod. A – C),
Bart³omiej Moczulski (rozdz. 20 – 26)
ISBN: 83-7361-716-7
Tytu³ orygina³u: Fundamentals of Database
Systems, 4th Edition
Format: B5, stron: 1056
Bazy danych to podstawa wiêkszoġci z³o¿onych systemów informatycznych.
W oparciu o dane czerpane z tabel w bazie dzia³aj¹ portale i sklepy internetowe,
aplikacje biznesowe i informacyjne, a nawet multimedialne witryny, coraz czêġciej
spotykane w urzêdach, muzeach i innych budynkach u¿ytecznoġci publicznej.
Na rynku dostêpnych jest wiele systemów zarz¹dzania bazami danych, oferowanych
przez ró¿nych producentów i na ró¿nych zasadach licencjonowania. Pomimo istotnych
ró¿nic, wszystkie opieraj¹ siê na podobnych za³o¿eniach, a projektowanie wydajnych
baz danych odbywa siê w niemal identyczny sposób, niezale¿nie od docelowego
systemu zarz¹dzania nimi. Opanowanie wiadomoġci le¿¹cych u podstaw projektowania
i wykorzystywania baz danych jest wiêc niezbêdne do stworzenia efektywnego
i bezpiecznego zaplecza bazodanowego dla systemu informatycznego.
Ksi¹¿ka „Wprowadzenie do systemów baz danych” to szczegó³owe omówienie
wszystkich aspektów projektowania i stosowania baz danych. Szczególny nacisk
po³o¿ono w niej na podstawy modelowania danych i definiowania tabel. Ksi¹¿ka mo¿e
pe³niæ rolê podrêcznika pomocnego przy poznawaniu zagadnieñ zwi¹zanych z bazami
danych lub ĥród³a informacji dla projektantów i administratorów systemów
bazodanowych.
• Rozwi¹zania oparte na bazach danych
• U¿ytkownicy baz danych
• Architektury systemów zarz¹dzania bazami danych
• Modelowanie danych oparte na zwi¹zkach encji
• Zastosowanie jêzyka UML w modelowaniu danych
• Relacyjny model danych
• Jêzyk SQL-99
• Normalizacja danych
• Sk³adowanie danych na dysku
• Indeksy i klucze
• Algorytmy przetwarzania zapytañ
• Mechanizmy transakcyjne
• Obiektowe bazy danych
• Bezpieczeñstwo danych
• Jêzyk XML w bazach danych
• Technologie eksploracji danych
• Hurtownie danych, systemy GIS i bazy danych dla urz¹dzeñ mobilnych
Ksi¹¿ka stanowi ĥród³o wiedzy dla projektantów baz danych i oprogramowania
bazodanowego.
Spis treści
Przedmowa ................................................... ................................................... ..........13
I
WPROWADZENIE I MODELOWANIE KONCEPCYJNE ..........................................19
1.
Bazy danych i ich użytkownicy ................................................... ..............................21
1.1. Wprowadzenie ...................................................d...................................................d.......................22
1.2. Przykład ...................................................d...................................................d.................................23
1.3. Właściwości rozwiązań opartych na bazach danych ...................................................d.................26
1.4. Aktorzy na scenie ...................................................d...................................................d..................31
1.5. Pracownicy poza sceną ...................................................d.............................................................33
1.6. Zalety stosowania rozwiązań opartych na systemach zarządzania bazami danych ......................34
1.7. Krótka historia praktycznych zastosowań baz danych ...................................................d..............40
1.8. Kiedy nie należy używać systemów zarządzania bazami danych ................................................43
1.9. Podsumowanie ...................................................d...................................................d.......................44
2.
Architektura systemów baz danych i związane z nimi pojęcia .................................47
2.1. Modele danych, schematy i egzemplarze ..................................................d...................................48
2.2. Trójwarstwowa architektura i niezależność danych ...................................................d..................51
2.3. Języki i interfejsy baz danych ...................................................d...................................................54
2.4. Środowisko systemu bazy danych ...................................................d............................................57
2.5. Architektury systemów zarządzania bazami danych scentralizowane i typu klient-serwer .........61
2.6. Klasyfikacja systemów zarządzania bazami danych ...................................................d.................66
2.7. Podsumowanie ...................................................d...................................................d.......................68
3.
Modelowanie danych zgodnie z modelem związków encji ......................................71
3.1. Stosowanie wysokopoziomowych, koncepcyjnych modelów danych podczas projektowania
bazy danych ...................................................d...................................................d..........................72
3.2. Przykładowa aplikacja bazy danych ...................................................d.........................................74
3.3. Typy encji, zbiory encji, atrybuty i klucze ...................................................d................................75
3.4. Typy związków, zbiory związków, role i ograniczenia strukturalne ...........................................82
3.5. Słabe typy encji ...................................................d...................................................d.....................89
3.6. Udoskonalanie projektu ER dla bazy danych FIRMA ...................................................d..............90
6
SPIS TREŚCI
3.7. Diagramy ER, konwencje nazewnictwa oraz zagadnienia związane z projektowaniem ..............91
3.8. Notacja dla diagramów klas UML ...................................................d............................................95
3.9. Podsumowanie ...................................................d...................................................d.......................97
4.
Rozszerzony model związków encji oraz modelowanie UML ...............................105
4.1. Podklasy, nadklasy i dziedziczenie ...................................................d.........................................106
4.2. Specjalizacja i generalizacja ...................................................d...................................................108
4.3. Ograniczenia i właściwości związków specjalizacji i generalizacji ...........................................111
4.4. Modelowanie typów UNII w oparciu o kategorie ...................................................d...................118
4.5. Przykład schematu EER dla bazy danych UNIWERSYTET oraz formalne definicje
dla modelu EER ...................................................d...................................................d..................120
4.6. Reprezentowanie specjalizacji-generalizacji oraz dziedziczenia na diagramach klas
metodologii UML ...................................................d...................................................d...............124
4.7. Typy związków stopnia wyższego niż drugi ...................................................d..........................125
4.8. Abstrakcja danych, reprezentacja wiedzy oraz zagadnienia związane z ontologią ....................129
4.9. Podsumowanie ...................................................d...................................................d.....................135
II
MODEL RELACYJNY: ELEMENTY SKŁADOWE, OGRANICZENIA,
JĘZYKI, PROJEKTY I PROGRAMOWANIE ................................................... ..........143
5.
Relacyjny model danych i ograniczenia relacyjnych baz danych ...........................145
5.1. Podstawowe pojęcia relacyjnego modelu danych ...................................................d...................146
5.2. Ograniczenia modelu relacyjnego i schematy relacyjnych baz danych .....................................152
5.3. Operacje aktualizacji i obsługa naruszeń więzów integralności ................................................160
5.4. Podsumowanie ...................................................d...................................................d.....................163
6.
Algebra relacyjna i rachunek relacji ................................................... .....................169
6.1. Relacyjne operacje unarne: selekcja i projekcja ...................................................d.....................170
6.2. Operacje algebry relacyjnej pochodzące z teorii zbiorów ...................................................d.......175
6.3. Binarne operacje na relacjach: złączenie i dzielenie ...................................................d...............179
6.4. Dodatkowe operacje relacyjne ...................................................d................................................186
6.5. Przykłady zapytań w algebrze relacyjnej ...................................................d................................192
6.6. Relacyjny rachunek krotek ...................................................d.....................................................194
6.7. Relacyjny rachunek dziedzin ...................................................d..................................................203
6.8. Podsumowanie ...................................................d...................................................d.....................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 ...................................................d...................................................d...............213
7.2. Odwzorowania konstrukcji modelu EER w relacje ...................................................d................221
7.3. Podsumowanie ...................................................d...................................................d.....................225
SPIS TREŚCI
7
8.
SQL-99: Definicja schematu, podstawowe ograniczenia oraz zapytania ................229
8.1. Definicje danych i typy danych języka SQL ...................................................d...........................231
8.2. Określanie podstawowych ograniczeń w języku SQL ...................................................d............236
8.3. Dostępne w języku SQL polecenia zmiany schematu ..................................................d..............240
8.4. Podstawowe zapytania języka SQL ...................................................d........................................242
8.5. Bardziej skomplikowane zapytania języka SQL ...................................................d.....................253
8.6. Dostępne w języku SQL polecenia INSERT, DELETE i UPDATE ..........................................270
8.7. Dodatkowe własności języka SQL ...................................................d.........................................273
8.8. Podsumowanie ...................................................d...................................................d.....................274
9.
Więcej o języku SQL: asercje, perspektywy i techniki programowania .................279
9.1. Definiowanie ogólnych ograniczeń w postaci asercji ...................................................d.............280
9.2. Perspektywy (tabele wirtualne) w języku SQL ...................................................d.......................281
9.3. Programowanie baz danych: najważniejsze zagadnienia i stosowane techniki ..........................286
9.4. Osadzony język SQL, dynamiczny język SQL oraz język SQLJ ...............................................289
9.5. Programowanie baz danych z wywołaniami funkcji: SQL/CLI oraz JDBC ..............................301
9.6. Procedury składowane w bazie danych i technika SQL/PSM ...................................................d311
9.7. Podsumowanie ...................................................d...................................................d.....................314
III
TEORIA I METODOLOGIA PROJEKTOWANIA BAZ DANYCH ...........................317
10.
Zależności funkcyjne i normalizacja w relacyjnych bazach danych .......................319
10.1. Nieformalne wskazówki dotyczące projektowania schematów relacji ......................................321
10.2. Zależności funkcyjne ...................................................d..............................................................329
10.3. Postaci normalne oparte na kluczach głównych ...................................................d.....................337
10.4. Definicje ogólne drugiej i trzeciej postaci normalnej ...................................................d.............345
10.5. Postać normalna Boyce’a-Codda ...................................................d............................................349
10.6. Podsumowanie ...................................................d...................................................d.....................351
11.
Algorytmy projektowania relacyjnych baz danych i dodatkowe zależności ...........357
11.1. Właściwości dekompozycji relacyjnych ...................................................d.................................358
11.2. Algorytmy projektowania schematów relacyjnych baz danych .................................................364
11.3. Zależności wielowartościowe i czwarta postać normalna ...................................................d.......370
11.4. Zależności złączeniowe i piąta postać normalna ...................................................d....................376
11.5. Zależności zawierania ..................................................d..............................................................378
11.6. Inne zależności i postaci normalne ...................................................d.........................................379
11.7. Podsumowanie ...................................................d...................................................d.....................381
12.
Praktyczna metodologia projektowania baz danych i użycie diagramów UML .....385
12.1. Rola systemów informacyjnych w przedsiębiorstwach ...................................................d..........386
12.2. Projekt bazy danych i proces jej implementacji ...................................................d......................390
12.3. Użycie diagramów języka UML jako środka wspomagającego tworzenie specyfikacji... .........408
12.4. Rational Rose — narzędzie projektowe oparte na języku UML ................................................417
12.5. Narzędzia zautomatyzowanego projektowania baz danych ...................................................d....421
12.6. Podsumowanie ...................................................d...................................................d.....................425
8
SPIS TREŚCI
IV
PRZECHOWYWANIE DANYCH, INDEKSOWANIE,
PRZETWARZANIE ZAPYTAŃ ORAZ PROJEKTOWANIE FIZYCZNE .................429
13.
Składowanie danych na dysku, podstawowe struktury plikowe
i funkcje mieszające ................................................... .............................................431
13.1. Wprowadzenie ...................................................d...................................................d.....................432
13.2. Drugorzędne urządzenia pamięciowe ...................................................d.....................................435
13.3. Buforowanie bloków ...................................................d...................................................d...........441
13.4. Rozmieszczanie rekordów plików na dysku ...................................................d...........................442
13.5. Operacje wykonywane na plikach ...................................................d..........................................446
13.6. Pliki nieuporządkowanych rekordów (pliki stertowe) ...................................................d............449
13.7. Pliki uporządkowanych rekordów (pliki posortowane) ...................................................d..........450
13.8. Techniki mieszania ...................................................d...................................................d..............453
13.9. Inne podstawowe metody organizacji plików ...................................................d.........................461
13.10. Zapewnianie równoległego dostępu do dysku przy użyciu architektury RAID .........................462
13.11. Sieci obszarów składowania danych ..................................................d........................................467
13.12. Podsumowanie ..................................................d...................................................d......................468
14.
Struktury indeksowe dla plików ................................................... ...........................475
14.1. Rodzaje jednopoziomowych indeksów uporządkowanych ...................................................d.....476
14.2. Indeksy wielopoziomowe ...................................................d.......................................................485
14.3. Dynamiczne indeksy wielopoziomowe z użyciem B-drzew i B+-drzew ....................................488
14.4. Indeksy na wielu kluczach ...................................................d......................................................501
14.5. Inne rodzaje indeksów ...................................................d............................................................505
14.6. Podsumowanie ...................................................d...................................................d.....................506
15.
Algorytmy przetwarzania i optymalizacji zapytań ..................................................513
15.1. Translacja zapytań języka SQL do postaci wyrażeń algebry relacji ..........................................515
15.2. Algorytmy sortowania zewnętrznego ...................................................d.....................................516
15.3. Algorytmy operacji wybierania i złączenia ...................................................d............................518
15.4. Algorytmy operacji rzutowania i teoriomnogościowych ...................................................d........528
15.5. Implementacja operacji agregujących oraz złączeń zewnętrznych ............................................529
15.6. Łączenie operacji poprzez mechanizm potokowy ...................................................d..................531
15.7. Wykorzystanie metod heurystycznych do optymalizacji zapytań ..............................................532
15.8. Wykorzystanie oszacowań selektywności i kosztu w optymalizacji zapytań ............................543
15.9. Przegląd technik optymalizacji zapytań w systemie Oracle ...................................................d...552
15.10. Semantyka optymalizacji zapytań ...................................................d..........................................553
15.11. Podsumowanie ..................................................d...................................................d......................554
16.
Praktyczne projektowanie i strojenie baz danych ................................................... 557
16.1. Fizyczne projektowanie baz danych w przypadku baz relacyjnych ...........................................557
16.2. Przegląd technik strojenia baz danych w systemach relacyjnych ..............................................560
16.3. Podsumowanie ...................................................d...................................................d.....................567
SPIS TREŚCI
9
V
ZAGADNIENIA Z ZAKRESU PRZETWARZANIA TRANSAKCJI .........................569
17.
Wprowadzenie do problematyki i teorii przetwarzania transakcji ..........................571
17.1. Wprowadzenie do problematyki przetwarzania transakcji ...................................................d.....572
17.2. Pojęcia dotyczące transakcji i systemu ...................................................d...................................578
17.3. Pożądane właściwości transakcji ...................................................d............................................581
17.4. Charakteryzowanie harmonogramów na podstawie możliwości odtwarzania ...........................582
17.5. Charakterystyka harmonogramów według ich szeregowalności ...............................................586
17.6. Obsługa transakcji w języku SQL ...................................................d..........................................596
17.7. Podsumowanie ...................................................d...................................................d.....................598
18.
Techniki sterowania współbieżnego ................................................. .......................601
18.1. Techniki blokowania dwufazowego dla celów sterowania współbieżnego ...............................602
18.2. Sterowanie współbieżne w oparciu o uporządkowanie według znaczników czasu ...................612
18.3. Techniki wielowersyjnego sterowania współbieżnego ...................................................d...........614
18.4. Techniki walidacyjnego (optymistycznego) sterowania współbieżnego ...................................617
18.5. Ziarnistość elementów danych i blokowanie z wieloma poziomami ziarnistości ......................619
18.6. Użycie blokad dla celów sterowania współbieżnego w przypadku indeksów ...........................623
18.7. Inne kwestie związane ze sterowaniem współbieżnym ...................................................d..........624
18.8. Podsumowanie ...................................................d...................................................d.....................625
19.
Techniki odtwarzania baz danych ................................................... ........................629
19.1. Pojęcia związane z odtwarzaniem ...................................................d..........................................630
19.2. Techniki odtwarzania oparte na aktualizacjach odroczonych ...................................................d.636
19.3. Techniki odtwarzania oparte na aktualizacjach natychmiastowych ...........................................641
19.4. Stronicowanie z przesłanianiem ...................................................d.............................................642
19.5. Algorytm odtwarzania ARIES ...................................................d................................................644
19.6. Odtwarzanie w systemach wielu baz danych ...................................................d..........................647
19.7. Tworzenie kopii bezpieczeństwa bazy danych i odtwarzanie po awariach ................................648
19.8. Podsumowanie ...................................................d...................................................d.....................649
VI
OBIEKTOWE I OBIEKTOWO-RELACYJNE BAZY DANYCH ...............................655
20.
Idea obiektowych baz danych ................................................... ..............................657
20.1. Przegląd pojęć zorientowanych obiektowo ...................................................d............................658
20.2. Tożsamość i struktura obiektów oraz konstruktory typów ...................................................d.....661
20.3. Enkapsulacja operacji, metody i trwałość obiektów ...................................................d...............666
20.4. Hierarchia typów i klas oraz dziedziczenie ..................................................d..............................670
20.5. Obiekty złożone ...................................................d...................................................d...................674
20.6. Inne pojęcia zorientowane obiektowo ...................................................d....................................676
20.7. Podsumowanie ...................................................d...................................................d.....................678
10
SPIS TREŚCI
21.
Standardy, języki i projektowanie obiektowych baz danych ..................................681
21.1. Wstęp do modelu obiektowego ODMG ...................................................d.................................682
21.2. Język definicji obiektów ODL ...................................................d................................................693
21.3. Obiektowy język zapytań OQL ...................................................d..............................................699
21.4. Przegląd wiązania z językiem C++ ...................................................d.........................................707
21.5. Projektowanie pojęciowe obiektowej bazy danych ...................................................d................708
21.6. Podsumowanie ...................................................d...................................................d.....................711
22.
Systemy obiektowo-relacyjne i rozszerzone relacyjne ............................................713
22.1. Przegląd SQL i jego cech obiektowo-relacyjnych ...................................................d..................714
22.2. Obecne tendencje i ewolucja w technologiach baz danych ...................................................d....721
22.3. Informix Universal Server ...................................................d......................................................722
22.4. Obiektowo-relacyjne cechy systemu Oracle 8 ...................................................d........................732
22.5. Problemy implementacyjne w rozszerzonych systemach typów ...............................................735
22.6. Zagnieżdżony model relacyjny ...................................................d...............................................736
22.7. Podsumowanie ...................................................d...................................................d.....................739
VII
INNE TEMATY ................................................... ................................................... .......741
23.
Bezpieczeństwo baz danych i mechanizmy uwierzytelniania .................................743
23.1. Wprowadzenie do bezpieczeństwa baz danych ...................................................d......................743
23.2. Dyspozycyjna kontrola dostępu polegająca na nadawaniu i odbieraniu uprawnień ..................747
23.3. Realizacja zabezpieczeń wielopoziomowych za pomocą obowiązkowej kontroli dostępu
i zabezpieczeń opartych na rolach ...................................................d..........................................752
23.4. Wprowadzenie do bezpieczeństwa statystycznych baz danych .................................................756
23.5. Wprowadzenie do kontroli przepływu ...................................................d....................................758
23.6. Szyfrowanie i infrastruktura klucza publicznego ...................................................d....................759
23.7. Podsumowanie ...................................................d...................................................d.....................761
24.
Rozszerzone modele danych stosowane w zaawansowanych aplikacjach ..............765
24.1. Wyzwalacze i inne pojęcia związane z aktywnymi bazami danych ..........................................766
24.2. Koncepcja czasowych baz danych ...................................................d..........................................776
24.3. Przestrzenne i multimedialne bazy danych ...................................................d.............................787
24.4. Wprowadzenie do dedukcyjnych baz danych ...................................................d.........................790
24.5. Podsumowanie ...................................................d...................................................d.....................803
25.
Rozproszone bazy danych i architektury klient-serwer ...........................................809
25.1. Koncepcja rozproszonej bazy danych ...................................................d.....................................810
25.2. Techniki fragmentacji, replikacji i alokacji danych w projekcie rozproszonej bazy danych .....815
25.3. Rodzaje rozproszonych systemów baz danych ...................................................d.......................820
25.4. Przetwarzanie zapytań w rozproszonych bazach danych ...................................................d........823
25.5. Techniki sterowania współbieżnego i odzyskiwania danych w rozproszonych bazach danych ... 828
24.6. Przegląd trójwarstwowej architektury klient-serwer ..................................................d................831
25.7. Rozproszone bazy danych w Oracle ...................................................d.......................................833
25.8. Podsumowanie ...................................................d...................................................d.....................836
SPIS TREŚCI
11
VIII
NOWE TECHNOLOGIE ................................................... ............................................841
26.
XML i internetowe bazy danych ................................................... ..........................843
26.1. Dane strukturalne, półstrukturalne i niestrukturalne ...................................................d...............843
26.2. Hierarchiczny (drzewiasty) model danych w dokumentach XML .............................................846
26.3. Dokumenty XML, DTD i schematy ...................................................d.......................................848
26.4. Dokumenty XML a bazy danych ...................................................d............................................855
26.5. Zapytania XML ...................................................d...................................................d...................862
26.6. Podsumowanie ...................................................d...................................................d.....................864
27.
Elementy drążenia danych ................................................... ....................................867
27.1. Przegląd technologii drążenia danych ...................................................d....................................868
27.2. Reguły asocjacyjne ...................................................d...................................................d..............872
27.3. Klasyfikacja ...................................................d...................................................d.........................884
27.4. Grupowanie ...................................................d...................................................d.........................888
27.5. Strategie rozwiązywania pozostałych problemów związanych z drążeniem danych .................891
27.6. Zastosowania technik drążenia danych ...................................................d...................................894
27.7. Komercyjne narzędzia drążenia danych ...................................................d.................................894
27.8. Podsumowanie ...................................................d...................................................d.....................897
28.
Przegląd hurtowni danych i rozwiązań OLAP ................................................... .....901
28.1. Wprowadzenie, definicje i terminologia ...................................................d.................................901
28.2. Właściwości hurtowni danych ...................................................d................................................903
28.3. Modelowanie danych dla hurtowni danych ...................................................d............................904
28.4. Budowanie hurtowni danych ...................................................d..................................................910
28.5. Typowa funkcjonalność hurtowni danych ...................................................d..............................913
28.6. Hurtownie danych kontra perspektywy ...................................................d..................................914
28.7. Problemy i nierozwiązane zagadnienia związane z hurtowniami danych ..................................914
28.8. Podsumowanie ...................................................d...................................................d.....................916
29.
Przegląd najnowszych technologii i zastosowań baz danych ..................................919
29.1. Mobilne bazy danych ..................................................d...................................................d............920
29.2. Multimedialne bazy danych ...................................................d....................................................928
29.3. Systemy informacji geograficznej ...................................................d..........................................936
29.4. Zarządzanie danymi kodu genetycznego ...................................................d................................943
DODATKI ................................................... ................................................... ................953
A Alternatywne notacje modeli związków encji ................................................... ..955
B Parametry dysków ................................................... ............................................959
C Omówienie języka QBE ................................................... ...................................963
Bibliografia ................................................... ................................................... ....971
Skorowidz ................................................... ................................................... ...1007
1
Bazy danych i ich użytkownicy
Bazy danych i systemy baz danych stały się kluczowym narzędziem w życiu codziennym współcze-
snego społeczeństwa. Niemal codziennie każdy z nas wykonuje wiele czynności, które w taki czy inny
sposób wiążą się z wykorzystywaniem bazy danych. Przykładowo, kiedy idziemy do banku celem
wpłacenia lub wypłacenia pieniędzy z naszego konta, kiedy rezerwujemy pokój w hotelu lub bilet lot-
niczy, kiedy szukamy interesujących nas pozycji w skomputeryzowanym katalogu biblioteki lub kiedy
kupujemy cokolwiek (książkę, zabawkę czy choćby komputer) w sklepie internetowym obsługiwanym
za pośrednictwem strony WWW, jest bardzo prawdopodobne, że tego typu czynności wymagają od
kogoś lub od jakiegoś programu komputerowego właśnie dostępu do bazy danych. Nawet zwykłe
zakupy w supermarkecie w wielu przypadkach wiążą się obecnie z automatyczną aktualizacją bazy
danych reprezentującej stan zapasów poszczególnych artykułów.
Wymienione powyżej działania są przykładami tego, co możemy nazwać tradycyjnymi zastoso-
waniami baz danych, w których większość przechowywanych i uzyskiwanych informacji ma postać
albo danych tekstowych, albo danych numerycznych. Przez ostatnie kilka lat stały postęp technolo-
giczny doprowadził do wynalezienia zupełnie nowych, pasjonujących zastosowań dla systemów baz
danych. Multimedialne bazy danych mogą teraz przechowywać obrazy, klipy wideo czy komunikaty
głosowe. Geograficzne systemy informacyjne (ang. Geographic Information Systems — GIS) mogą
przechowywać i analizować mapy, dane o pogodzie, a nawet zdjęcia satelitarne. Hurtownie danych
i systemy OLAP (od ang. Online Analytical Processing) są wykorzystywane do wydzielania z ogrom-
nych baz danych przydatnych informacji i ich analizy, która ma ostatecznie ułatwić podjęcie właści-
wych decyzji. Technologie baz danych czasu rzeczywistego i aktywnych baz danych są przy-
datne podczas sterowania procesami w produkcji przemysłowej. Okazuje się także, że techniki
przeszukiwania baz danych znalazły zastosowanie w świecie witryn i stron internetowych, gdzie
w ostatnim czasie znacznie usprawniono mechanizmy wyszukiwania przez użytkowników potrzebnych
informacji w internecie.
Aby zrozumieć podstawy tych technologii, musimy jednak rozpocząć nasze rozważania od ana-
lizy bardziej tradycyjnych zastosowań baz danych. W podrozdziale 1.1 zdefiniujemy więc to, czym
faktycznie jest baza danych, i dopiero potem przystąpimy do omawiania innych podstawowych pojęć.
W podrozdziale 1.2 przedstawimy prosty przykład bazy danych 70+9 45;6 6, który będzie stanowił
dobrą ilustrację dla naszych rozważań. W podrozdziale 1.3 opiszemy niektóre spośród najważniejszych
własności systemów baz danych, natomiast w podrozdziałach 1.4 i 1.5 spróbujemy odpowiednio
skategoryzować typy pracowników, których praca wiąże się z wykorzystywaniem systemów baz
danych. Podrozdziały 1.6, 1.7 oraz 1.8 zawierają bardziej szczegółową analizę możliwości oferowa-
nych przez systemy baz danych oraz ich typowych zastosowań. Treść podrozdziału 1.9 będzie pod-
sumowaniem całego rozdziału.
22
1. BAZY DANYCH I ICH UŻYTKOWNICY
Czytelnicy, którzy chcieliby bardzo szybko przebrnąć przez teoretyczne wprowadzenie do sys-
temów baz danych, mogą przeczytać jedynie podrozdziały od 1.1 do 1.5, pominąć podrozdziały od 1.6
do 1.8 i od razu przejść do rozdziału 2.
1.1.
Wprowadzenie
Bazy danych i technologie baz danych w ogromnym stopniu przyczyniają się do wzrostu liczby zasto-
sowań komputerów. Możemy z pełnym przekonaniem stwierdzić, że właśnie bazy danych odgrywają
główną rolę niemal we wszystkich obszarach, w których w ogóle wykorzystuje się komputery —
wystarczy wymienić takie gałęzie jak biznes, handel elektroniczny, inżynieria, medycyna, prawo,
edukacja czy bibliotekarstwo. Określenie baza danych jest dziś na tyle popularne, że powinniśmy
rozpocząć nasze rozważania od zdefiniowania, czym faktycznie jest baza danych. Przedstawiona poni-
żej definicja będzie na razie dosyć ogólna.
Baza danych jest zbiorem powiązanych ze sobą danych. Przez dane rozumiemy w tym przy-
padku znane fakty, które można jakoś zarejestrować, i które mają konkretne znaczenie. Przykła-
dowo, rozważmy nazwiska, numery telefonów oraz adresy osób, które znamy — możemy mieć te
dane zarejestrowane w odpowiednio indeksowanej książce adresowej lub przechowywać je na
twardym dysku swojego komputera z wykorzystaniem oprogramowania (choćby aplikacji Microsoft
Access lub Microsoft Excel). Mamy więc zbiór powiązanych ze sobą danych o konkretnym zna-
czeniu, co oznacza, że dysponujemy bazą danych.
Powyższa definicja bazy danych jest dosyć ogólna; przykładowo, możemy traktować zbiór słów
składających się na tę stronę tekstu jako zbiór wzajemnie powiązanych danych, a więc (zgodnie
z przyjętymi przed chwilą warunkami) jako bazę danych. Pojęcie bazy danych w powszechnym
rozumieniu jest jednak znacznie węższe. Każda taka baza danych musi mieć następujące własności:
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ć uwzględniane w bazie danych.
Baza danych jest logicznie koherentnym zbiorem danych z jakimś spójnym znaczeniem. Przy-
•
padkowy zbiór danych nie jest prawidłową bazą danych i nie należy dla niego stosować tego
określenia.
Baza danych jest projektowana, konstruowana i wypełniana danymi w określonym celu. Do bazy
•
danych powinna być przypisana grupa docelowych użytkowników oraz z góry przyjęte zastoso-
wania, które będą realizowane przez tych użytkowników.
Innymi słowy, każda baza danych powinna mieć pewne źródło, z którego będą pochodzić prze-
chowywane dane, pewien stopień interakcji ze zdarzeniami mającymi miejsce w reprezentowanym
przez nią wycinku świata rzeczywistego oraz użytkowników, którzy są aktywnie zainteresowani
jej zawartością.
Bazy danych mogą mieć dowolne rozmiary i zróżnicowane poziomy złożoności. Przykładowo,
wspominana już lista nazwisk i adresów może się składać tylko z kilku tysięcy rekordów, z których
każdy ma stosunkowo prostą strukturę. Z drugiej strony, skomputeryzowany katalog zbiorów
wielkiej biblioteki może się składać z pół miliona wpisów zorganizowanych w różnych katego-
riach (według nazwiska autora, tematu, tytułu itp.), które są z kolei uporządkowane w kolejności
alfabetycznej. Jeszcze większa i bardziej skomplikowana baza danych jest utrzymywana przez
amerykański urząd skarbowy (Internal Revenue Service), który przechowuje formularze podatkowe
wypełniane przez podatników na terenie całych Stanów Zjednoczonych. Jeśli przyjmiemy, że takich
1.2. PRZYKŁAD
23
podatników jest 100 milionów i rekord dla każdego z nich zawiera średnio pięć formularzy po 400
6
znaków informacji, otrzymamy bazę danych zawierającą 100×10
×400×5 znaków (bajtów) informacji.
Gdyby okazało się, że amerykański urząd skarbowy przechowuje dodatkowo dla każdego podatnika po
trzy formularze nadesłane w przeszłości (poza formularzem tegorocznym), otrzymalibyśmy bazę danych
zawierającą aż 8×10
bajtów (800 gigabajtów) informacji. Tak ogromna ilość informacji musi być
zorganizowana i zarządzana w taki sposób, aby użytkownicy mogli tę bazę danych przeszukiwać,
uzyskiwać interesujące ich informacje oraz — w razie potrzeby — aktualizować istniejące zapisy.
11
Baza danych może być generowana i utrzymywana ręcznie lub może zostać całkowicie skom-
puteryzowana. Przykładowo, katalog kart bibliotecznych jest tym rodzajem bazy danych, który
można stworzyć i utrzymywać bez pomocy komputerów. Skomputeryzowane bazy danych mogą
być tworzone i utrzymywane zarówno za pomocą grupy programów napisanych specjalnie z myślą
o tym zadaniu, jak i przez uniwersalny system zarządzania bazą danych. W tej książce będziemy
się oczywiście skupiali wyłącznie na skomputeryzowanych bazach danych.
System zarządzania bazą danych (w skrócie SZBD, ang. Database Management System —
DBMS) jest zbiorem programów, które umożliwiają tworzenie i utrzymywanie bazy danych. SZBD jest
więc uniwersalnym systemem programowym, który ułatwia definiowanie, konstruowanie, manipulowa-
nie i udostępnianie baz danych różnym użytkownikom i aplikacjom. Definiowanie bazy danych
wiąże się z określaniem typów i struktur danych oraz ograniczeń dla przechowywanych informa-
cji. Konstruowanie bazy danych jest kontrolowanym przez SZBD procesem umieszczania w niej
właściwych informacji na jakimś medium przechowywania. Manipulowanie bazą danych obej-
muje takie działania jak wykonywanie zapytań wyciągających z bazy określone informacje, aktu-
alizowanie bazy danych w taki sposób, aby zawarte w niej informacje odzwierciedlały rzeczywisty
stan reprezentowanego mini-świata, oraz generowanie raportów na podstawie informacji zawartych
w bazie danych. Udostępnianie bazy danych umożliwia wielu użytkownikom i programom jedno-
czesne operowanie na zawartych w niej informacjach.
Do pozostałych funkcji oferowanych przez systemy zarządzania bazami danych należy ochrona
bazy danych oraz konserwowanie jej przez długi okres czasu. Proces ochrony bazy danych obej-
muje zarówno ochronę systemową przed niewłaściwym działaniem (lub awariami) sprzętu oraz
oprogramowania, jak i zabezpieczanie przed nieuprawnionym dostępem. Cykl życia wielkich baz
danych może trwać wiele lat, zatem systemy zarządzania takimi bazami danych muszą umożliwiać
ich konserwowanie, tak aby możliwe było dostosowywanie ich do ewoluujących wymagań.
Implementowanie skomputeryzowanych baz danych wcale nie wymaga stosowania uniwer-
salnego oprogramowania typu SZBD. Możemy przecież napisać własny zbiór programów tworzących
i utrzymujących naszą bazę danych, tworząc tym samym własne, specyficzne oprogramowanie
typu SZBD. W obu przypadkach (a więc niezależnie od tego, czy zdecydowaliśmy się wykorzystać
uniwersalny SZBD) musimy zwykle wdrożyć w docelowym systemie komputerowym dość skom-
plikowany pakiet oprogramowania. W rzeczywistości większość systemów zarządzania bazami
danych jest bardzo skomplikowanymi systemami oprogramowania.
Aby prezentowany w tym podrozdziale zbiór definicji wprowadzających był kompletny, musimy
jeszcze określić, czym jest system bazy danych — otóż jest to połączenie samej bazy danych z opro-
gramowaniem SZBD. Rysunek 1.1 ilustruje niektóre spośród omówionych do tej pory zagadnień.
1.2. Przykład
Przeanalizujmy teraz prosty przykład, który większości czytelników tej książki może wydać się
znajomy — chodzi o bazę danych 70+9 45;6 6 reprezentującą informacje dotyczące studentów,
przedmiotów i ocen w środowisku wyższej uczelni. Na rysunku 1.2 przedstawiono strukturę bazy
24
1. BAZY DANYCH I ICH UŻYTKOWNICY
RYSUNEK 1.1.
Uproszczone
środowisko systemu
bazy danych
1
danych wraz z kilkoma przykładowymi informacjami wypełniającymi poszczególne tabele. Pre-
zentowana baza danych składa się z pięciu plików, z których każdy zawiera rekordy danych tego
. Plik 567 06 zawiera dane na temat poszczególnych studentów, plik 24 /+16 —
samego typu
na temat poszczególnych przedmiotów, plik -745 — na temat poszczególnych kursów z odpo-
wiednich przedmiotów, plik 4#2146A1 0 zawiera dane na temat ocen uzyskanych przez studentów
podczas zaliczania poszczególnych kursów, natomiast plik 9;/#)#0+ A956ù20 — informacje o wy-
maganiach odnośnie do zaliczonych zajęć przed uzyskaniem możliwości uczestnictwa w zajęciach
z poszczególnych przedmiotów.
Aby zdefiniować taką bazę danych, musimy określić strukturę rekordów przechowywanych
w każdym z plików przez sprecyzowanie różnych typów elementów danych, które mają być prze-
chowywane w kolejnych rekordach. Na rysunku 1.2 każdy rekord pliku 567 06 zawiera dane repre-
zentujące nazwisko studenta (element danych Nazwisko), numer indeksu (element danych Numer-
Indeksu), rok studiów (element danych RokSt, który może zawierać takie wartości jak pierwszy lub 1,
Drugi lub 2, …) oraz kierunek (element danych Kierunek, który może zawierać takie wartości jak
MAT, Informatyka lub INF, …). Każdy rekord pliku 24 /+16 zawiera dane reprezentujące nazwę
przedmiotu (element danych NazwaPrzedmiotu), identyfikator przedmiotu (element danych Numer-
Przedmiotu), liczbę godzin tygodniowo (element danych Godziny) oraz wydział, na którym dany
przedmiot jest wykładany (element danych Wydział), itd. Dla każdego takiego elementu danych
wewnątrz rekordu musimy także określić typ danych. Przykładowo, możemy określić, że element
danych Nazwisko w pliku 567 06 jest ciągiem znaków alfabetu, element danych NumerIndeksu w tym
i
1 Wykorzystujemy w tym miejscu pojęcie pliku w sposób nieformalny. Na poziomie koncepcyjnym plik
jest zbiorem rekordów, które mogą (choć nie muszą) być uporządkowane.
1.2. PRZYKŁAD
25
RYSUNEK 1.2.
Baza danych
zawierająca
informacje
o studentach
i przedmiotach
samym pliku jest liczbą całkowitą, natomiast element danych Ocena w pliku 4#2146A1 0 jest poje-
dynczą wartością ze zbioru {5, 4, 3, 2}. Do reprezentowania wartości poszczególnych elementów
danych możemy także użyć odpowiedniego schematu kodowania. Przykładowo, w widocznym na
rysunku 1.2 elemencie danych RokSt w pliku 567 06 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 Piąty — studenta piątego roku.
Aby skonstruować bazę danych 70+9 45;6 6, zapisujemy dane, które mają reprezentować po-
szczególnych studentów, przedmioty, kursy, oceny i wymagania w postaci rekordu w odpowiednim
pliku. Łatwo zauważyć, że rekordy w różnych plikach mogą być ze sobą powiązane. Przykładowo,
rekord Nowak w pliku 567 06 może być powiązany z dwoma rekordami w pliku 4#2146A1 0,
który przechowuje oceny, jakie student o takim nazwisku uzyskał z dwóch zaliczanych przezeń
kursów. Podobnie, każdy rekord w pliku 9;/#)#0+ A956ù20 jest związany z dwoma rekordami
26
1. BAZY DANYCH I ICH UŻYTKOWNICY
reprezentującymi dwa różne przedmioty: przedmiot, dla którego zdefiniowano dane wymaganie,
oraz przedmiot, którego zaliczenie stanowi warunek uczestnictwa w zajęciach z pierwszego przed-
miotu. Większość średnich i wielkich baz danych składa się z wielu typów rekordów i zawiera wiele
związków pomiędzy tymi rekordami.
Manipulowanie bazą danych wiąże się z wykonywaniem zapytań i aktualizacją zawartych w niej
informacji. Przykładowo, zapytania mogą mieć następującą postać: „wygeneruj listę wszystkich
przedmiotów, w których uczestniczył student o nazwisku Nowak, wraz z uzyskanymi ocenami”,
„wygeneruj listę nazwisk studentów, którzy brali udział w zajęciach 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 należy spełnić przed przystąpieniem do zajęć z przedmiotu
Bazy danych?”. Przykładowe instrukcje aktualizujące mogą natomiast mieć postać: „zmień rok
studiów studenta Nowak na drugi (Drugi)”, „stwórz nowy kurs dla przedmiotu Bazy danych prowa-
dzonego w bieżącym 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 aktualizujących wymaga oczywiście nadania im postaci precy-
zyjnych poleceń zapisanych w języku zapytań, który jest obsługiwany w wykorzystywanym sys-
temie zarządzania bazą danych.
1.3. Właściwości rozwiązań opartych na bazach danych
Wiele unikatowych właściwości odróżnia rozwiązania oparte na bazach danych od tradycyjnych
metod programowania aplikacji wykorzystujących pliki z danymi. W tradycyjnym przetwarzaniu
plików każdy użytkownik definiuje i implementuje pliki, które są mu potrzebne do konkretnego
zastosowania danego programu, i czynność ta stanowi jeden z elementów programowania tego zasto-
sowania. Przykładowo, jeden użytkownik — przyjmijmy, że jest to dziekanat — może utrzymy-
wać plik z informacjami o studentach i uzyskanych przez nich ocenach. Programy drukujące listy
studentów i umożliwiające wpisywanie do pliku nowych ocen są implementowane w postaci jed-
nego z elementów tego zastosowania. Drugi użytkownik — niech to będzie tym razem dział księ-
gowości — może zarządzać przyznawaniem i wypłacaniem stypendiów. Chociaż oba podmioty są
zainteresowane danymi na temat studentów, każdy utrzymuje własne pliki (wraz z programami
operującymi na tych plikach), ponieważ każdy z tych podmiotów wymaga pewnych danych, które
nie są dostępne w plikach utrzymywanych przez pozostałe podmioty. Efektem tej nadmiarowości
w definiowaniu i przechowywaniu danych jest niepotrzebna strata wykorzystywanej przestrzeni
oraz zwiększony koszt utrzymywania aktualnych informacji.
Typowe rozwiązanie oparte na bazie danych przewiduje, że utrzymywane jest tylko jedno repo-
zytorium danych, które, raz utworzone, jest udostępniane wielu różnym użytkownikom. Poniżej
przedstawiono główne cechy odróżniające rozwiązania oparte na bazach danych od rozwiązań
opartych na przetwarzaniu plików:
samoopisująca natura systemów baz danych,
•
oddzielenie programów od danych oraz abstrakcja danych,
•
obsługa wielu perspektyw dla tych samych danych,
•
współdzielenie danych oraz przetwarzanie transakcji.
•
W poniższych punktach opiszemy oddzielnie każdą z tych właściwości. Dodatkowe omówienie
własności systemów baz danych można znaleźć w podrozdziałach 1.6 i 1.8.
1.3. WŁAŚCIWOŚCI ROZWIĄZAŃ OPARTYCH NA BAZACH DANYCH
27
1.3.1. Samoopisująca natura systemów baz danych
Podstawowa właściwość rozwiązań opartych na stosowaniu baz danych określa, że system bazy danych
zawiera nie tylko samą bazę danych, ale także kompletną definicję lub opis jej struktury i ograni-
czeń. Wspomniana definicja jest przechowywana w katalogu systemu zarządzania bazą danych
(SZBD), który zawiera informacje odnośnie do struktury poszczególnych plików, typu i formatu prze-
chowywania poszczególnych elementów danych oraz rozmaitych ograniczeń nałożonych na te dane.
Informacje przechowywane w katalogu są często nazywane metadanymi. Metadane zawsze opi-
sują strukturę głównej bazy danych (patrz rysunek 1.1).
Katalog jest wykorzystywany nie tylko przez oprogramowanie systemu zarządzania bazą danych,
ale także przez jej użytkowników, którzy potrzebują informacji na temat struktury bazy danych.
Uniwersalne pakiety programowe SZBD nie są tworzone z myślą o konkretnych zastosowaniach
baz danych, a więc muszą się odwoływać do katalogów celem uzyskania informacji o strukturze
plików w konkretnych bazach danych (np. aby dysponować niezbędną wiedzą na temat typu i for-
matu danych, które mają zostać odczytane lub zapisane). Oprogramowanie systemu zarządzania bazą
danych, które wykorzystuje katalog do przechowywania definicji baz danych, musi się sprawdzać
tak samo dobrze we wszystkich możliwych zastosowaniach obsługiwanych baz danych — niezależ-
nie od tego, czy jest to baza danych uniwersytetu, banku, czy jakiegokolwiek innego podmiotu.
W tradycyjnym modelu przetwarzania plików definicja danych jest zwykle częścią samych
aplikacji wykorzystywanych do ich obsługi. Oznacza to, że możliwości tych programów ograni-
czają się do pracy tylko z jedną bazą danych, której struktura została w nich z góry zadeklarowana.
Przykładowo, aplikacja napisana w języku programowania C++ może zawierać deklaracje struktur
lub klas, natomiast program napisany w języku COBOL może wykorzystywać do definiowania
swoich plików instrukcji Data Division. O ile oprogramowanie przetwarzające pliki może uzyski-
wać dostęp wyłącznie do określonych baz danych, oprogramowanie systemów zarządzania bazami
danych może obsługiwać rozmaite bazy danych przez odczytywanie i odpowiednie wykorzysty-
wanie ich definicji zawartych w katalogu.
W przykładzie zaprezentowanym na rysunku 1.2 katalog wykorzystywanego systemu SZBD
będzie przechowywał definicje wszystkich przedstawionych plików. Takie definicje są tworzone
i umieszczane w katalogu przez projektanta bazy danych, zanim jeszcze przystąpi do jej tworzenia.
Za każdym razem, gdy do systemu zarządzania bazą danych dociera żądanie dostępu, np. wartości
elementu danych Nazwisko rekordu w pliku 567 06, oprogramowanie tego systemu odwołuje się do
katalogu, aby określić strukturę pliku 567 06 oraz pozycję i rozmiar elementu danych Nazwisko
wewnątrz danego rekordu. Zupełnie inaczej byłoby w przypadku typowej aplikacji przetwarzającej
pliki, gdzie struktura pliku i — w ekstremalnej sytuacji — także dokładne położenie elementu danych
Nazwisko wewnątrz rekordu 567 06 są na stałe zakodowane wewnątrz każdego programu, który
może uzyskać dostęp do składowanych w ten sposób informacji.
1.3.2. Oddzielenie programów od danych oraz abstrakcja danych
W tradycyjnej metodzie przetwarzania plików struktura plików z danymi jest umieszczana w wyko-
rzystywanych programach, zatem wszystkie ewentualne zmiany tej struktury mogą wymagać odpo-
wiedniego zmodyfikowania wszystkich programów, które uzyskują dostęp do danego pliku. Zupełnie
inaczej jest w przypadku programów wykorzystujących pośrednictwo systemów zarządzania bazami
danymi, które w większości podobnych sytuacji nie wymagają tego typu dodatkowych zmian.
Struktura plików z danymi jest przechowywana w specjalnym katalogu systemu SZBD, dzięki czemu
jest oddzielona od programów dostępowych. Taki model nazywamy niezależnością programu od
danych. Przykładowo, pewien program uzyskujący dostęp do pliku mógłby zostać napisany w taki
28
1. BAZY DANYCH I ICH UŻYTKOWNICY
sposób, że będzie mógł pracować wyłącznie z rekordami pliku 567 06, których struktura jest
identyczna jak ta przedstawiona na rysunku 1.3. Jeśli uznamy za konieczne dodanie kolejnego
elementu danych do każdego rekordu w tym pliku, np. reprezentujący datę urodzenia element
DataUrodzenia, tak skonstruowany program nie będzie mógł dłużej działać i najprawdopodobniej
konieczna będzie ingerencja w jego kod źródłowy. Gdybyśmy zamiast tego programu użyli śro-
dowiska SZBD, musielibyśmy jedynie zmienić w katalogu opis rekordów pliku 567 06 w taki
sposób, aby uwzględniały dodanie nowego elementu danych DataUrodzenia — zmiana struktury
nie pociągałaby więc za sobą konieczności dodatkowych modyfikacji żadnego programu. Już pod-
czas następnego odwołania programu SZBD do zmienionego katalogu zostałaby odczytana i wyko-
rzystana nowa struktura rekordów pliku 567 06.
RYSUNEK 1.3. Wewnętrzny format przechowywania dla rekordu z pliku STUDENT
W niektórych typach systemów baz danych, np. w systemach obiektowych i obiektowo-relacyj-
nych (patrz rozdziały 20. i 22.), to użytkownicy mogą (w ramach definiowania baz danych) okre-
ślać możliwe operacje na danych. Taka operacja (nazywana także funkcją lub metodą) składa się
z dwóch elementów. Pierwszym z nich jest interfejs (nazywany często sygnaturą), który zawiera
nazwę operacji oraz typy danych jej argumentów (nazywanych także parametrami). Drugim jest
implementacja (metoda), która jest definiowana osobno i może być zmieniana bez konieczności
modyfikowania odpowiadającego jej interfejsu. Aplikacje użytkownika mogą operować na danych
przez wywoływanie tak zdefiniowanych operacji poprzez ich nazwy i argumenty, niezależnie od
tego, w jaki sposób te operacje zostały zaimplementowane. Można taki model nazwać niezależno-
ścią programu od operacji.
Właściwość, która umożliwia zapewnienie niezależności programu od danych oraz niezależ-
ności programu od operacji, jest nazywana abstrakcją danych. Systemy zarządzania bazami da-
nych udostępniają użytkownikom koncepcyjną reprezentację danych, która nie zawiera wielu
szczegółów związanych z wykorzystywanymi technikami przechowywania danych oraz implemen-
tacji operacji. Nieformalnie można przyjąć, że jednym z typów abstrakcji danych jest model danych,
stosowany do zapewniania właśnie reprezentacji koncepcyjnej. Model danych wykorzystuje takie
logiczne pojęcia jak obiekty, ich własności oraz ich wewnętrzne relacje, które dla wielu użytkow-
ników są bardziej zrozumiałe od pojęć związanych z przechowywaniem danych na współczesnych
komputerach. Oznacza to, że model danych ukrywa szczegóły przechowywania i implementacji
danych, które nie są przedmiotem zainteresowania dla większości użytkowników baz danych.
Przykładowo, przeanalizujmy ponownie strukturę bazy danych przedstawioną na rysunku 1.2.
Wewnętrzna implementacja pliku może być zdefiniowana za pomocą długości jego rekordów —
liczby znaków (bajtów) w każdym rekordzie — natomiast każdy z wykorzystywanych elementów
danych może zostać określony za pomocą jego bajtu początkowego wewnątrz odpowiedniego rekordu
oraz długości (także wyrażonej w bajtach). Rekord z pliku 567 06 byłby w takim przypadku repre-
zentowany w taki sam sposób, jak to przedstawiono na rysunku 1.3. Typowego użytkownika bazy
danych nie interesują jednak ani dokładne miejsce przechowywania poszczególnych elementów danych
wewnątrz rekordu, ani jego rzeczywista długość; zamiast tego, taki użytkownik oczekuje przede
wszystkim tego, aby po odwołaniu się do elementu Nazwisko wybranego rekordu w pliku 567 06
została zwrócona prawidłowa wartość. Koncepcyjną reprezentację rekordów w pliku 567 06 przed-
stawiono na rysunku 1.2. Wiele innych szczegółów organizacji plików z danymi (w tym zdefiniowanych
1.3. WŁAŚCIWOŚCI ROZWIĄZAŃ OPARTYCH NA BAZACH DANYCH
29
dla niego ścieżek dostępu) można ukryć przed użytkownikami baz danych dzięki odpowiednim me-
chanizmom systemu zarządzania bazami danych (szczegóły związane z przechowywaniem danych
omówimy w rozdziałach 13. i 14.).
W typowym rozwiązaniu opartym na bazie danych szczegółowa struktura i organizacja po-
szczególnych plików jest przechowywana w katalogu. Użytkownicy bazy danych i obsługujących ją
aplikacji odwołują się jedynie do koncepcyjnej reprezentacji tych plików, a za wydobywanie z katalogu
szczegółów związanych z przechowywaniem plików odpowiadają stosowne moduły dostępu uży-
wanych systemów zarządzania bazami danych. Do zapewniania abstrakcji danych użytkownikom
baz danych można wykorzystywać rozmaite modele danych. Znaczna część tej książki jest poświę-
cona prezentacji różnych modeli danych i stosowanym w nich mechanizmom abstrahowania repre-
zentacji danych.
W obiektowych i obiektowo-relacyjnych bazach danych proces abstrahowania obejmuje nie
tylko struktury danych, ale także zdefiniowane dla nich operacje. Takie operacje stanowią abstrakcję
dla czynności w reprezentowanym przez bazę danych mini-świecie, które zwykle są łatwiejsze do
zrozumienia dla zwykłych użytkowników. Przykładowo, do obliczania średniej ocen wskazanego
obiektu z pliku 567 06 może służyć operacja 1$.+ AĦ41 . Operacje takie jak ta mogą być wywoły-
wane przez użytkownika za pomocą odpowiednich zapytań (lub za pośrednictwem aplikacji ob-
sługujących bazę danych) bez znajomości szczegółów dotyczących sposobu zaimplementowania
wykonywanych działań. W tym sensie abstrakcja czynności z reprezentowanego mini-świata jest
udostępniana użytkownikowi jako operacja abstrakcyjna.
1.3.3. Obsługa wielu perspektyw dla tych samych danych
Typowa baza danych ma wielu użytkowników, z których każdy może potrzebować dostępu do innej
perspektywy (ang. view) dla tej bazy danych. Perspektywa może być albo podzbiorem bazy danych,
albo może zawierać dane wirtualne, które zostały wywiedzione z plików bazy danych, gdzie są
przechowywane w nieco innej postaci (dane wirtualne same w sobie nie są więc trwale składowane
w bazie danych). Niektórzy użytkownicy w ogóle nie muszą wiedzieć, czy dane, do których się
odwołują, faktycznie są przechowywane w takiej postaci w bazie danych, czy są z niej jedynie w od-
powiedni sposób wywiedzione (w procesie tworzenia perspektywy). Wielodostępny system zarzą-
dzania bazą danych, który jest wykorzystywany przez użytkowników do odmiennych celów, musi
zapewniać mechanizmy ułatwiające definiowanie wielu różnych perspektyw. Przykładowo, jeden
z użytkowników bazy danych przedstawionej na rysunku 1.2 może być zainteresowany wyłącznie
dostępem z możliwością drukowania do listy studentów wraz z
Pobierz darmowy fragment (pdf)