Navigáció kihagyása

Mik azok az adatbázisok?

Adatbázisok definíciói, típusai és példái

Mik azok az adatbázisok?

Minimális definícióként azt mondhatjuk, hogy az adatbázis egymáshoz kapcsolódó információk bármilyen gyűjteménye. Ha egy bevásárlólistát írunk fel egy papírlapra, máris egy kis analóg adatbázist hozunk létre. De mit nevezünk adatbázisnak a számítástudományban? Itt az adatbázist úgy definiáljuk, mint információk olyan gyűjteményét, amelyet adatokként tárolunk egy számítógépes rendszeren. Ilyen lehet többek között a környékbeli szupermarket készletleltára is.

Mire használhatók az adatbázisok?

Az adatbázisokat arra használjuk, hogy az adatokat úgy tárolják és szervezzék, hogy azokat egyszerűen lehessen kezelni és elérni. Ahogy az adatok gyűjteménye növekszik és bonyolultabbá válik, úgy lesz egyre nehezebb az is, hogy az adatokat megfelelően rendszerezzük, hogy elérjük őket és hogy gondoskodjunk a biztonságukról is. Ebben a feladatban segít az adatbázis-kezelő rendszer (angolul „database management system”, betűszóval DBMS), amely felügyeleti eszközöket tartalmaz.

Mit jelent az adat?

Adatnak nevezünk bármely olyan információt, amelyet rögzítünk és tárolunk például egy személyről, egy tárgyról, egy objektumról (ezeket entitásoknak hívjuk), de adatnak nevezzük az entitások jellemzőit (azaz attribútumait) is.

Ha például a helyi éttermekről rögzítünk és tárolunk információkat, akkor minden egyes étterem egy entitás lesz, és az entitás attribútumai lesznek az étterem neve, a címe és a nyitva tartási ideje. Minden információ adat, amit a kedvenc éttermünkről összegyűjtünk és tárolunk.

Az adatbázisok típusai

Az adatbázisokat nagy vonalakban relációs és nem relációs típusokra oszthatjuk. A relációs adatbázisok nagy mértékben strukturáltak, és értelmezni tudják a Structured Query Language (magyarul strukturált lekérdezőnyelv), azaz az SQL nevű programnyelvet. A nem relációs adatbázisok rendkívül változatosak, és számos különböző adatstruktúrát támogatnak. Számos nem relációs adatbázis nem használ SQL-t, ezért ezeket gyakran NoSQL-adatbázisoknak is nevezik.

Az adatstruktúrák típusai

A táblastruktúrák relációs adatbázisstruktúrák, amelyek sorokba és oszlopokba rendezik az adatokat. A sorok az entitásokat tartalmazzák, az oszlopok pedig az entitások attribútumait. A széles táblák vagy széles oszlopos tárak üres attribútumokkal rendelkező ritka oszlopokat használnak, amivel jelentősen megnövelik a táblában elhelyezhető oszlopok teljes számát. Mivel ezeknél bizonyos helyek üresen maradnak, a széles táblákat nem relációs adatbázis-struktúráknak is tekinthetjük.

A lineáris struktúrák egy szekvenciába rendezik az elemeket.

Tömb

Hivatkozott lista

Bináris fa

A fastruktúrák az elemeket a csomópontok hierarchikus adatbázisába szervezik olyan szülő-gyermek kapcsolatokba, amelyek egyetlen gyökércsomópontból származnak.

Gráf

A gráfstruktúrák az elemeket egy nem hierarchikus csomóponthálózatba szervezik, amelyben az elemek egymással összetett kapcsolatokkal rendelkeznek.

Kivonattábla

A kivonatalapú struktúrák kulcsokat képeznek le értékekre olyan kivonatfüggvények használatával, amelyek a kapcsolódó adatokat úgy társítják egymáshoz, hogy indexeket rendelnek a kivonattáblákhoz.

Dokumentumorientált adatbázisok

A dokumentumorientált adatbázisok az egy entitással kapcsolatos információmennyiséget egyetlen objektumba szervezik (a dokumentumba), amely elkülönül magától az objektumtól. Az objektumokat nem kell egymáshoz viszonyítva leképezni, és egyetlen objektum szerkeszthető anélkül, hogy ez hatással lenne a többi objektumra.

Relációs adatbázisok

A relációs adatbázis a leggyakoribb típus, amelyben az adatok olyan táblákba vannak szervezve, amelyek minden egyes entitásról információkat tárolnak, és előre meghatározott kategóriákat tartalmaznak sorokban és oszlopokban. Ezek a strukturált adatok egyszerre hatékonyak és rugalmasan elérhetők.

Relációs adatbázis például az SQL Server, az Azure SQL, a MySQL, a PostgreSQL és a MariaDB.

Nem relációs adatbázisok

A nem relációs adatbázisok strukturálatlan és félig strukturált adatokat tárolnak. A relációs adatbázisokkal ellentétben nem használnak oszlopokat és sorokat tartalmazó táblákat. Ehelyett olyan tárolási modellt használnak, amely a tárolt adatok típusának speciális követelményeire van optimalizálva. A nem relációs adatbázisok lehetővé teszik, hogy gyorsan lehessen elférni, frissíteni és elemezni elosztott adatok nagyobb csoportját.

Nem relációs adatbázisok például a MongoDB, az Azure Cosmos DB, a DocumentDB, a Cassandra, a Couchbase, a HBase, a Redis és a Neo4j.

Bizonyos nem relációs adatbázisokat NoSQL-adatbázisoknak nevezünk. A NoSQL itt arra utal, hogy a lekérdezésekhez nem használunk SQL-t, vagy nem csak SQL-t használunk hozzájuk. A NoSQL-adatbázisok ehelyett más programnyelveket és szerkezeteket használnak az adatok lekérdezéséhez. Ezzel együtt azonban számos NoSQL-adatbázis támogatja az SQL-kompatibilis lekérdezéseket is, ezeket a lekérdezéseket azonban nem úgy hajtják végre, mint ahogy a hagyományos relációs adatbázisok hajtják végre az SQL-lekérdezéseket.

A nem relációs adatbázisok egyik típusa – az objektum-adatbázis – objektumorientált programozást használ. Az objektumok olyan állapottal (tényleges adatokkal) vannak kódolva, amely egy mezőben vagy változóban vannak tárolva, és egy olyan viselkedéssel, amely egy metódussal vagy egy függvénnyel megjeleníthető. Az objektumokat lehetséges egy perzisztens tárhelyen örökre tárolni, és ezek közvetlenül beolvashatók és leképezhetők API vagy eszköz használata nélkül, ami miatt az adatok gyorsabban érhetők el, és jobb lesz a teljesítmény is. Az objektum-adatbázisok azonban kevésbé népszerűek, mint más adatbázistípusok, és a támogatásuk is nehézkes lehet.

Memóriabeli adatbázisok és gyorsítótárak

A memóriabeli adatbázisban található összes adat a számítógép RAM-jában van tárolva. Az ilyen típusú adatbázis lekérdezésénél vagy frissítésénél közvetlenül a főmemóriát érjük el. Nincsenek lemezműveletek. Az adatok gyorsan betöltődnek, mert a főmemória elérése (amely az alaplapon a processzor közelében található) sokkal gyorsabb, mint a lemezek elérése.

A memóriabeli adatbázisokat leginkább a gyakran használt információk, például díjszabás vagy leltáradatok tárolására használják. Ezt gyorsítótárazásnak hívjuk. Amikor gyorsítótárazzuk az adatokat, akkor az adat egy példányát egy ideiglenes helyen tároljuk, így az a következő lekéréskor gyorsabban betöltődik. További információ a gyorsítótárazásról.

Adatbázispéldák

Az adatbázisok olykor láthatatlan rejtélyeknek tűnhetnek, a legtöbben azonban nap mint nap használjuk őket. Az alábbiakban néhány példát mutatunk be relációs adatbázisokra, NoSQL-adatbázisokra és memóriabeli adatbázisokra:

Pénzügyi tranzakciók

A bankok adatbázisokat használnak az ügyféltranzakciók nyomon követésére – ebbe beletartozik minden az egyenlegek lekérdezésétől kezdve a számlák közötti átutalásokig. Ezeknek a tranzakcióknak szinte azonnal meg kell történniük, és az óriási mennyiségű tranzakcióból származó adatoknak mindig naprakésznek kell lenniük. Erre a célra a bankok relációs adatbázisokra épülő online tranzakciófeldolgozási rendszereket használnak, amelyek képesek kezelni a sok ügyfelet és a tranzakciók gyakori adatváltozásait, és gyors válaszidőt tesznek lehetővé.

E-kereskedelmi katalógusok

Egy e-kereskedelmi webhely esetén a katalógusban megtalálhatók az egyes termékek, és mindegyik termék saját attribútummal rendelkezik. A dokumentumorientált adatbázisok – mint például a nem relációs adatbázisok – különálló dokumentumokkal írják le egyetlen termék összes attribútumát. A dokumentumban az attribútumokat a többi termék befolyásolása nélkül módosíthatjuk. A memóriabeli adatbázisokat sokszor használják a gyakori elérésű e-kereskedelmi adatok, például a leltárak és a díjszabások gyorsítótárazására, hogy ezzel felgyorsítsák az adatlekérést, és csökkentsék az adatbázis terhelését.

Közösségi hálózatok

Amikor csatlakozik egy közösségi hálózathoz, az adatai bekerülnek egy nem relációs adatbázisba, amely az adott hálózat felhasználóit tartalmazza. Ha kapcsolatba kerül a hálózaton más személyekkel, akkor Ön egy közösségi gráf része lesz. Ez teszi lehetővé, hogy megtekinthesse a barátok szűrt listáját vagy a szakmai kapcsolatait, és hogy olyan új barátokat is találjon, akiket a barátai és más kapcsolatai már ismernek.

Személyre szabott eredmények

A nem relációs adatbázisok támogatják az online személyre szabási lehetőségeket, és ez annyira elterjedté vált, hogy már szinte észre sem vesszük. Ha egy utazási webhelyen repülőjegyet foglalunk, a szállodai és az autókölcsönzési lehetőségek is megjelennek. A webhely adatbázisa rengeteg strukturálatlan információt tartalmaz – a repülőjárat adatait, az utazási beállításokat, az előző autó- vagy szállodafoglalásokat –, amelyek alapján személyre szabott javaslatokat kapunk, és ezzel időt, pénzt és munkát takaríthatunk meg. A memóriabeli adatbázisokat a munkamenetek tárolására is használják, mert hatékonyan lehet velük tárolni az ideiglenes felhasználói adatokat az alkalmazás használatának idejére, például a beállításokat vagy a bevásárlókocsit.

Üzleti elemzés

Ha a szervezetek a saját adataikból kívánnak betekintő adatokhoz jutni, a relációs adatbázisok segítenek az elemzések kezelésében. Egy technológiai ügyfélszolgálat például különböző szempontokból követheti nyomon az ügyfelek problémáit, beleértve a probléma típusát, a probléma megoldásához szükséges időt és az ügyfelek elégedettségét. A táblázatos struktúrát használó relációs adatbázisok egyszerre csak két dimenzióval rendszerezik az ügyfélproblémák adatait. Egy online analitikus feldolgozási rendszer esetén azonban a támogatási ügyfélszolgálat egyszerre több táblát is meg tud vizsgálni, így a többdimenziós elemzésnek köszönhetően nagy mennyiségű adatot lehet nagy sebességgel feldolgozni.

Adatbázis-kezelő rendszerek

Az adatbázisgazdák adatbázis-kezelő rendszerekkel (DBMS) vezérlik az adatokat – különösen akkor, ha big data típusú adatokkal dolgoznak. A big data olyan nagy mennyiségű strukturált és strukturálatlan adatot jelent, amelyet a rendszer gyakran valós időben vagy csaknem valós időben fogad. A DBMS abban is segít, hogy olyan adatokat kezeljünk, amelyeket több alkalmazás is használ, vagy amelyek több helyen vannak tárolva.

A különböző felügyeleti rendszerek különböző szervezhetőségi, skálázhatósági és alkalmazásszinteket kínálnak. A rendszerezni kívánt adatok típusa és elérésének módja mellett a használandó DBMS attól is függ, hogy hol találhatók az adatok, hogy milyen típusú architektúrát használ az adatbázis, és hogy Ön hogyan tervezi a skálázást.

Az Ön adatai a helyszíni környezetben, a felhőben vagy mindkettőben találhatók?

A helyszíni adatbázisokban az adatok helyi privát hardveren találhatók (ezt gyakran privát felhőnek is nevezik). Ha több adatkapacitást szeretnének hozzáadni, az adatbázis adminisztrátorainak gondoskodniuk kell arról, hogy a helyszíni kiszolgálókon legyen elég rendelkezésre álló hely, vagy pedig új hardverekkel kell bővíteniük az infrastruktúrát, hogy elegendő helyet biztosítsanak.

A felhőalapú adatbázisokban a strukturált és a strukturálatlan adatok privát, nyilvános vagy hibrid felhős (azaz a privát ás a nyilvános felhőtárhelyet ötvöző) számítási platformon találhatók. Mivel a felhőalapú adatbázisok virtualizált környezethez vannak kialakítva, azok nagy mértékben skálázhatók és magas a rendelkezésre állásuk is. Emellett a költségek csökkentésében is segítenek, mivel nem kell annyi hardvert vásárolni, és csak a használt tárhelyért kell fizetni.

Az Ön adatbázis-architektúrája központosított, elosztott vagy összevont?

Egy központosított adatbázisban minden adat egyetlen rendszerben, egy helyen található. Ez az egyetlen rendszer minden felhasználó hozzáférési pontja.

Az elosztott adatbázis kiterjedhet mind a relációs, mind a nem relációs adatbázistípusokra. Az elosztott adatbázisokban az adatok több fizikai helyen vagy több helyszíni számítógépen vannak tárolva, vagy el vannak osztva összekapcsolt számítógépek hálózatán.

Az összevont adatbázisokban független kiszolgálókon futó több különálló adatbázist egyesítenek egyetlen nagy méretű objektumba. A blokklánc az összevont adatbázisok olyan típusa, amely a pénzügyi tranzakciós naplók és más tranzakciós rekordok biztonságos kezelésére használható.

Növekedni fognak az adatok a vertikális skálázásnál?

A vertikális skálázás (angolul scale up/down) során erőforrásokat (például memóriát vagy hatékonyabb processzorokat) adunk hozzá a meglévő kiszolgálóhoz.

A horizontális skálázás (angolul scale out/in), több gépet ad hozzá az erőforráskészlethez.

A horizontális skálázás a vertikális skálázással szemben meghosszabbítja a meglévő hardverek életciklusát, lehetővé teszi, hogy szállítótól függetlenül frissíthessünk, csökkenti a költségeket, és hosszú távon is lehetővé teszi a rugalmasságot.

Azure-adatbázisok

Az adatműveleteket olyan teljes mértékben felügyelt adatbázisokkal egyszerűsítheti le, amelyek automatizálják a skálázhatóságot, a rendelkezésre állást és a biztonságot. Relációs, NoSQL-, és memóriabeli adatbázisok széles skálájából választhat mind jogvédett, mind nyílt forráskódú motorok használatával.

Ismerje meg az Azure SQL adatbázis-családját

Az SQL-portfólióját a kompatibilitás feláldozása nélkül egységesítheti. Az alkalmazásokat saját igényei szerint migrálhatja, modernizálhatja és helyezheti üzembe a peremhálózattól kezdve a felhőig, és a már ismerős SQL Server-technológiát használhatja.

Magabiztos skálázás az Azure Database for PostgreSQL-lel

Az Azure Database for PostgreSQL segítségével gyorsan és megbízhatóan skálázhatja a számítási feladatokat magas rendelkezésre állás mellett, és AI-alapú teljesítményoptimalizálást és magas szintű biztonságot élvezhet.

További információ az Azure PostgreSQL-ről

Nagy teljesítményű alkalmazások létrehozása az Azure Cosmos DB-vel

Az Azure Cosmos DB egy teljes mértékben felügyelt NoSQL-adatbázis nyitott API-kkal és garantált sebességgel bármilyen mérethez.

További tudnivalók az Azure Cosmos DB-ről

Nagy adatforgalom kezelése az Azure Cache for Redisszel

Az Azure Cache for Redis használatával egyszerre több ezer felhasználót kezelhet közel valós idejű sebességgel azzal, hogy egy gyorsan működő gyorsítótárazást ad hozzá az alkalmazás infrastruktúrájához.

További információ az Azure Cache for Redisről