Education
Register
Advertisement

Integralność bazy danych stanowi o tym, czy dany stan bazy jest dopuszczalny (poprawny) czy nie. Obejmuje spojność logiczną danych i zgodność danych ze stanem świata jaki te dane opisują. Integralność jest związana ze zmianami jakie zachodzą w bazie danych. Zmiany mogą być spowodowane zdarzeniami zewnętrznymi (aplikacja użytkownika) i wewnętrznymi (operacje serwera bazy danych) - zwanymi transakcjami. Zachowanie poprawności danych i związków między nimi realizuje się poprzez:

  • definiowanie więzów integralności: definiowanie warunków, jakie muszą spełniać wartości atrybutów obiektów należących do danej klasy. Każdorazowo po modyfikacji atrybutu sprawdzany jest warunek jego poprawności. Jeśli operacja narusza więzy generowany jest błąd a operacja jest anulowana. Więzy integralności dzielimy na:
    • integralność encji - każda tabela powinna mieć klucz główny o wartościach unikatowych i nie będących NULL (UNIQUE, NOT NULL). Z tego wynika fakt, że w danej tabeli nie mogą istnieć dwa identyczne wiersze.
    • integralność krotki - każda krotka opisuje jeden element świata rzeczywistego. Na wartości krotki można nałożyć wewnętrzne więzy (ograniczenia), które muszą być spełnione przez wszystkie krotki niezależnie (np. zawężenie dziedziny atrybutu, podanie formatu wartości).
    • integralność referencyjną (odwołań) - dotyczy modelowania powiązań pomiędzy obiektami. Definiujemy ją przez specyfikację klucza obcego, który może znajdować sie w jednym z dwóch stanów. Może mieć wartość klucza głównego innej tabeli w bazie bądź wartość NULL (brak powiązań)
  • stosowanie wyzwalaczy (ang. triggerów) : wyzwalacze to procedury wywoływane automatycznie zdarzeniami zachodzącymi w bazie. Ich głównym zadaniem jest zapewnienie integralności referencji przez sprawdzenie logicznych relacji między tabelami. Można wyróżnić trzy typy wyzwalaczy, związanych z typem operacji na danych:
    • uruchamiane przed lub po modyfikacji pola tabeli (ang. update trigger)
    • uruchamiane przed lub po wstawieniu nowego wiersza do tabeli (ang. insert trigger)
    • uruchamiane przed lub po usunięciu wiersza z tabeli (ang. delete trigger)
Advertisement