9.előadás: Adatbázisok-I.sila.hajas.elte.hu/ABEA/09_adatb_hcs.pdf · (2) Adatmodell támogatása...

23
9.előadás: Adatbázisok-I. dr. Hajas Csilla (ELTE IK) http://sila.hajas.elte.hu/ Adatbázis-kezelő rendszerek áttekintése, alapfogalmak Mai 9.előadáson még folytatjuk a 8.ea-t, vagyis befejezzük az SQL használatát programnyelvi környezetben: PL/SQL-t, Majd ezután jön ez a 9.ea --- Tankönyv: 1.fejezet: Az adatbázisrendszerek világa 1 Adatbázisok-1 (Hajas Csilla, ELTE IK) 9.előadás: DBMS felépítése

Transcript of 9.előadás: Adatbázisok-I.sila.hajas.elte.hu/ABEA/09_adatb_hcs.pdf · (2) Adatmodell támogatása...

Page 1: 9.előadás: Adatbázisok-I.sila.hajas.elte.hu/ABEA/09_adatb_hcs.pdf · (2) Adatmodell támogatása Az adatmodell a valóság fogalmainak, kapcsolatainak, tevékenységeinek magasabb

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

http://sila.hajas.elte.hu/

Adatbázis-kezelő rendszerek

áttekintése, alapfogalmak

Mai 9.előadáson még folytatjuk a 8.ea-t,

vagyis befejezzük az SQL használatát

programnyelvi környezetben: PL/SQL-t,

Majd ezután jön ez a 9.ea --- Tankönyv:

1.fejezet: Az adatbázisrendszerek világa

1 Adatbázisok-1 (Hajas Csilla, ELTE IK) 9.előadás: DBMS felépítése

Page 2: 9.előadás: Adatbázisok-I.sila.hajas.elte.hu/ABEA/09_adatb_hcs.pdf · (2) Adatmodell támogatása Az adatmodell a valóság fogalmainak, kapcsolatainak, tevékenységeinek magasabb

Áttekintés ( 1.előadás, illetve 10-12.ea )

( nem SQL, hanem Tervezés)

-- -- -- -- -- -- -- -- -- -- -- --

2-5.előadások+gyakorlaton:

6.1-6.4. Lekérdezések

az SQL-ben: SELECT

6.előadás+gyakorlaton:

6.5. SQL DML: INSERT,

DELETE, UPDATE

6.6. Tranzakciókezelés

COMMIT, ROLLBACK

7.1.-7.3. CREATE TABLE

Megszorítások

Adatbázisok-1 (Hajas Csilla, ELTE IK) 9.előadás: DBMS felépítése 2

A 7.előadás (csak ea.+vizsgán)

7.4.-7.5. Assertions,Triggers

8.1-8.2., 8.5. Views (nézetek)

10.1. SQL DCL (jogosultságok)

GRANT, REVOKE

10.2. Rekurzív lekérdezés

WITH RECURSIVE

-- -- -- -- -- -- -- -- -- -- -- --

8.előadás+gyakorlaton:

9.3-9.4 SQL/PSM illetve

Oracle PL/SQL

9.előadás (csak ea.+vizsgán)

1.fejezet: DBMS alapfogalmak

Page 3: 9.előadás: Adatbázisok-I.sila.hajas.elte.hu/ABEA/09_adatb_hcs.pdf · (2) Adatmodell támogatása Az adatmodell a valóság fogalmainak, kapcsolatainak, tevékenységeinek magasabb

Mit várunk egy ABKR-től? --- 1 Visszatérünk a Tankönyv 1.fejezetére (ez a két o. ismétlés)

Adatbázis: Adatok együttese, amelyet az adatbázis-kezelő

rendszer kezel. Mit várunk az ABKR-től? (DBMS-től?)

Tegye lehetővé a felhasználók számára, hogy új

adatbázisokat hozhassanak létre, és azok sémáját,

vagyis az adatok logikai struktúráját egy speciális

nyelven adhassák meg: Adatdefiníciós nyelv (DDL)

Tegye lehetővé a felhasználóknak, hogy az adatokat egy

megfelelő nyelv segítségével lekérdezhessék vagy

módosíthassák: Adatkezelő nyelv (DML)

Kényelmes (fizikai adatfüggetlenség, magas szintű

deklaratív nyelv, mint például az SQL szabvány)

Hatékony legyen a megvalósítás.

Adatbázisok-1 (Hajas Csilla, ELTE IK) 9.előadás: DBMS felépítése 3

Page 4: 9.előadás: Adatbázisok-I.sila.hajas.elte.hu/ABEA/09_adatb_hcs.pdf · (2) Adatmodell támogatása Az adatmodell a valóság fogalmainak, kapcsolatainak, tevékenységeinek magasabb

Mit várunk egy ABKR-től? --- 2 (folyt.) Mit várunk az ABKR-től? (DBMS-től?)

Támogassa nagy méretű (több terabyte mennyiségű)

adat hosszú időn keresztül való tárolását, és tegye

lehetővé a hatékony hozzáférést a lekérdezések és

adatbázis-módosítások számára.

Biztosítsa a tartósságot, az adatb. helyreállíthatóságát,

biztonságos (konzisztens állapot biztosítsa, védve

legyen a hardware, software és felhasználói hibáktól).

Felügyelje a több felhasználó által egy időben történő

adathozzáféréseket úgy, hogy ezek a műveletek ne

legyenek hatással a többi felhasználóra számára

(konkurencia-vezérlés)

A fenti pontok részletesebben kifejtve:

Adatbázisok-1 (Hajas Csilla, ELTE IK) 9.előadás: DBMS felépítése 4

Page 5: 9.előadás: Adatbázisok-I.sila.hajas.elte.hu/ABEA/09_adatb_hcs.pdf · (2) Adatmodell támogatása Az adatmodell a valóság fogalmainak, kapcsolatainak, tevékenységeinek magasabb

(1) Adatbázis-kezelés

Adatbázis-kezelés:

(1) Háttértárolón tárolt, nagy adatmennyiség hatékony kezelése (lekérdezése, módosítása)

(2) Adatmodell támogatása

(3) Adatbázis-kezelő nyelvek támogatása

(4) Több felhasználó támogatása

(5) Adatvédelem, adatbiztonság

(6) Tranzakció-kezelés

(7) Konkurencia-kezelés

(8) Naplózás és helyreállíthatóság

(9) Lekérdezések végrehajtásának optimalizálása

Adatbázisok-1 (Hajas Csilla, ELTE IK) 9.előadás: DBMS felépítése 5

Page 6: 9.előadás: Adatbázisok-I.sila.hajas.elte.hu/ABEA/09_adatb_hcs.pdf · (2) Adatmodell támogatása Az adatmodell a valóság fogalmainak, kapcsolatainak, tevékenységeinek magasabb

(2) Adatmodell támogatása Az adatmodell a valóság fogalmainak, kapcsolatainak,

tevékenységeinek magasabb szintű ábrázolása

File-kezelés indexekkel együtt, ezt váltotta fel a

CODASYL szabvány, hálós adatmodell (hatékony keresés)

Hierarchikus adatmodell (apa-fiú kapcsolatok gráfja)

Ted Codd - Relációs adatmodell (táblák rendszere, könnyen megfogalmazható műveletek)

Objektum-orientált adatmodell (az adatbázis-kezelés funkcionalitásainak biztosítása érdekében gyakran relációs adatmodellre épül), + Objektum-relációs adatmodell

Logikai adatmodell (szakértői rendszerek, tények és következtetési szabályok rendszere)

Dokumentumok - Félig strukturált adatmodell, az XML (szabvány adatcsereformaként jelent meg), XML, JSON

Gráf adatbázisok, NoSQL

Adatbázisok-1 (Hajas Csilla, ELTE IK) 9.előadás: DBMS felépítése 6

Page 7: 9.előadás: Adatbázisok-I.sila.hajas.elte.hu/ABEA/09_adatb_hcs.pdf · (2) Adatmodell támogatása Az adatmodell a valóság fogalmainak, kapcsolatainak, tevékenységeinek magasabb

(2) Az adatmodellek 3 szintje

(lásd 7.ea idevágó részét: nézetek)

Hogyan látjuk az adatbázist?

A 3 szintű ANSI/SPARC architektúra

Logikai (külső, a felhasználói szemléletnek

megfelelő szinten, nézetek)

Fogalmi (conceptual) (absztrakt, szintetizálja

az összes felhasználói szemléletet)

Fizikai (belső, az adatbázis valamilyen fizikai

adatstruktúrában letárolva a háttértárolón)

Adatbázisok-1 (Hajas Csilla, ELTE IK) 9.előadás: DBMS felépítése 7

Page 8: 9.előadás: Adatbázisok-I.sila.hajas.elte.hu/ABEA/09_adatb_hcs.pdf · (2) Adatmodell támogatása Az adatmodell a valóság fogalmainak, kapcsolatainak, tevékenységeinek magasabb

(2) Az adatmodellek 3 szintje --3

Forrás: Elmasri-Navathe:

Fundamentals of Database Systems

Adatbázisok-1 (Hajas Csilla, ELTE IK) 9.előadás: DBMS felépítése 8

Page 9: 9.előadás: Adatbázisok-I.sila.hajas.elte.hu/ABEA/09_adatb_hcs.pdf · (2) Adatmodell támogatása Az adatmodell a valóság fogalmainak, kapcsolatainak, tevékenységeinek magasabb

(3) Adatbázis-kezelő nyelvek támogatása

SQL – relációs (és objektum-relációs) adatbázis-kezelő szabvány nyelv, fontosabb szabványok:

SQL86, SQL89, SQL92 (SQL2), SQL:1999 (SQL3),

SQL: 2003, SQL:2006, SQL:2008

DDL (Data Definition Language) adatdefiniáló (sémaleíró) nyelv: sémák, adatstruktúrák megadása, objektumok létrehozása, módosítása, törlése: CREATE, ALTER, DROP

DML (Data Manipulation Lang.) adatkezelő és lekérdező nyelv: INSERT, DELETE, UPDATE és SELECT

DCL (Data Control Lang.) adatvezérlő nyelv, jogosultságok

kiosztása és visszavonása: GRANT, REVOKE

Tranzakció-kezelés: COMMIT, ROLLBACK

Adatbázisok-1 (Hajas Csilla, ELTE IK) 9.előadás: DBMS felépítése 9

Page 10: 9.előadás: Adatbázisok-I.sila.hajas.elte.hu/ABEA/09_adatb_hcs.pdf · (2) Adatmodell támogatása Az adatmodell a valóság fogalmainak, kapcsolatainak, tevékenységeinek magasabb

(4) Több felhasználó támogatása

Felhasználói csoportok. Kulcsemberek:

DBA adatbázis-rendszergazda

felügyeli az adatbázis-példányokat és

adatbázis-szervereket

felépíti a rendszert, implementálja és

optimális adatbázis-megoldást biztosít

Adatbázis-tervező (sématervezés)

Alkalmazás-fejlesztő, programozó (kódolás)

Felhasználók (akik használják a rendszert)

Adatbázisok-1 (Hajas Csilla, ELTE IK) 9.előadás: DBMS felépítése 10

Page 11: 9.előadás: Adatbázisok-I.sila.hajas.elte.hu/ABEA/09_adatb_hcs.pdf · (2) Adatmodell támogatása Az adatmodell a valóság fogalmainak, kapcsolatainak, tevékenységeinek magasabb

(5) Adatvédelem, adatbiztonság

(lásd 7.előadás idevágó részét is!)

Jogosultságok (objektumok olvasása, írása,

módosítása, készítése, törlése, jogok

továbbadása, visszavonása) GRANT és REVOKE

Jogosultságok tárolása rendszertáblákban történik

Jogosultságok kezelése, felhasználók, jelszavak,

hozzáférési jogok

Adatbázissémák korlátozása (virtuális) nézettáblák

segítségével

Tárolt adatok, hálózati adatforgalmak titkosítása

(nagy prímszámok, RSA, DES)

Adatbázisok-1 (Hajas Csilla, ELTE IK) 9.előadás: DBMS felépítése 11

Page 12: 9.előadás: Adatbázisok-I.sila.hajas.elte.hu/ABEA/09_adatb_hcs.pdf · (2) Adatmodell támogatása Az adatmodell a valóság fogalmainak, kapcsolatainak, tevékenységeinek magasabb

(6) Tranzakció-kezelés

Tranzakció: adatkezelő műveletekből (adategység írása, olvasása) álló sorozat

Cél: tranzakciók párhuzamos végrehajtása

Read S S:= S+1 Write S idő

Read S S:= S-1 Write S

Tranzakció = olyan folyamat, ami adatbázis

lekérdezéseket, módosításokat tartalmaz.

Az utasítások egy „értelmes egészt” alkotnak.

Egyetlen utasítást tartalmaznak, vagy az SQL-ben

explicit módon megadhatóak.

T1:

T2:

Adatbázisok-1 (Hajas Csilla, ELTE IK) 9.előadás: DBMS felépítése 12

Page 13: 9.előadás: Adatbázisok-I.sila.hajas.elte.hu/ABEA/09_adatb_hcs.pdf · (2) Adatmodell támogatása Az adatmodell a valóság fogalmainak, kapcsolatainak, tevékenységeinek magasabb

(6) Miért van szükség tranzakciókra?

(lásd 6.előadás idevágó részét is!)

Az adatbázis rendszereket általában több

felhasználó és folyamat használja egyidőben.

Lekérdezések és módosítások egyaránt

történhetnek.

Az operációs rendszerektől eltérően, amelyek

támogatják folyamatok interakcióját, az

adatbázis rendszereknek el kell különíteniük

a folyamatokat.

Adatbázisok-1 (Hajas Csilla, ELTE IK) 9.előadás: DBMS felépítése 13

Page 14: 9.előadás: Adatbázisok-I.sila.hajas.elte.hu/ABEA/09_adatb_hcs.pdf · (2) Adatmodell támogatása Az adatmodell a valóság fogalmainak, kapcsolatainak, tevékenységeinek magasabb

(6) Tranzakciók

Tranzakció = olyan folyamat, ami adatbázis

lekérdezéseket, módosításokat tartalmaz.

Az utasítások egy „értelmes egészt” alkotnak.

Egyetlen utasítást tartalmaznak, vagy az SQL-

ben explicit módon megadhatóak.

Adatbázisok-1 (Hajas Csilla, ELTE IK) 9.előadás: DBMS felépítése 14

Page 15: 9.előadás: Adatbázisok-I.sila.hajas.elte.hu/ABEA/09_adatb_hcs.pdf · (2) Adatmodell támogatása Az adatmodell a valóság fogalmainak, kapcsolatainak, tevékenységeinek magasabb

(6) A tranzakciók ACID tulajdonságai

Atomiság (atomicity): a tranzakció egységesen

lefut vagy nem, vagy az összes vagy egy utasítás

sem hajtódik végre.

Konzisztencia (consistency): a tranzakció futása

után konzisztens legyen az adatbázis,

megszorításokkal, triggerekkel biztosítjuk.

Elkülönítés (isolation): párhuzamos végrehajtás

eredménye egymás utáni végrehajtással egyezzen

meg

Tartósság (durability): a befejezett tranzakció

eredménye rendszerhiba esetén sem veszhet el

Adatbázisok-1 (Hajas Csilla, ELTE IK) 9.előadás: DBMS felépítése 15

Page 16: 9.előadás: Adatbázisok-I.sila.hajas.elte.hu/ABEA/09_adatb_hcs.pdf · (2) Adatmodell támogatása Az adatmodell a valóság fogalmainak, kapcsolatainak, tevékenységeinek magasabb

(6) COMMIT és ROLLBACK

A COMMIT utasítás a tranzakció sikeres befejeződését eredményezi. Egy sikeresen befejeződött tranzakció a kezdete óta végrehajtott utasításainak módosításait tartósan rögzíti az adatbázisban

vagyis a módosítások véglegesítődnek.

A ROLLBACK utasítás megszakítja a tranzakció végrehajtását, és annak sikertelen befejeződését eredményezi. Az így befejezett tranzakció SQL utasításai által végrehajtott módosításokat a rendszer meg nem történtekké teszi

Vagyis az összes utasítás visszagörgetésre kerül, a módosítások nem jelennek meg az adatbázisban.

Adatbázisok-1 (Hajas Csilla, ELTE IK) 9.előadás: DBMS felépítése 16

Page 17: 9.előadás: Adatbázisok-I.sila.hajas.elte.hu/ABEA/09_adatb_hcs.pdf · (2) Adatmodell támogatása Az adatmodell a valóság fogalmainak, kapcsolatainak, tevékenységeinek magasabb

(7) Konkurencia-kezelés

Zárolások (Lock, Unlock) T1: (Lock S, Read S, S:=S+1, Write S, Unlock S)

T2: (Lock S, Read S, S:=S-1, Write S, Unlock S)

A zár kiadásához meg kell várni a zár feloldását.

Csökken a párhuzamosíthatóság

Zárak finomsága (zárolt adategység nagysága, zárolás típusa) növeli a párhuzamosíthatóságot

Holtpont probléma:

Lock A Read A Lock B Read B C:=A+B …….

Lock B Read B Lock A Read A D:=A+B ……..

T1 vár T2-re B miatt

T2 vár T1-re A miatt

Adatbázisok-1 (Hajas Csilla, ELTE IK) 9.előadás: DBMS felépítése 17

Page 18: 9.előadás: Adatbázisok-I.sila.hajas.elte.hu/ABEA/09_adatb_hcs.pdf · (2) Adatmodell támogatása Az adatmodell a valóság fogalmainak, kapcsolatainak, tevékenységeinek magasabb

(8) Naplózás és helyreállítás

Szoftver- vagy hardverhiba esetén az utolsó

konzisztens állapot visszaállítása

Rendszeres mentések

Statikus adatbázis (módosítás nem gyakori)

Dinamikus adatbázis (módosítás gyakori)

Naplóállományok

Összefügg a tranzakció-kezeléssel

Adatbázisok-1 (Hajas Csilla, ELTE IK) 9.előadás: DBMS felépítése 18

Page 19: 9.előadás: Adatbázisok-I.sila.hajas.elte.hu/ABEA/09_adatb_hcs.pdf · (2) Adatmodell támogatása Az adatmodell a valóság fogalmainak, kapcsolatainak, tevékenységeinek magasabb

elemzés

átalakítás

szabályok alkalmazása

várható méretek becslése

fizikai tervek készítése

költségek becslése

a legjobb kiválasztása végrehajtás

{FT1,FT2,...}

{(FT1,K1),(FT2,K2),...}

FTi

eredmény

SQL lekérdezés

Elemző fa

logikai lekérdező terv

javított logikai lekérdező terv

logikai lekérdező terv és méretek

Statisztikák

(9) Lekérdezések végrehajtása optimalizálás

Page 20: 9.előadás: Adatbázisok-I.sila.hajas.elte.hu/ABEA/09_adatb_hcs.pdf · (2) Adatmodell támogatása Az adatmodell a valóság fogalmainak, kapcsolatainak, tevékenységeinek magasabb

Adatbázis-kezelők részei

Lekérdezés-feldolgozó Lekérdezés szintaktikai ellenőrzése

Adatbázis-objektumok létezésének, és a hozzáférési jogoknak az ellenőrzése (metaadatbázis, rendszertáblák)

Lekérdezés optimális átfogalmazása

Végrehajtási tervek készítése

Az adatstruktúrák, méretek statisztikái alapján várhatóan minimális költségű végrehajtási terv kiválasztása

Az optimális végrehajtási terv lefuttatása

Tranzakció-kezelő: Tranzakciók párhuzamos és biztonságos végrehajtásának

a tranzakciók ACID tulajdonságainak biztosítása

Tárkezelő és pufferkezelő fizikai adatstruktúrák, táblák, indexek, pufferek kezelése

Adatbázisok-1 (Hajas Csilla, ELTE IK) 9.előadás: DBMS felépítése 20

Page 21: 9.előadás: Adatbázisok-I.sila.hajas.elte.hu/ABEA/09_adatb_hcs.pdf · (2) Adatmodell támogatása Az adatmodell a valóság fogalmainak, kapcsolatainak, tevékenységeinek magasabb

Adatbázis-kezelő rendszer felépítése

Forrás:

Elmasri-Navathe: Fundamentals of Database Systems

Adatbázisok-1 (Hajas Csilla, ELTE IK) 9.előadás: DBMS felépítése 21

Page 22: 9.előadás: Adatbázisok-I.sila.hajas.elte.hu/ABEA/09_adatb_hcs.pdf · (2) Adatmodell támogatása Az adatmodell a valóság fogalmainak, kapcsolatainak, tevékenységeinek magasabb

Ullman-Widom Tankönyv 1.1. ábra

Egy adatbázis-kezelő rendszer részei

Adatbázis-kezelő rendszer felépítése

Adatbázisok-1 (Hajas Csilla, ELTE IK) 9.előadás: DBMS felépítése 22

Page 23: 9.előadás: Adatbázisok-I.sila.hajas.elte.hu/ABEA/09_adatb_hcs.pdf · (2) Adatmodell támogatása Az adatmodell a valóság fogalmainak, kapcsolatainak, tevékenységeinek magasabb

Kérdés/Válasz

Köszönöm a figyelmet! Kérdés/Válasz?

Adatbázisok-1 (Hajas Csilla, ELTE IK) 9.előadás: DBMS felépítése 23