Lekérdezés-feldolgozás és optimalizálás
|
|
- György Horváth
- 8 évvel ezelőtt
- Látták:
Átírás
1 Lekérdezés-feldolgozás és optimalizálás Segédanyag az Adatbázisok c. tárgyhoz Gajdos S Az anyag a relációs lekérdezések feldolgozása és optimalizálása gazdag témakörének csak egy viszonylag kis, de alapvet részét fedi le. Nem foglalkozunk a lekérdezés fordításával és szintaktikai ellenrzésével, a dinamikus programozás alkalmazásával, adaptív technikákkal, és még számos más kapcsolódó problémával sem. Az anyag csupán egy bevezetést kínál a témakörbe kifejezetten a BSc 3. MI Adatbázisok kurzus hallgatói számára. Tartalom 1. ÁTTEKINTÉS KATALÓGUS KÖLTSÉGBECSLÉS KATALÓGUSBAN TÁROLT EGYES RELÁCIÓKRA VONATKOZÓ INFORMÁCIÓK: KATALÓGUS INFORMÁCIÓK AZ INDEXEKRL A LEKÉRDEZÉS KÖLTSÉGE MVELETEK KÖLTSÉGE SZELEKCIÓ Alap szelekciós algoritmusok Indexelt szelekciós algoritmusok Összehasonlítás alapú szelekció JOIN OPERÁCIÓ Az illesztés fontosabb típusai: Nested-loop join (egymásba ágyazott ciklikus illesztés) Block nested-loop join (blokkalapú egymásba ágyazott ciklikus illesztés) Indexed nested-loop join (Indexalapú egymásba ágyazott ciklikus illesztés) Merge join (Összefésülés alapú illesztés) EGYÉB MVELETEK KIFEJEZÉS KIÉRTÉKELÉS MATERIALIZÁCIÓ (MEGTESTESÍTÉS, LÉTREHOZÁS) PIPELINING Pipeline kiértékelési algoritmus RELÁCIÓS KIFEJEZÉSEK TRANSZFORMÁCIÓI EKVIVALENS KIFEJEZÉSEK EKVIVALENCIA SZABÁLYOK A KIÉRTÉKELÉSI TERV KIVÁLASZTÁSA KÖLTSÉGALAPÚ OPTIMALIZÁLÁS HEURISZTIKUS OPTIMALIZÁLÁS IRODALOMJEGYZÉK... 15
2 Lekérdezés-feldolgozás és optimalizálás 2 1. Áttekintés A lekérdezés feldolgozás elsdleges célja az adatok adatbázisból való kinyerése. Az egyértelmen megfogalmazott célhoz a megoldás megtalálása azonban korántsem egyszer. Számos igen bonyolult részfeladatot kell az adatbáziskezel-rendszernek megoldania, amíg eljut a kívánt végeredményhez. Ezek a következk: 1. Elemzés (szintaktikus), fordítás 2. Költség optimalizálás 3. Kiértékelés Az els lépés az elemzés (szintaktikus) és a fordítás. Egy magas szint nyelven (tipikusan az SQL valamilyen dialektusában) megfogalmazott kérést a számítógép számára használhatóbb formába kell hozni. Az SQL-t, mint kommunikációs interfészt az emberi igényekhez tervezték, minden SQL mondat megfeleltethet egy természetes nyelv (speciálisan az angol) egy mondatának. Sajnálatos módon azonban a számítógép ezt az idegen nyelvet csak tolmács segítségével beszéli. A legtöbb adatbáziskezel-rendszer anyanyelve a relációs algebra kiterjesztett változatára épül. Ábra 1.1 A lekérdezés feldolgozás tipikus lépései Persze a fordítás csak akkor valósulhat meg, ha az SQL nyelvet a felhasználó helyesen beszéli, ezért a fordítást minden esetben megelzi egy szintaktikai elemzés. Az elemzésnél megvizsgáljuk a lekérdezés szintaktikáját: pl. meggyzdünk arról, hogy a lekérdezésben szerepl relációnevek ténylegesen elfordulnak-e az adatbázisban, stb. A lekérdezés elemeit ez után le kell fordítani és valamilyen bels általában reláció algebra alapú reprezentációba átalakítani. Miután sikerült egy matematikailag helyes kifejezést konstruálnunk az SQL mondatból, érdemes pár dolgot végiggondolni. Vajon egyértelm-e egy lekérdezés, ill. a hozzárendelt bels reprezentáció a kiértékelés sorrendjét tekintve? Lehetséges-e formális módszerekkel a lekérdezésünkkel ekvivalens másik lekérdezés(eke)t konstruálnunk? Mert ha lehetséges, akkor nyilvánvalóan több végrehajtási út létezik, amelyek sebességben, végrehajtási idben, lemezhasználatban stb.-ben esetleg eltérnek egymástól. Ebben az esetben érdemes lenne
3 Lekérdezés-feldolgozás és optimalizálás 3 különböz végrehajtási terveket is kidolgoznunk. Ha már kidolgoztunk több tervet, akkor ezeket valamilyen szempont szerint össze kellene hasonlítani. Nyilvánvalóan az optimális megoldást keressük a problémára, de mi az a paraméter, amely alapján az optimalitást értelmezzük? Esetleg nem egy, hanem több paramétert is számításba kell venni? Mivel bizonyosan lesznek eleminek tekintett mveleteink, vajon milyen algoritmusok léteznek a végrehajtásukra, és melyiket válasszuk? Összefoglalva: optimalizációs stratégiák alapján végrehajtási terveket kell készíteni és kiértékelni, majd ezekbl a legjobbat kiválasztani és végrehajtani. A hálós és a hierarchikus modellben a lekérdezés optimalizálás legtöbbször a programozó feladata. Ennek oka, hogy az adatmanipulációs nyelven megfogalmazott kifejezések általában a programokba beágyazva szerepelnek és ezeknek optimális hálós illetve hierarchikus lekérdezéssé transzformálása az egész program ismerete nélkül általában nem megoldható. Az optimalizációhoz tehát rendkívül bonyolult algoritmus futtatására lenne szükség, amely túl nagy terhelést jelentene a rendszer számára különösen az akkori rendszerek számára. Ezzel szemben a relációs algebrai modellekben az optimalizáció megvalósítható (jelents részben a deklaratív szemlélet miatt) a programozó közbeavatkozása nélkül is. Mivel a dominánsan deklaratív szemlélet mondatok elssorban nem azt mondják meg, hogy hogyan hajtsunk végre valamit, hanem leginkább azt, hogy mit szeretnének eredményül kapni, ezért a bels megvalósítás rejtve maradhat. A deklaratív elvek realizálása algebrai eszközökkel megoldható. Köszönheten a formális matematikai módszereknek viszonylag könny lesz egyazon kérdéshez több, eredményét tekintve ekvivalens alakot találni, és kiválasztani közülük a legkevésbé költségeset. A továbbiakban megnézzük, hogy az algebrai formák hogyan támogatják a lekérdezések optimalizálását. Formális lépéseken keresztül megkeressük egy adott SQL mondat több különböz ekvivalens alakját. Az eltér alakok eltér kiértékelési sorrendet jelenthetnek. Megpróbáljuk megbecsülni, melyik végrehajtása mekkora terhelést jelentene a rendszer számára. Egy egyszer példával illusztrálva a lépéseket nézzük az alábbi SQL mondatot: select balance from account where balance < 2500 Egy bank nyilvántartásából szeretnénk megtudni, milyen 2500 egységnél kisebb érték egyenlegek léteznek. A lekérdezés átalakíthatjuk például a következ két relációalgebrai alakba: π ( σ 2500 ( account)) balance balance< 2500 ( ( account)) σ balance< π balance Láthatóan a két alak két különböz végrehajtási sorrendet kínál. Az els esetben az account relációból kiválasztjuk azokat az elemeket, amelyben az egyenleg értéke kisebb 2500-nál, majd ezután végrehajtunk egy projekciót az így kapott relációra. A második forma pont a fordított sorrendet írja le, elször egy projekció, majd egy szelekció mveletet kell elvégezni. Ezután el kell döntenünk, melyik végrehajtási sorrendet kövessük. Az optimum mértéke lehet a lekérdezés teljes (fiktív) költsége, amelynek a kiszámításához szükséges az egyes eleminek tekintett mveletek költségeinek ismerete. Sajnos a helyzet feloldása nem ennyire egyszer, mert egy elemi mvelet költsége más és más eltér környezetekben. Tekintsük például a szelekció mveletet, amelynek végrehajtási ideje, ha lineáris keresést alkalmazunk arányos a reláció összes elemének számával, azonban ha valamilyen indexet állítottunk a szelekció feltételére a költséget nagyságrenddel csökkenthetjük. Érezheten nem mindegy, hogy milyen algoritmusokat tudunk alkalmazni az elemi operációk vagy kiértékelési primitívek végrehajtásánál. A primitívek összefoghatóak egy nagyobb munkafolyamati egységbe, egy pipeline-ba. A csvezetékben lév egyik operáció bemenetét az eltte álló primitív kimenete szolgáltatja. A primitív feldolgozza a bemenetét, majd a kimenetét
4 Lekérdezés-feldolgozás és optimalizálás 4 átadja a sorban utána álló mveletnek. A primitív mveletek szekvenciája a lekérdezési terv. Az 1.2-es ábra a példánkra mutat be egy lehetséges tervet. π balance σ balance < 2500 account 1.2. ábra A különböz tervek megalkotása még önmagában nem elegend, hiszen meg kell mondani, hogy az egyes elemi mveletek végrehajtásához pontosan milyen algoritmusokat alkalmazunk. A lehetséges tervek közül az optimális megtalálása nem egyszer feladat. 2. Katalógus költségbecslés A lekérdezés feldolgozáshoz a megfelel végrehajtási stratégia kiválasztása valamilyen költségmérték becsült hozzárendelése alapján végezhet. A becslés tényét nem lehet eléggé hangsúlyozni, nem szabad és nem is érdemes egzakt számokat várni a költségbecslés eredményétl. Az adatbázis-kezel rendszernek a relációkról különböz statisztikákat, mérszámokat kell karbantartania, amelyek alapján elvégezhetek a költségbecslések. A statisztikákat az adatbázis-kezelk egyéb más rendszerleíró paraméterek mellett egy ú.n. katalógusban tárolják katalógusban tárolt egyes relációkra vonatkozó információk: n r : az r relációban lev rekordok (elemek) száma (number) b r : az r relációban lev rekordokat tartalmazó blokkok (blocks) száma s r : egy rekord nagysága (size) byte-okban f r : mennyi rekord fér egy blokkba (blocking factor) V (A, r): hány különböz értéke (Values) fordul el az A attribútumnak az r relációban: V (A, r) = π A (r) ; speciálisan ha az A kulcs, akkor V (A, r) = n r. SC(A, r) : azon rekordok átlagos száma, amelyek kielégítenek egy egyenlségi feltételt az A attribútumra (Selection Cardinality); feltéve, hogy legalább egy rekord kielégíti ezt az egyenlségi feltételt. Például, ha az A egyediséget biztosít, akkor SC(A,r) = 1. Ha az A nem biztosít egyediséget, és feltesszük, hogy a V (A, r) különböz érték egyenletesen oszlik el a rekordok között, akkor SC(A,r) = n r /V(A,r). Az utóbbi két mennyiség definiálható tetszleges A attribútumhalmazra is: V (A, r) illetve SC(A, r). n r Megfigyelés: Ha a relációk rekordjai fizikailag együtt vannak tárolva, akkor: b r = fr 2.2. Katalógus információk az indexekrl
5 Lekérdezés-feldolgozás és optimalizálás 5 Az indexek leggyakrabban B* fák olyan segédstruktúrák, amelyek gyorsíthatják a relációkban adott attribútum vagy attribútumok szerinti keresést. Indexek létrehozása a rendszer számára nagyobb adminisztrációs költséggel jár, ami a használatuk során térülhet meg. Az egységes tárgyalás érdekében itt a hash-táblákat is speciális indexnek tekinthetjük. Az indexeket az alábbi paraméterekkel fogjuk jellemezni: f i : az átlagos pointer-szám a fa struktúrájú indexek csomópontjaiban, mint pl. a B* fáknál, azaz a csomópontokból induló ágak átlagos száma HT i : az i index szintjeinek a száma, azaz az index magassága B* fáknál (Height of Tree) HTi = log f V ( A, r), ill. hash-indexnél HT i = 1. i LB i : az i index legalsó szint blokkjainak a száma, azaz a levélszint indexblokkok száma (Lowest level index Block) A statisztikákat elvileg minden adatbázis módosító mvelet után módosítani kellene, de ez óriási terhelést jelente a rendszer számára. A valós alkalmazásokban a statisztika felülírása ezért csak akkor történik meg, amikor a rendszernek van rá ideje. Ebbl következen a statisztika nem mindig konzisztens a rendszer állapotával, de elég jól leírja a rendszerben zajló folyamatokat. Tehát egy régebbi statisztika alapján nem is végezhetünk pontos költségszámítást, de egy elfogadható becslésnek jó kiindulási alapja lehet A lekérdezés költsége A bevezetbl kiderül, hogy különböz kiértékelési tervek végrehajtási költsége más és más. Definiáljuk most pontosabban, hogy költség és optimalitás alatt mit kell érteni. A lekérdezés kiértékelés költségének meghatározása történhet az igényelt és a felhasznált erforrások alapján, ez lehet például a felhasznált processzorid, a háttértárhoz fordulás ideje vagy elosztott rendszerekben a kommunikációra fordított id stb. Egy másik kézenfekv lehetség a válaszid alapján történ költség-becslés. Azonban, ha jobban végiggondoljuk ez nem is olyan jó alternatíva, hiszen a válaszid ersen függ a környezet állapotától is (egy túlterhelt rendszer valószínleg lassabban generálja le a végeredményt, mint egy kevésbé leterhelt). A válaszid érezheten nem biztosít elemi költség-meghatározási szempontot. A nagy adatbáziskezelkben a költség becslésére a háttértár blokkmveletek számát használják, mivel ez lényegében független a rendszer terhelésétl és mert ennek idigénye nagyságrenddel nagyobb, mint a processzor- és memóriamveletek idigénye. A használható költségmérték megalkotásához azonban szükséges a probléma megfelel szint egyszersítése. Nem szabad különbséget tennünk az egyes blokkok elérési ideje között, azaz alapfeltételezés, hogy a diszken elhelyezked minden blokkhoz azonos id alatt férünk hozzá. Nem vesszük figyelembe a lemez forgási irányát, a fej mozgását; ezeket nem tudjuk megbecsülni, és nem tudunk különbséget tenni az egyes írások és olvasások között sem. Ez alapján legyen a költség a diszk blokkok olvasásának és írásának a száma azzal a további megszorítással, hogy az írásba csak a köztes blokkírások számát számítjuk bele, hiszen a végeredmény kiírása mindenképpen szükséges. Jelölés: E alg = az algoritmus becsült költsége (estimate). 3. Mveletek költsége
6 Lekérdezés-feldolgozás és optimalizálás 6 A relációs adatbázis-kezelk világában szükséges a relációkon végezhet alapmveletek definiálása, ezek lesznek azok az elemi építkövek, amelyek segítségével minden más lekérdezés megszerkeszthet. Jelen anyagban csak az alapesetekkel foglalkozunk Szelekció A lekérdezés feldolgozásban egy reláció végigolvasása a legalacsonyabb szint mvelet. Egy adott érték megtalálását az adott szelekciós feltételek figyelembevétele mellett valamilyen keresési algoritmus alapján kell elvégezni. A relációk egyszer esetben egyetlen állományban tárolódnak, ezért a keresési mveletet csupán egy fájlra korlátozódik Alap szelekciós algoritmusok A szelekció mvelet megvalósítását lehetvé tev két alapalgoritmus a következ: A1: Lineáris keresés ( full table scan ): Minden rekordot beolvasunk, és megvizsgáljuk, hogy kielégíti-e a szelekció feltételét. E A1 = b r A2: Bináris keresés. Bináris keresést csak akkor tudunk végrehajtani, ha a blokkok folyamatosan helyezkednek el a diszken, a fájl az A attribútum szerint rendezett és a szelekció feltétele az egyenlség az A attribútumon. Összesen SC(A, r) darab ilyen SC( A, r) rekordunk van, ezért az algoritmus költsége: E A 2 = log 2 br + 1 fr (Az els ilyen blokk megtalálása a relációban lév rekordokat tartalmazó blokkok logaritmusával arányos, az összeg második része a szelekció feltételét kielégít összes rekord tárolásához szükséges maximális blokkméret. A 1 azért szükséges, mert az els és a második tagja az összegnek már tartalmazza az els megfelel blokk olvasásának költségét.) Ha az A attribútum egyediséget biztosító attribútum, akkor a keresés költsége: log b r Indexelt szelekciós algoritmusok A szakirodalom megkülönbözteti az elsdleges és másodlagos indexeket. Az elsdleges index a rekordok olyan sorrendben való olvasását teszi lehetvé, amely megfelel a rekordok fizikai tárolási sorrendjének. Minden egyéb indexet másodlagos indexnek tekintünk. A legfontosabb indexelt szelekciós algoritmusok ezek alapján a következk: A3: Elsdleges index használatával, egyenlségi feltételt a kulcson vizsgálunk. Az algoritmus költsége E A3 = HT i + 1, az index szintek plusz az adatblokk olvasása. A4: Elsdleges index használatával egyenlségi feltétel nem a kulcson. SC( A, r) EA4 = HTi + Az egyenlségi feltételt SC(A,r) rekord elégíti ki, amelyhez fr SC(A,r)/f r blokkmvelet szükséges. A5: Másodlagos index használatával. E A5 = HT i + SC(A, r) (a második tag mutatja, hogy mennyi különböz blokkon lehetnek). Ha az A egyediséget biztosít, akkor EA 5 = HT i + 1.
7 Összehasonlítás alapú szelekció Lekérdezés-feldolgozás és optimalizálás 7 Tekintsük a σ A v (r) alakú lekérdezéseket. Ha v értékét nem ismerjük, azt mondhatjuk, hogy átlagosan n r /2 rekord elégíti ki a feltételt. Ha ismerjük a v értékét, és egyenletes eloszlást feltételezünk az A attribútum maximális (max(a,r)) és minimális értéke között (min(a,r)), akkor: v min( A, r) nátlagos = nr ( ) rekord rekord elégíti elégíti ki átlagban ki átlagban a feltételt. a feltételélt. max( A, r) min( A, r) A6: Elsdleges index használatával. E A6 =HT i +br/2 (átlagosan a keresési feltételt a rekordok fele kielégíti). Ha a v-t ismerjük, és c jelöli azon rekordok számát, ahol c A v, akkor: EA 6 = HTi + fr LBi nr A7: Másodlagos index használatával. E A7 = HTi + + A második tag jó becslés, ha 2 2 a levélszint indexblokkok legalább fele kielégíti a feltételt. Az utolsó tagra azért van szükség, mert ha a rekordok legalább fele kielégíti a feltételt, akkor ezeket a másodlagos index jellegébl következen csak egyesével, azaz egy blokkmvelet költséggel tudjuk elérni. A másodlagos indexek használatával kapcsolatban meglep következtetésre juthatunk. Az összehasonlítás alapú lekérdezéseknél szerencsétlen esetben kifizetdbb egy egyszer lineáris keresést alkalmazni, mert az kevesebb blokkmveletet igényel Join operáció A join (illesztés vagy összekapcsolás) mvelet általános értelemben két reláció Descartes szorzatának adott feltétel (predikátum) szerinti szelekciója (Theta-join): R 1 R2 = σ ( R1 R2 ) A továbbiakban bemutatjuk a legfontosabb join típusokat, megbecsüljük, hogy két reláció illesztéséhez várhatóan mekkora tárterület szükséges, majd áttekintjük a join megvalósítását lehetvé tev algoritmusokat Az illesztés fontosabb típusai: Természetes összekapcsolás (Natural join) Két tábla között a megegyez nev attribútumok létesítenek kapcsolatot. Általában, tekintsük az A és B attribútumhalmazok feletti R1(A) és R2(B) sémákat, ahol X = A B nem üres. Az R1 és R2 feletti T1 és T2 táblák természetes összekapcsolása egy R(A U B) feletti T tábla, amelyet a következképp definiálunk: T = π A U B (σ R1.X=R2.X (T1 x T2) ) Vagyis, a két tábla Descartes-szorzatából kiválasztjuk azokat a sorokat, amelyek az R1.X és R2.X attribútumokon megegyeznek, majd a projekcióval a duplán szerepl X- beli attribútumokat csak egy példányban tartjuk meg (az A U B halmazelméleti unió, vagyis benne az X elemei csak egyszeresen szerepelnek). Küls összekapcsolás (Outer join)
8 Lekérdezés-feldolgozás és optimalizálás 8 A természetes összekapcsolás veszélye, hogy általában a kapcsolt táblák nem minden sora szerepel az eredménytáblában. Ha egy sor nem párosítható a másik tábla egyetlen sorával sem, akkor lógó sornak nevezzük. A küls összekapcsolás (outer join) garantálja az összekapcsolt két tábla egyikénél vagy mindkettnél valamennyi rekord megrzését. Egy elterjedt implementáció jelölési konvenciója (+) alapján megkülönböztetjük: Bal oldali küls összekapcsolás: T 1 *(+)T 2. Azt jelenti, hogy az eredménytáblában T 1 azon sorai is szerepelnek, amelyek T 2 egyetlen sorával sem párosíthatók. Ezen sorokban a T 2 -beli attribútumok értéke NULL. Jobb oldali küls összekapcsolás: T 1 (+)*T 2. Hasonlóan a T 2 táblára. Teljes küls összekapcsolás: T 1 (+)*(+)T 2. Itt mindkét tábla nem párosított rekordjai megrzdnek. Theta-összekapcsolás (theta-join) Általános illesztés. A táblák Descartes-szorzatából tetszleges feltétel szerint választunk ki sorokat: T = σ feltétel (T 1 x T 2 ) ) Nested-loop join (egymásba ágyazott ciklikus illesztés) Az egymásba ágyazott ciklikus illesztés egy általános algoritmus két reláció (r és s) theta-join mveletének implementálására. Az algoritmus logikája könnyen végigkövethet a megadott pszeudokód alapján. FOR minden t r r rekordra DO BEGIN FOR minden t s s rekordra DO BEGIN teszteljük (t r, t s ) párt, hogy kielégíti-e a -join feltételt IF igen, THEN adjuk a t r.t s rekordot az eredményhez END END (ahol a. mvelet a konkatenációt jelöli) Láthatóan ez egy elég költséges eljárás, mert minden egyes t r,t s párt külön megvizsgál. A legrosszabb esetben n r *b s +b r blokkmveletre van szükségünk a teljes algoritmus lefuttatására (az r reláció végigolvasása b r blokkmvelet, egy r-beli rekordhoz az összes s-beli blokk végignézése b s blokkmvelet). Ha a két reláció befér a memóriába, akkor b r +b s blokkmveletre van szükség a beolvasáshoz. Ha a memória csupán az egyik reláció tárolását teszi lehetvé, akkor is b r +b s lesz a költség. Legyen az algoritmus szerinti s reláció az, amely elfér a memóriában, olvassuk be s-et (b s költség), így minden r-beli rekordhoz az összehasonlítást gyorsan, azaz költség nélkül megtehetjük, ehhez járul még az r-beli rekordok beolvasási költsége Block nested-loop join (blokkalapú egymásba ágyazott ciklikus illesztés)
9 Lekérdezés-feldolgozás és optimalizálás 9 A blokkalapú egymásba ágyazott ciklikus illesztés algoritmus okosabb, mint az els algoritmusunk, mert kihasználja a tárolás fizikai sajátosságait. A gyorsítást azáltal éri el, hogy blokkalapú rekord-összehasonlítást végez. A bels két ciklus összehasonlítja a két reláció egyegy beolvasott blokkjának minden rekordját, a küls kett pedig végigmegy a két reláció összes blokkján. FOR minden b r r blokkra DO BEGIN END FOR minden b s s blokkra DO BEGIN END FOR minden t r b r rekordra DO BEGIN END FOR minden t s b s rekordra DO BEGIN END teszteljük le a (t r,t s ) párt Az algoritmus worst-case költsége b r * b s + b r, kedvezbb esetben (az els algoritmusnál bemutatott gondolatmenet alapján) b r + b s Indexed nested-loop join (Indexalapú egymásba ágyazott ciklikus illesztés) Az indexelt egymásba ágyazott ciklikus illesztés algoritmus kihasználja, hogy az egyik relációhoz van indexünk. Ha az els esetben bemutatott algoritmus bels ciklusába az indexelt relációt tesszük, akkor nem szükséges minden egyes s-beli rekordot végigvizsgálnunk, hogy megfelel-e a feltételnek, hiszen a keresés index alapján kisebb költséggel is elvégezhet. Az eljárás költsége b r + n r *c, ahol c a szelekció költsége s-en, amely nyilván a konkrét indexstruktúra függvénye Merge join (Összefésülés alapú illesztés) Az illesztés úgy is elvégezhet, ha mindkét relációt elször rendezzük az illesztési feltételnek megfelel attribútum értékeinek megfelelen. Ez után már elég csak egyszer-egyszer végigolvasni mindkét relációt, hiszen az illeszked elemek a rendezés következtében egymás után kerültek. Az ilyen módon végzett illesztés költsége b r +b s +a rendezések költsége. Ha a relációk igen nagyok, és hatékonyan tudunk rendezni, akkor gyakran a legkisebb költségre vezet. Megjegyzés: A join megvalósítására számos egyéb algoritmus is létezik Egyéb mveletek A két legfontosabb mvelet, a select és a join bemutatása után pár mondatban kitérünk egyéb gyakran használt mveletekre is. Ismétldés kiszrése: (Ha ugyanabból a rekordból több példány van, akkor csak egy maradjon) Elször rendezést hajtunk végre. Az azonos rekordok közvetlenül egymás után fognak megjelenni, ekkor már könnyen törölhetk. Költség: a rendezés költsége.
10 Lekérdezés-feldolgozás és optimalizálás 10 Projekció: Minden rekordra végrehajtjuk, aztán kiküszöböljük a másodpéldányokat a fenti módszerrel. Ha a rekordok eleve rendezettek, akkor a költség b r, általános esetben b r + a rendezés költsége. Unió: Elször mindkét relációt rendezzük, majd összefésülésnél kiszrjük a duplikációkat. Metszet: Mindkét relációt rendezzük, az összefésülésnél csak a közös rekordokat vesszük figyelembe. Különbség: Mindkét relációt rendezzük, összefésülésnél csak azok a rekordok maradnak, amelyek csak az els relációban szerepelnek. 4. Kifejezés kiértékelés Áttekintettük az elemi mveletek néhány algoritmikus megvalósítását. Nem foglalkoztunk azonban még az összetett, több elemi mveletbl álló kifejezések kiértékelésének módjával. A legkézenfekvbb stratégia, hogy az összetett kifejezésnek egyszerre egy mveletét értékeljük ki valamilyen rögzített sorrend szerint (materializáció). Ezzel azonban van egy nagy probléma, minden mvelet végrehajtása után a keletkezett eredményt a késbbi felhasználás miatt a háttértárra kell kiírni, ezért a módszer rengeteg blokkmveletet igényel. Egy másik kiértékelési alternatíva: egy csvezetékben egyszerre több elemi mvelet szimultán kiértékelése folyik, egy mvelet eredményét a háttértár bevonása nélkül azonnal megkapja a sorban következ mvelet operandusként (pipelining) Materializáció (megtestesítés, létrehozás) A π ( σ 2500( account) customer) kifejezést a mveletek mentén a 4.1 ábra customer _ name balance< szerinti mveleti fába transzformálhatjuk. A fa leveleiben vannak a relációink, a bels csomópontokban pedig a mveletek. A fa alapján a materializációs stratégia lépései könnyen nyomon követhetek. Az els lépésként hajtsunk végre egy olyan mveletet, amelyekhez az operandusaink rendelkezésre állnak. Ez a példánkban csak a szelekciós mveletre teljesül. Az így kapott ideiglenes relációt ezután illesszük a customer relációval, majd hajtsuk végre a projekciót. π customer_name σ balance < 2500 customer account 4.1 ábra A stratégia minden relációt kiszámít a fában, közben létrejönnek közbüls relációink is. A materializáció költsége tehát a végrehajtott operációk költségének összege, plusz a közbüls relációk tárolásának a költsége Pipelining
11 Lekérdezés-feldolgozás és optimalizálás 11 A kiértékelés hatékonysága növelhet, ha redukáljuk az ideiglenesen tárolásra kerül rekordok számát. Ha megszervezünk egy olyan munkafolyamatot, amelyben a részegységek az elttük álló elemtl kapott részeredményekbl a sorban következ számára állítanak el részeredményeket, akkor kiküszöbölhetjük az ideiglenes tárolás szükségességét. A fenti példán illusztrálva a lépéseket, mindhárom relációt egy pipeline-ba tesszük. A szelekció eredményét azonnal átadjuk a join-nak, nem számítjuk ki elre az egész relációt. További elnye, hogy kicsi a memóriakövetelmény, mert az eredményeket nem tároljuk sokáig, hanem továbbadjuk. Hátránya, ha nincs közbüls reláció, nem tudunk rendezni sem (nem történik materializáció). A feldolgozás vezérlése alapján kétféle pipeline-t különböztetünk meg: igényirányított és termel-irányított. Az igényirányított esetben maga a rendszer fordul a csvezeték tetejéhez és kér rekordokat. Minden alkalommal, ha a csvezeték megkapja ezt a kérést, akkor kiszámítja és átadja a rendszernek. Termelirányított pipeline esetén a csvezeték mentén elhelyezked mveletek nem várnak kérésre. A csvezeték legalsó szintjén minden mvelet folyamatosan generálja a rekordokat, és egy pufferbe teszi, amíg a puffer meg nem telik (ugyanígy tesz minden szint). Minden szinten minden mvelet egymástól függetlenül dolgozik Pipeline kiértékelési algoritmus Tekintsük a példánkban azt a join mveletet, amelynek baloldala csvezetéken érkezik. Az egész baloldali reláció nem áll rendelkezésre, a rekordok egyenként jönnek, ezért nem használhatjuk az összes JOIN algoritmust (pl. merge-join rendezés alapú illesztési algoritmus, nem alkalmazható, ha a baloldali input nincs rendezve az illesztési attribútumok szerint). Az indexelt nested-loop join azonban használható, mert ahogy beérkeznek a baloldali rekordok, az illesztési attribútum-értékek alapján a jobboldali reláció feletti index segítségével kikeressük a jobboldali relációból az illeszked rekordokat és összeillesztjük ket egymással. 5. Relációs kifejezések transzformációi Láttuk az elemi mveletek és egy adott lekérdezés kiértékelésének lépéseit. A bevezetben azonban említettük, hogy egy adott lekérdezéshez több formális algebrai alakot is konstruálhatunk, amelyek mind más és más költséggel hajthatók végre Ekvivalens kifejezések Tekintsük a következ természetes nyelven megfogalmazott kérdést. Add meg azoknak a fogyasztóknak a nevét, akiknek van számlájuk Brooklyn-ban!. Π customer _ name ( σ " ( branch ( account depositor)) bran ch city= " Brooklyn A fenti relációs algebrai alak végrehajtása rengeteg erforrást pazarolna, hiszen három reláció összekapcsolása után végezné csak el a szelekciót. Egy sokkal hatékonyabb alak a következ: Π customer _ name (( σ " ( branch)) ( account depositor)) bran ch city= " Brooklyn A második forma takarékosabban bánik az erforrásainkkal, elször kiválasztja a branch relációból a Brooklyn-ban lév fiókokat, majd csak ezt illeszti a maradék kifejezéssel. A kezdeti és az átalakított kifejezés mveleti fáját mutatja az 5.1-es ábra.
12 Lekérdezés-feldolgozás és optimalizálás 12 A legkisebb költség végrehajtási terv megtalálása a lekérdezés optimalizáló feladata. Az optimalizáló els teendje adott lekérdezéshez ekvivalens algebrai alakok megtalálása. Majd az algebrai alakokhoz alternatív végrehajtási tervet kell készítenie Ekvivalencia szabályok Az ekvivalens algebrai alakok legenerálásához az optimalizálónak szüksége van olyan szabályokra, amelyek mentén a feladat algoritmikusan elvégezhet, most ezeket a szabályokat vesszük sorra. Jelölések:, 1, 2 predikátumok, L 1, L 2, L 3 attribútumok, E, E 1, E 2 relációs algebrai kifejezés. 1. Szelekció kaszkádosítása: σ 1 2 (E)=σ 1 (σ 2 (E)) 2. A szelekció kommutativitása: σ 1 (σ 2 (E))=σ 2 (σ 1 (E)) 3. Projekció kaszkádosítása: L1 ( L2 ( ( Ln (E)) )) =( L1 (E)) 4. Az illesztés és a Descartes szorzat kapcsolata: σ ( E = E E 1 E2) σ1 ( E1 2 E2) = E1 1 2 E 5. A theta-join kommutativitása: E E2 = E2 6. A természetes illesztés asszociativitása: 7. A szelekció mvelet disztributivitása a join felett -Ha a 0 csak E1-beli attribútumokat tartalmaz: 1 1 E1 ( E1 E2) E3 = E1 ( E2 E3) σ ( E1 E2) = σ 0( E1) 2) 0 E 2 8. A projekció disztributív a theta-join felett -Ha L 1, L 2 E 1 illetve E 2 -beli attribútumokat tartalmaz és a join feltételében csak L 1 L 2 -beli attribútumok vannak. Π L 1 L2( E1 E2) = ( Π L1( E1)) ( Π L2( E2)) 2
13 Lekérdezés-feldolgozás és optimalizálás 13 -Az L 1 és L 2 az E 1 illetve E 2 -beli attribútumok halmaza. Az L 3 olyan E 1 -beli és az L 4 pedig olyan E 2 -beli attribútumok halmaza, amely nincs benne L 1 és L 2 uniójában. A join feltételében csak L 3 és L 4 -beli attribútumok lehetnek. Π L1 L2( E1 E2) = Π L1 L2(( Π L1 L3( E1)) ( Π L2 L4( E2))) 9. A metszet és az unió kommutativitása E 1 E 2 = E 2 E 1 E 1 E 2 = E 2 E Az unió és a metszet asszociativitása (E 1 E 2 ) E 3 = E 1 (E 2 E 3 ) (E 1 E 2 ) E 3 = E 1 (E 2 E 3 ) 11. A szelekció disztributív az unió, a metszet és a különbség mveletek felett σ P (E 1 - E 2 )= σ P (E 1 ) - σ P (E 2 ) = σ P (E 1 )-E A projekció disztributív az unió mvelet felett π L (E 1 E 2 )= π L (E 1 ) π L (E 2 ) A felsorolt szabályok nem tartalmazzák az összes ekvivalenciaszabályt, hanem csak ízelítt adnak bellük. Számos egyéb, nem csak alapmveletekre kihegyezett átalakítási lehetség is létezik. 6. A kiértékelési terv kiválasztása Az ekvivalens kifejezések generálása csak az els lépése az optimalizálásnak. A második lépésben minden egyes kifejezéshez konkrét algoritmusokat kell rendelnünk. Meg kell mondanunk, hogy a mveleteket milyen sorrendben, milyen algoritmus szerint, milyen munkafolyamatba szervezve hajtjuk végre. Ennek egy grafikus alakban megadott példa reprezentációját mutatja a 6.1-es ábra Költségalapú optimalizálás 6.1 ábra A fordító az elz fejezetben látott azonosságok alkalmazásával elször felsorol minden, az eredeti kifejezéssel ekvivalens kifejezést (véges sokat). Ezután minden kifejezéshez hozzá tudunk rendelni kiértékelési tervet. A megfelel kiértékelési terv kiválasztásának folyamata tulajdonképpen a költség-optimalizálás. Minden kiértékelési tervre kiszámítjuk a költséget és kiválasztjuk a legolcsóbbat (becslések, statisztikák alapján). Hátránya, hogy túl sokféle kiértékelési terv lehet, amely rengeteg munkát ró a rendszerre. Tekintsünk például három reláció illesztését. Három relációt hatféleképpen állíthatunk sorrendbe, és ezt még be kell szorozni 2-vel attól függen, hogy a zárójelet az els kett relációhoz vagy a második ketthöz tesszük (ne
14 Lekérdezés-feldolgozás és optimalizálás 14 feledjük, hogy a végeredmény ugyan minden esetben azonos lesz, azonban a join elvégzésének módja/erforrásigénye még két reláció esetén sem azonos akkor, ha a sorrendjüket felcseréljük). Általános esetben n reláció join-ja (2*(n-1))!/(n-1)! különböz ekvivalens alakot jelent (és ebben nincs is benne az algoritmus hozzárendelés). Ez már kis n esetén is rengeteg ekvivalenst produkál, pl. n=7 esetén at, n=10 esetén már több, mint 176 billiót! Szerencsére azonban nincs is szükség az összes ekvivalens kiértékelésére. Némi heurisztikával kezelhetbb méretvé csökkenthetjük a problémateret. Tekintsük a következ kifejezést: ( r1 r2 r3 ) r4 r5 Keressük meg elször azt az optimális alakot, amely csak az els három relációt illeszti, majd utána az eredményt a maradék kett relációval illeszti. Az els három reláció illesztésére 12 lehetség adódik, majd az eredmény és a maradék két reláció illesztése ismét 12 lehetséget kínál. Ha értelmetlenül minden verziót kipróbálunk, akkor összesen 144 lehetséget nézünk végig. Ha azonban elször megkeressük az els három reláció optimális kiértékelését és a 4. és az 5. relációval már ezt az optimális eredményt illesztjük, akkor a kiértékelés csupán lépést próbálgat végig. A bemutatott algoritmus egyik legnagyobb problémája, hogy elméletileg is rossz, mert nem minden esetben képes megtalálni az optimális megoldást. Ennek oka, hogy az algoritmus mohó lévén mindig a lokálisan legjobb megoldást választja, és nem mérlegeli azt, hogy egy kicsit rosszabb lokális megoldás globálisan esetleg jobb eredményre vezetne. Sajnos, nem létezik olyan algoritmus, amely kis komplexitás mellett képes az optimális megoldást legenerálni, ezért be kell érnünk szuboptimális megoldásokkal Heurisztikus optimalizálás A költségalapú optimalizálás legnagyobb hátránya magának mint láttuk - az optimalizációs algoritmusnak a költsége. A legtöbb kereskedelmi rendszer ezért valamilyen heurisztikát használ a megfelel kifejezés kiválasztásához. Egy heurisztika alapú optimalizációs stratégia szabályai lehetnek például a következk: 1) Végezzük el a szelekciót olyan korán, ahogy csak lehet, mert ezzel csökkentjük a sorok számát (bizonyos esetekben ez ugyan növeli a költséget, de általában csökkenti). A szabály alapján az optimalizáló olyan ekvivalens átalakításokra fog törekedni, amelyben legbelül lesznek a szelekciós mveletek (7-es szabály). 2) Hamar végezzük el a projekciót, mert ezzel csökkenthet a sorok mérete. A szelekciót általában érdemesebb elbb elvégezni, mert a reláció mérete jobban csökken, mint a projekció alkalmazásával, de persze elfordulhat, hogy a projekció redukálja jobban a reláció méretét. 3) Bontsuk szét a szelekciók konjunkcióját szelekciók szorzatára, hogy minden szelekciónak csak egy tényezje legyen. Ez lehetvé teszi, hogy a fában a szelekciókat lefelé vándoroltassuk, ezáltal a közbens mveletek jóval kevesebb rekordot adjanak végeredményként. 4) A kiértékelési fában vándoroltassuk lefelé a szelekciókat. 5) Határozzuk meg, hogy mely szelekció és join eredményezi a legkisebb (=legkevesebb rekordot tartalmazó) relációkat. Használjuk fel join asszociativitását, alakítsuk át a fát úgy, hogy ezek a szelekciós és join mveletek hajtódjanak végre elször. 6) Elfordulhat, hogy a join megegyezik a Descartes-szorzattal. Ha ezt egy szelekció követi, akkor vonjuk össze a kettt egy join mvelettét, így kevesebb rekordot kell generálni.
15 Lekérdezés-feldolgozás és optimalizálás 15 7) Törjük szét a projekció-listákat. Az egyes vetítéseket lökjük lefelé a fán, amennyire tudjuk. Ehhez új vetítéseket is létrehozhatunk, ha szükséges. 8) Keressük meg azokat a részfákat, ahol a csvezetéket lehet alkalmazni. A szabályok alkalmazásával több kiértékelési fát kapunk. Ezeknek meghatározzuk a költségét és vesszük közülük a legolcsóbbat. Mint láttuk a költségalapú és heurisztikus optimalizálás is jelents terhelést jelent a rendszer számára. Nem elég tehát a legjobb megoldást megtalálni, hanem a keresés költségét is optimalizálni kell. Az az érdekes helyzet adódik, hogy az optimális optimalizáló a saját mködését (tehát a kiértékelési terv keresését) és magának a megtalált megoldásnak a végrehajtását kell, hogy optimalizálja. 7. Irodalomjegyzék [1] Silberschatz, Korth, Sudarshan: Database System Concepts, McGraw-Hill [2] Joe Hellerstein, Eric Brewer: Query Processing, Advanced Topics in Computer Systems, Online [3] George Koch-Kevin Loney: Oracle 8, Panem Könyvkiadó, [4] Simon Zoltán: Lekérdezés feldolgozás és optimalizálás, Oktatási segédanyag, BME TMIT Ld. még
Marton József BME-TMIT. Adatbázisok VITMAB november 11.
Marton József BME-TMIT Gajdos Sándor diasorának felhasználásával Adatbázisok VITMAB00 2016. november 11. A lekérdezés-feldolgozás folyamata I. Cél: az adatok adatbázisból való kinyerése Mivel: egyértelmű,
RELÁCIÓS LEKÉRDEZÉSEK OPTIMALIZÁLÁSA. Marton József november BME TMIT
RELÁCIÓS LEKÉRDEZÉSEK OPTIMALIZÁLÁSA Marton József 2015. november BME TMIT ÁTTEKINTÉS lekérdezés (query) értelmező és fordító reláció algebrai kifejezés optimalizáló lekérdezés kimenet kiértékelő motor
RELÁCIÓS LEKÉRDEZÉSEK OPTIMALIZÁLÁSA. Dr. Gajdos Sándor november BME TMIT
RELÁCIÓS LEKÉRDEZÉSEK OPTIMALIZÁLÁSA Dr. Gajdos Sándor 2014. november BME TMIT TARTALOM Heurisztikus, szabály alapú optimalizálás Költség alapú optimalizálás Katalógus költségbecslés Operációk, műveletek
Lekérdezések feldolgozása és optimalizálása
Lekérdezések feldolgozása és optimalizálása Definíciók Lekérdezés feldolgozása lekérdezés lefordítása alacsony szintű tevékenységekre lekérdezés kiértékelése adatok kinyerése Lekérdezés optimalizálása
Ellenőrző kérdések. 36. Ha t szintű indexet használunk, mennyi a keresési költség blokkműveletek számában mérve? (1 pont) log 2 (B(I (t) )) + t
Ellenőrző kérdések 2. Kis dolgozat kérdései 36. Ha t szintű indexet használunk, mennyi a keresési költség blokkműveletek számában mérve? (1 pont) log 2 (B(I (t) )) + t 37. Ha t szintű indexet használunk,
Relációs algebra lekérdezések optimalizációja. Adatbázisok használata
Relációs algebra lekérdezések optimalizációja Adatbázisok használata Mi a cél? Moore-törvénye: (Gordon Moore) szerint az integrált áramkörök sok jellemzőjének fejlődése exponenciális, ezek az értékek 18
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.
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. Megfogalmaz egy kérést, amelyben leírja, milyen adatokra van szüksége,
Relációs algebra 1.rész alapok
Relációs algebra 1.rész alapok Tankönyv: Ullman-Widom: Adatbázisrendszerek Alapvetés Második, átdolgozott kiadás, Panem, 2009 Lekérdezések a relációs modellben 2.4. Egy algebrai lekérdező nyelv, relációs
ADATBÁZIS-KEZELÉS. Relációalgebra, 5NF
ADATBÁZIS-KEZELÉS Relációalgebra, 5NF ABSZTRAKT LEKÉRDEZŐ NYELVEK relációalgebra relációkalkulus rekord alapú tartomány alapú Relációalgebra a matematikai halmazelméleten alapuló lekérdező nyelv a lekérdezés
Lekérdezések optimalizálása
Lekérdezések optimalizálása CÉL: A lekérdezéseket gyorsabbá akarjuk tenni a táblákra vonatkozó paraméterek, statisztikák, indexek ismeretében és általános érvényő tulajdonságok, heurisztikák segítségével.
2. Visszalépéses stratégia
2. Visszalépéses stratégia A visszalépéses keres rendszer olyan KR, amely globális munkaterülete: út a startcsúcsból az aktuális csúcsba (ezen kívül a még ki nem próbált élek nyilvántartása) keresés szabályai:
Adatszerkezetek Adatszerkezet fogalma. Az értékhalmaz struktúrája
Adatszerkezetek Összetett adattípus Meghatározói: A felvehető értékek halmaza Az értékhalmaz struktúrája Az ábrázolás módja Műveletei Adatszerkezet fogalma Direkt szorzat Minden eleme a T i halmazokból
Programozási módszertan. Mohó algoritmusok
PM-08 p. 1/17 Programozási módszertan Mohó algoritmusok Werner Ágnes Villamosmérnöki és Információs Rendszerek Tanszék e-mail: werner.agnes@virt.uni-pannon.hu PM-08 p. 2/17 Bevezetés Dinamikus programozás
Fájlszervezés. Adatbázisok tervezése, megvalósítása és menedzselése
Fájlszervezés Adatbázisok tervezése, megvalósítása és menedzselése Célok: gyors lekérdezés, gyors adatmódosítás, minél kisebb tárolási terület. Kezdetek Nincs általánosan legjobb optimalizáció. Az egyik
7. Gyakorlat A relációs adatmodell műveleti része
7. Gyakorlat A relációs adatmodell műveleti része Relációs algebra: az operandusok és az eredmények relációk; azaz a relációs algebra műveletei zártak a relációk halmazára Műveletei: Egy operandusú Két
Adatbázis rendszerek 7. Matematikai rendszer amely foglal magában:
Adatbázis Rendszerek Budapesti Műszaki és Gazdaságtudományi Egyetem Fotogrammetria és Térinformatika Tanszék 2011 Dr. Alhusain Othman oalhusain@gmail.com 7.1. Bevezetés 7.2. Klasszikus- és relációs- algebra
Adatbázisműveletek és lekérdezésoptimalizálás
és lekérdezésoptimalizálás Nagyméretű adathalmazok kezelése Kazi Sándor 2010. február 24. Kazi Sándor (kazi@cs.bme.hu) és lekérdezésoptimalizálás 1 / 39 1 Bevezetés 2 3 4 5 6 7 Kazi Sándor (kazi@cs.bme.hu)
INFORMATIKA ÁGAZATI ALKALMAZÁSAI. Az Agrármérnöki MSc szak tananyagfejlesztése TÁMOP-4.1.2-08/1/A-2009-0010
INFORMATIKA ÁGAZATI ALKALMAZÁSAI Az Agrármérnöki MSc szak tananyagfejlesztése TÁMOP-4.1.2-08/1/A-2009-0010 2. Adatbáziskezelés eszközei Adatbáziskezelés feladata Adatmodell típusai Relációs adatmodell
Adatbázis rendszerek. dr. Siki Zoltán
Adatbázis rendszerek I. dr. Siki Zoltán Adatbázis fogalma adatok valamely célszerűen rendezett, szisztéma szerinti tárolása Az informatika elterjedése előtt is számos adatbázis létezett pl. Vállalati személyzeti
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ázisok elmélete 5. előadás Katona Gyula Y. Budapesti Műszaki és Gazdaságtudományi Egyetem Számítástudományi Tsz. I. B. 137/b kiskat@cs.bme.hu http://www.cs.bme.hu/ kiskat 2005 ADATBÁZISOK ELMÉLETE
Programozás alapjai II. (7. ea) C++ Speciális adatszerkezetek. Tömbök. Kiegészítő anyag: speciális adatszerkezetek
Programozás alapjai II. (7. ea) C++ Kiegészítő anyag: speciális adatszerkezetek Szeberényi Imre BME IIT M Ű E G Y E T E M 1 7 8 2 C++ programozási nyelv BME-IIT Sz.I. 2016.04.05. - 1
Speciális adatszerkezetek. Programozás alapjai II. (8. ea) C++ Tömbök. Tömbök/2. N dimenziós tömb. Nagyméretű ritka tömbök
Programozás alapjai II. (8. ea) C++ Kiegészítő anyag: speciális adatszerkezetek Szeberényi Imre BME IIT Speciális adatszerkezetek A helyes adatábrázolás választása, a helyes adatszerkezet
Programozás alapjai 9. előadás. Wagner György Általános Informatikai Tanszék
9. előadás Wagner György Általános Informatikai Tanszék Leszámoló rendezés Elve: a rendezett listában a j-ik kulcs pontosan j-1 kulcsnál lesz nagyobb. (Ezért ha egy kulcsról tudjuk, hogy 27 másiknál nagyobb,
Adaptív dinamikus szegmentálás idősorok indexeléséhez
Adaptív dinamikus szegmentálás idősorok indexeléséhez IPM-08irAREAE kurzus cikkfeldolgozás Balassi Márton 1 Englert Péter 1 Tömösy Péter 1 1 Eötvös Loránd Tudományegyetem Informatikai Kar 2013. november
Relációs adatmodell. Adatbázisok használata
Relációs adatmodell Adatbázisok használata Mi is az adatmodell? Az adatmodell információ vagy adatok leírására szolgáló jelölés. A leírás részei: az adatok struktúrája. Az adatokon végezhető műveletek.
Adatbázis rendszerek 2. előadás. Relációs algebra
Adatbázis rendszerek. előadás Relációs algebra Molnár Bence Szerkesztette: Koppányi Zoltán Bevezetés Relációs algebra általában A relációs algebra néhány tulajdonsága: Matematikailag jól definiált Halmazelméletből
Adatbázisok elmélete
Adatbázisok elmélete Fizikai szervezés, tárkezelés, lekérdezések optimalizálása Katona Gyula Y. Számítástudományi és Információelméleti Tanszék Budapesti Műszaki és Gazdaságtudományi Egyetem 2017. október
17. A 2-3 fák és B-fák. 2-3 fák
17. A 2-3 fák és B-fák 2-3 fák Fontos jelentősége, hogy belőlük fejlődtek ki a B-fák. Def.: Minden belső csúcsnak 2 vagy 3 gyermeke van. A levelek egy szinten helyezkednek el. Az adatrekordok/kulcsok csak
Leképezések. Leképezések tulajdonságai. Számosságok.
Leképezések Leképezések tulajdonságai. Számosságok. 1. Leképezések tulajdonságai A továbbiakban legyen A és B két tetszőleges halmaz. Idézzünk fel néhány definíciót. 1. Definíció (Emlékeztető). Relációknak
Adatbázis rendszerek Gy: Algoritmusok C-ben
Adatbázis rendszerek 1. 1. Gy: Algoritmusok C-ben 53/1 B ITv: MAN 2015.09.08 Alapalgoritmusok Összegzés Megszámlálás Kiválasztás Kiválasztásos rendezés Összefésülés Szétválogatás Gyorsrendezés 53/2 Összegzés
Adatbázis-kezelő rendszerek. dr. Siki Zoltán
Adatbázis-kezelő rendszerek I. dr. Siki Zoltán Adatbázis fogalma adatok valamely célszerűen rendezett, szisztéma szerinti tárolása Az informatika elterjedése előtt is számos adatbázis létezett pl. Vállalati
Programozás alapjai II. (7. ea) C++
Programozás alapjai II. (7. ea) C++ Kiegészítő anyag: speciális adatszerkezetek Szeberényi Imre BME IIT M Ű E G Y E T E M 1 7 8 2 C++ programozási nyelv BME-IIT Sz.I. 2016.04.05. - 1
Az adatbázisrendszerek világa
Az adatbázisrendszerek világa Tankönyv: Ullman-Widom: Adatbázisrendszerek Alapvetés Második, átdolgozott kiadás, Panem, 2009 1.1. Az adatbázisrendszerek fejlődése 1.2. Az adatbázis-kezelő rendszerek áttekintése
Adatbáziskezelő-szerver. Relációs adatbázis-kezelők SQL. Házi feladat. Relációs adatszerkezet
1 2 Adatbáziskezelő-szerver Általában dedikált szerver Optimalizált háttértár konfiguráció Csak OS + adatbázis-kezelő szoftver Teljes memória az adatbázisoké Fő funkciók: Adatok rendezett tárolása a háttértárolón
Lekérdezések az SQL-ben 1.rész
Lekérdezések az SQL-ben 1.rész Tankönyv: Ullman-Widom: Adatbázisrendszerek Alapvetés Második, átdolgozott kiadás, Panem, 2009 6.1. Egyszerű (egy-relációs) lekérdezések az SQL-ben - Select-From-Where utasítás
MS ACCESS 2010 ADATBÁZIS-KEZELÉS ELMÉLET SZE INFORMATIKAI KÉPZÉS 1
SZE INFORMATIKAI KÉPZÉS 1 ADATBÁZIS-KEZELÉS MS ACCESS 2010 A feladat megoldása során a Microsoft Office Access 2010 használata a javasolt. Ebben a feladatban a következőket fogjuk gyakorolni: Adatok importálása
Adatbáziskezelı-szerver SQL. Relációs adatbázis-kezelık. Relációs adatszerkezet. Házi feladat 2012.03.05.
1 2 Adatbáziskezelı-szerver Általában dedikált szerver Optimalizált háttértár konfiguráció Csak OS + adatbázis-kezelő szoftver Teljes memória az adatbázisoké Fő funkciók: Adatok rendezett tárolása a háttértárolón
Adatbázis Rendszerek
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-
Nagyságrendek. Kiegészítő anyag az Algoritmuselmélet tárgyhoz. Friedl Katalin BME SZIT február 1.
Nagyságrendek Kiegészítő anyag az Algoritmuselmélet tárgyhoz (a Rónyai Ivanyos Szabó: Algoritmusok könyv mellé) Friedl Katalin BME SZIT friedl@cs.bme.hu 018. február 1. Az O, Ω, Θ jelölések Az algoritmusok
ZH feladatok megoldásai
ZH feladatok megoldásai A CSOPORT 5. Írja le, hogy milyen szabályokat tartalmazhatnak az egyes Chomskynyelvosztályok (03 típusú nyelvek)! (4 pont) 3. típusú, vagy reguláris nyelvek szabályai A ab, A a
LINEÁRIS PROGRAMOZÁSI FELADATOK MEGOLDÁSA SZIMPLEX MÓDSZERREL
LINEÁRIS PROGRAMOZÁSI FELADATOK MEGOLDÁSA SZIMPLEX MÓDSZERREL x 1-2x 2 6 -x 1-3x 3 = -7 x 1 - x 2-3x 3-2 3x 1-2x 2-2x 3 4 4x 1-2x 2 + x 3 max Alapfogalmak: feltételrendszer (narancs színnel jelölve), célfüggvény
Párhuzamosítás adatbáziskezelő rendszerekben
Párhuzamosítás adatbáziskezelő rendszerekben Erős Levente, 2018. 1 Párhuzamos műveletvégzés Miért? Nagy adatmennyiségek Nagyságrendileg nő a keletkező/feldolgozandó/tárolandó adat mennyisége Célhardver
Programozási segédlet
Programozási segédlet Programozási tételek Az alábbiakban leírtam néhány alap algoritmust, amit ismernie kell annak, aki programozásra adja a fejét. A lista korántsem teljes, ám ennyi elég kell legyen
Aritmetikai kifejezések lengyelformára hozása
Aritmetikai kifejezések lengyelformára hozása Készítették: Santák Csaba és Kovács Péter, 2005 ELTE IK programtervező matematikus szak Aritmetikai kifejezések kiértékelése - Gyakran felmerülő programozási
Lekérdezések az SQL-ben 1.rész
Lekérdezések az SQL-ben 1.rész Tankönyv: Ullman-Widom: Adatbázisrendszerek Alapvetés Második, átdolgozott kiadás, Panem, 2009 6.1. Egyszerű (egy-relációs) lekérdezések az SQL-ben - Select-From-Where utasítás
Számítógépes döntéstámogatás. Genetikus algoritmusok
BLSZM-10 p. 1/18 Számítógépes döntéstámogatás Genetikus algoritmusok Werner Ágnes Villamosmérnöki és Információs Rendszerek Tanszék e-mail: werner.agnes@virt.uni-pannon.hu BLSZM-10 p. 2/18 Bevezetés 1950-60-as
A SELECT működése. Ttanar tábla: Tdiak tábla:
A SELECT működése A SELECT utasítás általános formája: SELECT [ALL/DISTINCT] {*/,, } FROM [],, [] [WHERE
Nem klaszterezett index. Beágyazott oszlopok. Klaszterezett index. Indexek tulajdonságai. Index kitöltési faktor
1 2 Nem klaszterezett indexek Egy táblán csak egy klaszterezett index lehet Ha más oszlop szerint is keresni akarunk, nem klaszterezett indexeket használunk A tábla mellett megjelenő adatstruktúra Egy
Lekérdezések az SQL-ben 2.rész
Lekérdezések az SQL-ben 2.rész Tankönyv: Ullman-Widom: Adatbázisrendszerek Alapvetés Második, átdolgozott kiadás, Panem, 2009 6.2. Több relációra vonatkozó lekérdezések az SQL-ben - Szorzat és összekapcsolás
Nem klaszterezett index. Klaszterezett index. Beágyazott oszlopok. Index kitöltési faktor. Indexek tulajdonságai
1 2 Nem klaszterezett indexek Egy táblán csak egy klaszterezett index lehet Ha más oszlop szerint is keresni akarunk, nem klaszterezett indexeket használunk A tábla mellett megjelenő adatstruktúra Egy
Adatbázis rendszerek 2. előadás. Relációs algebra
Adatbázis rendszerek 2. előadás Relációs algebra Molnár Bence Szerkesztette: Koppányi Zoltán Bevezetés Relációs algebra általában A relációs algebra néhány tulajdonsága: Matematikailag jól definiált Halmazelméletből
Funkcionális függések lekérdezések feldolgozása, kifejezésfák
Funkcionális függések lekérdezések feldolgozása, kifejezésfák Takács Gábor mérnök informatikus, okl. mérnöktanár takacsg@sze.hu http://rs1.sze.hu/~takacsg/ Normalizálás célja anomáliamentes relációséma
Új típusú döntési fa építés és annak alkalmazása többtényezős döntés területén
Új típusú döntési fa építés és annak alkalmazása többtényezős döntés területén Dombi József Szegedi Tudományegyetem Bevezetés - ID3 (Iterative Dichotomiser 3) Az ID algoritmusok egy elemhalmaz felhasználásával
Adatmodellezés. 1. Fogalmi modell
Adatmodellezés MODELL: a bonyolult (és időben változó) valóság leegyszerűsített mása, egy adott vizsgálat céljából. A modellben többnyire a vizsgálat szempontjából releváns jellemzőket (tulajdonságokat)
ABR ( Adatbázisrendszerek) 1. Előadás : Műveletek a relációs medellben
Sapientia - Erdélyi Magyar TudományEgyetem (EMTE) ABR ( Adatbázisrendszerek) 1. Előadás : Műveletek a relációs medellben 1.0 Bevezetés. A relációs adatmodell. 1.1 Relációs algebra 1.2 Műveletek a relációs
Adatszerkezetek és algoritmusok
2009. november 13. Ismétlés El z órai anyagok áttekintése Ismétlés Specikáció Típusok, kifejezések, m veletek, adatok ábrázolása, típusabsztakció Vezérlési szerkezetek Függvények, paraméterátadás, rekurziók
10. előadás Speciális többágú fák
10. előadás Adatszerkezetek és algoritmusok előadás 2018. április 17., és Debreceni Egyetem Informatikai Kar 10.1 A többágú fák kezelésére nincsenek általános elvek, implementációjuk elsősorban alkalmazásfüggő.
SQL. Táblák összekapcsolása lekérdezéskor Aliasok Allekérdezések Nézettáblák
SQL Táblák összekapcsolása lekérdezéskor Aliasok Allekérdezések Nézettáblák A SELECT UTASÍTÁS ÁLTALÁNOS ALAKJA (ISM.) SELECT [DISTINCT] megjelenítendő oszlopok FROM táblá(k direkt szorzata) [WHERE feltétel]
Adatbázisok elmélete
Adatbázisok elmélete Adatbáziskezelés, bevezető Katona Gyula Y. Számítástudományi és Információelméleti Tanszék Budapesti Műszaki és Gazdaságtudományi Egyetem Katona Gyula Y. (BME SZIT) Adatbázisok elmélete
Csima Judit szeptember 6.
Adatbáziskezelés, bevezető Csima Judit BME, VIK, Számítástudományi és Információelméleti Tanszék 2017. szeptember 6. Csima Judit Adatbáziskezelés, bevezető 1 / 20 Órák, emberek heti két óra: szerda 14.15-16.00
Edényrendezés. Futási idő: Tegyük fel, hogy m = n, ekkor: legjobb eset Θ(n), legrosszabb eset Θ(n 2 ), átlagos eset Θ(n).
Edényrendezés Tegyük fel, hogy a rendezendő H = {a 1,...,a n } halmaz elemei a [0,1) intervallumba eső valós számok. Vegyünk m db vödröt, V [0],...,V [m 1] és osszuk szét a rendezendő halmaz elemeit a
Adatbázismodellek. 1. ábra Hierarchikus modell
Eddig az adatbázisokkal általános szempontból foglalkoztunk: mire valók, milyen elemekből épülnek fel. Ennek során tisztáztuk, hogy létezik az adatbázis fogalmi modellje (adatbázisterv), amely az egyedek,
AB1 ZH mintafeladatok. 6. Minősítse az állításokat! I-igaz, H-hamis
AB1 ZH mintafeladatok 1. Töltse ki, és egészítse ki! Matematikai formalizmus arra, hogy hogyan építhetünk új relációkat a régi relációkból. Az adatoknak egy jól strukturált halmaza, amelyből információ
angolul: greedy algorithms, románul: algoritmi greedy
Mohó algoritmusok angolul: greedy algorithms, románul: algoritmi greedy 1. feladat. Gazdaságos telefonhálózat építése Bizonyos városok között lehet direkt telefonkapcsolatot kiépíteni, pl. x és y város
Az optimális megoldást adó algoritmusok
Az optimális megoldást adó algoritmusok shop ütemezés esetén Ebben a fejezetben olyan modellekkel foglalkozunk, amelyekben a munkák több műveletből állnak. Speciálisan shop ütemezési problémákat vizsgálunk.
Sor és oszlopkalkulus
Adatbáziskezelés Sor és oszlopkalkulus Csima Judit BME, VIK, Számítástudományi és Információelméleti Tanszék 2017. szeptember 29. Csima Judit Adatbáziskezelés Sor és oszlopkalkulus 1 / 1 Sorkalkulus Formális
Adatbázis-kezelés. alapfogalmak
Adatbázis-kezelés alapfogalmak Témakörök Alapfogalmak Adatmodellek Relációalgebra Normalizálás VÉGE Adatbázis-kezelő rendszer Database Management System - DBMS Integrált programcsomag, melynek funkciói:
Nézetek és indexek. AB1_06C_Nézetek_Indexek - Adatbázisok-1 EA (Hajas Csilla, ELTE IK) - J.D. Ullman elıadásai alapján
Nézetek és indexek Ullman-Widom: Adatbázisrendszerek Alapvetés Második, átdolgozott kiadás, Panem, 2009 8.1. Nézettáblák 8.2. Adatok módosítása nézettáblákon keresztül 8.3. Indexek az SQL-ben 8.4. Indexek
Felvételi tematika INFORMATIKA
Felvételi tematika INFORMATIKA 2016 FEJEZETEK 1. Természetes számok feldolgozása számjegyenként. 2. Számsorozatok feldolgozása elemenként. Egydimenziós tömbök. 3. Mátrixok feldolgozása elemenként/soronként/oszloponként.
Adatszerkezetek. Nevezetes algoritmusok (Keresések, rendezések)
Adatszerkezetek Nevezetes algoritmusok (Keresések, rendezések) Keresések A probléma általános megfogalmazása: Adott egy N elemű sorozat, keressük meg azt az elemet (határozzuk meg a helyét a sorozatban),
Adatbáziskezelés. Indexek, normalizálás NZS 1
Adatbáziskezelés Indexek, normalizálás NZS 1 Fáljszervezés módjai Soros elérés: a rekordok a fájlban tetszőleges sorrendben, például a felvitel sorrendjében helyezkednek el. A rekord azonosítója vagyis
Branch-and-Bound. 1. Az egészértéketű programozás. a korlátozás és szétválasztás módszere Bevezető Definíció. 11.
11. gyakorlat Branch-and-Bound a korlátozás és szétválasztás módszere 1. Az egészértéketű programozás 1.1. Bevezető Bizonyos feladatok modellezése kapcsán előfordulhat olyan eset, hogy a megoldás során
Ítéletkalkulus. 1. Bevezet. 2. Ítéletkalkulus
Ítéletkalkulus Logikai alapfogalmak, m veletek, formalizálás, logikai ekvivalencia, teljes diszjunktív normálforma, tautológia. 1. Bevezet A matematikai logikában az állításoknak nem a tényleges jelentésével,
A programozás alapjai előadás. Amiről szólesz: A tárgy címe: A programozás alapjai
A programozás alapjai 1 1. előadás Híradástechnikai Tanszék Amiről szólesz: A tárgy címe: A programozás alapjai A számítógép részegységei, alacsony- és magasszintű programnyelvek, az imperatív programozási
Mesterséges Intelligencia MI
Mesterséges Intelligencia MI Problémamegoldás kereséssel ha sötétben tapogatózunk Dobrowiecki Tadeusz Eredics Péter, és mások BME I.E. 437, 463-28-99 dobrowiecki@mit.bme.hu, http://www.mit.bme.hu/general/staff/tade
Adatbázisok. 4. gyakorlat. Adatmodellezés: E-K modellb l relációs adatbázisséma. Kötelez programok kiválasztása szeptember 24.
Adatbázisok 4. gyakorlat Adatmodellezés: E-K modellb l relációs adatbázisséma. Kötelez programok kiválasztása 2014. szeptember 24. 2014. szeptember 24. Adatbázisok 1 / 20 Az adatbázisok szolgáltatásai
Alap fatranszformátorok II
Alap fatranszformátorok II Vágvölgyi Sándor Fülöp Zoltán és Vágvölgyi Sándor [2, 3] közös eredményeit ismertetjük. Fogalmak, jelölések A Σ feletti alaptermek TA = (T Σ, Σ) Σ algebráját tekintjük. Minden
TABLE ACCESS FULL HASH CLUSTER BY INDEX ROWID BY USER ROWID BY GLOBAL INDEX ROWID BY LOCAL INDEX ROWID
Az eddigi pédákban szereplo muveletek (operation és option együtt) (Az összes létezo lehetoséget lásd -> Performance Tuning Guide 19.9 fejezet, 19.3. táblázat) TABLE ACCESS FULL HASH CLUSTER BY INDEX ROWID
A PiFast program használata. Nagy Lajos
A PiFast program használata Nagy Lajos Tartalomjegyzék 1. Bevezetés 3 2. Bináris kimenet létrehozása. 3 2.1. Beépített konstans esete.............................. 3 2.2. Felhasználói konstans esete............................
Felvételi vizsga mintatételsor Informatika írásbeli vizsga
BABEȘ BOLYAI TUDOMÁNYEGYETEM MATEMATIKA ÉS INFORMATIKA KAR A. tételsor (30 pont) Felvételi vizsga mintatételsor Informatika írásbeli vizsga 1. (5p) Egy x biten tárolt egész adattípus (x szigorúan pozitív
2018, Funkcionális programozás
Funkcionális programozás 6. előadás Sapientia Egyetem, Matematika-Informatika Tanszék Marosvásárhely, Románia mgyongyi@ms.sapientia.ro 2018, tavaszi félév Miről volt szó? Haskell modulok, kompilálás a
file:///d:/okt/ad/jegyzet/ad1/b+fa.html
1 / 5 2016. 11. 30. 12:58 B+ fák CSci 340: Database & Web systems Home Syllabus Readings Assignments Tests Links Computer Science Hendrix College Az alábbiakban Dr. Carl Burch B+-trees című Internetes
5.előadás: Adatbázisok-I. dr. Hajas Csilla (ELTE IK)
5.előadás: Adatbázisok-I. dr. Hajas Csilla (ELTE IK) http://sila.hajas.elte.hu/ SQL gyakorlatban: SELECT záradékai és a kiterjesztett relációs algebra Tankönyv: 5.1.- 5.2. Kiterjesztett relációs algebra
GPU Lab. 4. fejezet. Fordítók felépítése. Grafikus Processzorok Tudományos Célú Programozása. Berényi Dániel Nagy-Egri Máté Ferenc
4. fejezet Fordítók felépítése Grafikus Processzorok Tudományos Célú Programozása Fordítók Kézzel assembly kódot írni nem érdemes, mert: Egyszerűen nem skálázik nagy problémákhoz arányosan sok kódot kell
ADATBÁZISOK gyakorlat: SQL 2. rész SELECT
ADATBÁZISOK 9-10. gyakorlat: SQL 2. rész SELECT SELECT utasítás általános alakja SELECT [DISTINCT] oszloplista FROM táblanévlista [WHERE feltétel] [GROUP BY oszloplista [HAVING feltétel] ] [ORDER BY oszloplista];
Algoritmusok helyességének bizonyítása. A Floyd-módszer
Algoritmusok helyességének bizonyítása A Floyd-módszer Algoritmusok végrehajtása Egy A algoritmus esetében a változókat három változótípusról beszélhetünk, melyeket az X, Y és Z vektorokba csoportosítjuk
Tartalom Keresés és rendezés. Vektoralgoritmusok. 1. fejezet. Keresés adatvektorban. A programozás alapjai I.
Keresés Rendezés Feladat Keresés Rendezés Feladat Tartalom Keresés és rendezés A programozás alapjai I. Hálózati Rendszerek és Szolgáltatások Tanszék Farkas Balázs, Fiala Péter, Vitéz András, Zsóka Zoltán
Genetikus algoritmusok
Genetikus algoritmusok Zsolnai Károly - BME CS zsolnai@cs.bme.hu Keresőalgoritmusok osztályai Véletlent használó algoritmusok Keresőalgoritmusok Kimerítő algoritmusok Dinamikus programozás BFS DFS Tabu
Miskolci Egyetem Gépészmérnöki és Informatikai Kar Informatikai Intézet Alkalmazott Informatikai Intézeti Tanszék
Miskolci Egyetem Gépészmérnöki és Informatikai Kar Informatikai Intézet Alkalmazott Informatikai Intézeti Tanszék 2016/17 2. félév 8. Előadás Dr. Kulcsár Gyula egyetemi docens Kereső algoritmusok alkalmazása
24. szakkör (Csoportelméleti alapfogalmak 3.)
24. szakkör (Csoportelméleti alapfogalmak 3.) D) PERMUTÁCIÓK RENDJE Fontos kérdés a csoportelméletben, hogy egy adott elem hanyadik hatványa lesz az egység. DEFINÍCIÓ: A legkisebb olyan pozitív k számot,
Függvények növekedési korlátainak jellemzése
17 Függvények növekedési korlátainak jellemzése A jellemzés jól bevált eszközei az Ω, O, Θ, o és ω jelölések. Mivel az igények általában nemnegatívak, ezért az alábbi meghatározásokban mindenütt feltesszük,
KOVÁCS BÉLA, MATEMATIKA I.
KOVÁCS BÉLA MATEmATIkA I 6 VI KOmPLEX SZÁmOk 1 A komplex SZÁmOk HALmAZA A komplex számok olyan halmazt alkotnak amelyekben elvégezhető az összeadás és a szorzás azaz két komplex szám összege és szorzata
Adatszerkezetek 2. Dr. Iványi Péter
Adatszerkezetek 2. Dr. Iványi Péter 1 Hash tábla A bináris fáknál O(log n) a legjobb eset a keresésre. Ha valamilyen közvetlen címzést használunk, akkor akár O(1) is elérhető. A hash tábla a tömb általánosításaként
4. előadás. Relációalgebra és relációkalkulusok. Adatbázisrendszerek előadás október 10.
4. előadás Relációalgebra és relációkalkulusok Adatbázisrendszerek előadás 2016. október 10. Általános, és Debreceni Egyetem Informatikai Kar Az előadások Elmasry & Navathe: Database Systems alapján készültek.
Függvények határértéke, folytonossága
Függvények határértéke, folytonossága 25. február 22.. Alapfeladatok. Feladat: Határozzuk meg az f() = 23 4 5 3 + 9 a végtelenben és a mínusz végtelenben! függvény határértékét Megoldás: Vizsgáljuk el
SQL ALAPOK. Bevezetés A MYSQL szintaxisa Táblák, adatok kezelésének alapjai
SQL ALAPOK Bevezetés A MYSQL szintaxisa Táblák, adatok kezelésének alapjai BEVEZETÉS SQL: Structured Query Language Strukturált Lekérdező Nyelv Szabvány határozza meg, azonban számos nyelvjárása létezik
Keresés és rendezés. A programozás alapjai I. Hálózati Rendszerek és Szolgáltatások Tanszék Farkas Balázs, Fiala Péter, Vitéz András, Zsóka Zoltán
Keresés Rendezés Feladat Keresés és rendezés A programozás alapjai I. Hálózati Rendszerek és Szolgáltatások Tanszék Farkas Balázs, Fiala Péter, Vitéz András, Zsóka Zoltán 2016. november 7. Farkas B., Fiala
Redukciós műveletek. Projekció (vetítés): oszlopok kiválasztása. Jelölés: attribútumlista (tábla) Példa: Könyv
Redukciós műveletek Projekció (vetítés): oszlopok kiválasztása Jelölés: attribútumlista (tábla) Példa: Könyv szerző,cím (Könyv) K.szám Szerző Cím Szerző Cím 1121 Sályi Adatbázisok Sályi Adatbázisok 3655
Adatbázis, adatbázis-kezelő
Adatbázisok I. rész Adatbázis, adatbázis-kezelő Adatbázis: Nagy adathalmaz Közvetlenül elérhető háttértárolón (pl. merevlemez) Jól szervezett Osztott Adatbázis-kezelő szoftver hozzáadás, lekérdezés, módosítás,
Relációs algebra 2.rész példák
Relációs algebra 2.rész példák Tankönyv: Ullman-Widom: Adatbázisrendszerek Alapvetés Második, átdolgozott kiadás, Panem, 2009 Lekérdezések a relációs modellben 2.4. Egy algebrai lekérdező nyelv Lekérdezések