


A relációs adatelemzés az a technika, amellyel az adatoknak egy olyan szerkezetét lehet elõállítani, amely a lehetõ legkevesebb ismétlõdést és a lehetõ legnagyobb rugalmasságot biztosítja (a szerkezet módosítása és kiegészítése terén). A rugalmasságot úgy lehet elérni, hogy az adatok csoportjait kisebb csoportokra bontjuk, az egyedi adatelemek közötti összefüggéseket figyelembe véve, az eredeti információtartalom elvesztése nélkül. Az eljárás a következõ:
Tipikus problémák, amelyek elõjöhetnek, ha az adatok nem normalizált formában vannak: felviteli, módosítási és törlési anomáliák, karbantartási nehézségekkel együtt.
A rendszertervezés késõbbi fázisaiban lehetnek olyan esetek, amikor ennek az adatszerkezetnek a logikai "tisztaságát" fel kell adni. A fizikai tervezés esetében, például, amikor a kompromisszum a hatékonyság érdekében szükséges. Mindennek ellenére tudatában kell lenni annak, hogy ezek a késõbbi változtatások nehezebbé teszik az alkalmazások felépítését és karbantartását, és veszélyeztetik a hosszú távú hajlékonyságot.
A relációs adatelemzést a módszerben mindenhol lehet használni, ahol logikai adatmodell készül (140., 320. lépés), de formálisan a 340. lépésben kell elvégezni, a funkciómeghatározásban elõállított B/K adatszerkezetek alapján. Az adatelemzést itt a bonyolultságuk, mennyiségi vagy gyakorisági jellemzõjük, illetve fontosságuk miatt kiválasztott B/K adatszerkezetekre kell elvégezni.
A relációs adatelemzés kiegészíti a logikai adatmodellezést és egy másik megközelítéssel azonosítja és határozza meg a rendszer információs követelményeit. Az egyedek elemzése egy felülrõl lefelé haladó folyamattal alakítja ki a logikai adatmodellt, egyre finomabb részekre bontva, míg a relációs adatelemzés alulról felfelé alakítja ki az adatmodellt, az egyes adatelemek nagyobb csoportokba rendezésével. A logikai adatmodellezés biztosítja, hogy a projekt számára lényeges adatok átfogó képe ne vesszen el, míg a relációs adatelemzés biztosítja, hogy az összes alacsonyszintû részletet megfogjuk.
A relációs adatelemzés a funkciómeghatározással kapcsolatban arra szolgál, hogy ellenõrizzük a logikai adatmodell és a funkciók illeszkedését, megvizsgálva a funkciók logikai bemeneteit és kimeneteit (B/K adatszerkezetek és leírásaik), továbbá felhasználva a felhasználók tudását az adatokról.
A relációs adatelemzés általános használata esetén vannak olyan adatelemek, amelyeket figyelmen kívül lehet hagyni. Ilyenek például a fizikai számítógépes környezetben:
4.1. Relációk

A reláció egy kétdimenziós táblázat, azaz bizonyos számú sorból és oszlopból áll. Minden egyes oszlop egy attribútumát jelenti az adott relációnak. Egy táblázatnak a következõ tulajdonságokkal kell rendelkeznie ahhoz, hogy relációnak lehessen nevezni:Ahhoz, hogy normalizált relációnak lehessen nevezni (elsõ normálforma) egy további tulajdonság kell még:
- nincs két egyforma sor
- a sorok sorrendjének nincs jelentõsége
- az oszlopok sorrendjének nincs jelentõsége
- minden oszlopnak egyedi neve van
A "reláció" kifejezés adatelemek egy csoportját jelöli. A logikai adatmodellezésben a "kapcsolat" fogalma egészen más, nem tévesztendõ össze vele (angolul a két fogalom sorrendben: "relation" és "relationship").
- minden attribútum elemi
Nincs két egyforma sor
Nem lehetnek megismételt sorok. Egy sor egy másik sor megismétlése, ha az adott sorban található összes attribútumérték megegyezik a másik sorban lévõ megfelelõ attribútumértékkel.
A sorok sorrendjének nincs jelentõsége
Ha a soroknak bizonyos sorrendben kell követniük egymás, mivel azt várjuk, hogy a sorrendnek jelentõsége van (idõ, fontosság, költség stb.), akkor a relációból hiányoznak adatok. Ezeket azonosítani kell és fel kell venni további oszlopként.
Az oszlopok sorrendjének nincs jelentõsége
Ugyanaz a szabály érvényes az oszlopok sorrendjére. Ha az oszlopok sorrendjének van jelentése, akkor valamilyen adat hiányzik a relációból, amit azonosítani kell és külön oszlopként fel kell venni.
Minden oszlopnak egyedi neve van
Az oszlopok nevét adatelemek azonosítására használjuk, ezért minden oszlopnak egyedi nevet kell adni. Ahol két oszlop ugyanazon tartományba tartozik, például Számlaszám, ott mind a kettõnek kell adni egy szerepkör nevet, ami egyértelmûen azonosítja majd. Egy bankon belüli átutalás esetén a számlaszámoknak a "terhelési" és a "jóváírási" szerepköröket adva, az oszlopok nevei a "Terhelési számlaszám" és "Jóváírási számlaszám" lesznek.
Minden attribútum elemi
Egy reláció jelenthet egy tetszõleges adatcsoportot (például egy jelentés vagy formalap adatait). Ilyenkor elõfordulhat, hogy egy vagy több attribútuma további attribútumokra bomlik. Egy példa erre az ismétlõdõ csoport. Az ilyen attribútumot "összetettnek" hivják. Az olyan relációkat, amelyek ismétlõdõ csoportokat tartalmaznak, nem normalizált relációnak hívják.


Egy normalizált relációban (elsõ normálformában) minden összetett attribútum felbomlik az õt alkotó attribútumokra. Az ilyen attribútumokat nevezik eleminek. Egy normalizált reláció minden sorában meghatározott számú attribútumérték van és minden ilyen érték egyszerû (nem összetett) érték.A további normalizáció a relációk attribútumainak funkcionális függõségeit vizsgálja. A relációs adatelemzés kimenete egy sor normalizált reláció.
4.2. Tartományok
Bár a tarományok vizsgálata nem lényegi elem a relációk normalizálásában, az elemzõ azonosíthat és dokumentálhat fontosabb tartományokat az egyedi attribútumokhoz. Egy tartomány olyan értékkészletet jelent, amelybõl az attribútumok aktuális értékeiket nyerik. Egy közös tartomány olyan érvényesítési és formátum beállítási szabályok, megengedett osztályok és értéktartományok összességét jelenti, amelyek egynél több attribútumra érvényesek.A közös tartományok a felesleges attribútumok azonosításában segítenek. Ha két különbözõ attribútum (ugyanazon vagy különbözõ relációkban) ugyanazon a tartományon alapul, akkor lehetséges, hogy igazából egyetlen attribútumra van szükség, és így a kettõ közül valamelyik felesleges.
4.3. Elsõdleges és jelölt kulcsok
Mivel egy relációban minden sor különbözõ, ezért kell lennie egy vagy több olyan attribútumnak (esetleg a reláció összes attribútuma), amelyeket a reláció sorainak egyedi azonosítójaként lehet használni. Bármely olyan (minimális) attribútum halmazt, amelyet minden esetben ilyen egyedi azonosítóként lehet használni jelölt kulcsnak (kulcsjelöltnek) hívnak. Minimális itt azt jelenti, hogy a jelölt kulcs attribútumainak halmazában nincs olyan részhalmaz, amely szintén jelölt kulcs lenne.Ha egy jelölt kulcs egyetlen attribútumból áll, azt egyszerû kulcsnak hívják.
Ha egy jelölt kulcs két vagy több külsõ kulcsból áll, azt összetett kulcsnak hívják.
Ha egy jelölt kulcs egy külsõ kulcsból és egy nem külsõ kulcsot jelentõ attribútumból áll, akkor hierarchikus kulcsnak hívják, ilyenkor a külsõ kulcsot a hierarchikus kulcs minõsítõ részének nevezik.
Egy tetszõleges jelölt kulcsot ki kell választani a reláció egyedi azonosítójaként. Ezt a jelölt kulcsot hívják elsõdleges kulcsnak. Általában érdemes a rövidebbet választani ki elsõdleges kulcsnak. Sokszor mesterséges kulcsot vezetnek be, amikor nincs megfelelõ természetes jelölt kulcs. Így elkerülhetõ a nagyon hosszú elsõdleges kulcsok használata.
4.4. Külsõ kulcsok
Külsõ kulcsnak nevezik az olyan attribútumot vagy attribútum csoportot egy relációban, amely jelölt kulcs egy másik (vagy ugyanazon) relációban. Így egy sor külsõ kulcsának attribútumértékei azonosítani fognak egy olyan sort egy másik (vagy ugyanazon) relációban, amelynek a jelölt kulcsa értékeiben megegyezik a külsõ kulccsal. A relációs modellen belül ez az az eszköz, amellyel jelölni lehet a kapcsolatokat.Általában a kapcsolatok adatbázisbeli megvalósításánál a külsõ kulcsokkal az adott relációk elsõdleges kulcsára hivatkoznak, és nem akármelyik kulcsjelöltjükre. A külsõ kulcsokat a relációs adatelemzés során csillaggal lehet megjelölni.
4.5. Normalizálás
Normalizálás az az eljárás, amelynek során egy elõre meghatározott szabványnak megfelelõ dolgot állítunk elõ. A relációs adatelemzésben ez azt az eljárást jelenti, amellyel az attribútumokat optimális relációkba csoportosítjuk. Ez az eljárás Dr. Edgar Codd munkájából származik. Õ három szakaszt különített el az adatok normalizálásában, az elsõ, második és harmadik normálformát (1NF, 2NF, 3NF). Késõbb az eredeti 3NF meghatározását pontosították, és néha "Boyce/Codd Normálforma" néven emlegetik (BCNF).A harmadik normálformát az adatelemek elemzése útján lehet elérni, a következõ tevékenységekkel:
Az elsõ szakaszban el kell távolítani az ismétlõdõ csoportokat a relációból. A további szakaszokban a funkcionális függõségekkel kell foglalkozni.
- a szemantikus kétértelmûségek megszûntetése
- adatok közötti függõségek azonosítása
- olyan reláció-halmaz kialakítása, amelyben minden relációnak van egyedi kulcsa és az összes attribútuma teljesen függ ettõl a kulcstól
4.6. Funkcionális függõségek
Ahhoz, hogy az elemzõ optimális relációkba (egyedekbe) tudja csoportosítani az attribútumokat, meg kell értenie az adatok közötti függõségeket. Ezeket a függõségeket formálisan funkcionális függõségnek hívják. A függõségek azonosításához a felhasználó adatokkal kapcsolatos tudásának pontos megszerzése elengedhetetlen, ami azt jelenti, hogy a függõségi és normalizálási fogalmak természetüknél fogva szemantikaiak (jelentésbeliek).A funkcionális függõség definíciója:
Egy R reláció Y attribútuma funkcionálisan függ egy másik, X attribútumtól az R reláción belül, akkor és csak akkor, ha X minden értékéhez pontosan egy Y érték tartozhat.
Ez azt jelenti, hogy adott X értékhez az Y értéket meg lehet határozni. Ezek után ugyanazt jelenti az "X funkcionálisan meghatározza Y-t" és az "Y funkcionálisan függ X-tõl". Tehát ahhoz, hogy megtaláljuk a funkcionális függõségeket, hasznos lehet, ha megvizsgáljuk, hogy egy adatelem meghatározza-e egy másik értékét.
A függõség meghatározását ki lehet terjeszteni attribútum-csoportokra is, azaz egy reláció egy attribútuma függhet egy attribútum-csoport értékeitõl.
Az elsõdleges (és jelölt) kulcs meghatározásából következik, hogy egy reláció minden attribútuma függ az elsõdleges kulcstól (és összes kulcsjelölttõl).
További kiterjesztést jelent a teljes funkcionális függõség bevezetése. A fenti meghatározást használva, tegyük fel, hogy X egy attribútum csoportot jelöl. Y funkcionálisan teljesen függ X-tõl, ha Y teljesen függ X-tõl és nem létezik olyan részhalmaza X-nek, amelytõl funkcionálisan függene. A relációs adatelemzésben a teljes funkcionális függõséget, mint célt, a részleges függõségek azonosításával és eltávolításával lehet elérni.
Determinánsnak (meghatározónak) lehet hívni bármely attribútumot (vagy attribútum csoportot), amelytõl valamely másik attribútum teljesen függ.
5.1. Általános elvek és áttekintés
A relációs adatelemzés használata során az elemzõnek át kell gondolnia:
A harmadik normálforma elõállításához a következõ lépéseket kell elvégezni:
5.2. Nem normalizált adatok megjelenítése
A nem normalizált adatok megjelenítésére az adatelemek felsorolását lehet használni, beljebb kezdéssel jelölve az ismétlõdõ csoportokat, akár egymásba ágyazva is. A relációs adatelemzési munkalapon a beljebb kezdés helyett egy sorszámot lehet hsználni, amely a legfelsõ szinten egy, minden alsóbb szinten ismétlõdõ csoportnál szintenként eggyel nagyobb. A B/K struktúrából kiindulva, az elsõ ismétlõdõ csoport adatelemei mellé 2 kerül, ha ezen a csoporton belül van egy másik ismétlõdõ csoport, akkor ott az adatelemek mellé 3 kerül stb. Minden szinten alá lehet húzni az adott szint elsõdleges kulcsát.
5.3. Elsõ normálformára hozás
A 3NF-es relációk elõállításának elsõ szakasza a nem normalizált adatok normalizált alakra hozása az adatelemek ismétlõdõ csoportjainak (beljebb kezdett részek, vagy egynél nagyobb szintszámú adatelemek) kiemelésével. Az ismétlõdõ csoport:
Egy adatelem, vagy adatelem csoport, amelynek több elõfordulási értéke is lehet a reláció elsõdleges kulcsának egy értékéhez.
Az elõálló normalizált alakot nevezik elsõ normálformának (1NF). A B/K adatszerkezetek valószínûleg eleve 1NF-ben vannak.
Az elsõ szinten ismétlõdõ csoportokat ki kell emelni, mint önálló relációkat, felvéve a külsõ reláció elsõdleges kulcsát a létrehozott reláció kulcsába, létrehozva így egy hierarchikus kulcsot. Ha vannak további ismétlõdési szintek, akkor a fent leírt eljárást azokra is el kell végezni.
5.4. Függõségek megértése
Ennél a tevékenységnél a felhasználóra kell támaszkodni. Az összes adatelemet végig kell nézni függõségi szempontból.
5.5. Második normálformára hozás
Az elsõ normálformáról a másodikra történõ átmenet során el kell távolítani a kulcsok részeitõl való függéseket. Csak azokat a relációkat kell megvizsgálni, amelyek nem egyszerû kulccsal rendelkeznek. Két lépésben kell az egészet végrehajtani.
Távolítsuk el a felesleges attribútumokat a kulcsból
Meg kell vizsgálni az elsõdleges kulcsok adatelemeit. Ahol a kulcsban szereplõ adatelemek egy részétõl is függ már az összes többi adatelem a relációban, ott a kulcs felesleges adatelemeit a kulcson kívülre ki kell emelni. Ezzel csökkentjük azoknak a relációknak a számát, amelyeket itt a második lépésben meg kell vizsgálni (mivel a kulcsok adatelemei esetleg egyetlen adatelemre csökkennek).
Távolítsuk el azokat az attribútumokat, amelyek nem függenek teljesen a kulcstól
A relációban lévõ összes nem kulcs attribútumra meg kell kérdezni a következõt:
"Ez az adatelem a kulcs egészétõl függ, vagy csak annak egy részétõl?"
A kulcs egy részétõl függõ attribútumokra létre kell hozni egy relációt, amelyben a fenti kulcs adott része az elsõdleges azonosító, és ebbe a relációba ki kell emelni az összes olyan attribútumot, amely ettõl a kulcstól teljesen függ.
5.6. Harmadik normálformára hozás
Ebben a tevékenységben a nem kulcsjelölttõl való függéseket kell eltávolítani, azaz olyan meghatározókat kell keresni, amelyek nem kulcsjelöltek:
A nem kulcsjelölt függõségek azonosítása
A következõ kérdéseket kell feltenni:
"A attribútum (vagy attribútum csoport) meghatározója B atribútumnak?" azaz: "A egy adott értékére csak egy lehetséges B érték létezik?"
ha igen, akkor:
"A attribútum kulcsjelölt?"
A nem 3NF-ben lévõ relációk felbontása
Azokat az attribútumokat, amelyeket az elõzõ tevékenységben függõnek találtunk, ki kell emelni külön relációkba, a meghatározóval, mint elsõdleges kulccsal.
A létrejövõ 3NF relációk között lehetnek megegyezõek, azaz olyanok, amelyekbe különbözõ adatelemek emeltünk ki a normalizálás különbözõ fázisaiban, de az elsõdleges kulcsuk ugyanaz.
5.7. Az eredmények racionalizálása
Itt meg kell vizsgálni az ugyanolyan elsõdleges vagy jelölt kulcsokkal rendelkezõ relációk összevonását és a felesleges (ugyanazon adatelemeket tartalmazó) relációk törlését. Az attribútumok sorrendje az egyes relációkon belül nem számít. A megmaradó relációknak értelmes nevet kell adni, általában a logikai adatmodell egyedeinek neveit.
Általánosabban, kapcsolat létezhet ott, ahol két attribútum (vagy attribútum csoport) különbözõ (vagy ugyanazon) relációkban ugyanahhoz a tartományhoz tartozik. Egy ilyen kapcsolatról csak az adatok jelentésének tudatában lehet eldönteni, hogy van-e értelme.
Az azonos nevû attribútumokról általában lehet feltételezni, hogy ugyanahhoz a tartományhoz tartoznak és jelentésükben is kapcsolódnak, de sokszor elõfordul, hogy ilyen attribútumok különbözõ néven szerepelnek, ami megnehezíti a kapcsolat felismerését.
Az elõzõekben elõállított és elnevezett 3NF-ben lévõ relációkat átalakítva a logikai adatmodell formájára és jelölésmódjára, az igényelt rendszer logikai adatmodelljének érvényességét le lehet ellenõrizni, összevetve a 3NF-bõl elõállított rész-modelleket az igényelt rendszer logikai adatmodelljével.
A 3NF relációkból a következõ szabályok alkalmazásával lehet logikai adatmodellt elõállítani:
Ez azt jelenti, hogy minden relációt vegyünk fel dobozként. Segíthet, ha a kulcsot illetve külsõ kulcsokat alkotó attribútumokat beírjuk a doboz belsejébe. Fontos úgy elhelyezni a dobozokat, hogy késõbb, a kapcsolatok elhelyezésénél ne legyenek zavaró keresztezõdõ vonalak. Az igényelt rendszer logikai adatmodellje segíthet ebben, hiszen nagyrészt ugyanazokat az egyedeket tartalmazza.
2. Jelöljük meg a hierarchikus kulcsok minõsítõ részét mint külsõ kulcsot
Ha egy relációban a teljes elsõdleges kulcs hierarchikus, akkor jelöljük meg a felsõbb szintet minõsítõ elemet (vagy elemeket) mint külsõ kulcsot. Ezeket a relációkat ne tekintsük összetett kulcsú relációknak a 3. és 4. szabályok használata során.
3. Ellenõrizzük, hogy minden összetett kulcsú relációhoz tartozik-e fõegyed
Ellenõrizzük, hogy az összes összetett kulcs minden egyes eleme megjelenik-e egyszerû vagy hierarchikus kulcsként más relációban. Ha egy elem része egy összetett kulcsnak, de nem önálló azonosítója egyik adatcsoportnak sem, akkor:4. Tegyük az összetett kulcsú relációkat alegyeddé
- hozzunk létre egy új adatcsoportot az elemmel, mint kulccsal
- tegyük ezt az új adatcsoportot fõegyedévé az összes olyan adatcsoportnak, amelyben az adott elem a kulcsnak része
- jelöljük meg külsõ kulcsként az összes olyan relációban, ahol nem kulcs elemként jelenik meg.
Tegyük az összetett kulcsú relációkat alegyedévé azoknak a relációknak, amelyekben az összetett kulcs egy vagy több eleme a leendõ fõegyed teljes kulcsaként szerepel. Tehát megtörténhet, hogy egy alegyed összetett kulcsának több elemét is egyetlen fõegyedhez kell rendelni. Minden elemet csak egyetlen fõegyedhez lehet rendelni.
5. Tegyük a külsõ kulcsot tartalmazó relációkat alegyeddé
Tegyük a külsõ kulcsot tartalmazó relációkat alegyedévé azoknak a relációknak, amelyek a kulcsot mint teljes elsõdleges kulcs tartalmazzák.Az elérési utak számának csökkentése érdekében megengedhetõ, hogy egy relációban a többszörös külsõ kulcsokat egyetlen összetett külsõ kulcsnak tekintsük.
7.1. Az egymásnak megfelelõ attribútumok nevei
A gyakorlatban, hacsak nem alkalmaztak nagyon szigorú elnevezési szabályokat, az egymásnak megfelelõ attibútumok nevei valószínûleg különböznek. Az ilyen attribútumoknak minden esetben ugyanabba a tartományba kell tartozniuk. Ha az egymásnak megfelelõ attribútumok tartományai is különbözõek, akkor meg kell vizsgálni a dokumentációt, mert valószínûleg nem megfelelõen fejez ki valamit.
7.2. Relációk elnevezése
Az elsõ szakaszban, a jelenlegi adatmodell kialakításánál esetleg végzett relációs adatelemzésnél a relációknak értelmes nevet kellett adni, mivel a cél a logikai adatmodell kialakítása volt.A harmadik szakasz elején, az igényelt adatmodell kialakításánál is lehetõség van a relációs adatelemzés használatára, a logikai adatmodell normalizáltságának ellenõrzése miatt. Itt a relációk az adatmodell egyedeibõl alakultak ki, ezért a nagyobb relációk és az egyedek nevei megegyeznek.
A harmadik szakaszban, a 340. lépésben ("Igényelt adatmodell megerõsítése"), az elemzõnek nincs közvetlen lehetõsége a létrejövõ relációkat egyedtípusok szerint azonosítani. Az egyetlen módszer az lehet, hogy a reláció nagyobb adatelemeit megpróbálja megfeleltetni az egyedtípusokba tartozó megfelelõ attribútumoknak.
7.3. Megfelelés az attribútum halmazokban
A relációs modell alapján létrejött egyedek attribútumai különbözhetnek a logikai adatmodellezés során létrejött egyedek attribútumaitól.A harmadik szakasz elején, ha a relációs adatelemzést a logikai adatmodell normalizáltságának ellenõrzésére használjuk, az elemzés kimutathatja, hogy egy egyedtípus egyes attribútumai más egyedtípusba tartoznak, olyanba, amelyik még nem is létezik. Az is elõfordulhat, hogy attribútumokat egyik egyedbõl egy másik egyedbe kell áttenni.
A 340. lépésben, a fentieken felül új attribútumok is létrejöhetnek. Ezeket a megfelelõ egyedtípusokhoz kell rendelni és a szükséges dokumentációt el kell készíteni hozzájuk.
7.4. Munkamódszer
Az elsõ szakaszban és a harmadik szakasz elején a relációs rész-adatmodelleket a logikai adatmodell kialakítására illetve kiegészítésére lehet felhasználni.
A 340. lépésben, ahol a relációs adatelemzést a logikai adatmodell érvényességének végsõ ellenõrzésére használják, a következõ nagyobb tevékenységeket kell végezni:



