1. Tétel: Adatbázisrendszerek
Adatbázis, adatbázisrendszer, adatbázis-kezelő rendszer (DBMS) fogalma és jellemzői
Adatbázis
Az adatbázis egy adatgyűjtemény, amely szervezett módon tárolja az adott feladathoz kapcsolódó adatokat.
Gondoskodik az adatokhoz való hozzáférésről. Biztosítja az adatok integritásának megőrzését és az adatok védelmét.
Olyan ismert tény, mely számszerűsíthető és magától értetődő jelentése van.
Adatbázis-kezelő rendszer (DBMS)
Adatbázis-kezelő rendszernek nevezik az olyan softvercsomagokat/rendszereket, melynek támogatják a szémítógépes adatbázisok létrehozását és karbantartását. Az adatbázis-kezelő rendszerek megkönnyítik az adatbázisok kezelését. Feladatuk az adatbázisban lévő adatok rögzítése, tárolása, kezelése.
- Adatbázisok létrehozása
- Adatbázisok tartalmának definiálása
- Adatok tárolása
- Adatok lekérdezése
- Adatok védelme
- Adatok titkosítása
- Hozzáférési jogok kezelése
- Fizikai adatszerkezet szervezése
Adatbázisrendszer
Az adatbázis rendszer magába foglalja az adatbázisokat, a számítógépes erőforrásokat, sőt tágabb értelemben ide vehetjük az adatbázis-adminisztrátorokat.
Azok a személyek, akik az adatbázisok kezelését, tervezését végzik.
Adatmodellezés alapelemei
Az egységes tervezés érdekében kidolgoztak modelleket, amelyeket adatmodelleknek nevezünk. Egy adatmodell alapvetően nem magukkal az adatokkal foglalkozik, hanem azok struktúrájával, a közöttük lévő összefüggésekkel, kapcsolatokkal. A legelterjedtebb adatmodellezési technikák közös jellemzője, hogy három alapelemből tevődnek össze. Ezek a következők:
- Egyed (egyedtípus)
- Tulajdonság (tulajdonságtípus)
- Kapcsolat (kapcsolattípus)
Az adatmodellek fajtái
- Koncepcionális (magas szintű, olyan fogalmakkal dolgozik, amely közel áll ahhoz, hogyan gondolkodik egy felhasználó. Nem írja le az adatbázis struktúráját.)
- Fizikai (alacsony szintű, leírja, hogyan tárolódik el az adat)
- Implementációs pl: relációs modell (az adatbázis-kezelő rendszer is ezt használja)
Egyed
Egyednek nevezzük azokat a dolgokat, objektumokat, amelyek egymástól jól elkülöníthetők, melyekről adatokat tárolunk és tulajdonságokkal jellemzünk.
Egyed lehet például egy személy, egy fogalom vagy akár egy elképzelés is.
Az egyed a konkrét dolgok absztrakciója. A valós világnak az az eleme, amely a modellezés tárgyát képezi.
Egedtípus
Az absztrakt egyedekre szokás használni az egyedtípus kifejezést is.
Például: dolgozó, kifizetés, anyag, személy, stb.
Az azonos tulajdonságtípusokkal rendelkező egyedek absztrakciója.
Az egyed előfordulások rekordoknak felelnek meg.
Egedhalmaz
Foglalkozunk az egyedtípus konkrét előfordulásaival is. Ezeket nevezhetjük egyedhalmaznak, vagy egyed előfordulásoknak.
Például a dolgozó egyedtípus egyedhalmaza az összes dolgozót magába foglaló halmaz, hasonlóan a kifizetés egyedhalmaza az összes kifizetés, ami megtörtént.
Tulajdonság (attribútum)
A tulajdonság, az egyed valamely jellemzője. Az egyed az tulajdonságok összességével jellemezhető.
Tulajdonságtípus
Az azonos szerepű tulajdonságok absztrakciója.
Egy személy egy jellemzője lehet például a neve vagy kora.
Tulajdonságérték
Az egyes tulajdonságtípusok konkrét értékeit nevezzük tulajdonságértékeknek.
A szín tulajdonság konkrét értékei lehetnek a piros, zöld, kék, stb.
Kapcsolat
Az adatmodell harmadik fontos elemét a kapcsolatok jelentik. Kapcsolatnak nevezzük az egyedek között fennálló összefüggést, viszonyt.
Kapcsolattípusok
A kapcsolatokat osztályozhatjuk aszerint, hogy egy-egy elemhez hány másik elem tartozik.
Egy-egy típusú
Egy-egy típusú kapcsolat esetén az egyik egyed minden egyes előfordulásának a másik egyed pontosan egy előfordulása tartozik.
Egy-egy típusú kapcsolat például a férfi és a nő egyedek között a házastárs kapcsolat.
Egy-sok típusú
A következő csoportot az egy-sok típusú kapcsolatok alkotják. Ezeknél az egyik egyed minden előfordulásához a másik egyed több előfordulása tartozhat.
Például a bérszámfejtő rendszerben egy-sok kapcsolat van a dolgozók és a kifizetések között. A kapcsolat alapja az, hogy melyik dolgozóhoz mely kifizetések tartoznak. Világos, hogy egy dolgozóhoz több kifizetés tartozhat, viszont egy kifizetés mindenképpen csak egyetlen dolgozóhoz kapcsolódik.
Sok-sok típusú
A kapcsolatok legáltalánosabb formáját a sok-sok kapcsolatok jelentik. Sok-sok kapcsolat esetén mindkét egyed előfordulásaihoz a másik egyed több előfordulása tartozhat.
Tegyük fel, hogy a dolgozói rendszerünkben azt is nyilvántartjuk, hogy melyik dolgozó milyen témákon dolgozik. Egy dolgozó több témában is tevékenykedhet és egy témán több dolgozó dolgozhat. Ebben az esetben sok-sok kapcsolatról van szó. Ezt a következő ábra szemlélteti.
Relációs, objektum-relációs és NoSQL adatbázisok jellemzése
Relációs adatbázisok
A relációs adatmodell kidolgozása Codd nevéhez fűződik (1971). Azóta fontos szerepet játszik az adatbázis kezelők alkalmazásában.
A relációs modell előnyei:
- A relációs adatszerkezet egyszerűen értelmezhető a felhasználók és az alkalmazás készítők számára is, így ez lehet közöttük a kommunikáció eszköze.
- A logikai adatmodell relációi egy relációs adatbázis kezelő rendszerbe módosítások nélkül átvihetők. Az egyes relációkat egyedi névvel látjuk el. A relációk oszlopaiban azonos mennyiségre vonatkozó adatok jelennek meg. Az oszlopok névvel rendelkeznek, melyeknek a reláción belül egyedieknek kell lenniük, de más relációk tartalmazhatnak azonos nevű oszlopokat. A reláció soraiban tároljuk a logikailag összetartozó adatokat. A reláció sorainak sorrendje közömbös, de nem tartalmazhat két azonos adatokkal kitöltött sort.
RDBMS (Relációs adatbázis modell):
- Az alapja az SQL, ezzel férünk hozzá.
- Az adatok tárolása az adatbázisban tábláknak nevezett objektumkban történik.
- A tábla egy gyűjteménye az azonos adatoknak, sorokból és oszlopokból áll.
- Minden tábla apró részekre van osztva, amiket mezőknek nevezünk.
- A mező egy oszlop a táblában. Arra tervezték, hogy specifikus adatokat tároljon minden rekordról.
- A record pedig a sor.
Objektum-relációs adatbázisok
Objektum-relációs elv azt jelenti, hogy: Belül minden relációsan működik. Erre egy ráépülő rétegként alakítják ki az objektum-orientált felületet. Az objektum-relációs modellek az alap relációs modellt egészítik ki, többek között a viselkedés leírására szolgáló eszközökkel. A tervező specifikálni tudja mind a sokszorosan összetett objektumok szerkezetét, mind az ezeken az objektumokon alkalmazható műveleteket. Az objektumok az obiektum orientált programozási nyelvekben átmenetiek, a futás befejeztével törlődnek. Az objektumok az objektum-relációs adatbázisrendszerekben perzisztensek, eltárolódnak, később kinyerhetőek és megoszthatóak más programokkal.
ORDBMS (Objektum relációs adatbázis modell):
- Minden olyat támogat, amit a relációs adatbázis is, de emellett támogatja az objektum-orientáltságot is.
- A classokat, objektumokat, öröklődést is.
- Bármelyik lekérdező nyelvvel használhatjuk az adatok módosítására.
- OQL a saját lekérdező nyelve (Object query language)
- Példa: PostgreSQL ?
NoSQL adatbázisok (Not only sql, non SQL)
A NoSQL adatbázisok nem táblákban tárolják az adatokat, és általában nem használnak SQL nyelvet lekérdezésre. A legtöbb NoSQL adatbázis szerver erősen optimalizált írás és olvasás műveletekre, míg ezen túl nem sok műveletet támogatnak. A jobb sebesség és a skálázhatóság érdekében olyan adatszerkezeteket használnak tárolásra, mint a kulcs-érték párok, gráfok, dokumentum-adatbázisok vagy oszlopcsaládok. Leginkább a big data-ban és a real-time web alkalmazásokban használatosak.
A funkcionális függés fogalma
Funkcionális függőség
A funkcionális függés egy olyan megszorítás, amely az adatbázis két attribútumhalmaza között áll fenn.
Funkcionális függőség, ha egy rendszerben szereplő egyik tulajdonságtípus bármely értékéhez egy másik tulajdonságtípusnak csak egyetlen egy értéke rendelhető hozzá.
Adatmodell
Leírja az adatbázis szerkezetét, azokat a műveleteket amelyekkel ez a szerkezet módosítható és bizonyos megszorításokat (kényszereket), melyeket az adatbázisnak ki kell elégítenie.
Magába foglalja a logikai adatbázis szerkezeti leírását, a rajtuk végrehajtható műveleteket és bizonyos egszorításokat.
Szerkezete
- Építőelemekkel definiáljuk.
- Megszorítások pedig korlátozásokat vezetnek be az érvényes adatokon.
Fajtái:
- Koncepcionális (magas szintű, olyan fogalmakkal dolgozik, amely közel áll ahhoz, hogyan gondolkodik egy felhasználó. Nem írja le a struktúráját a DB-nek.)
- Fizikai (alacsony szintű, leírja, hogyan tárolódik el az adat)
- Implementációs pl: relációs modell (DBMS is ezt használja)
Koncepcionális adatbázis-tervezés, az ER modell és leképezése relációs modellre
A koncepcionális adatmodellek tervezés lépései
A koncepcionális adatmodellek tervezés lépései:
- A követelményrendszer felállítása és analízise.
- Az adatbázis koncepcionális sémájának létrehozása: a koncepcionális séma a felhasználók adatkövetelményeinek egy tömör leírása.
- Az adatbázis tényleges megvalósítása: ezt a lépést logikai tervezésnek, vagy az adatmodell leképezésének nevezzük.
- Fizikai tervezés: megadjuk az adatbázis állományainak belső tárolási szerkezetét, indexeit, elérési útjait és állományszervezési módjait.
ER modell (Entity-Relationship-Modell, Egyed-Kapcsolat modell)
Az ER modell az adatokat, mint egyedeket, kapcsolatokat és tulajdonságokat írja le. Az ER modell által kezelt alapvető objektum az egyed.
Egy alapvető ER-modell egyedtípusokból áll (amelyek osztályozzák az érdekes dolgokat), és meghatározza az egyedek (ezen egyedtípusok példányai) között létező kapcsolatokat.
Az ER séma leképezése relációs sémára
Az ER séma leképezése relációs sémára:
- Erős egyedtípusok leképezése
- Gyenge egyedtípusok leképezése
- Bináris 1:1 számosságú kapcsolattípusok leképezése
- Bináris 1: N számosságú kapcsolattípusok leképezése
- Bináris M:N számosságú kapcsolattípusok leképezése
- Többértékű attribútumok leképezése
- Az n-ed fokú kapcsolattípusok leképezése
Az SQL elemei: DDL, DML, DCL, egyszerű lekérdezések és táblák összekapcsolása
Az SQL számos utasítástípusból áll, amelyeket informálisan alnyelvekként lehet osztályozni:
- adatlekérdezési nyelv (DQL)
- adatdefiníciós nyelv (DDL)
- adatvezérlési nyelv (DCL)
- adatmanipulációs nyelv (DML)
Bár gyakran a DML részének tekintik, az SQL SELECT
utasítás szigorúan véve a DQL példája. Ha a SELECT
utasításhoz FROM
vagy WHERE
adatmanipulátorokat adunk hozzá, akkor az utasítás a DML részének tekinthető.
DDL- Data Definition Language (Adatleíró nyelv)
Az SQL-ben az adatleíró nyelv (DDL) az adatbázis-objektumok, például táblák, indexek és felhasználók létrehozására és módosítására szolgáló szintaxis.
A DDL-utasítások hasonlítanak az adatszerkezetek, különösen az adatbázis-sémák meghatározására szolgáló számítógépes programozási nyelvhez.
Példák DDl utasításokra:
CREATE
ALTER
DROP
DML - Data Manipulation Language (Adatmanipulációs nyelv)
Az SQL-ben az adatmanipulációs nyelv az SQL-adatmódosító utasításokat tartalmazza, amelyek a tárolt adatokat módosítják, de a sémát vagy az adatbázis-objektumokat nem.
Példák DML utasításokra:
SELECT ... FROM ... WHERE ...
(szigorú értelemben véve DQL)SELECT ... INTO ...
INSERT INTO ... VALUES ...
UPDATE ... SET ... WHERE ...
DELETE FROM ... WHERE ...
DCL - Data Control Language (Adatvezérlő nyelv)
A DCL nyelv egy, az adatbázisok hozzáférésének szabályozásához használatos nyelv. DCL parancsok például a GRANT és a REVOKE.
Példák DCL utasításokra:
GRANT
: egy meghatározott felhasználóknak engedélyezze meghatározott feladatok végrehajtását.REVOKE
: egy felhasználó hozzáférésének megszüntetéséhez az adatbázis-objektumhoz.
További információk
- https://arato.inf.unideb.hu/ispany.marton/Database/Lectures2019/
- https://tudasbazis.sulinet.hu/hu/informatika/informatika/informatika-9-12-evfolyam/adatbazis-kezelo-kornyezete-linux-platform/kapcsolatok-tablak-kozott
- https://aries.ektf.hu/~holovacs/AB/2_Adatmodellek.htm
- https://www.inf.u-szeged.hu/~gnemeth/adatbgyak/exe/EK_diagrambol_relaciosema/
- https://gyires.inf.unideb.hu/KMITT/b01/ch07.html