Adatbázis rendszerek Ea: Viszonyított betűszámtan. Relációs algebra alapok

Hasonló dokumentumok
Adatbázis-kezelés. 3. Ea: Viszonyított betűszámtan (2013) Relációs algebra alapok (átgondolt verzió) v: Szűcs Miklós - ME, ÁIT. 1.

Adatbázis rendszerek Ea: Viszonyított betűszámtan. Relációs algebra alapok

Adatbázis rendszerek 1. 7.Gy: Viszonyított betűszámtan. Relációs algebra alapok

7. Gyakorlat A relációs adatmodell műveleti része

A RELÁCIÓS ADATMODELL MŰVELETI RÉSZE (RELÁCIÓS ALGEBRA ÉS KALKULUS)


GEIAL Kovács László. GEIAL Kovács László

AB1 ZH mintafeladatok. 6. Minősítse az állításokat! I-igaz, H-hamis

ADATBÁZIS-KEZELÉS. Relációalgebra, 5NF

Adatbázis rendszerek SQL nyomkövetés

Adatbázis rendszerek 7. Matematikai rendszer amely foglal magában:

Adatbázis Rendszerek

B I T M A N B I v: T M A N

Relációs algebra 1.rész alapok

ADATBÁZISOK ELMÉLETE 5. ELŐADÁS 3/22. Az F formula: ahol A, B attribútumok, c érték (konstans), θ {<, >, =,,, } Példa:

Adatbázis rendszerek 2. előadás. Relációs algebra

Adatbázis rendszerek Gy: DQL Lekérdezések

Adatbázisok I. Definíció: DDL: - objektum létrehozás CREATE - objektum megszüntetés DROP - objektum módosítás ALTER

Adatbázisok I A relációs algebra

Adatbázis rendszerek 2. előadás. Relációs algebra

4. előadás. Relációalgebra és relációkalkulusok. Adatbázisrendszerek előadás október 10.

Redukciós műveletek. Projekció (vetítés): oszlopok kiválasztása. Jelölés: attribútumlista (tábla) Példa: Könyv

Adatbázis Rendszerek II. 3. SQL alapok

Adatbázisok elmélete

ADATBÁZISOK gyakorlat: SQL 2. rész SELECT

5.előadás: Adatbázisok-I. dr. Hajas Csilla (ELTE IK)

Dolgozó Kód Név Város Beosztás Belépés Fizetés Osztály. Adatbázis-kezelés alapjai SQL 2: DQL. v: B IT MAN 169/1

Relációs adatmodell. Adatbázisok használata

Adatbázis Rendszerek II. 2. Ea: Gyakorló környezet

Adatbázis rendszerek 1. 4.Gy: ER modell

Adatbázisok 1. Kósa Balázs gyakorlata alapján Készítette: Nagy Krisztián. 1. gyakorlat

Relációs algebra lekérdezések optimalizációja. Adatbázisok használata

Adatbázis rendszerek Ea: Esqúel. Structured Query Language

Adatbázis rendszerek 1. 5.Gy: ER relációs konverzió

Adatbázis-kezelés. alapfogalmak

Csima Judit szeptember 6.

ABR ( Adatbázisrendszerek) 2. Előadás : Műveletek a relációs modellben

Adatbázis Rendszerek II. 8. Gyakorló környezet

ADATBÁZIS RENDSZEREK. Attributum típusok, normalizálsá, relációs algebra. Krausz Nikol, Medve András, Molnár Bence

Adatbázis, adatbázis-kezelő

Marton József BME-TMIT. Adatbázisok VITMAB november 11.

SQL. Táblák összekapcsolása lekérdezéskor Aliasok Allekérdezések Nézettáblák

ADATBÁZIS RENDSZEREK. Attributum típusok, relációs algebra. Krausz Nikol, Medve András, Molnár Bence

Adatbázis Rendszerek II. 2. Gyakorló környezet

MS ACCESS 2010 ADATBÁZIS-KEZELÉS ELMÉLET SZE INFORMATIKAI KÉPZÉS 1

A gyakorlat során MySQL adatbázis szerver és a böngészőben futó phpmyadmin használata javasolt. A gyakorlat során a következőket fogjuk gyakorolni:

Adatbázis-kezelés, információs-rendszerek

INFORMATIKA ÁGAZATI ALKALMAZÁSAI. Az Agrármérnöki MSc szak tananyagfejlesztése TÁMOP /1/A

ABR ( Adatbázisrendszerek) 1. Előadás : Műveletek a relációs medellben

Mveletek a relációs modellben. A felhasználónak szinte állandó jelleggel szüksége van az adatbázisban eltárolt adatok egy részére.

8. Gyakorlat SQL. DDL (Data Definition Language) adatdefiníciós nyelv utasításai:

5. Gyakorlat. 5.1 Hálós adatbázis modell műveleti része. NDQL, hálós lekérdező nyelv:

A szürke háttérrel jelölt fejezet/alfejezet szövege a CD-mellékleten található. A CD-melléklet használata. 1. Elméleti áttekintés 1

Tankönyv példák kidolgozása

1. Gyakorlat. Metaadat: az elsődleges adatokra vonatkozó információ (adat a normál adatról).

Adatbázisok I. Az SQL nyelv

Adatbázis rendszerek Ea: Eskúel. Structured Query Language

Adat vs. Információ. Adatok: Információ: Az adatok és információk közötti különbség nem strukturális, hanem funkcionális.

Adatbázisok I A relációs algebra

Access gyakorlati feladatok lépésről lépésre

SELECT. SELECT(projekció) FROM(forrás) WHERE(szűrés) GROUPBY(csoportosítás) HAVING(csoportok szűrése) ORDERBY(rendezés)

BGF. 4. Mi tartozik az adatmodellek szerkezeti elemei

Lekérdezések az SQL-ben 1.rész

KÖVETELMÉNYEK 2017/ félév. Informatika II.

Adatbázis-kezelés Access XP-vel. Tanmenet

Lekérdezések az SQL-ben 1.rész

Lekérdezések az SQL-ben 2.rész

Adatbázisok elmélete 9. előadás

Adatbázisrendszerek Tervezése Közgazdászoknak Munkapéldány

Feladatok A mai előadáson: Tankönyv -- Termékek feladatai:

Microsoft Access alapok

Adatbázis-kezelés jegyzet II. Relációs adatmodell. Összeállította: Faludi Anita 2013.

Adatbázis-kezelés. Harmadik előadás

Adatbázis-kezelés Feladatok és megoldások

3.előadás: Adatbázisok-I. dr. Hajas Csilla (ELTE IK)

RELÁCIÓS LEKÉRDEZÉSEK OPTIMALIZÁLÁSA. Marton József november BME TMIT

Táblák és a közöttük / az adatmezők közötti kapcsolatok grafikusan megjelenítve. 7 tábla, adatmezőik, bennük elsődleges és külső kulcsok

Adatbázisok. 9. gyakorlat SQL: SELECT október október 26. Adatbázisok 1 / 14

SQL PÉLDATÁR. készült a PTE TTK Iskolai informatika III. kurzus teljesítésére

RELÁCIÓS LEKÉRDEZÉSEK OPTIMALIZÁLÁSA. Dr. Gajdos Sándor november BME TMIT

ALAPOK. 0 és 255 közé eső számértékek tárolására. Számértékek, például távolságok, pontszámok, darabszámok.

Adatbázis-kezelés Feladatok és megoldások

Gábor Dénes Számítástechnikai Emlékverseny 2005/2006 Alkalmazói kategória, III. korcsoport Második forduló

Gazdasági informatika II (SZIE GTK GVAM 1. évfolyam) 2009/2010. tanév 2. félév

Adatbázis Rendszerek I. 10. SQL alapok (DML esettanulmány)

Gyakorlás: Hozzunk létre egy Alkalmazottak táblát AZO szám, Részleg szöveg, Munkakör szöveg és BelépésDátuma dátum típussal.

Többtáblás lekérdezések megjelenítése

Adatbázis-kezelés alapjai 1. Ea: Infó Mátrix. Lehet, nem lehet

Adatbázisok elmélete 4. előadás

Hogyan fogalmazzuk meg egyszerűen, egyértelműen a programozóknak, hogy milyen lekérdezésre, kimutatásra, jelentésre van szükségünk?

Sor és oszlopkalkulus

Adatbázisrendszerek február 27.

2.előadás: Adatbázisok-I. dr. Hajas Csilla (ELTE IK)

Adatbázis kezelés Delphiben. SQL lekérdezések

Lekérdezések feldolgozása és optimalizálása

SQL haladó. Külső összekapcsolások, Csoportosítás/Összesítés, Beszúrás/Törlés/Módosítás, Táblák létrehozása/kulcs megszorítások

Adatbázisok-1 előadás Előadó: dr. Hajas Csilla

Adatbázis-lekérdezés. Az SQL nyelv. Makány György

Adatbázisok I. Jánosi-Rancz Katalin Tünde 327A 1-1

Adatbázis Rendszerek I. 9. SQL alapok (DDL esettanulmány)

Átírás:

Adatbázis rendszerek 1. 2. Ea: Viszonyított betűszámtan Relációs algebra alapok 1/81 B ITv: MAN 2017.10.24

Témakörök Relációs algebra Ellenőrző kérdések 2/81

Relációs algebra Műveletek Gyakorlás 3/81

Relációs algebra Relációk absztrakt lekérdező nyelve. Halmazorientált, és algebrai eszközökkel dolgozik. A relációkat halmaznak tekintjük, melynek elemei a relációk sorai A relációs adatbázisban a lekérdezések matematikai alapját képezi. Csak néhány, egyszerű műveletet alkalmaz Algebrai módszerek arra, hogy miként építhetünk új relációkat a régi relációkból. 4/81

Ismétlés: relációk megadása 1. 2. 3. AUTÓ rsz típus szín r1 Fiat zöld AUTÓ [ rsz, típus, szín ] AUTÓ rsz típus szín r2 Opel kék r5 Fiat kék 2. 5/81 Autó rsz típus szín

A relációs algebra műveletei Szelekció Projekció Kiterjesztés Aggregáció Csoportképzés Átnevezés Egy operandusú 6/81 Join Metszet Különbség Unió Osztás Halmazműveletek Két operandusú

Szelekció (kiválasztás) Szelekció: a megadott feltételnek eleget tévő rekordok kerülnek át az eredmény relációba. Jele: felt (r) Feladat: Megoldás: Formálisan: X Y (r) = { t r t(x) t(y)} A kék színű, vagy a Mazda típusú autó adatai szín= kék OR típus= Mazda (AUTÓ) AUTÓ 7/81 rsz típus szín r1 Fiat zöld r2 Opel kék r6 Mazda piros r4 Skoda kék r9 Lada piros rsz típus szín r2 Opel kék r6 Mazda piros r4 Skoda kék

Projekció (vetítés) Projekció: csak a kijelölt mezők jelennek meg az eredmény relációban. Jele: mlista (r) Formálisan: X (r) = {t(x) r t r} Feladat: Megoldás: A típus és a szín mezők megjelenítése típus, szín (AUTÓ) rsz típus szín típus szín AUTÓ r1 Fiat zöld r2 Opel kék Fiat Opel zöld kék r6 Mazda piros Mazda piros r4 Skoda kék Skoda kék 8/81 r9 Lada piros Lada piros

A szelekció és a projekció kombinálása Feladat: Megoldás: A kék színű, vagy a Mazda típusú autó rendszámai rsz ( szín= kék OR típus= Mazda (AUTÓ) ) AUTÓ rsz típus szín r1 Fiat zöld r2 Opel kék r6 Mazda piros r4 Skoda kék r9 Lada piros rsz r2 r6 r4 9/81 szelekció projekció

Kiterjesztés Kiterjesztés: a reláció kibővítése származtatott mezőkkel. Jele: mezőlista (r) Az új mezőérték a többi mező értékéből számítható. Feladat: Megoldás: Autók adatai és teljesítményadója lóerő/0.005 (AUTO) AUTÓ rsz típus lóerő r1 Opel 110 r2 Merci 320 r5 Trabi 29 10/81 rsz típus lóerő lóerő/0.005 r1 Opel 110 22000 r2 Merci 320 64000 r5 Trabi 29 5800

Kiterjesztés projekcióban A kiterjesztés alkalmazható projekcióban is, sőt: a számított mezőnek alias név is adható: Feladat: Megoldás: Autók rendszáma és teljesítményadója rsz, lóerő/0.005 adó (AUTO) AUTÓ rsz típus lóerő r1 Opel 110 r2 Merci 320 r5 Trabi 29 rsz adó r1 22000 r2 64000 r5 5800 11/81

Aggregáció összesítő műveletek Aggregáció: a relációból összesítő rekordot állít elő. Jele: aggregációs-lista (r) Aggregációs függvények: SUM(mez.kif) Összeg AVG(mez.kif) Átlag COUNT(mez.kif) Darabszám MAX(mez.kif) Legnagyobb érték MIN(mez.kif) Legkisebb érték 12/81

Aggregáció példák Feladat: Az autók összára Feladat: Az autók száma Megoldás: sum(ár) (AUTÓ) Megoldás: count(*) (AUTÓ) AUTÓ AUTÓ rsz típus ár rsz típus ár r1 Opel 4000 sum(ár) r1 Opel 4000 count(*) r2 Merci 12000 16035 r2 Merci 12000 3 r5 Trabi 35 r5 Trabi 35 13/81

Csoportképzés aggregációban Csoportképzés és aggregáció: a reláció rekordjait csoportokba rendezi, és minden csoportra egy összesítő rekordot állít elő. Jele: aggregációs-lista (r) AUTÓ csoport képző rsz típus ár r1 Opel 3200 r2 Fiat 3800 r3 Opel 2400 r4 Opel 4000 r5 Merci 8000 r6 Fiat 2200 14/81 Feladat: Az autók átlagára típusonként Megoldás: típus, avg(ár) típus (AUTÓ) típus avg(ár) Opel 3200 Fiat 3000 Merci 8000

Átnevezés Megváltoztathatjuk a reláció nevét, és / vagy megváltoztathatjuk az oszlopok nevét Jele: ρ Használható a és a művelettel együtt is! Feladat: Megoldás: Legyen az Autó tábla neve Car, a mezők neve pedig rendsz, tip, ár! ρ CAR(rsz rendsz, típus tip, ár) (AUTÓ) 15/81 AUTÓ rsz típus ár r1 Opel 3200 r2 Fiat 3800 r3 Opel 2400 r4 Opel 4000 CAR rendsz tip ár r1 Opel 3200 r2 Fiat 3800 r3 Opel 2400 r4 Opel 4000

Átnevezés Az átnevezés használható a projekcióban, így alias nevet adhatunk egy oszlopnak Feladat: Megoldás: Írassuk ki az autó rendszámát rendszám-névvel rsz rendszám (AUTÓ) AUTÓ rsz típus ár r1 Opel 3200 r2 Fiat 3800 r3 Opel 2400 r4 Opel 4000 AUTÓ rendszám r1 r2 r3 r4 16/81

Átnevezés Az átnevezéssel egy szelekcióval létrejövő új relációnak is adhatunk nevet Feladat: Megoldás: Készítsünk egy ExpCar nevű táblát a 3500-nál drágább autók adataiból ρ ExpCar ( ár>3500 (Autó)) 17/81 Autó rsz típus ár r1 Opel 3200 r2 Fiat 3800 r3 Opel 2400 r4 Opel 4000 ExpCar rsz típus ár r2 Fiat 3800 r4 Opel 4000

Join műveletek Két reláció illesztése Ha két relációból akarunk egyszerre adatokat lekérdezni, a táblákat össze kell kapcsolni. Erre többféle illesztést használhatunk: Cross join Descartes szorzat Theta join Feltételes illesztés Equijoin Egyenlőség alapú illesztés Natural join Természetes illesztés Semijoin Félig összekapcsolás Antijoin Pár nélküli rekordok Outer join Külső illesztés 18/81

Cross join (Descartes szorzat, teljes illesztés) Cross join: a két reláció rekordjainak párosait adja eredményként. Descartes szorzat. Jele: r 1 x r 2 Feladat: Megoldás: Az autók és a tulajdonosok teljes variációja AUTÓ x EMBER AUTÓ EMBER rsz típus szín r1 Fiat zöld r2 Opel kék r5 Fiat kék név kor Pali 36 Anna 29 19/81 AUTÓ x EMBER rsz típus szín név kor r1 Fiat zöld Pali 36 r2 Opel kék Pali 36 r5 Fiat kék Pali 36 r1 Fiat zöld Anna 29 r2 Opel zöld Anna 29 r5 Fiat kék Anna 29

Theta join (szelekciós v. feltételes illesztés) Theta join (feltételes illesztés): a két reláció rekordpárosaiból a feltételnek eleget tévő párosokat adja eredményként. Jele: r 1 felt r 2 Feladat: Megoldás: Az adott autót ki tudja megvenni? AUTÓ Ár < Összeg EMBER AUTÓ Rsz Ár r1 5000 r2 700 r5 2500 20/81 EMBER Név Összeg Béla 3000 Jenő 500 Pali 6000 Anna 1000 Rsz Ár Név Összeg r2 700 Béla 3000 r5 2500 Béla 3000 r1 5000 Pali 6000 r2 700 Pali 6000 r5 2500 Pali 6000 r2 700 Anna 1000

Equijoin (egyenlőség alapú illesztés) Equijoin (egyenlőség alapú illesztés): a Theta join speciális esete, amikor a feltétel egyenlőség, vagyis a relációk azonos nevű oszlopában lévő elemek egyenlőségének vizsgálata. A kapcsolattartó mezők nevét meg kell adni! A kapcsolattartó mező neve csak egyszer szerepel a listában! Több egyező mezőnév esetén irányítható a kapcsolat! Jele: r 1 =mező r 2 21/81

Equijoin (egyenlőség alapú illesztés) Feladat: Megoldás: Az autó tulajdonosok listája AUTÓ =id EMBER AUTÓ rsz tipus kor id r1 Opel 11 3 r2 BMW 19 1 r5 Skoda 32 4 EMBER név kor id Béla 25 1 Jenő 21 2 Pali 33 3 Anna 42 4 22/81 rsz tipus kor id név kor r1 Opel 11 3 Pali 33 r2 BMW 19 1 Béla 25 r5 Skoda 32 4 Anna 42

Equijoin (egyenlőség alapú illesztés) Feladat: Megoldás: Mi az eredménye annak, ha mindkét azonos nevű mezőt használjuk az összekapcsoláshoz? AUTÓ =id, kor EMBER AUTÓ rsz tipus kor id r1 Opel 11 3 r2 BMW 19 1 r5 Skoda 32 4 EMBER név kor id Béla 25 1 Jenő 21 2 Pali 33 3 Anna 42 4 23/81 No data found! Üres adathalmaz!

Natural join (természetes illesztés) Natural join (természetes illesztés): olyan equijoin, ahol az eredményhalmazban nem ismétlődik az azonos nevű mező. Jele: r 1 r 2 vagy r 1 * r 2 Feladat: Megoldás: Az autó tulajdonosok listája AUTÓ EMBER AUTÓ EMBER AUTÓ EMBER 24/81 rsz id r1 3 r2 1 r5 4 r8 6 név id Béla 1 Jenő 2 Pali 3 Anna 4 rsz id név r1 3 Pali r2 1 Béla r5 4 Anna

Semijoin (félig összekapcsolás, félillesztés) Semijoin: azon rekordok az egyik táblából, melyeknek van párjuk a másik táblában. Lehet bal vagy jobb oldali! Jele: r 1 r 2 vagy r 1 r 2 Feladat: Megoldás: Írassuk ki a vezetőként dolgozók adatait Dolgozó Vezető Dolgozó ID Név Osztály 1 Zoli Prog 2 Béla Fejl 3 Edit Terv 4 Géza Prog 5 Judit Fejl 25/81 Vezető Osztály Vezető Prog Géza Fejl Béla ID Név Osztály 2 Béla Fejl 4 Géza Prog

Antijoin (pár nélküli rekordok) Antijoin: azon rekordok az egyik táblából, melyeknek nincs párjuk a másik táblában. Jele: r 1 r 2 Feladat: Megoldás: Írassuk ki a nem vezetőként dolgozók adatait Dolgozó Vezető Dolgozó ID Név Osztály 1 Zoli Prog 2 Béla Fejl 3 Edit Terv 4 Géza Prog 5 Judit Fejl 26/81 Vezető Osztály Vezető Prog Géza Fejl Béla ID Név Osztály 1 Zoli Prog 3 Edit Terv 5 Judit Fejl

Outer join (külső illesztés) Outer join: olyan szelekciós join, melyben az illeszkedő pár nélküli rekordok is bekerülnek az eredmény halmazba (üres étékekkel kiegészítve). Típusai: Left Right Full Jele: r 1 + feltétel r 2 Feladat: Lista az emberekről, ha van autójuk, arról is. Megoldás: EMBER + ember.id=autó.tulaj AUTÓ EMBER AUTÓ név id rsz tulaj név id rsz tulaj Béla 1 r1 3 Béla 1 r2 1 Jenő 2 r2 1 Jenő 2 Pali 3 r5 4 Pali 3 r1 3 27/81 Anna 4 Anna 4 r5 4

Halmaz műveletek Az alapvető halmaz műveletek a relációkon is értelmezhetők. Ehhez legalább két halmaz (reláció) szükséges. A műveletek csak azonos szerkezetű relációkon hajthatók végre. A műveletek a következők: Unió Metszet Különbség Osztás 28/81

Unió (egyesítés) Unió: azonos sémájú relációk rekordhalmazának egyesítése. A B Jele: r 1 r 2 Feladat: Megoldás: Az összes ember adata EMBER1 EMBER2 A B 29/81 EMBER1 név id Béla 1 Jenő 2 Anna 3 EMBER2 név id név id Béla 1 Géza 4 Jenő 2 Ödön 5 Anna 3 Zoli 6 Géza 4 Ödön 5 Zoli 6

Metszet (közös rész) Metszet: azonos sémájú relációk rekordhalmazának metszete. A B Jele: r 1 r 2 Feladat: Megoldás: Azok a futók, akik síelnek is Futók Síelők A B Futók név id Béla 1 Jenő 2 Anna 3 Síelők név id Géza 4 Jenő 2 Béla 1 név id Béla 1 Jenő 2 30/81

Különbség Különbség: azonos sémájú relációk rekordhalmazának különbsége. A Jele: r 1 \ r 2 B Feladat: Megoldás: Azok a futók, akik nem síelnek Futók \ Síelők A \ B Futók név id Béla 1 Jenő 2 Anna 3 Síelők név id Géza 4 Jenő 2 Béla 1 név id Anna 3 31/81

Osztás Osztás: a Descartes szorzat inverze, azon legnagyobb reláció, melynek Descartes szorzata r2-vel benne van r1-ben. Jele: r 1 r 2 Feladat: Megoldás: Azok, akik miden sportágat űznek Emberek Sportág Ember sport foci bringa bringa foci futás név Béla Béla Géza Jenő Zoli Sportág sport foci bringa név Béla Jenő foci Zoli 32/81 bringa Jenő

A műveletek csoportosítása Halmazműveletek: Unió, metszet, különbség Redukciós műveletek: Projekció, szelekció Kombinációs műveletek: Descartes szorzat, join Egyéb műveletek: Átnevezés, kiterjesztés, összesítő műveletek 33/81

Relációs algebra Műveletek Gyakorlás 34/81

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 35/81

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 36/81 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 ]

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) 37/81

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)) 38/81

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)) 39/81

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) 40/81

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) 41/81

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) 42/81

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) 43/81

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)) 44/81

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)) 45/81

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 46/81

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 47/81

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)) 48/81

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)) 49/81

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 50/81 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ó ] 51/81

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. 52/81 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ó) 53/81

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ó 54/81

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ó 55/81

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ó 56/81

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) 57/81

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ó) ) 58/81

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)) 59/81

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) 60/81

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 61/81 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! 62/81

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 63/81

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ó) 64/81

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ó 65/81

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ó) ) 66/81

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)) 67/81

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ó)) 68/81

Adatbázis rendszerek 1. Ellenőrző kérdések 69/81

Ellenőrző kérdések 1. 1. Milyen algebrai műveleteket kell alkalmazni az alábbi feladat megoldásakor: A piros autók rendszáma Tulajdonos Autó Projekció Szelekció Aggregáció Kiterjesztés Join 70/81

Ellenőrző kérdések 2. 2. Milyen algebrai műveleteket kell alkalmazni az alábbi feladat megoldásakor: A miskolci tulajdonosok összes adatának kiírása Tulajdonos Autó Projekció Szelekció Aggregáció Kiterjesztés Join 71/81

Ellenőrző kérdések 3. 3. Milyen algebrai műveleteket kell alkalmazni az alábbi feladat megoldásakor: A miskolci tulajdonosok neve és autóik rendszáma Tulajdonos Autó Projekció Szelekció Aggregáció Kiterjesztés Join 72/81

Ellenőrző kérdések 4. 4. Milyen algebrai műveleteket kell alkalmazni az alábbi feladat megoldásakor: Az Opel típusú autók rendszáma Tulajdonos Autó Projekció Szelekció Aggregáció Kiterjesztés Join 73/81

Ellenőrző kérdések 5. 5. Milyen algebrai műveleteket kell alkalmazni az alábbi feladat megoldásakor: Az Opel típusú autók átlagára Tulajdonos Autó Projekció Szelekció Aggregáció Kiterjesztés Join 74/81

Ellenőrző kérdések 6. 6. Milyen algebrai műveleteket kell alkalmazni az alábbi feladat megoldásakor: Városonként az autók darabszáma Tulajdonos Autó Projekció Szelekció Aggregáció Kiterjesztés Join 75/81

Ellenőrző kérdések 7. 7. Milyen algebrai műveleteket kell alkalmazni az alábbi feladat megoldásakor: Rendszám és adó (mely a teljesítmény 150-szerese) Tulajdonos Autó Projekció Szelekció Aggregáció Kiterjesztés Join 76/81

Ellenőrző kérdések 8. 8. Milyen algebrai műveleteket kell alkalmazni az alábbi feladat megoldásakor: Adó (mely a teljesítmény 150-szerese) összege városonként Tulajdonos Autó Projekció Szelekció Aggregáció Kiterjesztés Join 77/81

Ellenőrző kérdések 9. 9. Adja meg a megoldást relációs algebrával! A: Mely termékek leírásában szerepel a női szó? B: Mely raktárhelyeken van 100-nál több termék? C: Mely raktárhelyeken van bikini nevű termék? D: Mennyi a termékek átlagára? E: Összesen hány darab bikini van a raktárban? F: Összesen mennyi értékű bikini van a raktárban? G: Hány féle 1000 Ft-nál drágább termék van? H: Hány darab 1000 Ft-nál drágább termék van? I: Mely raktárhelyeken van 100000 Ft-nál nagyobb érték? 78/81 Termék [ Tkód, Név, Ár, Leírás ] Raktár [ RaktHely, Tkkód, Darab ]

79/81 Gratulálok! Ön átvette a tananyagot, és letesztelte a tudását!

Felhasznált irodalom Kovács László elektronikus jegyzetei Szelezsán János: Adatbázisok, LSI Oktatóközpont, 1999 Baksáné Varga Erika elektronikus jegyzetei IHM: Adatbázis-kezelés, elektronikus jegyzet 80/81

VÉGE VÉGE 81/81