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ároljuk és rendszerezzük, hogy egyszerűen lehessen kezelni és elérni őket. 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 adatbázis-kezelő 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 nyitvatartási ideje. Minden információ, amit a kedvenc éttermünkről összegyűjtünk és tárolunk, adat.
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 adatbázis elemeit a csomópontok hierarchikus adatbázisába szervezik olyan szülő-gyermek kapcsolatokban, amelyek egyetlen gyökércsomópontból származnak.
Gráf
A gráfstruktúrák az adatbázis elemeit egy nem hierarchikus csomóponthálózatba szervezik, amelyben az elemek összetett kapcsolatokban állnak egymással.
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 oszlopokat és sorokat tartalmazó táblákat használnak. 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 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 átmeneti helyen tároljuk, így 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éknek vannak különféle attribútumai. 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 készlet é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ásokkal, akkor egy közösségi gráfnak válik részévé. 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 elterjedtté 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önféle adatbázis-kezelő rendszerek eltérő rendszerezhető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 attól is függ a használandó DBMS, 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.
Azadatai a helyszíni környezetben, a felhőben vagy mindkettőben találhatók?
A helyszíni adatbázisokban az adatok saját helyi hardveren találhatók (ezt gyakran magánfelhő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, 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ű objektumban. 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ó.
Vertikális felskálázással vagy horizontális felskálázással fogja bővíteni a rendszert az adatok gyarapodása miatt?
A vertikális skálázás(angolul scale up/down) során erőforrásokat (például memóriát vagy erősebb 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 fejlesszük tovább a rendszert, 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.
Ismerkedjen meg az Azure-ban elérhető adatbázisokkal, és válasszon szükségletei szerint
Információk az adatbázisok Azure-ba migrálásáról
Felügyelt felhőbeli adatbázis létrehozása az ingyenes Azure-fiókjá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.
Ismerkedjen meg az Azure-ban elérhető adatbázisokkal, és válasszon szükségletei szerint
Ismerkedés az Azure SQL Database szolgáltatással
Ismerkedjen meg az Azure SQL alapjaival egy képzési terv elvégzésével
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ű adatbázis-biztonságot élvezhet.
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.
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.
Kezdje meg a fejlesztést az Azure-ban
30 napig ingyen próbálhatja ki az Azure felhőalapú számítási szolgáltatásait, de használatalapú fizetéssel azonnal használatba is veheti őket. Nincs előzetes kötelezettségvállalás – bármikor lemondható.