Adatbázis rendszerek 1. 7.Gy: Viszonyított betűszámtan Relációs algebra alapok 1/36 B ITv: MAN 2017.10.26
Gyakorló feladat: Termék-Vásárló Az adatbázis ER modellje: Tkód Név Azonosító Név Vásárlás Termék Vásárló Ár Leírás Dátum Darab Lakcím FizMód Irsz. Város Cím 2/36
Gyakorló feladat: Termék-Vásárló 2. Az adatbázis relációs modellje: Termék Vásárlás Tkód C5 Név C25 Ár N6 Leírás C30 Kód C5 Dátum D Darab N6 Azon C5 Vásárló Azonosító C5 Név C25 Irsz C4 Város C40 Cím C30 FizMód C15 Séma: 3/36 Termék [ Tkód, Név, Ár, Leírás ] Vásárlás [ Kód, Dátum, Darab, Azon ] Vásárló [ Azonosító, Név, Irsz, Város, Cím, FizMód ]
Gyakorló feladat: Termék-Vásárló 3. Séma: Termék [ Tkód, Név, Ár, Leírás ] Vásárlás [ Kód, Dátum, Darab, Azon ] Vásárló [ Azonosító, Név, Irsz, Város, Cím, FizMód ] 1. Termékek neve: П név (termék) 4/36
Gyakorló feladat: Termék-Vásárló 3. Séma: Termék [ Tkód, Név, Ár, Leírás ] Vásárlás [ Kód, Dátum, Darab, Azon ] Vásárló [ Azonosító, Név, Irsz, Város, Cím, FizMód ] 2. A 2000 Ft-nál olcsóbb termékek neve: П név (σ ár<2000 (termék)) 5/36
Gyakorló feladat: Termék-Vásárló 3. Séma: Termék [ Tkód, Név, Ár, Leírás ] Vásárlás [ Kód, Dátum, Darab, Azon ] Vásárló [ Azonosító, Név, Irsz, Város, Cím, FizMód ] 3. A Kis Rozi által vásárolt termékek neve: П termék.név (σ vásárló.név='kis Rozi' (vásárló azonosító=azon vásárlás kód=tkód termék)) 6/36
Gyakorló feladat: Termék-Vásárló 4. Séma: Termék [ Tkód, Név, Ár, Leírás ] Vásárlás [ Kód, Dátum, Darab, Azon ] Vásárló [ Azonosító, Név, Irsz, Város, Cím, FizMód ] 4. Azon termékek neve, amelyeket már vásároltak: П név (termék tkód=kód vásárlás) 7/36
Gyakorló feladat: Termék-Vásárló 4. Séma: Termék [ Tkód, Név, Ár, Leírás ] Vásárlás [ Kód, Dátum, Darab, Azon ] Vásárló [ Azonosító, Név, Irsz, Város, Cím, FizMód ] 5. Azon termékek neve, amelyeket még nem vásároltak: П név (termék) \ П név (termék tkód=kód vásárlás) 8/36
Gyakorló feladat: Termék-Vásárló 4. Séma: Termék [ Tkód, Név, Ár, Leírás ] Vásárlás [ Kód, Dátum, Darab, Azon ] Vásárló [ Azonosító, Név, Irsz, Város, Cím, FizMód ] 6. Hány féle termék van? Γ count(*) (termék) 9/36
Gyakorló feladat: Termék-Vásárló 4. Séma: Termék [ Tkód, Név, Ár, Leírás ] Vásárlás [ Kód, Dátum, Darab, Azon ] Vásárló [ Azonosító, Név, Irsz, Város, Cím, FizMód ] 7. A legdrágább termék(ek) neve, ára: П név,ár (σ ár= Γ max(ár) (termék) termék) 10/36
Gyakorló feladat: Termék-Vásárló 5. Séma: Termék [ Tkód, Név, Ár, Leírás ] Vásárlás [ Kód, Dátum, Darab, Azon ] Vásárló [ Azonosító, Név, Irsz, Város, Cím, FizMód ] 8. Hányszor vásároltak a t605-ös kódú termékből? Γ count(*) (σ kód='t605' (vásárlás)) 11/36
Gyakorló feladat: Termék-Vásárló 5. Séma: Termék [ Tkód, Név, Ár, Leírás ] Vásárlás [ Kód, Dátum, Darab, Azon ] Vásárló [ Azonosító, Név, Irsz, Város, Cím, FizMód ] 9. Összesen hány darabot vásároltak a t605-ös kódú termékből? Γ sum(darab) (σ kód='t605' (vásárlás)) 12/36
Gyakorló feladat: Termék-Vásárló 5. Séma: Termék [ Tkód, Név, Ár, Leírás ] Vásárlás [ Kód, Dátum, Darab, Azon ] Vásárló [ Azonosító, Név, Irsz, Város, Cím, FizMód ] 10. Összesen hány darabot vásároltak az egyes termékből? Γ kód, sum(darab) (vásárlás) kód 13/36
Gyakorló feladat: Termék-Vásárló 6. Séma: Termék [ Tkód, Név, Ár, Leírás ] Vásárlás [ Kód, Dátum, Darab, Azon ] Vásárló [ Azonosító, Név, Irsz, Város, Cím, FizMód ] 11. Az egyes városokban hány vásárló van? Γ város, count(*) (vásárló) város 14/36
Gyakorló feladat: Termék-Vásárló 6. Séma: Termék [ Tkód, Név, Ár, Leírás ] Vásárlás [ Kód, Dátum, Darab, Azon ] Vásárló [ Azonosító, Név, Irsz, Város, Cím, FizMód ] 12. Összesen mennyit fizetett Kis Rozi? Γ sum(ár*darab) (σ vásárló.név='kis Rozi' (vásárló azonosító=azon vásárlás kód=tkód termék)) 15/36
Gyakorló feladat: Termék-Vásárló 6. Séma: Termék [ Tkód, Név, Ár, Leírás ] Vásárlás [ Kód, Dátum, Darab, Azon ] Vásárló [ Azonosító, Név, Irsz, Város, Cím, FizMód ] 13. 2010 májusában mennyi volt a bevétel? Γ sum(ár*darab) (σ dátum='2010.05.*' (vásárlás kód=tkód termék)) 16/36
Gyakorló feladat: Oktató-Tantárgy-Hallgató neptunkód név kód kredit Oktató oktat Tárgy megnevezés tanszék félév vizsgajegy hallgat neptunkód név cím Hallgató tankör 17/36 irszám város utca hsz életkor szül.d.
Gyakorló feladat: Oktató-Tantárgy-Hallgató 2. neptunkód név kód kredit Oktató oktat Tárgy megnevezés tanszék Relációs sémák: OKTATÓ [ neptunkód, név, tanszék ] TÁRGY [ kód, megnevezés, kredit, oktató ] 18/36
Gyakorló feladat: Oktató-Tantárgy-Hallgató 3. Tárgy félév vizsgajegy hallgat neptunkód név cím Hallgató tankör irszám város utca hsz életkor szül.d. 19/36 Relációs sémák: HALLGATÓ [neptunkód, név, szül.d, tankör, irsz, város, utca, hsz] HALLGAT [ hallgató, tárgy, félév, vizsgajegy ]
Gyakorló feladat: Oktató-Tantárgy-Hallgató 4. Relációs sémák: OKTATÓ [ neptunkód, név, tanszék ] TÁRGY [ kód, megnevezés, kredit, oktató ] HALLGATÓ [neptunkód, név, szül.d, tankör, irsz, város, utca, hsz] HALLGAT [ hallgató, tárgy, félév, vizsgajegy ] 1. Oktatók neve: П név (oktató) 20/36
Gyakorló feladat: Oktató-Tantárgy-Hallgató 4. Relációs sémák: OKTATÓ [ neptunkód, név, tanszék ] TÁRGY [ kód, megnevezés, kredit, oktató ] HALLGATÓ [neptunkód, név, szül.d, tankör, irsz, város, utca, hsz] HALLGAT [ hallgató, tárgy, félév, vizsgajegy ] 2. Oktatók és tantárgyaik neve: П név, megnevezés (oktató neptunkód=oktató tárgy) oktató.neptunkód=tárgy.oktató 21/36
Gyakorló feladat: Oktató-Tantárgy-Hallgató 4. Relációs sémák: OKTATÓ [ neptunkód, név, tanszék ] TÁRGY [ kód, megnevezés, kredit, oktató ] HALLGATÓ [neptunkód, név, szül.d, tankör, irsz, város, utca, hsz] HALLGAT [ hallgató, tárgy, félév, vizsgajegy ] 3. Oktatók és tantárgyaik neve (azok az oktatók is, akiknek nincs tárgya): П név, megnevezés (oktató + neptunkód=oktató tárgy) oktató.neptunkód=tárgy.oktató 22/36
Gyakorló feladat: Oktató-Tantárgy-Hallgató 5. Relációs sémák: OKTATÓ [ neptunkód, név, tanszék ] TÁRGY [ kód, megnevezés, kredit, oktató ] HALLGATÓ [neptunkód, név, szül.d, tankör, irsz, város, utca, hsz] HALLGAT [ hallgató, tárgy, félév, vizsgajegy ] 4. A VIR Tsz-en dolgozó oktatók neve és tárgyaik címe: П név, megnevezés (σ tanszék= VIR (oktató neptunkód=oktató tárgy) oktató.neptunkód=tárgy.oktató 23/36
Gyakorló feladat: Oktató-Tantárgy-Hallgató 5. Relációs sémák: OKTATÓ [ neptunkód, név, tanszék ] TÁRGY [ kód, megnevezés, kredit, oktató ] HALLGATÓ [neptunkód, név, szül.d, tankör, irsz, város, utca, hsz] HALLGAT [ hallgató, tárgy, félév, vizsgajegy ] 5. Az átlagos kreditpontszám: Γ avg(kredit) (tárgy) 24/36
Gyakorló feladat: Oktató-Tantárgy-Hallgató 5. Relációs sémák: OKTATÓ [ neptunkód, név, tanszék ] TÁRGY [ kód, megnevezés, kredit, oktató ] HALLGATÓ [neptunkód, név, szül.d, tankör, irsz, város, utca, hsz] HALLGAT [ hallgató, tárgy, félév, vizsgajegy ] 6. A VIR Tsz.-en oktatók létszáma: Γ count(*) (σ tanszék='vir' (oktató) ) 25/36
Gyakorló feladat: Oktató-Tantárgy-Hallgató 6. Relációs sémák: OKTATÓ [ neptunkód, név, tanszék ] TÁRGY [ kód, megnevezés, kredit, oktató ] HALLGATÓ [neptunkód, név, szül.d, tankör, irsz, város, utca, hsz] HALLGAT [ hallgató, tárgy, félév, vizsgajegy ] 7. A legnagyobb kreditpontszámú tárgy(ak) címe: Π megnevezés (σ kredit= (Γ max(kredit) (tárgy)) (tárgy)) 26/36
Gyakorló feladat: Oktató-Tantárgy-Hallgató 6. Relációs sémák: OKTATÓ [ neptunkód, név, tanszék ] TÁRGY [ kód, megnevezés, kredit, oktató ] HALLGATÓ [neptunkód, név, szül.d, tankör, irsz, város, utca, hsz] HALLGAT [ hallgató, tárgy, félév, vizsgajegy ] 8. Azok az oktatók, akiknek nincs tárgya: Π név (oktató) \ Π név (oktató neptunkód=oktató tárgy) 27/36
Gyakorló feladat: Oktató-Tantárgy-Hallgató 7. Relációs sémák: OKTATÓ [ neptunkód, név, tanszék ] TÁRGY [ kód, megnevezés, kredit, oktató ] HALLGATÓ [neptunkód, név, szül.d, tankör, irsz, város, utca, hsz] HALLGAT [ hallgató, tárgy, félév, vizsgajegy ] 9. Azok a hallgatók, akik a 2003/2004 tanév II. félévében nem vettek fel tárgyat: Π név (hallgató) \ Π név ( σ félév='2003/2004 2.' (hallgató hallgató.neptunkód=hallgat.hallgató hallgat 28/36 hallgat.tárgy=tárgy.kód tárgy ) )
Gyakorló feladat: Oktató-Tantárgy-Hallgató 7. Relációs sémák: OKTATÓ [ neptunkód, név, tanszék ] TÁRGY [ kód, megnevezés, kredit, oktató ] HALLGATÓ [neptunkód, név, szül.d, tankör, irsz, város, utca, hsz] HALLGAT [ hallgató, tárgy, félév, vizsgajegy ] 10. Határozzuk meg a hallgatók életkorát: ε rendszer_dátum-szül_dátum Kor (hallgató) A Kor az alias neve a számított mezőnek! 29/36
Gyakorló feladat: Oktató-Tantárgy-Hallgató 8. Relációs sémák: OKTATÓ [ neptunkód, név, tanszék ] TÁRGY [ kód, megnevezés, kredit, oktató ] HALLGATÓ [neptunkód, név, szül.d, tankör, irsz, város, utca, hsz] HALLGAT [ hallgató, tárgy, félév, vizsgajegy ] 11. Tanszékenként az oktatók létszáma: Γ tanszék, count(*) (oktató) tanszék 30/36
Gyakorló feladat: Oktató-Tantárgy-Hallgató 8. Relációs sémák: OKTATÓ [ neptunkód, név, tanszék ] TÁRGY [ kód, megnevezés, kredit, oktató ] HALLGATÓ [neptunkód, név, szül.d, tankör, irsz, város, utca, hsz] HALLGAT [ hallgató, tárgy, félév, vizsgajegy ] 12. Melyik tárgyat hányan hallgatják: Γ megnevezés, count(*) (tárgy tárgy.kód=hallgat.tárgy megnevezés hallgat hallgat.hallgató=hallgató.neptunkód hallgató) 31/36
Gyakorló feladat: Oktató-Tantárgy-Hallgató 9. Relációs sémák: OKTATÓ [ neptunkód, név, tanszék ] TÁRGY [ kód, megnevezés, kredit, oktató ] HALLGATÓ [neptunkód, név, szül.d, tankör, irsz, város, utca, hsz] HALLGAT [ hallgató, tárgy, félév, vizsgajegy ] 13. Azok az oktatók, akiknek 2-nél több tárgyuk van: Π név ( σ db>2 (Γ név név,count(*) db (oktató o.neptunkód=t.oktató tárgy) ) ) oktató.neptunkód=tárgy.oktató 32/36
Gyakorló feladat: Oktató-Tantárgy-Hallgató 9. Relációs sémák: OKTATÓ [ neptunkód, név, tanszék ] TÁRGY [ kód, megnevezés, kredit, oktató ] HALLGATÓ [neptunkód, név, szül.d, tankör, irsz, város, utca, hsz] HALLGAT [ hallgató, tárgy, félév, vizsgajegy ] 14. Az átlagnál alacsonyabb kreditpontú tárgyak oktatóinak neve: Π név ( σ kredit < (Γ avg(kredit) (tárgy)) (tárgy oktató.nepunkód=tárgy.oktató oktató) ) 33/36
Gyakorló feladat: Oktató-Tantárgy-Hallgató 10. Relációs sémák: OKTATÓ [ neptunkód, név, tanszék ] TÁRGY [ kód, megnevezés, kredit, oktató ] HALLGATÓ [neptunkód, név, szül.d, tankör, irsz, város, utca, hsz] HALLGAT [ hallgató, tárgy, félév, vizsgajegy ] 15. A legtöbb tárgyat tanító oktató(k) neve: 1. X = Γ név, count(*) Db (oktató név oktató.nepunkód=tárgy.oktató tárgy) Az X ideiglenes reláció! A Db alias név! 2. Π név (σ Db= (Γ max(db) (X)) (X)) 34/36
Gyakorló feladat: Oktató-Tantárgy-Hallgató 10. Relációs sémák: OKTATÓ [ neptunkód, név, tanszék ] TÁRGY [ kód, megnevezés, kredit, oktató ] HALLGATÓ [neptunkód, név, szül.d, tankör, irsz, város, utca, hsz] HALLGAT [ hallgató, tárgy, félév, vizsgajegy ] 16. Kik azok a hallgatók, akik minden tárgyat felvettek? Π név (σ Γ count(*) (tárgy)=γ hallgató, count(tárgy) (Hallgat) hallgató tárgy.kód=hallgat.tárgy hallgat (tárgy hallgat.hallgató=hallgató.neptunkód hallgató)) 35/36
VÉGE VÉGE 36/36