Upload
naida-rhodes
View
40
Download
6
Embed Size (px)
DESCRIPTION
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. - PowerPoint PPT Presentation
Citation preview
Adatbázisok használata
2012.02.14 Rózsa Győző [email protected]
A tárgy weboldala: http://www.orakulum.com
2
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
3
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
4
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
5
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
6
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
7
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
8
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
9
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
10
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
11
Milyen adatbázis kezelő rendszereket ismertek?
• MS-SQL• MySQL• postgreSQL• SQLite• Oracle Database
A tárgy weboldala: http://www.orakulum.com
12
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
13
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
14
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
15
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
16
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
17
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
18
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
19
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
20
1.NF
• Minden attribútum egyszerű
NÉV FoglalkozásTóth Gyula bádogosTóth Gyula vízvezeték szerelő
NÉV FoglalkozásokTóth Gyula bádogos, vízvezeték szerelő
A tárgy weboldala: http://www.orakulum.com
21
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
22
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
23
2. NF
A tárgy weboldala: http://www.orakulum.com
24
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 EmailAdatbázisok Rózsa Győző [email protected]ízis Kis Gábor [email protected]ét Matek Kis Gábor [email protected]
A tárgy weboldala: http://www.orakulum.com
25
3. NFTárgy Oktatóm EmailAdatbázisok Rózsa Győző [email protected]ízis Kis Gábor [email protected]ét Matek Kis Gábor [email protected]
Tárgy Oktatóm
Adatbázisok Rózsa Győző
Analízis Kis Gábor
Diszkrét Matek Kis Gábor
Oktatóm Email
Rózsa Győző [email protected]
Kis Gábor [email protected]
A tárgy weboldala: http://www.orakulum.com
26
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ámCsicsek Judit 2010-2011 Matematika 1 13Berta Gábor 2009-2010 Programozás 1 14Csicsek Judit 2011-2012 Matematika 2 15Berta Gábor 2009-2010 Programozás 2 16Csicsek Judit 2010-2011 Matematika 3 17
A tárgy weboldala: http://www.orakulum.com
27
BCNF 2.Tanév Tárgy Félév Létszám2010-2011 Matematika 1 132009-2010 Programozás 1 142011-2012 Matematika 2 152009-2010 Programozás 2 162010-2011 Matematika 3 17
Oktató Tanév TárgyCsicsek Judit 2010-2011 MatematikaBerta Gábor 2009-2010 ProgramozásCsicsek Judit 2011-2012 Matematika
A tárgy weboldala: http://www.orakulum.com
28
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
29
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
30
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
31
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
32
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
33
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
34
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
35
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
36
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 EMPWHERE SAL > 1000;
A tárgy weboldala: http://www.orakulum.com
37
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
38
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.