Adatbázis Rendszerek Budapesti Műszaki és Gazdaságtudományi Egyetem Fotogrammetria és Térinformatika Tanszék 2010 Dr. Alhusain Othman oalhusain@gmail.com 1
7.1. Bevezetés 7.2. Klasszikus- és relációs- algebra 7.3. A relációs adatmodell műveleti része 7.4. Relációs algebrai műveletek csoportjai 7.4.1. Mag Műveletek: 7.4.1.1. Halmaz műveletek - Unió - Metszet - Különbség 7.4.1.2. Sor/Oszlop műveletek - Vetítés - Kiválasztás - Descartes szorzat - Természetes összekapcsolás 7.4.1.3. Más műveletek 7.4.2. Kiegészítő műveletek 7.4.3. Relációs műveletek összegezve 7.5. Relációs algebra multi-halmazokon 7.6. Aggregációs operátorok 7.7. Csoportosítási operátorok 2
7.1. Bevezetés: A felhasználás során nagyon fontos hogy, a különböző felhasználók tudják módosítni és lekérdezni az adatbázis tartalmát. Az adatbázis tehát attól lesz élő, hogy csatlakozik hozzá egy funkciócsoport, amely lehetővé teszi a különböző műveletek elvégzését. A relációs adatmodell műveleti része ezen dinamikus adatkezelő és adatlekérdező lehetőségeket foglalja magába. 3
7.2. Klasszikus- és relációs- algebra: 7.2.1. Klasszikus algebra: Matematikai rendszer amely foglal magában: Operandusok: változok vagy értékek amelyekből uj értékeket lehet generálni. Operatorok: Szimbólumok amelyek jelölik eljárásokat új értékek generálására adott régi értékekből. Pld. 1 + 5 = 6 4
7.2. Klasszikus- és relációs- algebra: 7.2.2. Relációs algebra: Egy fajta algebra amelyben az operandusok relációk (táblák) vagy változók amelyek relációkat (táblákat) képviselik. Az operatorok a relációs algebrában ügy vannak tervezve hogy képesek végrehajtani legtöbb szükséges műveletet a relációkon. Az eredményezett egy fajta algebrát amely használható kereső nyelv -ként az adatbázisban. 5
7.3. A relációs adatmodell műveleti része: 7.1.1. Algebrai művelet: A relációs algebrai műveletek mindegyike minden esetben relációkon értelmezett. Algebrai műveletek biztos elméleti alapokon nyugszik, melyet összefoglalóan relációs algebrának neveznek. Általában az algebrai (lekérdező) műveletek nem változtatják meg az operandusként megadott relációkat (táblák), csak olvassák azokat, majd az eredményt leteszik egy új, önálló eredmény relációba. Ez azt jelenti, hogy bemenő operandusai a relációk (táblák) lehetnek, melyekkel az alábbi műveletek végezhetők: adatok lekérdezése adatok módosítása adatok felvitele Adatkezelő adatok törlése 6
7.4. Relációs algebrai műveletek csoportjai: 7.4.1. Mag (eredeti) relációs algebrai műveletek: 7.4.1.1. Halmaz műveletek: Műveletek amelyek szükségeltetik azonos relációs séma minden két (vagy több) operandusokban. Unió, Metszet, Különbség. 7
7.4. Relációs algebrai műveletek csoportjai: 7.4.1. Mag (eredeti) relációs algebrai műveletek: 7.4.1.2. Sor/oszlop műveletek: Kiválasztás: Rekordok kiválasztásara. Vetítés: Oszlopok kiválasztásara. Produktum és Összekapcsolás: Relációk kombinálására. 8
7.4. Relációs algebrai műveletek csoportjai: 7.4.1. Mag (eredeti) relációs algebrai műveletek: 7.4.1.3. Más műveletek: Átnevezés: Relációk és attribútumok át nevezésére. Kiterjesztés: Csoportosítás: 9
7.4. Relációs algebrai műveletek csoportjai: 7.4.1. Mag (eredeti) relációs algebrai műveletek: 7.4.1.4. Mag műveletek összegezve: Halmaz Műveletek - unió - metszet - különbség - osztás Sor/oszlop Műveletek - szelekció - projekció - Join, egyesítés Más Műveletek - kiterjesztés - csoportosítás - átnevezések 10
7.4. Relációs algebrai műveletek csoportjai: 7.4.2. Kiegészítő műveletek: 11
7.4. Relációs algebrai műveletek csoportjai: 7.4.3. Relációs műveletek összegezve: A relációs algebra műveletei közül az első három játssza a legnagyobb szerepet, mivel ezek a műveletek fordulnak elő a leggyakrabban a lekérdezések során. A szelekciós műveletek a relációban szereplő rekord előfordulások egy részhalmazának az előállításra szolgál. A kiválasztott részhalmazba csak azok a rekord előfordulások kerülnek bele, melyek kielégítik a szelekciós feltételt. A szelekció elvégzéséhez tehát meg kell adni egy relációt és egy feltételt, a feltételnek olyannak kell kennie, hogy a reláció minden rekordjára kiértékelhető legyen, s egy logikai értéket adjon vissza, azon rekordok, melyekre a feltétel igaz értékű lesz, bekerülnek az eredményrelációba. Úgyis mondhatnánk, hogy a szelekció a tábla néhány sorát adja meg eredményként. 12
7.4. Relációs algebrai műveletek csoportjai: 7.4.1. Mag (eredeti) relációs algebrai műveletek: 7.4.1.1. Halmaz műveletek: Mindkét reláció sémájának ugyanazon attribútumokat kell tartalmaznia. Azonos, de más néven szereplő attribútumokat át kell nevezni. Oszlopokat azonos sorrendűre kell rendezni. 13
7.4. Relációs algebrai műveletek csoportjai: 7.4.1. Mag (eredeti) relációs algebrai műveletek: 7.4.1.1. Halmaz műveletek: R VezNév KerNév Szül Kovács József 1967 Nagy Mária 1967 S VezNév KerNév Szül Nagy Mária 1967 Szabó Géza 1977 14
7.4. Relációs algebrai műveletek csoportjai: 7.4.1. Mag (eredeti) relációs algebrai műveletek: 7.4.1.1. Halmaz műveletek: Unió: R S: R-ben és S-ben szereplő sorok összessége. Mindkettőben szereplő sor csak egyszer szerepel az eredményben. R S VezNév KerNév Szül Kovács József 1967 Nagy Mária 1967 Szabó Géza 1977 15
7.4. Relációs algebrai műveletek csoportjai: 7.4.1. Mag (eredeti) relációs algebrai műveletek: 7.4.1.1. Halmaz műveletek: Metszet: R S: R-ben és S-ben egyaránt szereplő sorok. R S VezNév KerNév Szül Nagy Mária 1967 16
7.4. Relációs algebrai műveletek csoportjai: 7.4.1. Mag (eredeti) relációs algebrai műveletek: 7.4.1.1. Halmaz műveletek: Különbség: R S: Azon sorok, amelyek szerepelnek R-ben, de nincsenek S-ben R S S R! R S VezNév KerNév Szül Kovács József 1967 17
7.4. Relációs algebrai műveletek csoportjai: 7.4.1. Mag (eredeti) relációs algebrai műveletek: 7.4.1.2. Sor/oszlop műveletek: Vetités: Új reláció létrehozása, a régi reláció bizonyos oszlopaiból. VezNév, Szül(R): De! : Szül(R): VezNév Szül Kovács 1967 Szül 1967 Nagy 1967 18
7.4. Relációs algebrai műveletek csoportjai: 7.4.1. Mag (eredeti) relációs algebrai műveletek: 7.4.1.2. Sor/oszlop műveletek: Kiválasztás: Új reláció létrehozása, a régi reláció bizonyos soraiból Sorok kiválasztása feltétel alapján Szül >1970(S): VezNév KerNév Szül Szabó Géza 1977 19
7.4. Relációs algebrai műveletek csoportjai: 7.4.1. Mag (eredeti) relációs algebrai műveletek: 7.4.1.2. Sor/oszlop műveletek: Descartes szorzat: R S: új reláció létrehozása, amely sémája az R és S sémájának egyesítése, sorai R és S sorainak kombinációja Azonos nevű attribútumok esetén átnevezés X Y 1 2 3 4 Y Z X R.Y S.Y Z 5 6 1 2 5 6 7 8 1 2 7 8 3 4 5 6 3 4 7 8 20
7.4. Relációs algebrai műveletek csoportjai: 7.4.1. Mag (eredeti) relációs algebrai műveletek: 7.4.1.2. Sor/oszlop műveletek: Összekapcsolás: Theta Új reláció, ahol a megegyező attribútumok alapján táblákat kapcsolunk össze. R3 := R1 JOIN C R2 Hajtson végre a produktum R1 * R2. Utána kell alkalmazni egy kiválasztási műveletet az eredményre. C bár milyen logikai feltétel lehet. =< 21
Öszekapcsolás: Theta 7. Relációs algebra Elad( kocsma, sör, ár ) Kocsmák( név, cím ) Joe s Bud 2.50 Joe s Maple St. Joe s Miller 2.75 Sue s River Rd. Sue s Bud 2.50 Sue s Coors 3.00 KocsmaInfo := Elad JOIN Elad.kocsma = Kocsmák.név Kocsmák BarInfo(kocsma, sör, ár, név, cím ) Joe s Bud 2.50 Joe s Maple St. Joe s Miller 2.75 Joe s Maple St. Sue s Bud 2.50 Sue s River Rd. Sue s Coors 3.00 Sue s River Rd. 22
7.4. Relációs algebrai műveletek csoportjai: 7.4.1. Mag (eredeti) relációs algebrai műveletek: 7.4.1.2. Sor/oszlop műveletek: Összekapcsolás: Természetes Gyakori összekapcsolás amely két reláció kapcsol össze, azzal hogy: Egyenlíti az azonos nevű attribútumokat. Vetíteni egy másolat ebből a kiegyenlített attributumokat. Jelölése: R3 :=R1 JOIN R2 23
Összekapcsolás: Természetes Elad( kocsma, sör, ár ) Kocsmák(kocsma, cím ) Joe s Bud 2.50 Joe s Maple St. Joe s Miller 2.75 Sue s River Rd. Sue s Bud 2.50 Sue s Coors 3.00 KocsmaInfo := Elad JOIN Kocsmák A Kocsmák.név-ból kellet létrehozni Kocsmák.kocsma hogy biztosítjuk a természetes join mükődését. KocsmaInfo( kocsma, sör, ár, cím ) Joe s Bud 2.50 Maple St. Joe s Milller 2.75 Maple St. Sue s Bud 2.50 River Rd. Sue s Coors 3.00 River Rd. 24
7.4. Relációs algebrai műveletek csoportjai: 7.4.1. Mag (eredeti) relációs algebrai műveletek: 7.4.1.3. Más műveletek: Mező attribútum átnevezés: Az átnevezés RENAME operator rendel új sémát a relációhoz Formája R1(A1,., An):=R2 Ezzel a reláció R1 (A1,.An) attributumai az R2 relációből veszi az értékük. 25
7.4. Relációs algebrai műveletek csoportjai: 7.4.1. Mag (eredeti) relációs algebrai műveletek: 7.4.1.3. Más műveletek: Mező attribútum átnevezés: Kocsmák(név, cím ) Joe s Maple St. Sue s River Rd. R(kocsma, cím) := Kocsmák R( kocsma, cím ) Joe s Maple St. Sue s River Rd. 26
7.5. Relációs algebra multi-halmazokon (táskákon): A Táska (vagy multhalmaz ) hasonlít a szokásos halmazra, ezzel a feltétellel hogy az elemek ismétlődhatnak. pld: {4,2,4,6} egy táska (multihalmaz). és : {4,2,3} is táska (multihalmaz) de egyben halmaz is. Az SQL nagyon alkalmazható a táskára (a multihalmazokra). Egyes műveletek (pld. Vetítés ) hatékonyabb a táskákra mint a halmazokra. Műveletek mint a kiválasztás, a kivetítés, a produktom, és az összekapcsolás mind alkalmazható a táskákra. 27
7.5. Relációs algebra multi-halmazokon (táskákon): R( A, B ) 1 2 5 6 1 2 SELECT A+B<5 (R) = A B 1 2 1 2 28
7.5. Relációs algebra multi-halmazokon (táskákon): R( A, B ) 1 2 5 6 1 2 PROJECT A (R) = A 1 5 1 29
7.5. Relációs algebra multi-halmazokon (táskákon): Produktum R( A, B ) S( B, C ) 1 2 3 4 5 6 7 8 1 2 R * S = A R.B S.B C 1 2 3 4 1 2 7 8 5 6 3 4 5 6 7 8 1 2 3 4 1 2 7 8 30
7.5. Relációs algebra multi-halmazokon (táskákon): Theta join R( A, B ) S( B, C ) 1 2 3 4 5 6 7 8 1 2 R JOIN R.B<S.B S = A R.B S.B C 1 2 3 4 1 2 7 8 5 6 7 8 1 2 3 4 1 2 7 8 31
7.5. Relációs algebra multi-halmazokon (táskákon): Unió Az elem szerepel az uniós táskában ahányszor szerepel mind a kettő táskában. Pld.: {4,2,1} UNION {1,1,2,3,1} = {1,1,1,1,2,2,3,4} 32
7.5. Relációs algebra multi-halmazokon (táskákon): Metszet Az elem szerepel a metszet táskában annyiszor mint a minimális szereplése az egyik táskában. Pld.: {4,2,1} INTER {1,1,2,3,1} = {1,2} {1,2,1,1} INTER {1,2,1,3} = {1,1,2}. 33
7.5. Relációs algebra multi-halmazokon (táskákon): Különbözet Az elem szerepel az (A-B) különbözet táskában annyiszor mint ahányszor szerepel az A táskában mínusz ahányszor szerepel a B táskában. Pld.: {1,2,1,1} - {1,2,3} = {1,2} 34
7.5. Relációs algebra multi-halmazokon (táskákon): Duplázás elimináció Formája: R1 := DELTA(R2). R1 Tartalmáz egy másolatot minden rekordból amely szerepel R2 ban egy vagy többször. R = ( A B ) 1 2 3 4 1 2 DELTA(R) = A B 1 2 3 4 35
7.5. Relációs algebra multi-halmazokon (táskákon): Metszet Az elem szerepel a metszet táskában annyiszor mint a minimális szereplése az egyik táskában. Pld.: {4,2,1} INTER {1,1,2,3,1} = {1,2} {1,2,1,1} INTER {1,2,1,3} = {1,1,2}. 36
7.5. Relációs algebra multi-halmazokon (táskákon): Metszet Az elem szerepel a metszet táskában annyiszor mint a minimális szereplése az egyik táskában. Pld.: {4,2,1} INTER {1,1,2,3,1} = {1,2} {1,2,1,1} INTER {1,2,1,3} = {1,1,2}. 37
7.5. Relációs algebra multi-halmazokon (táskákon): Szortirozás Formája: R1 := TAU L (R2). L lista az R2 nek attributmai egy csoportja R1 a rekordoknak a listája tárolva először az első L-es attribútum alapján, utána a második L-es attribútum alapján, és igy tovább. Véletlenszerűen szét bontja a kapcsolatokat. TAU az egyetlen operator amelynek az eredménye nem halmaz sem táska. 38
7.5. Relációs algebra multi-halmazokon (táskákon): Szortirozás R = ( A B ) 1 2 3 4 5 2 TAU B (R) = [(5,2), (1,2), (3,4)] 39
7.5. Relációs algebra multi-halmazokon (táskákon): Kiterjesztett vetítés A PROJ operator felhasználásával lehet engedni a lista L hogy tartalmaz véletlen kifejezések az attribútumokat felhasználva. Matematikai attribútumokat alkalmazhatók (A+B). Duplikált előfordulása ugyan az egy attribútum megengedett. 40
7.5. Relációs algebra multi-halmazokon (táskákon): Kiterjesztett vetítés R = ( A B ) 1 2 3 4 PROJ A+B,A,A (R) = A+B A1 A2 3 1 1 7 3 3 41
7.5. Relációs algebra multi-halmazokon (táskákon): Külső összekapcsolás Ha a cél összekapcsolni R és S relációk C keresztül (R JOIN C S). Az R-nek a rekordja amelynek nincs S-es rekord amellyel tud vele kapcsolni Logos rekordnak nevezik. Ugyanaz S esetén. Az Outerjoin tartja a logos rekordok kiegészítve őket egy Null-val a kapcsolási eredmény számításnál. 42
7.5. Relációs algebra multi-halmazokon (táskákon): Külső összekapcsolás R = ( A B ) S = ( B C ) 1 2 2 3 4 5 6 7 (1,2) joins with (2,3), but the other two tuples are dangling. R OUTERJOIN S = A B C 1 2 3 4 5 NULL NULL 6 7 43
7.6. Aggregációs operatorok: Aggregációs operatorok nem minősülnek reláció algebrának. Igy csak alkalmazhatók (egész) oszlopokra produkálva egyetlen egy eredményt. A legfontosabbak: Sum (összegezni), Avg (átlagolni), Count (számolni), Min (minimális érték), Max )maximális érték). SUM(A) = 7 COUNT(A) = 3 MAX(B) = 4 AVG(B) = 3 R = ( A B ) 1 3 3 4 3 2 44
7.7. Csoportosítási operatorok: Formája: R1 := GAMMA L (R2). L elemek lista amely: Vagy egyedi csoportosítási attribútumok Vagy aggregáció operator Agg(A) ahol A egy attribútum. Csoportosíts R az összes attribútum lista alapján L-ben. Avagy alkot egy csoport minden érték listának ezeknek az attribútumoknak R-ben. Minden csoport kell számolni az AGG(A) minden aggregáció az L listán. Az eredmény fog tartalmazni egy rekord minden csoportnak: A csoportosítási attribútumok Az csoportjuk aggregációk 45
7.7. Csoportosítási operatorok: R = ( A B C ) 1 2 3 4 5 6 1 2 5 GAMMA A,B,AVG(C) (R) =?? Előszor, csoportosítj R A és B alapján: A B C 1 2 3 1 2 5 4 5 6 Másodszor, C átlagolása minden csoportban: A B AVG(C) 1 2 4 4 5 6 46