Warunki integralności w bazie danych

From Obrona

Integralność bazy danych stanowi o tym, czy dany stan bazy jest dopuszczalny (poprawny) czy nie. Obejmuje spojnośc logiczną danych i zgodnośc danych ze stanem świata jaki te dane opisują. Integralnośc 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:

• integrlaność 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ą istniej 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śc 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ć warotść klucza głównego innej tabeli w baziue bądź wartośc NULL (brak powiązań)

stosowanie wyzwalaczy (ang. triggerów) : wyzwalacze to procedury wywoływane automatycznie zdarzeanimi 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)


Personal tools