Adatbázis-kezelés · Rekordok, SET-ek és navigáció

A hálós adatmodell

A hálós modellben a rekordok közötti kapcsolatok meghatározott bejárási utakat alkotnak. Megismerjük a tulajdonos–tag szerkezetet, az ER-modell leképezését, a tagsági szabályokat és a navigáció lépéseit, majd egy műhely-adatbázison kapcsoljuk össze az egészet.

Rekord és SETER–hálós leképezésNavigáció és integritás18 önellenőrző feladat

1. rész

A hálós modell szemlélete és eredete

AlapfogalomA hálós adatmodell rekordtípusokkal és a rekordok közötti, tulajdonos–tag szerepekre épülő SET-típusokkal írja le az adatbázis szerkezetét.

A hálós modell történetileg a nagy mennyiségű, összekapcsolt adatok hatékony kezelésének igényére épült. A CODASYL adatbázis-munkacsoportjának leírásai a hetvenes évek elején tették széles körben ismertté ezt a megközelítést. A tervező nemcsak azt mondja meg, milyen rekordok léteznek, hanem azt is, milyen kapcsolatokon keresztül lehet egyik rekordtól a másikig eljutni.

A hálós elnevezés az adatbázis szerkezetére utal, nem számítógép-hálózatokra vagy internetes adattárolásra. Egy rekord több, különböző SET-típus tagjaként többféle kapcsolatban is szerepelhet. Ez a lehetőség oldja a szigorú, egyetlen szülőre épülő fa korlátait, de a szerkezetet tudatosan meg kell tervezni.

A modell navigációs szemléletű. A program gyakran egy rekordot választ ki, majd annak kapcsolatait követve keres további rekordokat. A „keresd meg a műhelyt, járd be a hozzá tartozó eszközigényeket, és keresd meg az eszközöket” műveletsor tipikus hálós gondolatmenet. Relációs környezetben ugyanezt a célt többtáblás lekérdezés is megfogalmazhatja.

A hálós modell nem egyszerűen hibás vagy elavult relációs modell: más logikai szervezési és elérési megközelítés. Tanulásakor azt vizsgáljuk, milyen szerkezetekkel fejez ki kapcsolatokat, és milyen többletmunkát kíván az útvonalak kezelése. A ma ismert gráfadatbázisokkal sem szabad automatikusan azonosítani: a klasszikus CODASYL SET kötött tulajdonos–tag szabályai sajátosak.

Három eltérő nézőpont
ModellAlapvető gondolatEgy műhely eszközeinek keresése
RelációsTáblák, kulcsok és deklaratív lekérdezésKapcsolódó táblák összekapcsolása.
HálósRekordok és bejárható SET-kapcsolatokTulajdonosból a kapcsolórekordokhoz, majd az eszközökhöz.
HierarchikusGyökérből induló szülő–gyerek faGyökér és leszármazottai mentén haladás.

2. rész

Rekord, rekordtípus és adatelem

AlapfogalomA rekord egy konkrét előfordulás összetartozó adatelemeit tartalmazza. A rekordtípus a hasonló szerkezetű rekordok nevét, mezőit és azok típusát írja le.

A MUHELY rekordtípus például a muhely_id, cim, kezdes és max_letszam mezőket tartalmazhatja. A Robotépítés műhely egy konkrét rekord: az azonosítója 101, kezdési időpontja 2026. november 6. 14 óra, létszámkorlátja 24. A rekordtípus a szerkezetet, a rekord az adott előfordulás értékeit adja.

Az adatelem a rekordban névvel és típussal megadott mező. Az azonosító lehet egész szám, a cím szöveg, a kezdés időpont. A típusok és a mezőhosszak a rendszer által elfogadott értékeket befolyásolják. Egy telefonszámot például rendszerint szövegként célszerű tárolni, mert a pluszjel és a kezdő nullák is jelentést hordozhatnak.

Összetett attribútum esetén az összetartozó részmezők csoportot alkotnak. Egy kapcsolattartó neve állhat családnévből és utónévből; a cím irányítószámból, településből és utcából. Ez a rekord szerkezetének felosztása, nem önálló SET-kapcsolat.

A többértékű attribútum hálós környezetben vektormezőként, az összetett többértékű tulajdonság pedig ismétlődő csoportként is megjelenhet. A konkrét lehetőségek és korlátok rendszerfüggők. Ha az értékeket önállóan azonosítani, más rekordokhoz kapcsolni vagy sokszor módosítani kell, külön rekordtípus jobb megoldás lehet.

Rekordszerkezeti elemek
FogalomSaját példaMit jelent?
Egyszerű adatelemmuhely_id: egészEgy mező, egy azonosítóérték.
Összetett csoportkapcsolattarto: csaladnev, utonevÖsszetartozó részmezők.
Vektormezőcimkek: robotika, elektronikaEgy tulajdonság több egyszerű értéke.
Ismétlődő csoportelerhetosegek: típus és cím párokTöbb, azonos belső szerkezetű csoport.

3. rész

A SET-típus: tulajdonos és tag

AlapfogalomA SET-típus névvel azonosított tulajdonos–tag kapcsolat. Egy SET-előfordulásnak egy tulajdonosrekordja és nulla vagy több tagrekordja van.

Egy HELYSZIN rekordhoz több MUHELY rekord tartozhat. A HELYSZIN_MUHELY SET tulajdonos rekordtípusa HELYSZIN, tag rekordtípusa MUHELY. A típust bemutató Bachman-diagramon a kapcsolat a tulajdonostól a tag felé irányul. A kapcsolat neve a két rekordtípus között szerepel.

A SET nem azonos a matematikai halmazzal. Van kitüntetett tulajdonosa, a tagokhoz tartozik bejárási sorrend, és a tulajdonos típusa eltér a tagokétól. A rekordok sorrendjét adhatják mezőértékek, beszúrási szabályok vagy rendszerbeli döntések. A „halmaz” kifejezést ebben a sajátos adatbázis-értelemben használjuk.

Egy helyszín akkor is tulajdonosa lehet egy SET-előfordulásnak, ha még nincs hozzá rendelt műhely. A tulajdonos tehát nem követeli meg legalább egy tag létezését. Fordítva a tag önálló létezésének megengedettségét külön tagsági szabály határozza meg.

Egy adott SET-típusban egy tagrekord egy időben legfeljebb egy SET-előforduláshoz tartozik. A Robotépítés műhely a HELYSZIN_MUHELY típuson belül nem lehet egyszerre két helyszín tagja. Más SET-típusban azonban ugyanaz a műhely egy oktatóhoz is kapcsolódhat. E különbség adja a hálós szerkezet egyik lényeges sajátosságát.

Bachman-diagram: egy SET-típus
Bachman-diagram: egy SET-típusA nyíl HELYSZIN tulajdonostól MUHELY tag felé mutat. Ez típusdiagram; a tagok számát az egyes előfordulások adják.HELYSZINhelyszin_id [azonosító]nevMUHELYmuhely_id [azonosító]cim, kezdesHELYSZIN_MUHELY SET

A nyíl HELYSZIN tulajdonostól MUHELY tag felé mutat. Ez típusdiagram; a tagok számát az egyes előfordulások adják.

Egy SET leírásának három alapadata
ElemPélda
SET neveHELYSZIN_MUHELY
Tulajdonos rekordtípusHELYSZIN
Tag rekordtípusMUHELY

4. rész

SET-típus és SET-előfordulás

AlapfogalomA SET-típus a kapcsolat szerkezetét definiálja; a SET-előfordulás egy adott tulajdonoshoz ténylegesen kapcsolt tagrekordok együttese.

A HELYSZIN_MUHELY típusból a Makerspace helyszínhez egy előfordulás tartozik, a Digitális laborhoz pedig egy másik. Az elsőben Robotépítés és 3D-prototípus műhely szerepelhet, a másodikban Adatvizualizáció. A két előfordulás a kapcsolat azonos szerkezetét valósítja meg, de más rekordokkal.

A tagok száma előfordulásonként különbözhet. Egy új helyszín előfordulása üres is lehet. Ha egy tagot szabályosan másik helyszínhez kapcsolunk, a tagság módosul, nem a HELYSZIN_MUHELY típus definíciója változik.

Az előfordulási diagramon konkrét azonosítókat és értékeket használunk. A típusdiagram mezőneveit nem helyettesítjük észrevétlenül konkrét nevekkel: az olvasónak mindig tudnia kell, hogy szerkezetet vagy adatállapotot lát.

Ha azt mondjuk, „a műhely több tulajdonoshoz tartozik”, meg kell nevezni a SET-típusokat is. Egy műhely HELYSZIN_MUHELY-beli tulajdonosa lehet Makerspace, OKTATO_MUHELY-beli tulajdonosa pedig Fekete Réka. Ez nem ugyanannak a SET-típusnak két külön tulajdonosa.

Két konkrét SET-előfordulás
SET-típusTulajdonosrekordTagrekordok
HELYSZIN_MUHELYH7: MakerspaceM101: Robotépítés; M103: 3D-prototípus
HELYSZIN_MUHELYH8: Digitális laborM102: Adatvizualizáció
HELYSZIN_MUHELYH9: FotóstúdióNincs tag

5. rész

Bejárási sorrend és fizikai mutatók

AlapfogalomA hálós adatelérés a rekordok kapcsolatait követi. Láncolt megvalósításban a következő, előző és tulajdonos rekordot mutatók segítségével lehet elérni.

A klasszikus szemléltetésben a SET-előfordulás rekordjai körkörös láncot alkotnak. A tulajdonostól az első taghoz, a tagtól a következőhöz, az utolsótól pedig a kör lezárásához jutunk. Ez fizikai megvalósítási kép, nem új logikai kapcsolat a tagok között.

A first, next és prior jellegű mutatók az első, következő vagy előző rekord elérését segíthetik, az owner mutató a tulajdonos közvetlen megtalálását teszi lehetővé. A mutatók konkrét tárolási módja és rendelkezésre állása a DBMS-től függ; nem minden hálós rendszer belső rekordképe azonos.

A SET tagjainak sorrendje eltérhet a rekordok üzleti azonosítójának sorrendjétől. Ha kezdes szerint rendezzük a műhelyeket, a NEXT a következő időpontú műhelyt jelenti az adott előfordulásban. Ha beszúrási sorrendet használunk, ugyanez a parancs más rekordhoz vezethet.

A bejárási útvonal megválasztása teljesítmény és programozási szempontból is fontos. Ismert helyszínből gyorsan elérhetjük annak műhelyeit, de „minden műhely, amelynek címében robot szerepel” nem feltétlenül ugyanilyen természetes elérési út. Ehhez külön keresési lehetőség vagy más útvonal szükséges.

Konkrét előfordulás körkörös bejárása
Konkrét előfordulás körkörös bejárásaH7 tulajdonoshoz M101, M103 és M105 tagok tartoznak. A kör a szemléltetett lánc megvalósítását mutatja; az owner elérés külön logikai művelet.H7 · MakerspaceM101 · RobotépítésM103 · 3D-prototípusM105 · Elektronikaelső tagkövetkezőkövetkezőkör lezárása

H7 tulajdonoshoz M101, M103 és M105 tagok tartoznak. A kör a szemléltetett lánc megvalósítását mutatja; az owner elérés külön logikai művelet.

Kidolgozott példa · A NEXT jelentése

A H7 helyszín műhelyei a kezdés szerinti sorrendben M101, M103, M105.

  1. FIRST után M101 az aktuális tag.
  2. NEXT után M103 lesz az aktuális tag.
  3. Még egy NEXT után M105 következik.
  4. A következő lépés a tagok bejárásának végét jelzi; ezt a programnak kezelnie kell.

6. rész

Rendszertulajdonos és rekurzív kapcsolatok

AlapfogalomA rendszertulajdonos SET tulajdonosi szerepét a rendszer látja el. Rekurzív kapcsolatban ugyanannak a rekordtípusnak az előfordulásai vesznek részt eltérő szerepekben.

Egy rendszer által tulajdonolt MUHELYEK SET hozzáférést adhat a műhelyrekordok összességéhez. A tulajdonos nem egy felhasználói helyszín- vagy oktatórekord, hanem rendszerbeli kiindulópont. A bemutatott egyetlen rendszertulajdonos előfordulásban a műhelyek mind elérhetőek lehetnek.

A rendszertulajdonos kapcsolat nem ad új üzleti jelentést a rekordoknak. Nem azt állítja, hogy a rendszer szervezi az összes műhelyt, hanem egy nyilvántartási és hozzáférési szerkezetet fejez ki. Ezért a SYSTEM jelzés nem kezelhető közönséges alkalmazási egyedként.

Rekurzív példa a mentorálás: egy SZEMELY más SZEMELY előfordulásokat mentorál. A szerepek mentor és mentorált. Ha közvetlen azonos típusú tulajdonos–tag SET-et nem használhatunk, külön MENTORALAS kapcsolórekordot hozunk létre, amely két SET tagja: az egyik tulajdonosa a mentor, a másiké a mentorált személy.

A kapcsolórekord kezdési időpontot és megjegyzést is tárolhat. Ha a kapcsolat többször létrejöhet ugyanazon pár között, külön azonosító vagy időszak is szükséges az előfordulások megkülönböztetésére. A szerepek megnevezése akkor is fontos, ha mindkét tulajdonos ugyanabból a rekordtípusból származik.

Rekurzív mentorálás szerepekkel
Rekurzív mentorálás szerepekkelA SZEMELY két külön SET-ben tulajdonos: MENTORKENT és MENTORALTKENT. A MENTORALAS rekord mindkettő tagja.SZEMELYid, nevMENTORALASmentoralas_idkezdesMENTORKENT SETMENTORALTKENT SET

A SZEMELY két külön SET-ben tulajdonos: MENTORKENT és MENTORALTKENT. A MENTORALAS rekord mindkettő tagja.

Rendszertulajdonos SET

SYSTEM → MUHELYEK SET → MUHELY

Egy rendszertulajdonos előfordulás; több MUHELY tagrekord.

7. rész

ER-elemek leképezése hálós szerkezetre

AlapfogalomA leképezés az ER-modell egyedeit, attribútumait és kapcsolatait a választott logikai modell megfelelő szerkezeteivel fejezi ki.

Egy ER-egyedtípusból általában rekordtípus lesz. Az egyszerű attribútumok adatelemként, az összetett attribútumok csoportként jelenhetnek meg. Többértékű tulajdonságot vektormezővel vagy ismétlődő csoporttal is kezelhetünk, ha ez illeszkedik a rendszer képességeihez és a használathoz.

Az attribútum leképezése nem pusztán formai művelet. Egy önálló azonosítóval rendelkező eszköz nem ugyanaz, mint egy műhelyben felsorolt egyszerű szöveges címke. Ha az eszköz más kapcsolatokban is szerepel, saját rekordtípusra van szüksége.

Gyenge egyednél a tulajdonoshoz kötött létet is meg kell őrizni. Egy műhelyen belüli sorszámmal azonosított FELADAT rekordot a MUHELY_FELADAT SET-ben lehet elhelyezni. A sorszám csak az adott műhelyen belül egyedi, ezért a tulajdonosi környezet nélkül nem teljes az azonosítás.

Ha a gyenge egyed egyszerű ismétlődő adatcsoportként tárolható, és máshonnan nem kell rá hivatkozni, beágyazott csoport is szóba jöhet. Ha önálló kapcsolatai vannak vagy külön kezelendő, a saját rekordtípus és SET egyértelműbb. A választásnál a jelentést és a kezelési igényeket együtt vizsgáljuk.

ER-elemek hálós megfelelői
ER-fogalomHálós megoldásMegjegyzés
EgyedtípusRekordtípusKonkrét egyedből rekord lesz.
Egyszerű attribútumAdatelemTípust is megadunk.
Összetett attribútumCsoportA részmezők együtt szerepelnek.
Többértékű attribútumVektormező vagy külön rekordokA kapcsolódási igény dönti el.
Gyenge egyedTulajdonoshoz kötött tagrekordAz azonosítást a tulajdonosi környezet is meghatározza.

8. rész

Az 1:1 kapcsolat leképezése

AlapfogalomAz 1:1 kapcsolat olyan kapcsolat, amelyben egyik oldali előforduláshoz legfeljebb egy másik oldali előfordulás kapcsolódik.

Egy RESZTVEVO legfeljebb egy személyre szóló BELÉPŐ-t kaphat, minden kiadott BELÉPŐ pedig pontosan egy résztvevőhöz tartozik. A résztvevő részvétele lehet részleges, a belépőé teljes. A RESZTVEVO tulajdonos és BELEPO tag szerep kézenfekvő: a belépő nem létezhet résztvevő nélkül, résztvevő viszont belépő nélkül is nyilvántartható.

Egy SET alapértelmezett tulajdonos–tag szerkezete 1:N jellegű. Az 1:1 jelentés megőrzéséhez ezért külön kell biztosítani, hogy egy tulajdonoshoz legfeljebb egy tag tartozzon. A SET puszta felrajzolása nem teszi automatikusan egy-tagúvá az előfordulásokat.

A kapcsolat attribútuma, például a kiadás dátuma, a tagrekordba kerülhet, ha egyértelműen ahhoz az egy kapcsolathoz kötődik. A résztvevő általános neve vagy e-mail-címe ettől még a RESZTVEVO rekord tulajdonsága marad.

Ha mindkét oldalon teljes a részvétel, a tulajdonos választása további tervezési döntés. Ha egyik oldalon sem kötelező, a tagsági szabályokat és az előfordulási korlátokat különösen gondosan kell megfogalmazni. A szerkezet és az integritási előírás együtt adja vissza az ER-modell jelentését.

Kidolgozott példa · Személyre szóló belépő

RESZTVEVO → BELEPO SET, legfeljebb egy tag tulajdonosonként.

  1. R17 résztvevőnek B91 belépője van.
  2. R18 résztvevőnek még nincs belépője: megengedett.
  3. B92 belépő nem maradhat résztvevő nélkül.
  4. R17-hez második aktív belépő kapcsolása sértené a legfeljebb egy tag szabályt.

9. rész

Az 1:N kapcsolat leképezése

AlapfogalomAz 1:N kapcsolat hálós megfelelője egy SET-típus, amelyben az 1 oldali rekordtípus a tulajdonos, az N oldali rekordtípus a tag.

A HELYSZIN–MUHELY kapcsolatban a helyszín az 1 oldal, a műhely az N oldal. Egy műhely az adott SET-típus egyetlen helyszín-előfordulásához tartozik. Egy helyszínhez több műhely kapcsolódhat, így a SET természetes módon adja vissza az 1:N maximumot.

A részvétel minimumát itt is a tagsági szabályok és az üzleti követelmények határozzák meg. Ha egy műhelyet ideiglenesen helyszín nélkül is rögzíthetünk, opcionális tagság szükséges. Ha minden műhelyhez azonnal létező helyszín kell, a létrehozás és tagság együtt kezelendő.

A kapcsolat saját attribútuma, például egy adott helyszín használati díja az adott műhelynél, a tagrekordban tárolható, mert a műhely ebben a kapcsolatban egyetlen tulajdonoshoz tartozik. A helyszín állandó címe viszont a HELYSZIN rekordé.

A tulajdonos azonosítója a tagrekordban külön mezőként is szerepelhet, ha a rendszer vagy az alkalmazás megköveteli. A hálós kapcsolat tényleges bejárása azonban a SET kapcsolatán alapul. Nem szabad úgy tenni, mintha a kulcsérték beírása minden rendszerben automatikusan létrehozná a tagságot.

Tulajdonságok helye
TulajdonságRekordMiért?
Helyszín címeHELYSZINA helyszínhez tartozik, nem egy adott műhelyhez.
Műhely címe és kezdéseMUHELYA műhely saját adata.
Az adott műhely helyszínhasználati díjaMUHELYA példában egy műhely egy helyszínhez kapcsolódik.

10. rész

Az M:N kapcsolat és a kapcsolórekord

AlapfogalomM:N kapcsolat hálós leképezésénél külön kapcsolórekordtípust hozunk létre, amely a két résztvevő rekordtípushoz tartozó két SET tagja.

Egy MUHELY több ESZKOZ-t használhat, és ugyanaz az ESZKOZ több műhelyben is szerepelhet. Közvetlen egyetlen SET nem elegendő: az eszköz egy SET-típusban legfeljebb egy műhely előfordulásához tartozhatna. Ezért a használati kapcsolatot külön HASZNALAT rekordokkal írjuk le.

A MUHELY_HASZNALAT SET tulajdonosa MUHELY, tagja HASZNALAT. Az ESZKOZ_HASZNALAT SET tulajdonosa ESZKOZ, tagja ugyanaz a HASZNALAT rekordtípus. Egy konkrét használat így pontosan egy műhelyt és egy eszközt kapcsol össze, miközben mindkét tulajdonosnak több használati tagja lehet.

A darabszám vagy a foglalás időtartama a használat tulajdonsága. Nem a műhely általános mezője, mert eszközönként eltérhet; nem is az eszköz általános mezője, mert műhelyenként eltérhet. A kapcsolórekord éppen ezt a köztes jelentést őrzi.

A kapcsolórekord nem feltétlenül üres technikai segéd. A kapcsolat attribútumainak helye és a bejárás csomópontja is. Ha ugyanaz az eszköz ugyanabban a műhelyben több külön időszakban szerepelhet, a használatok azonosítását is meg kell tervezni, például hasznalat_id vagy időszak segítségével.

M:N kapcsolat két SET-tel
M:N kapcsolat két SET-telA HASZNALAT rekord mindkét SET tagja. A nyilak mindig a tulajdonostól a tag felé mutatnak.MUHELYmuhely_id, cimESZKOZeszkoz_id, nevHASZNALAThasznalat_iddarabszamMUHELY_HASZNALATESZKOZ_HASZNALAT

A HASZNALAT rekord mindkét SET tagja. A nyilak mindig a tulajdonostól a tag felé mutatnak.

Konkrét használati rekordok
KapcsolórekordMűhely tulajdonosEszköz tulajdonosDarabszám
U1M101: RobotépítésE1: Multiméter6
U2M101: RobotépítésE2: Forrasztóállomás3
U3M103: 3D-prototípusE1: Multiméter2

11. rész

Többágú kapcsolat és szerepkötött navigáció

AlapfogalomEgy többágú kapcsolat kapcsolórekordja a kapcsolat minden résztvevő rekordtípusához egy-egy SET-tagságon keresztül kapcsolódik.

A KIADAS kapcsolat azt rögzíti, melyik MUHELY számára melyik ANYAG-ból melyik RAKTAR ad ki egy meghatározott mennyiséget. Az anyag–műhely kapcsolat mellé a kiadó raktár önálló résztvevőként kerül. A mennyiség a teljes hármashoz tartozik.

A KIADAS kapcsolórekord három SET tagja: MUHELY_KIADAS, ANYAG_KIADAS és RAKTAR_KIADAS. Egy kiadási előfordulásnak mindhárom kapcsolatban egy tulajdonosa van. A kiadas_id az ismétlődő kiadási események megkülönböztetésére szolgálhat.

A három részvevő összefüggését általában nem helyettesíti három egymástól független páronkénti kapcsolat. Abból, hogy egy raktár tárol anyagot és egy műhely használja azt, még nem derül ki, ténylegesen melyik raktárból adták ki a műhely részére. A kapcsolórekord az összetartozó szerepeket együtt tárolja.

Az owner művelethez a megfelelő SET-nevet is meg kell adni. Ugyanabból a KIADAS rekordból más tulajdonost kapunk MUHELY_KIADAS, mint ANYAG_KIADAS szerint. A több SET-ben való tagság hasznos, de az útvonalat pontosan kell megnevezni.

Háromrésztvevős kiadás
Háromrésztvevős kiadásA KIADAS ugyanaz a rekord a három SET-ben. A mennyiség és a dátum a kiadási eseményt írja le.MUHELYmuhely_id, cimANYAGanyag_id, nevKIADASkiadas_id, datummennyisegRAKTARraktar_id, nevMUHELY_KIADASANYAG_KIADASRAKTAR_KIADAS

A KIADAS ugyanaz a rekord a három SET-ben. A mennyiség és a dátum a kiadási eseményt írja le.

Kidolgozott példa · Egy kiadás értelmezése

K41 kiadás: M101 műhely, A8 vezeték, R2 elektronikai raktár; mennyiség 12 méter.

  1. MUHELY_KIADAS szerinti owner: M101.
  2. ANYAG_KIADAS szerinti owner: A8.
  3. RAKTAR_KIADAS szerinti owner: R2.
  4. A 12 méter egyik résztvevő önálló tulajdonsága sem: a kiadásé.

12. rész

Beszúrási szabályok: automatikus vagy kézi tagság

AlapfogalomA beszúrási szabály azt írja elő, hogy új tagrekord tárolásakor a SET-tagság automatikusan létrejön-e, vagy azt külön kapcsolási művelet hozza létre.

Automatikus beszúrásnál a rendszer a létrehozott rekordot a meghatározott SET-előfordulásba kapcsolja. A megfelelő tulajdonos kiválasztását a definíció és az aktuális környezet szabályozza. Nem elegendő csak azt mondani, hogy „automatikus”: azt is tudni kell, melyik előforduláshoz kerül az új tag.

Kézi beszúrásnál az új rekord tárolása és a tagság létrehozása két elkülönülő lépés. Egy tervezett műhelyet például előbb helyszín nélkül rögzítünk, majd később CONNECT művelettel hozzárendelünk egy helyszínhez. Ez csak akkor megengedett, ha az önálló létezésre vonatkozó szabályokkal összeegyeztethető.

A beszúrási szabály a tagság keletkezésének módjáról szól; nem azonos a későbbi megtartási szabállyal. Az automatikusan kapcsolt rekord későbbi leválasztása lehet megengedett vagy tiltott. A két döntést külön kell megfogalmazni.

A konkrét DBMS nem feltétlenül minden elméletben megkülönböztetett kombinációt támogat azonos módon. A tananyag a fogalmi különbséget mutatja meg, a végrehajtható definícióhoz a használt rendszer tagsági opcióit és állapotkezelését kell követni.

Beszúrás és kapcsolás
VálasztásMi történik új rekordnál?Példa
AutomatikusA definíció szerinti előfordulásba tagként kerül.Műhely létrehozása már kijelölt helyszínhez.
KéziA tagságot külön kapcsolási művelet hozza létre.Tervezett műhely helyszínének későbbi kiválasztása.

13. rész

Megtartási szabályok: optional, mandatory, fixed

AlapfogalomA megtartási szabály a tagrekord és SET-előfordulása közötti kapcsolat későbbi leválaszthatóságát vagy áthelyezhetőségét korlátozza.

Optional tagságnál megengedhető, hogy a rekord SET-tagság nélkül is létezzen. Egy műhelyet leválaszthatunk a helyszínéről, majd később másikhoz kapcsolhatunk. A leválasztás a rekord többi SET-tagságát nem feltétlenül szünteti meg.

Mandatory tagságnál a már kapcsolt tagot nem hagyhatjuk egyszerűen az adott SET-típus előfordulásán kívül. Ha tulajdonosváltás megengedett, azt szabályos átkapcsolásként kell elvégezni. A beszúrás kezdeti állapotának részletei a választott opciókombinációtól és a rendszertől függenek; a kifejezést nem szabad minden DBMS-ben azonos életciklus-szabályként kezelni.

Fixed tagság erősebb kötöttséget jelent: a létrejött tulajdonosi kapcsolat nem cserélhető szabadon másik előfordulásra. Például egy műhelyen belül definiált, tulajdonoshoz kötött feladatot nem helyezünk át egyszerűen másik műhelyhez. A rekord törlése és a kapcsolat megszüntetése nem ugyanaz a művelet.

Tulajdonos törlésekor a tagok kezelése külön kérdés. A rendszer és a definíció szerint lehet tiltás, leválasztás vagy tagok törlése. Nem következik az optional szóból, hogy minden rekord automatikusan törlődik, és a mandatory sem minden esetben jelent általános kaszkád törlést. A törlési hatást külön kell ellenőrizni.

A megtartás három fogalmi esete
SzabályLeválasztva megmaradhat?Másik tulajdonoshoz átkerülhet?
OptionalMegengedhetőMegengedhető, a többi szabály mellett.
MandatoryA már létrejött kötelező tagságot nem hagyjuk megszűnniSzabályos átkapcsolás lehetséges lehet.
FixedNem maradhat önállóan a kötött kapcsolatból kivéveA kötött tulajdonosi kapcsolat nem cserélhető.

14. rész

Sémaleírás: SET-választás és sorrend

AlapfogalomA hálós sémaleírás megadja a rekordtípusokat, SET-típusokat, tagsági szabályokat, a tulajdonos kiválasztását és a bejárási sorrendet.

A SET NAME, OWNER és MEMBER jellegű elemek a név és a szereplők megadását szolgálják. Az INSERTION és RETENTION a tagság létrehozását és későbbi megőrzését írja le. A pontos parancsszöveg a DBMS nyelvétől függ; itt a szerkezet tartalmát tanuljuk, nem általános SQL-szintaxist.

A tulajdonos kiválasztása támaszkodhat az alkalmazás aktuális állapotára, megadott értékekre vagy a definícióban rögzített szerkezeti szabályra. Ha a program rossz helyszínt állít aktuálissá, az új rekord rossz előforduláshoz kapcsolódhat, ha más ellenőrzés nem védi. Ezért az aktuális tulajdonos kiválasztása tudatos programlépés.

A SET sorrendje lehet megadott kulcsmező szerinti növekvő vagy csökkenő rend. Más lehetőség az elejére vagy végére beszúrás, illetve az aktuális tag előtt vagy után elhelyezés. A rendszer alapértelmezett sorrendje is külön választás.

Rendezett SET esetén a rendezési mező módosítása a bejárási helyet is befolyásolhatja. A megvalósításnak meg kell őriznie a definícióban előírt rendet. A program nem támaszkodhat olyan sorrendre, amelyet a séma nem garantál.

Fogalmi SET-definíció – szemléltető jelölés
SET NAME IS HELYSZIN_MUHELY
OWNER IS HELYSZIN
MEMBER IS MUHELY
INSERTION IS AUTOMATIC
RETENTION IS MANDATORY
ORDER IS SORTED BY kezdes ASCENDING
OWNER SELECTION: az alkalmazás által kijelölt helyszín
Sorrend és bejárás
SorrendA NEXT várható jelentése
kezdes növekvőA következő időrendbeli műhely.
Beszúrás a végéreA később hozzákapcsolt következő tag.
Rendszer alapértelmezéseCsak a rendszer által meghatározott bejárás állítható biztosan.

15. rész

Aktuális rekordok, UWA és státusz

AlapfogalomA navigáció aktuális mutatói a legutóbb elért rekordokat és SET-előfordulásokat követik. Az UWA a program és az adatbázis közötti adatátadás munkaterülete.

A hálós programnak nyilván kell tartania, hol tart a keresésben. Létezhet a futási egység aktuális rekordja, egy rekordtípus aktuális rekordja és egy SET-típus aktuális előfordulása. Ezek nem feltétlenül ugyanazt az állapotot írják le. A következő művelet értelmezése attól függ, melyik mutatót használja.

Az UWA, vagyis User Work Area a befogadó program változóinak munkaterülete. A rekord kiolvasott értékei ide kerülnek, és az új vagy módosítandó mezőértékeket is itt készítheti elő a program. Az adatbázisbeli rekord kiválasztása és értékeinek munkaterületre másolása két külön gondolat.

A FIND jellegű művelet navigálhat és megváltoztathatja az aktuális rekordot anélkül, hogy a program összes mezőváltozója már a kiválasztott rekord tartalmát kapná. A GET jellegű művelet olvassa be az értékeket. A konkrét DBMS-ben lehetnek összevont műveletek is; a fogalmi szétválasztás akkor is hasznos.

Minden művelet után státusz jelzi a sikert vagy a rendellenes állapotot. A „nincs több tag” gyakran szabályos bejárásvégi jelzés, nem adatromlás. Más státusz azonban valódi hibát jelezhet. A programnak ezeket meg kell különböztetnie, és nem szabad sikertelen keresés után az előző rekordot új találatként használni.

Állapot és tartalom
ElemMire válaszol?
Aktuális rekordtípus-rekordMelyik rekordot értük el ebből a típusból?
Aktuális SET-előfordulásMelyik tulajdonos tagjait járjuk be?
Aktuális futási egységMelyik volt a legutóbb elért rekord?
UWAMilyen mezőértékeket használ a program?
StátuszSikerült a művelet, véget ért a bejárás, vagy hiba történt?

17. rész

Rekord- és SET-módosító műveletek

AlapfogalomA rekordmódosítás az adatok létrehozása, megváltoztatása vagy törlése; a SET-módosítás a tagság létrehozása, megszüntetése vagy áthelyezése.

A STORE új rekordot tárol, a MODIFY mezőértéket módosít, az ERASE rekordot töröl. A CONNECT egy rekordot SET-előforduláshoz kapcsol, a DISCONNECT megszüntet egy megengedetten leválasztható tagságot, a RECONNECT jellegű művelet tulajdonosváltást végezhet. A nevek történeti navigációs nyelvek műveleteit szemléltetik.

A darabszám 6-ról 8-ra módosítása nem ugyanaz, mint az eszköz lecserélése. Az első HASZNALAT-mező módosítása; a második az ESZKOZ_HASZNALAT tagság másik tulajdonoshoz kapcsolását kívánhatja. Ha mindkettő történik, a változásokat összehangoltan kell kezelni.

Egy használati rekord eltávolítása után a műhely és az eszköz továbbra is megmaradhat. Ezzel szemben egy eszköz törlése előtt vizsgálni kell a hozzá tartozó használatokat. Az üzleti jelentés és a törlési szabály dönti el, hogy a törlés tiltott, a kapcsolórekordok törlendők vagy más rendezés szükséges.

Összetett módosításoknál nem maradhat olyan kapcsolórekord, amelynek valamely kötelező tulajdonosa hiányzik. A tranzakciós szemlélet itt is fontos: a több kapcsolati és adatváltozást egy logikai egységben kell sikerre vinni vagy rendezett módon visszavonni.

Mi változik?
MűveletPéldaÉrintett réteg
MODIFYU1 darabszáma 6 → 8Rekordérték.
CONNECTÚj használat hozzárendelése M101-hezSET-tagság.
RECONNECTU1 eszköze E1 helyett E3Tulajdonosi kapcsolat a megfelelő SET-ben.
DISCONNECTOpcionális helyszíntagság megszüntetéseTagság; a rekord megmaradhat.
ERASEU1 használat törléseRekord és a hozzá tartozó tagságok kezelése.

18. rész

Összefüggő példa: műhely, eszköz, anyag

AlapfogalomEgy összetett hálós séma több, önállóan értelmezhető SET-típusból épül fel; a kapcsolórekordok a sok-sok kapcsolatok előfordulásait őrzik.

A műhelyhez eszközhasználat és anyagfelhasználás tartozik. Az ESZKOZ önálló rekordtípus, mert ugyanaz az eszköz több foglalkozásban használható. Az ANYAG szintén önálló típus, mert ugyanabból az anyagfajtából több műhely is igényelhet. A két kapcsolatnak más adatai vannak: eszköznél darabszám, anyagnál mennyiség és mértékegység.

A HASZNALAT rekord MUHELY és ESZKOZ tulajdonosokhoz kapcsolódik, a FELHASZNALAS rekord MUHELY és ANYAG tulajdonosokhoz. A kapcsolórekordok neve és mezői különböznek, mert eltérő üzleti kapcsolatokat írnak le. A MUHELY-ből két eltérő SET-ben indulhat bejárás.

Az ismétlődő műveleti lépéseket a MUHELY rekordban ismétlődő csoportként is tárolhatjuk, ha a konkrét rendszer ezt támogatja és nem igényelnek önálló kapcsolatokat. Ha külön értékelést, felelőst vagy eszközkapcsolatot kell hozzájuk rendelni, a LEPES rekordtípus és MUHELY_LEPES SET alkalmasabb.

A hálós rendszerek történeti képviselője az IDMS. A hálós szerkezet fölött egyes rendszerek más hozzáférési réteget, például SQL-felületet is biztosíthatnak. Ettől a belső kapcsolati és tárolási megoldások nem feltétlenül válnak relációssá. A felhasználói lekérdezési felület és a modell megkülönböztetése általánosan hasznos.

A műhelyprogram összetett hálós sémája
A műhelyprogram összetett hálós sémájaKét M:N kapcsolat, két kapcsolórekordtípus és négy SET. Egy nyíl mindig tulajdonosból tagba vezet.ESZKOZeszkoz_id, nevMUHELYmuhely_id, cimANYAGanyag_id, nevHASZNALAThasznalat_id, darabszamFELHASZNALASfelhasznalas_idmennyiseg, mertekegysegESZKOZ_HASZNALATMUHELY_HASZNALATMUHELY_FELHASZNALASANYAG_FELHASZNALAS

Két M:N kapcsolat, két kapcsolórekordtípus és négy SET. Egy nyíl mindig tulajdonosból tagba vezet.

Kidolgozott példa · Mely műhelyek használnak multimétert?

Az E1 eszközből indulunk.

  1. Megkeressük E1-et az ESZKOZ rekordok között.
  2. Bejárjuk az ESZKOZ_HASZNALAT előfordulás U1 és U3 tagjait.
  3. U1-ből a MUHELY_HASZNALAT owner műveletével M101-hez jutunk.
  4. U3-ból ugyanezzel a SET-szereppel M103-hoz jutunk.
  5. Ha ugyanazon műhelynek több használata van, az eredményben szükség lehet az ismétlődő műhelyek kiszűrésére.

Önellenőrző feladatok

Először válaszolj önállóan, és indokold a döntésedet! A kérdés megnyitásakor látható a megoldás és a magyarázat.

1. Mit jelent a hálós modellben a SET?

Névvel azonosított tulajdonos–tag kapcsolatot, amelynek előfordulása egy tulajdonosrekordból és nulla vagy több tagból áll. Nem egyszerű matematikai halmaz.

2. Lehet-e ugyanazon SET-típusban egy tag két előfordulás tagja egyszerre?

A bemutatott klasszikus szabály szerint nem: egy tag ugyanabban a SET-típusban legfeljebb egy előforduláshoz kapcsolódik. Külön SET-típusokban több tagsága lehet.

3. Miért kell a MUHELY–ESZKOZ M:N kapcsolathoz HASZNALAT rekord?

Mert egyetlen SET 1:N szerkezetű. A kapcsolórekord két SET tagjaként mindkét oldalon több előfordulást tesz lehetővé, és tárolja a kapcsolat darabszámát.

4. Hová kerül a használat darabszáma?

A HASZNALAT kapcsolórekordba, mert az adott műhely és eszköz összekapcsolásához tartozik.

5. Elég-e SET-et rajzolni egy 1:1 kapcsolathoz?

Nem. A SET önmagában több tagot is engedhet, ezért a tulajdonosonként legfeljebb egy tag korlátot is biztosítani kell.

6. Mi a típusdiagram és az előfordulási diagram különbsége?

A típusdiagram szerkezetet, mezőket és SET-típusokat mutat. Az előfordulási diagram konkrét tulajdonosokat, tagokat és aktuális kapcsolataikat.

7. Mi különbözteti meg a csoportot az ismétlődő csoporttól?

A csoport összetartozó részmezők együttese. Az ismétlődő csoportból több, azonos belső szerkezetű értékcsoport szerepelhet egy rekordon belül.

8. Mire szolgál a rendszertulajdonos SET?

Rendszerbeli kiindulópontot adhat egy rekordtípus előfordulásainak eléréséhez; nem feltétlenül ír le önálló üzleti tulajdonost.

9. Hány SET-tagsága van a KIADAS rekordnak a háromrésztvevős példában?

Három: egy műhelyhez, egy anyaghoz és egy raktárhoz tartozó SET-előfordulás tagja.

10. Mit jelent a kézi beszúrási szabály?

A rekord tárolása mellett a tagságot külön kapcsolási művelet hozza létre. A megengedett köztes állapot a többi tagsági szabálytól is függ.

11. Az automatic ugyanaz, mint a mandatory?

Nem. Az automatic a kezdeti kapcsolás módja; a mandatory a tagság megtartásának korlátozása. Külön dimenziók.

12. Miért más a fixed, mint az egyszerű mandatory tagság?

Fixed esetben a kötött tulajdonosi kapcsolatot nem cseréljük át másik előfordulásra. Mandatory esetben szabályos átkapcsolás megengedett lehet.

13. A FIND után biztosan új adatok vannak az UWA-ban?

Nem feltétlenül. A kiválasztás és a rekordértékek kiolvasása külön lépés. A GET vagy a rendszer összevont művelete végzi az adatátadást.

14. Melyik SET szerint kell U1-ből az eszköz tulajdonost keresni?

ESZKOZ_HASZNALAT szerint. MUHELY_HASZNALAT szerint a műhely tulajdonost kapnánk.

15. Miért kell a NEXT után státuszt vizsgálni?

Meg kell különböztetni a sikeres tagkeresést, a bejárás végét és a tényleges hibát. Sikertelen keresést nem követhet úgy feldolgozás, mintha új tag lenne.

16. Mi a CONNECT és a STORE különbsége?

A STORE rekordot tárol, a CONNECT SET-tagságot létesít. Automatikus tagság esetén a tárolás kapcsolási hatással is járhat.

17. Miért nem ugyanaz a DISCONNECT és az ERASE?

A DISCONNECT egy megengedetten leválasztható tagságot szüntet meg; az ERASE magát a rekordot törli, tagságainak megfelelő kezelésével.

18. Hálózati szerverek között tárolt adatbázis feltétlenül hálós modellű?

Nem. A fizikai hálózati elhelyezés és a logikai adatmodell külön tulajdonság.

Összetett gyakorlófeladatok

1. gyakorlófeladat: építs M:N hálós sémát!

Egy műhely több résztvevőt fogad, egy résztvevő több műhelyre jelentkezhet. A jelentkezés dátumát és állapotát tároljuk.

  1. Nevezd meg a rekordtípusokat és a kapcsolórekordot!
  2. Add meg a két SET nevét, tulajdonosát és tagját!
  3. Helyezd el a jelentkezési dátumot és állapotot!
  4. Írj konkrét előfordulásokat két műhely és két résztvevő részvételével!
Részletes mintamegoldás és indoklás
  1. MUHELY, RESZTVEVO és JELENTKEZES rekordtípusok. A JELENTKEZES kapcsolórekord.
  2. MUHELY_JELENTKEZES: tulajdonos MUHELY, tag JELENTKEZES. RESZTVEVO_JELENTKEZES: tulajdonos RESZTVEVO, tag JELENTKEZES.
  3. A dátum és állapot a JELENTKEZES mezői. Ha ismételt jelentkezés vagy történetkezelés kell, külön jelentkezes_id is szükséges.
  4. J1: M101 és R17; J2: M103 és R17; J3: M101 és R18. M101-nek J1 és J3 tagja van, R17-nek J1 és J2. Minden J rekord mindkét SET-ben pontosan egy tulajdonoshoz kapcsolódik.

2. gyakorlófeladat: kövesd az útvonalat!

M101 használatai U1 (E1, 6 darab) és U2 (E2, 3 darab). E1 használatai U1 és U3 (M103, 2 darab).

  1. Sorold fel M101 eszközeit a megfelelő SET-ek megnevezésével!
  2. Sorold fel E1-et használó műhelyeket!
  3. Mondd meg, melyik művelet módosítja U1 darabszámát, és melyik változtatja meg az eszközét!
Részletes mintamegoldás és indoklás
  1. M101 → MUHELY_HASZNALAT FIRST U1 → ESZKOZ_HASZNALAT OWNER E1; majd M101 SET bejárási állapotából NEXT U2 → ESZKOZ_HASZNALAT OWNER E2. Eredmény E1 6 darab, E2 3 darab.
  2. E1 → ESZKOZ_HASZNALAT tagok U1, U3 → MUHELY_HASZNALAT tulajdonosok M101, M103.
  3. A darabszám változása rekordmódosítás. Az eszköz cseréje az ESZKOZ_HASZNALAT tagság szabályos átkapcsolását kívánja, és a többi SET-tagság megőrzését.

3. gyakorlófeladat: találd meg a modellezési hibákat!

Egy tervben az ESZKOZ közvetlenül a MUHELY_ESZKOZ SET tagja, a darabszám az ESZKOZ mezője, és ugyanazt az eszközt két műhely tulajdonoshoz kapcsolnák ugyanebben a SET-típusban.

  1. Miért sérül a SET-tagság szabálya?
  2. Miért rossz helyen van a darabszám?
  3. Javítsd ki a sémát!
  4. Milyen szabályt írj elő a kapcsolórekord tulajdonosaira?
Részletes mintamegoldás és indoklás
  1. Ugyanaz a tag ugyanazon SET-típus két előfordulásában nem szerepelhet egyszerre. Ez az M:N igényt nem teljesíti.
  2. Az eszköz általános rekordjába írt darabszám nem tud műhelyenként eltérő értéket tárolni ugyanahhoz az eszközhöz.
  3. Vezess be HASZNALAT rekordtípust, MUHELY_HASZNALAT és ESZKOZ_HASZNALAT SET-ekkel. A darabszám a HASZNALAT mezője.
  4. Minden érvényes HASZNALAT egy műhelyhez és egy eszközhöz tartozzon. A létrehozást és esetleges módosítást úgy szervezd, hogy ne maradjon félkész kötelező kapcsolat.

A modellt a jelentése, a példarekordok és az integritási szabályok együtt igazolják. Ellenőrizd mindhármat a saját terveiden is!