Az entitáskapcsolati (ER) adatmodell már több mint 35 éve létezik. Jól alkalmazható az adatbázisokkal való adatmodellezésre, mivel meglehetősen absztrakt, és könnyen megvitatható és magyarázható. Az ER modellek könnyen lefordíthatók kapcsolatokra. Az ER-modelleket, amelyeket ER-sémának is neveznek, ER-diagramokkal ábrázolják.
Az ER-modellezés két fogalmon alapul:
- Egységek, amelyeket meghatározott információkat (adatokat) tartalmazó táblákként definiálnak
- Kapcsolatok, amelyeket az egységek közötti kapcsolatokként vagy kölcsönhatásokként definiálnak
Itt egy példa arra, hogyan lehet ezt a két fogalmat egy ER-adatmodellben kombinálni: Prof. Ba (entitás) tanítja (kapcsolat) az Adatbázisrendszerek kurzust (entitás).
A fejezet további részében az ER-modell fogalmainak szemléltetésére a COMPANY adatbázis nevű mintaadatbázist fogjuk használni. Ez az adatbázis az alkalmazottakra, osztályokra és projektekre vonatkozó információkat tartalmaz. Fontos megjegyezni a következőket:
- A vállalatnak több osztálya is van. Minden osztály rendelkezik egyedi azonosítóval, névvel, az iroda helyével és egy adott alkalmazottal, aki az osztályt irányítja.
- Egy osztály számos projektet irányít, amelyek mindegyike egyedi névvel, egyedi számmal és költségvetéssel rendelkezik.
- Minden alkalmazottnak van neve, azonosító száma, címe, fizetése és születési dátuma. Egy alkalmazott egy osztályhoz van rendelve, de több projektben is részt vehet. Minden egyes projektben rögzítenünk kell az alkalmazott kezdő dátumát. Az egyes alkalmazottak közvetlen felettesét is ismernünk kell.
- Az egyes alkalmazottak eltartottjait szeretnénk nyilvántartani. Minden eltartottnak van neve, születési dátuma és kapcsolata az alkalmazottal.
- Egység, egységhalmaz és egységtípus
- Létezési függőség
- Az entitások fajtái
- Függő entitások
- Függő entitások
- Jellemző entitások
- Attribútumok
- Attribútumok típusai
- Egyszerű attribútumok
- Összetett attribútumok
- Multivált attribútumok
- Származott attribútumok
- Kulcsok
- A kulcsok típusai
- Kandidátusi kulcs
- összetett kulcs
- Primer kulcs
- Secondary key
- Pótkulcs
- Fülső kulcs
- Nulls
- Példa a null használatára
- Kapcsolatok
- Kapcsolattípusok
- Egy a sokhoz (1:M) kapcsolat
- Egy az egyhez (1:1) kapcsolat
- Sok-sok (M:N) kapcsolatok
- Unáris kapcsolat (rekurzív)
- Terner kapcsolatok
- Tulajdonjog
Egység, egységhalmaz és egységtípus
Az egység a valós világban egy olyan objektum, amely önálló létezéssel rendelkezik, és megkülönböztethető más objektumoktól. Egy entitás lehet
Az entitások erősségük alapján osztályozhatók. Egy entitás akkor tekinthető gyengének, ha a táblái létezésfüggőek.
- Ez azt jelenti, hogy nem tud létezni egy másik entitással való kapcsolat nélkül
- Az elsődleges kulcsa a szülő entitás elsődleges kulcsából származik
- A COMPANY adatbázisban a Házastárs tábla egy gyenge entitás, mert az elsődleges kulcsa az Alkalmazott táblától függ. A megfelelő alkalmazott rekord nélkül a házastárs rekord nem létezne.
Egy entitás akkor tekinthető erősnek, ha az összes kapcsolódó entitástól függetlenül is létezhet.
- A magok erős entitások.
- Egy idegen kulcs nélküli tábla vagy egy olyan idegen kulcsot tartalmazó tábla, amely nullákat tartalmazhat, erős entitás
Egy másik megismerendő fogalom az entitás típus, amely hasonló entitások gyűjteményét határozza meg.
Az entitáshalmaz egy adott időpontban egy entitás típusba tartozó entitások gyűjteménye. Egy entitáskapcsolati diagramban (ERD) az entitás típusát egy dobozban lévő névvel ábrázoljuk. Például a 8.1. ábrán az entitás típusa EMPLOYEE.
Létezési függőség
Egy entitás létezése a kapcsolódó entitás létezésétől függ. Létezésfüggő, ha kötelező idegen kulccsal rendelkezik (azaz olyan idegenkulcs-attribútummal, amely nem lehet nulla). Például a COMPANY adatbázisban a Házastárs entitás létezésfüggő az Alkalmazott entitástól.
Az entitások fajtái
Az entitások különböző fajtáit is ismernie kell, beleértve a független entitásokat, a függő entitásokat és a jellemző entitásokat. Ezeket az alábbiakban ismertetjük.
Függő entitások
A független entitások, más néven magok, az adatbázis gerincét alkotják. Ezekre épülnek a többi tábla alapjai. A magok a következő tulajdonságokkal rendelkeznek:
- Az adatbázis építőkövei.
- Az elsődleges kulcs lehet egyszerű vagy összetett.
- Az elsődleges kulcs nem idegen kulcs.
- Létezésük nem függ más entitástól.
Ha visszautalunk a COMPANY adatbázisunkra, a független entitás példái közé tartozik az Ügyfél tábla, az Alkalmazottak tábla vagy a Termék tábla.
Függő entitások
A függő entitások, más néven származtatott entitások, más tábláktól függnek jelentésük szempontjából. Ezek az entitások a következő jellemzőkkel rendelkeznek:
- A függő entitások két mag összekapcsolására szolgálnak.
- Két vagy több táblától létfüggőnek mondják őket.
- A sok-sok kapcsolatból asszociatív táblák lesznek, legalább két idegen kulccsal.
- Más attribútumokat is tartalmazhatnak.
- Az idegen kulcs azonosítja az egyes kapcsolódó táblákat.
- Az elsődleges kulcsra három lehetőség van:
- A társított táblák idegen kulcsainak összetételét használja, ha egyedi
- Az idegen kulcsok és egy minősítő oszlop összetételét használja
- Új egyszerű elsődleges kulcsot hoz létre
Jellemző entitások
A jellemző entitások több információt nyújtanak egy másik tábláról. Ezeknek az entitásoknak a következő jellemzői vannak:
- Egy többértékű attribútumot képviselnek.
- Más entitásokat írnak le.
- Jellemzően egy a sokhoz kapcsolatuk van.
- Az idegen kulcsot a jellemzett tábla további azonosítására használják.
- Az elsődleges kulcs lehetőségei a következők:
- Egy összetett idegen kulcs és egy minősítő oszlop használata
- Új egyszerű elsődleges kulcs létrehozása. A COMPANY adatbázisban ezek a következők lehetnek:
- Munkavállaló (EID, név, cím, kor, fizetés) – Az EID az egyszerű elsődleges kulcs.
- MunkavállalóTelefon (EID, telefon) – Az EID egy összetett elsődleges kulcs része. Itt az EID egyben idegen kulcs is.
Attribútumok
Minden entitást attribútumok halmaza ír le (pl. Employee = (Name, Address, Birth date (Age), Salary).
Minden attribútumnak van egy neve, és egy entitáshoz és a legális értékek tartományához kapcsolódik. Az attribútumtartományra vonatkozó információ azonban nem jelenik meg az ERD-ben.
A 8.2. ábrán látható entitáskapcsolati diagramban minden attribútumot egy ovális ábrázol, benne egy névvel.
Attribútumok típusai
Az attribútumoknak néhány típusát kell ismernünk. Ezek közül néhányat úgy kell hagyni, ahogy van, de néhányat módosítani kell a relációs modellben való ábrázolás megkönnyítése érdekében. Ez az első szakasz az attribútumok típusait tárgyalja. Később az attribútumok javítását tárgyaljuk, hogy megfelelően illeszkedjenek a relációs modellbe.
Egyszerű attribútumok
Az egyszerű attribútumok az atomi értéktartományokból merített attribútumok; ezeket egyértékű attribútumoknak is nevezik. A COMPANY adatbázisban egy példa erre a következő lenne:
Összetett attribútumok
Az összetett attribútumok olyan attribútumok, amelyek attribútumok hierarchiájából állnak. A 8.3. ábrán látható adatbázis-példánkat használva, a cím állhat a házszámból, az utcából és a külvárosból. Ez tehát a következőképpen írható: → Address = {59 + ‘Meek Street’ + ‘Kingsford’}
Multivált attribútumok
A multivált attribútumok olyan attribútumok, amelyeknek minden entitáshoz egy értékkészlete van. A 8.4. ábrán látható példa a COMPANY adatbázisból származó többértékű attribútumra a munkavállaló fokozata: BSc, MIT, PhD.
Származott attribútumok
A származtatott attribútumok olyan attribútumok, amelyek más attribútumokból számított értékeket tartalmaznak. Erre egy példa látható a 8.5. ábrán. Az életkor a születési dátum attribútumból származtatható. Ebben a helyzetben a Születési dátumot tárolt attribútumnak nevezzük, amelyet fizikailag elmentünk az adatbázisba.
Kulcsok
Az entitás fontos korlátozása a kulcs. A kulcs egy olyan attribútum vagy attribútumcsoport, amelynek értékei felhasználhatók egy egyedi entitás egyedi azonosítására egy entitáshalmazban.
A kulcsok típusai
A kulcsoknak több típusa van. Ezeket az alábbiakban ismertetjük.
Kandidátusi kulcs
A jelölt kulcs egy egyszerű vagy összetett kulcs, amely egyedi és minimális. Azért egyedi, mert a táblázatban két sornak egyszerre nem lehet ugyanaz az értéke. Minimális, mert minden oszlopra szükség van az egyediség eléréséhez.
A COMPANY adatbázisunk példájából, ha az entitás az Employee(EID, First Name, Last Name, SIN, Address, Phone, BirthDate, Salary, DepartmentID), a lehetséges kulcsjelöltek a következők:
- EID, SIN
- Vezetéknév és vezetéknév – feltételezve, hogy a vállalatnál nincs más azonos nevű személy
- Vezetéknév és DepartmentID – feltételezve, hogy két azonos vezetéknevű személy nem dolgozik ugyanazon a részlegen
összetett kulcs
Az összetett kulcs két vagy több attribútumból áll, de minimálisnak kell lennie.
A kulcsjelöltek szakasz példáját felhasználva a lehetséges összetett kulcsok a következők:
- Vezetéknév és vezetéknév – feltételezve, hogy a vállalatnál nincs más azonos nevű személy
- Vezetéknév és osztályazonosító – feltételezve, hogy két azonos vezetéknevű személy nem dolgozik ugyanazon az osztályon
Primer kulcs
A primer kulcs az adatbázis tervezője által kiválasztott kulcsjelölt, amelyet a teljes entitáshalmaz azonosítási mechanizmusaként használ. Egyértelműen azonosítania kell a táblázatban lévő tuplikat, és nem lehet nulla. Az elsődleges kulcsot az ER-modellben az attribútum aláhúzásával jelöljük.
- A kulcsjelöltet a tervező választja ki a táblázatban lévő tuplik egyedi azonosítására. Nem lehet nulla.
- A kulcsot az adatbázis tervezője választja ki, hogy az egész entitáshalmaz azonosító mechanizmusaként használják. Ezt nevezzük elsődleges kulcsnak. Ezt a kulcsot az ER-modellben az attribútum aláhúzásával jelölik.
A következő példában az EID az elsődleges kulcs:
Employee(EID, First Name, Last Name, SIN, Address, Phone, BirthDate, Salary, DepartmentID)
Secondary key
A másodlagos kulcs olyan attribútum, amelyet szigorúan lekérdezési célokra használnak (lehet összetett), például:
Pótkulcs
A pótkulcsok minden olyan kulcsjelölt, amelyet nem választottak elsődleges kulcsnak.
Fülső kulcs
A pótkulcs (FK) egy olyan attribútum egy táblában, amely egy másik tábla elsődleges kulcsára hivatkozik, VAGY lehet nulla. Az idegen és az elsődleges kulcsnak azonos adattípusúnak kell lennie.
A lenti COMPANY adatbázis példában a DepartmentID az idegen kulcs:
Employee(EID, First Name, Last Name, SIN, Address, Phone, BirthDate, Salary, DepartmentID)
Nulls
A null egy speciális, adattípustól független jel, amely vagy ismeretlen vagy nem alkalmazható. Nem jelent nullát vagy üres helyet. A null jellemzői közé tartoznak:
- Nincs adatbevitel
- Nem megengedett az elsődleges kulcsban
- Kerülendő más attribútumokban
- Egy ismeretlen attribútumértéket
- Egy ismert, de hiányzó, attribútumértéket
- Egy “nem alkalmazható” állapotot
- Problémákat okozhat olyan függvények használatakor, mint a COUNT, AVERAGE és SUM
- Logikai problémákat okozhat relációs táblák összekapcsolásakor
JEGYZET: Az összehasonlító művelet eredménye nulla, ha bármelyik argumentum nulla. Egy aritmetikai művelet eredménye nulla, ha bármelyik argumentum nulla (kivéve a nullákat figyelmen kívül hagyó függvényeket).
Példa a null használatára
A 8.6. ábrán látható Salary tábla (Salary_tbl) segítségével követheti a null használatának példáját.
Kezdésként keressük meg az összes olyan alkalmazottat (emp#) az értékesítésben (a jobName oszlopban), akinek a fizetése plusz a jutalék nagyobb, mint 30.000.
- SELECT emp# FROM Salary_tbl
- WHERE jobName = Sales AND
- (jutalék + fizetés) > 30,000 -> E10 és E12
Ez az eredmény nem tartalmazza az E13-at, mert a jutalék oszlopban null érték van. Ahhoz, hogy a nulla értékkel rendelkező sor is szerepeljen, meg kell néznünk az egyes mezőket. Az E13-as alkalmazott jutalékának és fizetésének összeadásával az eredmény egy nullás érték lesz. A megoldás az alábbiakban látható.
Kapcsolatok
A kapcsolatok a ragasztó, amely összetartja a táblázatokat. A táblák közötti kapcsolódó információk összekapcsolására szolgálnak.
A kapcsolatok erőssége azon alapul, hogy a kapcsolódó entitás elsődleges kulcsa hogyan van definiálva. Gyenge, vagy nem azonosító kapcsolat akkor áll fenn, ha a kapcsolódó entitás elsődleges kulcsa nem tartalmazza a szülő entitás elsődleges kulcskomponensét. A vállalati adatbázis példái:
- Vevő(CustID, CustName)
- Megrendelés(OrderID, CustID, Date)
Egy erős, vagy azonosító kapcsolat akkor áll fenn, ha a kapcsolódó entitás elsődleges kulcsa tartalmazza a szülő entitás elsődleges kulcskomponensét. Példák:
- Course(CrsCode, DeptCode, Description)
- Class(CrsCode, Section, ClassTime…)
Kapcsolattípusok
A következőkben a kapcsolatok különböző típusait ismertetjük.
Egy a sokhoz (1:M) kapcsolat
Az egy a sokhoz (1:M) kapcsolatnak kell lennie a normának minden relációs adatbázis-tervezésben, és minden relációs adatbázis-környezetben megtalálható. Például egy részlegnek sok alkalmazottja van. A 8.7. ábra az egyik ilyen alkalmazott és az osztály kapcsolatát mutatja.
Egy az egyhez (1:1) kapcsolat
Az egy az egyhez (1:1) kapcsolat az egyik entitásnak csak egy másik entitással való kapcsolata, és fordítva. Minden relációs adatbázis-tervezésben ritkának kell lennie. Valójában azt jelezheti, hogy két entitás valójában ugyanabba a táblába tartozik.
Egy példa a COMPANY adatbázisból: egy alkalmazott egy házastárshoz, és egy házastárs egy alkalmazotthoz kapcsolódik.
Sok-sok (M:N) kapcsolatok
A sok-sok kapcsolat esetében vegyük figyelembe a következőket:
- A relációs modellben nem valósítható meg ilyen formában.
- Két 1:M kapcsolattá alakítható.
- Egy összetett entitás megvalósítása.
- Két vagy több 1:M kapcsolatot hoz létre.
- Az összetett entitás táblának legalább az eredeti táblák elsődleges kulcsait kell tartalmaznia.
- A kapcsoló tábla tartalmazza az idegen kulcsok értékeinek többszörös előfordulását.
- Szükség szerint további attribútumok rendelhetők hozzá.
- Egy összetett entitás vagy híd entitás létrehozásával elkerülhetők az M:N kapcsolatban rejlő problémák. Például egy alkalmazott dolgozhat sok projekten VAGY egy projekten dolgozhat sok alkalmazott, az üzleti szabályoktól függően. Vagy egy diáknak sok osztálya lehet, és egy osztály sok diákot tarthat.
A 8.8. ábra az M:N kapcsolat egy másik aspektusát mutatja, ahol egy alkalmazottnak különböző kezdődátumai vannak a különböző projektekhez. Ezért szükségünk van egy JOIN táblára, amely tartalmazza az EID-t, a kódot és a StartDate-ot.
Példa egy M:N bináris kapcsolattípus leképezésére
- Minden M:N bináris kapcsolathoz azonosítson két kapcsolatot.
- A és B két, az R-ben részt vevő entitástípust képvisel.
- Készítsünk egy új S relációt az R ábrázolásához.
- S-nek tartalmaznia kell A és B PK-it. Ezek együttesen lehetnek a PK az S táblában VAGY ezek együtt az új R tábla egy másik egyszerű attribútumával együtt lehetnek a PK.
- Az elsődleges kulcsok (A és B) kombinációja lesz az S elsődleges kulcsa.
Unáris kapcsolat (rekurzív)
A rekurzívnak is nevezett unáris kapcsolat olyan kapcsolat, amelyben ugyanazon entitáshalmaz előfordulásai között áll fenn kapcsolat. Ebben a kapcsolatban az elsődleges és az idegen kulcsok azonosak, de két különböző szerepű entitást képviselnek. Egy példát lásd a 8.9. ábrán.
Egy unáris kapcsolatban lévő egyes entitások esetében létrehozható egy külön oszlop, amely ugyanannak az entitáshalmaznak az elsődleges kulcsára utal.
Terner kapcsolatok
A terner kapcsolat olyan kapcsolattípus, amely három tábla közötti sok-sok kapcsolatot foglal magában.
A terner kapcsolattípus leképezésének példáját lásd a 8.10. ábrán. Megjegyzendő, hogy az n-ary azt jelenti, hogy több tábla van egy kapcsolatban. (Ne feledje, N = sok.)
- Minden n-ary (> 2) kapcsolathoz hozzon létre egy új kapcsolatot a kapcsolat ábrázolására.
- Az új kapcsolat elsődleges kulcsa az N (sok) oldalt birtokló résztvevő entitások elsődleges kulcsainak kombinációja.
- A legtöbb n-áras kapcsolat esetében az összes résztvevő entitás rendelkezik many oldallal.
jellemző entitások: olyan entitások, amelyek több információt szolgáltatnak egy másik tábláról
összetett attribútumok: attribútumok hierarchiájából álló attribútumok
összetett kulcs: két vagy több attribútumból áll, de minimálisnak kell lennie
függő entitások: ezek az entitások jelentésükben más tábláktól függenek
származó attribútumok: olyan attribútumok, amelyek más attribútumokból számított értékeket tartalmaznak
származó entitások: lásd függő entitások
EID: munkavállalói azonosító (ID)
entitás: a való világban önálló létező dolog vagy tárgy, amely megkülönböztethető más objektumoktól
entitás kapcsolat (ER) adatmodell: ER sémának is nevezik, ER diagramokkal ábrázolják. Ezek jól alkalmazhatók az adatbázisokkal való adatmodellezésre.
entitáskapcsolati séma: lásd: entitáskapcsolati adatmodell
entitáshalmaz: egy entitás típusba tartozó entitások gyűjteménye egy adott időpontban
entitás típus: hasonló entitások gyűjteménye
foreign key (FK): egy táblázat olyan attribútuma, amely egy másik táblázat elsődleges kulcsára hivatkozik VAGY lehet nulla
független entitás:
kernel: lásd független entitás
kulcs: olyan attribútum vagy attribútumcsoport, amelynek értékei segítségével egyedileg azonosítható egy egyedi entitás egy entitáshalmazban
többértékű attribútumok: olyan attribútumok, amelyek minden entitáshoz több értékkel rendelkeznek
n-ary: több tábla egy kapcsolatban
null: egy speciális, adattípustól független szimbólum, amely vagy ismeretlen vagy nem alkalmazható; nem jelenti a nullát vagy az ürességet
rekurzív kapcsolat: lásd unáris kapcsolat
kapcsolatok: az entitások közötti kapcsolatok vagy kölcsönhatások; táblák közötti kapcsolódó információk összekapcsolására szolgál
kapcsolat erőssége: A kapcsolódó entitás elsődleges kulcsának meghatározása alapján
szekunder kulcs egy olyan attribútum, amelyet szigorúan lekérdezési célokra használnak
egyszerű attribútumok: az atomi értéktartományokból merít
SIN: társadalombiztosítási szám
egyértékű attribútumok: lásd egyszerű attribútumok
tárolt attribútum: fizikailag az adatbázisba mentve
szternáris kapcsolat: olyan kapcsolattípus, amely három táblázat közötti sok-sok kapcsolatot tartalmaz.
unáris kapcsolat: olyan kapcsolat, amelyben ugyanazon entitáshalmaz előfordulásai között áll fenn kapcsolat.
- Melyik két fogalmon alapul az ER modellezés?
- A 8.11. ábrán látható adatbázis két táblából áll. Használja ezt az ábrát a 2.1-2.5. kérdések megválaszolásához.
- Identifikálja mindkét tábla elsődleges kulcsát.
- Identifikálja az idegen kulcsot a PLAY táblában.
- Identifikálja a jelölt kulcsokat mindkét táblában.
- Rajzolja le az ER modellt.
- A PLAY tábla referenciális integritást mutat? Miért vagy miért nem?
- Meghatározza a következő fogalmakat (néhányhoz esetleg az internetet kell használnia):
séma
host nyelv
adat alnyelv
adatdefiníciós nyelv
unáris reláció
idegen kulcs
virtuális reláció
összeköttetés
összetett kulcs
kapcsoló tábla - A RRE Trucking Company adatbázisában a 8. ábrán látható három tábla található.12. A 8.12. ábra segítségével válaszoljon a 4.1-4.5. kérdésekre.
- Identifikálja az egyes táblák elsődleges és idegen kulcsát/kulcsait.
- A TRUCK tábla entitás és referenciális integritást mutat? Miért vagy miért nem? Magyarázza meg válaszát.
- Milyen kapcsolat van a TRUCK és a BASE táblák között?
- Hány entitást tartalmaz a TRUCK tábla?
- Határozza meg a TRUCK tábla jelölt kulcs(ok)at.
- Tegyük fel, hogy a 8.13. ábrán látható, a két táblából álló adatbázist használjuk. Használja a 8.13. ábrát az 5.1-5.6. kérdések megválaszolásához.
- Határozza meg az elsődleges kulcsot mindkét táblában.
- Határozza meg az idegen kulcsot a BookOrders táblában.
- Vannak jelölt kulcsok bármelyik táblában?
- Rajzolja meg az ER modellt.
- A BookOrders tábla referenciális integritást mutat? Miért vagy miért nem?
- A táblák tartalmaznak-e redundáns adatokat? Ha igen, melyik táblázat(ok) és milyen redundáns adatok vannak?
- Nézze meg a 8.14. ábrán látható diák táblát, és sorolja fel az összes lehetséges kulcsjelöltet. Miért ezeket választotta ki?
A 8.15. ábrán látható iskolai adatbázis ERD-je segítségével válaszoljon a 7-10. kérdésekre.
- Idézze meg az ERD-ben szereplő összes magot, függő és jellemző entitást.
- Mely táblák közül melyek járulnak hozzá a gyenge kapcsolatokhoz? Erős kapcsolatokhoz?
- Nézzük meg a 8.15. ábrán látható iskolai adatbázis egyes tábláit, melyik attribútumnak lehet NULL értéke? Miért?
- Mely táblák közül melyek jöttek létre sok-sok kapcsolat eredményeként?
Lásd még a B függeléket: Minta ERD-gyakorlatok
Tulajdonjog
Az adatbázis-tervezés ezen fejezete (beleértve a képeket is, kivéve, ha másként nincs feltüntetve) a Nguyen Kim Anh által írt Data Modeling Using Entity-Relationship Model című könyv származékos másolata, amely a Creative Commons Attribution License 3 licenc alatt áll.0 licenc
A következő anyagot Adrienne Watt írta:
- Nulls szakasz és példa
- Főbb kifejezések
- gyakorlatok
.