Adatbázisok (relációs, objektum relációs, NoSQL) Adatbáziskezelő rendszerek Adatbázisok felépítése Adatbázisok tervezése

Hasonló dokumentumok
30 MB INFORMATIKAI PROJEKTELLENŐR ADATBÁZISOK MEGVALÓSÍTÁSA (ADATBÁZISOK, ADATBÁZISKEZELŐK, ADATBÁZISOK FELÉPÍTÉSE, ADATBÁZISOK TERVEZÉSE)

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

Adatbázis rendszerek. dr. Siki Zoltán

Adatbázis, adatbázis-kezelő

Csima Judit szeptember 6.

Adatbázisok elmélete

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

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

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ázis-kezelő rendszerek. dr. Siki Zoltán

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

Bevezetés: az SQL-be

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

Az adatbázisrendszerek világa

Adatbázisok. 2. gyakorlat SQL november november 12. Adatbázisok 1 / 31

Célkitűzések Az Oracle10 g felépítésének, használatának alapszíntű megismerése

LOGISZTIKAI ADATBÁZIS RENDSZEREK JOIN, AGGREGÁCIÓ

SQL DDL-2 (aktív elemek) triggerek

BEVEZETÉS Az objektum fogalma

STRUCTURED QUERY LANGUAGE(SQL) - ALAPOK

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

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

Adatbázis rendszerek SQL nyomkövetés

Programozás. Adatbázis-kezelés (alapok) Fodor Attila

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

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

ADATBÁZIS-KEZELÉS FÉLÉVES FELADAT

Adatbázisok* tulajdonságai

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

A relációs adatbáziskezelés szabványos nyelve Két fő csoportba sorolhatók az utasításai

Informatikai alapismeretek Földtudományi BSC számára

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

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

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

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

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

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

ADATBÁZIS-KEZELÉS. Adatbázis-kezelő rendszerek

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

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

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

Az SQL nyelv Structured Query Language (Struktúrált lekérdező nyelv)

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

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

BGF. 4. Mi tartozik az adatmodellek szerkezeti elemei

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

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

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

Adattípusok. Max. 2GByte

Adattípusok. Max. 2GByte

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

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

Adatmodellezés. 1. Fogalmi modell

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

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

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

Nem klaszterezett index. Klaszterezett index. Beágyazott oszlopok. Index kitöltési faktor. Indexek tulajdonságai

Nem klaszterezett index. Beágyazott oszlopok. Klaszterezett index. Indexek tulajdonságai. Index kitöltési faktor

SQL parancsok feldolgozása

A könyv tartalomjegyzéke

Adatbázismodellek. 1. ábra Hierarchikus modell

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

Az SQL adatbázisnyelv: DML

LBRA6i integrált rendszer

Alkalmazásokban. Dezsényi Csaba Ovitas Magyarország kft.

Adatbázisok II. rész

Az indexelés újdonságai Oracle Database 12c R1 és 12c R2

Relációs algebra áttekintés és egy táblára vonatkozó lekérdezések

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

Az adatok a vállalat kulcsfontosságú erőforrásai. Az információs rendszer adatai kezelésének két alapvető változata:

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.

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

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

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

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

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

Adatbázis rendszerek Gy: Az adattárolás fejlődése

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.

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

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

A relációs algebra egy speciális algebra, amely néhány egyszerű, de hathatós. operandusok. Egy reláció megadható a nevével vagy közvetlenül, sorainak

ADATBÁZISOK ADATBÁZIS-KEZELŐ RENDSZEREK. Debrenti Attila

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

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

Indexek és SQL hangolás

Több tábla összekapcsolásán alapuló lekérdezések. Copyright 2004, Oracle. All rights reserved.

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:

LOGISZTIKAI ADATBÁZIS RENDSZEREK UNIÓ, ALLEKÉRDEZÉSEK

Bevezetés: Relációs adatmodell

LOGISZTIKAI ADATBÁZIS RENDSZEREK BEVEZETÉS

Nyilvántartási Rendszer

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

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

Adatbázis-kezelés. alapfogalmak

ADATBÁZIS ADMINISZTRÁTOR SZAKKÉPESÍTÉS SZAKMAI ÉS VIZSGAKÖVETELMÉNYEI

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

Java és web programozás

Fogalmak: Adatbázis Tábla Adatbázis sorai: Adatbázis oszlopai azonosító mező, egyedi kulcs Lekérdezések Jelentés Adattípusok: Szöveg Feljegyzés Szám

Több tábla összekapcsolásán alapuló lekérdezések

MIKOVINY SÁMUEL TÉRINFORMATIKAI EMLÉKVERSENY

Átírás:

Tartalom Adatbázisok (relációs, objektum relációs, NoSQL) Adatbáziskezelő rendszerek Adatbázisok felépítése Adatbázisok tervezése 2017. 11. 23. 1

Adatbázisok Az adatbázis fogalma Adatbázison valamely cél megvalósításának érdekében gyűjtött, feldolgozott és tárolt adatok a cél elérésének érdekében megfelelően rendszerezett és rendezett struktúrában tárolt változatát értjük. Az adatok ömlesztett tárolása nem tekinthető adatbázisnak, mivel hiányzik belőle a rendszerezés és a struktúra. Adatbázisok tárolási formája Papíron, irattárban rendezett, rendszerezett formában Elektronikus úton, számítógépes rendszerekben 2017. 11. 23. 2

Adatbázisok Példák Banki rendszerek Vállalati nyilvántartások Repülőgép helyfoglalási rendszerek Könyvtári nyilvántartások Irattári nyilvántartások Alapvető hozzáférési igények Valós időben (azonnal) Párhuzamosan (egyszerre sok felhasználó) 2017. 11. 23. 3

Adattárolás Történelmi háttér Adatokat azóta tarolunk, mióta létezik az írás Az első adatbázisok a kartotékok, irattárak voltak A számítógépek megjelenése és elterjedése lehetővé tette az adatok elektronikus tárolását Az első számítógépes adatbázisok tárolása lyukszalagon, lyukkártyán történt, amelyek nem voltak direkt módon elérhetők a számítógépek számára 2017. 11. 23. 4

Adattárolás Történelmi háttér A mágneses adathordozók megjelenése és elterjedése egyszerűsítette az adatok tárolását és hozzáférését Ekkor még egyedi, speciális szoftverek kellettek az adatok kezeléséhez A számítástechnika gyors fejlődése (Moore törvény) lehetővé tette egyre nagyobb mennyiségű adatok feldolgozását és tárolását 2017. 11. 23. 5

Adattárolás Történelmi háttér A számítógépek fejlődésével együtt fejlődtek a programozási nyelvek és egyre több lehetőségnyílt az adatok elektronikus feldolgozására és tárolására Az adatok mennyiségének növekedésével, az adatok egyedi feldolgozása és tárolása fárasztó és időrabló feladattá vált Megjelent az adatok egységes és általános módon való feldolgozásának igénye Ennek mentén fejlődtek ki az Adatbáziskezelő rendszerek (DBMS) 2017. 11. 23. 6

Adatbáziskezelő rendszerek Adatkezelési elvárások Tegye lehetővé tetszőleges adatbázisok (adatszerkezetek) létrehozását Szabványos módon támogassa az adatok lekérdezését és módosítását (egységes lekérdező nyelv) Támogassa nagy mennyiségű adat tárolását és visszakereshetőségét hosszútávon 2017. 11. 23. 7

Adatbáziskezelő rendszerek Biztonsági elvárások Garantálja az adatok biztonságát a meghibásodással és illetéktelen hozzáféréssel szemben Felügyelje az adatok hozzáférését az adatokhoz, olyan módon, hogy az egyes felhasználók műveletei ne legyenek hatással a többi felhasználó munkájára Az egyidejű hozzáférések ne okozhassanak adathibát vagy inkonzisztenciát 2017. 11. 23. 8

Adatbáziskezelő rendszerek célja Absztrakciós réteg A fejlesztőnek ne kelljen foglalkozni a fizikai szintű adattárolással Rejtse el a felhasználó elől a számítógépek architektúráját Az eszközök típusától függetlenül az alkalmazás ugyanúgy használható legyen az adatbáziskezelő által támogatott minden platformon 2017. 11. 23. 9

Adatbáziskezelő rendszerek célja Függetlenség az adatelérés módjától Az operációs rendszerek különböző adatelérési módokat támogatnak Rejtse el az adatelérés módját a felhasználó vagy fejlesztő elől akinek a lekérdezés megfogalmazása és ne az adatok előállítási módja legyen feladat Több adatelérési mód rendelkezésre állása esetén az optimális kiválasztása 2017. 11. 23. 10

Adatbáziskezelő rendszerek célja Függetlenség az adattárolástól Az adatok szerkezeti változásai minél kevésbé befolyásolják az alkalmazások működését Az adatok szerkezeti bővítése ne okozzon problémát az alkalmazás működésében 2017. 11. 23. 11

Adatbázis modellek (napjainkban) Relációs adatbázis modell Az adatok táblázatos ábrázolása, megjelenítése Egy sor egy entitást ír le A táblázatokat nevezzük relációknak Objektum-relációs modell A relációs adatmodell bővítésével állt elő Az objektum orientált megközelítésben használt objektum és öröklődési modellt alkalmazza a relációkat megvalósító táblákra Támogatja az adattípusok bővítését saját adattípusokkal (objektumok) 2017. 11. 23. 12

Adatbázis modellek (napjainkban) NoSQL Not only SQL Két fontos jellemző amelyek mentén fejlesztik: performancia és skálázhatóság A relációs adattárolástól eltérő tárolási módot használ kulcs-érték párok gráf struktúra 2017. 11. 23. 13

Adatbázis modellek (napjainkban) NoSQL előnyei Nagy mennyiségű adat kezelése Agilis módszertanok támogatása (iteráció és gyakori kód publikálás) Dinamikus adatbázis séma (nincs előre definiált struktúra, méret meghatározás) pl. új attribútumok hozzáadása esetén nem kell a meglévő adatokat karbantartani Osztott feldolgozás támogatása automatikus partícionálás az alkalmazásnak nem kell tudnia a mögötte álló szerver hierarchiáról Automatikus adatreplikáció, nem kell ezzel foglalkoznia az alkalmazásnak 2017. 11. 23. 14

Adatbáziskezelők felépítése Sémamódosítások Lekérdezések Adatmódosítások Feldolgozó Tranzakció-kezelő Tárkezelő Adatok Metaadatok Forrás: Jeffrey D. Ullman Jenifer Widom: Adatbázisrendszerek 2017. 11. 23. 15

Adatbázis műveletek Séma (meta-adat) módosítások Végrehajtásukhoz speciális jogosultságra van szükség Data Definition Language (DDL) segítségével történik Műveletek a meta-adatok szintjén: Séma létrehozás Séma törlés Struktúrák: Létrehozása Módosítása Törlése 2017. 11. 23. 16

Adatbázis műveletek Adatmanipuláció Data Manipulation Language (DML) segítségével történik Elvégezhető műveletek Adatok létrehozása Adatok mentése Adatok keresése Adatok módosítása Adatok törlése 2017. 11. 23. 17

Relációs adatbázisok Adatstruktúrák relációs adatbázisokban Adattáblák (relációk) Adattáblák sorokból és oszlopokból állnak Az oszlopokat attribútumoknak is nevezzük A sorok azonosítóval rendelkezhetnek (elsődleges kulcs) A táblák oszlopai (attribútumai) hivatkozhatnak másik táblák elsődleges kulcsaira idegen kulcsok 2017. 11. 23. 18

Relációs adatbázisok Szemelyek ID Név Beosztás Szervezet Törölt 1 Kiss János Könyvelő 1 Hamis 2 Nagy Béla Informatikus 2 Hamis 3 Adatkapcsolatok: Idegen kulcs Szervezetek Hivatkozások másik tábla elsődleges kulcsára Elsődleges kulcs ID Név Leírás Törölt 1 Pénzügy Pénzügyi és Hamis 2 Informatika Informatikai Hamis 3 Egyedi azonosító 2017. 11. 23. 19

Relációs adatbázisok Indexek Adatok gyors hozzáférését biztosítják Különböző típusú indexek léteznek, az elterjedtebbek: B-fa index Bittérkép index teljes szövegindexelés A megfelelő indexek létrehozása felgyorsítja az adatok kezelését Túl sok index létrehozása lassítja az adatok létrehozását és módosítását (minden adatot fel kell vennie a rendszernek az indexekbe is) 2017. 11. 23. 20

Relációs adatbázisok B-fa indexek 6 27 50 1 2 3 4 5 16 18 22 30 35 7 8 9 11 15 2017. 11. 23. 21

Relációs adatbázisok Bittérkép indexek Tábla Osztályzat oszlop kevés fix (előre rögzített) értékkel ID Név Osztályzat 1 Kiss Pista 1 2 Nagy Béla 5 3 Kovács András 4 4 Laza Kati 4 5 Erős Pista 5 Bittérképek Minden értékhez van egy bittérkép 1 2 3 4 5 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 2017. 11. 23. 22

Relációs adatbázisok További adatbázis objektumok Gyári függvények és eljárások Támogatják a felhasználót tetszőleges eredmények előállításában Lehetővé teszik az adatbázisban tárolt adatok tetszőleges átalakítását Felhasználói adattípusok Lehetővé teszik az adatbázis-kezelő rendszerek adattípusainak bővítését 2017. 11. 23. 23

Relációs adatbázisok Tárolt eljárások és függvények Felhasználó által definiált programcsomagok Megírásuk adatbáziskezelőbe integrált programozási nyelven történik Lehetővé teszik az adatok helybeli feldolgozását az adatbáziskezelő rendszeren belül Nem kell az adatokat kiolvasni és átemelni a kliensre és visszaírni az adatbázisba Kiváló batch adatfeldolgozási feladatok elvégzésére Alkalmas komplex triggerek megírására 2017. 11. 23. 24

Relációs adatbázisok Tárolt eljárások és függvények A különböző adatbáziskezelő rendszerek más-más programozási nyelvet kínálnak a cél megvalósítására Alkalmazásuk nagyobb performanciát eredményez, főleg nagy mennyiségű adat feldolgozásakor nincs adatmozgatás hálózaton, csak egy kontextusváltás a szerveren belül Legismertebb programozási nyelvek Oracle PL/SQL MSSQL Tanzasct-SQL pgsql PL/pgSQL 2017. 11. 23. 25

Relációs adatbázisok Triggerek Adatok írása és olvasása közben meghívott eseménykezelő eljárások Az adattáblákba beírt adatok ellenőrzésére, kiegészítésére, átalakítására használják, például üres oszlop tartalmának feltöltése, adat érvényeségének ellenőrzése, stb. Lehet soronként (for each row) és utasításonként végrehajtott Lehet adatírás előtt vagy után végrehajtott (before insert, before update, after insert, after update) Megírásuk adatbáziskezelő specifikus 2017. 11. 23. 26

Relációs adatbázisok Megszorítások Primary key (elsődleges kulcs) Egyedi érték az oszlopon belül Egyedi index készül hozzá Foreign key (idegen kulcs) Másik tábla elsődleges kulcsára való hivatkozás Referencia integritás kikényszerítésére Csak olyan kulcsérték szerepelhet a táblában, amely létezik a hivatkozott tábla elsődleges kulcsértékei között Ellenőrzési megszorítás Oszlop értékkészletének a megadása 2017. 11. 23. 27

Relációs adatbázisok Partícionálás Adatok tárolásának szegmentálása az adattáblákban tárolt adatok alapján Leginkább nagy mennyiségű adat gyorsabb lekérdezése esetén használják Például: számlák szétosztása tábla partíciók között kiállítási hónap vagy év alapján Lekérdezések végrehajtásának felgyorsítása: ha a partícionálásban érintett adat mentén keresünk, a rendszer csak azokat a partíciókat veszi figyelembe, amelyek releváns adatot tartalmazhatnak Megvalósítása adatbáziskezelő függő 2017. 11. 23. 28

Adatok lekérdezése (SQL) Standard Query Language Szabványos lekérdező nyelv Minden relációs adatbáziskezelő támogatja Lehetővé teszi az adatok alatti adatbáziskezelő motor cseréjét a programkód cseréje nélkül Gyártói kiegészítések Kényelmesebbé teszik a lekérdezések használatát Nagyobb performanciát nyújtó opciók Platformfüggővé teszik az alkalmazást 2017. 11. 23. 29

Adatok lekérdezése (SQL) SQL utasítások Insert adatsorokok beszúrása adattáblákba Update adatsorok attribútumainak módosítása adott feltételek mentén Delete - adatsorok törlése adott feltételek mentén Select adatok lekérdezése adattáblákból 2017. 11. 23. 30

Adatok lekérdezése (SQL) Select utasítás SELECT kifejezés1 as oszlop, kifejezés2 as oszlop, FROM tábla1 alias1 [INNER LEFT OUTER RIGHT OUTER] JOIN tábla2 alias 2 ON feltétel2 [INNER LEFT OUTER RIGHT OUTER] JOIN táblax aliasx ON feltételx WHERE feltétel GROUP BY kifejezések HAVING feltétel ORDER BY kifejezések LIMIT kezdő adat, adatmennyiség 2017. 11. 23. 31

Adatok lekérdezése (SQL) Select Elővett adatok listája SELECT kifejezés1 as oszlop, kifejezés2 AS oszlop, Kifejezéseket adhatunk meg, amelyek az adattábla oszlopainak értékeiből, konstansokból, függvényhívásokból (gyári és saját) műveletekből állnak Az előállított értékhez tetszőleges elnevezést kapcsolhatunk 2017. 11. 23. 32

Adatok lekérdezése (SQL) FROM Honnan vesszük elő FROM tábla1 alias1 [INNER LEFT OUTER RIGHT OUTER] JOIN tábla2 alias 2 ON feltételek2 [INNER LEFT OUTER RIGHT OUTER] JOIN táblax aliasx ON feltételekx Egy lekérdezésben egy vagy több táblából is vehetünk elő adatokat DESCARTES szorzatot (minden sor minden sorral) Adhatunk meg összekapcsolási feltételeket JOIN 2017. 11. 23. 33

Adatok lekérdezése (SQL) FROM Honnan Kiválogathatjuk: csak az összekapcsolási feltételeknek megfelelő sorokat (INNER JOIN) a bal oldali tábla sorait hozzákapcsolva a jobb oldali tábla sorait amelyek megfelelnek az összekapcsolási feltételnek (LEFT OUTER JOIN) a jobb oldali tábla sorait hozzákapcsolva a jobb oldali tábla sorait amelyek megfelelnek az összekapcsolási feltételnek (RIGHT OUTER JOIN) 2017. 11. 23. 34

Adatok lekérdezése (SQL) WHERE Milyen feltétleknek mentén WHERE feltétel Az adattáblákból tetszőleges feltételek mentén válogathatunk sorokat A feltétel eredménye egy logikai érték (igaz/hamis), amely további kifejezések tetszőleges összekapcsolásából állhat Például: WHERE tabla1.attributum2=10 and tabla2.attributum3> tabla1.attributum2 2017. 11. 23. 35

Adatok lekérdezése (SQL) GROUP BY - csoportosítás GROUP BY kifejezések Összegzések, statisztikák előállítása A következő kérdésekre adott válasz: Hány olyan sor van COUNT Mennyi az összege a SUM Mennyi az átlaga AVG További statisztikai függvények A kifejezések által alkotott csoportonként kapjuk a választ A SELECT után csak statisztikai függvények és a GROUP BY kifejezési szerepelhetnek 2017. 11. 23. 36

Adatok lekérdezése (SQL) HAVING csoportok szűrése HAVING feltételek A csoportosítás során előállított adatokból válogathatunk a feltétel mentén Az eredményben azok a csoportok jelennek meg, amelyek eleget tesznek a HAVING után szereplő feltételeknek A feltétel tipikusan a csoportosítással előállított valamely statisztikai értékre vonatkozik Példa: Azon csoportok megjelenítése amely több mint 5 sorból állt össze: HAVING COUNT(ID)>5 2017. 11. 23. 37

Adatok lekérdezése (SQL) ORDER BY eredmény sorba állítása ORDER BY kifejezések Adatok sorba állítása kifejezések mentén Az egyes kifejezések esetében megadhatjuk, hogy melyek mentén állítjuk növekvő (ASC) illetve csökkenő (DESC) sorrendbe az adatokat Példa: ORDER BY SZERVEZET ASC, FIZETES DESC 2017. 11. 23. 38

Adatok lekérdezése (SQL) LIMIT szegmentálás LIMIT kezdő adat, adatmennyiség Gyakran fordul elő, hogy az eredmény nagy mennyiségű adatot tartalmaz, amit egyszerre nem lehet megjeleníteni a képernyőn, ilyenkor lapozási technikát alkalmazunk Megadhatjuk, hogy az eredmény valamely sorától adott sormennyiséget tartalmazzon az eredmény Adatbáziskezelő szervertől függően ennek szintaktikája változhat (Oracle esetében ROWNUM) 2017. 11. 23. 39

Relációs adatbázisok Lekérdezések optimalizálása Nagy adatmennyiség esetében nem mindegy, hogy milyen sorrendben hajtja végre a rendszer az eredmény összeállítását Alapvetően kétféle optimalizálási módot különböztetünk meg Szabály alapú Költség alapú Végrehajtási tervek készítése, kiértékelése 2017. 11. 23. 40

Lekérdezések optimalizálása Az optimalizálás technikákra támaszkodik Minden adatbázis háttérműveletnek megvan a prioritása Indexekre támaszkodik (nem kell végigolvasni a táblákat) Full table scan (teljes tábla olvasás nincs megfelelő index) Index scan (index olvasás majd csak az indexben megtalált sorok elővétele) A táblák összekapcsolásához többféle technikát is használhat NESTED LOOP (összefésüli a két tábla sorait) SORT-MERGE (a táblák sorba állított sorait fésüli össze) HASH JOIN (kihasználja a SORT-MERGE algoritmus karakterisztikáit, az azonos értékek egymás melletiségét, csoportosíthatóságát) 2017. 11. 23. 41

Lekérdezések optimalizálása Szabály alapú optimalizálás Minden adatbázis műveletnek megva a prioritása A lekérdező motor meghatározza az eredmény előállításához szükséges feldolgozási műveleteket A műveletek prioritása alapján az adatok minőségétől függetlenül állítja sorba a különböző végrehajtási terveket 2017. 11. 23. 42

Lekérdezések optimalizálása Költség alapú optimalizálás Alkalmazásához adatminőségi statisztikákra van szükség (mennyiség, eloszlás, stb.) Minden adatbázis műveletnek becsülhető a költsége statisztikák alapján A lekérdező motor meghatározza az eredmény előállításához szükséges feldolgozási műveleteket Az optimalizáló meghatározza a műveletek költségét az adatok minőségétől függően összegezi a bekerülési költségeket és ez alapján állítja sorba a végrehajtási terveket 2017. 11. 23. 43

Lekérdezések optimalizálása Forrás: Oracle.com 2017. 11. 23. 44

Lekérdezések optimalizálása Forrás: Oracle.com 2017. 11. 23. 45

Relációs adatbázisok tervezése Adattáblák meghatározása Szemelyek és szervezetek ID Név Beosztás Szervezet Szervezet leírása Törölt 1 Kiss János Könyvelő Pénzügy Pénzügyi és Hamis 2 Nagy Béla Informatikus Informatika Informatikai Hamis 3 Szemelyek Normalizálás Redundanciák kiszűrése Szervezetek ID Név Beosztás Szervezet Törölt 1 Kiss János Könyvelő 1 Hamis 2 Nagy Béla Informatikus 2 Hamis 3 ID Név Leírás Törölt 1 Pénzügy Pénzügyi és Hamis 2 Informatika Informatikai Hamis 3 2017. 11. 23. 46

Relációs adatbázisok tervezése Indexek meghatározása Az adat lekérdezési igények határozzák meg az alkalmazandó indexeket adattartalom csoportosítás sorba állítás Egy oszlopos vagy több oszlopos index? Egy adatelővételi művelet esetében egy index alkalmazható Több oszlopos index akkor alkalmazandó, ha több oszlopra történik a szűrés Ha több oszlop adatai szerepelnek a szűrési feltételekben, az optimalizáló a legmegfelelőbbnek talált indexet alkalmazza Minél több az index annál lassúbb az adatlétrehozás és módosítás 2017. 11. 23. 47

Köszönöm a figyelmet! 48