Adatbzisok hasznlata 2012 02 14 Rzsa Gyz raverraver
Adatbázisok használata 2012. 02. 14 Rózsa Győző raver@raver. myip. hu
A diasor ismerete nem helyettesíti a tankönyvet, és a példatárat. A diasor ismerete szükséges, de nem elégséges feltétele a minimum elégséges érdemjegynek! A tárgy weboldala: http: //www. orakulum. com 2
Tudnivalók • • kis. ZH-k minden egyes óra elején 7. /12. héten nagy ZH Féléves feladat A féléves jegy számítása – Kis ZH-k eredménye – Nagy ZH-k eredménye – Féléves feladat – Mindegyik legalább elégségesre teljesítése A tárgy weboldala: http: //www. orakulum. com 3
Ajánlott Irodalom – Oracle példatár (SQL, PL/SQL) (Kende Mária Nagy István) – Adatbázis-kezelés Oracle Rendszerben (Kende Mária, Kotsis Domonkos, Nagy István) – Oracle database 10 g Teljes referencia (Kevin Loney) A tárgy weboldala: http: //www. orakulum. com 4
Orakulum • http: //www. orakulum. com • Ez a tárgy hivatalos weboldala – Ezen belül Adatbázis kezelés – Azon belül: AKT A tárgy weboldala: http: //www. orakulum. com 5
Féléves feladat • Félév során folyamatosan kell készíteni • A feladatkiírás, és a követelményei a www. orakulum. com weboldalról letölthető – 01 -3_FF_Követelmény MM (12). doc – 01 -4_FF_Feladatkiírás MM+MI (10). doc • A következő gyakorlatra mindenkinek hoznia kell a feladatkiírást (értelemszerűen kitöltve, aláírva) • FONTOS: Összetett kulcsok használata!!! • http: //www. gazdinfo. hu (Oracle képfájl) A tárgy weboldala: http: //www. orakulum. com 6
Menetrend (1. NAGYZH) • 1. : Normalizálás, Egyszerű SQL lekérdezések – kis. ZH: Papír alapú, a normalizálásból (ehhez még letölthető segédlet az Orakulumról!) 2. : Egysoros és Csoportfüggvények 3. : Többtáblás lekérdezések, és allekérdezések 4. : Interaktív környezet 5. : DDL, DML, Adatbázis tranzakciók, Megszorítások • 6. : Nézettáblák, Rownum, Felső-N analízis • • A tárgy weboldala: http: //www. orakulum. com 7
Menetrend (2. NAGYZH) • • • 8. : DCL (Admin ismeretek) 9. : Részletező csoportosítások 10. : Analitikus függvények 11. : Hisztogram fv-k +1. : Féléves feladat leadása!!! A tárgy weboldala: http: //www. orakulum. com 8
Mi az Adatbázis? • Az adatbázis azonos minőségű (jellemzőjű), többnyire strukturált adatok összessége, amelyet egy tárolására, lekérdezésére és szerkesztésére alkalmas szoftvereszköz kezel. • Az adatbázisok célja adatok megbízható, hosszú távon tartós (idegen szóval: perzisztens) tárolása, és viszonylag gyors visszakereshetőségének biztosítása. Forrás: Wikipedia A tárgy weboldala: http: //www. orakulum. com 9
Mi az Adatbázis-kezelő? • Az adatbázis fogalma nem keverendő össze az adatbázis-kezelővel, amely az adatbázis működtetésére, rendszerszintű és felhasználói folyamatainak szervezésére szolgál. Sok esetben azonban mégis egymás szinonimájaként használjuk (például bár a valóságban adatbáziskezelőket vásárolunk és telepítünk, mégis sokszor mondjuk, hogy „vettem/telepítettem egy adatbázist”), ha ez félreértésre nem ad okot. Forrás: Wikipedia A tárgy weboldala: http: //www. orakulum. com 10
Milyen adatbázis kezelő rendszereket ismertek? • • • MS-SQL My. SQL postgre. SQLite Oracle Database A tárgy weboldala: http: //www. orakulum. com 11
Főbb mérföldkövek az Oracle Database fejlesztésében • Soha nem volt 1 -es verzió, 2 -essel indult (persze ez csak marketing fogás volt) – 1979 Oracle V 2 • 1983: Oracle 3: C nyelven írták már (COMMIT, ROLLBACK) • 1988: Oracle 6: PL/SQL • 1997: Oracle 8: Objektum Orientált tervezés támogatása • 2005: Oracle 10 g. R 2 Ezt használjuk A tárgy weboldala: http: //www. orakulum. com 12
Adatmodellek • Hierarchikus – Legelső adatbázis kezelők használták (fa szerkezet, szülőgyermek kapcsolat) • Hálós – Hierarchikus továbbfejlesztett változata (Itt egy gyereknek már több szülője is lehet) • Relációs – ’ 80 -as évektől a legelterjedtebb, legáttekinthetőbb modell – Az adatokat egymással kapcsolatban álló táblázatok rendszerében ábrázolja • Objektum Orientált – Intelligens elemekből épül föl A tárgy weboldala: http: //www. orakulum. com 13
Relációs adatmodell • Táblázatos ábrázolás (több táblázat az adatbázis tulajdonképpen) • A sorai a rekordok • A sorok egy oszlopa a mező • Kritériumok: – Nem lehet két azonos sor – A sorok és oszlopok sorrendje nem számít A tárgy weboldala: http: //www. orakulum. com 14
Relációs modell - kapcsolat típusok • Nincs kapcsolat • 1: 1 kapcsolat – Minden halmazból 1 elemnek csakis 1 elem felel meg, és viszont • 1: N kapcsolat – Egy halmazból 1 elemnek több elem is megfelel, fordítva viszont csakis egyetlen egy • M: N kapcsolat – Mindkét halmazból 1 elemhez tartozhat több elem, és fordítva A tárgy weboldala: http: //www. orakulum. com 15
Kulcsok • Elsődleges kulcs – Minden rekordban egyedi!!! (Lehet összetett is) – Nem lehet ‚NULL’ • Idegen kulcs – Egy másik tábla elsődleges kulcsa • Összetett kulcs – Legalább két attribútumból áll A tárgy weboldala: http: //www. orakulum. com 16
Adatbázis Anomáliák • Módosítási Anomália • Törlési Anomália • Bővítési Anomália A tárgy weboldala: http: //www. orakulum. com 17
Normalizálás • A hozzá kapcsolódó anyag az orakulum. com weboldalon a „labor”-on belül található – SQL Bevezető feladatgyűjtemény (pdf) • Egyszerűen megfogalmazva: – Az az eljárás, mely segítségével az adatok ésszerű csoportosítása formálisan is elvégezhető • Mi a célja? – Redundancia csökkentése A tárgy weboldala: http: //www. orakulum. com 18
Normalizálás • A függőségekre bizonyos követelményeket fogalmazunk meg (normálformák): – 1 NF: Minden attribútum egyszerű – 2 NF: A másodlagos attribútumok mindegyikét a kulcsattribútumok csak együttesen határozzák meg – 3 NF: A másodlagos attribútumok egymástól függetlenek – BCNF (Boyce-Codd): A kulcs attribútumoknak nincs olyan részhalmaza, mely más kulcs- vagy másodlagos attribútumoktól függene. (Azaz nincs kulcstörés) A tárgy weboldala: http: //www. orakulum. com 19
1. NF • Minden attribútum egyszerű NÉV Tóth Gyula Foglalkozások bádogos, vízvezeték szerelő NÉV Tóth Gyula Foglalkozás bádogos vízvezeték szerelő A tárgy weboldala: http: //www. orakulum. com 20
2. NF • Mi az a Funkcionális függőség? – Ha egy tulajdonság értékét, egy másik tulajdonság egyértelműen meghatározza – Mondjunk erre pár példát a hétköznapokból! • A reláció minden nem elsődleges attribútuma teljes funkcionális függőségben van az összes reláció kulccsal A tárgy weboldala: http: //www. orakulum. com 21
2. NF • Ismerjük föl a függőségeket! – A Terem meghatározza a férőhelyek számát – A Terem és az Óra kezdete pedig a Tárgyat A tárgy weboldala: http: //www. orakulum. com 22
2. NF A tárgy weboldala: http: //www. orakulum. com 23
3. NF • A reláció nem tartalmaz funkcionális függőséget a nem elsődleges attribútumok között. Tárgy Adatbázisok Analízis Diszkrét Matek Oktatóm Rózsa Győző Kis Gábor Email raver@raver. myip. hu kg@nik. uni-obuda. hu Jelen esetben a Tárgy egyértelműen meghatározza az oktatót, az oktató azonban az ő email címét. (Tárgy ->Oktatóm ->Email) A tárgy weboldala: http: //www. orakulum. com 24
3. NF Tárgy Adatbázisok Analízis Diszkrét Matek Oktatóm Rózsa Győző Kis Gábor Tárgy Oktatóm Adatbázisok Rózsa Győző Analízis Kis Gábor Diszkrét Matek Kis Gábor Email raver@raver. myip. hu kg@nik. uni-obuda. hu Oktatóm Email Rózsa Győző raver@raver. myip. hu Kis Gábor A tárgy weboldala: http: //www. orakulum. com kg@nik. uni-obuda. hu 25
BCNF • Boyce-Codd normál forma – A kulcs attribútumoknak nincs olyan részhalmaza, mely más kulcsvagy másodlagos attribútumoktól függene. (Azaz nincs kulcstörés) – Tulajdonképpen a 3. NF egy szigorúbb változata – FELTÉTEL: MINDEN TANÁR CSAK EGY TÁRGYAT OKTAT, DE TÖBB FÉLÉVÉT IS – Mi lehet a probléma? Az Oktató és a Félév meghatározza a Tárgyat, de a Tárgy és a Félév pedig az Oktatót Oktató Csicsek Judit Berta Gábor Csicsek Judit Tanév 2010 -2011 2009 -2010 2011 -2012 2009 -2010 -2011 Tárgy Matematika Programozás Matematika A tárgy weboldala: http: //www. orakulum. com Félév Létszám 1 1 2 2 3 13 14 15 16 17 26
BCNF 2. Tanév 2010 -2011 2009 -2010 2011 -2012 2009 -2010 -2011 Oktató Csicsek Judit Berta Gábor Csicsek Judit Tárgy Matematika Programozás Matematika Tanév 2010 -2011 2009 -2010 2011 -2012 Félév Létszám 1 1 2 2 3 13 14 15 16 17 Tárgy Matematika Programozás Matematika A tárgy weboldala: http: //www. orakulum. com 27
A normalizálás lépései • 1. : Az ősmodell kijelölése, hívhatnánk 0. lépésnek is. • 2. : Tárolandó attribútumok kijelölése • 3. : Függőségek felismerése • 4. : Ezen függőségek normalizálása • 5. : Ezen függőségek összefoglalása • 6. : Adatmodell felírása A tárgy weboldala: http: //www. orakulum. com 28
SQL alapok • Strukturált Lekérdező Nyelv – Először az Oracle használta • Adattípusai – Numerikus – Alfanumerikus – Dátum – Egyéb típusok (pl: blob, clob) A tárgy weboldala: http: //www. orakulum. com 29
Egyszerű SQL lekérdezések • SELECT FROM WHERE GROUP BY HAVING ORDER BY ; • A bűvös szavak, oda-vissza kell tudni • Interaktív játék (Tornázzunk egy kicsit) A tárgy weboldala: http: //www. orakulum. com 30
Egyszerű SQL lekérdezések - Ismerkedés az „sql plus”-al • • • Virtuális gép indítása SQL plus indítása Felhasználónév: scott Jelszó: tiger Mit tegyünk ha nem sikerül belépni – 1: Várjunk egy picit, amíg a szolgáltatás elindul – 2: Szolgáltatás újraindítása A tárgy weboldala: http: //www. orakulum. com 31
Egyszerű SQL lekérdezések - ismerkedés a táblákkal • Két táblával fogunk foglalkozni • Ha ezek otthon valami miatt nem töltődnének be, akkor a „labor”-on belül az init 2. sql fájl kell lefuttatni (@init 2). • EMP tábla – Alkalmazottak tábla, mely oszlopai: EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM, DEPTNO • DEPT tábla – Telephely tábla, mely oszlopai: DEPTNO, DNAME, LOC A tárgy weboldala: http: //www. orakulum. com 32
Egyszerű SQL lekérdezések • A SELECT utasítás: – Az adatok egy halmazát válogatja ki egy táblázatba • FROM: – Meghatározza, hogy mely táblából szeretnénk kiválogatni az adatokat • WHERE: – Itt adhatunk meg szűrési feltételeket • „; ” : – Minden utasítást pontosvesszővel zárunk A tárgy weboldala: http: //www. orakulum. com 33
Egyszerű SQL lekérdezések - példák • Listázzuk ki az EMP tábla tartalmát – SELECT * FROM EMP; • Listázzuk ki a DEPT tábla tartalmát – SELECT * FROM DEPT; A tárgy weboldala: http: //www. orakulum. com 34
Egyszerű SQL lekérdezések - WHERE • A segítségével szűrhetjük az eredményhalmazunkat • AND: – A segítségével több feltételt is megszabhatunk egyszerre, melynek mind teljesülnie kell • OR: – Ha AND helyett „OR”-t használunk, akkor elég az egyik feltételnek teljesülnie • BETWEEN: – Ha két érték közé eső értékre vagyunk kíváncsiak, akkor használjuk A tárgy weboldala: http: //www. orakulum. com 35
Egyszerű SQL lekérdezések - példák 2. • Listázza ki azon dolgozók nevét, és munkakörét, akiknek a fizetése nagyobb, mint 1000$! – SELECT ENAME, JOB FROM EMP WHERE SAL > 1000; A tárgy weboldala: http: //www. orakulum. com 36
Egyszerű SQL lekérdezések - Önálló gyakorlás • Listázza ki azon dolgozók összes adatát, akiknek a fizetésük kevesebb, mint 1230$! • Listázza ki azon dolgozók nevét és fizetését, akik fizetése 1500$ vagy 1600$! • Listázza ki azon dolgozók nevét és fizetését, akik fizetése 1000$ és 1700$ között van! A tárgy weboldala: http: //www. orakulum. com 37
Köszönöm a figyelmeteket! Következő órára várom a Féléves feladatkiírást, valamint a normalizálásból írunk kiszárthelyit. A tárgy weboldala: http: //www. orakulum. com 38
- Slides: 38