BD-1st-2.4-lab7.tresc-1.1-Slajd12
Ograniczenia integralnościowe
Dane składowane w relacjach opisują jakiś wybrany fragment rzeczywistości. Niestety, łatwo jest wprowadzić do relacji dane, które rzeczywistości nie mogą odpowiadać w żaden sposób. Przykładowo, można wprowadzić do bazy danych pracowników zatrudnionych tysiąc lat temu, albo samochód o ujemnej maksymalnej prędkości. W celu zapobiegania takim sytuacjom stosuje się tzw. ograniczenia integralnościowe. Jest to zbiór warunków, które muszą być spełnione przez dane składowane w bazie danych, aby można je było uznać za poprawne. Każde polecenie SQL, które spowodowałoby naruszenie warunków integralnościowych jest wycofywane. Slajd pokazuje rozszerzoną składnię polecenia CREATE TABLE, dzięki której można podać ograniczenia integralnościowe (1). Istnieją dwa rodzaje ograniczeń integralnościowych: ograniczenia atrybutu i ograniczenia relacji. Ograniczenia atrybutu dotyczą jedynie pojedynczego atrybutu relacji. Definiuje się je na liście atrybutów po podaniu wartości domyślnej atrybutu. Ograniczenia relacji dotyczą więcej niż jednego atrybutu relacji i definiuje się je jako osobny wpis na liście atrybutów. Definicja ograniczenia integralnościowego rozpoczyna się od opcjonalnego podania jego nazwy po słowie kluczowym CONSTRAINT, po którym podaje się właściwą definicję. Poszczególne typy ograniczeń wraz ze sposobem definiowania zostaną opisane na kolejnych slajdach. Przykładowe definicje ograniczeń integralnościowych można zobaczyć na przykładowym poleceniu tworzącym relację PROJEKTY (2). Tutaj, ograniczenia integralnościowe zostały założone na atrybutach NAZWA i TERMIN_ZAK. W drugim przypadku podano również nazwę ograniczenia (NIEPUSTY_TERMIN). Ograniczenia relacji dotyczą kilku atrybutów relacji i definiowane są w ramach listy atrybutów, za właściwymi atrybutami. Podobnie jak w przypadku ograniczeń atrybutów, definicję ograniczenia relacji rozpoczyna się od opcjonalnego podania jego nazwy, a następnie podania właściwej definicji. Na przykładowym poleceniu (2) zdefiniowano ograniczenie integralnościowe relacji „CHECK (budzet > 100000)”. Ograniczenie to dotyczy tylko jednego atrybutu, ale mogłoby dotyczyć większej ich liczby.