adatbázis-kezelés
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 PresentationTRANSCRIPT
1
Adatbázis-kezelés
Haladó (?)
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
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 …
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
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
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.
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
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
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)
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
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
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
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
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
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
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
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
ná
lis
leké
pe
zés
küls
õ -
ko
nce
pci
on
ális
leké
pe
zés
adatszótár
adatfájlok
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
ná
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ó
19
Az adatfüggetlenségről
Logikai adatfüggetlenség Fizikai adatfüggetlenség Teljes adatfüggetlenség
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.
VALÓS VILÁG
ADATMODELL
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
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
24
Adatmodellezési módszerek
Hierarchikus Hálós Relációs Objektumorientált
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
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
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
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ú
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.
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
31
Kapcsolattípusok ábrázolása:
tulajdonos van neki hal1 N
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
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
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.
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
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
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ó
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
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ő.
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.
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
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ő
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
44
Anomáliák: Bővítési Módosítási Törlési
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
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
normalizálatlan
1NF
2NF
3NF
48
Talán egy érthető (?) példa
Üzlet napi forgalmát tartjuk nyilván
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
BEVÉTEL(DÁTUM,ÖSSZEG,BEFIZETÉS)
DÁTUM
ÖSSZES
BEFIZETÉS
Másodlagos függőségek vannak: 2NF
Á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
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
NAPI_BEVÉTEL(DÁTUM,ÖSSZES)
DÁTUM ÖSSZES
BEFIZETÉS(ÖSSZES,BEFIZETÉS)
ÖSSZES BEFIZETÉS
3NF
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)
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)
Hf. Rendelés számaVevő kódjaVevő neveVevő címeHatáridőRendelés dátumaCikkszámCikk neveCikk egységeCikk áraMennyit rendelt
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.
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
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
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ő
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.
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
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)
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
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
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.
68
Szabványok
SQL-2: Dátum típus
SQL-3: 1993 Adatokkal végezhető számítási
műveletek OODBMS szabványok
69
Üzemmódjai: Önálló SQL Beágyazott SQL:
Ada, C, Cobol, Fortran, Pascal, dBase
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)
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 …
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
73
Vezérlés
Tranzakció kezelés Adatok védelme
Máskor….
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ó;
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;
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
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…]
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.
79
Jelenítsük meg az Autó tábla összes rekordját és oszlopát !
SELECT *FROM auto;
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;
81
Az első háromár szerint rendezve csökkenő sorrendben:
SELECT TOP 3 * FROM auto ORDER BY ar DESC;
82
Adott évjáratú kék kocsik listázása:SELECT * FROM auto
WHERE (szin="kék" AND evjarat In (1991,1993));
83
Z-vel kezdődő rendszámú fehér autók:SELECT * FROM auto
WHERE (rendszam Like "Z*" AND szin="fehér");
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;
85
A rendszám és a kor listázása:SELECT rendszam, 2005-evjarat AS kor
FROM auto;
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;
87
Új autó bevitele:INSERT INTO auto ( rendszam, marka, szin, evjarat, ar )
VALUES ('RAJ476', 'Trabant', "szürke", 1993, 400);
88
Kék színű autók áremelése 20 %-kal:UPDATE auto SET ar = 1.2*ar
WHERE szin="kék";
89
A szürke színűek törlése:DELETE * FROM auto
WHERE szin=”szürke";
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");
91
Azon autók, melyek ára nagyobb, mint bármely Ladáé:SELECT * FROM auto
WHERE ar > ALL (SELECT ar FROM autoWHERE marka="Lada");
92
UJAUTÓ tábla elkészítése:
CREATE TABLE ujautó(rendszam text(6),marka text(15),szin text(10),
ar SHORT);
93
Új oszlop hozzáadása:ALTER TABLE auto
ADD COLUMN ujoszlop SHORT;
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"));
95
Az autók márkája és kora:SELECT auto.marka, Avg(2005-[evjarat]) AS kor
FROM autoGROUP BY auto.marka;
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;
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;
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));
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;
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")))));
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")))));
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)
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
104
Lehetőségek
Excelben: Adatok->Érvényesítés
Accesben Pascalban
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…
106
Azonosítók és képzési szabályaik
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
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
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.
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
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.
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.
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ő
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
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
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.
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
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.
119
Pascal megvalósítása
Ellenor.pas Ellenor.exe
120
Tranzakció-kezelés
121
Fizikai tárolás, elérési mód