A relációs adatmodellt/adatbázist hogyan magyaráznátok el egyszerűen?
Valamilyen hétköznapi életből vett példával, minél kevesebb szakszóval, és minél kevésbé absztrakt módon.
Olyannak, aki a google-n talált definíciók alapján nem érti.
Az adatbázisban az adatokat táblázatokban tárolod.
Egy táblázat egy adott típusú objektumok tulajdonságait tartalmazza. Pl Ember tábla
A táblázat oszlopai egy egy tulajdonságnak felelnek meg:
Pl Emberek táblában lehet Kor, Név stb oszlop
A táblázat sorai pedig már a konkrét, tárolt egyedek tulajdonságait tartalmazzák.
Pl van az Emberek tábla a név és kor oszlopokkal.
Ebben akarod eltárolni Józsit meg Gizit.
Akkor lesz két sorod:
Józsi, 32
Gizi, 87
1-2 példát írtam, de inkább csak azt emeltem ki, ami szerintem fontos.
Van a valóság, aminek egy reprezentációját szeretnénk leképezni az adatbázisunkban.
Egy relációs adatbázisban az adatokat relációkban tároljuk. Egy relációban olyan rekordok szerepelnek, amelyek előre meghatározott számú, tartalmú és formátumú adatmezőkben tartalmazzák a - valóságot reprezentáló - adat attrubútumait. Az említett megkötéseket a reláció sémája rögzíti.
Egy relációra egy valós életbeli példa egy TÁBLÁZAT. A szoftveres megvalósítás során is általában táblának/táblázatnak hívják az egyes relációkat tároló adatszerkezeteket, mert táblázatos formában egyszerűen megjeleníthető a tartalom. A táblázat sorai a rekordok, oszlopai a rekordok meghatározott attrubútumait tartalmazzák. Attribútum annyit tesz, hogy egy olyan eleme a rekordnak, ami egy számunkra valamiért fontos információt reprezentál és tárol. Pl. a relációban cipőket tárolunk, az első sorban szereplő rekord egy 41-es, kék Abibas sportcipő, ahol a a "szín" attribútumot mondjuk a 3. oszlop tárolja, jelen esetben ez a kék szín lesz. A reláció sémája a példában a táblázat fejléce és a kapcsolódó magyarázat lenne.
Mivel egy ilyen reprezentációban jellemző a redundancia - azaz hogy egy-egy attribútum értéke sokszor ismétlődhet -, ezért szokás NEM mindent egyetlen relációban tárolni. Miért? Semmi nem tiltja. Elméletben (!) kevesebb erőforrást használ, és bizonyos esetekben hatékonyabban használható, HA TÖBB relációra bontjuk a sémát. Ha relációs adatbázisról beszélünk, akkor általában ezt is beleértjük.
Egy másik ok például, hogy néha csak egyes attribútumokat szeretnénk rögzíteni, és később csak hivatkozni szeretnénk rájuk. Egy harmadik ok, hogy a rekordok hivatkozhatnak egymásra, és módosítások esetén ebből nehézségek adódhatnak. Egy negyedik ok az, hogy általában nem egyféle entitást tárolunk, és minden entitásnak meg vannka a maga elidegeníthetetlen (azaz számunkra valamiért fontos) attrubútumai, amik nem minden entitásnál ugyanazok. Pl. tárolunk Gyerekeket, Nagymamákat és Kutyákat. Egy Kutya lehet ugatós, egy Nagymama nem lehet ugtaós. Szóval el kéne tárolnod egy csomó attribútumot, amiknek null az értéke, és az entitás típusát is.
Egy relációs adatbázisban tehát látszik, hogy fontos dolog az, hogy a táblák hivatkoznak egymásra, ezért a hivatkozásokra is vonatkoznak állítások, megkötések - ezek szintén részét kell képezzzék az adatbázis sémájának a táblák sémája mellett. Illetve ha elfogadjuk azt a tényt, hogy egy jólformázott sémában az egyes táblák tulajdonképpen entitásokat tárolnak, akkor az egyes relációkra is vonatkoznak mrgkötések az adatbázis sémában.
Relációs adatbázisban jól lehet nagy mennyiségű rekordot rendezni, ha vannak rendezhető vagy kategorikus attribútumok.
Lekérdezéskor fontos ismerni az entitások közti pontos kapcsolatot, és a valós életre vonatkozó kérdést a használónak le kell tudnia "fordítani" az adatbázis sémára.
Sok mindentől függ, hogy mikor jó relációs adatbázist használni, szerintem fontos hangsúlyozni a tanulók számára, hogy létezik másféle logika is, ez nem ilyen dogmatikus dolog, hogy adatot tárolni relációs adatbázisban KELL.
Példának én egy olyan példát hoznék fel, hogy van egy weblapod, ahol lehet keresni, meg lehet adatot rögzíteni, és azt is bemutatnám, hogy egy jó alkalmazás rétegesen van felépítve. Pl. hogy a usernek nem kell ismernie a DB-sémát, csak bizonyos Nézeteket tud használ a UI-on keresztül. Vagy hogy már a backend-programozó is változtathat az adatreprezentáción, ha az számára előnyös.
A reláció absztrakt fogalom. A modell absztrakt fogalom. Először azt kell megérteni, hogy mit jelent a reláció, mit jelent a modell, utána lehet továbbmenni arra, hogy mit jelent az adatbázis, hogy mit jelent a relációs adatbázis modell.
De ismét elmondom, hogy legyen mit lepontoznod. Lehet analógiákkal magyarázni absztrakt kifejezéseket, de abból nem lehet megérteni a valódi tartalmát. Szívesen elmagyarázom analógiával azt is, hogy mit jelent egy integrálás, csak amikor oda kerül a sor, hogy integrálni kellene egy adatot, akkor egy ködös valami lesz, mert a valódi tartalma nem derült ki belőle.
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!