Adatbázis gyakorlat 1. Szerző: Varga Zsuzsanna ELTE-IK (2004) Budapest Követelmények: 2 zh (SQL, Access), 1 beadandó (Access)
Bevezetés fájlkezelés: az operációs rendszer közvetlen hívásaival tudunk adatokat permanensen tárolni háttértárolón, és onnan visszaolvasni nehézségek: nagyon elemi műveletek (írás, olvasás), még keresés sincs komplex adatokra nekünk kell struktúrát kitalálni a fájl meghibásodása esetén elvesznek az adatok a fájlhoz operációs rendszer szinten nem csak a programunk, hanem bárki hozzáférhet vagy módosíthat benne ha a fájlt egyszerre többen szeretnék használni, az komoly problémákhoz vezet keresés: csak szekvenciális visszakeresés lehet (azt is nekünk kell megírni) lassú komplex adatok: struktúrára nincs szabvány bárki hozzáférhet a fájlhoz: adatbiztonság egyszerre több felhasználó: főleg akkor probléma, ha többen egyszerre akarnak módosítani
Az adatbázis-kezelés eszközei megoldást nyújtanak ezekre a problémákra
Adatbázis-kezeléssel kapcsolatos tudnivalók adatmodellezés, elméleti háttér adatbázis eszközök használata szabványos adatdefiníciós és lekérdezőnyelv (SQL)
Adatmodellezés cél: a valós információk tárolására kitaláljunk valami olyasféle struktúrát, amiben az adatok információvesztés nélkül tárolhatók az adatok közti kapcsolatok leírhatók struktúra a számítógépes feldolgozás szempontjából hatékony
Alapmodellek hierarchikus modell hálós modell relációs modell objektum-orientált modell félig strukturált adatmodell félig strukturált adatmodell: önleíró adatok sokkal komplexebb világot tud leírni XML
Relációs modell az adatokat táblákban tároljuk (tábla - reláció) a táblák között kapcsolatokat építhetünk táblák: attribútumok vagy oszlopok (egyedi név, típus) sorok vagy rekordok 1 cellában 1 elemi érték a következőben egyezünk meg a félév erejéig: tTablanev (kis t és utána a név nagykezdőbetűvel) azonosítók XAzon (a tábla nagybetűs kezdőbetűje és utána Azon)
A felhasználó adatbázis-kezelőn keresztül éri el az adatokat.
Elvárásaink egy adatbázis-kezelő rendszerrel szemben: Tegye lehetővé a felhasználók számára, hogy új adatbázisokat hozhassanak létre és azok sémáját, vagyis az adatok logikai struktúráját egy speciális nyelven adhassák meg. Ezt a speciális nyelvet adatdefiníciós nyelvnek nevezzük.
Elvárásaink egy adatbázis-kezelő rendszerrel szemben: Engedje meg a felhasználóknak, hogy az adatokat egy megfelelő nyelv segítségével lekérdezhessék és módosíthassák. Ezt a nyelvet szokás lekérdezőnyelvnek vagy adatmanipulációs nyelvnek nevezni.
Elvárásaink egy adatbázis-kezelő rendszerrel szemben: Támogassa nagyon nagy mennyiségű adat (gigabájtok vagy még több adat) hosszú időn keresztül való tárolását, garantálja az adatok biztonságát a meghibásodásokkal és az illetéktelen felhasználókkal szemben, és tegye lehetővé a hatékony adathozzáférést a lekérdezések és az adatbázis-módosítások számára.
Elvárásaink egy adatbázis-kezelő rendszerrel szemben: Felügyelje a több felhasználó által egy időben történő adathozzáféréseket úgy, hogy az egyes felhasználók műveletei ne legyenek hatással a többi felhasználóra és az egyidejű adathozzáférések ne vezethessenek az adatok hibássá vagy következetlenné válásához.
Adatbázis eszközök használata néhány példa (támogatják a relációs adatmodellt) Oracle MS SQL Server (ezt fogjuk használni) IBM DataBase2 Sybase néhány fájlkezelő (amik NEM, vagy csak félig-meddig adatbázis-kezelők) dBase Clipper FoxPro MySQL Access (elterjedt, egyszerű a használata oktatásban használjuk) MySQL, Access: 3-as, 4-es nem teljesül dBase, Clipper, FoxPro: közvetlen adatfájlokkal dolgozik
Kliens – Szerver kapcsolat Kliens – Szerver kapcsolat A kommunikációs protokollok egymásra épülése pl. Oracle és TCP/IP használata esetén Szerver: kiszolgál Kliens: kér Felhasználó (SQL) Program Oracle kliens hálózati protokoll TCP IP Fizikai hálózat Oracle adatbázis szerver Oracle szerver hálózati protokoll TCP IP Fizikai hálózat A kliensen dolgozik a felhasználó vagy közvetlen adatbázis-eléréssel (pl. SQL parancsokat ad ki), vagy egy olyan programmal, ahol a program tárolja az adatait adatbázisban (pl. a program SQL utasításokat tartalmaz). A hálózati kapcsolat általában TCP/IP-re épül, de lehet más is (pl. MS SQL Server-nél tipikusan NamedPipes). A kliens-re telepíteni kell olyan szoftverkörnyezetet, ami ismeri az adott adatbázis-kezelő saját kommunikációs protokollját. Sajnos ez nem szabványos, így ahány fajta adatbázis-kezelőt használunk, annyi fajta klienst fel kell telepítenünk a gépünkre.
Kliens – Szerver kapcsolat Kliens – Szerver kapcsolat Kliens Felhasználó (SQL) Program ODBC MS SQL kliens hálózati protokoll TCP IP Fizikai hálózat Szerver MS SQL szerver MS SQL szerver hálózati protokoll TCP IP Fizikai hálózat Javítja a helyzetet, hogy léteznek olyan szabványos hálózati protokollok, amelyek elfedik a felhasználói program elől, hogy valójában milyen adatbázis-kezelőt és protokollt használunk. Microsoft-os környezetben ilyen az ODBC, vagy JAVA-ban a JDBC (Java-s programokhoz, platform független hálózati protokoll).
A kliens gépen a következőkre van szükségünk (ha MS SQL Server-t használunk) Fizikai hálózat TCP/IP MS SQL kliens hálózati protokoll ODBC Felhasználói program: Delphi SQL Explorer MS SQL kliens hálózati protokoll (Microsoft termék lévén ez része a Windows-nak)
ODBC Vezérlőpult/Felügyeleti eszközök/ODBC Adatforrások Felhasználói DSN létrehozása: SQL Server … felhasználói DSN: ez csak egy bejegyzés, ami definiálja az adatbázisunk paramétereit (melyik szerveren van, milyen porton, mi az adatbázis neve, stb.) XWING, 157.181.160.122, 1433
Delphi SQL Explorer adatbázis tábla táblák eljárások Definition Data (+,-,, ,,) Enter SQL (, ,) +: beszúrás, -:törlés, : szerkesztés, : véglegesítés , : elvetés , :frissítés : futtatás, ,: lépegetés a parancsok között
Szabványos adatdefiníciós és lekérdezőnyelv (SQL) „Structured Query Language” „Strukturált LekérdezőNyelv” az SQL központi magja ekvivalens a relációs algebrával az SQL-nek számos olyan lényeges része is van, mely többet nyújt mint a relációs algebra, Az SQL központi magja ekvivalens a relációs algebrával, de számos olyan lényeges része is van, mely többet nyújt mint a relációs algebra, mint például az összesítések és az adatbázis-módosítások.
SQL DDL (Data Definition Language – Adat Definiáló Nyelv) DML (Data Manipulation Language – Adat Manipuláló nyelv) DCL (Data Control Language) DDL: séma kezelő utasítások: adatbázisok, táblák létrehozása, módosítása és törlése (CREATE, ALTER, DROP) DML: adat kezelő utasítások: adatok rögzítése, módosítása, törlése és lekérdezése (INSERT, UPDATE, DELETE, SELECT) DCL: (GRANT, REVOKE, ABORT, COMMIT, …, LOAD,…)