Adatbázisok használata 2012.02.14 Rózsa Győző raver@raver.myip.hu
A tárgy weboldala: http://www.orakulum.com 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
A tárgy weboldala: http://www.orakulum.com Tudnivalók kisZH-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 Mindegyik legalább elégségesre teljesítése A tárgy weboldala: http://www.orakulum.com
A tárgy weboldala: http://www.orakulum.com 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 10g Teljes referencia (Kevin Loney) A tárgy weboldala: http://www.orakulum.com
A tárgy weboldala: http://www.orakulum.com 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
A tárgy weboldala: http://www.orakulum.com 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
A tárgy weboldala: http://www.orakulum.com Menetrend (1. NAGYZH) 1.: Normalizálás, Egyszerű SQL lekérdezések kisZH: 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
A tárgy weboldala: http://www.orakulum.com 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
A tárgy weboldala: http://www.orakulum.com 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
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ázis-kezelő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
Milyen adatbázis kezelő rendszereket ismertek? MS-SQL MySQL postgreSQL SQLite Oracle Database A tárgy weboldala: http://www.orakulum.com
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 V2 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 10gR2 Ezt használjuk A tárgy weboldala: http://www.orakulum.com
A tárgy weboldala: http://www.orakulum.com 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
A tárgy weboldala: http://www.orakulum.com 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
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
A tárgy weboldala: http://www.orakulum.com 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
A tárgy weboldala: http://www.orakulum.com 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
A tárgy weboldala: http://www.orakulum.com 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
A tárgy weboldala: http://www.orakulum.com Normalizálás A függőségekre bizonyos követelményeket fogalmazunk meg (normálformák): 1NF: Minden attribútum egyszerű 2NF: A másodlagos attribútumok mindegyikét a kulcsattribútumok csak együttesen határozzák meg 3NF: 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
A tárgy weboldala: http://www.orakulum.com 1.NF Minden attribútum egyszerű NÉV Foglalkozások Tóth Gyula bádogos, vízvezeték szerelő NÉV Foglalkozás Tóth Gyula bádogos vízvezeték szerelő A tárgy weboldala: http://www.orakulum.com
A tárgy weboldala: http://www.orakulum.com 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
A tárgy weboldala: http://www.orakulum.com 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
A tárgy weboldala: http://www.orakulum.com 2. NF A tárgy weboldala: http://www.orakulum.com
A tárgy weboldala: http://www.orakulum.com 3.NF A reláció nem tartalmaz funkcionális függőséget a nem elsődleges attribútumok között. 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) Tárgy Oktatóm Email Adatbázisok Rózsa Győző raver@raver.myip.hu Analízis Kis Gábor kg@nik.uni-obuda.hu Diszkrét Matek A tárgy weboldala: http://www.orakulum.com
A tárgy weboldala: http://www.orakulum.com 3. NF Tárgy Oktatóm Email Adatbázisok Rózsa Győző raver@raver.myip.hu Analízis Kis Gábor kg@nik.uni-obuda.hu Diszkrét Matek Tárgy Oktatóm Adatbázisok Rózsa Győző Analízis Kis Gábor Diszkrét Matek Oktatóm Email Rózsa Győző raver@raver.myip.hu Kis Gábor kg@nik.uni-obuda.hu A tárgy weboldala: http://www.orakulum.com
A tárgy weboldala: http://www.orakulum.com BCNF Boyce-Codd normál forma 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) 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ó Tanév Tárgy Félév Létszám Csicsek Judit 2010-2011 Matematika 1 13 Berta Gábor 2009-2010 Programozás 14 2011-2012 2 15 16 3 17 A tárgy weboldala: http://www.orakulum.com
A tárgy weboldala: http://www.orakulum.com BCNF 2. Tanév Tárgy Félév Létszám 2010-2011 Matematika 1 13 2009-2010 Programozás 14 2011-2012 2 15 16 3 17 Oktató Tanév Tárgy Csicsek Judit 2010-2011 Matematika Berta Gábor 2009-2010 Programozás 2011-2012 A tárgy weboldala: http://www.orakulum.com
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
A tárgy weboldala: http://www.orakulum.com 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
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
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
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 init2.sql fájl kell lefuttatni (@init2). 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
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
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
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
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
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
A tárgy weboldala: http://www.orakulum.com 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