Az épségi megszorítások azt biztosítják, hogy az adatbázis módosítások ne eredményezhessenek helytelen sorokat a relációban.

Megszorítások a relációs adatbázisokban 

  1. Kulcsok: Kulcs az az attribútum vagy attribútumhalmaz, amely funkcionálisan meghatározza a reláció összes többi attribútumát és nincs olyan valódi részhalmaza, amely funkcionálisan meghatározná a reláció összes többi attribútumát.
  2. Hivatkozási épség és idegen kulcsok: ami azt a követelményt fejezi ki, hogy 1 reláció 1 v. több attribútumának az értéke elő kell, hogy forduljon 1 másik reláció adott attribútumának értékeként.
  3. Attribútumértékekre vonatkozó megszorítások: Egy attribútum az értékeit a megadott értéktartományból veheti fel. Ilyen pl.: egyediség elvárása, az értéktarto­mány korlátozása bizonyos értékekre, és a NULL értékek megtiltása.
  4. Sorokra vonatkozó megszorítások
  5. A reláció egészére vonatkozó megszorítások
  6. Több relációt érintő megszorítások (Önálló megszorítások): Minden alkalommal ellenőrzi a rendszer, amikor az érintett relációk bármelyike módosul.

Megszorítások megadása SQL -ben

Az SQL2 számos lehetőséget kínál arra, hogy az épségi megszorításokat az adatbázisséma részeként adjuk meg:

  1. Kulcsok megadása az SQL -ben: Talán a legfontosabb fajtamegszorítás 1 adatbázisban annak deklarálása, hogy 1 attribútum v. attribútum-halmaz 1 relációnak a kulcsát alkotja. A kulcsfeltétel az SQL nyelv CREATE TABLE utasításán belül adható meg. Kulcsokat 2 módon deklarálhatunk, az egyik a PRIMARY KEY, a másik s UNIQUE kulcsszó segítségével történik. A PRIMARY KEY használata esetén a kulcs csak 1 attribútum lehet, UNIQUE-ot viszont több attribútumból álló kulcs megadásakor is használhatjuk.
    Az elsődleges kulcsot a CREATE TABLE utasításon belül 2 fajta módon adhatjuk meg:
    1. Az attribútumot deklarálhatjuk elsődleges kulcsként akkor, amikor az attribútumot felsoroljuk a relációsémában. A PRIMARY KEY kulcsszót az attribútum neve és típusa után kell írnunk.
    2. Hozzáadhatunk a sémában deklarált elemek listájához 1 további deklarációt, amelyik azt adja meg, hogy 1 attribútum v. attribútum-halmaz kulcsot alkot. Ilyenkor 1 új elemet kell az attribútumok listája után írnunk, amelyik a PRIMARY KEY kulcsszóból és a kulcsot alkotó attribútum(ok) zárójelezett listájából áll.

  2. Hivatkozási épség megszorítások: Előírhatjuk, hogy 1 attribútum v. attribútum-halmaz értékeinek elő kell fordulnia 1 másik reláció valamelyik sorának elsődleges kulcs attribú­tuma(i)ban. Ezt a relációséma megadásakor a REFERENCES v. a FOREIGN KEY kulcsszóval adhatjuk meg:
    • Ha az idegen kulcs egyetlen attribútum:
      REFERENCES <tábla> (<attribútum>)
    • Ha az idegen kulcs több attribútumból áll:
      FOREIGN KEY <attribútumok> REFERENCES <tábla>  (<attribútumok>)
    Az idegen kulcsot kétféleképpen deklarálhatjuk, ugyanúgy ahogyan azt az elsódleges kulcsok esetében tettük.
  3. Attribútum-értékekre vonatkozó megszorítások: Azok a megszorítások, amelyek azt korlátozzák, hogy bizonyos attribútumok milyen értékeket vehetnek fel.
    • a, NOT NULL feltételek : 1 egyszerű megszorítás, ami 1 attribútumhoz hozzárendelhető. Ez nem engedi meg olyan sorok előfordulását, amelyben az adott attribútum értéke NULL. A megszorítást úgy deklaráljuk, hogy a CREATE TABLE utasításban az attribútum megadása után a NOT NULL kulcsszót szerepeltetjük.
    • b, Attribútumra vonatkozó CHECK feltételek: Bonyolultabb megszorítások rendelhetők hozzá 1 attribútumhoz, ha a deklarációban a CHECK kulcsszót használjuk. A kulcsszót 1 zárójelbe tett feltétel követi, amelyet az attribútum minden értékének ki kell elégítenie.
      1 attribútumra vonatkozó CHECK feltételt csak akkor ellenőriz a rendszer, amikor valamelyik sorban az adott attribútum új értéket kap. Ha az új érték megsérti a feltételt, akkor a rendszer az adatmódosítást visszautasítja.
    • c, Értéktartományokra vonatkozó megszorítások: 1 attribútum értékeit úgy deklaráljuk, hogy 1 értéktartományt deklarálunk 1 hasonló megszorítással, majd ezt az értéktartományt adjuk meg az attribútum típusaként. Az SQL2 a VALUE -t kínálja arra, hogy az értéktartomány 1 értékére hivatkozhassunk.
      Pl: A NemÉrtékek nevű értéktartomány deklarációja, amely csak az ’F’ és ’N’ karakterek előfordulását engedi meg:
      CREATE  DOMAIN NemÉrtékek CHAR(1) CHECK (VALUE IN (’F’, ’N’));
  4. Globális megszorítások:
    • a, Sorra vonatkozó CHECK feltételek: amelyek egyetlen reláció soraira tesznek különféle megszorításokat. A CREATE TABLE utasítás végén kell megadni a CHECK kulcsszót, majd zárójelek között egy feltételt.
    • b, Önálló megszorítások: akár egy vagy több relációra is vonatkozhatnak.
      Az utasítás formája:
      CREATE ASSERTION <név>  CHECK (<feltétel>)