E N D
Bevezetés • Kedves Hallgató! Jelen prezentáció segítséget kíván nyújtani az Informatika alapjai I. tantárgy feldolgozásához. A tantárgyhoz rendelt további oktatási anyagok a Kamuti Hajnalka – Sándor Tamás: Számítástechnika I. (KKMF-1186 jegyzet), A most bemutatásra kerülő prezentáció ezen jegyzet sikeresebb használatához nyújt segítséget. A prezentáció végén az egyes témakörökhöz hasznos linkeket találhatnak, amely információk segítségével még jobban elmélyedhetnek az adott témakörben. A tanuláshoz sok sikert kívánok!
Bevezetés az adatbázis-kezelésbe Kamuti Hajnalka-Sándor Tamás Számítástechnika I. 149-152 o. 9.1. fejezet
Mi az információ, milyen típusai vannak ? • Valamely jelenségre vonatkozó értelmes közlés, amelynek új ismereteket szolgáltató része fontos a felhasználó számára. • Megkülönböztetünk parancs (séf a kuktának: sótlan az étel), motiváció (holnaptól emelkedik a benzin árfolyama) és közleménytartalmú (ma rekordhőmérsékletet mértek Fokvárosban) információt.
Mi az adat? • Az információnak a továbbító vagy tároló, általában számítástechnikai rendszerekben való konkrét megjelenési formája.
Mi az egyed (entitás)? • Az információval leírni kívánt jelenség egy osztálya. • Olyan általános objektum, amely minden más objektumtól megkülönböztethető. • Lehet fizikailag megfogható dolog (élõlény, tárgy) vagy elvont fogalom (pl.: hallgató, autó, érzelem).
Mi az egyed (entitás) egy előfordulása? • Az egyed egy konkrét értéke pl.: az autó egyed egy elõfordulása a GUJ-060-as rendszámú Audi A4 típusú személygépkocsi.
Mi a tulajdonság (attribútum) ? • Az egyedeket (entitásokat) leíró jellemző. pl.: az autó egyed tulajdonságai: gyártási év, típus, szín, rendszám. • Egy egyednek lehet több tulajdonsága (lsd. fent) és egy tulajdonság több egyedet is jellemezhet (pl. a szín egyaránt jellemezheti a háztetőket, az autókat, stb.). • A tulajdonság értékeivel egy adott egyed egy előfordulását határozzuk meg. gyártási év rendszám típus szín 1999 GUJ-060 Audi A4 bordó
Mi a tulajdonság (attribútum) egy előfordulása? • A tulajdonság (attribútum) egy konkrét értéke. Pl.: a rendszámnak, mint tulajdonságnak egy előfordulása a GUJ-060-as rendszám.
Mi a kulcs? • Az a tulajdonság vagy a tulajdonságok azon összessége, amely egyértelműen meghatározza, hogy az egyed mely előfordulásáról van szó. Pl. az autó egyed esetén a rendszám tulajdonság a kulcs, mert ez alapján egyértelműen azonosíthatók az autók. A kulcsmező értéke minden autónál más és kötelezően kitöltendő mező.
Mi az egyszerű és az összetett kulcs? • Egyszerű kulcs: ha a kulcs egy tulajdonságból áll. Pl. a rendszám tulajdonság önmagában egyértelműen meghatároz egy autót. • Összetett kulcs: ha több tulajdonság együttesen határoz meg egyértelműen egy egyedet. Pl. a név, cím, anyja neve, születési idő együttesen egyértelműen meghatároz egy hallgatót, hacsak egy ikerpár nem ugyanazt a nevet kapta
Mi a kapcsolat? • Az egyedek (entitások) közötti kapcsolatok leírására szolgáló kategória. Pl. a gépkocsi egyed kapcsolatban áll a tulajdonosával, mint egyeddel.
Mi a kapcsolat egy előfordulása? • A kapcsolat egy konkrét értéke. Pl. a GUJ-060 rendszámú gépkocsi kapcsolatban áll Kiss János nevű tulajdonosával.
Mit jelent az egy-egy (1:1) típusú kapcsolat? • Az egyik egyedhalmaz mindegyik eleméhez a másik egyedhalmaznak pontosan egy eleme kapcsolódik. A két egyedhalmaz egymásba kölcsönösen egyértelműen leképezhető. Pl. a férj-feleség kapcsolatban minden férjnek egy felesége van és fordítva. Hacsak nem követnek el bigámiát
Mit jelent az egy-több (1:N) típusú kapcsolat? • Az egyik egyedhalmaz mindegyik eleméhez a másik egyedhalmaz több eleme is tartozhat. Pl. a megye-település kapcsolatban egy település csak egy megyéhez tartozik de egy megyéhez több település is tartozhat.
Mit jelent az több-több (N:M) típusú kapcsolat? • Az egyik egyedhalmaz minden eleméhez a másik egyedhalmaz több eleme is tartozhat és fordítva. Pl. a könyv-szerző kapcsolatban egy könyvhöz több szerző is tartozhat és egy szerző több könyvet is írhatott.
Mi az adatmodell? • Az egyedek, a tulajdonságok és a kapcsolatok halmaza. • Az adatmodell az adatok struktúrájának leírására szolgál.
Milyen típusú adatmodelleket ismer? • Hierarchikus (fa) struktúrájú • Hálós (plex) struktúrájú • Relációs • Objektumorientált • Neuronhálós
Hierarchikus (fa) struktúrájú adatmodell • Olyan logikai file-struktúra, ami nem sík. • Elemek(csomópontok) hierarchikus rendjéből áll. • Gyökér : olyan szülő csomópont, amiből csak elágaznak más csomópontok. • Levelek:olyan gyermek csomópontok, amiből már nem ágaznak el további csomópontok.
Kiegyensúlyozott fa: minden csomópontból ugyanannyi számú alcsomópont ágazik el • Bináris fa: minden csomópontból két csomópont ágazik el • Egyszerű leképzés: alsóról a felső szintre történik (1:1 típusú kapcsolat) • Komplex leképzés: a felsőről az alsó szintre történik (1:több típusú kapcsolat) • Fizikai fileszervezés: a hierarchikus struktúrát használják mutatók, indexek - indexelt bejegyzések leírására • Logikai fileszervezés: rekord típusok kapcsolatának leírására használták
Hálós struktúra • minden kapcsolódhat mindennel - egy gyermeknek több szülője lehet - n:m típusú kapcsolatok megvalósítására képes
Jellemezze a relációs adatmodellt! • A relációs adatmodell elvét E. F. Codd alkotta meg 1971-72-ben, melyet 1976-ban P. Chen továbbfejlesztett. • Létrehozásának célja a hálós struktúra hátrányainak kiküszöbölése. • Matematikailag a legrészletesebben kidolgozott. • Felhasználóbarát, táblázatos forma. • Nagyméretű (nagy adatbázis kezelésére alkalmas) • Biztosítja az adatok integritását (sérthetetlenségét), konzisztenciáját(következetességét), redundancia (felesleges adatismétlés) mentességét.
Az állomány adatainak kapcsolatai egy kétdimenziós tábla segítségével szemléltethető. - Rekord: az egyed konkrét előfordulásai, a tábla soraiban helyezkednek el. Egy táblában nem fordulhat elő két azonos rekord! - Mező: a tábla oszlopai, az egyed tulajdonságait tartalmazzák. Egy táblában nem fordulhat elő két azonos mezőnév! Egy oszlopon belül csak azonos típusú adat szerepeltethető (pl. szöveg vagy szám)! - A reláció foka: a táblában szereplő tulajdonságok (oszlopok) száma. - A reláció számossága: a táblában előforduló rekordok (sorok) száma. - Azonosító mező: az egyedek (rekordok) egyértelmű azonosítására szolgáló tulajdonságoszlop más néven kulcs.
Reláció=tábla=egyed=entitás Sor =rekord= az egyed egy előfordulása. Oszlop=tulajdonság=attribútum =mező
Redundancia (adattöbszörözés vagy származtatott tények tárolása)
A konzulensek ismétlődése nem redundancia, mert törlése információvesztéssel jár. A telefonszámok is métlődése redundancia, mert törlése nem jár információvesztéssel. • Az eredeti tábla tehát redundáns. Redundancia megszüntetése:Normalizálás:Az eredeti táblát több táblára bontjuk és a táblák között kapcsolatot hozunk létre. A Konzulensek és a Hallgatók tábla között egy-több típusú kapcsolat van, mert egy konzulensnek lehet több hallgatója, de minden hallgató csak egy konzule • 1-N (egy-több) típusú kapcsolat létrehozása: Az elsődleges tábla (ahonnan az egy kapcsolat kiindul) jelen esetben a Konzulensektábla kulcsátfelvesszük a másik táblába sima mezőként és ezen kapcsolómezőkön keresztül a két táblát összekapcsoljuk. • N-M (több-több) típusú kapcsolat létrehozása: A két kapcsolódó tábla közé felveszünk egy kapcsolótáblát, amelyben elhelyezzük a kapcsolódó táblák kulcsát.
Objektumorientált adatmodell • Relációs alapokon nyugszik. Nemcsak az egyedet(pl. hallgatók), annak tulajdonságait(neve, születési dátuma, neptun kódja) adjuk meg, hanem az egyed cselekvéseit is (kurzust vesz fel, vizsgára jelentkezik, pótdíjat fizet).
Neuronhálós adatmodell • Az agyi idegsejtek kapcsolódásai alapján modellezi az adatokat. • A mesterséges intelligencia kutatások célja: intelligens számítógéprendszerek létrehozása • A mesterséges intelligencia programok olyan módon oldják meg a problémákat, amilyet az emberek esetén intelligensnek neveznénk • Intelligens viselkedés, hatékony problémamegoldás jellemzői: képes kommunikálni, képes tanulni, öntanulni, képes bizonytalan szituáció kezelésére, kivételek kezelésére • Olyan problémák megoldásával foglalkozik, amelyben az emberek jobbak. • Amire nem képesek:az intuíció (ösztönös megérzés) • Magyarországon többek között az IQSOFT cég foglalkozik tudásalapú szakértői rendszerek, MI kutatással.
Milyen területeken folynak a kutatások: • - automatikus programozás • - automatikus tételbizonyítás • - beszédfelismerés, beszédgenerálás • - gépi látás, gépi tanulás • - robotika • - természetes nyelv feldolgozás • - neurális hálózatok • - bizonytalanság-kezelés területe • -játékautomaták • -orvosi rendszerek
Tudásalapú szakértői rendszer felépítése • Tudásbázis: adott problémára, illetve tárgykörre vonatkozó specifikus ismereteket tároljuk jól struktúrált módon, a Tárgyterületi szakértő összes tárgyi tudását beépítjük a gépbe • Tárgyterületi szakértő:szaktudásával segít feltölteni a tudásbázist • Következtetőgép: általános problémamegoldó ismereteket tartalmaz, a tudásbázis felhasználásával adott problémára konkrét megoldást ad • Munkamemória:a következtetőgép munkaterülete, ide kerülnek a probléma kezdőadatai, kommunikációs eredmények, válaszok, kérdések • Magyarázó alrendszer bizonyos felhasználói felületen keresztül tájékoztatja a felhasználót, hogy hol tart a gép a probléma megoldásában, feldolgozásában, intelligens kérdéseket tesz fel.
Mi az adatbázis? • Szükségtelen redundancia nélkül együtt tárolt, egymással kapcsolatban álló adatok összessége, ahol az adattárolás független a felhasználói programoktól.
Mi az adatbázis - kezelő rendszer? • Adatbázisokat kezelő szoftver. • Rövidítése: Data Base Management System (DBMS). • Fa struktúrájú adatmodelleket kezelő szoftverek: IMS, DL/1, IMS-VS, DL/I ENTRY, VANDL/1. • Hálós struktúrájú adatmodelleket kezelő szoftverek: IDMS, DENNIS (Dunaferr). • Relációs ORACLE, ACCESS, DB2, DBASE, PARADOX, SYSTEM-R, SYBASE, SQL.
Adatbázis rendszerek kialakulása • ókor: kőtábla, papírusz • - kartotékrendszerek (kórház, könyvtár) • - lyukkártya, lyukszalag • - 1960: mágneses háttértárolók • - 1960-as évek közete: gyors hozzáférési idejű háttértárolók • - BOMP: darabjegyzék feldolgozó rendszer • - 1965 CODASYL bizottság létrehozta az LPTG csoportot • - 1967 az LPTG csoport nevet változtat DBTG-re • - 1969 a DBTG szabványosítja a Cobol nyelvet (alapműveletei: olvasás, írás, újraírás és törlés, tisztázzák az adabázis négy alapvető műveletét) • - 1971 a DBTG két csoportra oszlik (DBLC, DBLTG – alkalmazott struktúra alapján) • - 1973 DBLTG javaslatot tesz a hálós (Plex) struktúrára, két nyelvet ír le • - DML: date manipulation language (adat manipuláló nyelv) • - DDL: date definition language • - 1968-70 az IBM felhasználók egy csoportja javaslatot tesz a hierarchikus vagy fa struktúrájú adatbázisok kezelésére: GUIDE-SHARE • - 1970 a relációs struktúrák felé fordul a figyelem • - 1971-1972 E.F.Codd egységesítette relációs strukturák alapelveit • - 1976 Chen továbbfejlesztette a rendszert • - 1975 lerakják az adatbáziskezelés alapköveit a Belgiumi konferencián, megteremtik, mint tudományágat
Mik a DBMS-ekkel szembeni főbb követelmények ? • Programfüggetlenség: az adatok tetszés szerinti programmal, tetszés szerinti időben felhasználhatók legyenek • Az adatbázis kapcsolatokat kezeljen. • Az adatok integritásának (sérthetetlenségének) és konzisztenciájának (torzíthatatlanságának) biztosítása. • Az adatvédelem megoldása: az adatok fizikailag ne sérüljenek és illetéktelenek ne férhessenek hozzájuk. • Redundancia mentes adattárolás. • Az adatkezelés központi irányítása: az elosztott adatbázisoké a jövő. • Többféle adatelérési stratégia. • Egyidejű adatelérés (shaering): egyidejűleg több felhasználó is elérhesse ugyanazt az adatot • Ad- hoc igény kielégítés: olyan információk kinyerése, amelyek látszólag nincsenek benne az adatbázisban. • Igény szerinti átalakítás lehetősége. • Gondoskodás a változtató tranzakciók alatt az adatok lezárásáról, a sikeres tranzakciók véglegesítéséről, a sikertelenek vissza görgetéséről. • Minimális válaszidők, alacsony költségek. • Az adatbázis-kezelők építenek az operációs rendszerekre, így a fizikai input-output lebonyolítását az operációs rendszerre bízzák.
SQL • Nem szerepel az előírt jegyzetekben, e slide-ok keretében ill. konzultációkon tárgyaljuk.
Mi az SQL? • Strukturált lekérdező nyelv (Structured Query Language). • Relációs adatbázisok létrehozására és lekérdezésére szolgáló nyelv. • 1986-ban az Amerikai Szabványügyi Hivatal (ANSI) szabványosította.
Melyek az SQL jellemzői? • Nem algoritmikus nyelv, nincsenek benne vezérlési szerkezetek (ciklusok, elágazások). • Az adatok keresésekor nem adatok elérési útját adjuk meg, hanem az adatok tulajdonságait. • Nem önálló nyelv, relációs adatbázis-kezelőkbe építik bele a lekérdezés megkönnyítésére (pl. DB2, INGRES, ORACLE, DBASE IV-, NOVELL, XQL, MAGIC, PARADOX). • Alapja a relációs algebra.
Az SQL mely szabványait ismeri? 3 fő szabványa van: • ANSI SQL • SQL92 = SQL2 • SQL3 (SQL2 + triggerek, rekurziók, objektumok)
Relációs algebra műveletei • Projekció: A projekció során egy reláció oszlopai közül csak bizonyosakat őrzünk meg az eredmény relációban. Csak a Hallgató egyed Nevére és Neptun kódjára vagyok kíváncsi. • Szelekció:A szelekció művelete során egy relációból csak egy adott feltételt kielégítő sorokat őrizzük meg az eredmény relációban. Csak a debreceni hallgatókra vagyok kíváncsi. • A projekciót és a szelekciót általában együtt használjuk: A debreceni hallgatók nevére és neptun kódjára vagyok kíváncsi.
Szelekciós feltételek • Konstans szelekciós feltétel: Mezőértéket hasonlítok konstanshoz. Kor>25 • Attribútum szelekciós feltétel: Mezőértéket hasonlítok mezőértékhez. Súly>2xMagasság
Milyen záradékait, cikkelyeit, klauzóláit tanulta az SQL-nek? • select • from • where • group by - csoportosítás • order by - rendezés
Listázza az aktuális meghajtó adatbázisait! • SHOW DATABASE;
Hozzon létre egy Szemelygk nevű adatbázist az alábbi könyvtárban! • CREATE DATABASE C:\Dokumentumok\ Szemelygk.mdb;
Aktiválja, nyissa meg az adatbázist! • START DATABASE C:\Dokumentumok\ Szemelygk.mdb;
Hozzon létre egy Autok nevű táblát a Szemelygk adatbázisban! • CREATE TABLE Autok Tipus:CHAR(20), Gyartasiido:DATE(4), Gyartoorszag:CHAR(30), Serulte:BOOLEAN, Ar:INTEGER, Rendszam:CHAR(6), Szin:CHAR(6);
Szúrjon be egy rekordot a táblába! • INSERT INTO Autok (Tipus) VALUES (‘Lancia’), (Gyartasiido) VALUES (2004.07.01.), (Gyartoorszag) VALUES (‘Olaszorszag’), (Serulte) VALUES (false), (Ar) VALUES (7000000), (Rendszam) VALUES (LAN-777);
Az autok nevű táblából kérdezze le az összes mező értékét! • SELECT * FROM autok;
Az autok nevű táblából kérdezze le a rendszám és az ár mezők értékeit! SELECT rendszam, ar FROM autok;
Kérdezze le ismétlődés nélkül az autok típusait! SELECT DISTINCT típus FROM autok;
Kérdezze le ismétlődés nélkül azon autók tulajdonosának nevét, amelyeknek típusneve O betűvel kezdődik vagy a gyártási idejük 1985.01.01 és 2000.01.01 között van! • SELECT DISTINCT Tulajdonos FROM Autók WHERE Típus LIKE ’O%’ OR Gyártási idő between 1985. 01. 01. and 2000. 01. 01.;