Mi alapján választunk a relációs adatbázisok közül?
A relációs adatbázisok kötelezően elvárható és opcionális képességei
Az adatbázis kezelő rendszer költsége
Licenszdíj
Support díj
Saját gépeken való használat licenszdíja,
vagy felhőből bérelt szolgáltatás bérleti díja
Esetleges adatvesztésből fakadó károk
Tervezett vagy tervezetlen állásidőből fakadó üzleti károk
A szükséges hardver költsége
Az üzemeltető személyzet költségei
TCO mutató
Megbízhatóság
Kiforrottság, megbízhatóság
Minden szoftver bug-os
A jó szoftver az,
amelyet már mások is alkalmaztak
ugyanolyan célokra,
ugyanolyan körülmények között
Ha bármi kételyünk van,
az interneten találunk róla valamit
„Olyan az adatbázis kezelő, mint a jó bor:
minél öregebb, annál jobb”
Elterjedtség
A jó adatbázis kezelőt rajtunk kívül
sokan használják a környezetünkben
Elosztott tranzakciókezelés
A két adatbázis közötti kommunikáció
Két azonos adatbázis kezelő rendszer
közötti megbízható adatátvitel
Két különböző gyártó rendszere között
XA tranzakciók támogatása
Szükséges a megbízható tranzakciókezelés egy adatbázis kezelő rendszer és egy másik szoftver között.
XA protokoll
Szabványok betartása
A relációs adatbázisok de-facto szabványa az SQL
Ezen belül is előny,
ha minél inkább betartja a gyártó
az SQL szabvány részleteit is
Fontos, hogy minél több dolgot támogasson
A támogatott programozási nyelvek
A jó adatbázis kezelő rendszernek
minél több nyelvet kell támogatnia
Java nyelvhez: JDBC
Microsoft: C, C#, .NET támogatás szinte kötelező
PHP támogatás is előny
Beágyazott SQL
Hardver és operációs rendszer támogatása
A jó adatbázis kezelő nem csak egy hardveren fut
Támogatja a virtualizációt
Előny, ha működik Windows, Linux,
Solaris, AIX, HP-UX, esetleg VMS
operációs rendszereken is.
A szoftver "mobilitása"
A későbbi platformváltások könnyűek kell,
hogy legyenek
Embedded Database
Mobile Database
Adattípusok széleskörű támogatása
XMLType
User Defined Data Type
Új objektumtípusok és objektumok tárolása
(attribútumokkal és metódusokkal)
Saját gépterem, vagy felhő
Platform as a Service
Karakterkészlet
Unicode
Kódolás
UTF-8
UTF-16
UCS-2
A jó adatbázis kezelő rendszerben lehetséges a kódkonverzió az egyéb (régi) karakterkészletekről Unicode-ra
A jó adatbázis kezelőben ez a konverzió állásidő nélkül vagy rövid állásidővel elvégezhető.
A jó adatbázis kezelő rendszerben nem nő számottevően a helyigény a Unicode miatt (tehát UTF-8 választható)
Procedurális lehetőségek
Algoritmusok
Így a feldolgozás az adatok „közelében” történhet
Így kiterjeszthető az adatbázis kezelő rendszer funkcionalitása
Maga a gyártó is fejleszthet ilyen kiterjesztéseket
A felhasználó kifejlesztheti a saját kiterjesztéseit
A kényszerek halmaza is kibővíthető így
PL/SQL
Java
Adatbázis triggerek
Pre-INSERT triggerek
Post-INSERT triggerek
DELETE és UPDATE esetére is
hasznosak a triggerek
Nemcsak DML triggerek léteznek
A triggerek feltételezik azt,
hogy a procedurális nyelv már rendelkezésre áll
Az SQL-en túl
A funkcionalitás kiterjesztése SQL-en túlra
Gyártó is biztosíthatja
Közösségi fejlesztések
Milyen segédeszközök léteznek
A gyakorlatban felmerül az igény különböző nem-SQL feladatok egyszerű és hatékony elvégzésére, például:
Adatok betöltése az adatbázistáblákba
szöveges fix formátumú állományokból
CSV („Comma Separated Values”) fájlokból
Excell táblákból
XML állományokból
Adatok igény szerinti áthordozása adatbázistáblákból bináris állományokba és később ezek visszatöltése ugyanabba, vagy másik adatbázisba
Például Oracle esetén ezek az eszközök a következőek:
SQL*Loader
Oracle Data Pump
Helyreállíthatóság
Mentési mechanizmus
A helyreállítás ideje
Könnyű feladat legyen
Mindere gondolni kell
Nem létezik teljesen biztos megoldás
Katasztrófatűrés
Távoli adatbázis-másolatok
DataGuard
Hatékonyság
Performancia (gyors működés)
Performancia versenyek
Az új verzió szinte mindig lassabb az előzőnél
Skálázhatóság
Lineáris skálázhatóság
RAC
Magas rendelkezésre állás
Állásidő
Betervezett (előre bejelentett)
Nem betervezett (valamilyen hiba miatt)
RAC opció
Problémás szoftverfrisítések
Biztonság
Adatok titkosítása
Feltörési lehetőségek, adatlopások
Minden adatlopás egy tragédia. Sok esetben a következmény a cég megszűnése.
Nem létezik 100%-os biztonság
Mégis érdemes felmérni a választás előtt, hogy az adott szoftvert milyen gyakran törik fel? Hány incidens került nyilvánosságra az elmúlt években?
Hogyan reagál a szoftvergyártó, ha kiderül 1-1 sebezhetőség? Milyen gyorsan oldják meg a problémát?
Megtesz-e a gyártó eleget ahhoz, hogy megelőzze az újabb sebezhetőségek kialakulását?
Csupán „Denial-Of-Service” típusú sérülékenységekről beszélnek, vagy komoly adatlopások, adatmódosítások is történhetnek (pl. „SQL Injection”)?
Mennyire védettek az adatok a DBA-tól
Egy komoly és eldöntendő kérdés, hogy veszélyforrásként tekint-e a cég a rendszergazdákra, vagy nem
Ha félünk a DBA-k és az operációs rendszerek rendszergazdáinak a jogosultságaitól, akkor vajon létezik-e olyan szoftververzió, ahol a DBA és a rendszergazda sem férhetnek hozzá az adatokhoz
Az Oracle adatbázis esetén ezt a megoldást Oracle Database Vaultnak nevezzük.
A használat auditálása
Konfigurálhatóság
Hatékony elemzési lehetőségek kellenek az „Audit Record”-ok felett.
Fontos, hogy az auditálásnak legyen értelme
A mentések sokszínűsége
A jó adatbázis kezelő rendszernek saját mentési programja kell, hogy legyen
Hatékony mentési módszerre van szükség
Teljes és inkrementális mentésre is legyen lehetőség
A mentés elvégezhető legyen online
A mentési katalógus is nagyon hasznos
Fontos, hogy lemezre és szalagos mentőegységre is lehessen menteni
Lényeges, hogy mások eszközeivel (módszereivel) is lehessen adatbázist menteni.
Monitorozás
Szakember általi monitorozás, hangolás lehetősége
Nagyon fontos, hogy ez a monitorozhatóság SELECT utasításokkal történjen
Automatikus monitorozás és hangolás
Nő a „monitoring”, mint tevékenységi kör jelentősége
Automatikus monitorozás
A jó rendszerek saját magukat figyelik belülről
Az igazán jó rendszerek nemcsak riasztanak, hanem megoldást is javasolnak, sőt esetleg a javasolt változtatást meg is teszik automatikusan.
A gyártó tulajdonságai
A szoftver fejlődésének a képessége és üteme
Az igények folyamatosan bővülnek és változnak
Azt a szoftvert el kell kerülni, amelynek a gyártója nem fejleszti azt nagy tempóban
Egyes szoftverek nagyon gyenge lábakra épültek, és ezért nem tudnak továbbfejlődni
Másik probléma lehet, ha a kód már ősrégi, és most már csak nehezen karbantartható
Fontos kérdés, hogy milyen programozási nyelvet használtak az adatbázis kezelő rendszer gyártói
A szoftvertámogatás minősége
„Bugs are facts of life”
Ha már vannak hibák, kritikus kérdés, hogy van-e aki javítsa őket?
Hányan és hány problémát oldanak meg a termék gyártójánál? A mi problémánkat jellemzően megoldják-e és ha igen, mennyi idő alatt?
A „support” általában borsos áron történik
A támogatás nemcsak a téves kódra, hanem a téves használatra is kiterjed-e vajon, tehát segítenek-e a felhasználónak akkor is, ha ő hibázott, nem a szoftver volt rossz?
Azok a képességek, amelyekkel mindegyik relációs adatbáziskezelőnek rendelkeznie kell
Táblák, nézetek
SQL nyelv: DDL, DML, Query
Tranzakciókezelés
ACID képességek:
Atomi tranzakciók (Atomicity)
Konzisztencia (Consistency)
Izoláció (Isolation)
Tartósság (Durability)
Kényszerek
Adatszótár
Optimalizáló (automatikus végrehajtási terv generátor)