Sapientia - Erdélyi Magyar Tudományegyetem (EMTE) Csíkszereda
7. Előadás tartalma A relációs adatmodell 7.1 A relációs adatmodell 7.2 Relációs adatbázisséma meghatározása 7.3 E/K diagram átírása relációs modellé 7.4 Osztályhierarchia reprezentálása 1
Sapientia - Erdélyi Magyar Tudományegyetem (EMTE) Csíkszereda
7.1 A relációs adatmodell • Legelterjedtebb modell • Egyszerű deklaratív nyelvvel rendelkezik az adatok kezelésére • Értékorientált 2
A relációs modellben az adatok egyszerűen reprezentálhatók: kétdimenziós táblákban, u.n. Relációkban Attribútumok: a reláció fejrészében találhatók A reláció-attribútumok a reláció oszlopnevei Általában megadják az oszlopban szereplő adatok jelentését Az ábrán levő attribútumok: cím, év, hossz, műfaj
Cím
Év
Hossz
műfaj
Csillagok háborúja
1977
124
sci-fi
Elfújta a szél
1939
231
dráma
Wayne világa
1992
95
vígjáték 3
A relációt a következőképpen jelöljük: R (A1, A2,..., An). A reláció nevét és a reláció attribútumainak a halmazát együtt relációsémának nevezzük. a.) Diákok(Név, SzületésiDátum, CsopKod) Név Nagy Ödön
SzületésiDátum 1975-DEC-13
CsopKod 512
Kiss Csaba Papp József
1971-APR-20 1973-JAN-6
541 521
b.) Könyvek(Szerző, Cím, Kiadó, KiadÉv) Szerző
Cím
Kiadó
C.J.Date
An Introduction Systems
to
Paul Helman
The Science of Database
KiadÉv
Database AddisonWesley
1995
IRWIN
1994 4
Sapientia - Erdélyi Magyar Tudományegyetem (EMTE) Csíkszereda Séma: reláció neve és attribútumainak zárójelben való felsorolása Film(cím, év, hossz, szalagfajta) ekvivalens, mert HALMAZ Film(szalagfajta, év, cím, hossz) Viszont mindíg kiválasztunk valamilyen “standard” sorrendet. HALMAZ: • Sorrend nem számít • Nincs 2 egyforma eleme a halmaznak 5
Sapientia - Erdélyi Magyar Tudományegyetem (EMTE) Csíkszereda Sorok: a reláció azon sorai, amelyek különböznek az attribútumokból álló fejléc sorától (angolul tuple) (Csillagok háborúja, 1977, 124, színes) Sorok HALMAZ Komponens: Az oszlop és sor találkozása – atomi komponens Értéktartományok: minden sor minden komponense atomi, azaz elemi tipusú (egész, karaktersor, dátum) NEM rekordszerkezet, halmaz, lista Minden attribútumhoz hozzátartozik egy értéktartomány. Cím=Karaktersor; évegész; hosszegész 6 műfaj{sci-fi, dráma, vígjáték} konstansok
Sapientia - Erdélyi Magyar Tudományegyetem (EMTE) Csíkszereda
A relációk előfordulásai A relációk NEM állandóak, többször is változhatnak az idők során. A változások a relációk SORAIRA vonatkoznak általában, • új sorok beszúrása (új számlák készítése, új filmek felvétele az adatbázisba) • sorok módosítása (pontatlan vagy hiányos információk miatt) • sorok törlése (túlhaladott, nem használható információk) SÉMA változtatása KÖLTSÉGES Új attribútum felvétele: Mivel töltsük ki a meglévő sorokban az attribútumok értékeit? 7
Sapientia - Erdélyi Magyar Tudományegyetem (EMTE) Csíkszereda A relációs modell tulajdonságai: • A tábla nem tartalmazhat két teljesen azonos sort • Kulcs értelmezése: egy S attribútumhalmaz az R reláció kulcsa ha: a.) R relációnak nem lehet két sora, melynek értékei megegyeznek az S halmaz minden attribútumára. b.) S egyetlen valódi részhalmaza sem rendelkezik a) tulajdonsággal • A táblázat sorainak, oszlopainak sorrendje lényegtelen • A táblázat oszlopaira nevükkel hivatkozunk, tehát, két attribútumnak nem lehet ugyanaz a neve 8
Sapientia - Erdélyi Magyar Tudományegyetem (EMTE) Csíkszereda Külső kulcs: Egy relációséma attribútumainak valamely részhalmaza külső kulcs (másnéven idegen kulcs, angolul foreign key), ha egy másik séma elsődleges kulcsára hivatkozik Jelölés: a külső kulcsot dőlt betűvel, vagy a hivatkozott kulcsra mutató nyíllal jelöljük Példa. A beszállítói nyilvántartás adatbázissémájából: SZÁMLA (számlaszám, ÁFA, dátum, beszállítóKód, összeg) Beszállító (beszállítóKód, név, cím) 9
Sapientia - Erdélyi Magyar Tudományegyetem (EMTE) Csíkszereda 7.2 Relációs adatbázisséma meghatározása Relációs adatbázisséma: az adatbázist alkotó relációk sémájának az összessége, a relációkban tárolt konkrét értékek alkotják a relációs adatbázist A megszorítások a séma RÉSZE Relációs adatbázis séma meghatározása: • egyed-kapcsolat diagram átírása relációsémává • egy létező relációs adatbázis sémát normalizálás segítségével normál formára hozunk. 10
7.3 E/K diagram átírása relációs modellé Egyedhalmazok átírása: Szabály: az E-K modell minden egyedéhez felírunk egy relációsémát, amelynek neve az egyed neve, attribútumai az egyed attribútumai, kulcsa az egyed kulcs-attribútumai. A séma feletti adattábla minden egyes sora egy egyedpéldánynak felel meg Hossz
Cím
Év
Szalagfajta
Filmek
Filmek(Hossz, Cím, Év, Szalagfajta) 11
Gyenge entitások leképezése: Szabály: a gyenge entitás relációsémáját bővíteni kell a meghatározó kapcsolat(ok)ban szereplő egyed(ek) kulcsával
Szerződés(SzínészNév, StúdióNév, FilmCím, GyártÉv, Fizetés) 12 kellene legyen A stúdiója kapcsolat is gyenge, a képen dupla vonal
Kapcsolatok leképezése Általános szabály: 1. Vegyünk fel a kapcsolathoz egy új sémát, amelynek neve a kapcsolat neve, attribútumai pedig a kapcsolódó entitások kulcs attribútumai és a kapcsolat saját attribútumai. 2. Ha egy kapcsolat 1:n tipusú és hivatkozásépségi megszorításunk van az 1-es felén, akkor a kapcsolat NEM alakul át relációvá, hanem a kapcsolat n felén levő egyedhalmaz relációjába idegen kulcsként bevesszük a kapcsolat 1 felénél levő egyedhalmaz kulcs-attribútumait. Kulcsok: 1: n kapcsolat: n oldalon álló egyedhalmaz kulcsa (1:1 esetben tetszőleges) m:n kapcsolat: a résztvevő egyedosztályok kulcsainak 13 egyesítése.
Sapientia - Erdélyi Magyar Tudományegyetem (EMTE) Csíkszereda ÉV
NÉV LAKCIM
CIM
FILMEK
SZEREPLŐ
SZINÉSZEK
HOSSZ MŰFAJ
Szereplő(FilmCím, GYártÉv, SzínészNév) 14
SzemSzám
RészlegID Fizetés
Név Helység
Név 1..M Alkalmazottak
0..1
1
Dolgozik
Részlegek
Alkalmazottak (SzemSzám, Név, Fizetés) Részlegek (RészlegID, Név, Helység) Dolgozik(SzemSzám, RészlegID) Alkalmazottak (SzemSzám, Név, Fizetés, ReszlegID) Részlegek (RészlegID, Név, Helység) 15
Sapientia - Erdélyi Magyar Tudományegyetem (EMTE) Csíkszereda Szabály: 1. Abban az esetben, ha 1 és 1..M kapcsolatunk van, a kapcsolat integrálható, egy idegen kulcs segítségével az 1..M felőli táblába. 2. Abban az esetben amikor 0..1 és 1..M kapcsolatunk van, a kapcsolatot nem integráljuk, hanem külön jelenítjük meg egy relációban. Így hivatkozás-épségi megszorításokat tehetünk be az egyedhalmazból keletkezett relációk és a kapcsolatból keletkezett relációk közé 3. Integrálható a 2-ik eset is, ha beviszünk egy olyan részleget, hogy pl. (X,nemrészleg, vállalat) 16
Sapientia - Erdélyi Magyar Tudományegyetem (EMTE) Csíkszereda
Lehet olyan alkalmazott, aki NEM tartozik egyik részleghez sem 17
ID
Név
Funkció
444
Miklós Ernő
Igazgató
555
Bálint Lajos
Lakatos
RészlegID A1 B2
AlkID
ReszlegID
555
A1
Megnevezés Helység Lakatosműhely A épület Csomagoló B épület
Az igazgató, mivel nem tartozik egyik részleghez sem, nincs megfelelő sora a kapcsolat-táblában 18
Sapientia - Erdélyi Magyar Tudományegyetem (EMTE) Csíkszereda
Ebben az esetben MINDEN alkalmazottnak tartoznia kell egy részleghez 19
ID
Nev
Funkcio
444
Miklós Ernő
Igazgató
X
555
Bálint Lajos
Lakatos
A1
RészlegID A1 B2 X
RészlegID
Megnevezés Helység Lakatosműhely A épület Csomagoló B épület Nincsrészleg
Mivel az igazgató nem tartozik egyik részleghez sem, viszont a hivatkozás-épség megkívánja, hogy tartozzon valahová, meghatározunk egy olyan részleget, hogy Nincsrészleg, vagy egyszerűen üresen hagyjuk 20
Kliens(Klienskód, név, cím, adószám, bank, bankszámla) Számla(számlaszám, ÁFA, dátum, összeg, klienskód) Számlasor(számlaszám, Sorszám, mértékegység, termék, egységár, mennyiség)
számlaszám
ÁFA
Sorszám
1 Számlák
mértékegység
Számlasorok
sorai 1..M 1..M
Dátum
számlája
összeg
egységár
mennyiség
1 Kliensek 21
termék
Specializáló kapcsolatok leképezése 1. Minden altípushoz külön tábla felvétele, egy egyed csak egy táblában szerepel. Az altípusok öröklik a főtípus attribútumait. HELYISÉG (épület, ajtószám, név, alapterület) TANTEREM (épület, ajtószám, név, alapterület, férőhely, tábla, vetítő) GÉPTEREM (épület, ajtószám, név, alapterület, gépszám) IRODA (épület, ajtószám, név, alapterület, telefon, fax)
22
2. Minden altípushoz külön tábla felvétele, egy egyed több táblában is szerepelhet. A főtípus táblájában minden egyed szerepel, és annyi altípuséban ahánynak megfelel. Az altípusok a főtípustól csak a kulcs-attribútumokat öröklik. HELYISÉG (épület, ajtószám, név, alapterület) TANTEREM (épület, ajtószám, férőhely, tábla, vetítő) GÉPTEREM (épület, ajtószám, gépszám) IRODA (épület, ajtószám, telefon, fax) 3. Egy közös tábla felvétele, az attribútumok úniójával. Az aktuálisan értékkel nem rendelkező attribútumok NULL értékűek. HELYISÉG (épület, ajtószám, név, alapterület, férőhely, 23 tábla, vetítő, gépszám, telefon, fax)
hossz
cím
szerep
év
műfaj
Filmek Hangok
azegy
azegy fegyver
Rajzfilmek
Bűnűgyi filmek
azegy
azegy
Bűnűgyi Rajzfilmek 24
Film(cím, év, hossz, műfaj) BűnűgyiFilm(cím, év, hossz, műfaj, fegyver) Rajzfilm(cím, év, hossz, műfaj) Hang(filmCím, gyártÉv, színészNév, szerep) BűnűgyiRajzfilm(cím, év, hossz, műfaj, fegyver)
Egyedhalmazok összevonása nullérték használatával Film(cím, év, hossz, műfaj, fegyver, hang) Hang(filmCím, gyártÉv, színészNév, szerep)
25
Sapientia - Erdélyi Magyar Tudományegyetem (EMTE) Csíkszereda Egy lehetséges megkülönböztetés NULL érték használatával Hang
Fegyver
Filmtipús
NULL
NULL
Film
NULL
Érték
Bűnűgyi film
0
NULL
Néma rajzfilm
0
Érték
Néma bűnűgyi rajzfilm
1
NULL
Hangos rajzfilm
1
Érték
Hangos bűnűgyi rajzfilm 26
Sapientia - Erdélyi Magyar Tudományegyetem (EMTE) Csíkszereda A személyek közötti szülői, házastársi kapcsolat modellezése Személy
Gyereke
Gyerek 1..M
Anya
Apa 1..M
Apja
1
1 Házastársak
Anyja 27
Sapientia - Erdélyi Magyar Tudományegyetem (EMTE) Csíkszereda A relációk felírása: csak kapcsolatokban különböznek a személyek. Személy(név, szülDátum,cím) Apja(apaNév,apaSzülD, gyerekNév, gyerekSzülD) Anyja(anyaNév,anyaSzülD, gyerekNév, gyerekSzülD) Házastárs(apaNév,apaSzülD, anyaNév, anyaSzülD) Gyereke(személyNév,szemSzülD, gyerekNév, gyerekSzülD) A házastársi kapcsolatban, ha egy bizonyos pillanatot veszünk, akkor 1:1 kapcsolat van, másképp 1..N az 1..M-hez 28
A relációba való átírás nem egyezik a rajzzal emiatt.
Sapientia - Erdélyi Magyar Tudományegyetem (EMTE) Csíkszereda
Összefoglaló kérdések 1) Mi a relációs modell? 2) Mik a sémák? 3) Hogy történik az egyedhalmazok átírása relációkká? 4) Kapcsolatok átírása relációkká? 5) Osztályhierarchia reprezentálása a relációs modellben.
29