Adatbázis rendszerek 7. előadás State of the art Molnár Bence
Szerkesztette: Koppányi Zoltán
Osztott adatbázisok
Osztott rendszerek —
Mi is ez?
—
Mi teszi lehetővé?
—
—
—
Nagy sebességű hálózat
—
Egyre olcsóbb, és gyorsabb processzorok
Alkalmazásának okai: —
Gazdaságosság (vs. Szuperszámítógép)
—
Hatalmas számítási kapacitás
—
Nagyobb megbízhatóság
—
Különböző megoldások összekapcsolása (SOA)
Kihívások, megoldások
Elosztott adatbázisok —
Fizikailag különböző helyen tároljuk az adatokat, logikailag azonban egységes
—
Előnyök:
—
—
Kommunikációs költség csökkenése
—
Csomópont kiesése esetén is elérhető (robusztusabb)
—
Moduláris tervezés, rugalmas konfigurálás (skálázhatóság)
—
Egyszerűbb karbantartás
Hátrányok: —
Bonyolultabb rendszer
—
Többféle hardver és szoftver megoldás
—
Bonyolult jogosultság kezelés
Adatbázisok a felhőben
A felhő —
Mi az a felhő?
—
A felhő modelljei: —
IaaS (Infrastrktúra, mint szolgáltatás) Amazon EC2, Windows Azure Compute Engine PaaS (Platform, mint szolgáltatás)
—
—
Windows Azure, Google AppEngine, Foundry SaaS (Szoftver, mint szolgáltatás)
—
—
VM,
—
Google
Cloud
Google Apps, Facebook, Microsoft Office 365, OnLive
A felhő
A felhő
Adatbázisok a felhőben — Adatbázis —
Oracle DB, CouchDB,...
— Adatbázis —
virtuális gépen PostgreSQL,
MySQL,
mit szolgáltatás
Amazon Dynamo, Google Store, Microsoft SQL Azure
App
Engine
Adatbázis hozzáférés
Szabványos meghajtók — Cél:
adatbázis és operációs független módon az adatbázisok kezelése
— Szabványos
meghajtók (driver)
— Nem
csak adatbázisokhoz, de fájlokhoz is hozzáférhetünk (pl. CSV, XLS, stb...)
— ODBC
(Open Database Connectivity): MS által támogatott
— JDBC — FDO
(Java Database Connectivity)
(Feautre Data Objects)
Szabványos meghajtók C/C++
Matlab, PHP, Ruby, ...
Java, .NET, ...
Meghajtó (ODBC, JDBC, FDO, ...)
PostgreSQL, MySQL, ...
Microsoft Jet (Access)
CSV, egyéb...
Téradatok, Téradatbázisok (FDO esetén)
Adatbázis elérés Matlab-ból — Database — ODBC
Toolbox
és JDBC támogatás
— Táblák
mátrixba fel- és letöltése
— Database
Explorer App
Adatbázis elérés Matlab-ból (JDBC) % 1. JDBC drivert letölteni, pl.: PostgreSQL: http://jdbc.postgresql.org/download.html % 2. JAR fájlt hozzá kell adni a classpth.txt-hez % 3. Beállítani a kapcsolódáshoz rendelt lejárati időt (opc.) Logintimeout(5); setdbprefs('DataReturnFormat','cellarray'); % Kapott adatok típusa % 4. Kapcsolódás az adatbázishoz connA=database('database', 'username', 'org.postgresql.Driver', ...
'password',...
'jdbc:postgresql://localhost/'); % 5. Ellenőrizzük, hogy a kapcsolat sikeres volt-e (opc.) ping(connA);
Adatbázis elérés Matlab-ból (JDBC) % 6. Lekérdezés futattása selCols = ['packetid, b0, b1, b2, b3, b4, b5, b6']; cursorA=exec(connA, [' select ' selCols ' from exp1']); % 7. Adatok megszerzése a lekérdezésből %cursorA=fetch(cursorA, 10); cursorA=fetch(cursorA); % 8. Adatok kinyerése DataMat = cursorA.Data; % 9. Kapcsolat és kurzor zárása (erőforrás felszabadítás) close(cursorA); close(connA);
Félig-struktúrált adatbázisok
Jellemzők — Nincs
külön választva az adat és a séma
— Előnyök: —
A séma nem köti meg az információt
—
Flexibilis formátum: a séma könnyen változtatható
—
Az adat átvitel portolható
—
A lekérdezések nem olyan hatékonyak, mint az SQL esetén
—
pl.: OEM (Object Exchange (Extnesible Markup Language)
Model),
XML
XML — Szabványos — Formátuma —
Tag:
—
Önlezáró tag:
—
A tagek egymásba ágyazhatók, de nem lehetnek átfedők pl.:
—
Egyetlen gyökér elem
—
XML deklaráció, feldolgozó utasítások és megjegyzések
—
XML Séma: XSD
—
XHTML
XML Wikipédiáról:
Egyszerű kenyér <összetevő mennyiség="3" egység="csésze">Lisztösszetevő> <összetevő mennyiség="10" egység="dekagramm">Élesztőösszetevő> <összetevő mennyiség="1.5" egység="csésze">Meleg vízösszetevő> <összetevő mennyiség="1" egység="teáskanál">Sóösszetevő> Keverj össze minden összetevőt, aztán jól gyúrd össze! Fedd le ruhával és hagyd pihenni egy óráig egy meleg szobában! Gyúrd össze újra, helyezd bele egy bádog edénybe, aztán süsd meg a sütőben!
XQuery — Lekérdező
nyelv
— XPATH — FLWOR
kifejezések:
—
FOR $valt IN kif_csompont_halmaz
—
LET $valt_egyetlen_ertek := kif_ertek
—
WHERE kif_szelekcio
—
ORDER BY kif_rendezes
—
RETURN kif_eredmeny
XQUERY példa for $product in doc("catalog.xml")/catalog/product let $name := $product/name where $product/@dept = "ACC" order by $name return $name
Dokumentum orientált adatbázisok — Dokumentumokat — Szabványos
tárolunk
formátumban
XML, JSON, stb... — vagy bináris: PDF, MS Office, stb... — Minden dokumentum egy egyedi azonosítóval rendelkezik (pl.: URI) —
Házi rendszer
Kérdésfelvetések —
Elemzéshez adatra van szükség —
Adatforrás?
—
Elemzés értéket képvisel
—
Privacy – személyiségi jogok —
Szolgáltató
—
3rd-party
—
Man in the middle Free wifi — HTTP/HTTPS Több helyen használt jelszó —
—
— —
Több adatbázishoz való hozzáférés Direkt összekapcsolt account
Relációs adatbázis séma diagram
Elemzési lehetőségek —
—
Házi statisztika —
Beadott/Átnézett… feladatok száma
—
Osztályozás: átlag, min, max, sorsolás
ZH statisztika —
Javított dolgozatok száma
—
Osztályzás: átlag, min, max
—
A/B csoport: db, nehézség
—
Házi-ZH korreláció
—
Házi beadási időpont és minőség közti korreláció
—
Idő alapú statisztika (aktivitás)
—
Lakhely, évfolyam, nemek, szobatársak szerinti statisztika
—
GPS, IP alapú statisztika
—
Platform, böngésző statisztika
Lekérdezések —
Hallgatók száma: 168 [83] [75] [5] [4] [1]
—
Beadott 1. feladatok száma: 160 (529 verzió)
—
1. feladathoz csatolt fájlok száma: 152 (296 verzió)
—
Átnézett 1. feladatok száma: 160
—
Beadott 2. feladatok száma: 3 (3 verzió)
—
Átnézett 2. feladatok száma: 0
—
Üzenetek száma: 50
—
Javított ZH-k száma: 101 min: 11 max: 49 átlag: 35.42
—
Oldalletöltés: 12163 hit
—
Bináris adatmennyiség: 205.95 MB
Aktivitás
Köszönöm a figyelmet! Adatbázis rendszerek