User Tools

Site Tools


tanszek:oktatas:muszaki_informatika:adattarolas_adatbazisok

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
tanszek:oktatas:muszaki_informatika:adattarolas_adatbazisok [2025/05/07 06:55] – [7. Összefoglaló táblázat] kneheztanszek:oktatas:muszaki_informatika:adattarolas_adatbazisok [2025/05/08 07:01] (current) – [D – Durability (Tartósság)] knehez
Line 1: Line 1:
 +~~NOTOC~~
 Régi anyag: https://docs.google.com/presentation/d/1_nmA1F4ag_O-qlJAE4TfVuyfLgSruZLW/edit?usp=sharing&ouid=110539736176923279178&rtpof=true&sd=true Régi anyag: https://docs.google.com/presentation/d/1_nmA1F4ag_O-qlJAE4TfVuyfLgSruZLW/edit?usp=sharing&ouid=110539736176923279178&rtpof=true&sd=true
  
Line 11: Line 12:
   * Az adatok szervezett tárolása lehetővé teszi azok gyors visszakeresését és elemzését.   * 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).   * 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**.+  * Biztosítani lehet az **adatintegritást** és a **hozzáférés-ellenőrzést**. Az adatbázis képes megóvni az adatok helyességét, érvényességét és konzisztenciáját – vagyis azt, hogy az adatok ne legyenek hibásak, hiányosak, vagy egymásnak ellentmondóak.
   * Az adatok rendszeres **mentése és visszaállítása** egyszerűbbé válik.   * 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ó.   * Automatizált folyamatokhoz (pl. webalkalmazások, gépi tanulás) szükséges egy megbízható háttértároló.
Line 31: Line 32:
     * Példa: SQL adatbázisok, Excel-táblák, CRM rendszerek.     * Példa: SQL adatbázisok, Excel-táblák, CRM rendszerek.
     * Jellemző: gyors kereshetőség, jól lekérdezhető.     * Jellemző: gyors kereshetőség, jól lekérdezhető.
-  +
   * **Félstrukturált adat**:   * **Félstrukturált adat**:
     * Nincs fix sémája, de tartalmaz címkéket vagy metaadatokat.     * Nincs fix sémája, de tartalmaz címkéket vagy metaadatokat.
Line 58: Line 59:
   * **Szigorú séma**: minden táblának előre meghatározott szerkezete van (mezőtípusok, kulcsok stb.).   * **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.   * **Kapcsolatok**: táblák között idegen kulcsokon keresztül hozunk létre kapcsolatokat.
-  * **ACID tulajdonságok**: +  * **ACID tulajdonságok**: Az ACID tulajdonságok biztosítják, hogy az adatbázisban végzett tranzakciók megbízhatóan és konzisztensen hajtódjanak végre, még hiba vagy rendszerleállás esetén isEzek különösen fontosak pénzügyi, vállalati vagy bármilyen más üzletkritikus rendszerekben.
-    * *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 ====+**Mit jelent az ACID?** 
 + 
 +^ Betű ^ Jelentés angolul ^ Jelentés magyarul                ^ 
 +| A    | Atomicity         | Atomszerűség (oszthatatlanság) 
 +| C    | Consistency       | Konzisztencia (állapothelyesség)| 
 +| I    | Isolation         | Elkülönítés (tranzakciós függetlenség) | 
 +| D    | Durability        | Tartósság (állandóság)           | 
 +**A – Atomicity (Atomszerűség)**  
 +Egy tranzakció vagy teljes egészében végrehajtódik, vagy semennyire. Ha a tranzakció közben hiba történik (pl. áramszünet), az adatbázis **visszaállítja** a korábbi állapotot. 
 + 
 +  * Példa: Ha egy banki utalás során először levonjuk a pénzt A számláról, majd jóváírjuk B számlán, akkor ezek vagy együtt történnek meg, vagy egyik sem. 
 + 
 +**C – Consistency (Konzisztencia)** 
 +A tranzakció nem sértheti meg az adatbázis szabályait. Csak olyan állapot maradhat fenn, amely megfelel a megszorításoknak (kulcsok, ellenőrzések, hivatkozások). 
 + 
 +  * Példa: Egy megrendelés nem lehet úgy eltárolva, hogy nem tartozik hozzá létező vásárló. 
 + 
 +**I – Isolation (Elkülönítés)** 
 +A párhuzamosan futó tranzakciók nem zavarhatják egymást. Egy felhasználó nem láthatja egy másik félkész változtatásait. 
 + 
 +  * Példa: Ha két ügyintéző módosítja ugyanazt az ügyfélrekordot, a rendszer biztosítja, hogy ezek ne írják felül egymást hibásan. 
 + 
 +**D – Durability (Tartósság)** 
 +Ha egy tranzakció véglegesen befejeződik, annak hatása tartósan megmarad – még rendszerleállás után is. 
 + 
 +  * Példa: Ha egy utalás sikeresen lefutott, a pénzmozgás nem veszhet el újraindítás után sem. 
 + 
 +==== További előnyök ====
   * **Adatintegritás**: kulcsok, megszorítások és szabályok segítségével biztosítható.   * **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.   * **Lekérdezhetőség**: a SQL nyelv rendkívül erős és kifejező eszköztárat ad.
Line 274: Line 298:
 ===== 7. Összefoglaló táblázat ===== ===== 7. Összefoglaló táblázat =====
  
-^ Típus          ^ Példák              ^ Előnyök                                               ^ Hátrányok                                                 ^+^ Típus          ^ Terméknevek              ^ Előnyök                                               ^ Hátrányok                                                 ^
 | Relációs (RDBMS) | MySQL, PostgreSQL, Oracle | Stabil, jól definiált séma, SQL támogatás, ACID garancia | Nehezen skálázható, rugalmatlan struktúra                  | | Relációs (RDBMS) | MySQL, PostgreSQL, Oracle | Stabil, jól definiált séma, SQL támogatás, ACID garancia | Nehezen skálázható, rugalmatlan struktúra                  |
 | NoSQL            | MongoDB, Redis, Cassandra, Neo4j | Rugalmas séma, jól skálázható, gyors lekérdezések     | Gyenge konzisztencia, nincs egységes lekérdezőnyelv        | | NoSQL            | MongoDB, Redis, Cassandra, Neo4j | Rugalmas séma, jól skálázható, gyors lekérdezések     | Gyenge konzisztencia, nincs egységes lekérdezőnyelv        |
Line 281: Line 305:
  
  
-===== 8. Demó ===== +===== 8. Példa ===== 
-  SQL lekérdezés vs. MongoDB lekérdezés + 
-  * Szöveg → embedding → hasonló dokumentumok keresése vektor alapján+Az alábbi példák bemutatják, hogyan tér el az adatok kezelése a különböző adatbázistípusokban. A példák egyszerűek, mégis jól szemléltetik az eltérő adatmodelleket és lekérdezési módokat. 
 + 
 +==== 1. Relációs adatbázis: SQL példa (PostgreSQL) ==== 
 +Tábla létrehozása: 
 +<code sql> 
 +CREATE TABLE diakok ( 
 +  id SERIAL PRIMARY KEY, 
 +  nev TEXT NOT NULL, 
 +  szuletesi_ev INTEGER 
 +); 
 +</code> 
 + 
 +Adatok beszúrása: 
 +<code sql> 
 +INSERT INTO diakok (nev, szuletesi_ev) 
 +VALUES ('Kiss Anna', 2002), ('Nagy Péter', 2001); 
 +</code> 
 + 
 +Lekérdezés: ki született 2001 előtt? 
 +<code sql> 
 +SELECT nev FROM diakok WHERE szuletesi_ev < 2001; 
 +</code> 
 + 
 +==== 2NoSQL példa: MongoDB dokumentum és lekérdezés ==== 
 +Dokumentum beillesztése: 
 +<code javascript> 
 +db.diakok.insertOne({ 
 +  nev: "Kiss Anna", 
 +  szuletesi_ev: 2002 
 +}); 
 +</code> 
 + 
 +Lekérdezés: azok a diákok, akik 2001 előtt születtek: 
 +<code javascript> 
 +db.diakok.find({ szuletesi_ev: { $lt: 2001 } }); 
 +</code> 
 + 
 +==== 3. Vektor adatbázis példa: FAISS keresés (Python) ==== 
 +Tegyük fel, hogy szövegeket átalakítunk vektorokká egy nyelvi modell (pl. `sentence-transformers`) segítségével, majd ezekben keresünk. 
 + 
 +Embedding előállítás (példa): 
 +<code python> 
 +from sentence_transformers import SentenceTransformer 
 +import faiss 
 +import numpy as np 
 + 
 +model = SentenceTransformer('all-MiniLM-L6-v2'
 +dokumentumok = ["A kutya ugat.", "A macska nyávog.", "Az autó gyors."
 + 
 +vektorok = model.encode(dokumentumok) 
 +index = faiss.IndexFlatL2(vektorok.shape[1]) 
 +index.add(np.array(vektorok)) 
 +</code> 
 + 
 +Keresés hasonló szöveg alapján: 
 +<code python> 
 +kerdes = "Melyik állat nyávog?" 
 +kerdes_vektor = model.encode([kerdes]) 
 +_, eredmenyek = index.search(np.array(kerdes_vektor), k=1) 
 + 
 +print("Legjobban illeszkedő dokumentum:", dokumentumok[eredmenyek[0][0]]) 
 +</code> 
 + 
 +Eredmény: 
 +''Legjobban illeszkedő dokumentum: A macska nyávog.'' 
 + 
 +===== Ellenőrző kérdések ===== 
 + 
 +**1. Mi a relációs adatbázis egyik alapvető jellemzője?** 
 +  * ( ) Az adatok képek és hangfájlok formájában tárolódnak 
 +  * (x) Az adatokat táblákban tároljuk sorok és oszlopok formájában 
 +  * ( ) Az adatbázisok nem rendelkeznek előre meghatározott szerkezettel 
 + 
 +**2. Mi biztosítja az adatintegritást egy relációs adatbázisban?** 
 +  * ( ) A dokumentumalapú adattárolás 
 +  * ( ) Az adatok titkosítása 
 +  * (x) Az elsődleges kulcsok, idegen kulcsok és megszorítások 
 + 
 +**3. Melyik adatbázis típus ideális gyakran változó adatszerkezetekhez?** 
 +  * (x) NoSQL 
 +  * ( ) Relációs (RDBMS) 
 +  * ( ) CSV fájl 
 + 
 +**4. Mit jelent az ACID mozaikszó „A” betűje az adatbázis tranzakciók esetében?** 
 +  * (x) Atomicity – oszthatatlanság 
 +  * ( ) Availability – elérhetőség 
 +  * ( ) Access – hozzáférhetőség 
 + 
 +**5. Melyik adatbázis típusban használunk embeddingeket és k-NN keresést?** 
 +  * ( ) Relációs adatbázisban 
 +  * ( ) Gráf adatbázisban 
 +  * (x) Vektor adatbázisban 
 + 
 +**6. Melyik állítás igaz a MongoDB-re?** 
 +  * ( ) Táblák és relációk alapján tárol adatokat 
 +  * (x) JSON-szerű dokumentumokban tárolja az adatokat 
 +  * ( ) Kizárólag numerikus adatokat képes kezelni 
 + 
 +**7. Mi a referenciális integritás szerepe egy adatbázisban?** 
 +  * (x) Biztosítja, hogy az idegen kulcs által hivatkozott rekord létezzen 
 +  * ( ) Az adatokat titkosítja 
 +  * ( ) Lehetővé teszi a képek tárolását 
 + 
 +**8. Melyik igaz a NewSQL adatbázisokra?** 
 +  * ( ) Nem támogatják az SQL nyelvet 
 +  * (x) ACID tulajdonságokat nyújtanak skálázható módon 
 +  * ( ) Strukturálatlan adatokat tárolnak kizárólag 
 + 
 +**9. Melyik nem vektor adatbázis?** 
 +  * (x) MySQL 
 +  * ( ) FAISS 
 +  * ( ) Milvus 
 + 
 +**10. Mi a BASE modell egyik jellemzője NoSQL rendszereknél?** 
 +  * (x) Eventually consistent – idővel konzisztenssé válik az adat 
 +  * ( ) A lekérdezések mindig pontos, teljes adatot adnak vissza 
 +  * ( ) Az adatok nem igényelnek tárolást
tanszek/oktatas/muszaki_informatika/adattarolas_adatbazisok.1746600959.txt.gz · Last modified: 2025/05/07 06:55 by knehez