SQL vagy nem (csak) SQL ezt itt a kérdés!

avagy

Hosszú az út a tábláktól a halmazokig.

 

Manapság szinte minden adatot számítógépen tartunk, pont ezeket az adatokat valamilyen módon rendszerezetten kell tárolni ahhoz, hogy később használni tudjuk őket. Ezeket a rendezett eltárolt adatokat hívjuk adatbázisoknak és azokat a programokat, amely ezeket az adatokat kezelik adatbázis kezelő programoknak.

Az adatbázisoknak és az adatbázis kezelő programoknak hosszú a történelme. Még a múlt században először az úgynevezett hierarchikus vagy hálós adatbázisokat kezdték el használni kifejleszteni. Egy CODASYL nevű cég dolgozta ki az első ilyen hierarchikus adatbázis kezelő programot. Ez a típusú adatbázis nagyon hasonlít a ma használatos mappa könyvtárstruktúrákhoz, itt az adatok között alá fölérendeltség van valamilyen fa szerkezet alakul ki, amiben rendezni tudjuk az eltárolt adatokat.

Rájöttek azonban, hogy ez a struktúra nehezen kezelhető nem mindig az alapján akarjuk visszakeresni az adatot, hogy hol melyik könyvtárban található hanem nagyon gyakran csak az adatnak a nevére a fájlnak a nevére emlékezünk és ez alapján szeretnénk megtalálni. Ez egy ilyen hierarchikus rendszerben elég bonyolult ezért külön programokat. Írtak rá ilyen például a find program. Ahogy rájöttek, hogy valójában az adatot különböző az adat attribútumai alapján szeretnék megtalálni tehát relációkat szeretnénk mondani az adat neve és helye, vagy az adattartalma alapján szeretnénk elő keresni. Ekkor jött elő az úgynevezett relációs adatbáziskezelő kifejlesztésének igénye.

A relációs adatbázis kezelőkben az adatokat táblákban rendezzük minden táblában vannak rekordok vagy sorok és minden sorban vannak oszlopok vagy mezők ez alapján tudjuk elő keresni azt az adatot amire kíváncsiak vagyunk. Ezekben a táblákban minden sor (rekord) azonos szerkezetű, esetleg az érték nincs kitöltve, de a helye mindig fenn van tartva. Később kidolgoztak erre egy lekérdező nyelvet ezt hívják SQL lekérdező nyelvnek másképpen structured query language-nek. Manapság ezek az SQL nyelvvel lekérdezhető úgynevezett relációs adatbázis kezelők terjedtek el a világban a legtöbb adatbázis kezelő ilyen szerkezetű, mint például az Oracle vagy a Microsoft SQL szerver esetleg a nyílt forráskódú világból a POSTGRESQL, MYSQL vagy a MARIADB.

Azonban az új technológiák újabb és újabb adatszerkezeteket, adat típusokat kezdtek el számítógépen tárolni ilyenek például a földrajzi hely információk az úgynevezett Geo információk ilyen a dokumentum, amikor egy teljes szöveg fájlt egyben tartva dokumentumként kell kezelni, illetve ilyen az loT világban, azaz az internet of things világában keletkező mérési adatok tömege. Ebben a mérésadatgyűjtő világban a beküldött adatok szerkezete nagyon eltérő nagyon nehéz őket táblákba, sorokba, rekordokba, illetve mezőkbe beszorítani. Ebben a világban egy új, úgynevezett nem SQL vagy NO-SQL rendszerű adatbázis kezelők terjednek.

Ezekben az adatbázis kezelőkben az adatokat halmazokba rendezik és a halmazoknak elemei vannak. Minden elem lehet eltérő a másik elemtől akár ugyanabban a halmazban is! Például, ha egy halmazba rendezzük egy szobában mért adatokat, akkor a hőmérséklet, a páratartalom, a levegő minősége, a fény vagy a zaj eltérő tulajdonságokkal rendelkeznek. Ezek mind más más mértékegységet más szerkezetet más méréshatárokat tartalmaznak nagyon nehéz őket táblázatokba rendezni. Ezekben a halmazokban tehát úgynevezett kulcs érték párok szerepelnek amikor valamilyen kulcs alapján például a hőmérsékletet megkapjuk annak az értékét és ez lehet, hogy teljesen eltérő a fény vagy világosság nevű kulcsban tárolt értéktől. Ezeken a halmazokon később különböző úgynevezett halmazműveleteket lehet végezni például halmazokat lehet egyesíteni összevonni az az uniót képezni esetleg a különbözetet képezni vagy a metszet műveletet végrehajtani.

Természetesen ez az új adattárolási módszer új programozási módszereket is igényel nagyon nehéz mostanában olyan programozókat találni, akik el tudnak szakadni a régi SQL adatbázis kezelők világától, ettől a lekérdező nyelvtől és képesek és hajlandók az új halmaz világba belépni. Mindenesetre, amikor mérésadatgyűjtő és vezérlő rendszert fejlesztünk intelligens épületek számára vagy intelligens dolgokkal foglalkozunk, akkor ebben az irányban való elmozdulás mindenféleképpen indokolt.