This is an old revision of the document!
Table of Contents
📊 Adatbázisok története és fejlődése
Relációs adatbázisoktól a NoSQL-en át a vektor adatbázisokig
1. Bevezetés
Az adatbázisok az informatikai rendszerek alapvető elemei, amelyek lehetővé teszik az adatok hatékony tárolását, visszakeresését, rendezését és módosítását. A modern világban hatalmas mennyiségű adat keletkezik másodpercenként, és ezek strukturált tárolása elengedhetetlen a döntéstámogatáshoz, automatizáláshoz és gépi tanuláshoz.
Miért van szükség adatbázisokra?
- Az adatok szervezett tárolása lehetővé teszi azok gyors visszakeresését és elemzését.
- Több felhasználó egyidejűleg dolgozhat ugyanazon adatokkal (konkurens hozzáférés).
- Biztosítani lehet az adatintegritást és a hozzáférés-ellenőrzést.
- Az adatok rendszeres mentése és visszaállítása egyszerűbbé válik.
- Automatizált folyamatokhoz (pl. webalkalmazások, gépi tanulás) szükséges egy megbízható háttértároló.
Példa: Egy webshopban több ezer termék, rendelés és felhasználói adat van. Ezek kereshető tárolása adatbázis nélkül gyakorlatilag lehetetlen lenne.
Adat vs. információ
- Adat: nyers tények, mért vagy rögzített értékek, amelyek még nem feltétlenül bírnak jelentéssel.
- Példa: `42`, `2025-05-07`, `„Piros”`
- Információ: értelmezett adat, amely kontextusba helyezve új tudást jelent.
- Példa: „42 éves a felhasználó”, vagy „A rendelés dátuma: 2025-05-07”
Az adat tehát az alap, amiből – megfelelő feldolgozással – információt nyerhetünk. Az adatbázis célja az adatok strukturált tárolása annak érdekében, hogy információvá alakíthassuk őket.
Strukturált, félstrukturált és strukturálatlan adatok
- Strukturált adat:
- Táblázatos formában rendezett, előre meghatározott sémával rendelkezik.
- Példa: SQL adatbázisok, Excel-táblák, CRM rendszerek.
- Jellemző: gyors kereshetőség, jól lekérdezhető.
- Félstrukturált adat:
- Nincs fix sémája, de tartalmaz címkéket vagy metaadatokat.
- Példa: XML, JSON, YAML fájlok, logok.
- Rugalmasabb, de nehezebb indexelni és lekérdezni.
- Strukturálatlan adat:
- Nincs formázása, nem egyértelmű a tartalma.
- Példa: szövegfájlok, képek, videók, e-mailek, hangfelvételek.
- Ezeket általában keresőmotorokkal vagy mesterséges intelligenciával lehet feldolgozni (pl. szöveg- vagy képelemzés).
Az adatbázisok fejlődése szorosan összefügg azzal, hogyan és milyen típusú adatokat akarunk hatékonyan kezelni.
2. Relációs adatbázisok (RDBMS)
A relációs adatbázisok az egyik legelterjedtebb adatbázis-típusok közé tartoznak. Az adatok táblákban (relációkban) tárolódnak, ahol minden tábla sorokból (rekordokból) és oszlopokból (mezőkből) áll. A relációs modell megbízható és jól definiált struktúrát biztosít az adatok kezeléséhez.
Történet
- A relációs modellt Edgar F. Codd matematikus javasolta 1970-ben.
- A modell a halmazelméletre és a predikátumlogikára épül.
- A ’70-es, ’80-as években megjelentek az első RDBMS rendszerek: IBM System R, Ingres, Oracle.
- A SQL (Structured Query Language) nyelv szabványosítása nagyban hozzájárult az elterjedéséhez.
Jellemzők
- Adatszerkezet: táblázatos (sorok és oszlopok).
- Szigorú séma: minden táblának előre meghatározott szerkezete van (mezőtípusok, kulcsok stb.).
- Kapcsolatok: táblák között idegen kulcsokon keresztül hozunk létre kapcsolatokat.
- ACID tulajdonságok:
- *Atomicity* – a tranzakciók oszthatatlanok.
- *Consistency* – az adatbázis érvényességi szabályai nem sérülnek.
- *Isolation* – párhuzamos tranzakciók nem befolyásolják egymást.
- *Durability* – a végrehajtott tranzakciók tartósan megmaradnak.
Előnyök
- Adatintegritás: kulcsok, megszorítások és szabályok segítségével biztosítható.
- Lekérdezhetőség: a SQL nyelv rendkívül erős és kifejező eszköztárat ad.
- Stabilitás és érettség: hosszú távon kipróbált, optimalizált rendszerek.
- Többfelhasználós működés: jogosultságkezelés, tranzakciókezelés.
Hátrányok
- Skálázhatóság: nagy adatmennyiség és sok párhuzamos felhasználó esetén nehezen osztható szét több gépre (horizontális skálázás).
- Rugalmatlanság: séma módosítása bonyolult lehet, különösen ha az adatstruktúra gyakran változik.
- Strukturálatlan adatok kezelése: szöveg, kép, videó típusú adatok kezelésére nem ideális.
Népszerű relációs adatbázis-kezelő rendszerek (RDBMS-ek)
- MySQL – nyílt forráskódú, népszerű webalkalmazások körében (pl. WordPress).
- PostgreSQL – fejlett funkciók, szabványos SQL támogatás, objektum-orientált kiegészítések.
- Oracle Database – robusztus vállalati megoldás, fejlett biztonság és replikációs lehetőségek.
- Microsoft SQL Server – integráció Microsoft-technológiákkal, könnyű használat.
Példa: Egyszerű SQL tábla és lekérdezés
Tábla: `diakok`
id | nev | szuletesi_ev |
---|---|---|
1 | Kovács Anna | 2003 |
2 | Nagy Péter | 2002 |
SQL lekérdezés:
SELECT nev FROM diakok WHERE szuletesi_ev < 2003;
Ez a lekérdezés visszaadja azoknak a diákoknak a nevét, akik 2003 előtt születtek.
3. NoSQL adatbázisok
- Megjelenés oka:
- Big Data, Web 2.0, gyorsan változó struktúrák
- Horizontális skálázás igénye
- Típusai:
- Dokumentum-orientált (pl. MongoDB)
- Kulcs-érték tárolók (pl. Redis, DynamoDB)
- Oszlop-orientált (pl. Cassandra)
- Gráf adatbázisok (pl. Neo4j)
- Jellemzők:
- Séma nélküli (schema-on-read)
- BASE modell: Basically Available, Soft state, Eventually consistent
- Nagy teljesítmény, skálázhatóság
4. NewSQL adatbázisok
- Cél: Relációs modell + NoSQL skálázhatóság
- Jellemzők:
- ACID + elosztott tranzakciók
- Példák:
- Google Spanner
- CockroachDB
- VoltDB
5. Vektor adatbázisok
- Motiváció:
- Gépi tanulás, jelentés szerinti keresés
- Embeddingek (szövegek, képek, hangok reprezentációja)
- Működés:
- Objektum → Vektor (embedding)
- Közelségi keresés: k-nn (legközelebbi szomszédok)
- Példák:
- FAISS (Facebook)
- Milvus
- Weaviate
- Pinecone
- Chroma (LLM-es RAG rendszerekhez)
- Alkalmazások:
- Dokumentumkeresés (RAG)
- Képkeresés
- Ajánlórendszerek
6. Tendenciák és jövőkép
- Multimodális adatbázisok (szöveg + kép + struktúrált adatok)
- Hybrid keresés: SQL + vektoros keresés együtt
- AI-native rendszerek: LLM + adatbázis integráció (pl. LangChain)
7. Összefoglaló táblázat
Típus | Példa | Előnyök | Hátrányok |
---|---|---|---|
Relációs | PostgreSQL | Stabil, jól ismert | Nehezen skálázható |
NoSQL | MongoDB | Rugalmas, horizontálisan skálázható | Nincs szigorú séma, konzisztencia lehet gyenge |
NewSQL | CockroachDB | ACID + skálázhatóság | Új technológia, kisebb ökoszisztéma |
Vektor | FAISS | Jelentésalapú keresés, ML támogatás | Nem SQL-alapú lekérdezések, új gondolkodásmód |
8. Demó
- SQL lekérdezés vs. MongoDB lekérdezés
- Szöveg → embedding → hasonló dokumentumok keresése vektor alapján