1. Adatbázis-kezelés 1.1 Alapfogalmak Adat: értelmezhető ismeret (észlelhető, érzékelhető, felfogható, megérthető) Információ: új ismereteket hordozó adat (relatív) Cél, hogy az egyre több rendelkezésre álló adatból a lehető legtöbb információ legyen értelmezhető. A számítástechnikában az adatot a számítógépen tárolt jelsorozat jelenti, melyből az adatfeldolgozás során nyerhetünk információt. Adatfeldolgozás lépései: 1. Adatszerkezet tervezése - milyen adatokat kell bevonni a feldolgozásba - kapcsolataikat elemezni kell - az adatok típusát meg kell határozni - rekordszerkezet ki kell alakítani 2. Adatbevitel 3. Információ kinyerése (összesítések, lekérdezések) 4. Adatok aktualizálása (törlése, módosítás, új adatok tárolása) Adatbázis: az adatfeldolgozási feladataink szempontjából összetartozó adataink összessége, mely lehetővé teszi a hatékony hozzáférést, az integritás megőrzését és az adatok védelmét. Adatbázis-kezelő rendszer: olyan programrendszer, melynek feladata az adatbázishoz való hozzáférés biztosítása és az adatbázis belső karbantartási funkcióinak végrehajtása. Az adatbázis felhasználói: - adatbázis-adminisztrátorok (adatbázis menedzselése, kiemelt jogosultság) - adatbázis-alkalmazók (alkalmazásokon keresztül érik el az adatbázis meghatározott részét, korlátozott jogosultság) Adatmodell: a valóság objektumainak, azok jellemzőinek és viszonyainak lényeges, általános és tartós összefüggésit írja le. Adatmodellezés: az adatmodell megalkotásának folyamata; absztrakció, a feldolgozás szempontjából fontos valóságrész leképezése egy adatmodellbe. Ugyanarra a feldolgozandó ismerethalmazra eltérő szerkezeti tulajdonságokkal előállított adatmodellek készíthetők. Adatmodell típusok - hierarchikus - hálós - relációs - objektum-orientált A modellek alkatóelemei (E-T-K) - Egyed: azokat a tárgyakat, személyeket, fogalmakat, amelyeket bizonyos jellemzőik felsorolásával határozunk meg, az adatfeldolgozás során egyedeknek nevezzük. Pl.: személy, könyv, autó, érzelem, vállalat stb. Egyed az, amit le akarunk írni, amiről adatokat gyűjtünk, tárolunk. - Tulajdonság: Az egyedek jellemzőinek megadásakor megfogalmazott ismereteket az egyedre vonatkozó tulajdonságoknak (attribútum) nevezzük. A személy attribútuma lehet pl. név, születési hely, születési dátum, lakcím, stb. - Kapcsolat: az egyedek közötti viszonyt kapcsolatnak nevezzük.Pl. egyedek közötti viszony, hogy a személyek a vállalat dolgozói. A kapcsolatok fajtái - Egy-egy típusú kapcsolat (1:1 kapcsolat) Az egyik egyedhalmaz mindegyik eleméhez a másik egyedhalmaz pontosan egy eleme kapcsolódik. Pl. Személyi azonosító mint egyed és a személy egyed. - Egy-több típusú kapcsolat (1:N kapcsolat) Ha az A egyedhalmaz mindegyik eleméhez a B egyedhalmaz több eleme is tartozhat. Pl. a megye egyed és a település egyed között 1:N kapcsolat van. - Több-több típusú kapcsolat (M:N kapcsolat) Az A egyedhalmaz minden eleméhez a B egyedhalmaz több eleme tartozhat, és fordítva, egy B-beli elemhez is több A-beli elemet rendelhetünk hozzá. 1.2 Relációs adatmodell A legnépszerűbb adatmodell, köszönhető: - matematikai kidolgozott háttérének (az E-T-K alkotóelemek a matematika relációelméletének eszközeivel egzakt módon kifejezhetők) - viszonylagos egyszerűségének. A relációs adatbázis egymással összefüggésban álló adatokat tartalmazó táblázatok együttese. A táblázat egy egyedet (egyedtípus) jelent. A táblázat oszlopainak azonosítói a tulajdonságok halmazát határozzák meg. A táblázat minden sora (rekord) egy konkrét egyedre vonatkozik, a sor minden egyes tulajdonságértéket tartalmazó rovatában (mező) csak egy érték állhat. A mezőnek tehát eleminek kell lennie. A sorok legalább egy tulajdonságértékben különböznek. A relációs adatbázis tehát az adatfeldolgozási feladataink szempontjából összetartozó adataink összessége több táblázatba szervezve. Ezekre jellemző a köztük lévő kapcsolat és rekordjaik belső szerkezete. A rekordok szerkezete a mezőket azonosító elnevezésekből áll, melyekre jellemző azok típusa és adatbefogadó képessége. Megfigyelések az attributomok halmazán: - bizonyos attribútumok függhetnek másik attribútumtól (Pl. a termék egyed esetén a termék kódja meghatározza az egységárat) - bizonyos oszlopokban lévő értékek a sort egyértelműen azonosítják (pl. személyek egyed esetén a személyi szám attribútum) Kulcs attribútum(ok): olyan attribútumok halmaza, amelyeknek értékei alapján képesek vagyunk egy sort azonosítani, az egyedek között különbséget tenni. Elsődleges kulcs: egy relácó (táblázat) esetén a több szóba jöhető kulcs közül, a konkrét adatfeldolgozás végrehajtásához figyelembe vett kulcs. Idegen kulcs (külső kulcs): olyan attribútumok, melyek egy másik relációban elsődeleges kulcskánt szerepelnek. A két reláció összekapcsolásánál játszanak szerepet. Az adatbázis (relációk) megadása: felsoroljuk az adatbázist alkozó táblázatokat a következő formában: relációnév (attribútumnév1, attribútumnév2, ..., attribútumnévN) Az elsődleges kulcsot alkotó attribútumokat aláhúzzuk. Az attribútumokat tovább kell részletezni: - milyen típusú értéket vehetnek fel (karakteres, szám, logikai, dátum, stb.) - adatbefogadó képesség megadása (milyen tartományból vehetik fel az értékeiket). Adatok validálása (ellenörzése): Az adatbevitel során ellenőrizzük a megadott adatokat a megfelelő adattartalom tárolása érdekében: - formai ellenörzés - tartalmi ellenőrzés Az adatszerkezet kialakításakor ügyeljünk - a redundanciák kiküszöbölésére - anomáliák elkerülésére Redundancia: felesleges adatismétlést jelent. Olyan táblaszerkezetet kell találni a tervezés során, mely elkerüli a redundanciát. A redundancia - rossz helyfoglalás szempontjából, - a változások átvezetését nehézkessé teszi. Anomáliák: rosszul előkészített adatbázisok esetén, különféle feladatvégrehajtásokkor adatfeldolgozási rendellenességek keletkezhetnek: - módosítási anomália: egy attribútumértéket csak úgy tudunk megváltoztatni, ha a táblázat minden sorát tételesen átvizsgáljuk - törlési anomália: a táblázatból csak adatvesztés árán van lehetőség a pillanatnyilag szükségtelen tétel eltávolítására - bővítési anomália: a táblázatba új tételt kell elhelyezni, amit azonban a szerkezet adattal történő feltöltésének filozófiája nem tesz lehetővé Adatbázisok normalizálása A redundancia és az anomáliák elkerülése miatt szükség van az adatbázisunk normalizálására. Alapfogalmak Funkcionális függés: a relációt alkotó attribútumok B részhalmaza funkcionálisan függ az A attribútumok részhalmazától, ha az A részhalmaz azonos értékei mellett a B részhalmaz is mindig ugyanazokat az értékeket veszi fel. Teljes fncionális függés: ha az A attribútum részhalmaztól funkcionálisan függ a B attribútum részhalmaz, ez a függés azonban az A egyik részhalmazára sem áll fenn. Tranzitív funkcionális függés: az A attr. részh-tól tranzitívan függ a C attr. részh., ha létezik olyan B attr. részh., mely A-tól függ, a C pedig a B-től. Általában a normalizáció következményei: - az adatok tárolása kevesebb helyet igényel - az adatok gyorsabban és pontosabban, kevesebb hibalehetőséggel változtathatók - at adatbázis áttekinthetőbb Egy relációnak létezik első normálformája (1NF), 2NF, 3NF, 4NF és 5NF. 1NF: egy reláció 1NF-ben van, ha - minden oszlopban csak egy attribútum jelenhet meg (elemi adat) - minden sora legalább egy összetevőben különbözik egymástól - az oszlopok sorrendje minden sorban ugyanaz - nem fordulhat elő oszlopismétlés 2NF: egy reláció 2 NF-ben van, ha - 1 NF-ben van - az összes nem kulcs attribútum funkcionálisan teljesen függ az elsődleges kulcstól 3NF: egy reláció 3 NF-ben van, ha - ha 2NF-ben van - nincsenek benne az elsődleges kulcstól tranzitíven függő attribútumok 1.3 Példa Pékség adatainak nyilvántartása Ismertebb relációs adatbáziskezelők: (dBASE, Foxpro, Clipper, Access,) Oracle, Ingress, MS SQL Server, MySQL, PostgreSQL. 2. Adattáblák kezelése az Excel-ben Adattábla: kötött szerkezetű táblázat -Az első sora a mezőfej, mely a táblázat oszlopneveit tartalmazza (attribútumok) -Az oszlopnevek alatt sorokba szervezve következnek az egy egyedre vonatkozó adatok (rekordok) Műveletek adattáblákkal -Rendezés -Rekordok szűrése (AutoSzűrő, Irányított szűrés) A szűrés feladata a meghatározott feltételnek megfelelő sorok kiválasztása. -Csoportosító és részösszeg műveletek Egy adattáblát résztáblákra bonthatunk (csoportosítás) és ezeken a résztáblákon műveleteket végezhetünk (pl. részösszeg). Adatbázis-kezelő függvények - AB.ÁTLAG(), AB.SZÓRÁS() Korlátok: -Több táblát tartalmazó adatbázist nem kezel -A sorok száma 65536 lehet maximum -Rendezés maximum 3 tulajdonság alapján lehetséges -Cellatartalom 32767 karakter maximum, ebből 1024 jelenhet meg a cellában. Példa: Adattábla R-ből (EuStockMarkets) Excelbe. my_stock<- cbind(year=floor(seq(from=1991.496, to=1998.646, length.out=1860)),as.data.frame(EuStockMarkets)) write.table(my_stock, "c:/my_stock.txt", sep=";", dec=",", row.names=F) Excelben Rendezés, Szűrés, Csoportosítás és részösszeg, adatbáziskezelő függvények 3. Adatbáziskezelés Access-ben Példa my_stock.txt importálása Access-be - Új adatbázis készítése (Fájl/Új/Üres adatbázis) - Importálás (Fájl/Külső adatok átvétele/Importálás) A my_stock tábla lekérdezése - Lehetőségek a Táblák/Megnyitás/Adatlap nézet opcióban - Lehetőségek a Lekérdezések alatt - Új/Egyszerű lekérdezés varázsló - Új/Tervező nézet Példa Oktatási intézmény szeretné nyilvántartani a hallgatók tanfolyami díjainak befizetését. - Új adatbázis készítése (Fájl/Új/Üres adatbázis) - Táblák létrehozása: Tablák/Új/Tervező nézet - Hallgató (törzsszám, vezetéknév, keresztnév, irszám, város, cím, telefon) - Tanfolyam (tanfazon, tanfnév, tandíj, óraszám, maxlétszám, ismertetés) - Befizetés (Számlaszám, dátum, összeg, törzsszám, tanfazon, tartozik-e) Gondoskodjunk az elsődleges kulcsokról (Hallgató - törzsszám - Szám típus; Tanfolyam - tanfazon - Szöveg 6 hosszon; Befizetés - számlaszám - Számláló), és többi attribútum helyes típusának megválasztásáról. - Kapcsolatok definiálása: Eszközök/Kapcsolatok - a Hallgató tábla törszszám mezőjét vonszuljuk a Befizetés tábla törzsszám mezőjére - a Tanfolyam tábla tanfazon mezőjét vonszoljuk a Befizetés tábla tanfazon mezőjére - mindkét esetben jelöljük be a hivatkozás integritása és a kapcsolt mezők kaszkádolt frissítése opciókat. - Készítsünk másolatot az adatbázisunkról - Új adatbázis készítése (Fájl/Új/Üres adatbázis) - Importálás (Fájl/Külső adatok átvétele/Importálás) - Adatbázis és táblák kijelölése - Új mező beillesztése - A Hallgatók táblába szúrjunk be egy új mezőt, mely a hallgatók születési idejét tárolja - Mezőhossz változtatása: a Hallgató város mezőjének hosszát növeljük meg - Mező törlése - Adatbevitel ellenörzése: beviteli maszk megadása, érvényességi szabály megadása