380 likes | 451 Vues
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!. Tudnivalók .
E N D
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
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 • Féléves feladat • Mindegyik legalább elégségesre teljesítése A tárgy weboldala: http://www.orakulum.com
Ajánlott Irodalom • Oracle példatár (SQL, PL/SQL)(Kende MáriaNagy 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
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
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
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
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
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
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
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
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
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
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
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
1.NF • Minden attribútum egyszerű 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
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
2. NF 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) A tárgy weboldala: http://www.orakulum.com
3. NF 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 A tárgy weboldala: http://www.orakulum.com
BCNF 2. 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
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 • SELECTFROMWHEREGROUP BYHAVINGORDER 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, JOBFROM EMPWHERE 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
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