Referencia integritás

A vállalati integritás korlátai

Domainmezőkre vonatkozó korlátozások

Bizonyos mezőknek mindig tartalmazniuk kell az egyik érvényes értéket, vagyis ezek a mezők nem tartalmazhatnak üres értéket.

Minden mezőnek saját domainje van, ami a megengedett értékek egy csoportja.

A "vállalati integritási korlátok" fogalmaként további szabályok szólnak az adatok integritásának megőrzésére. a felhasználók által meghatározott, a vállalati vagy adatbázis-adminisztrátorok által elfogadott. A vállalkozás korlátozásait üzleti szabályoknak nevezik.

Ez az integritási korlát az alaptáblák elsődleges kulcsaira vonatkozik. Definíció szerint az elsődleges kulcs a minimális azonosító (egy vagy több mező), amelyet a táblák rekordjainak egyedi azonosítására használnak. Így az elsődleges kulcs részhalmazai nem elegendőek a rekordok egyedi azonosításához.

Az entitás integritása határozza meg, hogy az alaptáblában az elsődleges kulcs mezője nem tartalmazhat hiányzó értékeket, amelyeket NULL jelez.

Ha engedélyezi a NULL azonosító jelenlétét az elsődleges kulcs bármelyik részén. ez megegyezik azzal az állítással, hogy nem minden területre van szükség a rekordok egyedi azonosításához, és ellentmond az elsődleges kulcs meghatározásának.

A megadott integritáskorlátozás külföldi kulcsokra vonatkozik. Egy idegen kulcs egy mező (vagy mezőkészlete), amely egy másik táblázat (vagy ugyanazon) kulcsa. A külső billentyűket logikai kapcsolatok létrehozására használják a táblák között. A kapcsolatot úgy hozza létre, hogy az egyik táblázat külsõ kulcsának értékeit a másik kulcs kulcsaihoz hozzárendeli.

A két vagy több adatbázis táblák létezhetnek alárendeltségi viszonyok határozzák meg, az egyes rekord a főtábla (más néven a szülő) létezhet egy vagy több bejegyzést a táblázatban (nevezzük leányvállalata).

Az adatbázistáblák között háromféle kapcsolat létezik:

  • „Egy a többhöz”;
  • „Egy-egy”;
  • „Sok-sok”.

Az egy-sok kapcsolat akkor következik be, amikor a szülõtábla egy rekordja több gyermekrekordnak felel meg. Az egy-sok kapcsolatot néha sokoldalú kapcsolatnak hívják. Mindkét esetben a táblák közötti kapcsolat lényege változatlan marad.

Az egy-sok kapcsolatra a leggyakoribb a relációs adatbázisok. Lehetővé teszi a hierarchikus adatstruktúrák modellezését is.

Egy egy-egy kapcsolat akkor fordul elő, ha egy szülői táblázat egy bejegyzése megfelel a gyermekasztal egyik bejegyzésének. Ez a kapcsolat sokkal kevésbé gyakori, mint az egy-sok kapcsolat. Ez akkor használható, ha nem szeretné, hogy az adatbázis-táblázat "duzzadjon" a háttérinformációkról. Az egy egyéni kapcsolat használatával arra vezethető vissza, hogy ahhoz, hogy több táblázatban olvashassa el a kapcsolódó információkat, több helyett olvasási műveletet kell végrehajtania, amikor az adatokat egy táblában tárolja.

A sok-sok kapcsolatot a következő esetekben végezzük:

  • egy szülő táblában szereplő bejegyzés egynél több bejegyzést tartalmaz a gyermektáblában;
  • a gyermektáblába tartozó egyik bejegyzés a szülõtábla több bejegyzésének felel meg.

Úgy gondolják, hogy minden sok-sok kapcsolatot helyettesíthet egy-egy-sok kapcsolattal (egy vagy több).

Gyakran a táblák közötti kapcsolatot az elsődleges kulcs határozza meg. azaz az egyik táblázat külsõ kulcsának értékei a másik elsõdleges kulcsának értékeit adják meg. Ez azonban nem szükséges - általában másodlagos kulcsok segítségével lehet kommunikálni. Ezenkívül a táblák közötti kapcsolatok létrehozásakor nem szükséges a kapcsolatot biztosító kulcsa nélkülözhetetlen egyedisége. Az idegen kulcs mezők nem feltétlenül azonos névvel rendelkeznek, mint a hozzájuk tartozó kulcsok nevei. Az idegen kulcs a saját táblájára hivatkozhat - ebben az esetben az idegen kulcsot rekurzívnak nevezik.

A referenciális integritás meghatározza: ha van egy idegen kulcs a táblázatban. akkor az értéknek meg kell egyeznie az alaptábla valamely rekord elsődleges kulcsának értékével, vagy a NULL meghatározónak kell megadnia.

Számos fontos pont van a külföldi kulcsokkal kapcsolatban. Először meg kell vizsgálnunk, hogy lehetséges-e idegen kulcsok üres értékeinek használata. Általános esetben, ha a gyermekasztal részvétele a kommunikációban kötelező, ajánlott megtiltani az üres értékek használatát a megfelelő idegen kulcsban. Ugyanakkor, ha a gyermektábla részleges részvétele van a kapcsolatban, engedélyezni kell az üres értékeket az idegen kulcs mezőbe. Ha például egy ügyféllel kell megadnia egy adott kereskedési vállalat tranzakció-rögzítési tranzakcióját, akkor a CustomerCode mezőnek rendelkeznie kell a NOT NULL attribútummal. Ha ügyfelek megadása nélkül adhat el vagy vásárolhat árut, megadhatja a NULL attribútumot a CustomerCode mezőhöz.

A következő probléma a referenciális integritás támogatásának szervezésével kapcsolatos, amikor adatmódosítási műveleteket végeznek az adatbázisban. Itt a következő helyzetek lehetségesek:

Van egy másik fajta integritás - az adatbázis szemantikai integritása. A szemantikai integritás követelménye meghatározza, hogy az adatbázisban lévő adatokat oly módon kell megváltoztatni, hogy ne sérüljenek az egymás között kifejlesztett szemantikai kapcsolat.

A különböző rendszerek adatintegritásának megőrzésének szintje jelentősen változik.

Az ügyfél-kiszolgáló architektúra ideológiája megköveteli az adatintegritási szabályok lehető legnagyobb számának a szerverre történő átvitelét. Ennek a megközelítésnek az előnyei:

  • biztosítja az adatbázis integritását, mivel az összes szabály egy helyen koncentrálódik (az adatbázisban);
  • a kiszolgáló által meghatározott integritáskorlátozások automatikus alkalmazása bármely alkalmazáshoz;
  • az adatbázisban dolgozó különböző ügyfélalkalmazásokban a korlátozások különböző végrehajtásának hiánya;
  • a korlátozások gyors aktiválása, mivel azokat a kiszolgálón hajtják végre, ezért nincs szükség adatküldésre az ügyfél számára, miközben növeli a hálózati forgalmat;
  • a kiszolgálói korlátozások elérhetővé tétele az adatbázisban működő összes ügyfélalkalmazásban, valamint a módosított ügyfélalkalmazások újraelosztása a felhasználók számára.

Az integritási korlátok tárolására a szerver hátrányai a következők:

  • Az ügyfélalkalmazás nem képes arra, hogy bizonyos szabályok végrehajtása során (például a tárolt eljárások végrehajtásakor a kiszolgálón végrehajtott hibák esetén) hibát okozzon a szerveren.
  • Az SQL nyelv korlátozásai és a tárolt eljárások nyelvezetei és kiváltó okok az összes új adatintegritási követelmény végrehajtásához.

A gyakorlatban az ügyfélalkalmazások csak olyan szabályokat alkalmaznak, amelyeket nehéz vagy lehetetlen végrehajtani a kiszolgálói erőforrások használatával. Minden egyéb adatintegritási korlát átkerül a kiszolgálóra.

9. előadás: Az integritási korlátok meghatározása
Megadja az adatintegritási koncepciók meghatározását az SQL szabványban. A deklaratív és a lépcsőzetes referenciális integritás meghatározásának kérdéseit figyelembe veszik. Példák az elsődleges és külföldi kulcskorlátok meghatározására, az érték és az alapértelmezett korlátozásokra, valamint a szabályok és alapértelmezések létrehozására és használatára vonatkozó példák.

Kapcsolódó cikkek