Alapfogalmak:
Adatbázis (Database): Az adatok rendszerezett gyűjteménye. Egy adatbázis több táblát tartalmazhat. Az adatbázisok célja, hogy az adatokat hosszútávon, tartósan lehessen tárolni, illetve, hogy a tartalma gyorsan kereshető legyen. Példa: Kréta
Tábla (Table): Az adatok tárolásának alapegysége. Sorokból (rekordokból) és oszlopokból (mezőkből) áll. Példa: diakok tábla.
Sor (Record, Tuple): Egy konkrét bejegyzés a táblában. Példa: 1 | Kiss Anna | 2007-05-12.
Oszlop / Mező (Column, Field, Attribute): Egy tulajdonság, amely az entitást jellemzi. Példa: név, születési_dátum. Egyed vagy entitás: a valós világban létező dolog, aminek az adatait tároljuk (pl. Diák adatai).
Elsődleges kulcs (Primary Key): Egyedi azonosító minden sorhoz. Nem lehet üres (NULL), és nem ismétlődhet. Példa: OM azonosító
Idegen kulcs (Foreign Key): Kapcsolatot teremt két tábla között. Másik tábla elsődleges kulcsára hivatkozik.
Mi az SQL?
Az SQL (ami az angol Structured Query Language szóra utal) egy relációsadatbázis-kezelő lekérdezési nyelv. Segítségével műveleteket végezhetünk: létrehozhatunk adatbázisokat, adatokat adhatunk az adatbázishoz, törölhetünk belőle, módosíthatjuk az egyes adatokat, lekérdezhetjük azokat, vagy rendezhetjük.
az SQL utasításokat négy nagy csoportba szokás osztani a feladatuk alapján:
1. DDL – Data Definition Language (Adatdefiníciós nyelv): Az adatbázis szerkezetét (táblák, mezők, kulcsok) hozza létre és módosítja.
Fő parancsok:
CREATE – új adatbázis vagy tábla létrehozása
ALTER – meglévő tábla módosítása (pl. új oszlop)
DROP – adatbázis vagy tábla törlése
TRUNCATE – egy tábla kiürítése (szerkezet megmarad)
2. DML – Data Manipulation Language (Adatkezelő nyelv): Az adatok bevitelére, módosítására és törlésére szolgál.
Fő parancsok:
INSERT – új adat beszúrása
UPDATE – meglévő adat módosítása
DELETE – adat törlése
3. DQL – Data Query Language (Adatlekérdező nyelv): Az adatok lekérdezésére szolgál.
Fő parancs:
SELECT – adatok lekérése a táblákból (szűréssel, rendezéssel, csoportosítással).
4. DCL – Data Control Language
(Adatvezérlő nyelv)
👉 Jogosultságok kezelésére szolgál.
Fő parancsok:
GRANT – jogosultság adása
REVOKE – jogosultság visszavonása

Adattípusok (MySQL)
Szám típusok:
TINYINT – nagyon kis egész szám (–128 … 127 vagy 0 … 255)
SMALLINT – kis egész szám
MEDIUMINT – közepes egész szám
INT / INTEGER – általános egész szám (–2,1 milliárd … +2,1 milliárd)
BIGINT – nagyon nagy egész szám
DECIMAL(M,D) – pontos tizedes szám (pl. pénzérték)
NUMERIC(M,D) – ugyanaz, mint DECIMAL
FLOAT(M,D) – lebegőpontos (kis pontosságú) szám
DOUBLE / REAL – lebegőpontos (nagy pontosságú) szám
Szöveg típusok: betűk, karakterláncok tárolására alkalmasak
CHAR(n) – fix hosszúságú szöveg (pl. CHAR(10) mindig 10 karakter)
VARCHAR(n) – változó hosszúságú szöveg (pl. VARCHAR(50) max. 50 karakter)
TEXT típusok (nagy szövegekhez):
TINYTEXT – max. 255 karakter
TEXT – max. 65 535 karakter
MEDIUMTEXT – max. 16 millió karakter
LONGTEXT – max. 4 milliárd karakter
ENUM(‘érték1’, ‘érték2’, …) – felsorolás, előre meghatározott értékek közül lehet választani
SET(‘érték1’, ‘érték2’, …) – több előre megadott értékből is választhatunk (halmaz)
Dátum és idő típusok: időpontok, dátumok tárolására használjuk őket
DATE – dátum (ÉÉÉÉ-HH-NN, pl. 2025-09-04)
DATETIME – dátum és idő együtt (ÉÉÉÉ-HH-NN ÓÓ:PP:MM)
TIMESTAMP – időbélyeg, dátum és idő egyben, automatikusan frissülhet a jelenlegi időpontra
TIME – idő (ÓÓ:PP:MM)
YEAR(4) – év (pl. 2025)
Logikai (boolean):
A MySQL-ben van BOOLEAN vagy BOOL adattípus, de valójában ez csak egy TINYINT(1) rövidítés. Tehát a logikai értékeket 0 és 1 formájában tárolja:
0 → HAMIS (FALSE)
1 → IGAZ (TRUE)
Adatbázis-tervezés lépései

Fogalmi terv (Konceptuális modell)
A valós világ leírása, amit az adatbázisnak kezelnie kell.
Itt még nincs szó táblákról, csak a fogalmakról és kapcsolatokról.
Eszköze: ER-diagram (Entity-Relationship diagram).
Tartalma:
- Entitások (pl. Diák, Tantárgy)
- Attribútumok (pl. név, születési_dátum)
- Kapcsolatok (pl. Diák – „tanulja” – Tantárgy)
Ez adja meg, mit kell tárolni.
Logikai terv (Relációs modell)
A fogalmi terv átalakítása a relációs adatbázis formátumába (táblák, mezők, kulcsok).
Meghatározzuk:
- táblákat,
- elsődleges kulcsokat (PRIMARY KEY),
- idegen kulcsokat (FOREIGN KEY),
- kapcsolatok típusát (1:1, 1:N, N:M).
- Normalizálás: az adatok felesleges ismétlődésének csökkentése.
Ez adja meg, hogyan fogjuk tárolni.
Fizikai megvalósítás
- A logikai terv alapján konkrét adatbázis létrehozása MySQL-ben.
- Meghatározzuk az adattípusokat (INT, VARCHAR, DATE, …).
- Megírjuk a CREATE TABLE parancsokat.
- Példányosítjuk az adatbázist, feltöltjük tesztadatokkal.
Ez adja meg, miben valósítjuk meg.
E-R modell és E-R diagram
Mi az E-R modell?
Entity-Relationship modell (entitás-kapcsolat modell).
Célja: a valós világ adatainak és kapcsolataiknak szemléltetése.
Az adatbázis-tervezés fogalmi szintű terve.
Nem konkrét táblákat mutat, hanem fogalmakat és összefüggéseket.
Fő fogalmak és jelölések
Entitás (Entity)
Valós világ egy osztálya, amit adatbázisban tárolni akarunk.
Jelölés: téglalap.
Példa: Diák, Tantárgy.
Attribútum (Attribute)
Az entitás jellemzője (tulajdonsága).
Jelölés: ellipszis (ovális), vonallal kapcsolódik az entitáshoz.
Példa: név, születési_dátum.
Kapcsolat (Relationship)
Kapcsolat két (vagy több) entitás között.
Jelölés: rombusz.
Példa: Diák – kap – Jegyet – Tantárgyból.
Kapcsolat számossága (kardinalitás)
Megmutatja, hogy egy entitás hány másikkal állhat kapcsolatban.
Jelölések (legtöbbször vonal mellett):
1:1 (egy az egyhez)
1:N (egy a többhöz)
N:M (több a többhöz)
példa:
Diák entitás (diakID, név, születési_dátum)
Tantárgy entitás (tantargyID, név)
Jegy entitás (jegyID, érdemjegy, diakID, tantargyID)


