Wróć do informacji o e-podręczniku Wydrukuj Pobierz materiał do PDF Pobierz materiał do EPUB Pobierz materiał do MOBI Zaloguj się, aby dodać do ulubionych Zaloguj się, aby skopiować i edytować materiał Zaloguj się, aby udostępnić materiał Zaloguj się, aby dodać całą stronę do teczki

System zarządzania bazami danych (DBMS) to bardzo złożone i kompleksowe oprogramowanie. Zadaniem takiego systemu jest przecież między innymi zagwarantowanie bezpieczeństwa oraz poprawności (dokładności, prawdziwości) przechowywanych w bazie informacji. Nie jest to wcale łatwe.

System bazodanowy musi bez przerwy dbać o to, aby żadna nieupoważniona osoba nie uzyskała dostępu do zgromadzonych danych, ani tym bardziej nie mogła dokonać w nich zmian.

Poza tym systemy bazodanowe realizują setki tysięcy kwerend na zgromadzonym zbiorze danych. Informacje mogą ulec zniekształceniu wskutek przetworzenia zapisanych w języku SQL zapytań dodających, zmieniających lub usuwających rekordy. Dotyczy to zwłaszcza sytuacji, w której między rekordami istnieją powiązania (relacje).

Wiemy też, że współczesne systemy bazodanowe często zapewniają użytkownikom znajdującym się w różnych miejscach na świecie równoczesny (współbieżny) dostęp do tej samej informacji – łatwo w takim przypadku o pojawienie się błędów logicznych w zbiorze danych.

Zdarza się, że serwery ulegają awariom sprzętowym i część informacji może zostać utracona. Potrzebne jest wówczas przywrócenie danych z kopii zapasowej (o ile, oczywiście, dysponujemy duplikatem). Pojawia się jednak pytanie, na ile informacje zgromadzone w zapisanej wcześniej kopii są aktualne.

Dlaczego integralność jest ważna?

Konsekwencje ewentualnych braków albo przekłamań pojawiających się w rekordach odczujemy w świecie rzeczywistym. Klient sklepu internetowego zdziwi się, otrzymując artykuł, którego nie zamawiał, użytkownik banku zdenerwuje się niepoprawnym saldem rachunku, zaś architekt projektujący dom otrzyma niewłaściwe wyniki obliczeń wytrzymałości konstrukcji.

Systemy bazodanowe były wykorzystywane się podczas wysyłania ludzi na Księżyc – błędne wartości w przetwarzanych parametrach misji Apollo mogły zadecydować o ludzkim życiu.

Bazy danych spotkamy w wielu dziedzinach współczesnego życia – niewłaściwe działanie systemów DBMS, bądź postępująca czasowo samodegradacja zbioru informacji prowadzić może do poważnych konsekwencji. Z tego właśnie powodu ważnym pojęciem dla odpowiedzialnego programisty jest integralność (lub inaczej spójność) danych.

Czym jest integralność (spójność)?

Gdy już zdajemy sobie sprawę z faktu, że tworzone przez nas oprogramowanie bazodanowe nie może zezwolić na utratę spójności przechowywanego zbioru danych, wyjaśnijmy, czym integralność jest i co oznacza w praktyce.

Integralność (spójność) danych
Definicja: Integralność (spójność) danych

Właściwość zbioru informacji, która gwarantuje, że dane nie mogą zostać usunięte, zniekształcone bądź zmienione w nieautoryzowany sposób lub podczas wykonywania na nich operacji. Ochrona integralności jest jedną z podstawowych funkcji systemu zarządzania bazami danych (DBMS).

Aby spójność danych znajdujących się w bazie była zachowana, potrzebne jest uwzględnienie dwóch głównych kryteriów: dokładnościdokładnośćdokładności oraz prawdziwościprawdziwośćprawdziwości informacji.

Dokładność

Informacje zgromadzone w bazie danych stanowią model rzeczywistości, czyli reprezentację pewnego fragmentu otaczającego nas świata. Dokładność oznacza przechowanie informacji jednoznacznie odzwierciedlających stan oraz zachowanie reprezentowanego obiektu, odrzucając wzajemnie wykluczające się scenariusze logiczne oraz konflikty typu (rodzaju) przechowywanej wartości.

Prawdziwość

Zbiór informacji musi zawierać dane aktualne, czyli odpowiednio zmieniające się wskutek zmian zachodzących w modelowanej rzeczywistości. Wymóg prawdziwości danych narzuca więc systemowi zarządzania bazą danych konieczność istnienia mechanizmów bezpiecznego aktualizowania zgromadzonych rekordów.

W wielu ujęciach tematu integralności, dokonuje się także rozszerzenia tego wymogu na dwa osobne kryteria: prawdziwość oraz aktualność danych. Takie ujęcie ma podkreślić fakt, iż informacje pierwotnie prawdziwe mogą wskutek zaistniałych zmian przestać być aktualne.

Niezależnie jednak od przyjętej nomenklatury, sens kryterium jest jasny: zbiór informacji nie jest spójny, jeśli dane nie odpowiadają modelowanej rzeczywistości, szczególnie, że jej stan może ulegać zmianom.

Metody zapewnienia integralności

Zapewnienie integralności danych realizowane jest przez wiele mechanizmów wbudowanych w DBMS. Dbałość o spójność zbioru informacji realizujemy w trzech najważniejszych kontekstach:

  • integralność semantyczna – ograniczenia typu (rodzaju, dziedziny, domeny) przechowywanych w tabelach informacji oraz sposób zachowania systemu w przypadku braku przypisania wartości atrybutowi rekordu,

  • integralność encji – zgodność z zadeklarowanym schematem bazy, czyli przede wszystkim unikatowość rekordów, realizowana mechanizmami kluczy głównych (UNIQUE, NOT NULL) oraz ewentualną autoinkrementacją,

  • integralność referencyjna – utrzymanie poprawności powiązań (relacji) między obiektami, realizowana mechanizmami kluczy obcych (z uwzględnieniem problemu pustej wartości NULL).

W każdym z tych trzech kontekstów system bazodanowy realizuje własne wbudowane funkcje, które w długim okresie mają zapewnić zbiorowi informacji spójność. W drugim etapie omówienia tematu integralności poznamy i sprawdzimy kilka popularnych mechanizmów, aby zobaczyć ich ochronne działanie podczas zastosowania na konkretnym zbiorze danych.

Więzy integralności

Szczególnym rodzajem ograniczeń, które można nałożyć na dane, są tzw. więzy integralności. Zapobiegają one powstawaniu rekordów nieprawidłowych lub odłączonych, czyli niespełniających wszystkich istniejących odwołań między atrybutami tabel.

W programie MS Access, podczas definiowania relacji (powiązań) między atrybutami tabel, można aktywować opcję Wymuszaj więzy integralności. Włączenie tego ustawienia powoduje automatyczne odrzucanie wszystkich operacji, które naruszyłyby spójność odwołań. W etapie drugim omówienia tematu integralności zobaczymy zastosowanie wspomnianej funkcji programu MS Access w praktyce oraz omówimy szczegółowo działanie tej funkcji.

Teraz poznajmy natomiast podział więzów integralności na dwa główne rodzaje:

  • więzy statyczne – ograniczenia stanu bieżącego, wykluczające niedopuszczalne wartości – na przykład sprawdzenie reguły: „pensja pracownika jest większa niż zero”,

  • więzy dynamiczne – ograniczenia przejść między stanami, przeciwdziałające niedopuszczalnym zmianom – na przykład sprawdzenie reguły: „wiek pracownika nie może maleć”. W wielu ujęciach tematu integralności nazywane także więzami przejść.

Słownik

dokładność
dokładność

właściwość zbioru informacji, zapewniająca że zgromadzone dane jednoznacznie (dokładnie) odzwierciedlają modelowaną rzeczywistość (stan oraz zachowanie obiektów)

prawdziwość
prawdziwość

właściwość zbioru informacji, zapewniająca że zgromadzone dane pozostają prawdziwe, czyli ulegają aktualizacji wskutek ewentualnych zmian zaistniałych w modelowanej rzeczywistości