ograniczenie pozwala na nałożenie ograniczeń na dane, które można wprowadzić względem węzła lub relacji.
Ograniczenia pomagają wymusić integralność danych, ponieważ uniemożliwiają użytkownikom wprowadzanie niewłaściwych danych. Jeśli ktoś spróbuje wprowadzić niewłaściwy rodzaj danych po zastosowaniu ograniczenia, otrzyma komunikat o błędzie.
Typy wiązań
W Neo4j możesz stworzyć wyjątkowość ograniczenia i istnienie własności ograniczenia.
- Ograniczenie niepowtarzalności
- Określa, że właściwość musi zawierać unikalną wartość (tj. nie ma dwóch węzłów z Wykonawcą etykieta może współdzielić wartość dla Nazwy właściwość.)
- Ograniczenie istnienia nieruchomości
- Zapewnia istnienie właściwości dla wszystkich węzłów z określoną etykietą lub dla wszystkich relacji o określonym typie. Ograniczenia istnienia własności są dostępne tylko w Neo4j Enterprise Edition.
Utwórz ograniczenie niepowtarzalności
Aby utworzyć ograniczenie unikatowości w Neo4j, użyj CREATE CONSTRAINT ON
oświadczenie. Tak:
CREATE CONSTRAINT ON (a:Artist) ASSERT a.Name IS UNIQUE
W powyższym przykładzie tworzymy wyjątkowość ograniczenie na Nazwie właściwość wszystkich węzłów z Wykonawcą etykieta.
Gdy stwierdzenie się powiedzie, zostanie wyświetlony następujący komunikat:
Kiedy tworzysz ograniczenie, Neo4j utworzy indeks. Cypher użyje tego indeksu do wyszukiwania, tak jak inne indeksy.
Dlatego nie ma potrzeby tworzenia osobnego indeksu. W rzeczywistości, jeśli spróbujesz utworzyć ograniczenie, gdy już istnieje indeks, otrzymasz błąd.
Wyświetl ograniczenie
Ograniczenia (i indeksy) stają się częścią (opcjonalnego) schematu bazy danych.
Możemy wyświetlić ograniczenie, które właśnie stworzyliśmy, używając :schema
Komenda. Tak:
:schema
Zobaczysz nowo utworzone ograniczenie, a także indeks, który został utworzony za jego pomocą. Możemy również zobaczyć indeks, który został utworzony wcześniej:
Przetestuj wiązanie
Możesz sprawdzić, czy ograniczenie faktycznie działa, próbując dwukrotnie stworzyć tego samego artystę.
Uruchom następującą instrukcję dwukrotnie:
CREATE (a:Artist {Name: "Joe Satriani"}) RETURN a
Przy pierwszym uruchomieniu zostanie utworzony węzeł. Przy drugim uruchomieniu powinien pojawić się następujący komunikat o błędzie:
Ograniczenia istnienia nieruchomości
Ograniczenia istnienia właściwości mogą być użyte, aby zapewnić, że wszystkie węzły z określoną etykietą mają określoną właściwość. Na przykład możesz określić, że wszystkie węzły są oznaczone jako Wykonawca musi zawierać nazwę właściwość.
Aby utworzyć ograniczenie istnienia właściwości, użyj ASSERT exists(variable.propertyName)
składnia.
Tak:
CREATE CONSTRAINT ON (a.Artist) ASSERT exists(a.Name)
Zwróć uwagę, że ograniczenia istnienia własności są dostępne tylko w wersji Neo4j Enterprise Edition.