adatbázis-kezelés

121
1 Adatbázis-kezelés Haladó (?)

Upload: nieve

Post on 09-Jan-2016

29 views

Category:

Documents


2 download

DESCRIPTION

Adatbázis-kezelés. Haladó (?). Adatfeldolgozás (?). Az adatfeldolgozás egyik módszere, hogy az adott nyilvántartási feladatot egy erre alkalmas programozási nyelv alatti adatstruktúrában tároljuk. Funkció- vagy programorientált adatfeldolgozás. Jellemzői. Több file-al dolgozik a program - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Adatbázis-kezelés

1

Adatbázis-kezelés

Haladó (?)

Page 2: Adatbázis-kezelés

2

Adatfeldolgozás (?)

Az adatfeldolgozás egyik módszere, hogy az adott nyilvántartási feladatot egy erre alkalmas programozási nyelv alatti adatstruktúrában tároljuk.

Funkció- vagy programorientált adatfeldolgozás

Page 3: Adatbázis-kezelés

3

Jellemzői

Több file-al dolgozik a program Egy file-t több prg. is kezelhet Ezek a progik függetlenek

egymástól A funkciók megvalósítását

programokhoz rendelik …

Page 4: Adatbázis-kezelés

4

Miért van szükség AB-kezelőkre

Hagyományos adatkezelés hátrányai: Redundancia Inkonzisztencia (ellentmondás) Nem rugalmas, nem párbeszédes Sok a karbantartás Feldolgozási vagy programozási többlet Alacsony adatvédelem Konkrét (kötött) file-rendszer

Adatbázis szemlélet, ABKR

Page 5: Adatbázis-kezelés

5

Adatbázis szemlélet

Az adatokat erőforrásoknak tekintjük

EF-ok jellemzői: Pénz, idő Általában kevés Fontos a hatékony kihasználás

Page 6: Adatbázis-kezelés

6

Az adatbázis-kezelés nem más, mint az adatokkal, mint erőforrásokkal történő gazdálkodás.

Az ABKR mint szoftver, ennek az erőforrásgazdálkodásnak egyfajta automatizált eszköze.

Page 7: Adatbázis-kezelés

7

Adatbázis rendszer (ABR/DBS)

DBS – Data Base System: Adatbázis (DB – Database) AB-kezelő rendszer

(DBMS – Data Base Management System) AB-adminisztrátor

(DBA – Data Base Administrator) Felhasználói környezet

Page 8: Adatbázis-kezelés

8

Adatbázis meghatározások

Nagy mennyiségű, összetartozó adat halmaza

Adatoknak és a köztük lévő kapcsolatoknak a rendszere

Különböző típusú, de tartalmilag összefüggő, egymás rekordjaira hivatkozó bonyolult adatstruktúra, struktúrált file-rendszer

Page 9: Adatbázis-kezelés

9

Adatbázis

Integrált: több felhasználó és/vagy több felhasználás adatait tárolja együtt

Osztott: az AB-hoz több felhasználó férhet hozzá

AB fizikai felépítése: AB-file-ok + adatszótár(CDD – Common Data Dictionary)

Page 10: Adatbázis-kezelés

10

DBMS

Professzionális szintű szoftver Adatorientált adatszervezés

Adatkezelési feladatok: AB létrehozása Adatok visszakeresése Adatfelvitel Adatok törlése, módosítása Rendezés Űrlapgenerálás jelentéskészítés

Page 11: Adatbázis-kezelés

11

Adatok közötti komplex kapcsolatok létrehozása

Többféle hozzáférési mód Szinkronizáció Adatok védelme Adatok integritása Helyreállíthatóság Adatfüggetlenség Eszközfüggetlenség

Page 12: Adatbázis-kezelés

12

Követelmények

Tároló eszköztől való függetlenség Felhasználói programtól való

függetlenség Többféle hozzáférési mód Többen is használhassák egyszerre Gépi hatékonyság

Gyors válaszidők EF optimális kihasználása

Page 13: Adatbázis-kezelés

13

Folytatás….

Könnyű legyen használni Adatvédelem, titkosság Megbízható, naprakész adatok Rugalmas Kevés redundancia Konzisztencia biztosítása

Page 14: Adatbázis-kezelés

14

DBMS komponensei

DDL (Data Definition Language – adatdefiníciós nyelv)

DML (Data Manipulation Language – adatmanipulációs nyelv)

DCL (Data Control Language – adatvezérlő, felügyelő nyelv)

QL (Query Language – lekérdező nyelv)

Forms Report

Page 15: Adatbázis-kezelés

15

DBA feladatai

AB megszervezése Adatmodell kialakítása Objektumok definiálása Keresési stratégiák megválasztása

(index) Jogosultságok adása, szabályozása

Szoftverkomponensek kezelése Karbantartás, konzisztencia

biztosítása

Page 16: Adatbázis-kezelés

16

DBS (ABR) architektúra

Külső szint: ahogy az egyes felhasználók látják az AB-t

Koncepcionális szint: objektumok szerkezete, kapcsolatok rendszere, hozzáférések

Belső szint: fizikai tárolás és elérés módja

Fontos az adatfüggetlenség

Page 17: Adatbázis-kezelés

DBA Eseti felhasználó Rendszeresfelhasználó

Alkalmazóiprogramozók

DDLprogramok

DCLprogramok

interaktívlekérdezések

DMLutasítások

alkalmazóiprogramok

alkalmazóiinterfész

Operációsrendszerhívások

Fizikai adatbázis

bels

õ (f

izik

ai)

szin

tko

ncep

cion

ális

szi

ntkü

lsõ

szin

t

be

lsõ

- k

on

cep

cio

lis

leké

pe

zés

küls

õ -

ko

nce

pci

on

ális

leké

pe

zés

adatszótár

adatfájlok

Page 18: Adatbázis-kezelés

DBA Eseti felhasználó Rendszeresfelhasználó

Alkalmazóiprogramozók

DDLprogramok

DCLprogramok

interaktívlekérdezések

DMLutasítások

alkalmazóiprogramok

alkalmazóiinterfész

Operációsrendszerhívások

Fizikai adatbázis

bels

õ (f

izik

ai)

szi

ntko

ncep

cio

nális

szi

nt

küls

õ szi

nt

be

lsõ

- k

on

cep

cio

lis

leké

pe

zés

küls

õ -

ko

nce

pci

on

ális

leké

pe

zés

adatszótár

adatfájlok

DDLfordító

interpreterelõfordító,

fordítóDML

fordító

adatbáziskezelõfuttató rendszer

lefordítotttranzakció

Page 19: Adatbázis-kezelés

19

Az adatfüggetlenségről

Logikai adatfüggetlenség Fizikai adatfüggetlenség Teljes adatfüggetlenség

Page 20: Adatbázis-kezelés

20

Adatmodellezés

Azt az eljárást, mely során a valós világ (egy részének) tényeit és az összefüggéseit tükröző adatok lényeges dolgait kiemeljük, adatmodellezésnek hívjuk.

A modellezés eredménye az adatmodell.

Page 21: Adatbázis-kezelés

VALÓS VILÁG

ADATMODELL

Page 22: Adatbázis-kezelés

22

Adatfeldolgozási probléma megoldása

Mi a modellezés célja? (specifikáció) Megtervezzük a rendszer alapját

képező adatmodellt (logikai AM) A modell megvalósítása egy konkrét

ABKR-ben (fizikai AM) Modell tesztelése Dokumentálás Használat, karbantartás, követés

Page 23: Adatbázis-kezelés

23

Adatmodellek

Leképezés eredménye Adatok típusai, előfordulása Egyedek, tulajdonságok,

kapcsolatok halmaza Szintjei:

Külső Koncepcionális Belső – fizikai

Page 24: Adatbázis-kezelés

24

Adatmodellezési módszerek

Hierarchikus Hálós Relációs Objektumorientált

Page 25: Adatbázis-kezelés

Alapelemek és elnevezésekEGYED(RELÁCIÓ)NÉV OSZLOPOK Mezőnevek

EGYEDTULAJDONSÁGOK (attributum)

SZEMÉLY

Személyi szám Név Város Foglalkozás1 650410 1256 Kiss László Győr Kőműves2 781117 0131 Nagy Ágnes Szeged Tanuló1 610105 1167 Kiss László Budapest Lakatos

KULCS Rekord Értékek (Mezők)

A sárga sor Egyedhalmaz

Page 26: Adatbázis-kezelés

26

Egyedtípus (entitás): minden olyan objektum, ami minden más objektumtól megkülönböztethető, amiről adatokat tárolunk, és amit tulajdonságaival kívánunk leírni.Pl. könyv, olvasó, személy

Page 27: Adatbázis-kezelés

27

Tulajdonságtípus (attribútum):az egyedek jellemző jegyeiKULCS: egyértelműen azonosítja az egyedtípus előfordulásátPl. ISBN, Tagsági szám, Személyi számGyenge egyedtípus:pl. szülő-gyerek

Page 28: Adatbázis-kezelés

28

Kapcsolattípus: az egyedek logikai viszonya, összefüggéseLehet teljes és parciális.Típusai: Nincs kapcsolat 1:1 1:N N-M N-ágú

Page 29: Adatbázis-kezelés

29

ER (Entity Relationship)

Egyed kapcsolat modellMagas szintű, logikai modellEgyedtípusokból, a köztük lévő kapcsolatokból, és az attribútumokból épül fel.

Modellezéskor a tervező dönti el, hogy mit akar tulajdonságokkal és mit új egyedekkel leírni.

Page 30: Adatbázis-kezelés

30

tulajdonos hal

Komponensei

Egyedtípus és a gyenge egyedtípus ábrázolása:

Attribútumok ábrázolása:

szemszám

lakcím

utca

házszámtelszám

milyen halakatszeret

tulajdonos

Page 31: Adatbázis-kezelés

31

Kapcsolattípusok ábrázolása:

tulajdonos van neki hal1 N

Page 32: Adatbázis-kezelés

Példa ER modellre

olvasó

példány

könyv

kölcsönöz

el őjegyez

1

N

N

M

van

N1

ISBN

cim

kiado

kiad_dat

lelt_szam

kolcs_e

beir_dat

lakcim

o_azon

szerzo

vnev

unev

varos

utca

hazszam

kolcs_dat

eloj_dat

ar

Page 33: Adatbázis-kezelés

olvasó

példány

könyv

kölcsönöz

el őjegyez

van

N1

ISBNcim

kiad_dat

lelt_szam

kolcs_e

beir_dat

lakcim

o_azonvnev

unev

varos

utca

hazszam

kolcs_dat

eloj_dat

ar

kiadókiadja

kiad_azonkiad_nev

varos

írtaszerz ő

szerzo_azon telszam

unevvnev

Page 34: Adatbázis-kezelés

Hierarchikus modell

Az adatokat fa szerkezetben kell elrendezni A fa csomópontjaiban és leveleiben helyezkednek

el az adatok. A közöttük levő kapcsolat szülő - gyermek

kapcsolatnak felel meg. Így csak 1:1 és 1:N típusú kapcsolatok

képezhetők le segítségével. Ilyen például az iskola és osztály, vagy akár az

osztály és tanuló kapcsolat.

Page 35: Adatbázis-kezelés

35

Hierarchiadiagram

ISKOLA

név, cím, igazgató

T A NÁR

név, szsz, cím

TA NTÁRGY

név, tanterem

K I TANÍTJA

név, szsz, cím

Page 36: Adatbázis-kezelés

36

Előfordulásdiagram

I 2. sz Ált. Isk.

T matek T magyar N Fekete N Kiss N Nagy

K Kiss K Nagy K Fekete

Page 37: Adatbázis-kezelés

37

Hálós adatmodell

A kapcsolat egy gráffal írható le. A gráf csomópontok és ezeket összekötő élek

rendszere, melyben tetszőleges két csomópont között akkor van adatkapcsolat, ha őket él köti össze egymással.

Egy csomópontból tetszőleges számú él indulhat ki, de egy él csak két csomópontot köthet össze.

Ebben a modellben N:M kapcsolat is megoldható.

Pl. tanárok – diákok, vevő – rendeléstulajdonos - autó

Page 38: Adatbázis-kezelés

Tulajdonos

Kapcsoló

AutóDGN 353 EXS 741

1992.02.11

Kerek Ernõ

1994.12.111996.10.21

1996.10.221997.02.10

1997.02.11

Kiss István

AQQ 561

1997.12.21

Barna Pál Nagy Tas

Page 39: Adatbázis-kezelés

39

Relációs adatmodell 1. Emberi oldalról közelít a problémához Az AB-ok logikai szerkezetének a leírására

alkalmas eszköz A relációs modell előnyei a következők:

Ezt az adatszerkezetet egyszerűen értelmezheti a felhasználó is.

A logikai adatmodell relációi egy relációs adat-báziskezelő rendszerbe módosítások nélkül átvihetők.

A relációs modellben az adatbázis tervezés a normál formák bevezetésével egzakt módon elvégezhető.

Page 40: Adatbázis-kezelés

Definíció:Legyenek D1, D2, … , Dn halmazok. Az RD1D2…Dn halmazt, ami megfelel egy táblának, relációnak nevezzük. (Mezőhalmazok Descartes szorzatának részhalmaza).

Az így értelmezett reláció egy táblázat. Ha pl. a relációnak m eleme van (d1j,…,dnj), ahol j=1,2,…,m, akkor a táblázat az alábbi lehet.

A reláció matematikai fogalma

nmm2m1

1n2111

n21

ddd

ddd

DDD

Ki kell elégítenie az ALÁBBI ELŐÍRÁSOKAT:Az egyes relációk egyedi névvel rendelkeznek.A relációk oszlopaiban azonos mennyiségre vonatkozó adatok jelennek meg. Az oszlopok névvel rendelkeznek (mezőnév), melyeknek a reláción belül egyediek.A reláció soraiban a logikailag összetartozó adatok kerülnek tárolásra.

A reláció sorainak sorrendje közömbös, de nem tartalmazhat két azonos adatokkal kitöltött sort. Egy sor és oszlop metszésében található táblázat elemet mezőnek nevezzük. A mezők tartalmazzák az adatokat. A mezőkben oszloponként különböző típusú (numerikus, szöveges stb..) mennyiségek tárolhatók.

Page 41: Adatbázis-kezelés

A relációktól általában megköveteljük, hogy ne tartalmazzanak más adatokból levezethető vagy kiszámítható információkat.

Például a fenti táblán az érték kiszámítható a rendelkezésre álló adatokból.

Hasonlóképpen a személyi szám mellett nincs értelme külön a születési dátumot nyilvántartani..

A reláció oszlopainak elnevezésére célszerű a tartalomra utaló elnevezést használni.

R Anyag

A B C .......... kód készlet egységár1206 389 274 .......... 1206 389 274967 2012 65 .......... 967 2012 6512 654 712 .......... 12 654 712

Page 42: Adatbázis-kezelés

42

Relációs adatmodell 2.

Az adatokat táblázatok soraiban képezzük le. Összefoglalva a reláció nem más mint egy

táblázat, a táblázat soraiban tárolt adatokkal együtt.

A relációs adatbázis pedig relációk összessége.

A reláció helyett sokszor a tábla vagy táblázat, a sor helyett a rekord, az oszlop helyett pedig az attribútum elnevezés is használatos.

Relációk elemei: Sor, Oszlop, Mező

Page 43: Adatbázis-kezelés

43

A relációs adatmodellezés alapfogalmai

E.F.Codd, 1970 Egyed, tulajdonság, kapcsolat Reláció, rekord Kulcs Anomáliák Redundancia Funkcionális függőség Normál formák

Page 44: Adatbázis-kezelés

44

Anomáliák: Bővítési Módosítási Törlési

Page 45: Adatbázis-kezelés

45

Normalizálás

Cél: Redundáns adattárolás minimalizálása Anomáliák megszüntetése

Hogyan? Egymást követő, ún. normál formák

kialakításával Minden relációval el kell végezni

Page 46: Adatbázis-kezelés

Normalizálatlan forma

1NF

2NF

3NF

Tetszőleges adatstruktúra-> mátrix

Kulcstól való függőségek eltávolítása

Tranzitív függőségek eltávolítása

Page 47: Adatbázis-kezelés

normalizálatlan

1NF

2NF

3NF

Page 48: Adatbázis-kezelés

48

Talán egy érthető (?) példa

Üzlet napi forgalmát tartjuk nyilván

Page 49: Adatbázis-kezelés
Page 50: Adatbázis-kezelés

50

NAPI_HELYZET(Dátum, Árukód, Árúnév,Ár, Darab,Befizetés)

DARAB

ÁRUKÓD

DÁTUM

ÁR

ÁRUNÉV

ÖSSZES

BEFIZETÉS

Page 51: Adatbázis-kezelés

BEVÉTEL(DÁTUM,ÖSSZEG,BEFIZETÉS)

DÁTUM

ÖSSZES

BEFIZETÉS

Másodlagos függőségek vannak: 2NF

Page 52: Adatbázis-kezelés

ÁRU(ÁRUKÓD,ÁRUNÉV,ÁR)

ÁRUKÓD

ÁR

ÁRUNÉV

Az Árukód egyértelműen meghatározza az áru nevét, árát.Áru neve és ára között nincs kapcsolat = nincs tranzitív függés!

3NF

Page 53: Adatbázis-kezelés

MENNYISÉG(DÁTUM, ÁRUKÓD,DARAB)

DÁTUM

ÁRUKÓD

DARAB

Együtt határozzák meg a Darabot, nem külön -> 2NFDarab egyedül van, nem függ mástól

3NF

Page 54: Adatbázis-kezelés

NAPI_BEVÉTEL(DÁTUM,ÖSSZES)

DÁTUM ÖSSZES

BEFIZETÉS(ÖSSZES,BEFIZETÉS)

ÖSSZES BEFIZETÉS

3NF

Page 55: Adatbázis-kezelés

55

1NF

Tetszőleges adatstruktúrából táblázatot készítünk

Egy mezőbe egy adat kerül

NAPI_HELYZET(Dátum, Árukód, Árúnév,Ár, Darab, Befizetés)

Page 56: Adatbázis-kezelés

NAPI_HELYZET(Dátum, Árukód, Árúnév,Ár, Darab, Befizetés)

BEVÉTEL(DÁTUM,ÖSSZES,BEFIZETÉS)

ÁRU(ÁRUKÓD,ÁRUNÉV,ÁR)

MENNYISÉG(DÁTUM, ÁRUKÓD,DARAB)

NAPI_BEVÉTEL(DÁTUM,ÖSSZES)

BEFIZETÉS(ÖSSZES,BEFIZETÉS)

Page 57: Adatbázis-kezelés

Hf. Rendelés számaVevő kódjaVevő neveVevő címeHatáridőRendelés dátumaCikkszámCikk neveCikk egységeCikk áraMennyit rendelt

Page 58: Adatbázis-kezelés

58

Adatbázis-tervezése

Az alkalmazások fejlesztésének kulcskérdése. Mivel az alkalmazások nagyon különbözőek lehetnek, ezért csak egy három fázisból álló általános módszert javasolunk:

1. Először meghatározzuk a tárolandó adatok körét, azok egymás közötti kapcsolatait és az adatbázissal szemben felmerülő igényeket. Célok meghatározása, adatok, formátumok, algoritmusok kialakítása.

2. Ezután következik a rendszer tervezés az adatbázis logikai modellje. Egyedek meghatározása Egyedeket leíró tulajdonságok megadása Az adatredundancia minimalizálása normálformákkal.

3. Végül fizikai szinten képezzük le a logikai adatbázis modellt,azaz létrehozzuk a számítógépen az adatbázist.

Page 59: Adatbázis-kezelés

59

Normálformák 1. 1.NF 1.NF egy (relációs) táblázat, ha a tábla minden sora különböző. Minden

adata egyszerű, nem összetett. RENDEL(Rszám, Vevőkód, Vnév, Vcim, Hatidő, Rendat) TÉTEL(Rszám, Cszám, Cnév, Cegység, Cár, Mennyi) 2.NF2.NF ha az adatbázisban összetett kulcs is van, akkor le kell választani

az egyszerű kulcsoktól függő attribútumokat. A TÉTEL táblából leválasztható a csak a Cszám-tól függő CIKK tábla CIKK(Cszám,Cnév,Cegység,Cár) TÉTEL(Rszám,Cszám,Mennyi) Az adatok redundanciája még tovább is csökkenthető 3.NF3.NF:Ha a 2. normálformás táblák valamelyikében két vagy több

attributum tranzitíven függ a kulcstól, akkor ezt is külön táblázatba leválasztjuk.

A RENDEL táblázatban a Vevőkód egyértelműen meghatározza a Vnév és Vcím mezőket így a RENDEL táblában kapcsoló mezőként elegendő csak ezt szerepeltetni

Page 60: Adatbázis-kezelés

60

Normálformák 2.VEVŐ( Vevőkód ,Vnév,Vcím)RENDEL(Rszám,Vevőkod,Hatidő,Rendat)CIKK(Cszám,Cnév,Cegység,Cár)TÉTEL(Rszám,Cszám,Mennyi)

TÉTEL CIKKRszám Cszám Mennyi Cszám Cnév Cegység Cár

300 201 10 201 Asztal db 12000300 203 50 202 Vitrin db 18000300 202 5 203 Szék db 5000301 201 5 204302 203 20 205

VEVŐ RENDELVevőkód Vnév Vcim Rszám Vevőkód Hatidő Rendat

101 TESCO Eger 300 101 02.06.01 02.01.19102 ALFA Eger 301 102 02.12.01 02.01.19103 PRIOR Eger 302 101 02.12.01 02.01.19

303 103 02.12.01 02.01.19

Page 61: Adatbázis-kezelés

a TÉTEL-ben van a RENDELÉS-ben van

1NF 2NF 3NFRENDELÉS RENDELÉS RENDELÉS RENDELÉS-2

rendelés_száma rendelés_száma rendelés_száma rendelés_száma dátum dátum dátum dátum vevőnév vevőnév vevőnév vevőkód vevőkód vevőkód vevőkód VEVŐ vevőcím vevőcím vevőcím vevőkód számlaszám számlaszám számlaszám vevőnév cikkszám TÉTEL CIKK vevőcím

megnevezés rendelési_szám cikkszám számlaszám mennyiségi_egység cikkszám megnevezés CIKK

egységár megnevezés mennyiségi_egység cikkszám mennyiség mennyiségi_egység egységár megnevezés határidő egységár TÉTEL mennyiségi_egység

mennyiség rendelési_szám egységár határidő cikkszám TÉTEL

mennyiség rendelési_szám határidő cikkszám

mennyiség határidő

Page 62: Adatbázis-kezelés

62

Előírt feltételek egy lakásnyilvántartó és karbantartó adatbázis tervezéséhez

ÖSSZEFÜGGÉSEK: Egy lakáson többször végezhetnek javítást, de egy javítást

mindig egy munkalap ír le. A munkalap száma a munka egyedi azonosítója, szerelőnként

egyedi szám. Egy munkát egy szerelő végez, de egy szerelő több munkát is

végezhet. Egy munkánál egy munkadíjat számítanak, de több anyagot is

használhatnak.

A JAVASOLT TÁBLÁZAT KITÖLTÉSI SORRENDJE. 1. A sorokba beírjuk a tervezett mezőneveket 2. Az oszlopokban összegyűjtjük az egyes táblákhoz tartozó

mezőket, megjelölve azok minőségét (kulcsmező stb.) 3. Meghatározzuk a kapcsolatukat.

Page 63: Adatbázis-kezelés

63

Javasolt adatbázis tervező űrlap Domain név rövid név

1 2 3 4 5 TÍPUS

1 Lakás azonosító LAKAZ * o C4

2 Lakás cím LACIM + C16 3 Lakás komfortfokozat KONF + C1

4 Munkalap száma MUSZA * o C6

5 Munkafelvétel dátuma MUDAT + D 6 Szerelő kódja SZKOD * + C3

7 Szerelő neve SZNÉV + C16 8 Munkadíj MUDIJ + P 9 Felhasznált anyag(ok) kód AGKOD * o C4

10 Felhasznált anyag neve AGNÉV + C15

11 Felhasznált anyag ára AGÁR + P 12 Felhasznált ag. mennyisége MENYI + N

LA- KÁS

SZE- RE- LŐ

ANY- AG

MUN- KA

HASZ-NÁL

T á b l a n e v e k

Page 64: Adatbázis-kezelés

64

LAKÁSNYILVÁNTARTÁS ÉS KARBANTARTÁS

ANYAG( Agkód, Agnév, Agár)HASZNÁL( Musza, Agkód, Mennyi)MUNKA( Musza, Mudat, Szkód, Mudíj, Lakaz)SZERELŐ( Szkód, Sznév)LAKÁS( Lakaz, Lakcím, Komf)

Page 65: Adatbázis-kezelés

o_azonvnevunevlakcimbeir_datlelt_szamkolcs_eisbncimszerzoarkolcs_dat

o_az

on o

lv.je

gy. s

zám

ú ol

vasó

k

kölc

sönz

ése

nyom

tatv

ány

Normalizálatlan

isbncimkiad_azonkiad_nevvaroskiad_dato_azonvnevunevokodeloj_dat

ISB

N a

zono

sító

jú k

önyv

ek e

lõje

gyzé

se

nyom

tatv

ány

1NF 2NF

o_azonvnevunevlakcimbeir_dat

többkönyvetis kivihet

o_azonlelt_szamkolcs_eisbncimszerzoarkolcs_dat

o_azonlelt_szamkolcs_dat

o_azonvnevunevlakcimbeir_dat

lelt_szamkolcs_eisbncimszerzoar

3NF

o_azonlelt_szamkolcs_dat

o_azonvnevunevlakcimbeir_dat

lelt_szamkolcs_eisbn ar

isbncimszerzo

több olvasóelõjegyezhetegy könyvre

isbncimkiad_azonkiad_nevvaroskiad_dat

isbno_azonvnevunevokodeloj_dat

isbno_azoneloj_dat

isbncimkiad_azonkiad_nevvaroskiad_dat

o_azonvnevunevokod

isbno_azoneloj_dat

o_azonvnevunevokod

kiad_azonkiad_nevvaros

isbncimkiad_azonkiad_dat

Konszolidáció

o_azonvnevunevlakcimbeir_datokod

o_azonlelt_szamkolcs_dat

lelt_szamisbnkolcs_ear

isbncimszerzokiad_azonkiad_dat

kiad_azonkiad_nevvaros

isbno_azoneloj_dat

OLV

AS

OK

OLC

SO

NP

ELD

AN

YK

ON

YV

KIA

DO

ELO

JEG

Y

Page 66: Adatbázis-kezelés

66

Adatbázis-kezelők szabványosítása

Előnyök: Az adatbázisok hordozhatók a

különböző platformok között Az alkalmazók kiképzése gazdaságos

Az elsők: ANSI és ISO SQL

Page 67: Adatbázis-kezelés

Az SQL nyelv

Az SQL (Structured Query Language= strukturált lekérdező nyelv) nem algoritmikus nyelv, nem tartalmaz algoritmus szerkezeteket (elágazás, ciklus stb.)

A lekérdezésen túl más adatkezelési funkciókat is ellát. Az SQL halmaz orientált nyelv, mely a relációs adatmodell

adatbázis-kezelő nyelve. Az SQL nyelvnek több verziója van, de van

szabványosított változata is. (Mi ezt követjük.) Minden SQL parancs egy kulcsszóval kezdődik, amelyet

paraméterek, esetleg újabb kulcsszavak követhetnek. A parancsokat folyamatosan írhatjuk, azonban lehetőség

van arra is,hogy a megfelelő strukturáltság biztosítására egyes részeket új sorba írjunk más bekezdéssel.

Page 68: Adatbázis-kezelés

68

Szabványok

SQL-2: Dátum típus

SQL-3: 1993 Adatokkal végezhető számítási

műveletek OODBMS szabványok

Page 69: Adatbázis-kezelés

69

Üzemmódjai: Önálló SQL Beágyazott SQL:

Ada, C, Cobol, Fortran, Pascal, dBase

Page 70: Adatbázis-kezelés

70

Az SQL a következő elemekre osztható: adatdefiníciós nyelv (DDL) adatmanipulációs nyelv (DML) lekérdező nyelv (DQL) vezérlés (DCL)

Page 71: Adatbázis-kezelés

71

Adatdefinició Tábla létrehozása

CREATE TABLE táblanév… Tábla törlése

DROP TABLE táblanév Szerkezetének módosítása

ALTER TABLE táblanév …

Page 72: Adatbázis-kezelés

72

Adatmanipulációk

Rekord felvitel: INSERT INTO táblanév….

Törlés: DELETE FROM táblanév WHERE feltétel

adatok módosítása: UPDATE táblanév SET … WHERE feltétel

Page 73: Adatbázis-kezelés

73

Vezérlés

Tranzakció kezelés Adatok védelme

Máskor….

Page 74: Adatbázis-kezelés

74

A lekérdező nyelv 1. A lekérdező nyelv egyetlen utasításból áll, mely számos alparancsot

tartalmazhat, és a lekérdező utasítások többszörös mélységben egymásba ágyazhatók.

Először tekintsük át az egy relációra vonatkozó lekérdezéseket. A projekció műveletét a következő utasítással valósíthatjuk meg:

SELECT [DISTINCT]attributum_név, attributum_név, ... FROM reláció_név;

A megadott reláció felsorolt attribútumai jelennek meg az utasítás hatására soronként. A DISTINCT módosító megadása esetén csak az egymástól különböző sorok láthatók. Új mezőnevek is megadhatók. Például a Dolgozó reláció Név, Bér, Emelt bér attribútumainak lekérdezése a 10%-os béremelés feltüntetésével:

SELECT Név, Bér, 1.1*Bér AS "Emelt bér" FROM Dolgozó; paranccsal történhet.

Ha az attributum nevek helyett csak "*"-ot adunk meg, akkor az eredményben a reláció valamennyi attribútuma szerepelni fog: SELECT * FROM Dolgozó;

Page 75: Adatbázis-kezelés

A lekérdező nyelv 2. A szelekció műveletéhez a WHERE <feltétel> záradékot kell hozzáadni.

Például adott intervallumba eső bérek Név és Bér adatai: SELECT Név, Bér FROM Dolgozó WHERE Bér BETWEEN 100 AND 500;

vagy a 3/b oszt adatainak kigyűjtése: SELECT * FROM Diakok WHERE osztaly = '3/b';

RENDEZÉS Lehetőség van az eredmények rendezésére is az ORDER BY attributum [ASC|DESC], attributum[ASC | DESC], ...; alparancscsal.

ORDER BY Nev kiegészítéssel ABC-és lista készíthető. TÖBB TÁBLÁS LEKÉRDEZÉS

A dolgozó neve mellé írjuk ki a Bér és Adó értéket névsorba rendezve:SELECT Név, Bér, Adó FROM Dolgozó, Kifizetés WHERE Dolgozó.Tszám = Kifizetés.Tszám ORDER BY Név;

Ez másik formában is megadható a JOIN kapcsolóval: SELECT Név, Bér, Adó FROM Dolgozó JOIN Kifizetés ON

Dolgozó.Tszám=Kifizetés.Tszám ORDER BY Név;

Page 76: Adatbázis-kezelés

A lekérdező nyelv 3. CSOPORTOK

A lekérdezés eredményét csoportosíthatjuk és a csoportok között is további szelekciót alkalmazhatunk a GROUP BY és HAVING alparancsokkal.

SELECT attributumok FROM reláció[WHERE feltétel]GROUP BY attributum[HAVING csoport_feltétel];

Születési hely szerinti csoportban határozzuk meg Dolgozok számát :SELECT Szhely, COUNT (Tszám) FROM Dolgozó GROUP BY Szhely;

Gyűjtsük ki azokat a városokat amelyekre igaz, hogy az adott városban született dolgozók átlagfizetése legfeljebb 120000 Ft.

SELECT Szhely,AVG(Bér) AS ‘Átlagfizetés’ FROM Dolgozó

GROUP BY Szhely HAVING AVG(Bér)<120000 Vagy például az ötnél nagyobb létszámú osztályok kigyűjtése:

SELECT Osztály, COUNT (*) FROM Diakok GROUP BY OsztalyHAVING COUNT (*) > 5

Page 77: Adatbázis-kezelés

77

Röviden (=lényeg!)

A ZÁRADÉKOK SORRENDJE:FROM (Táblák), WHERE (sorok), GROUP BY (csoport),HAVING (csoportfeltétel), SELECT (oszlopok kiválasztása), ORDER BY (rendezés).LEKÉRDEZÉS esetén SELECT{*|m,m,…}FROM… [WHERE…][GROUP BY…][HAVING…][ORDER BY…]

Page 78: Adatbázis-kezelés

78

Az autós példa

ÁLTALÁNOS SZABÁLYOK az SQL nyelvre:Nem tesz különbséget a kis és nagybetűk között.

A parancs ; -vel végződik.Csak a tizedespontot ismeri.

Szöveg ’ ’ vagy ” ” közé, dátum # # közé írandó.Logikai igaz 1 , a hamis 0.

A * az összes mezőnevet jelenti.COUNT(*) az összes rekordot adja.

Page 79: Adatbázis-kezelés

79

Jelenítsük meg az Autó tábla összes rekordját és oszlopát !

SELECT *FROM auto;

Page 80: Adatbázis-kezelés

80

Válasszuk ki a rendszám, márka,évjárat oszlopokat márka, majd évjárat szerint úgy,

hogy előbb legyenek a fiatalabb autók !SELECT rendszam, marka, evjarat

FROM autoORDER BY marka, evjarat DESC;

Page 81: Adatbázis-kezelés

81

Az első háromár szerint rendezve csökkenő sorrendben:

SELECT TOP 3 * FROM auto ORDER BY ar DESC;

Page 82: Adatbázis-kezelés

82

Adott évjáratú kék kocsik listázása:SELECT * FROM auto

WHERE (szin="kék" AND evjarat In (1991,1993));

Page 83: Adatbázis-kezelés

83

Z-vel kezdődő rendszámú fehér autók:SELECT * FROM auto

WHERE (rendszam Like "Z*" AND szin="fehér");

Page 84: Adatbázis-kezelés

84

A legdrágább, legolcsóbb, átlagos ár és összérték:SELECT MAX(ar) AS legdrágább,

MIN(ar) AS legolcsóbb, SUM(ar) AS összesen,

AVG(ar) AS átlagosan FROM auto;

Page 85: Adatbázis-kezelés

85

A rendszám és a kor listázása:SELECT rendszam, 2005-evjarat AS kor

FROM auto;

Page 86: Adatbázis-kezelés

86

Márka és azon belül évjárat szerint csoportosított lista:SELECT marka, evjarat, AVG(ar) AS atlagár

FROM autoGROUP BY marka, evjarat;

Page 87: Adatbázis-kezelés

87

Új autó bevitele:INSERT INTO auto ( rendszam, marka, szin, evjarat, ar )

VALUES ('RAJ476', 'Trabant', "szürke", 1993, 400);

Page 88: Adatbázis-kezelés

88

Kék színű autók áremelése 20 %-kal:UPDATE auto SET ar = 1.2*ar

WHERE szin="kék";

Page 89: Adatbázis-kezelés

89

A szürke színűek törlése:DELETE * FROM auto

WHERE szin=”szürke";

Page 90: Adatbázis-kezelés

90

Az Opelek átlagos áránál olcsóbb Opelek:SELECT rendszam, ar FROM auto

WHERE marka="Opel" AND ar<(SELECT AVG(ar)FROM auto WHERE marka="Opel");

Page 91: Adatbázis-kezelés

91

Azon autók, melyek ára nagyobb, mint bármely Ladáé:SELECT * FROM auto

WHERE ar > ALL (SELECT ar FROM autoWHERE marka="Lada");

Page 92: Adatbázis-kezelés

92

UJAUTÓ tábla elkészítése:

CREATE TABLE ujautó(rendszam text(6),marka text(15),szin text(10),

ar SHORT);

Page 93: Adatbázis-kezelés

93

Új oszlop hozzáadása:ALTER TABLE auto

ADD COLUMN ujoszlop SHORT;

Page 94: Adatbázis-kezelés

94

xxxx Ft-nál olcsóbb Suzukik összértéke:SELECT Sum(auto.ar) AS SumOfar

FROM auto WHERE (((auto.ar)<xxxx)AND ((auto.marka)="Suzuki"));

Page 95: Adatbázis-kezelés

95

Az autók márkája és kora:SELECT auto.marka, Avg(2005-[evjarat]) AS kor

FROM autoGROUP BY auto.marka;

Page 96: Adatbázis-kezelés

96

Az autók átlagára márka és azon belül évjárat csoportosításban:

SELECT auto.marka, auto.evjarat, Avg(auto.ar) AS AvgOfarFROM auto

GROUP BY auto.marka, auto.evjarat;

Page 97: Adatbázis-kezelés

97

Évjárat és márka kereszttábla átlagárakkal:TRANSFORM Avg(auto.ar) AS AvgOfar

SELECT auto.evjaratFROM auto

GROUP BY auto.evjaratPIVOT auto.marka;

Page 98: Adatbázis-kezelés

98

Azok a márkák, amelyek 50 %-al emelt ára kisebb XXXX ezer Ft-nál:

SELECT auto.marka, auto.ar, 1.5*[ar] AS EMarFROM auto

WHERE (((1.5*[ar])<XXXX));

Page 99: Adatbázis-kezelés

99

TRANSFORM Count(auto.rendszam) AS CountOfrendszamSELECT auto.marka,

Count(auto.[rendszam]) AS [A következő összege]FROM auto GROUP BY auto.marka

PIVOT auto.evjarat;

Page 100: Adatbázis-kezelés

100

Írassuk ki a legrégebbi Opel rendszámát,márkáját és évjáratát!

SELECT auto.rendszam, auto.marka, auto.evjaratFROM auto

WHERE (((auto.marka)="Opel") AND

((auto.evjarat)=(SELECT Min(auto.evjarat) AS MinOfevjaratFROM auto

WHERE (((auto.marka)="Opel")))));

Page 101: Adatbázis-kezelés

101

A legolcsóbb Suzukinál kisebb áru autók rendszáma, márkája, ára:SELECT Min(auto.ar) AS MinOfar

FROM autoWHERE (((auto.marka)="Suzuki")); (1800)

SELECT auto.rendszam, auto.marka, auto.arFROM auto

WHERE (((auto.ar)<(SELECT Min(auto.ar) AS MinOfarFROM auto

WHERE (((auto.marka)="Suzuki")))));

Page 102: Adatbázis-kezelés

102

Validálás

Megfelelő adattartalmat biztosít Ellenőrzés:

Formai: Dátumértékek valódisága Numerikus adatok karakterei

Tartalmi Intervallum ellenőrzés Egyediség ellenőrzése CDV (Checking Decimal Verify)

Page 103: Adatbázis-kezelés

103

Adatok védelme

Hálózatos felhasználás Több felhasználó hozzáférése Eszközök->adatvédelem:

Jelszó Csoportos jogok Titkosítás

Tranzakciók

Page 104: Adatbázis-kezelés

104

Lehetőségek

Excelben: Adatok->Érvényesítés

Accesben Pascalban

Page 105: Adatbázis-kezelés

105

Adattípus Mezőtulajdonságok:

Formátum Bemeneti maszk Alapértelmezett érték Érvényességi szabály Érvényességi szöveg Kötelező Nulla hosszúság engedélyezése

Access…

Page 106: Adatbázis-kezelés

106

Azonosítók és képzési szabályaik

Page 107: Adatbázis-kezelés

107

Személyi azonosító

11 jegyű jelsorozat

1: a nem, az évszázad és az állampolgárság azonosítása

Állampolgárság

1899.12.31 után 1900.01.01. előtt

született

férfi nő férfi nő

magyar 1 2 3 4

nem magyar 5 6 7 8

Page 108: Adatbázis-kezelés

108

1997.01.01. és 1999.12.31 között

 

1999.12.31 után

született

férfi nő férfi nő

1 2 3 4

Page 109: Adatbázis-kezelés

109

2-7. jegy a születési év utolsó két jegye, a hónap és a nap kétjegyű sorszámát adja

8-10. jegy egy sorszám az azonos napon születettek között

11. jegy ellenőrző kód

Összegezzük a jegyek és a sorszámaik szorzatát, majd vegyük a 11-el vett maradékot. Ahol ez 10, azok nem adhatóak ki.A sorszámozás 1997.01.01. előtt balról, utána jobbról történik.

Page 110: Adatbázis-kezelés

110

Adóazonosító jel

Tízjegyű számsorAz 1. jegy a 82.- 6. jegy a születési időpont és

1867.01.01 között eltelt napok száma

7 – 9. azonos napon születettek között kiosztott véletlen szám

10. Ellenőrző szám

Page 111: Adatbázis-kezelés

111

A 10. jegy képzése

Összegezzük a jegyek és a sorszámaik szorzatát, majd tekintjük a 11-el vett maradékot. Ahol ez 10, azok nem adhatóak ki.

Page 112: Adatbázis-kezelés

112

TAJ szám

9 jegyű azonosító1-8 folytonosan kiadott sorszám9. jegy az ellenőrző CDV kód.

A páratlan helyeken állókat 3-mal, a páros helyeken állókat 7-tel megszorozzuk, és a szorzatot összeadjuk. A CDV az összeg 10-es maradéka.

Page 113: Adatbázis-kezelés

113

Vény azonosító

Speciális, zárt rendszerben használt EAN 13 vonalkód.

2 – 6. jegyek az orvos azonosítója8 – 12. folyamatos sorszám13. Ellenőrző kód, az EAN 13-nak

megfelelő

Page 114: Adatbázis-kezelés

114

ISBN (International Standard Book Number)

10 jegyű azonosító10 – 8. ország kód (Mo.: 963)7 – 5. kiadó kódja4 – 2. kiadvány azonosító1. Ellenőrző kód: A sorszámmal vett

szorzatokat összegezzük. 11-es maradékot kivonjuk 11-ből, ha az 1-nél nagyobb, egyébként 0 esetén 0, 1 esetén X

Page 115: Adatbázis-kezelés

115

EAN 13 és az ISBN

Az ISBN EAN 13 kóddal is befoglalható:

1 – 3. 978 jegyek mindig4 – 12 az ISBN jegyek13 EAN 13 ellenőrző, így az ISBN

ellenőr nem kell

Page 116: Adatbázis-kezelés

116

Bankkártyaszám és a Luhn algoritmus

Balról jobbra haladva a páratlan sorszámúakat megszorozzuk 2-vel. Ha a szorzat értéke > 9, akkor kivonunk 9-t belőle. A számokat összegezzük. Ha a kapott érték 0-ra végződik, akkor helyes a bankkártyaszám.

Page 117: Adatbázis-kezelés

117

Az EAN 13 vonalkód

13 numerikus karakter1 – 2, vagy 1 – 3 a termék származási

helye. Pl.: Mo. 599, Olasz: 80-83, belső használatra: 20-29

Következő 4 v. 5 a termék gyártójaA további karakterek a 12-ig a

terméket azonosítja13. Ellenőrző kód

Page 118: Adatbázis-kezelés

118

EAN 13 ellenőrző kód

Paritásnak megfelelően 1-el illetve 3-mal szorozzuk az első 12 jegyet. A 13. jegy az a szám, ami a szorzatösszeget tízzel oszthatóvá egészíti ki.

Az EAN 8 kód ua. EAN13 az első 5 jegy nélkül. Ell.: Az első 5 jegy 0.

Page 119: Adatbázis-kezelés

119

Pascal megvalósítása

Ellenor.pas Ellenor.exe

Page 120: Adatbázis-kezelés

120

Tranzakció-kezelés

Page 121: Adatbázis-kezelés

121

Fizikai tárolás, elérési mód