38
Adatbázisok használata 2012.02.14 Rózsa Győző [email protected]

Adatbázisok használata

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

Page 1: Adatbázisok használata

Adatbázisok használata

2012.02.14 Rózsa Győző [email protected]

Page 2: Adatbázisok használata

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!

Page 3: Adatbázisok használata

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

Page 4: Adatbázisok használata

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)

Page 5: Adatbázisok használata

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

Page 6: Adatbázisok használata

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)

Page 7: Adatbázisok használata

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

Page 8: Adatbázisok használata

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!!!

Page 9: Adatbázisok használata

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

Page 10: Adatbázisok használata

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

Page 11: Adatbázisok használata

A tárgy weboldala: http://www.orakulum.com

11

Milyen adatbázis kezelő rendszereket ismertek?

• MS-SQL• MySQL• postgreSQL• SQLite• Oracle Database

Page 12: Adatbázisok használata

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

Page 13: Adatbázisok használata

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

Page 14: Adatbázisok használata

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

Page 15: Adatbázisok használata

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

Page 16: Adatbázisok használata

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

Page 17: Adatbázisok használata

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

Page 18: Adatbázisok használata

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

Page 19: Adatbázisok használata

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)

Page 20: Adatbázisok használata

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ő

Page 21: Adatbázisok használata

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

Page 22: Adatbázisok használata

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

Page 23: Adatbázisok használata

A tárgy weboldala: http://www.orakulum.com

23

2. NF

Page 24: Adatbázisok használata

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]

Page 25: Adatbázisok használata

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]

Page 26: Adatbázisok használata

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

Page 27: Adatbázisok használata

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

Page 28: Adatbázisok használata

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

Page 29: Adatbázisok használata

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)

Page 30: Adatbázisok használata

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)

Page 31: Adatbázisok használata

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

Page 32: Adatbázisok használata

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

Page 33: Adatbázisok használata

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

Page 34: Adatbázisok használata

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;

Page 35: Adatbázisok használata

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

Page 36: Adatbázisok használata

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;

Page 37: Adatbázisok használata

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!

Page 38: Adatbázisok használata

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.