Adatbázisok elmélete

Hasonló dokumentumok
Csima Judit szeptember 6.

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

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

Az adatbázisrendszerek világa

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

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

Egyed-kapcsolat modell

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

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

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

Adatbázis rendszerek. dr. Siki Zoltán

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

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

Adatbázis-kezelő rendszerek. dr. Siki Zoltán

ADATBÁZISOK, 2017 ősz

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

Adatbázis, adatbázis-kezelő

ADATBÁZISOK, 2018 ősz

Adatbázisok elmélete

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

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

Funkcionális és logikai programozás. { Márton Gyöngyvér, 2012} { Sapientia, Erdélyi Magyar Tudományegyetem }

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

LOGISZTIKAI ADATBÁZIS RENDSZEREK JOIN, AGGREGÁCIÓ

Inczédy György Középiskola, Szakiskola és Kollégium Nyíregyháza, Árok u. 53. TANMENET. Informatika szakmacsoport

Adatigények. Koncepcionális séma (magas szintű modell) Logikai séma (alacsony szintű modell) Belső séma (fizikai szerkezet, hozzáférési módok)

LOGISZTIKAI ADATBÁZIS RENDSZEREK BEVEZETÉS

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

Bevezetés: az SQL-be

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

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

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

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)

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

Adatmodellezés. 1. Fogalmi modell

Adatbázis-kezelés. Fülep Dávid. SELECT id FROM eloadas WHERE intezmeny = sze ORDER BY unalomfaktor LIMIT 1 NGB_SZ_003_9

Az adatbáziskezelés alapjai

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

Egyed-kapcsolat modell

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

Nyilvántartási Rendszer

Dr. Pál László, Sapientia EMTE, Csíkszereda WEB PROGRAMOZÁS 4.ELŐADÁS. Adatbázis alapú alkalmazások készítése PHP-ben

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

Adatbázisok gyakorlat

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

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

Adatmodellek. 2. rész

Programozás. Bevezetés. Fodor Attila. Pannon Egyetem Műszaki Informatikai Kar Villamosmérnöki és Információs Rendszerek Tanszék

BEVEZETÉS AZ ADATBÁZIS KEZELŐ RENDSZEREK ALKALMAZÁSÁBA. Az ADATBÁZIS logikailag összefüggő meghatározott szerkezetben tárolt adatok halmaza.

Adatbázisrendszerek (ABR)

TestLine - balla tesztje-03 Minta feladatsor

Adatbázis-kezelés. Dr. Fülep Dávid. SELECT id FROM tantargy WHERE intezmeny = sze ORDER BY hasznossag LIMIT 1 NGB_SZ_003_9

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

A TANTÁRGY ADATLAPJA

A TANTÁRGY ADATLAPJA

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

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

Rendszermodernizációs lehetőségek a HANA-val Poszeidon. Groma István PhD SDA DMS Zrt.

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

A szemantikus világháló oktatása

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

Adatbázis rendszerek. 4. előadás Redundancia, normalizálás

ADATBÁZISOK, ADATTÁRHÁZAK

Adatbázis-kezelés alapok Adatbázisok című tárgyhoz, ismétlés kapcsán

Adatbázis rendszerek Info MÁTRIX

Informatika tagozat osztályozóvizsga követelményei

Adatbázisrendszerek BEVEZETÉS. A valós világban vannak dolgok, amelyek viselkednek, hatnak egymásra, kapcsolatban vannak. Ezek rendszert alkotnak.

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ázisok elmélete 10. előadás

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

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

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

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

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

1. Az adatbázis fogalma, fontosabb összetevÿi, felhasználási módjai

A relációs adatmodell

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

SQL DDL-2 (aktív elemek) triggerek

Bevezetés: Relációs adatmodell

Ajánlott irodalom. Adatbázisok I.

Gyakorlati vizsgatevékenység A

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

KÖTELEZŐ PROGRAM, SZÁMONKÉRÉSEK. Részletek

Gyakorlati vizsgatevékenység B

Adatbázis-kezelés. alapfogalmak

SZÁMÍTÓGÉPES ADATBÁZIS-KEZELÉS. A MySQL adatbáziskezelő PHP folytatás JDBC, ODBC

Adatbázisok-1 előadá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

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

BEVEZETÉS Az objektum fogalma

AZ INFORMATIKA ÉRETTSÉGI VIZSGA ÁLTALÁNOS KÖVETELMÉNYEI

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ázisok* tulajdonságai

A TANTÁRGY ADATLAPJA

AZ Informatika érettségi VIZSGA ÁLTALÁNOS követelményei

Adatbázis fejlesztés és üzemeltetés II. Szabó Bálint

Bevezetés: Relációs adatmodell

Számonkérési formák a BME-n a Deklaratív programozás című tárgyban

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

Átírás:

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 1 / 20

Órák, emberek heti két óra: szerda 14.15 16.00 (H405a) és péntek 8.15 10.00 (H405a) előadás és gyakorlat (akár egy órán belül is) vegyesen, laborok külön alkalmak előadás: slide-ok és tábla gyakorlat: feladatsorok, órai munka, házi feladat gyakorlásnak labor: 6 labor, előre bejelentett időpontban (páratlan hetek péntek), maximum egyet lehet hiányozni, első labor szeptember 27., péntek Katona Gyula (előadás, gyakorlat): kiskat@cs.bme.hu Papp László (előadás, gyakorlat): lazsa@cs.bme.hu Tóth Péter (labor): totpet94@gmail.com weboldal: www.cs.bme.hu/adatb Katona Gyula Y. (BME SZIT) Adatbázisok elmélete 2 / 20

Követelmények órákra járni, a laborokból legfeljebb egyszer lehet hiányozni félévközi zh az aláírásért, pontszáma beszámítható a vizsga pontszámába a zh időpontja: november 27., a szerdai órán, pótzh a 14. héten külön megbeszélt időpontban év végén írásbeli és szóbeli részből álló vizsga Katona Gyula Y. (BME SZIT) Adatbázisok elmélete 3 / 20

A tárgy célja ha adatokat akarunk tárolni, módosítani, lekérdezni: hogyan célszerű? megoldás: adatbáziskezelő rendszerek (DBMS) kérdések: milyen részei vannak egy adatbáziskezelő rendszernek? melyik rész mire való? az egyes részek működésének alapjai (elmélet) mit látunk ebből használóként, mit kell tudni a használathoz? (gyakorlat) Katona Gyula Y. (BME SZIT) Adatbázisok elmélete 4 / 20

Miért kellenek az adatbáziskezelő rendszerek? kezdetben adatok tárolására: file-ok, minden file egy táblázat (pl. diákok jegyei egyes tárgyakból, minden tárgyhoz egy újabb táblázat) problémák: ha a diákokról alapadatokat is tárolni akarunk, akkor redundancia vagy még egy táblázat kell, de akkor ezt az újat mi kapcsolja a többihez? adott diák összes eredményét hogyan szedjük össze? bonyolultabb lekérdezéseket hogyan? (pl. minden diák, aki már felvette az egyik, de nem vette fel a másik tárgyat) több felhasználó egyszerre, jogosultságok kezelése Katona Gyula Y. (BME SZIT) Adatbázisok elmélete 5 / 20

Mire jók az adatbáziskezelő rendszerek? formális keret adatbázis séma tervezésére: mik az adattáblák (milyen adatokat tárolunk egyben): pl. diákok alapadatai, illetve, hogy melyik diák milyen tárgyakat vett fel és tárgyanként egy adattábla az eredmények nyilvántartására az egyes adattáblákon belüli megkötések (pl. neptun kód egyedi az alapadatoknál vagy (neptun-kód, félév) pár meghatározza a jegyet a tárgyaknál) adattáblák közti kapcsolat (pl. a tárgyhoz tartozó adattáblában szereplő neptun-kódnak szerepelnie kell az alapadatos táblában) tervezés után adatbázis séma létrehozása magas szinten, ehhez adott egy rendszertől függő DDL (Data Definition Language) Katona Gyula Y. (BME SZIT) Adatbázisok elmélete 6 / 20

Mire jók az adatbáziskezelő rendszerek? kész adatbázisba adatok beillesztése, módosítása magas szinten (az adatbázis fogalmi keretének feltöltése) pl.: új diák felvétele, tárgyfelvétel, jegybeírás, ehhez adott egy rendszertől függő DML (Data Manipulation Language) magas szintű lekérdezést tesz lehetővé (a tárolás konkrét ismerete nélkül): elég leírni, hogy mit akarunk, a DBMS megoldja a többit, ehhez Query Language (pl.: SQL) cél: gyakori kérdéseket könnyű legyen kérdezni (ehhez jól végiggondolt fogalmi keret kell, hatékony tárolás, ehhez fontos a jó tervezés) Katona Gyula Y. (BME SZIT) Adatbázisok elmélete 7 / 20

Mire jók az adatbáziskezelő rendszerek? elválik logikai séma és a fizikai megvalósítás (nem kell az utóbbival bajlódnunk) nagy mennyiségű adat tárolása biztonságosan (jogosultságok, illetéktelen hozzáférés megakadályozása illetve rendszerhibák elleni védelem) többfelhasználós működés támogatása (egyidejű hozzáférés, de ne legyen hibás, inkonzisztens állapot emiatt) Katona Gyula Y. (BME SZIT) Adatbázisok elmélete 8 / 20

A DBMS felépítése, részei Sémamódosítás Lekérdezés Adatmódosítás Lekérdezésfeldolgozó Tranzakció kezelõ Tárkezelõ Adatok, metaadatok Katona Gyula Y. (BME SZIT) Adatbázisok elmélete 9 / 20

Adatok, metaadatok Fizikailag valahol tárolódnak az adatok: diákok adatai, ki milyen tárgyat vett fel,... metaadatok: mik a relációk (adattáblák) nevei, attribútumai (miket tárolunk bennük), attribútumok típusai (string, szám), illetve pl. milyen indexek vannak a kereséshez Katona Gyula Y. (BME SZIT) Adatbázisok elmélete 10 / 20

Tárkezelő A kért információ beolvasása, módosítások végrehajtása. Kb. mint az operációs rendszerek file-kezelője, de itt néha (többfelhasználós működésnél pl.) mi mondjuk meg, hova történjen az írás (háttártárra, pufferbe), nem kezelheti teljesen szabadon a puffert. Részei: File kezelő: nyilvántartja az adatbázis állományát; fizikai I/O-t végez, ha a pufferkezelő kéri; indexstruktúrába rendezi az adatokat (pl. B-fa) Pufferkezelő: kezeli a memóriát, tárolja a filekezelő által beolvasott blokkokat Katona Gyula Y. (BME SZIT) Adatbázisok elmélete 11 / 20

Lekérdezésfeldolgozó Alapfeladata: sémadefiníciós, adatmódosítós és lekérdezős kérések fogadása, kezelése, ezt a felületet látjuk mi igazából sémaműveletek: az adatbázis logikai struktúrájának kialakítása, módosítása eredménye: maga az adatbázisséma, plusz kiegészítő metaadatok (pl. mit hogyan tároljunk, indexek) nagyon fontos, meghatározza a további működést adatmódosítás: az adatbázis tartalmának módosítása, pl. új diák beillesztése, tárgyfelvétel törlése két lehetőség erre: vagy egy külön felületen át vagy alkalmazói programból (a második esetben a programozási nyelvnek van utasításkészlete az adatbázishoz fordulásra) lekérdezések: keresőkérdések az adatbázisra vonatkozóan itt is lehet külön felület vagy program Katona Gyula Y. (BME SZIT) Adatbázisok elmélete 12 / 20

Lekérdezésfeldolgozó tennivalói: végrehajtási terv készítése A magas szintű kérdéseket átalakítjuk elemi utasítások sorozatává. A (legtöbbször) deklaratív kérdésből (ahol nem mondjuk meg, hogy milyen úton akarom megkapni az eredményt, csak azt, hogy mit akarok, ilyen pl. SQL) procedurális kérdést csinálunk (ahol már egy konkrét végrehajtási terv látszik). Pl: Ha a séma két relációja diák(név, neptun) és adatbáziskezelés(neptun, félév, jegy) SELECT jegy FROM diák, adatbáziskezelés WHERE diák.neptun = adatbáziskezelés.neptun AND diák.név= Vombat Sándor Vombat Sándor összes eddigi jegye Adatbáziskezelés tárgyból Katona Gyula Y. (BME SZIT) Adatbázisok elmélete 13 / 20

Lekérdezésfeldolgozó tennivalói: végrehajtási terv készítése SELECT jegy FROM diák, adatbáziskezelés WHERE diák.neptun = adatbáziskezelés.neptun AND diák.név= Vombat Sándor Ez csak azt mondja meg, hogy mely relációkból, mit akarok megkapni, de azt nem, hogy hogyan kell ezt megszerezni. Erre egy (elnagyolt) végrehajtási terv lehet pl. az, hogy ha van index a névre a diák-ban, akkor az alapján keressük meg V.S. neptun kódját, aztán ez alapján a másik relációban keressük meg a megfelelő sorokat és olvassuk ki a jegyeket. Katona Gyula Y. (BME SZIT) Adatbázisok elmélete 14 / 20

Lekérdezésfeldolgozó tennivalói: optimalizálás Több lehetséges végrehajtási terv közül kiválasztani egy legjobbat. Nem valódi optimalizálás, nem a legjobbat keressük, csak egy elég jót. Ezt az elég jó végrehajtási tervet a rendszer maga keresi meg, de (rendszertől függően) bele tudunk nyúlni ebbe. Fontos: a kapott (SQL) kérdés nem ad támpontot, hogy hogyan kell megkapni az eredményt, de nem is kötelez semmire érdemes szöszölni egy jobb végrehajtási terv keresésével, mert nagyok lehetnek a különbségek nagy adathalmaz esetén Katona Gyula Y. (BME SZIT) Adatbázisok elmélete 15 / 20

Tranzakciókezelő Két nagyobb problémakör megoldására kell: több felhasználó egyszerre használja az adatbázist, egyidejű hozzáférések kezelése rendszerhibák, ABORT-ok hatásainak kivédése: ezek bekövetkeztekor sem veszhetnek el adatok, nem maradhat az adatbázis inkonzisztens állapotban Alapfogalom a tranzakció: egy felhasználóhoz tartozó, összetartozó utasítások olyan sorozata, melyek vagy mind végrehajtódnak vagy semelyik sem (ez az atomiság) Pl. banki átutalásnál nem lehet, hogy csak a pénz levonása történik meg az egyik számlán, de nem íródik jóvá a másikon Katona Gyula Y. (BME SZIT) Adatbázisok elmélete 16 / 20

Kliens-szerver rendszer Ez az eddig felsorolt sok alkotórész eloszlik a kliens és a szerver között. A szerver tartja a kapcsolatot az fizikai adatbázissal, a kliens pedig a felhasználóval, a többi funkció eloszlása nagyon változhat rendszertől függően. Erről majd laboron lesz még szó Katona Gyula Y. (BME SZIT) Adatbázisok elmélete 17 / 20

Az adatbáziskezelő használati szintjei felhasználó: adatmódosítást csinál, alkalmazói programot futtat, (esetleg egyszerűbb SQL kérdést fogalmaz meg) adatbázis programozó: összetett lekérdezések, alkalmazói program írása; jól ismeri az adatbázis felépítését, az adatbáziskezelőkben használt technikákat adatbázis tervező: sémát hoz létre, fizikai szervezésbe beleszólhat adatbázisrendszer megvalósító: az adatbáziskezelőt magát tervezi és írja Katona Gyula Y. (BME SZIT) Adatbázisok elmélete 18 / 20

A félév anyaga Amit felhasználóként, programozóként, esetleg tervezőként használunk: adatmodellezés: E/K (egyed-kapcsolat) diagram (grafikus jelölésrendszer) Az adatbázis fogalmi keretének megadására, tervet lehet vele készíteni, amit aztán majd át kell alakítani az adatbáziskezelő által használt formális megadási módra. relációs adatmodell: nagyon fontos elméleti modell, tipikusan ilyenek az adatbáziskezelők mostanában az E/K modellt ilyenre írjuk át SQL: séma létrehozása, adatmódosítás és főleg lekérdezés Katona Gyula Y. (BME SZIT) Adatbázisok elmélete 19 / 20

A félév anyaga Az adatbáziskezelő rendszer mélyén, a háttárben zajló folyamatok megértése: fizikai szervezés: adatszerkezetek, pl. indexek, keresőfák (csak említve) tranzakciókezelés lekérdezésfeldolgozás: lekérdezési tervek készítése, értékelése, összehasonlítása Programozás, labor: DBMS telepítése, SQL, SQL elérése PHP-vel, stb. Katona Gyula Y. (BME SZIT) Adatbázisok elmélete 20 / 20