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

Hasonló dokumentumok
Tranzakciók, nézettáblák, indexek. Párhuzamos folyamatok irányítása Virtuális és materializált nézettáblák Az adathozzáférés felgyorsítása

Az SQL adatbázisnyelv: DML

SQL DDL: Táblák, megszorítások (constraints), triggerek, nézettáblák

ADATBÁZISOK: TAN7.EA témaköre SQL DDL, DML, DCL, Tranz.kez.

SQL DDL-2 (aktív elemek) triggerek

Nézetek és indexek. 8. fejezet Nézettáblák

SQL jogosultság-kezelés. Privilégiumok Grant és Revoke Grant Diagrammok

Adatbázis tartalmának módosítása

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

SQL DDL-1: táblák és megszorítások

Bevezetés: az SQL-be

Relációs algebra 2.rész példák

Tervezés: Egyed-kapcsolat modell és az SQL DDL: táblák, nézetek

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

Bevezetés az SQL-be. Tankönyv: Ullman-Widom: Adatbázisrendszerek Alapvetés Második, átdolgozott kiadás, Panem, 2009

Informatikai képzés Információs rendszerek dr. Hajas Csilla (ELTE IK)

SQL. 1.rész. 1.elıadás // Adatbázisok-1 elıadás // Ullman-Widom (Stanford) tananyaga alapján // Hajas Csilla (ELTE IK) 1

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

Megszorítások. AB1_06A_Megszorítások - Adatbázisok-1 EA (Hajas Csilla, ELTE IK) - J.D. Ullman elıadásai alapján

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

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

Adatbázis rendszerek. Molnár Bence. Szerkesztette: Koppányi Zoltán

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

SQL bevezetés. Select-From-Where záradékok Több relációt tartalmazó lekérdezések Alkérdések

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

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

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

Adatbázis tartalmának módosítása. SQL DML utasítások

Adatbázisok tavaszi félév Vizsgatételsor

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

Tankönyv példák kidolgozása

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

Adatbázis rendszerek. Molnár Bence. Szerkesztette: Koppányi Zoltán

Több táblára vonatkozó lekérdezések Relációs algebra és SQL SELECT

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

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

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

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

Adatbázis tartalmának módosítása (DML), az adatbázis-kezelı rendszerek felépítése,

A trigger egy aktualizálási művelet esetén végrehajtandó programrészletet definiál. Alakja:

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

Az adatbázisrendszerek világa

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

Analitikus adatfeldolgozás. Adattárház Adatkocka Adatbányászat

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

Adatbázismodellek. 1. ábra Hierarchikus modell

Fájlszervezés. Adatbázisok tervezése, megvalósítása és menedzselése

Sapientia - Erdélyi Magyar TudományEgyetem (EMTE) Marosvásárhely. ABR ( Adatbázisrendszerek) 12. Előadás:

Tartalomjegyzék. Tartalomjegyzék 1. Az SQL nyelv 1 Az SQL DDL alapjai 2

Bevezetés: Relációs adatmodell

Indexek és SQL hangolás

ADATBÁZIS-KEZELÉS - BEVEZETŐ - Tarcsi Ádám, ade@inf.elte.hu

Relációs adatbázisok tervezése ---2

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

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

ADATBÁZISOK, 2018 ősz

ADATBÁZISOK, 2017 ősz

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

Adatbázis, adatbázis-kezelő

Adatbázisok elmélete

Csima Judit szeptember 6.

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

Adatbázisok. 8. gyakorlat. SQL: CREATE TABLE, aktualizálás (INSERT, UPDATE, DELETE), SELECT október október 26. Adatbázisok 1 / 17

Információs rendszerek Adatbázis-kezelés

Objektum-relációs adatbázisok. Felhasználói típusok (User-Defined Types) Objektum ID-k Beágyazott táblák (Nested Tables)

Adatbáziskezelés alapjai. jegyzet

RELÁCIÓS ADATBÁZISSÉMÁK. Egyed-kapcsolat modellről átírás

KÉPZÉS NEVE: Informatikai statisztikus és gazdasági tervezı TANTÁRGY CÍME: Adatbáziskezelés III. (elmélet+gyakorlat) Készítette: Kupcsikné Fitus Ilona

Adatbáziskezelő-szerver. Relációs adatbázis-kezelők SQL. Házi feladat. Relációs adatszerkezet

Magas szintű adatmodellek Egyed/kapcsolat modell I.

Kalmár György Adatbázis alapú rendszerek

Java és web programozás

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

Adatbáziskezelı-szerver SQL. Relációs adatbázis-kezelık. Relációs adatszerkezet. Házi feladat

A könyv tartalomjegyzéke

E/K diagram átalakítása relációs adatbázistervre

TABLE ACCESS FULL HASH CLUSTER BY INDEX ROWID BY USER ROWID BY GLOBAL INDEX ROWID BY LOCAL INDEX ROWID

WHERE záradék (további lehetıségek) SQL specialitások, nem írhatók át relációs algebrába: LIKE. NULL értékek. Az ismeretlen (unknown) igazságérték

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 Rendszerek II. 2. Gyakorló környezet

SQL ALAPOK. Bevezetés A MYSQL szintaxisa Táblák, adatok kezelésének alapjai

Egyed-kapcsolat modell

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

Tudásalapú információ integráció

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

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

Sapientia - Erdélyi Magyar TudományEgyetem (EMTE) ABR 2( Adatbázisrendszerek 2) 1. Előadás: Celko Joe tippjei Codd törvényei.

Relációs adatbázisok tervezése 2.rész (dekompozíció)

Relációs adatbázisok tervezése ---1

Relációsémák létrehozása SQL nyelvben

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

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

A TANTÁRGY ADATLAPJA

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

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

Adatbázisok-1 előadás

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

Java és web programozás

MMK-Informatikai projekt ellenőr képzés 4

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

Átírás:

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 kiválasztása 8.5. Tárolt nézettáblák 1

Nézettáblák A nézettábla olyan reláció, amit tárolt táblák (alaptáblák) és más nézettáblák felhasználásával definiálunk. Kétféle létezik: 1. virtuális = nem tárolódik az adatbázisban; csak a relációt megadó lekérdezés. 2. Materializált = kiszámítódik, majd tárolásra kerül. 2

Nézettáblák létrehozása Deklaráció: CREATE [MATERIALIZED] VIEW <név> AS <lekérdezés>; Alapesetben virtualizált nézettábla jön létre. 3

Példa: nézettábla definíció Ihatja(név, sör) nézettáblában a sörivók mellett azon söröket tároljuk, melyeket legalább egy bárban felszolgálnak az általa látogatottak közül: CREATE VIEW Ihatja AS SELECT név, sör FROM Látogat, Felszolgál WHERE L.bár = F.bár; 4

Példa: nézettáblákhoz való hozzáférés A nézettáblák ugyanúgy kérdezhetık le, mint az alaptáblák. A nézettáblákon keresztül az alaptáblák néhány esetben módosíthatóak is, ha a rendszer a módosításokat át tudja vezetni. Példa lekérdezés: SELECT sör FROM Ihatja WHERE név = Sally ; 5

Materializált nézettáblák Probléma: minden alkalommal, amikor az alaptáblák valamelyike változik, a materializált nézettábla frissítése is szükségessé válhat. Ez viszont néha túl költséges. Megoldás: Periodikus frissítése a materializált nézettábláknak, amelyek egyébként nem aktuálisak. 6

Példa: levelezési lista A következı levelezési lista cs145-aut0708 valójában egy materializált nézettábla, ami a kurzusra beiratkozott hallgatókat tartalmazza. Ezt négyszer frissítik egy nap. A feliratkozás után közvetlen még nem feltétlen kapja meg az ember az akkor küldött emaileket. 7

Példa: adattárház Wal-Mart minden áruházának minden eladását egy adatbázisban tárolja. Éjszaka az új adatokkal frissítik az áruház lánc adattárházát, ami itt az eladások materializált nézeteibıl áll. Az adattárházat aztán elemzık használják, hogy trendeket figyeljenek meg és odamozgassák az árukat, ahol azok a legjobb áron értékesíthetık. 8

Indexek Index = olyan adatszerkezet, amivel egy-egy reláció sorait gyorsabban érhetjük el adott attribútumának, attribútumainak értéke, értékei alapján. Lehet hash tábla, de az ab rendszerekben a legtöbb esetben kiegyensúlyozott keresési fával valósítják meg (B-fák). 9

Indexek deklarálása Nincs standard megoldás! Tipikus szintaxis: CREATE INDEX SörInd ON Sörök(gyártó); CREATE INDEX EladásInd ON Felszolgál(bár, sör); 10

Indexek használata Adott v értékre az index azokhoz a sorokhoz irányít, ahol ez a v érték megjelenik a megfelelı attribútum(ok)nál. Példa: a SörInd és az EladásInd indexek segítségével megkeressük azokat a söröket, melyeket Pete gyárt és Joe árul. (köv.oldal) 11

Indexek használata SELECT ár FROM Sörök S, Felszolgál F WHERE gyártó = Pete AND S.név = F.sör AND bár = Joe bárja ; 1. A SörInd segítségével megkapjuk azokat a söröket, melyeket Pete gyárt. 2. Aztán a EladásInd használatával a Joe bárjában felszolgált sörök árait kapjuk meg. 12

Adatbázisok hangolása Az adatbázisok hangolásánál (minél gyorsabb legyen) komoly kérdést jelent annak eldöntése, hogy milyen indexeket használjanak. Mellette: az index felgyorsíthatja a lekérdezések végrehajtását. Ellene: a módosítások lassabbak lesznek, hiszen az indexeket is módosítani kell. 13

Példa: hangolás Tegyük fel, hogy a sörös adatbázisunkban a következık történhetnek: 1. Új tények kerülnek egy relációba (10%). 2. Adott kocsmára és sörre keressük az ottani árat (90%). Ekkor az EladásInd a Felszolgál(kocsma, sör) fölött nagyszerő szolgálatot tesz, a SörInd a Sörök(gyártó) fölött pedig inkább a kárunkra van. 14

Hangolási szakértık Fontos kutatási feladat. A kézi hangolás nagy szakértelmet kíván. A szakértı elıször egy (query load)-t kap kézhez: 1. véletlen lekérdezéseket választanak a korábban végrehajtottak közül. 2. A tervezı átad egy minta. A szakértı létrehozza a szerinte fontos indexeket, majd megvizsgálja azok hatását. Minden minta lekérdezés esetén a lekérdezés optimalizálónak használnia kell az indexeket. Így meg tudja mondani, hogy javult-e összességében a lekérdezések végrehajtási ideje. 15

Tankönyv példája: nézettáblára Példa: Egy olyan nézettáblát szeretnénk, mely a Film(cím, év, hossz, színes, stúdiónév, producerazon) reláció egy részét jelképezi, pontosabban a Paramount stúdió által gyártott filmek címét és gyártási évét CREATE VIEW ParamountFilm AS SELECT cím, év FROM Film WHERE stúdiónév = 'Paramount'; 16

Tankönyv példája: triggerre Példa: INSTEAD OF (helyette) típusú triggerre CREATE TRIGGER ParamountBeszúrás INSTEAD OF INSERT ON ParamountFilm REFERENCING NEW ROW AS ÚjSor FOR EACH ROW INSERT INTO Film(cím, év, stúdiónév) VALUES(Újsor.cím, ÚjSor.év, Paramount ); 17