Adatmodellezés · 2. témakör

Az egyed–kapcsolat modell

Hogyan lesz az igényekből áttekinthető ER-ábra? Egy oktatási portál példáján végigvezetjük az egyedeket, attribútumokat, kapcsolati szabályokat és jelöléseket.

01 · ER-modell

Miért készítünk ER-modellt?

Egy adatbázis tervezésekor először azt kell megértenünk, milyen tényeket akarunk nyilvántartani és mely tények tartoznak egymáshoz. Ha rögtön táblákat és idegen kulcsokat rajzolunk, könnyen belekeverjük a megoldás technikai részleteit egy még tisztázatlan feladatba. Az egyed–kapcsolat modell (ER-modell) a megvalósítás előtti, fogalmi szintű térkép: az adatok csoportjait, tulajdonságait, összefüggéseit és fontos korlátozásait mutatja meg.

AlapfogalomAz ER-modell olyan koncepcionális adatmodell, amely egyedtípusokból, az ezeket jellemző attribútumokból és a köztük fennálló kapcsolattípusokból épül fel. Az ábra azt mutatja, miről állítunk tényeket; az adatok fizikai tárolását később tervezzük meg.

Képzeljünk el egy oktatási portált. A tanuló kurzusra jelentkezik, a kurzust oktató vezeti, a kurzus alkalmakból áll, és meghatározott idősávban termet foglalnak hozzá. A „tanuló”, „kurzus” és „oktató” nem egyszerű oszlopnevek: mindegyik önállóan előforduló dolgok csoportját jelöli. A „jelentkezik” ezzel szemben egy olyan tény, amely két csoport tagjait rendeli egymáshoz.

TANULÓFELVESZKURZUStanuló_idkurzus_idjelentkezésMNT17 tanuló: K48 és K52 · K48 kurzus: T17 és T21
A téglalap az egyedtípus, a rombusz a kapcsolat, az ellipszis az attribútum. Az aláhúzott név kulcsattribútum; a jelentkezés dátuma a TANULÓ–KURZUS párhoz tartozik.

Az ábra a típusokat és a rájuk vonatkozó szabályt ábrázolja, nem a portál minden aktuális rekordját. Ha ma nincs még tanuló egy kurzuson, a KURZUS egyedtípus akkor is része a modellnek. A tényleges tanulók és kurzusok később egyedelőfordulások lesznek.

02 · ER-modell

Egyedtípus és egyedelőfordulás

AlapfogalomAz egyedtípus olyan, közös tulajdonságokkal leírható és egymástól megkülönböztethető dolgok halmaza, amelyekről adatot kívánunk tárolni. Az egyedtípus egy konkrét tagja az egyedelőfordulás vagy egyed.

A KURZUS egyedtípusnak egy előfordulása például a „SQL alapok – 2026 ősz” konkrét kurzuskiírás. Ugyanígy az OKTATÓ egyedtípus egy előfordulása egy meghatározott tanár. A konkrét előfordulás nem keverhető össze a típus nevével: a KURZUS dobozba a csoport nevét írjuk, a kurzusok adatait pedig az egyedeknél adjuk meg.

Példa · Mely dolgok legyenek egyedtípusok?

A rendszerben azonosítót és önálló adatokat szeretnénk tárolni a TANULÓ, KURZUS, OKTATÓ és TEREM előfordulásairól. A kurzuscím a KURZUS tulajdonsága, így nem külön egyedtípus. Az órakezdés az IDŐSÁV jellemzője lehet; ha viszont önállóan akarunk termeket több kurzushoz időrésenként beosztani, az IDŐSÁV már önállóan nyilvántartott egyedtípus is lehet.

Az egyedtípus neve legyen egyes számú, jól értelmezhető főnév: KURZUS, nem „kurzusok és tanulók”. Nem az dönti el az egyedtípus létjogosultságát, hogy a leendő adatbázisban biztosan lesz-e külön tábla. Azt kérdezzük: van-e önálló azonossága, jellemzője és szerepe a feladatban? Az ER-modellből a relációs modellre történő leképezés csak később következik.

KifejezésA modellbenIndok
KURZUSEgyedtípusTöbb konkrét kurzuskiírás létezik, saját azonosítóval és címmel.
„SQL alapok – 2026 ősz”EgyedelőfordulásEgy konkrét KURZUS-rekord, nem új típus.
címAttribútumA kurzust jellemzi, önmagában nem külön dolog.
jelentkezikKapcsolattípusA TANULÓ és a KURZUS konkrét előfordulásait rendeli egymáshoz.

03 · ER-modell

Attribútumok: egyszerű, összetett, többértékű és számított adatok

AlapfogalomAz attribútum egy egyedtípus vagy kapcsolattípus számunkra fontos tulajdonsága. Minden attribútumnak van értelmezési tartománya: olyan lehetséges értékek halmaza, amelyeket a feladat szabályai megengednek.

A KURZUS attribútuma lehet a kurzus_id, a cím vagy a férőhely. A férőhely például nem lehet negatív szám. Egy „közepes” nehézségi szint csak akkor érvényes, ha előre meghatároztuk a választható szinteket. A tartomány tisztázása megelőzi a hibás adatbevitel jelentős részét.

KURZUSkurzus_idcímkulcsszóidőtartamóraperc
A többértékű attribútum dupla ellipszist kap; az összetett attribútum részei saját ellipszisekkel kapcsolódnak a szülőattribútumhoz. A kulcsattribútum neve aláhúzott.
Attribútum jellegeÖnálló példaMit érdemes tisztázni?
EgyszerűA KURZUS címe a választott modellben egyetlen érték.Kell-e a címből részeket önállóan keresni? Ha igen, más bontás indokolt.
ÖsszetettA kurzus időtartama óra és perc részből áll.A felhasználó külön is keresi-e az órát és a percet? A tárolási terv később választhat más fizikai formát.
EgyértékűEgy konkrét kurzuskiírásnak egy férőhelyszáma van.Pontosan melyik kiírásra és mely időpontban értjük az értéket?
TöbbértékűEgy kurzushoz több keresési kulcsszó tartozhat.A kulcsszavak száma változhat; több értéket nem érdemes egyetlen, vesszőkkel tagolt mezőnek tekinteni.
SzármaztatottA szabad helyek száma a férőhely és az érvényes jelentkezések alapján számítható.Milyen jelentkezési állapotok számítanak foglaltnak? A számított érték ne mondjon ellent a forrásadatoknak.

Az egyszerű attribútum a feladat szempontjából tovább már nem bontandó. Az összetett attribútum belső részekre bontható; ezek tovább is tagolhatók. Ez a fogalmi bontás nem írja elő, hogy az adatbázisban szó szerint „időtartam” nevű fizikai oszlop legyen. Ha a két összetevőt sosem használjuk külön, az összetett alak csak fölösleges bonyolítás lehet; ha külön is szűrünk rájuk, segíthet az igények megértésében.

Az egyértékű attribútum egy előforduláshoz egy értéket rendel. A többértékű attribútum ugyanahhoz az előforduláshoz több értéket is rendelhet: például egy kurzus keresési kulcsszavai lehetnek „SQL”, „JOIN” és „lekérdezés”. A forrásattribútum értékét tároljuk vagy rögzítjük; a származtatott attribútumot más értékekből számítjuk. A szabad helyek számításánál különösen fontos, hogy a törölt jelentkezés ne foglaljon helyet.

04 · ER-modell

Azonosítás: kulcsattribútum és összetett kulcs

AlapfogalomA kulcsattribútum egyedtípuson belül minden egyedelőfordulást egyértelműen azonosít. Ha egyetlen attribútum sem elegendő, több attribútum együtt alkothat kulcsot, vagy új, mesterséges azonosítót vezethetünk be.

A KURZUS címe nem biztos kulcs: lehet két külön évben két „SQL alapok” kurzus. A kurzus_id alkalmas azonosító, ha minden kurzuskiíráshoz külön, nem újrahasznosított értéket rendelünk. A TANULÓ neve sem feltétlenül egyedi; egy belső tanuló_id egyértelműbb és későbbi névváltozáskor is állandó marad.

Példa · Ugyanaz a cím, különböző kurzus

Két kurzus címe egyaránt „Adatbázis-kezelés”, de az egyik az őszi, a másik a tavaszi félév konkrét kiírása. A (cím, félév) pár akkor lehetne összetett kulcs, ha garantált, hogy ugyanabban a félévben azonos című kurzust csak egyszer hirdetnek meg. Ha több csoportot is indítanak, ez a feltevés sérül. Egy önálló kurzus_id kevesebb üzleti feltételezésre épül.

A kulcs kiválasztásához három kérdés segít. Biztosan egyedi? Ne csak a jelenlegi néhány sorban legyen egyedi. Mindig rendelkezésre áll? Üres azonosítóval nem lehet megbízhatóan hivatkozni. Stabil? Olyan értéket válassz, amelyet nem kell gyakran módosítani. Az ER-ábrán a kulcsattribútum nevét aláhúzással jelöljük.

Egy kapcsolathoz tartozó adatot sem szabad tévesen valamelyik fél azonosítójává tenni. A FELVESZ kapcsolatban a jelentkezés dátuma ugyanannak a tanulónak kurzusonként eltérhet. A kurzus és a tanuló azonosítója együtt azonosíthatja a jelentkezést, ha rögzítjük, hogy ugyanaz a tanuló ugyanarra a konkrét kurzuskiírásra legfeljebb egyszer jelentkezhet.

05 · ER-modell

Gyenge egyedtípus és azonosító kapcsolat

AlapfogalomA gyenge egyedtípus előfordulásait saját attribútumaik önmagukban nem azonosítják. Az egyed csak egy szülő egyedtípushoz fűződő azonosító kapcsolat révén válik megkülönböztethetővé. A gyenge egyedhez tartozhat részleges kulcs, amely csak egy adott szülőn belül egyedi.

Egy kurzus több tanórából, azaz ALKALOM előfordulásból áll: 1. alkalom, 2. alkalom, 3. alkalom. A sorszám egy kurzuson belül egyedi, de több különböző kurzusnak is van „1. alkalma”. Így a sorszám csak részleges kulcs. Az alkalom teljes azonosítója a szülő kurzus_id értéke és a saját sorszáma együtt: (kurzus_id, sorszám).

KURZUSRÉSZEALKALOMkurzus_idsorszám1NALKALOM azonosítója: (kurzus_id, sorszám)
A szaggatott téglalap a gyenge ALKALOM, a szaggatott rombusz az azonosító kapcsolat. Az ALKALOM minden előfordulása valamely kurzushoz tartozik: ezért a jobb oldali összekötő vonal vastag.

Ha az 1. alkalomról azt mondjuk, hogy „normalizálás”, még nem tudjuk, melyik kurzushoz tartozik. A „K48 kurzus 1. alkalma” már egyértelmű. Az ALKALOM a kurzus nélkül a választott nyilvántartásban nem értelmezhető, ezért teljesen részt vesz a RÉSZE azonosító kapcsolatban. A kurzus viszont a kihirdetés pillanatában még létezhet rögzített alkalmak nélkül; a KURZUS részvétele ebben az állapotban részleges.

06 · ER-modell

Kapcsolattípus, kapcsolat attribútuma és fokszám

AlapfogalomA kapcsolattípus azt írja le, milyen szabály szerint tartoznak egymáshoz az egyedtípusok előfordulásai. A fokszám a kapcsolatban részt vevő egyedtípusok szerepeinek száma: két szerepű kapcsolat bináris, három szerepű ternáris.

A TANULÓ FELVESZ KURZUS bináris kapcsolat egy előfordulása például: „T17 tanuló felveszi a K48 kurzust”. Ugyanennek a kapcsolatnak egy attribútuma a jelentkezési dátum. A tanulóhoz önmagában nem rendelhetjük: ha T17 két kurzusra különböző napokon jelentkezett, két külön dátumról beszélünk. A KURZUS RÉSZE ALKALOM szintén bináris, de egészen más jelentésű: azt rögzíti, mely alkalmak tartoznak a kurzushoz.

Példa · Egyedtípus helyett kapcsolat

Az „oktat” szó az OKTATÓ és a KURZUS közötti viszonyt nevezi meg. Ha az egyes kurzusoknál az oktatás kezdete különbözik, a kezdés dátuma ehhez a viszonyhoz tartozhat. Az OKTATÓ születési éve ellenben az oktató attribútuma, mert nem változik kurzusonként.

Előfordulhat, hogy ugyanaz a két egyedtípus több különböző jelentésű kapcsolatban áll: például egy OKTATÓ VEZETI és egy másik OKTATÓ ELLENŐRZI ugyanazt a KURZUS-t. Ezt nem érdemes azonos név nélküli vonallal összemosni. A kapcsolatnak olyan igés nevet adj, amelyből mondat olvasható: „Az oktató vezeti a kurzust.”

Az egyedtípus saját magával is kapcsolatban állhat. Egy KURZUS ELŐFELTÉTELE egy másik KURZUS-nak; a két előfordulás szerepét meg kell különböztetni: előfeltétel és ráépülő kurzus. Ilyen önhivatkozó kapcsolat esetén különösen könnyű összekeverni az irányt.

07 · ER-modell

Részvétel és számosság: két külön kérdés

Részvétel: minden előfordulásnak részt kell-e vennie a kapcsolatban? Számosság: legfeljebb hány másik előforduláshoz kapcsolódhat egy előfordulás? Ezeket egymástól függetlenül kell tisztázni. Az „egy” jelölés az ábrán a legfeljebb egyet rögzíti; az, hogy legalább egy szükséges-e, a teljes részvételből következik.

KURZUSRÉSZEALKALOMrészlegesteljes
Vékony vonal: részleges részvétel (lehet még alkalom nélküli kurzus). Vastag vonal: teljes részvétel (minden közzétett ALKALOM valamely KURZUS része). A részvétel és a kapcsolat számossága külön állítás.
KapcsolatSzámosságRészvétel és konkrét szabály
TANULÓ – FELVESZ – KURZUSM:NEgy tanuló több kurzust is felvehet; egy kurzusnak több tanulója lehet. Mindkét oldal részleges, mert új tanuló és frissen meghirdetett kurzus létezhet jelentkezés nélkül.
OKTATÓ – OKTAT – KURZUS1:NEgy oktató több kurzust vezethet, de minden kurzusnak pontosan egy felelős oktatója van. KURZUS: teljes; OKTATÓ: részleges, mert lehet még be nem osztott oktató.
TANULÓ – BELÉP – FIÓK1:1A példa szabályai szerint egy tanuló legfeljebb egy fiókkal, egy tanulói fiók pontosan egy tanulóval áll kapcsolatban. TANULÓ: részleges (még nem regisztrált); tanulói FIÓK: teljes.
KURZUS – RÉSZE – ALKALOM1:NEgy kurzusnak több alkalma lehet, egy alkalom egyetlen kurzushoz tartozik. ALKALOM: teljes; KURZUS: részleges, amíg az órarend készül.

Az 1:N szabály irányát mindig szóban is mondd el. Az „egy oktató több kurzust vezethet” állításban az oktató oldalához az 1, a kurzus oldalához az N érték kapcsolódik, ha azt jelöljük, hogy egy oktató hány kurzushoz, illetve egy kurzus hány oktatóhoz rendelhető. A kurzus felelős oktatójának kötelezősége ettől külön szabály.

Példa · Előfordulásokkal ellenőrizzük az M:N-t

T17 tanuló felveszi K48-at és K52-t. K48-at T17 mellett T21 is felveszi. Ebből látszik, hogy ugyanaz a tanuló több kurzushoz, és ugyanaz a kurzus több tanulóhoz is kapcsolódik. A kétféle többség együtt indokolja az M:N jelölést.

08 · ER-modell

Háromrésztvevős kapcsolat és az információvesztés veszélye

A portál heti órarendjében azt rögzítjük, melyik kurzus melyik termet melyik idősávban használja. Ezt a három tényt együttesen kell ismernünk: csak „kurzus–terem”, „kurzus–idősáv” és „terem–idősáv” párokból még nem feltétlenül derül ki az eredeti beosztás. A BEOSZTÁS ezért ebben a feladatban háromszerepű kapcsolat KURZUS, TEREM és IDŐSÁV között.

KURZUSTEREMIDŐSÁVBEOSZTÁSPélda: (SQL labor, 101-es terem, hétfő 9:00)
A BEOSZTÁS egy hármas tényt rögzít: melyik kurzus, melyik terem, melyik idősáv. A három kapcsolatvonal nem helyettesíthető automatikusan három egymástól független kétoldalú kapcsolattal.
KurzusTeremIdősáv
SQL labor101-es teremhétfő 9:00
SQL labor102-es teremszerda 11:00
Excel gyakorlat101-es teremszerda 11:00

Ha csak a három páronkénti kapcsolathalmaz maradna meg, tévesen összeállhatna az (SQL labor, 101-es terem, szerda 11:00) hármas: van SQL–101 pár, van SQL–szerda pár és van 101–szerda pár is, ám a fenti beosztásban ilyen közös hármas nincs. A 101-es termet abban az idősávban az Excel gyakorlat használja. Ez mutatja, hogy a három párkapcsolat összekapcsolása hamis találatot hozhat létre.

Egy ternáris kapcsolat számossága nem olvasható le három önálló 1:N vagy M:N címkéből. A szabályt a másik két résztvevő rögzítése mellett kell pontosan kimondani. Ha egy (terem, idősáv) párhoz legfeljebb egy kurzust engedünk, az egy terem adott idősávbeli kizárólagos használatát fejezi ki. A mostani három sor teljesíti ezt a feltételt. A megadott üzleti szabály után lehet helyesen jelölni a ternáris számosságot.

Később finomíthatjuk a modellt: a konkrét, sorszámozott ALKALOM is részt vehet a beosztásban a KURZUS helyett. Ebben az esetben azt kell külön megmondani, hogy egy alkalom hányszor, hány teremben és hány idősávban tartható meg. Egy ilyen finomítás nem jogosít fel arra, hogy az eredeti háromrésztvevős tényt gondolkodás nélkül három bináris kapcsolatra cseréljük.

09 · ER-modell

Az ER-ábra jelöléseinek következetes használata

ÁbraelemJelölés ezen az oldalonJelentés
EgyedtípusFolytonos szélű téglalapAz előfordulások típusa; belsejében egyes számú név.
Gyenge egyedtípusSzaggatott szélű téglalapSzülője nélkül nem azonosítható típus.
KapcsolatRombusz, benne igés névA részt vevő típusok előfordulásait rendeli egymáshoz.
Azonosító kapcsolatSzaggatott szélű rombuszA gyenge egyed és szülője közötti azonosító viszony.
AttribútumEllipszis, benne a tulajdonság neveEgyedtípushoz vagy kapcsolathoz kötött tulajdonság.
Többértékű attribútumKettős ellipszisEgy előfordulásnál egyszerre több érték lehet.
KulcsattribútumAz ellipszisben aláhúzott névA saját típusán belül egyedi azonosító.
Összetett attribútumEllipszis, amelyhez további ellipszisek csatlakoznakAz összetett érték felbontása.
Teljes / részleges részvételVastag / vékony összekötő vonalMinden előfordulásnak kötelező-e kapcsolatban állnia?
Számosság1, N vagy M a kapcsolatvonal mellettHány másik előforduláshoz rendelhető egy előfordulás?

A gyenge egyedtípusnak létezik más, szintén elfogadott ER-jelölése is; itt azonban végig a szaggatott téglalapot és szaggatott azonosító rombuszt használjuk. A teljes részvételt vastag vonal, a részlegeset vékony vonal jelöli. Az 1, N és M betűket a kapcsolathoz vezető élek mellé írjuk. A származtatott attribútumot itt szövegben jelezzük; hozzá nem vezetünk be olyan új rajzjelet, amely összekeverhető volna a gyenge egyedtípus szaggatott jelölésével.

10 · ER-modell

A teljes modell felépítése lépésről lépésre

Összerakjuk az eddigi döntéseket egyetlen áttekintő ábrába. A modell szándékosan egy konkrét oktatási portál szabályait írja le; egy másik intézmény jogosan választhat más számosságot vagy más egyedtípusokat.

  1. Határ kijelölése: a portál tanulókat, kurzuskiírásokat, felelős oktatókat, sorszámozott alkalmakat és a heti órarend termeit, idősávjait tartja nyilván. A tananyagfájlok tárolása most kívül esik ezen a modellen.
  2. Egyedtípusok: TANULÓ, KURZUS, OKTATÓ, ALKALOM, TEREM és IDŐSÁV. ALKALOM gyenge típus, mert a sorszám csak kurzuson belül egyedi.
  3. Azonosítók: tanuló_id, kurzus_id, oktató_id, terem_id és idősáv_id. Egy konkrét ALKALOM azonosítója (kurzus_id, sorszám).
  4. Kapcsolatok: a TANULÓ FELVESZ KURZUS-t (M:N), az OKTATÓ OKTAT KURZUS-t (1:N), az ALKALOM RÉSZE a KURZUS-nak (azonosító 1:N), a KURZUS, a TEREM és az IDŐSÁV pedig a BEOSZTÁS kapcsolatban szerepel.
  5. Korlátozások: egy kurzusnak pontosan egy felelős oktatója van; minden rögzített alkalomnak pontosan egy szülő kurzusa van. A tanuló és a kurzus létezhet jelentkezés nélkül. Az órarend egy (terem, idősáv) párjához legfeljebb egy kurzust engedünk.
TANULÓFELVESZKURZUSOKTATOKTATÓRÉSZEALKALOMBEOSZTÁSTEREMIDŐSÁVtanuló_idkurzus_idoktató_idjelentkezéssorszámMNN11N
Együtt látható a kétoldalú M:N jelentkezés, az 1:N oktatói kapcsolat, a gyenge ALKALOM és a KURZUS–TEREM–IDŐSÁV beosztása. A vastag ALKALOM- és KURZUS-oldal kötelező részvételt jelez a megadott szabályok szerint.

Az áttekintő ábrán az ALKALOM a kurzus sorszámozott tanóráját jelöli, míg a BEOSZTÁS a kurzus heti terem- és idősávhasználatát rögzíti. A kétféle tény külön kérdésre válaszol: „Mi a kurzus harmadik órája?” és „Hol, mikor tartjuk a kurzust?” A TEREM és IDŐSÁV attribútumait az ábra áttekinthetősége érdekében nem rajzoltuk ki; mindkettőnek saját azonosítót tervezünk. Ha egyes alkalmak helyszíne vagy időpontja eltér a rendszeres órarendtől, külön szabályként kell rögzítenünk az eltéréseket, vagy az alkalmakhoz tartozó beosztást kell modelleznünk.

A terv ellenőrzésekor konkrét kérdéseket teszünk fel: Létezhet-e kurzus jelentkező nélkül? Igen. Létezhet-e ALKALOM KURZUS nélkül? Nem. Jelentkezhet-e ugyanaz a tanuló egy kurzusra kétszer? A fenti FELVESZ kapcsolatnál nem, ezért ha ismételt vagy visszavont jelentkezéseket is meg akarunk őrizni, további attribútumokra vagy önálló jelentkezési előfordulásokra lesz szükség. Kaphat-e két kurzus azonos címet? Igen, ezért a cím nem kulcs.

11 · ER-modell

Önellenőrzés és modellalkotási gyakorlat

Próbáld meg először saját szavakkal megfogalmazni a választ; a mintamegoldás a kérdés megnyitásakor jelenik meg.

1. Miért nem azonos a KURZUS egyedtípus a „SQL alapok – 2026 ősz” kurzussal?

A KURZUS az előfordulások közös típusa; a megnevezett őszi kurzus ennek egy konkrét előfordulása. Az ER-diagram a típusok és szabályok szerkezetét mutatja.

2. Hová kerül a jelentkezés dátuma, és miért?

A TANULÓ és KURZUS közötti FELVESZ kapcsolathoz. Ugyanaz a tanuló különböző kurzusokra különböző időpontban jelentkezhet.

3. Hogyan azonosítjuk az 1. alkalmat?

Az 1 önmagában nem egyedi, mert több kurzusnak is van első alkalma. A teljes azonosító a kurzus_id és az alkalom sorszáma együtt.

4. Lehet-e 1:N egy kapcsolat, ha az egyik oldalon nem minden egyed vesz részt benne?

Igen. Az 1:N számosság a megengedett kapcsolatok számáról, a részleges részvétel a kapcsolat hiányának lehetőségéről szól. Az oktatónak lehet nulla kurzusa, miközben egy kurzusnak pontosan egy felelős oktatója van.

5. Miért nem elegendő a heti beosztás három páronkénti kapcsolata?

Mert a párok közös kombinációja olyan (kurzus, terem, idősáv) hármast is előállíthat, amely sosem szerepelt a valódi beosztásban.

6. Mit jelent az aláhúzott név és a szaggatott téglalap?

Az aláhúzás a kulcsattribútumot jelöli. A szaggatott téglalap gyenge egyedtípust jelöl, amelyet a szülőjével együtt azonosítunk.

7. A „szabad helyek száma” milyen attribútum, és miből számítható?

Származtatott attribútum. A kurzus férőhelyéből és az érvényes, helyet foglaló jelentkezések számából számítható, a jelentkezések állapotának figyelembevételével.

8. Miért nem jó kulcs önmagában a kurzus címe?

Azonos című kurzus több félévben vagy akár egy félév több csoportjában is létezhet. A cím egyedisége ezért nem garantálható.

Példa · Önálló ábrakészítési feladat

Egy új igény szerint a kurzushoz több FELADAT tartozik. Minden feladatnak saját, globálisan egyedi azonosítója van; egy feladat jelenleg pontosan egy kurzushoz tartozik. Egy kurzus akkor is létrehozható, ha még nincs hozzá feladat. Rajzold fel a két egyedtípust, a kapcsolatot, a számosságot és a részvételt!

Lehetséges megoldás

KURZUS és FELADAT folytonos téglalap, köztük TARTALMAZ rombusz. KURZUS oldalán 1, FELADAT oldalán N. A FELADAT részvétele teljes, a KURZUS-é részleges. Mindkét típusnak saját, aláhúzott azonosítóattribútuma van; a FELADAT ezért a megadott feltételekkel nem gyenge egyedtípus. Ha később ugyanazt a feladatot több kurzusban is felhasználjuk, módosítani kell a szabályt és a számosságot.

Ha az egyedeket, azonosítókat, részvételt és kapcsolati számosságokat önállóan meg tudod indokolni, készen állsz arra, hogy az ER-modellből később relációs sémát alakíts ki.