Wprowadzenie
Integralność bazy danych oznacza poprawność, spójność i wiarygodność przechowywanych informacji. W dobrze zaprojektowanej bazie dane są ze sobą logicznie powiązane, nie zawierają sprzeczności i odpowiadają rzeczywistości, którą opisują.
W praktyce jednak mogą pojawić się sytuacje, w których integralność bazy zostaje naruszona. Może to wynikać z błędów użytkowników, nieprawidłowych operacji na danych, błędów w aplikacji lub niewłaściwego zarządzania strukturą bazy.
Dlatego ważnym zadaniem administratora lub projektanta bazy danych jest wykrywanie naruszeń integralności, czyli identyfikowanie sytuacji, w których dane przestają być spójne lub poprawne.
Cele lekcji
Po tej lekcji uczeń powinien:
- rozumieć pojęcie integralności bazy danych,
- znać najczęstsze przyczyny naruszeń integralności,
- potrafić rozpoznać sytuacje, w których integralność danych została naruszona,
- umieć opisać proces wykrywania niespójności w bazie danych.
Czym jest integralność bazy danych
Integralność bazy danych oznacza, że dane przechowywane w systemie są:
- poprawne,
- spójne,
- zgodne z określonymi regułami.
Reguły te wynikają z projektu bazy danych oraz zasad obowiązujących w danym systemie informatycznym.
Jeżeli dane naruszają te zasady, mówimy o naruszeniu integralności bazy danych.
Rodzaje integralności w bazach danych
Integralność encji
Integralność encji dotyczy jednoznacznej identyfikacji rekordów w tabeli. Każdy rekord powinien posiadać klucz główny, który go jednoznacznie identyfikuje.
Naruszenie tej zasady może wystąpić, gdy:
- w tabeli pojawią się dwa rekordy o tym samym identyfikatorze,
- klucz główny przyjmie wartość pustą,
- rekord nie posiada poprawnego identyfikatora.
Takie sytuacje powodują problemy z identyfikacją danych w systemie.
Integralność referencyjna
Integralność referencyjna dotyczy relacji między tabelami. Jej celem jest zapewnienie, że rekordy powiązane ze sobą w różnych tabelach faktycznie istnieją.
Naruszenie integralności referencyjnej może wystąpić, gdy:
- rekord w jednej tabeli odwołuje się do rekordu, który nie istnieje w innej tabeli,
- usunięto rekord nadrzędny, pozostawiając rekordy zależne.
Przykładem może być sytuacja, w której tabela zamówień zawiera identyfikator klienta, który nie istnieje w tabeli klientów.
Integralność domeny
Integralność domeny dotyczy poprawności wartości przechowywanych w kolumnach tabeli. Każda kolumna powinna przechowywać dane zgodne z określonym typem oraz zakresem wartości.
Naruszenie integralności domeny może wystąpić, gdy:
- w kolumnie przechowywana jest wartość niezgodna z typem danych,
- pojawiają się wartości spoza dozwolonego zakresu,
- dane nie spełniają określonych reguł logicznych.
Na przykład w kolumnie przechowującej wiek pojawia się wartość ujemna.
Przyczyny naruszeń integralności
Do najczęstszych przyczyn naruszeń integralności bazy danych należą:
- błędy użytkowników podczas wprowadzania danych,
- niepoprawne operacje modyfikacji danych,
- błędy w aplikacjach korzystających z bazy,
- brak odpowiednich ograniczeń w strukturze bazy,
- ręczna ingerencja w dane bez zachowania zasad spójności.
W dużych systemach nawet niewielkie błędy mogą prowadzić do poważnych problemów z poprawnością danych.
Wykrywanie naruszeń integralności
Proces wykrywania naruszeń integralności polega na analizie danych i relacji w bazie w celu znalezienia niespójności.
Podczas takiej analizy należy zwrócić uwagę na:
- rekordy bez poprawnych identyfikatorów,
- rekordy odwołujące się do nieistniejących danych,
- wartości niezgodne z typem lub zakresem kolumny,
- dane sprzeczne logicznie.
W praktyce wykrywanie naruszeń może być realizowane poprzez:
- analizę struktury bazy danych,
- kontrolę relacji między tabelami,
- przeglądanie danych pod kątem nieprawidłowych wartości,
- stosowanie odpowiednich ograniczeń i mechanizmów kontroli.
Znaczenie wykrywania naruszeń integralności
Regularne sprawdzanie integralności bazy danych jest bardzo ważne, ponieważ pozwala:
- utrzymać wysoką jakość danych,
- zapobiegać błędom w raportach i analizach,
- zwiększyć bezpieczeństwo systemu informatycznego,
- uniknąć problemów w działaniu aplikacji korzystających z bazy danych.
Wykrycie problemu na wczesnym etapie pozwala szybko naprawić niespójności i przywrócić poprawność bazy danych.
Ćwiczenie opisowe
Wyobraź sobie bazę danych systemu bibliotecznego, która zawiera tabele przechowujące informacje o książkach, czytelnikach oraz wypożyczeniach.
Podczas analizy bazy danych zauważono kilka problemów:
- w tabeli wypożyczeń znajdują się rekordy odnoszące się do czytelników, którzy nie istnieją w tabeli czytelników,
- w tabeli książek pojawiły się rekordy bez identyfikatora,
- w kolumnie przechowującej rok wydania książki znajdują się wartości ujemne.
Opisz, jakie rodzaje naruszeń integralności wystąpiły w tej bazie danych oraz w jaki sposób można je wykryć i przeanalizować. Uwzględnij w odpowiedzi różne typy integralności bazy danych.