7. fejezet - Relációs adatbázis-tervezés ER és EER sémák relációs sémára történő leképezésével

Ebben a fejezetben azt tárgyaljuk, hogyan lehet egy relációs adatbázissémát megtervezni egy koncepcionális sématerv alapján. Ez megfelel a logikai adatbázistervezésnek vagy a 3.1. alfejezetben ismertetettt adatmodell-leképezési lépésnek (lásd a 3.1. ábrát). Bemutatjuk azokat az eljárásokat, amelyekkel egy egyed-kapcsolat (ER) vagy egy kibővített egyed-kapcsolat (EER) sémából relációs sémát tudunk készíteni, és összekapcsoljuk a 3. és 4. fejezetben bemutatott ER és EER modellbeli konstrukciókat az 5. és 6. fejezetben bemutatott relációs modellbeli konstrukciókkal. Számos számítógéppel támogatott szoftverfejlesztési (CASE) eszköz az ER, az EER vagy más hasonló modellen alapul, ahogy ezt a 3. és 4. fejezetekben tárgyaltuk. Ezeket az automatizált eszközöket az adatbázis-tervezők interaktívan használják az adatbázis alkalmazások ER vagy EER sémájának kifejlesztésére. Sok ilyen eszköz ER vagy EER diagramokat, vagy ezek valamilyen változatait használja a séma grafikus tervezésére, majd automatikusan átkonvertálja azt relációs adatbázissémára egy konkrét relációs DBMS DDL-jében felírva olyan algoritmusok segítségével, amelyeket ebben a fejezetben ismertetünk.

A 7.1. alfejezetben egy hétlépéses algoritmust vázolunk az alapvető ER modellbeli konstrukciók — egyedtípusok (erős és gyenge), bináris kapcsolatok (különböző strukturális megszorításokkal), n-edfokú kapcsolatok, valamint attribútumok (egyszerű, összetett és többértékű) — relációsémákra történő konvertálásához. Ezután a 7.2. alfejezetben folytatjuk a leképezési algoritmust azzal, hogy leírjuk, hogyan lehet az EER modellbeli konstrukciókat — specializáció/generalizáció és unió típusok (kategóriák) — relációsémákra leképezni.

7.1. Relációs adatbázis-tervezés az ER séma relációs sémára történő leképezésével

7.1.1. Az ER séma relációs sémára történő leképezésének algoritmusa

Az alábbiakban megadjuk az ER séma relációs sémára történő leképezésének egy algoritmusát. A leképezési eljárás illusztrálására a VÁLLALAT adatbázis példát használjuk. A leképezési lépések illusztrálásához a VÁLLALAT ER sémája a 7.1. ábrán látható ismét, míg a hozzá tartozó VÁLLALAT adatbázissémát a 7.2. ábra mutatja.

7.1. ábra - ER koncepcionális séma a VÁLLALAT adatbázishoz

ER koncepcionális séma a VÁLLALAT adatbázishoz

7.2. ábra - A VÁLLALAT ER séma relációs adatbázissémára történő leképezésének eredménye

A VÁLLALAT ER séma relációs adatbázissémára történő leképezésének eredménye

  1. Erős egyedtípusok leképezése.  Az ER séma minden E erős egyedtípusához rendeljünk hozzá egy R relációsémát, amely tartalmazza E összes egyszerű attribútumát. Az összetett attribútumoknak csak az egyszerű komponenseit adjuk hozzá R attribútumaihoz. Válasszuk E kulcs attribútumainak egyikét az R relációséma elsődleges kulcsául. Ha az E-ből választott kulcs összetett, akkor annak egyszerű attribútumai együttesen fogják alkotni R elsődleges kulcsát.

    Ha a koncepcionális tervezés során az E-hez több kulcsot is találtunk, akkor az egyes további kulcsokat alkkotó attribútumokat leíró információkat is megtartjuk, hogy az R relációséma másodlagos (egyedi) kulcsait definiáljuk velük. A kulcsokról szerzett ismeretek indexelési és más típusú elemzési célból is felhasználhatók.

    A példánkban létrehozzuk a 7.2. ábra DOLGOZÓ, OSZTÁLY és PROJEKT relációsémáit, amelyek a 7.1. ábra DOLGOZÓ, OSZTÁLY és PROJEKT erős egyedtípusainak felelnek meg. A külső kulcs attribútumokat, illetve a kapcsolóattribútumokat, ha vannak is, még nem vesszük hozzájuk, majd csak a későbbi lépésekben. Ilyen attribútum a DOLGOZÓ Főnök_szsz és Osz, az OSZTÁLY Vez_szsz és Vez_kezdő_dátum, továbbá a PROJEKT Osz attribútuma. A példánkban sorban az Szsz-t, az Oszámot és a Pszámot választjuk elsődleges kulcsnak a DOLGOZÓ, az OSZTÁLY és a PROJEKT relációsémákhoz. Azt az ismeretet, hogy az OSZTÁLY Onév és a PROJEKT Pnév attribútuma másodlagos kulcs, megjegyezzük mint a tervezésben később felhasználható lehetőségeket.

    Azokat a relációsémákat, amelyeket az egyedtípusok leképezésével hoztunk létre, néha egyedtípusból képzett relációsémáknak is nevezzük, mert relációpéldányaik minden rekordja egy-egy egyed-előfordulást reprezentál. A leképezési lépés utáni eredmény a 7.3. (a) ábrán látható.

    7.3. ábra - A leképezés néhány lépésének bemutatása. (a) Egyedtípusból képzett relációsémák az első lépés után. (b) Egy új, gyenge egyedtípusból képzett relációséma a második lépés után. (c) Kapcsoló relációséma az 5. lépést követően. (d) Többértékű attribútumot reprezentáló relációséma a 6. lépés után.

    A leképezés néhány lépésének bemutatása. (a) Egyedtípusból képzett relációsémák az első lépés után. (b) Egy új, gyenge egyedtípusból képzett relációséma a második lépés után. (c) Kapcsoló relációséma az 5. lépést követően. (d) Többértékű attribútumot reprezentáló relációséma a 6. lépés után.

  2. Gyenge egyedtípusok leképezése.  Az ER séma minden W gyenge egyedtípusához rendeljünk hozzá egy R relációsémát, melynek attribútumai legyenek W összes egyszerű attribútuma és W összetett attribútumainak egyszerű komponensei. Továbbá adjuk hozzá R attribútumaihoz külső kulcs attribútumként azoknak a relációsémáknak az elsődleges kulcs attribútumait, amelyeket a domináns egyedtípusoknak feleltettünk meg; ezzel képezzük le a W-hez tartozó azonosító kapcsolattípust. R elsődleges kulcsa a tulajdonos egyedtípusok elsődleges kulcsainak és a W gyenge egyedtípus diszkriminátorának az együttese.

    Ha egy E 2 gyenge egyedtípus tulajdonosa a szintén gyenge E 1 egyedtípus, akkor E 1-et E 2 előtt kell leképezni, mert az E 2 leképezéséhez szükség van az E 1-ből képzett relációséma elsődleges kulcsára.

    A példánkban ebben a lépésben létrehozzuk a HOZZÁTARTOZÓ relációsémát, amely a HOZZÁTARTOZÓ gyenge egyedtípusnak felel meg (lásd a 7.3. (b) ábrát). Felvesszük a DOLGOZÓ relációséma Szsz elsődleges kulcsát — amely a tulajdonos egyedtípusnak felel meg — a HOZZÁTARTOZÓ külső kulcs attribútumaként, és átnevezzük Dszsz-re, bár ezt nem szükséges megtenni. A HOZZÁTARTOZÓ relációséma elsődleges kulcsa a {Dszsz, Hozzátartozó_név} kombináció, mert a Hozzátartozó_név (ami a 7.1. ábra Név attribútumából szintén át lett nevezve) a HOZZÁTARTOZÓ részleges kulcsa.

    Általában a CASCADE opciót szoktuk megadni a hivatkozó táblában bekövetkező eseményre a gyenge egyedtípusnak megfelelő relációséma külső kulcsának definiálásakor, mivel a gyenge egyed létezésfüggően kapcsolódik a tulajdonos egyedéhez. Ez az opció mind ON UPDATE, mind ON DELETE esetén használható.

  3. Bináris 1:1 számosságú kapcsolattípusok leképezése.  Minden bináris 1:1 számosságú R kapcsolattípus esetén meg kell határozni az R-ben részt vevő egyedtípusokból képzett S és T relációsémákat. Három lehetséges megközelítés létezik: (a) külső kulcs használata, (b) összevonás és (c) keresztreferencia vagy kapcsoló relációséma használata. Az első megközelítés a leghasznosabb, és azt célszerű alkalmazni, hacsak bizonyos feltételek nem állnak fenn, ahogy azt mindjárt látni fogjuk:

    1. Külső kulcs használata.  Válasszuk ki az egyik relációsémát (mondjuk S-et), és vegyük fel S külső kulcsaként T elsődleges kulcsát. Célszerű S-nek azt a relációsémát választani, amelyiket abból az egyedtípusból képeztünk le, amelyik totális résztvevője az R kapcsolatnak. Vegyük fel továbbá R egyszerű attribútumait, illetve R összetett attribútumainak egyszerű komponenseit S attribútumaiként.

      Példánkban a 7.1. ábrán látható VEZETI kapcsolattípust úgy képezzük le, hogy S helyére az OSZTÁLY egyedtípust választjuk, mert az totális résztvevője a VEZETI kapcsolattípusnak (minden osztálynak van vezetője). Az OSZTÁLY relációsémához hozzávesszük külső kulcsként a DOLGOZÓ relációséma elsődleges kulcsát, és átnevezzük Vez_szsz-re. Szintén hozzávesszük az OSZTÁLY relációsémához a VEZETI kapcsolattípus Kezdő_dátum egyszerű attribútumát is, és átnevezzük Vez_kezdő_dátumra (lásd a 7.2. ábrát).

      Azt is megtehetnénk, hogy S (a totális résztvevő) elsődleges kulcsát vesszük fel T külső kulcsaként. A példánkban ez azt jelentené, hogy a DOLGOZÓ relációsémában megjelenne mondjuk egy Vezetett_osztály külső kulcs attribútum, amely mindazon dolgozó rekordok esetén NULL értéket tartalmazna, akik nem vezetnek egyetlen osztályt sem. Ha a dolgozóknak csak 10 százaléka vezet osztályt, akkor a külsőkulcs-értékek 90 százaléka NULL érték lenne a mi esetünkben. Harmadik lehetőség lenne, hogy mind S-be, mind pedig T-be vegyünk be külső kulcsokat redundánsan, de ez plusz konzisztencia-karbantartási terheket róna ránk.

    2. Összevonás.  Egy másik lehetőség az 1:1 kapcsolatok leképezésére, ha a két egyedtípust és a kapcsolatot egyetlen relációba vonjuk össze. Ezt akkor tehetjük meg, ha mindkét egyedtípus totális résztvevője a kapcsolatnak.

    3. Kereszthivatkozás vagy kapcsoló relációséma használata .  A harmadik lehetőség, hogy felveszünk egy harmadik R relációsémát abból a célból, hogy kereszthivatkozással lássuk el a két egyedtípusból képzett S és T relációsémák elsődleges kulcsait. Ahogy látni fogjuk, ezt a megközelítést alkalmazzuk a bináris M:N kapcsolatoknál is. Az R relációsémát kapcsoló relációsémának nevezzük, mert R relációpéldányainak minden rekordja egy kapcsolat-előfordulást reprezentál, amely S egy relációjának egy rekordját T egy relációjának egy rekordjával kapcsolja össze.

  4. Bináris 1:N számosságú kapcsolattípusok leképezése.  Minden bináris 1:N számosságú R kapcsolattípus esetén meg kell határozni azt az S relációsémát, amelyiket a kapcsolattípus N-oldali egyedtípusából képeztünk. Vegyük fel S külső kulcsaként az R-ben részt vevő másik egyedtípusból képzett T relációséma elsődleges kulcsát; mindezt azért tesszük, mert az N-oldali egyed-előfordulások a másik oldalról legfeljebb egy egyed-előforduláshoz tartoznak. Vegyük fel továbbá R egyszerű attribútumait, illetve R összetett attribútumainak egyszerű komponenseit S attribútumaiként.

    Példánkban most leképezzük a 7.1. ábrán látható MUNKAHELYE, IRÁNYÍTJA és FŐNÖKE 1:N kapcsolattípusokat. A MUNKAHELYE esetén az OSZTÁLY Oszám elsődleges kulcsát hozzávesszük külső kulcsként a DOLGOZÓ relációsémához, és elnevezzük Osz-nek. A FŐNÖKE esetén a DOLGOZÓ relációséma elsődleges kulcsát magához a DOLGOZÓ relációsémához vesszük hozzá külső kulcsként (mert a kapcsolattípus rekurzív), és elnevezzük Főnök_szsz-nek. Az IRÁNYÍTJA kapcsolattípust a PROJEKT Osz nevű külső kulcs attribútumára képezzük le, amely az OSZTÁLY relációséma Oszám elsődleges kulcsára hivatkozik. Ezek a külső kulcsok a 7.2. ábrán láthatók.

    Egy másik megközelítés szerint most is használhatunk kapcsoló relációsémát (kereszthivatkozást), ahogy az 1:1 kapcsolatoknál tettük. Ekkor egy külön R relációsémát hozunk létre, amelynek attribútumai S és T elsődleges kulcsai, és amelynek elsődleges kulcsa megegyezik S elsődleges kulcsával. Ezt a módszert célszerű alkalmazni akkor, ha S-ben kevés rekord vesz részt a kapcsolatban, ugyanis ekkor a külső kulcsos megközelítés használatakor rengeteg NULL érték szerepelne a külső kulcsban.

  5. Bináris M:N számosságú kapcsolattípusok leképezése.  Minden bináris M:N számosságú R kapcsolattípus esetén hozzunk létre egy új S relációsémát, amely R-et reprezentálja. Vegyük fel S külső kulcsaként a kapcsolatban részt vevő egyedtípusokból képzett relációsémák elsődleges kulcsait; ezek együttese alkotja S elsődleges kulcsát. Vegyük fel továbbá R egyszerű attribútumait, illetve R összetett attribútumainak egyszerű komponenseit S attribútumaiként. Vegyük észre, hogy egy M:N kapcsolatot nem tudunk egyetlen külső kulccsal reprezentálni az egyik résztvevő relációsémában (ahogy az 1:1 és 1:N kapcsolattípusok esetén tettük) az M:N számosság miatt; mindenképpen létre kell hoznunk egy külön S kapcsoló relációsémát.

    Példánkban a 7.1. ábrán látható DOLGOZIK_RAJTA M:N kapcsolattípust úgy képezzük le, hogy létrehozzuk a 7.2. ábrán látható DOLGOZIK_RAJTA relációsémát. A PROJEKT és a DOLGOZÓ relációsémák elsődleges kulcsait hozzávesszük külső kulcsként a DOLGOZIK_RAJTA relációsémához, és átnevezzük őket Psz-re, illetve Dszsz-re. Ezenkívül felveszünk még egy Órák attribútumot is a DOLHOZIK_RAJTA relációsémába, amely a kapcsolattípus Órák attribútumát reprezentálja. A DOLGOZIK_RAJTA relációséma elsődleges kulcsa a külső kulcs attribútumok {Dszsz, Psz} együttese lesz. Ezt a kapcsoló relácsiósémát a 7.3. (c) ábrán láthatjuk.

    A CASCADE opciót célszerű megadni a hivatkozó táblában bekövetkező eseményre az R kapcsolattípusnak megfelelő relációséma külső kulcsának definiálásakor, mivel minden kapcsolat-előfordulás létezésfüggően kapcsolódik a benne szereplő egyed-előfordulásokhoz. Ez az opció mind ON UPDATE, mind ON DELETE esetén használható.

    Azt is vegyük észre, hogy az 1:1 és 1:N kapcsolattípusokat mindig leképezhetjük az M:N kapcsolattípusok leképezéséhez hasonló módon, a kereszthivatkozás (kapcsoló relációséma) használatával úgy, ahogy azt korábban láttuk. Ez a megközelítés különösen hasznos akkor, ha kevés kapcsolat-előfordulás létezik, mert így elkerülhetjük a sok NULL érték felbukkanását a külső kulcsokban. Ebben az esetben a kapcsoló relációséma elsődleges kulcsát a kapcsolatban részt vevő egyedtípusokból képzett relációkra hivatkozó külső kulcsok közül csak az egyik alkotja. 1:N számosságú kapcsolattípus esetén a kapcsoló relációséma elsődleges kulcsa az N-oldali egyedtípusból képzett relációsémára hivatkozó külső kulcs lesz. 1:1 számosságú kapcsolattípus esetén bármelyik külső kulcsot használhatjuk a kapcsoló relációséma elsődleges kulcsaként, ha a hozzá tartozó relációban nincs NULL érték.

  6. Többértékű attribútumok leképezése.  Minden egyes A többértékű attribútum esetén hozzunk létre egy új R relációsémát. Ez az R relációséma tartalmazzon egy, az A-nak megfelelő attribútumot, valamint annak a relációsémának a K elsődleges kulcsát — R külső kulcsaként —, amelyet az A-t tartalmazó egyedtípusból vagy kapcsolattípusból képeztünk. R elsődleges kulcsát A és K együttese alkotja. Ha a többértékű attribútum összetett, akkor az egyszerű komponenseit vegyük fel R attribútumaiként.

    A példánkban létrehozunk egy OSZT_HELYSZÍNEK relációsémát (lásd a 7.3. (d) ábrát). Az Ohelyszín attribútum reprezentálja az OSZTÁLY többértékű Helyszínek attribútumát, az Oszám attribútum pedug az OSZTÁLY relációséma elsődleges kulcsát (külső kulcsként). Az OSZT_HELYSZÍNEK elsődleges kulcsa az {Oszám, Ohelyszín} kombináció lesz. Az OSZT_HELYSZÍNEK relációiban egy osztály minden egyes helyszínéhez külön rekord fog tartozni.

    A CASCADE opciót célszerű megadni a hivatkozó táblában bekövetkező eseményre a többértékű attribútumnak megfelelő relációséma külső kulcsának definiálásakor mind ON UPDATE, mind ON DELETE esetén. Meg kell jegyeznünk, hogy egy összetett, többértékű attribútum leképezése esetén R kulcsának meghatározása a komponens attribútumok jelentésének az elemzését követeli meg. Bizonyos esetekben, ha egy többértékű attribútum összetett is, csak néhány komponens attribútumot kell közülük R kulcsához hozzávenni; ezek az attribútumok hasonlítanak egy olyan gyenge egyedtípus részleges kulcsához, amelyek a többértékű attribútumnak felelnek meg (lásd a 3.5. szakasz - Gyenge egyedtípusok alfejezetet).

    A 7.2. ábrán az 1-től 6-ig leírt lépések alkalmazása után kapott VÁLLALAT relációs adatbáziséma, a 5.4. ábrán pedig egy példa adatbázisállapot látható. Szemfüles olvasóink észrevehették, hogy még nem beszéltünk az n-edfokú kapcsolattípusok leképezéséről (n > 2), mivel ilyen nincsen a 7.1. ábrán; ezeket az M:N kapcsolattípusokhoz hasonló módon kell leképezni, a következő lépést is hozzávéve a leképezési algoritmusunkhoz.

  7. Az n-edfokú kapcsolattípusok leképezése.  Minden n-edfokú R kapcsolattípus esetén, ahol n > 2, hozzunk létre egy új S relációsémát, amely R-et reprezentálja. Vegyük fel S külső kulcsaként a kapcsolatban részt vevő egyedtípusokból képzett relációsémák elsődleges kulcsait. Vegyük fel továbbá R egyszerű attribútumait, illetve R összetett attribútumainak egyszerű komponenseit S attribútumaiként. S elsődleges kulcsa általában az összes külső kulcs együttese. Ha azonban az R-ben részt vevő valamely E egyedtípusból csak egy rekord vesz részt a kapcsolatban (számossági megszorítás), akkor S elsődleges kulcsának nem kell tartalmaznia az E-ből képzett E' relációsémára hivatkozó külső kulcsot (lásd a 3.8.2. alfejezetet).

    Tekintsük például a 3.16. ábrán látható SZÁLLÍTÁS kapcsolattípust. Ezt a 7.4. ábrán látható SZÁLLÍTÁS relációsémára képezhetjük le, amelynek az elsődleges kulcsa a három külső kulcs együttese lesz: {Bnév, Alkatrész_azon, Proj_név}.

    7.4. ábra - A 3.16. (a) ábra n-edfokú SZÁLLÍT kapcsolattípusának leképezése.

    A (a) ábra n-edfokú SZÁLLÍT kapcsolattípusának leképezése.

7.1.2. Összegzés az ER modell konstrukcióinak a leképezéséhez

A 7.1. táblázat összefoglalja az ER és a relációs modellbeli konstrukciók és megszorítások közötti megfeleltetéseket.

7.1. táblázat - Megfeleltetések az ER és a relációs modell között

ER modellRelációs modell
Egyedtípus Egyedtípusból képzett relációséma
1:1 vagy 1:N kapcsolattípusKülső kulcs (vagy kapcsoló relációséma)
M:N kapcsolattípus Kapcsoló relációséma és két külső kulcs
n-edfokú kapcsolattípus Kapcsoló relációséma és n külső kulcs
Egyszerű attribútumAttribútum
Összetett attribútumEgyszerű komponens attribútumok
Többértékű attribútumRelációséma és külső kulcs
ÉrtékhalmazTartomány
Kulcs attribútumElsődleges (vagy másodlagos) kulcs

Az egyik legfőbb megjegyzés az, hogy a relációs sémában, az ER sémával szemben, a kapcsolattípusokat nem reprezentáljuk explicit módon; ehelyett ezeket a két relációsémában (S-ben és T-ben) szereplő A elsődleges kulcs és az ugyanazon tartományon értelmezett B külső kulcs attribútumhalmazokkal reprezentáljuk. Az S-hez és T-hez tartozó relációk egy-egy rekordja akkor kapcsolódik egymáshoz, ha ugyanazon értékekkel rendelkeznek A-n és B-n. Az S-hez és T-hez tartozó relációkat az S.A és T.B attribútumok alapján egy equijoinnal összekapcsolva (vagy természetes összekapcsolással, ha a két kapcsoló attribútumnak ugyanaz a neve) egymáshoz rendelhetjük az összekapcsolt relációk összetartozó rekordpárjait, és így materializálhatjuk a kapcsolatot. Ha bináris 1:1 vagy 1:N kapcsolattípusról van szó, akkor általában csak egy összekapcsolási művelet szükséges. Egy bináris M:N kapcsolattípus esetén viszont két összekapcsolásra, míg az n-edfokú kapcsolattípusok esetén n összekapcsolásra van szükségünk ahhoz, hogy teljesen materializálhassuk a kapcsolat-előfordulásokat.

Ahhoz például, hogy képezzünk egy olyan relációt, amely tartalmazza a dolgozó nevét, a projekt nevét, és hogy az egyes dolgozók hány órát dolgoznak az egyes projekteken, össze kell kötnünk a DOLGOZÓ rekordjait a kapcsolódó PROJEKT rekordokkal a DOLGOZIK_RAJTA reláción keresztül (lásd a 7.2. ábrát). Az equijoin műveletet tehát a DOLGOZÓ és a DOLGOZIK_RAJTA relációkra kell végrehajtani az Szsz = Dszsz összekapcsolási feltétellel, majd az eredményül kapott relációra és a PROJEKT relációra egy újabb equijoin műveletet kell alkalmazni a Psz = Pszám összekapcsolási feltétellel. Minél több kapcsolatot szeretnénk érinteni, általában annál több összekapcsolási műveletet kell megadnunk. A relációs adatbázis felhasználójának mindig nagyon ügyelnie kell arra, hogy a külső kulcs attribútumokat helyesen használja kettő vagy több reláció kapcsolódó rekordjainak összerendelésekor. Ezt néha a relációs adatmodell hátrányának tekintik, mert a külső kulcs/elsődleges kulcs megfeleltetések nem mindig nyilvánvalóak a relációs sémák vizsgálatakor. Ha végrehajtunk egy equijoint két reláció olyan attribútumai alapján, amelyek nem alkotnak külső kulcs/elsődleges kulcs kapcsolatot, az eredmény gyakran értelmetlen lesz, és hamis adatokat eredményezhet. Az olvasó például megpróbálhatja összekapcsolni a PROJEKT és az OSZT_HELYSZÍNEK relációkat az Ohelyszín = Phelyszín feltétel alapján, és megvizsgálni az eredményt (lásd a 8. fejezetet).

A relációs sémában minden egyes többértékű attribútumhoz külön relációsémát hozunk létre. Egy konkrét egyed esetén, ahol a többértékű attribútum értéke egy értékhalmaz, az egyed kulcs attribútumának értékét külön rekordokban kell megismételnünk az értékhalmaz minden egyes elemével, mivel az alap relációs modell nem enged meg egy rekordban egy attribútumhoz több értéket (értékek egy listáját vagy halmazát). Például mivel az 5-ös osztálynak három helyszíne van, három rá vonatkozó rekord létezik az 5.4. ábra OSZT_HELYSZÍNEK relációjában; minden rekord egy helyszínt ad meg. A példánkban egy equijoint hajthatunk végre az OSZT_HELYSZÍNEK és az OSZTÁLY relációkra az Oszám attribútum alapján, hogy megkapjuk az összes helyszínt más OSZTÁLY-beli attribútumokkal együtt. Az eredményül kapott relációban az OSZTÁLY egyéb attribútumainak az értékei külön rekordokban ismétlődnek az egyes osztályok minden egyes helyszínére.

Az alap relációalgebra nem rendelkezik a beágyazás vagy tömörítés művelettel, amely a { 〈1, 'Budapest'〉, 〈4, 'Kecskemét'〉, 〈5, {'Vác', 'Tiszafüred', 'Budapest'}〉 } formájú rekordhalmazt eredményezné az 5.4. ábra OSZT_HELYSZÍNEK relációjából. Ez egy komoly hátránya a relációs modell normalizált vagy lapos alapváltozatának. A beágyazás kifejezésére az objektumorientált modellek és a korai hierarchikus és hálós modellek jobb eszközrendszerrel rendelkeznek, mint a relációs modell. A beágyazott relációs modell és az objektum-relációs rendszerek megpróbálják orvosolni ezt a problémát.