You are on page 1of 135

# Szegedi Tudomnyegyetem

## Szegedi lelmiszeripari Fiskolai Kar

(msodik, javtott vltozat)

sszelltotta:
Hampel Gyrgy

2003.

Tartalomjegyzk
1.

2.

3.

4.

## Az adatbzis-kezels alapfogalmai ..................................................................... 4

1.1

ttekints ..................................................................................................... 4

1.2

1.3

1.4

1.5

1.6

1.7

1.8

2.1

2.2

2.3

2.4

2.5

2.6

## A relcik norml alakjai.................................................................................... 49

3.1

Normalizls .............................................................................................. 49

3.2

3.2.1

3.2.2

3.3

3.4

3.5

3.6

3.7

## tdik norml forma (5NF)......................................................................... 58

3.8

A normalizls eredmnye......................................................................... 59

## Mveletek, relcis algebra............................................................................... 60

4.1

tnevezs .................................................................................................. 61

4.2

Szelekci (Korltozs)................................................................................ 61

4.3

Projekci (vetlet)....................................................................................... 62

-2-

2003.09.09.

5.

6.

7.

8.

4.4

Keresztszorzat............................................................................................ 63

4.5

## Uni (Halmazegyests) ............................................................................. 64

4.6

Metszet....................................................................................................... 64

4.7

Klnbsg .................................................................................................. 65

4.8

sszekapcsols ......................................................................................... 66

4.9

Oszts ........................................................................................................ 67

4.10

Kiterjeszts................................................................................................. 68

4.11

Csoportosts ............................................................................................. 68

5.1

5.2

5.3

5.4

5.5

## 5. fzis. Fizikai tervezs. ............................................................................ 74

5.6

6. fzis. Megvalsts................................................................................. 75

6.1

6.2

## Az SQL lekrdez nyelv .................................................................................... 94

7.1

7.2

Az Access programozsa..........................................................................108

8.1

8.2

-3-

2003.09.09.

1.1

ttekints

## A szmtstechnika fejldsnek egyik jellemzje, hogy egyre tbb felhasznl egyre

tbb, szmtgpen trolt adatot hasznl fel. Az egyre nvekv informcimennyisg
egyre szlesebb krben vlik elrhetv. Mivel a folyamat teljes joggal mrhet a
knyvnyomtats jelentsghez, ezrt szoks elektronikus Gutenberg forradalomnak
is nevezni.
Az elektronikus Gutenberg forradalom legfontosabb jellemzje, hogy
-

## egyre demokratikusabban vlik elrhetv

a szmtgp hasznlatval.

Krnyezetnk lershoz meg kell azt figyelnnk, adatokat kell gyjtennk az objektumairl, sszegeznnk kell azok tulajdonsgait, s meg kell figyelnnk a kztk lev
kapcsolatokat. Ezek utn juthatunk a rendelkezsre ll, trolt adatokbl j ismeretekhez, informcihoz. Az adatoknak egy jl strukturlt halmazt adatbzisnak nevezzk, amelybl a ksbbiekben informcit tudunk majd nyerni. Az informcinyers cljbl olyan szoftvereket hasznlunk, amelyek lehetv teszik az adatbzisok
kezelst (lekrdezst, mdostst, trlst, karbantartst); ezeket egytt adatbzis-kezel rendszernek neveznk. Az olyan rendszereket, amelyek a hardveren
trolt adatokbl szoftverek s egyb alkalmazi programok segtsgvel lehetv
teszik a felhasznl szmra az informci nyerst, informcis rendszereknek
nevezzk.
Az adatbzis-kezel rendszerek nem hirtelen, minden elzmny nlkl jelentek meg
a piacon s a kztudatban. A szmtgpeket kezdetben a trak kis kapacitsa miatt
elssorban numerikus szmtsok elvgzsre hasznltk, majd ksbb a technolgia fejldsvel egyre nagyobb mennyisg informci trolsra vltak alkalmass.
Megjelentek a kimondottan a nagymennyisg adatok hatkony kezelsre kszlt
rendszerek is.
Az els szekvencilis fjlok mg az 1940-es vek vgn jelentek meg. Az els nem

-4-

2003.09.09.

## szekvencilis hozzfrst biztost fjlrendszert 1959-ben fejlesztettk ki. Az 1960-as

vekben olyan programozsi nyelvek jelentek meg, mint a Fortran, Basic, PLI, s
volt egy, mely kimondottan adatkezels-orientlt cllal jtt ltre, a Cobol.
A 60-as vek elejn dolgoztk ki a hls adatmodell alapjait, majd nem sokkal r
megjelent a hierarchikus adatmodell is. Az els hlzatos, konkurens hozzfrst biztost adatbank 1965-ben jelent meg.
Az adatbzis-kezel rendszerek is jelents fejldsen mentek keresztl azta; jelentsen megvltozott hasznlati mdjuk s az ltaluk tmogatott adatmodell jellege. Az
indul idszak hierarchikus, majd hls adatmodelljei utn az 1970-es vekben indult el hdt tjra a ma mr legelterjedtebb adatbzis-kezel tpus, a relcis
fellete is szabvnny vlt.
Mg ma is teret hdtanak j elvek az adatbzis-kezels terletn, mint az objektum
orientltsg vagy a logikai programozs, valamint a hlzatok elterjedsvel az
osztott adatbzis-kezelk szerepe is egyre n.

1.2

## Egy ismeret ltezse s annak rtelmezse kt klnbz dolog: eszerint beszlnk

Az adat rtelmezhet (szlelhet, rzklehet, felfoghat s megrthet) szemlytelen, objektv, feldolgoztl fggetlen ismeret. Az adat az informci hordozja, vagyis a tnyek, fogalmak, feldolgozsra alkalmas reprezentcija.
Az informci, mint szubjektv fogalom, szorosan ktdik hordoz kzeghez. Az
informci mindig szemlyes, az adatot fogad bels njhez, szubjektumhoz ktd lnyeg (Halassy). Az informcit jelsorozathoz kapcsold j jelentsnek, hasznos kzlsnek tekinthetjk. Egyik fontos eleme az jdonsg.
Esetnkben az adat a szmtgpben trolt jelsorozatot jelenti, melybl a feldolgozs
sorn nyerhetnk informcit. Az adat a szmtgpben informci nlkli jelsorozatknt troldik.

-5-

2003.09.09.

bz strukturltsgban troljk. Az adatok lehetnek lazbb szerkezetben, s szigorbb, finomabb struktrban trolva. Ennek megfelelen beszlhetnk: szvegszer
rendszerekrl s adatszer, finoman strukturlt rendszerekrl.
-

A szvegszer trolsnl a dokumentumok, knyvek, cikkek alkotjk a legkisebb elrsi egysget. A dokumentum bels struktra nlkl, mlesztve tartalmazza az informcit.

elrhetk s kezelhetk.

1.3

## A fogalom defincijt az adatbzisokhoz rendelhet legfontosabb tulajdonsgok

-

rendszerrel hozhat ltre s rhet el.

Adatbzisokon voltakppen adatoknak kapcsolataikkal egytt val brzolst, trolst rtjk. (Horvth Katalin - Dr. Szelezsn Jnos)

## Az adatbzis vges szm egyed-elfordulsnak, azok egyenknt is vges

szm tulajdonsgrtknek s kapcsolat-elfordulsainak az adatmodell
szerint szervezett egyttese. (Dr. Halassy Bla)

(C.J. Date)

Az adatbzis sszetartoz adatok azon rendszere, mely megosztott tbb felhasznl kztt, s az elrst egy kzponti vezrl program szablyozza. A
felhasznlnak nem kell ismernie az adatok fizikai trolsi mechanizmust. (J.
G. Hughes)

## Egy olyan integrlt adatszerkezet, mely tbb klnbz objektum elfordulsi

-6-

2003.09.09.

Adatbzisnak nevezzk a kros s felesleges redundancia nlkl kzsen trolt, egymssal kapcsolatban lv adatok halmazt, amelynek alapvet clja
egy vagy tbb alkalmazs optimlis kiszolglsa. Az adatokat az azokat kezel
programoktl fggetlenl troljuk, gy az adatokat s az azokat hasznl programokat is megvltoztathatjuk anlkl, hogy a msikat mdostannk.
Az adatbzisok legfontosabb jellemzje: valamilyen fok redundancia, tovbb hogy
llandan nvekszenek, vltoznak.
egy adatszerkezet-ler nyelv (Data Definition Language, DDL), valamint egy fizikai
szerkezetet megvalst nyelv (Storage Description Language, SDL). Az adatbzis-rendszer fontos rsze a trolt adatok klnbz szempontok szerinti visszakeresst vgz nyelv (Data Manipulation Language, DML) is. Az adatler s adatkezel nyelvet magba foglal adatbzis-kezel rendszer (Database Management
System, DBMS) teszi lehetv, hogy egy jl megtervezett adatbzist hasznlni tudjunk.

1.4

utn is szksg van. A permanens adatok trolsra a httrtrolk szolglnak, ahol
minden pillanatban az adatoknak csak egy tredke fr el fizikailag a kzponti memriban. Ha a fjlon belli trols krdst vizsgljuk, akkor meg kell ismerni a lehetsges fjlszervezsi mdszereket s azok hatkonysgait az olyan alapvet
mdostsa, trlse; segdinformcik trolsa.
A leggyakoribb mvelet a lekrdezs, clszer ezrt olyan fizikai trolsi struktrt
vlasztani, amely a hatkony lekrdezst segti.
-

## Adathordozi szint. A hatkonysgnvelsi lehetsgek keresst mr az

-7-

2003.09.09.

nek ismeretben hrom f lpsbl ll, melyek klnbz idszksglet rendelhet: fejmozgats (a fejet a lemez megfelel svjra, cilinderre kell mozgatni), fejkivlaszts (lemezcsomag esetn a megfelel lemez kijellse),
forgats (az adott svon bell a megfelel szektor, blokk mozgatsa a fej
al). E hrom elembl a fejmozgats ignyli a legtbb idt, de ez lnyegesen
fgg attl, hogy hol helyezkedik a sv, mi volt az elzleg felkeresett sv.
Minden svvlts idszksglettel jr, mgpedig minl nagyobb volt a tvolsg, annl tbb id szksges. Ebbl kt fontos megllapts is vonhat le: az
egymsutn, egytt olvasott adatokat clszer ugyanazon, vagy szomszdos
svokra elhelyezni, valamint egy adatelemnek, ms programok vletlenszer
svpozciit felttelezve, az optimlis elhelyezkedse a kzps svokban tallhat. Amennyiben van befolysunk az adatelemek elhelyezsre, akkor a
fentiek figyelembe vtelvel kell dnteni.
-

Fizikai fjlszerkezet. A kvetkez lpcsfok a megfelel fjlszervezs kivlasztsa. A fjlokon bell az adatok blokkokban troldnak, ahol egy blokk egy
adattviteli egysgnek foghat fel, azaz egy rs vagy olvass mvelete minimum egy blokk adatmennyisget mozgat az adathordoz s a kzponti egysg kztt. A fjlhoz tartoz s egyms utn kvetkez blokkok nyilvntartsra is tbb klnbz mdszer ltezik: a blokkok lncolsa (minden blokkban van egy mutat a kvetkez blokkra; az els blokk cmnek ismeretben
sorban felkereshet az sszes tbbi blokk); blokk cmlista (minden fjlhoz ltezik egy lista, amely a hozz tartoz blokkok cmeit tartalmazza; ez a lista lehet egyszer, sszefgg, de lehet bonyolultabb felpts is).

Logikai fjlszerkezet. A blokkok a fjlok fizikai szerkezett mutatjk, de emellett a fjl egy bels logikai struktrval is rendelkezik. A logikai fjlszerkezet
lehet stream jelleg vagy rekord jelleg. A stream fjltpusnl a fjl egy bels
struktra nlkli byte vagy karakter sorozatbl ll. A karaktersorozatot a felhasznl program rtelmezi sajt ignye szerint. Ugyanazt a fjlt a klnbz
programok mskpp rtelmezhetik. A rekord jelleg tpusnl feltesszk, hogy
a fjl felbonthat logikai rszelemekre, gynevezett rekordokra. A rekord egy
logikailag sszetartoz adatelemek, mezk sszessge. A rekord s a blokk
viszonya alapjn beszlhetnk spanned rekordokrl, ha egy rekord tbb
blokkra is kiterjedhet, s unspanned rekordokrl, ha egy rekord csak egy

-8-

2003.09.09.

## blokkhoz tartozhat. A rekord jelleg llomnyokban a rekordok lehetnek fix

hosszsgak, vagy vltoz hosszsgak.
-

a bels struktra nlkli stream fjlkezels nem megfelel, hiszen ebben az
esetben csak a fjl soros tolvassval tallhatjuk meg a keresett elemet, ami
azt jelenti, hogy egy elem meg tallshoz tlagosan a fjl felt t kell olvasni.
A rekordjelleg megkzelts esetben is megvalsthat ez a szmunkra
nem elnys felpts, ugyanis a rekordjelleg fjl szerkezeteknek az albbi
tpusai ismertek: soros elrs, szekvencilis elrs, indexelt elrs, random
s hashing elrs.

## Az elrsi, szervezsi mdok kztti klnbsg megrtshez szksgnk van egy

jabb fogalom, a rekordkulcs megismersre. A rekord az egyed tbb tulajdonsgt tartalmazhatja. E tulajdonsgok kztt vannak olyanok, melyek tbb egyednl is
ugyanazt az rtket vehetik fel. Vannak azonban olyan mezk, azaz az egyed olyan
tulajdonsgai, melyeknek egyedieknek kell lennik. Az ilyen tulajdonsgot, vagy tulajdonsgcsoportot, mely egyedisge rvn alkalmas az egyed, azaz a rekord egyrtelm azonostsra, rekordkulcsnak, vagy rviden kulcsnak nevezzk. Az adatelemek keressnl kiemelt fontossgak lesznek azok az esetek, amikor a keress
a kulcsra vonatkozik, mivel ez a rekordok egy termszetes keressi mdjt jelenti. Ez
alapjn az egyes fjlszervezsi mdok az albbiakban foglalhatk ssze:
-

## Soros elrs. A rekordok a fjlban tetszleges sorrendben (pldul a felvitel

sorrendjben) helyezkednek el, azaz nincs kapcsolat a rekord kulcsrtke s
a rekord fjlon belli pozcija kztt. Egy adott kulcsrtk rekord brhol elhelyezkedhet a fjlban, keresskor a fjl minden rekordjt t kell nzni egyms utn a fjl elejtl kezdve, amg meg nem talljuk a keresett rekordot. Ez
tlagosan a fjlban trolt rekordok felnek tnzst ignyli, ezrt az egyedi
keressek szempontjbl nem tekinthet hatkony mdszernek. Amennyiben
minden fjlhozzfrsnl szksg van az sszes rekordra, akkor ez a fjlszervezs lesz a leghatkonyabb.

Szekvencilis elrs. A rekordok a fjlban a kulcsrtkeik alapjn sorba rendezve helyezkednek el (pontosabban a rekordok a fjlban a kulcsrtkeik n-

-9-

2003.09.09.

## vekv, vagy cskken sorrendjben rhetk el). A szekvencia elnye, hogy

nem szksges a teljes fjlt vgignzni adott kulcsrtk rekord keressekor,
mivel a sorrendbe rendezs miatt egy adott kulcstl jobbra csak tle nagyobb
(nvekv rendezst felttelezve) kulcsrtk elemek helyezkedhetnek el. Ez a
sorrendbe rendezs megvalsthat fizikai szekvencival vagy logikai, lncolt
szekvencival. A fizikai szekvencinl a rekordok fizikai helye megfelel a sorrendben elfoglalt helynek. Ezltal gyors lesz az egymst kvet rekordok elrse, de egy j rekord beszrsa esetn t kell rendezni a rekordokat a fjlon
bell. Gyakran vltoz fjl esetn nem javasolt ez a mdszer. A logikai szekvencia esetn a rekordok a bevitelk sorrendjben helyezkednek el fizikailag
a fjlban, s a sorrendbe rendezettsget mutatk segtsgvel valstjk meg,
azaz minden rekord tartalmaz egy mutatt a sorrendben t kvet rekordra.
gy beszrskor csak a mutatkat kell trendezni, a rekordok fizikai pozcija
ugyanaz marad. Mivel mind a kt esetben tovbbra is a fjl elejrl kiindulva,
az egymst kvet elemek ellenrzsvel lehet keresni, ez a mdszer sem
hatkony.
-

## Indexelt struktra. A keress meggyorsthat, ha nem kell minden, a keresett

rekordot megelz rekordot fizikailag is tolvasni. Valjban a keresett rekordot megelz rekordokbl csak azok kulcsrtkei fontosak szmunkra, a rekord tbbi mezje lnyegtelen. Mivel rendszerint a kulcsmez nagysga csak
egy tredke a teljes rekord mretnek, ezrt ezeket a reduklt adatokat sokkal gyorsabban t lehetne olvasni, st egy minsgi javulst hozna, ha az tolvasand sor elhelyezhet lenne a memriban, ugyanis ekkor az egyms
utni elem beolvassok helyett egy sokkal gyorsabb keressi mdszer, a binris keress is alkalmazhat lenne. Mindennek megvalstsa az index szerkezet, mely egy kln listban tartalmazza a rekordok kulcsait s az elrskhz szksges mutatkat. A legegyszerbb indexszerkezet egy indexlista,
mely az sszes rekord kulcst tartalmazza egy listban, ahol a kulcsrtkek
rendezetten helyezkednek el.
Nagy fjlmreteknl az indexlista is olyan hossz lehet, hogy mr nem fr
egyszerre a memriba, a lista kezelhetv ttelre j megoldsokat kerestek.
Ennek egyik mdszere az indexszekvencilis fjlszerkezet, melyben a rekordok fizikailag is rendezetten helyezkednek el a fjlban, mint a szekvencilis

- 10 -

2003.09.09.

llomnyoknl, gy az indexlistnak nem szksges minden elemet tartalmaznia, csak bizonyos jelz rekordokat, mondjuk minden k-adik elemet. gy rekord
keresst a fjlban a hozz legkzelebb es, tle kisebb kulcsrtk jelzrekordtl kell csak kezdeni. Az llomnyban trtn szekvencilis keress sem
tarthat sokig, hiszen maximum k rekordot kell egyms utn tnzni. A msik
lehetsges, elterjedt mdszer a tbbszint, hierarchikus indexstruktra bevezetse, melyben a fell elhelyezked listbl nem kzvetlenl a rekordokra,
hanem jabb indexlistkra trtnik hivatkozs. A mdszerrel minden rekordot
kzel azonos id alatt rhetnk el, azaz az indexszerkezet kiegyenslyozottnak mondhat. Ez az indexelsi mdszer tekinthet az egyik leghatkonyabb
mdszernek. Az indexels feladatt mg annyi bonyolthatja, hogy esetleg
tbb mez szerint kvnunk indexelni, vagy ppen nem kulcs mez szerint kvnjuk az indexelst elvgezni a lekrdezsek jellegt figyelembe vve. Ha
egy meznl egy rtk tbb rekordban is elfordul, akkor nem szoks minden
ilyen rtket kln felvenni az indexlistba, hanem csak egyet, az els elfordulst, s a tbbi rekord ebbl a rekordbl kiindul lncolt listn keresztl rhet el.
-

## Hashing. A rekord pozcijt kzvetlenl a rekord kulcsrtkbl hatrozzk

meg, teht csak egy blokkolvassra van szksg a rekord elrshez. Sajnos
azonban nem mindig igaz, hogy egy blokkolvass elg, ez csak idelis esetben valsul meg. A hash elrsi mdszer alapelve, hogy a kulcs rtkbl valamilyen egyszerbb eljrssal, a h() hash fggvnnyel meghatroznak egy
pozcit. Numerikus kulcsok esetn a h(x)=x mod n egy szoksos hash fggvny, ahol x a kulcs rtk s n hash tbla rekeszeinek a darabszma. A
h(x) megadja, hogy mely rekeszbe tegyk le az x kulcs elemet. Mivel a hatkony kezelhetsg vgett a lehetsges pozcik darabszma lnyegesen kisebb a lehetsges kulcs rtkek darabszmnl, gy szksgszeren tbb
kulcsrtk is ugyanazon cmre fog lekpzdni. Egy cmhez rendelt trterletet
szoks bucket-nak is nevezni, mely lemez esetben rendszerint egy blokknak
felel meg. Ha tbb rekord kerl egy cmre, mint amennyi egy bucketban elfr,
akkor lp fel a tlcsorduls jelensge, amikor is egy jabb blokkot, terletet
kell a cmhez hozzktni. Teht egy cmhez tbb klnll terlet is tartozhat,
melyeket lncolssal ktnek ssze. Ebben az esetben a rekord keresshez

- 11 -

2003.09.09.

tbb blokkot is t kell nzni, amely lnyegesen cskkenti a hash elrsi mdszer hatkonysgt. A tlcsorduls mellett a hash mdszer msik htrnya,
hogy csak nagyon krlmnyesen lehet vele megvalstani a rekordok kulcs
szerint rendezett listjnak ellltst, hiszen a hash mdszer az egymst
kvet rekordokat tetszlegesen sztszrhatja a cmtartomnyon a kivlasztott hash fggvnytl fggen. A j hash fggvny a tlcsordulst rekordok
egyenletes elosztsval tudja kivdeni. Mivel a rekordokhoz rendelt cmek eloszlsa nagyban fgg a kulcsrtkek eloszlstl, a tlcsorduls soha sem
vdhet ki teljesen.

1.5

Az adatbzis olyan adathalmaz, amely tbb, klnbz felpts, egymssal klcsns kapcsolatban lv rekordok gyjtemnye. Az adatbzisok elvileg tetszleges
mretek lehetnek: az adatok szma a nulltl, az res adatbzistl a vgtelen rtkig terjedhet. Az elmletileg vgtelen kapacitst a gyakorlatban a rendelkezsre ll
hely, vagy a bels trolsi struktra korltozza.
Az adatok s kapcsolataik egy adatmodell strukturlt szablyainak megfelelen jelenthetk meg, s az adatmodellhez tartoz parancsokkal feldolgozhatk. Az adatmodell strukturlis szablyai s a feldolgoz nyelv egyttesen alkotjk az adatkezelsi technikt. Az adatkezelsi techniknak a megvalstst egy specilis technika
biztostja, amelyet adatbzis-kezel rendszernek (Database Management System,
DBMS) nevezzk.
Mint az adatbzisra, a DBMS-re is tbb meghatrozst tallhatunk:
-

mindennem hozzfrs kezelsre szolgl.

komplex kapcsolatokat. Az adatbzis-kezel rendszernek tmogatnia kell valamilyen adatmodellt, hogy a valsgot le tudja kpezni egy szmunkra megfoghat objektumra. Kt rszbl pl fel. Van egy jellsrendszere, hogy va-

- 12 -

2003.09.09.

lamilyen formban a valsgot brzolni tudjuk s tartozik hozz egy mvelethalmaz, amely lehetv teszi, hogy az elbbieket kezelni tudjuk.
Adatbzis-kezel rendszert alapveten ktflekppen lehet ltrehozni. Az egyik
mdszer, hogy valamilyen programozsi nyelvben rjk meg a rendszert. A msik
mdszer pedig, hogy egy mr meglv rendszerben fejlesztik ki az j rendszert.
-

## Kapcsolattart: ez teszi lehetv, hogy ms alkalmazsok kapcsolatba tudjanak lpni az adatbzissal.

kapott utastsokat, s ha vgrehajthatak, meghatrozza a vgrehajts vrhat leghatkonyabb mdjt.

Elrs meghatroz: az objektumok elrsre meghatrozott mdszert tfordtja az opercis rendszer szmra rthet parancsokk.

Az adatokhoz val hozzfrs nem egy egyszer rsi vagy olvassi mveletet, hiszen az adatbzis-kezel rendszernek gondoskodnia kell az integritsi, hatkonysgi
s vdelmi felttelek megrzsrl. Az adatbzis-kezel rendszer emiatt egy bonyolult programrendszernek tekinthet, mely sok funkcijt, sszetettsgt tekintve leginkbb az opercis rendszerekhez hasonlthat. Az integritsi, hatkonysgi s vdelmi felttelek ellenrzst s betartatst az adatbzis-kezel rendszer a httrben vgzi el, mintegy a felhasznl kzvetlen parancsa, tudta nlkl. Mindez azrt
trtnik gy, hogy a felhasznl vletlenl, vagy szndkosan se tudja elrontani az
Az adatbzis-kezel rendszer tbb programbl ll szoftvertermk, melynek biztostania kell az:
-

- 13 -

2003.09.09.

## a redundancia-mentessget s annak ellenrzst,

a helyrellthatsgot,

## tbbfelhasznls rendszerekben az egyidej hozzfrst,

adat-program fggetlensg megvalstsa. Ennek hinya esetn egy programnak
az ltala kezelt teljes adatllomny-szerkezetet le kell rnia. Ha az adat lersban
kvetkezik be vltozs, akkor a programot is mdostani kell. Adatbzisok esetben
egy helyen, egyszer kell vgrehajtani, s csak azokat a programokat kell mdostania, amelyek ezt a megvltozott mezt kezelik.
Fontos az adatbzis integritsa is. Ezen az adatbzis olyan llapott rtjk, amikor
az adatbzisban lv valamennyi adat rtke helyes olyan rtelemben, hogy az rtkek - adott pontossgi s idbeli korltok kztt - a vals vilg llapott tkrzik, valamint eleget tesznek a klcsns megfeleltets (konzisztencia) szablyainak.
Az adatbzis integritsnak karbantartsa magban foglalja az integrits ellenrzst s valamennyi, szlelhet hiba kijavtst.
nyelvet s egy vagy tbb adatkezel nyelvet tartalmaz. A klnbz adatbzisnyelvek aszerint is megklnbztethetk, hogy
-

nyelv),

## mindkt mdon hasznlhatk.

legalbb kvetkez informcikat kell tartalmaznia:
-

- 14 -

2003.09.09.

-

## az adat szerkesztsi kpe, formtuma,

hozzfrsi jelszavak,

## az adat fejlce formzott lista ksztsekor.

1.6

Alkalmazi segdprogramok

## A DMBS-t a felhasznl nem kzvetlenl, hanem segdprogramokon keresztl, azok

futtatsval ri el. A segdprogramok a DBMS-en keresztl rik el az adatbzisban
trolt adatokat. A szoftvertermkeket a felhasznli csoport alapjn clszer egymstl elklnteni. Ehhez felhasznlk hrmas tagolsa ajnlott, gymint:
-

rendszermenedzser s opertor,

vgfelhasznlk.

## A rendszermenedzser s opertor felhasznlk segdprogramjai

A csoport szmra kszltek azok a segdprogramok, melyekkel az egsz adatbzis
mkdst rint tevkenysgek vgezhetk el. Az ide sorolhat legfontosabb programok:
-

- 15 -

2003.09.09.

Backup (Export, Import). Az adatbzis adatainak lementsre s visszatltsre szolgl. Bizonyos rendszereknl kt kln program valstja meg ezt a
funkcit, az Export segdprogram vgzi az adatok kimentst, mg az Import
programmal lehet a lementett adatokat visszatlteni. A backup rendszer az
megelzse mellett a DBMS rendszer klnbz verziszm vltozatai kztti adatkonverzihoz is felhasznlhat. A legtbb DBMS-nl lehetsg van a
szelektv mentsre, ahol a szelekci mind az adatok jellegre, mind az adatok
aktualitsra vonatkozhat.

## Az alkalmazs- s adatbzisfejleszt-programoz felhasznlk segdprogramjai

Az ebbe a krbe tartoz programok szles terletet lelnek fel, az interaktv eszkzktl kezdve a hagyomnyos programozsi segdeszkzkig. A szoftverfejleszts
rohamosan fejld terlete egyre jabb mdszereket, technikkat fejleszt ki, s az
adatbzis- s alkalmazsfejleszt rendszerek is kvetik s alkalmazzk ezen j eszkzket. Ez a gyors, hatkonysgnvel fejlds magval hozza a fejleszt rendszerek gyakori vltozst is, gy a programozknak is folyamatosan jabb s jabb
mdszereket kell megtanulniuk. Br a fejleszt eszkzk megjelenskben, kezelskben gyakran mdosulnak, jellegk, cljuk azonos marad, ezrt behatrolhat
azon feladatok kre, melyek alapvet fontossgak a fejlesztshez. A legfontosabb
segdeszkzk:
-

## Interaktv kezelfellet. Parancsorientlt, vagy grafikus felletet biztost a

felhasznlnak. A kiadott utastsok rgtn vgrehajtdnak s csak az eredmny kirsa utn adhat meg a kvetkez utasts.

rlapkszt. Ez a modul nemcsak az rlapok megtervezsre szolgl, hanem egy alkalmazsgenertort rejt magban. Mivel az adatbzis-kezel rendszerek rlapokon keresztl jelentik meg az adatokat, ezrt nevezik ezt a
komponenst rlapksztnek is. A formai megjelens mellett itt lehet megadni
az adatszerkezetet s a vezrlsi algoritmust is.

Jelentskszt. Mivel az adatoknak a kpernyn, rlapokban trtn megjelentse mellett, gyakran szksg van a nyomtatott listkra is, ezrt kln

- 16 -

2003.09.09.

komponens szolgl a nyomtatsi listk gyors elksztsre. A fejleszt rendszer a jelents (s az rlap) formtumnak meghatrozsnl felhasznlja az
-

## Menkszt. Egy sszetett alkalmazs tbb elemi rszfunkcibl pl fel,

ahol az egyes rszfunkcikhoz egy-egy rlapot lehet megfeleltetni, ezrt a
rszfunkcikat az ttekinthetsg s gyors elrhetsg rdekben clszer
menhierarchiba szervezni. A menkszt alkalmazsa esetn elegend a
menszerkezet hierarchijt egy egyszer nyelvvel lerni, a hozz tartoz kd
ezutn mr automatikusan fog generldni.

Program interfsz. Mivel az rlap s jelentskszt komponensek egy tipikus alkalmazs felptst kvetik, ezekhez igaztottak, ezrt nagyon nehz
nem tipikus, specilis kvetelmnyekhez igazod alkalmazsok elksztse
ezekkel az eszkzkkel. A hagyomnyos programozsi nyelvek sokkal nagyobb rugalmassgot biztostanak ebben a tekintetben, ezek htrnya viszont,
hogy a rendszerknyvtraik nem biztostnak DBMS szint adatkezelst. E
problma megoldsra szolglnak a DBMS-ek programinterfszei, melyek
egy-egy programozsi nyelvhez tartoz fggvny- s eljrsknyvtrban s
elfordtkban testeslnek meg. Segtsgkkel a norml program forrsszvegbe beszrhatk a kapcsold DBMS adatkezel utastsai is, gy a programbl elrhetv vlnak az adatbzisban trolt adatok.

CASE eszkzk. Az adatbzis megtervezshez nagyszm felttelt s krlmnyt kell figyelembe venni. Az elemzs eredmnyt egy olyan adatmodellben kell trolni, mely kzvetlenl felhasznlhat az adatbzis ltrehozshoz. A nagy adatmennyisg mellett, egy ebbl fakad msik problmt jelent,
hogy a tervezs rendszerint nem egy ember munkja, hanem csapatmunka.
Emiatt klns gondot kell fordtani a dokumentcik szabvnyossgra, a
feladatok kiosztsra. A CASE eszkzk jelents segtsget nyjtanak a tervezsben, a csoportmunka sszehangolsban. A CASE komponens eredmnye legtbb esetben kzvetlenl felhasznlhat az rlapok, jelentsek s
menk generlshoz.

- 17 -

2003.09.09.

A vgfelhasznlk segdprogramjai
A felhasznlk szmra elkszlt alkalmazi programok nagy rsze egyedi megrendelsre kszl, a fent emltett fejleszti eszkzk segtsgvel. Vannak azonban
olyan gyakrabban ignyelt szolgltatsok, alkalmazsok, melyeket a szoftvergyrt
cgek rustanak. Ezek az alkalmazsok igen szles terletet lelnek fel a banki,
pnzgyi, gyrtsirnytsi rendszerektl kezdve a klnbz szakrti rendszerekig.
A teljessg ignye nlkl, nhny segdprogram ismertetse:
-

Dokumentum nyilvntart rendszer. Klnbz szveges dokumentumokban trolt informcik karbantartsra, visszakeressre szolgl, ahol a keresst kulcsszavak megadsval lehet knnyteni. A dokumentumok adatbzisokban s norml llomnyokban is tarthatk. A rendszer alkalmas a dokumentumok s a strukturlt adatok kombinlsra is, tovbb sszekapcsolhat klnbz fejlesztrendszerekkel. Fejlettebb vltozatok hipertext s multimdia
lehetsgeket is biztostanak.

## Irodai program. Ez egy hivatali, gyviteli programcsomag, amely magban

foglal tbbek kztt szvegszerkesztt, levelezrendszert, elektronikus naplt,
egy kis szemlyi kalkultort. A rendszer egy vllalat tbb egysgt kti ssze
a helyi hlzaton keresztl.

rendelkez felhasznlk rszre biztost knnyen kezelhet felletet az adatbzis fel. Tblzatos formban, men- vagy egrvezrelten kezelhet program, mellyel gyorsan vgrehajthatk a lekrdezsek, adatmdostsok, adatfelvitelek. A rendszer egyszerbb jelentsek elksztsre is alkalmas.

Adat vizualizci. Az adatbzisban trolt adatok grafikus tblzatokban jelenthetk meg, emellett lehetsget nyjt kpek, rajzok elksztsre, trolsra is. A korszerbb vltozatokkal multimdia alkalmazsok is futtathatk. A
grafikus felleten monitor funkcikat biztostanak, gy grafikusan kvethet

Vllalati nyilvntart rendszer. A termk tbb, nllan is hasznlhat rszfunkcit foglal magba, melyek kzl a legismertebbek a szmlz rendszer,

- 18 -

2003.09.09.

## a knyvelsi rendszer, a pnzgyi s szemlyzeti rendszer, a rendelsek s a

raktrak nyilvntartsa.
-

Termelstervez rendszer. A rendszer az erforrsok s kapacitsok nyilvntartsa mellett az erforrsok kiosztsnak megtervezsre is lehetsget
ad. A vrhat piaci ignyek elrejelzsvel s elemzsvel meghatrozhat a
termels temezse.

## Gyrtstemez s vezrl rendszer. A kltsgtnyezk s a technolgiai

megktttsgek, a kivlasztott temezsi mdszer alapjn optimalizlhat a
gyrts s felmrhetk a gyrtsi rendszer esetleges gyenge pontjai.

Vezeti informcis rendszer. A vllalat felsszint vezetse szmra biztostja a szksges sszestett adatokat, lehetsget adva a statisztikai kirtkelsekre. A rendszer felhasznlhat dntshozatali segdeszkzknt is.

## Ezt a felsorolst mg sokig lehetne folytatni tovbbi alkalmazsi terletekkel, de

mr ebbl is lthat, hogy az adatbzisok f alkalmazsv a vllalati nyilvntartsi
s termelsirnytsi rendszerek, valamint az llamigazgatsi nyilvntart rendszerek
vltak.

1.7

A DBS hasznlatnak elnyei a kvetkezk:
-

## Az egyedtulajdonsgok, kapcsolatok s metaadatok egysges trolsi

rendszere. Az adatbzis nem egy specilis alkalmazi programhoz kszlt,
hanem tetszlegesen sokfajta alkalmazi program is futhat rajta, tbb alkalmazi program adatait is sszefogja. Ezrt szoks az adatbzisban trolt adatokat integrlt adatoknak is nevezni.

Adatfggetlensg. Az adatfggetlensg krdse az egyik legfontosabb jellemzje az adatkezels fejldsnek. (A tvenes vek elejn megrt progra-

- 19 -

2003.09.09.

## mok egyik jellemzje volt, hogy a programkd teljes mrtkben tkrzte az

adatok trolsnak szerkezett, hiszen a program szinte kzvetlenl elrhette
az adatokat. Ha megvltozott a fizikai struktra, akkor t kellett rni a programot is.)
md megvltoztathat anlkl, hogy a programot is mdostani kellene.
Ez alatt azt rtjk, hogy a letrolt logikai adatmodell maga is bvthet, illetve
bizonyos mrtkben mdosthat, hogy az alkalmazi programokat mdostani kellene. Ha teht egy objektumtpushoz egy jabb tulajdonsgot kvnunk
hozzadni, nem kell egyetlen egy meglv alkalmazi programot sem mdostani.
-

szemszgbl tekintve adatmodellben troldnak, ezrt a felhasznlnak nem
kell trdnie a fizikai trols rszleteivel, s egy magasabb absztrakcis szinten
programfejleszt eltt is.

## Adatmegoszts, prhuzamos hozzfrs. A rendszer felkszlt az integrlt

a helyigny is cskkenthet, s gy mindenki a legaktulisabb adatokhoz frhet hozz.

## Ellenrztt redundancia. Mivel tbb alkalmazs is ugyanazt az adatbzist

hasznlja, ezrt a felhasznlt adatok is egy helyen, egy kzben sszpontosulnak. A hagyomnyos fjlkezelsnl, ha tbb alkalmazsnak is szksge volt
egy adatra, akkor az adatot tbb fjlban is troltk. Ez a redundancia szmos
htrnnyal jrt, a felesleges helyfoglalstl kezdve a konzisztencia megrzsnek problmjig.

## Hozzfrsi jogosultsgellenrzs, adatvdelem. A DBS az opercis

rendszerekhez hasonlan nyilvntartja a jogosult felhasznlkat. Nyilvntartja
az azonost nevet, a jelszt, a felhasznl tulajdonban lv adatokat, az
engedlyezett mveleteket. Az adatveszts okozta krok minimalizlsra

- 20 -

2003.09.09.

## mind statikus mind dinamikus vdelem hasznlhat. A statikus vdelem egyik

eszkze a ments, a dinamikus vdelemhez pedig a naplzs tartozik.
-

## Optimalizlt fizikai adatszerkezetek. A DBS-ben implementltk mindazokat

a hatkony adatstruktrk kezelsre alkalmas algoritmusokat, melyekkel jelentsen javthat a mveletek hatkonysga, gyorsasga.

Integritsi felttelek rvnyestse. A DBS keretn bell magban az adatbzisban trolhatjuk az adatok kztt fennll integritsi szablyok formjban. Az adatbzis mdostsakor automatikusan ellenrzi a rendszer, hogy
nem srl-e valamelyik integritsi szably. Ha megsrlne, akkor nem hajland elfogadni a vltoztatst.

## Szabvnyossg, hatkonysg, rugalmassg. A szabvnyos adatmodellek

s kezel felletek hasznlatval az elkszlt rendszer jobban rthetv vlik
msok szmra is, ezltal a ksbbi fejleszts s mdosts is knnyebb vlik. Szmos fejleszt eszkz ll rendelkezsre, jelentsen megnvelve a fejleszts hatkonysgt. A szksges vltoztatsok gyorsabban vgrehajthatk, nagyobb rugalmassgot biztostva a rendszernek.

meg: a kls, a koncepcionlis s a fizikai szintet. Az egyes szintek az adatbzisrendszer, mint egysg, klnbz megvilgtsainak, megkzeltsinek felelnek
meg. A szinteket ezrt szoks nzeteknek (view) is nevezni.
-

Kls szint. A kls szint foglalja magban azt, amit a felhasznl az adatbzisbl lt, amit a felhasznl adatbzis alatt gondol, ami az szmra az
adatbzist jelenti. Mivel egy adatbzisrendszerhez tbb alkalmaz, felhasznl is kapcsoldhat, ezrt tbb nzetet is tartalmazhat. Ezek a nzetek rendszerint klnbzek, hiszen a felhasznlk a teljes adatbzis ms-ms rszlett ltjk csak. Pldul ms adatokat kezel s ms adatokhoz frhet hozz a
teljes vllalati adminisztrcis rendszeren bell egy pnzgyi vagy egy szemlyzeti adminisztrtor. Mivel az adatrendszer ms elemeivel k soha nem

- 21 -

2003.09.09.

## melyekkel kapcsolatba kerlnek. Az egyes nzetek klnbzsge nem zrja

ki azt a lehetsget, hogy egyes nzeteknek kzs elemei is legyenek.
-

## Koncepcionlis szint. Ugyan sok, klnbz kls nzet ltezik, de ezek

mindegyike ugyanannak az adatbzisnak a klnbz rszleteit tartalmazza.
Ezrt rtelmezhet az a ltsmd is, mely a teljes adatbzist tartalmazza.
Ilyen nzettel kell rendelkeznie a rendszeradminisztrtornak, vagy az adatbzis-terveznek. Ez a kzssgi nzet a koncepcionlis szinten helyezkedik el.
A kzssgi nzetbl viszont csak egy van, s az sszes kls nzet ennek
egy szelett jelenti.

## Bels, fizikai szint. A felhasznl a kls nzetben a modellezett valsg

egyedeit, egyedkapcsolatait ltja. Mg az adatbzis-tervez is a DBMS ltal
tmogatott adatmodellben, teht egy absztraktabb lersban gondolkodik. Az
feladata a megfelel fizikai struktra kialaktsa, hangolsa. Teht ltezik egy,
a fizikai trolsi szerkezethez kzel ll nzet is, melyet adattrolsi nzetnek
neveznek, s ez a bels szinten helyezkedik el.

Az egyes szinteken a nzetek megadsa klnbz adatmodellek segtsgvel trtnik. Ennek sorn meg szoktk klnbztetni magt a nzetet vagyis azon adatokat, amit ltunk az adatok trolsi struktrjtl, az adatszerkezettl. Az adatszerkezet lerst smnak nevezik. Az adatbzis tervezsekor elsknt a smkat kell
ltrehozni, s ez a vz tltdik fel a hasznlat sorn adatokkal. A sma alapjn felpl konkrt adatrendszert sma megvalsulsnak, adat-elfordulsnak nevezik.
Ler nyelvek
A smk megadsra valamilyen smaler nyelvet, modellt kell hasznlni. A sma
az adatmodellnek s a lersnak tovbbi szmtgpes feldolgozsra is alkalmas
tartalmi s formai megfogalmazsa. Vagyis: az adatler nyelv a sma megfogalmazsra szolgl nyelv. Egy adatbzishoz egy sma tartozik, mely pontosan
meghatrozza az adatszerkezetet, a trolsi struktrt, valamint az egyes adatelemek kztt fennll logikai kapcsolatokat. Az alsmk mutatjk meg, hogy az egyes

- 22 -

2003.09.09.

alsma illeszthet. Ms-ms alsmkban lehet az adatoknak a tpusa, neve, csoportostsa.
Mivel a sma csak vz, melyet majd adatokkal kell feltlteni, szksg van olyan eszkzre is, mely biztostja, hogy a felhasznl az adatbzison mveleteket vgezhessen. A mveletek vonatkozhatnak az adatbzis adataira ellltsra, mdostsra,
lekrdezsre. Az ilyen adatkezelsi utastsok vgrehajtsra szolgl kifejezsek
nyelv ltal az adatbzis megnyithat, zrhat, kulcs vagy cm alapjn kereshetnk
benne, beolvashatunk, beszrhatunk, trlhetnk, mdosthatunk.
Szmos adatbzis-kezel rendszer nem tartalmaz procedurlis nyelvet, hanem csak
nyelvvel egytt lehetett az alkalmazsok elksztsre felhasznlni. A hagyomnyos
programozsi nyelvet neveztk gazda (host) nyelvnek, s ebbe kellett beltetni az
Szintek kapcsoldsa
A szintek sminak s nzeteinek klnbzsgbl kvetkezik, hogy az egyes szintek kapcsoldsnl lekpezst, illesztst kell vgezni. Az egyes szintek kztt intenzv kapcsolat ll fenn, hiszen amikor egy alkalmazs, egy felhasznl kiad egy
utastst, akkor azt a sajt kls smjban fogalmazza meg. Egy idben tbb ilyen
utasts keletkezhet, melyek mindegyike ms-ms kls smt hasznlhat.
A mveletek sszehangolsra, vezrlsre minden utastst le kell fordtani a koncepcionlis szint smjra. A fizikai szint mveletek elvgzshez ismerni kell az
adatok fizikai smjt is, teht szksg van a koncepcionlis s a fizikai sma kztti
lekpzsre is. A fizikai mvelet elvgzse utn az eredmny visszajuttatshoz
ugyangy el kell vgezni a lekpzseket, csak fordtott irnyban. A lekpzsek, melyek megnvelik a mveletek vgrehajtsi idejt, legfontosabb clja a fggetlensg
biztostsa. (A felhasznl, az alkalmazsfejleszt fggetlentheti magt a tbbi alkalmazstl, a koncepcionlis tervezs pedig fggetlentheti magt a fizikai, bels
megvalsulstl).
A lekpzsek elvgzse a DBMS feladata, hiszen az egyes alkalmazi programoknak nem kell ismernik a teljes adatbzist, a koncepcionlis smt.

- 23 -

2003.09.09.

Felhasznlk
A DBS-en bell az alkalmazi s a segdprogramok llnak legkzelebb a felhasznlhoz: a felhasznl ezzel a komponenssel kommunikl. A kiadott utastsok rtelmezse utn az adatkezelsre vonatkoz lpseket a program a DBMS fel tovbbtja. A DBMS elvgzi a megfelel adatbzis mdostsokat, vagy adatbzis olvassi
mveleteket s az eredmnyt tovbbtja az alkalmazi program fel.
A segdprogramok kztt kiemelt helyen szerepelnek a felhasznlk egy bizonyos
melyhez kiemelt jogosultsgokkal rendelkeznek. Az adatbzis-menedzselshez tartoz funkcik elvgzsre alkalmas segdprogramok megfelel mdon vdettek a
jogosulatlan hozzfrs ellen. Ezen jogokkal felruhzott felhasznlkat nevezik
rendszertevkenysgek elvgzse (mentsek, rendszerindtsok vagy zrsok).
az alkalmazi programok fejlesztsnek lehetsgeit stb. A fejlesztk egyik csoportja
az adatbzis tervezsvel foglalkozik, mg a msik csoportjnak a felhasznli programok rsa, tesztelse a feladata.
A felhasznlk legnpesebb csoportja az alkalmazk kre, akik az elkszlt alkalmazsokat hasznljk. Szmukra az adatbzis azon adatokat jelenti, amelyekkel az
alkalmazsok sorn tallkoznak, az adatbzis, a DBMS ltezsrl, s annak bels
mkdsrl semmilyen ismerettel sem kell rendelkeznik.

1.8

Informcis rendszerek

## Az elksztett s alkalmazott szmtgpes programrendszereknek egyre nvekv

adatmennyisggel kell megbirkzniuk. A htkznapjainkban is egyre gyakrabban tallkozhatunk a szmtgpes informcis rendszerek alkalmazsval. Szmtgpes
informcis rendszer fut az zemekben, gyrakban a termels irnytsra, a pnzgyi, szemlyzeti, raktri s anyaggazdlkodsi feladatok elvgzsre.
Ahhoz, hogy megbzhatan s hatkonyan mkdjn, egy informcis rendszerek
tbb kvetelmnynek kell megfelelnie:

- 24 -

2003.09.09.

idn bell kell vlaszt kapnia a krdseire, a kiadott utastsok vgrehajtsnak sem szabad sokig tartaniuk. A hatkonysg teht egyrszt idbeli hatkonysgot jelent, msrszt az adatok helyszksgleteinek sem szabad feleslegesen megnnik, kerlni kell a felesleges redundancit, azaz egyazon
adatelem tbbszri, felesleges megismtlst. (A redundancia teljes megsznse nem mindig kvnatos az idbeli hatkonysg, vagy az adatbiztonsg
miatt).

Konkurens hozzfrs tmogatsa. A nyilvntart s informcis rendszerek termszetes hasznlati mdja, hogy egyidejleg tbb felhasznl is hasznlja, dolgozik vele. Ez a lehetsg klns elvigyzatossgot ignyel, hiszen nem kell sszehangols esetn a prhuzamos vltoztatsok, mveletek, torz eredmnyeket szlhetnek, egyms hatsait kiolthatjk, vagy elferdthetik. Nyilvn kell tartani az elvgzett mveleteket, s gondoskodni kell a mveletek szablyozott sorrendben trtn vgrehajtsrl.

Integritsrzs. A modellezett, programba lekpezett valsg mindig rendelkezik bels trvnyszersgekkel (ilyen szably lehet pldul, hogy minden
embernek van szemlyi szma, vagy hogy az ember letkora nem lehet negatv). A letrolt adatok helyessge, integritsa alatt azt rtjk, hogy az adatok
minden megadott bels szablynak megfelelnek. Az integrits megrzshez
a rendszernek nyilvn kell tartania a szablyokat, majd minden mvelet alkalmval ellenriznie kell, hogy a kapott adathalmaz megfelel-e a letrolt szablyoknak. Mindezt olyan hatkonysggal kell vgeznie, hogy a vgrehajtsi id
mg az elviselhetsg hatrn bell maradjon.

## Vdelem. Ha a felhasznl rbzza magt s sszes adatt a szmtgpes

rendszerre vagyis a legtbb adat csak ott troldik akkor a trolt adatok
elvesztse szinte ptolhatatlan vesztesget okozhat. Ezrt a rendszernek fel
kell kszlnie a lehetsges veszlyekre, mint pldul az adathordoz srlse, az opercis rendszer vagy a program sszeomlsra. A felhasznlra leselked msik veszlytpus, az adatok illetktelen szemlyekhez trtn kerlse. A rendszernek ezrt szablyoznia s ellenriznie kell a hozzfrseket,
klnbsget kell tennie az egyes felhasznlk kztt az elvgezhet mvele-

- 25 -

2003.09.09.

## tek tekintetben. Ehhez nyilvntartst kell vezetni a jogosult felhasznlkrl,

azok jogairl s minden mveleti igny kiadsakor ellenrizni kell, hogy elvgezhet-e a mvelet. Egyik megolds lehet a monitoring, melynek sorn a
rendszer ellenrzi s naplzza erforrs-hozzfrseket. A hozzfrsi vdelem msik mdszere a titkosts.
-

## Hatkony programfejleszts. A rendszer kifejlesztsi idejnek lervidtsre

tbb oldalrl is jelentkez nyoms hat. A szoftverpiacon a rvidebb hatrid
elnyhz juttathatja a versengket, hiszen a felhasznl minl elbb szeretn
kihasznlni a rendszer ltal nyjtott elnyket. Msrszrl a gyorsasg bizonyos rtelemben alapkvetelmny is, hiszen a rendszer mindig a valsg egy
modelljnek felel meg, s a modellezett valsg elg gyakran vltozik, pldul
megvltoznak a szablyozk, a trvnyek. Egyik felhasznl sem kvn olyan
rendszert megrendelni, amely hasznlhatatlan lesz mire elkszl. Ezek a
rendszerek tl drgk ahhoz hogy minden kisebb vltoztats utn a felhasznl egy jabb rendszert rendeljen meg, ezrt elg rugalmasnak kell lennie a kisebb vltoztatsok elvgzsre. A rugalmassg s a gyorsasg ignyei hatkony fejleszt eszkzk hasznlatt teszik szksgess a programfejleszts
sorn. Fejleszts alatt a szabvnyos eszkzk hasznlata megknnyti az alkalmazsok j platformra trtn tltetst, s a fejlesztk egyms kztti
kommunikcijt, tovbb a fejleszt rendszer elsajttst is hatkonyabb
teszi.

- 26 -

2003.09.09.

A klnbz modellek alapvet szerepet jtszanak a krnyez vilg megrtsben,
lekpzsben s alaktsban. A modellek teszik lehetv a lnyeg kiemelst s
szemlltetst. A modell fogalma alatt rendszerint kt klnbz dolgot szoks rteni:
-

## olyan rendszert, amely a valsg egy vizsglt szeletvel struktrban vagy

viselkedsben megegyezik, vagy hasonl jelleget mutat s clja a vizsglatn keresztl a valsg llapotra, viselkedsre vonatkoz kvetkeztetsek
levonsa, illetve

a modell kifejezssel jelljk azon eszkzrendszert is, amellyel az elz rtelemben vett modell lerhat, megadhat.

A modell teht egyrszt egy jellsrendszert, msrszt egy elkszlt lerst jellhet.
Mr eddig is igen sokfle s vltozatos modellekkel tallkozhattunk. A programokat is
egyfajta modellnek tekinthetjk, hiszen a vizsglt valsgot rjk le a programozsi
nyelvek utastsainak, kifejezseinek a segtsgvel. Amikor valamilyen alkalmazst
ksztnk, tbb lpcsn keresztl modellezzk a feladatot: elszr egy ttekint lerst ksztnk, melyben kzrtheten, az emberi fogalmakhoz kzel llan vzoljuk
fel a megoldst, majd ez alapjn elksztjk a programozsi nyelv segtsgvel megadott lerst.
Az adatbzis-kezels terletn a modellezsnek mg nagyobb a szerepe, mint a hagyomnyos programfejlesztsi eszkzknl. A hagyomnyos alkalmazsok egyfajta
problmaterletre kszlnek, behatrolt funkcikkal s adatelemekkel (egy szvegszerkeszt pldul nem alkalmas vruskeressre). Ezt gy is kifejezhetjk, hogy az
alkalmazsba belegetdtt a problmaterlet modellje. A modell megvltoztatshoz az alkalmazs egyes rszeit jra kellene rni.
Az adatbzis-kezel rendszerek ezzel szemben nemcsak egy problmaterlethez
kszltek, hanem ltalnos clak. Az adatbzis-kezel rendszernek a modellezett
terlettl fggetlenl biztostania kell az adatbzisban trolt adatok hatkony kezelst. Ezrt az adatbzis-kezelkbe nem lehet egyetlen egy fix modellt begetni, hanem nagyon sokfle klnbz modell kezelsre alkalmasnak kell lennie. Ez csak
gy oldhat meg, ha a DBMS is rendelkezik egy fellettel, amelyen keresztl megadadatbzisok.doc

- 27 -

2003.09.09.

## hat, hogy milyen legyen az aktulisan troland adatrendszer struktrja, modellje.

Teht a DBMS-ekhez mindig csatlakozik egy ler nyelv, egy modell.
Azokat a modelleket, amelyek az adatok struktrjnak lersra szolglnak,
ismernnk kell a hozz tartoz adatmodellt.
amit ismertetni fogunk: hierarchikus, hls, relcis, objektum-orientlt. A DBMS-ek
egyik f jellemzje, hogy mely adatmodellhez kapcsoldnak. (Pldul a relcis
DBMS a relcis adatmodellen nyugszik). Az adatmodell egy jellsrendszeren alapszik, ezrt nem ignyli felttlenl egy DBMS ltt, vagyis lteznek olyan adatmodellek, melyekhez nem ltezik DBMS; ilyen pldul az egyed-kapcsolat modell.
adatmodellezssel az a cl, hogy egy informcis rendszer adatait s az adatok kztt fennll kapcsolatokat kvetkezetesen brzolva, elsegtsk a szmtgpes
Egy kielgt modellnek az albbi feltteleket kell teljestenie:
-

## tfognak kell lennie, azaz minden lehetsges adatot s minden lehetsges

kapcsolatot tudnia kell brzolni s kezelni,

## le kell tudnia rni a valsg ltalnos, lnyeges s tarts sszefggseit,

redundancia-mentesnek kell lennie, azaz minden adatot lehetleg csak egyszer tartalmazzon,

-

- 28 -

2003.09.09.

-

## A vals vilghoz kpest az adatmodellek tartalmaznak bizonyos megszortsokat s

egyszerstseket, st mg a modellez szemlytl fgg vonsokat is. Az adatmodell kialaktsakor el kell dnteni, hogy mik legyenek a modellben az brzoland
informcielemek, s ki kell vlasztania a dolgok kztt fennll lnyeges kapcsolatok kzl azokat, amelyeket be akarunk a modellbe pteni.
Egy adatmodell a kvetkez elemeket tartalmazza:
-

Egyedek a valsg olyan dolgai, amelyek ms dolgoktl megklnbztethetk, azaz az egyed a vals vilgban ltez, fogalmi vagy fizikai lttel rendelkez dolog, amelyet tulajdonsgokkal akarunk lerni pldul dolgoz, tanul,
lakos, vsrl stb.. Ugyanaz a dolog tbbfle egyednek is tekinthet egy
szemly pldul lehet dolgoz s vsrl. A kpviselt konkrt elemek halmazt egyedhalmaznak nevezzk. Pldul a vsrl, mint egyedhalmaz az szszes vevt tartalmazza).

## Tulajdonsgnak nevezzk a valsg dolgainak azon jellemzit, amelyekkel

az egyedeket lerjuk. Pldul dolgoznl tulajdonsg a nv, munkahely, beoszts, stb. A nv rtkei lehetnek: Kovcs, Szab stb. Az egyedek a tulajdonsgrtkeikkel azonosthatk.

## Kapcsolatnak nevezzk az egyedek kztti viszonyok fogalmi tkrkpeit.

Objektumok kztti viszony lehet pldul az, hogy a tanul az iskola tanulja.
Ennek egy konkrt elfordulsa, ha Szab Jnos a Jzsef Attila ltalnos iskola tanulja.

## Az adatmodellek a kvetkez hrom szintre bonthatk:

-

Kls szint. Azt rja le, hogy hogyan ltjk a felhasznlk az adatbzist.

Bels, fizikai szint. Az adatok fizikai elhelyezst s fizikai elrsi mdjt rja
le.

Koncepcionlis szint Azt rja le, hogy logikailag egysgbe vonva, hogyan
nz ki tnylegesen az adatbzis: hogyan nznnek ki az adatok, ha mindenki

- 29 -

2003.09.09.

## mindent lthatna bellk.

egy szerkezetlerst jelent, amit meg kell mg toldani annyival, hogy az adatrendszer
az ismerett is magban foglalja. Ezrt az adatmodellbe a statikus szerkezet lers
megadsnl mind a szerkezet, mind a mveletek megadsa logikai szinten, s nem
fizikai szinten trtnik, ezrt az adatmodell egy elvontabb absztraktabb, formlisabb
lerst jelent. sszegezve teht az adatmodell egy olyan matematikai formalizmus, mely az adatok s az adatokon rtelmezett mveletek lersra szolgl.
Tbb adatmodell is ltezik, de ezekbl ngy terjedt el a gyakorlati letben: a hierarchikus, a hls, a relcis s az objektum orientlt adatmodellek. Ezek kzl a relcis adatmodell a legnpszerbb, a hierarchikus s a hls modell mr a mlt, mg
az objektum orientlt modell vrhatan a jvben vlik csak igazn piacrett.

2.1

## A hierarchikus adatmodell az adatokat egy hierarchikus faszerkezetben trolja. A fa

mindegyik csompontja egy rekordtpusnak felel meg s a rekordok kztt szlgyerek kapcsolat van. A hierarchikus modell alapja, hogy a gyakorlati letben a szervezetek vagy ppen a struktrk nagyon gyakran hierarchikus felptsek (gondoljunk csak a vllalati hierarchira vagy egy gyrtmny alkatrszeinek hierarchijra).
Emiatt termszetesnek tnik, hogy a modellezs megknnytsre a valsgban leggyakrabban hasznlt, hierarchikus modellt hozzuk ltre.
Ez a modell a gyakorlati alkalmazsok sorn fejldtt ki, ezrt nincs olyan elmleti
megalapozottsga, mint a ksbbi adatmodelleknek. A bonyolultabb kapcsolatok brzolsa csak kerlutakon lehetsges. A modell elnye, hogy a hierarchikus szerkezet egyszeren lerhat s trolsa a mgnesszalagos trolsi formhoz is jl illeszkedik.
A hierarchikus adatmodellnl a kt fontos alapfogalommal tallkozunk:
-

## Rekord: egy egyedhez tartoz mezk rtkeinek sszessgt tartalmazza. Az

azonos tpus rekordok csoportjt rekordtpusnak nevezzk, melynek azonos-

- 30 -

2003.09.09.

-

## Szl-gyerek kapcsolat: kt rekordtpus kztt fennll n. 1:N kapcsolat. Az

1-oldal rekordtpust szl-, mg az N-oldal rekordtpust gyerek rekordtpusnak nevezzk.

A modell tulajdonsgai:
-

## egyetlen rekordtpus, a gykr, nem vehet rszt gyerekknt szl-gyerek kapcsolatban,

minden rekordtpus a gykr kivtelvel gyerekknt pontosan egy szlgyerek kapcsolatban vehet rszt,

## brmely rekordtpus szlknt tetszleges szm kapcsolatban vehet rszt,

ha egy rekordtpus szlknt tbb kapcsolatban is rszt vesz, a gyerek rekordtpusai balrl jobbra rendezettek.

Szmos esetben kerlhetnk olyan helyzetbe, amikor kt rekord kztt N:M kapcsolat ll fenn. Ugyan ezt is le lehet rni 1:N kapcsolatok segtsgvel, de a megolds
krlmnyes s az adatok felesleges ismtlshez vezet. Az egyszersts rdekben, az N:M kapcsolatok lersnak megknnytsre vezettk be a virtulis rekordtpust. Ez olyan rekordtpus, amelynek valamennyi rekordja tartalmaz egy mutatt, ami egy msik szinten lv rekordtpusra mutat. A mutatt tartalmaz rekordtpust virtulis gyereknek, amire mutat, virtulis szlnek nevezzk. A mutat ltal ltrehozott kapcsolat virtulis szl-gyerek kapcsolat.
A klasszikus hierarchikus adatbzis-kezelsben a kvetkez ktelez integritsi
szablyokat kell betartani:
-

## A gykr kivtelvel egyetlen rekord elforduls sem ltezhet a hozz tartoz

szlrekord nlkl. Ebbl kvetkezik, hogy:
-

## ha egy gyerekrekordnak kett, vagy tbb ugyanolyan tpus szlrekordja

van, a gyerekrekordot meg kell tbbszrzni, hogy minden szlhz klnkln tartozzon,

## ha a gyerekrekordnak egynl tbb klnbz tpus szlrekordja van, akkor

- 31 -

2003.09.09.

ezek kzl csak az egyik igazi, a tbbi csak virtulis szl lehet.
brzols Bachman diagrammal
A modell szerkezete egy faszerkezet. A rekordtpusnak egy tglalapot feleltetnk
meg, a rekordtpus nevt a tglalap fels rszbe, a mezneveket pedig az als
rszbe rjuk. A kapcsolatot sszekt nyllal brzoljuk.
CG
nv, cm, igazgat

DOLGOZ
szem.szm, nv, kor

OSZTLY
szoba, nv

2.2

## A hls adatmodell a hierarchikus modell tovbbfejlesztse, mely jobban illeszkedik

a bonyolultabb kapcsolatok brzolshoz. Ebben a modellben az egyedek kztt
tetszleges kapcsolatrendszer, egy kapcsolathl alakthat ki. Az adatszerkezet
lersa mivel a hl tetszlegesen nagy lehet nem egy adategysggel, hanem
tbb kisebb, hierarchikus felpts adategysggel trtnik.
A modell alapvet szerkezeti elemei a rekord (record) s a halmaz (set). Rekordokban troljuk az egymssal szoros kapcsolatban lv adatokat. Valamilyen szempont
szerint sszetartoz rekordok egy rekordtpusba tartoznak. Minden rekordtpusnak
van egy azonost neve, a rekord adatelemeit pedig nevkkel s tpusukkal jellemezzk.
A halmaztpus kt rekordtpus kztti kapcsolatot r le. brzolskor a SET tpust
nyllal jelljk. Hrom alapeleme van: a SET tpus azonostja, a tulajdonos rekordtpus s egy tag rekordtpus.
A hls modell minden halmazban van egy megklnbztetett elem, ami a tulajdonosrekord, a rekordok rendezettek, a rekordok rendezettsge pedig az adott mezk
rtkn alapul, vagy a rendszer bels gye a rendezsi szempont.

- 32 -

2003.09.09.

Knyvels
Tth Kroly

Dolgoz SET

Kovcs Jzsef
Kiss Elemr

2.3

## Az objektum-orientlt programozs terjedse az elmlt vtizedben j adatmodell- s

Az objektum-orientlt fogalom azt jelenti, hogy a vals vilg objektumait modellez
programot az adatszerkezetet s a hozz tartoz mveletet egysgbe foglal
alkotelemekbl, n. objektumokbl ptjk fel. Az objektumok zrtsga nagyobb
adat- s mveletbiztonsgot jelent a hagyomnyos programozssal szemben. A hagyomnyos programok esetben az adatok s a mveletek kapcsolata laza, gy nagyobb az esly arra, hogy egy nem megfelel program mdostja valamelyik adatot,
illetve nem a megfelel adatot mdostja. A zrtsgbl kvetkezen az objektumorientlt modell nem ms, mint egy adat- s mveletmodell. Az azonos adatstruktrj s viselkeds objektumokat osztlyba soroljuk.
Egy bizonyos osztlyba tartoz adott objektum esetn az objektum elfordulsrl,
vagy objektumrl beszlnk. Az osztlyt tglalappal jelljk. A tglalapon bell az
osztly azonostjt s tulajdonsgait, valamint a mveleteket vonallal vlasztjuk el.
Az objektumok fontos tulajdonsga az rkls. Az rkl objektum a szl objektum
valamennyi tulajdonsgt hordozza, viselkedst tveszi. Ezen kvl j, specilis tulajdonsgokkal s viselkedssel is rendelkezhet.

- 33 -

2003.09.09.

## Az objektum-orientlt adatmodell minden ignyt kielgt brzolsmdja mg nem

szletett meg, aminek oka az objektum-orientlt nyelvek klnbzsge, s lland
fejldse.
BEOSZTOTT

VEZET

szem. szm
nv
irnyt

dolgozik

2.4

Az egyed-kapcsolat (Entity Relationship, ER) modellt, mint a relcis modellezs bevezetjeknt alkalmazzk. Elnyei kz tartozik az egyszersg s a szoros kapcsolat, a knny konvertlhatsg a relcis modell fel.
Az ER-modell, mint ahogy azt a neve mutatja, hrom alapelemen nyugszik:
-

az egyedek,

## az egyedek tulajdonsgi fogalmain.

Az ER-modell kizrlag a valsg strukturlis lersn alapszik, megengedve bizonyos egyszerbb integritsi feltteleket is. Ezen egyszersg miatt, korbban vita
bontakozott ki, hogy menyiben tekinthet egyltaln adatmodellnek az ER rendszer.
Egyesek szerint ez a modell csak az adattervezst tmogatja, nem biztost megfelel
precizitst, ezrt nem is tekinthet adatmodellnek.
Az ER fogalomrendszerben a modellezett vilg azon szereplit, amelyek nll lttel brnak s melyekrl tbb klnbz adatot tartunk nyilvn, egyedeknek nevezik.
Az egyedek kztt vannak hasonl szerkezetek, s vannak egymstl igen klnbz felptsek. A hasonl felpts egyedek alkotnak egy egyedtpust. Minden
egyedtpus tbb egyed elfordulst lel t, ahol egy egyed elforduls egy konkrt
egyedet jell.
Az egyedeket az azokat jellemz tulajdonsgokkal rjuk le. Teht minden egyed
rendelkezik egy sor tulajdonsggal, melyek ms-ms rtkeket vehetnek fel.
Az egyes egyedtpusok elsdlegesen a tpushoz tartoz tulajdonsgok krben tradatbzisok.doc

- 34 -

2003.09.09.

nek el egymstl. Az egyedtpus lnyeges jellemzje teht a hozz tartoz tulajdonsgok kre.
Az egyed elfordulsok s az egyedtpusok nem izollt, elszigetelt szerepli a modellezett vilgnak. Az egyedek kapcsolatban llnak ms egyedekkel, egy sszetettebb
struktrt hozva ltre. Teht a modellben az egyedek mellett a kapcsolataiknak is
szerepelni kell. Az egyedek kztt klnbz bonyolultsg kapcsolatok llhatnak
fenn s a modell akkor j, ha alkalmas a kapcsolatok rnyalt kifejezsre.
Az ER-modell elemkszlete
A modell a valsg hbb lekpezsre az egyszer egyed s kapcsolat elemek mellett megklnbzteti tbb vltozatt mind az egyedeknek, mind a kapcsolatoknak. E
vltozatok kztt lnyeges jelentsbeli s viselkedsi klnbsgek vannak, s ezen
kvl egszen msfle relcis modellbeli elemekre kpzdnek le.
Az ER-modell egyik lnyeges tulajdonsga, hogy egy grafikus jellsrendszert alkalmaz. A grafika, a szveges lerstl eltren sokkal kifejezbb, lnyegre trbb az
emberek szmra, gy kivlan alkalmas a fontosabb fogalmak s kapcsolatok megjelentsre.
Egyed: Egy, a klvilg tbbi rsztl egyrtelmen megklnbztethet dolog.
-

## Norml egyed: olyan tulajdonsgcsoporttal rendelkezik, mely egyrtelmen

azonostja az egyedet (pldul embernl a szemlyi szm, autnl a rendszm). Jele egy tglalap, melynek belsejben az egyedtpus azonost neve
ll.
Ember

## 2-4. bra. Adatmodellek egyed jellse.

-

Gyenge egyed: nincs azonost tulajdonsgrendszere, gy ms egyedhez fzd kapcsolata szksges az azonostshoz. (Ha az autknak csak a tpust tudjuk, akkor ahhoz, hogy a sok azonos tpus autbl ki tudjuk vlasztani
a megfelelt, szksgnk van egy msik egyed pldul a tulajdonos adatainak megadsra is.) Jele a dupla kerettel rajzolt tglalap, kzpen az azonost nvvel.

- 35 -

2003.09.09.

Aut

## 2-5. bra. Adatmodellek gyenge egyed jellse.

Tulajdonsg: Az egyed egy meghatrozott jellemzje.
-

## Egyszer tulajdonsg: egy elemi rtkkel lerhat tulajdonsgot ad meg. Az

ember kora pldul egyszer tulajdonsg, hiszen egy skalr szm elegend a
megadshoz. A hobbi mr nem egyszer tulajdonsg, hiszen tbb rtkeket
is felvehet egyidejleg, hiszen egy embernek egyszerre tbb hobbija is lehet.
A tulajdonsgok ellipszisben adjuk meg, az ellipszis kzepbe rva a tulajdonsg azonost nevt. A tulajdonsg nmagban nem llhat, ezrt mindig meg
kell adni, hogy mely egyedhez, vagy kapcsolathoz ktdik. A kapcsoldst
egy vonallal jelljk, amely a megfelel tulajdonsgot s az egyedet kti szsze.
Ember

kor

-

## sszetett tulajdonsg: olyan tulajdonsg, amely tbb elemi tulajdonsg

egyttesre bonthat. Ilyen tulajdonsg lehet pldul a cm, amely felbonthat
az irnytszm, telepls, utca, hzszm elemi adatok egyttesre. Az szszetett tulajdonsgot is ellipszissel jelljk, melyhez hozzktjk az illeszked
elemi tulajdonsgok szimblumait.
irnytszm
Ember

telepls

cm

utca

hzszm

-

## Kulcs tulajdonsg: az egyed egyrtelm azonostsra szolgl tulajdonsg.

Az ember egyed esetn pldul a szemlyi szm tltheti be ezt a szerepet. A

- 36 -

2003.09.09.

kulcstulajdonsgot gy jelljk ki, hogy a tulajdonsg azonost nevt alhzzuk egy folytonos vonallal.
Ember

szemlyi szm

## 2-8. bra. Adatmodellek kulcs tulajdonsg jellse.

-

Tbbrtk tulajdonsg: olyan tulajdonsg, amely nem csak egy elemi rtket, hanem tbb elemi rtket, rtkek egy tmbjt vehet fel. gy pldul az
ember egyed iskolai vgzettsg tulajdonsgnak lersra tbb elemi rtket
is meg lehet adni, hiszen tbbfle vgzettsge is lehet valakinek. A tbbrtk
tulajdonsgot egy dupla keret ellipszissel jelljk.
Ember

vgzettsg

## 2-9. bra. Adatmodellek tbbrtk tulajdonsg jellse.

-

Leszrmaztatott tulajdonsg: olyan tulajdonsg, melynek rtke ms tulajdonsgokbl vezethet le, szrmaztathat. gy pldul az aut egyed esetn
a brutt r kiszmolhat a nett rbl s az FA kulcs mrtkbl. A leszrmaztatott tulajdonsg jele egy szaggatott vonallal hatrolt ellipszis. Azt nem jelljk, hogy mely ms tulajdonsgokbl s mi mdon szrmaztathat az rtk.

Brutt r
Aut
FA
Nett r

## 2-10. bra. Adatmodellek leszrmaztatott tulajdonsg jellse.

Kapcsolat: az egyedek kztt fennll viszonyt hordozza.
-

1:1 kapcsolat: a kapcsolatban mindkt egyedtpus elfordulsai csak egyetlenegy elfordulshoz rendeldnek a msik egyedtpusbl. Pldul egy frfi

- 37 -

2003.09.09.

csak egy nnek lehet a frje s egy n is csak egy frfinak lehet a felesge . A
kapcsolatot egy rombusszal jelljk, melybe berjuk kapcsolatot ler azonost nevet. A ngyszg tellenes cscsaibl egy-egy nyilat hzunk, melyek a
kapcsold egyedekhez vezetnek.

Frfi

hzas

-

## 1:N kapcsolat: abban klnbzik az 1:N kapcsolattpustl, hogy az egyik,

egyedtpus elfordulsai tbb elfordulssal tarthatnak kapcsolatot a msikbl, de a msik elforduls tovbbra is csak egy elfordulshoz kapcsoldhat.
Pldul egy autnak csak egy tulajdonosa lehet, egy ember viszont tbb autt
is birtokolhat. A 1:N kapcsolat brzolsnl azon egyedbe, melybl tbb is
kapcsoldhat a msik egyedhez, egy kettsnyl vezet.

Ember

Aut

birtokol

## 2-12. bra. Adatmodellek 1:N kapcsolat jellse.

-

N:M kapcsolat: olyan kapcsolattpus, melyben mindkt egyedtpus elfordulsai tbb elfordulssal is tarthatjk a kapcsolatot a msik egyedtpusbl.
Pldul egy oktat tbb tantrgyat is tanthat s egy trgy oktatsban tbb
oktat vehet rszt. A kapcsolat brzolsnl mindkt kapcsold egyedbe
kettsnyl mutat.

Oktat

tant

Tantrgy

-

## N-ed fok kapcsolat: a kapcsolatban nemcsak kett, hanem ennl tbb

egyed vesz rszt. Ilyen kapcsolatra plda a vsrls kapcsolat, melyben a v-

- 38 -

2003.09.09.

srl, az elad s az r kapcsoldik ssze, hiszen a vev, bizonyos termke(ke)t vsrol egy adott eladtl. Az n-ed fok kapcsolatot gy brzoljuk,
hogy a rombuszbl tbb nyl fut ki.

vsrl

vesz

ru

-

## Totlis kapcsolat: egy egyed totlisan vesz rszt a kapcsolatban, ha minden

egyed elfordulsa rszt vesz egy kapcsolat elfordulsban, azaz nincs olyan
egyed elforduls, mely nem kapcsoldna egy msik egyedtpus valamely elfordulshoz. Azok az egyedek, amelyek nem totlisan vesznek rszt a kapcsolatban, parcilis kapcsolatot alkotnak. Pldul abban az esetben, ha minden autnak van tulajdonosa, akkor az aut totlis kapcsolatban van ez emberrel a tulajdonosi kapcsolatban. Az ember viszont csak parcilisan vesz
rszt a tulajdonosi kapcsolatban, mivel lehetnek olyan emberek, akiknek nincs
autjuk.

2.5

knnyen megtanulhat lersi mdot sikerlt megvalstani. Egyszersgnek kvetkeztben a felhasznlk krben gyorsan npszerv vlt s a szemlyi szmtgpek piacn sok implementcija szletett. Az elmleti megalapozottsg a kutatk,
szakemberek szimptijt is kivltotta, gy ez a modell szmos j fejleszts alapjt
kpezi. Az adatmodell fontos elnye az egyszersg mellett a modell rugalmassga.
A relcis modell elnyei, fbb jellemzi az albbiakban foglalhat ssze:
-

## Egy egyszer s knnyen megrthet strukturlis rszt tartalmaz. A

strukturlis rsz egyszersge a kzrthetsg mellett az alkalmazhatsgot
is nveli, hiszen az egyszerbb formulk ltalnosabban fordulnak el a k-

- 39 -

2003.09.09.

-

## A modellhez olyan mveleti rsz csatlakozik, amely a programozsi

nyelveknl egyszerbb kezeli felletet biztost, annak rdekben, hogy
minl ltalnosabban, minl szlesebb krben lehessen hasznlni.

## Az adatmodell integritsi rszben egyszer, kzrthet s ezzel egytt

hatkony feltteleket definil. Az integritsi felttelek elnye, hogy deklaratv
a relcis adatbzis-kezel automatikusan ellenrizni fogja e szablyok betartst, illetve csak olyan tevkenysgeket fog megengedni, amelyek nem srtik

Egyszer tervezsi metodika; az adatbzis tervezse jl definilt, egyrtelm elmleti alapokon nyugszik. A tervezs elmleti alapjai az gynevezett normalizlsi szablyokon alapulnak, amely a relcis modell strukturlis
lehetsgeit s a modellezend fogalmak kztti fggsgi kapcsolatokat veszi figyelembe. A normalizls segtsgvel egy hatkony, ttekinthet adatmodellt kapunk.

## Nagyfok logikai fggetlensg. A relcis modell elrejti a felhasznlk ell a

megvalsts rszleteit. A felhasznl nyugodtan hasznlhatja a hozz kzel
ll fogalmakat, a rendszer egy bels optimalizl komponens segtsgvel ki
fogja vlasztani a leghatkonyabb fizikai megvalstst.

## A relcis modell tiszta elmleti alapokon nyugszik. A halmazelmletre s

a matematikai logikra alapozva a relcis modell az els, mlyebb elmletre
tmaszkod adatmodell. Ennek f elnye, hogy a modell megbzhatbb s kiszmthatbb lesz, s knnyebb a modell tulajdonsgainak a vizsglata is. A
megbzhatsg garantlja, hogy nem fogjk kellemetlen esemnyek, vratlan

## Egysgessg. Az adatbzisban mind a norml, mind a struktrt ler

metaadatok trolsa ugyanazon mdon s formalizmussal trtnik s ugyanazon utastsokkal valsthat meg.

- 40 -

2003.09.09.

Egyedhalmazok brzolsa
A relcis modellben az adatokat ktdimenzis tblban troljuk s a kvnt adatokat relcis mveletek segtsgvel kereshetjk vissza. brzolskor az egyedhalmaz lesz a tblzat neve.
A tblnak minden sorban azonos szm oszlop tallhat. A tblzat els sora a
relci fejrsze. Itt tallhatk az egyrtelm oszlopnevek (a relci attribtumai, tulajdonsgai), melyek az oszlopokban lv adatok jelentst adjk meg. A tblzat
fejrsztl klnbz oszlopait meznek neveznik. Egy-egy oszlopban lv adatok
csak ugyanannak az rtkhalmaznak az elemei lehetnek. Az oszlopok szma a tblzat fokszma.
A tblzat sorai a relcik sorai, ms nven tuple-k, vagy rekordok.
Az oszlopok s a sorok sorrendjt felcserlhetjk, ez a relcit nem, csak megjelenst vltoztatja meg.
EMBER
nv
Kovcs
Szab
Kiss
Tth

vros
Szeged
Budapest
Szolnok
Szeged

foglalkozs kor
rs
45
tanr
50
rendr
47
tzolt
30

## 2-15. bra. Adatmodellek relcis modell tblja.

A modell fontos fogalma a kulcs. Az elsdleges kulcs a tblzat sorainak egyrtelm megklnbztetsre, azonostsra hasznlhat. A kulcs nem veheti fel ktszer
ugyanazt az rtket egy tbln bell. Elemi kulcsrl beszlnk akkor, ha a relci
valamelyik eleme (a tblzat valamelyik attribtuma, oszlopa) alkalmas a rekordok
(sorok) egyrtelm megklnbztetsre. Ha egynl tbb attribtum szksges egy
rekord megtallshoz, sszetett elsdleges kulcsrl beszlnk. Ha egy relcit
tbb attribtum is egyrtelmen meghatroz, akkor szabadon vlaszthatjuk meg,
hogy melyik legyen az elsdleges kulcs, a tbbit alternatv kulcsnak nevezzk. Az
elsdleges kulcsot a tbbi tulajdonsgtl alhzssal klnbztetjk meg. A kulcs
kivlasztsnl gyelnnk kell arra, hogy a kulcsban szerepl attribtumok szma a
lehet legkevesebb legyen.

- 41 -

2003.09.09.

AUT
rendszm
ARC-125
TOP-942
POK-810
SAM-357

tpus
Opel
Trabant
Opel

szn
fehr
zld
piros
fehr

kor
2
28
17
1

## 2-16. bra. Adatmodellek elsdleges kulcs.

Egy tblbl a tblval logikai kapcsolatban lv msik tbla egy meghatrozott sorra az idegen kulcs segtsgvel tudunk hivatkozni. Az idegen kulcsnak megfelel
rtk abban a tblban, amelyiknek rekordjra hivatkozunk, elsdleges kulcs.
EMBER
sorszm
1
2
3
4
AUT
rendszm
ARC-125
TOP-942
POK-810
SAM-357

nv
Kovcs
Szab
Kiss
Tth

vros
Szeged
Budapest
Szolnok
Szeged

kor
45
50
47
30

tpus
Opel
Trabant
Opel

szn
fehr
zld
piros
fehr

kor
2
28
17
1

rendszm
TOP-942
POK-810
ARC-125
SAM-357

## 2-17. bra. Adatmodellek idegen kulcs.

Kapcsolatok brzolsa
A relcis adatmodellben a kapcsolatokat is tblzatok segtsgvel brzoljuk. A
legegyszerbb esetben, 1:1 kapcsolat esetn eljrhatunk gy ahogyan azt az
elbbi bra is mutatta , hogy az egyik tblt kiegsztjk a logikailag hozz kapcsold msik tbla elsdleges kulcsa felhasznlsval. A kapcsolatra a tulajdonsg neve utal.
Ms esetekben, 1:N, N:M kapcsolatoknl j tblt kell ltrehoznunk. A kapcsolat
tblba oszlopai a kt sszekapcsolt tbla elsdleges kulcsai lesznek.

- 42 -

2003.09.09.

EMBER
sorszm
1
2
3
4

nv
Kovcs
Szab
Kiss
Tth

vros
Szeged
Budapest
Szolnok
Szeged

kor
45
50
47
30

szn
fehr
zld
piros
fehr

kor
2
28
17
1

BIRTOKOL
sorszm rendszm
1 TOP-942
2 POK-810
3 ARC-125
4 SAM-357
AUT
rendszm
ARC-125
TOP-942
POK-810
SAM-357

tpus
Opel
Trabant
Opel

## 2-18. bra. Adatmodellek tblk sszekapcsolsa kapcsolat tbla alkalmazsval.

Abban az esetben, ha csak a tblzat nevt s a tulajdonsgokat adjuk meg, az adatok nem, relcis smrl beszlnk. Jellse: relcinv (attribtumok felsorolsa), pldul Aut (rendszm, tpus, szn, kor). A relcis modell egy vagy tbb relcis smt tartalmazhat. A relcis smkbl ll halmazt relcis adatbzissmnak, vagy rviden adatbzissmnak nevezzk.
Integritsi knyszerek
A relcis modellhez kapcsoldnak olyan fogalmak is, amely nem kzvetlenl az
adnak megszortsokat. Az integritsi szablyokat csoportosthatjuk aszerint, hogy
milyen szinten fogalmazzk meg a megktseket. Eszerint megklnbztetnk a kulcsokra, mezkre s rtkekre vonatkoz megszortsokat:
-

Az elsdleges kulcsnak egyedi rtkkel kell rendelkeznie, vagyis a tblnak nem lehet kt olyan sora, amelyben az elsdleges kulcs rtkei megegyeznek. Az elsdleges kulcsot alkot tulajdonsg nem lehet res, null rtk.

- 43 -

2003.09.09.

## lamelyik rtke, vagy null rtk lehet.

-

Egyes attribtumok meghatrozott rtkkszlettel rendelkeznek, pldul dtumhoz nem rhatunk be szveget, vagy egyes tulajdonsgok csak meghatrozott rtkeket vehetnek fel.

## A relcis adatstruktra helyessgnek vizsglata

A modell ltal biztostott elemekkel, egyazon problmakrre, szmos egymstl lnyegesen eltr modell kszthet. Ezek a modellek nem lesznek egyformn hatkonya, egyes elkszlt modellek tartalmazhatnak bizonyos hibkat, amelyek a mkds hatkonysgt cskkenthetik.
Rosszul felptett struktra esetn knnyen elfordulhat, hogy egy adatot feleslegesen tbb helyen is trolunk. Ez nagyobb kezelend adatmennyisget jelent, hiszen ugyanaz az informci sokszorozva foglal helyet. A rossz adatmodell teht redundancihoz vezethet.
A redundancia mellett szmos egyb mveleti nehzsget is okozhatnak a modell
hinyossgai. A nem megfelel relcis modellbl ered problmkat szoks anomliknak is nevezni.
-

## Beszrsi anomlirl beszlnk, ha egy rekord felvitelekor, felesleges, mr

letrolt informcikat is jra fel kell vinni.

## Mdostsi anomlirl van sz, ha egy informciegysg mdostshoz

tbb helyen is mdostsra van szksg az adatbzisban. Ez nem csak tbbletmunkt jelent, de megnveli az inkonzisztens llapot valsznsgt is, ha

Trlsi anomlirl akkor beszlnk, amikor egy informcielem megsznsekor ms, hozz nem tartoz informcik is elvesznek.

## A felsorolt anomlik ltalban abbl szrmaznak, hogy nem az igazn sszetartoz

adatokat vesznk be egy relciba. Hogy mely mezk tartoznak egy relciba, az a
mezk kztti sszetartozsi viszony, a mezk kztti fggsgek hatrozzk meg,
ami mr a kvetkez fejezet tmja.

- 44 -

2003.09.09.

2.6

trtn konvertlsa. A konverzi sorn az ER modell elemeit relcis modellelemekkel kell megvalstanunk. Az talakts nehzsge abban rejlik, hogy egyrszt
bizonyos ER fogalmaknak nincs meg a relcis modellbeli megfelelje, msrszt mg
az ER modell szemantika orientlt, addig a relcis modellben mr ms, hatkonysgi, integritsrzsi szempontok is rvnyeslnek.
Az ER modell elemeinek lekpezse
Egy relci egy egyedtpusnak felel meg. A relcis adatmodell egy relcija teht
egy egyedtpus elfordulsait fogja tartalmazni. A relci neve megegyezik az egyedtpus azonost nevvel. A relci szerkezet is az ER modellbl szrmazik. A relci
tbb mezbl pl fel, ahogy az egyedtpus is a tulajdonsgokbl ll ssze.
Teht az els szably az, hogy az egyedekbl ksztsnk relcikat, s a hozz
kapcsold tulajdonsgok legyenek a relci attribtumai, mezi.
EMBER
nv

vros

kor

nv
Ember

vros

kor

## 2-19. bra. Adatmodellek egyed konvertlsa.

A tulajdonsg mez megfeleltets azonban nem minden esetben alkalmazhat,
hiszen a mez a relcis modellben csak atomi rtket hordozhat, teht nem lehet
Hasonl nehzsgekbe tkznk a kapcsolatok lersnl is: a relcis modell a
kulcs s az idegen kulcs segtsgvel trolja a kapcsolatokat. Mivel az idegen kulcs
csak egy rtket trol, egy rekord-elfordulshoz csak egyetlen egyed elforduls
kthet a kapcsold egyedtpusbl. Kvetkezskppen az N:M kapcsolatok trolsnl oda kell figyelni.

- 45 -

2003.09.09.

Egyed konvertlsa
-

## Norml egyed. Mivel van kulcstulajdonsga, ezrt a tulajdonsgok alkothatjk

a relci mezit, nincs szksg kiegszt mezkre.

Gyenge egyed. Ezen egyedtpus tulajdonsgai kztt nincs olyan, mely egyrtelmen azonosthatn az elfordulsokat, ezrt a tulajdonsgok nmagukban nem elegendek a relcihoz, hiszen a relcis modellben minden relcinak lteznie kell kulcs rtknek. A gyenge egyedet egy msik, norml
egyedhez fzd kapcsolata azonost.

Tulajdonsgok konvertlsa
Egy tulajdonsg a relci egy mezjnek feleltethet meg.
-

## Egyszer tulajdonsg. mivel az egyszer tulajdonsg egy elemi rtket vesz

fel, ezrt megfeleltethet egy meznek. A mez neve megegyezik a tulajdonsg azonost nevvel.

## Kulcs tulajdonsg: mint az egyszer tulajdonsg, de alhzssal jelljk ki a

kulcs mezt, vagy mezcsoportot.

sszetett tulajdonsg. A relcis modell mez szerkezete csak atomi rtkeket trolhat, s nem bonthat fel tovbbi rszekre. Ebbl kvetkezen az
sszetett tulajdonsg nem trolhat egy mezben. Az sszetett tulajdonsg
lekpzsre a legegyszerbb md, ha felbontjuk az sszetett tulajdonsgot
alkot elemeire, a felbontst addig vgezve, amg egyszer tulajdonsgokat
nem kapunk s ezeket a mezket vesszk be a relciba.

Tbbrtk tulajdonsg. Tbbrtk mezk kzvetlenl nem trolhatk a relciban. Az sszetett tulajdonsgok brzolsnak szoksos mdszere, hogy
ltrehozunk egy jabb relcit, melybe a tulajdonsgrtkeket troljuk le. Mivel gy tbb relciba sztkerlnek az egyedtpus tulajdonsgai, kln kell
gondoskodnunk, hogy az sszetartoz rtkeket nyilvntartsuk, ezrt ebbe az
jonnan ltrehozott relciba is bele kell tenni az egyedtpus kulcsmezjt,
amelynek szerepe, hogy kijellje melyik egyed-elfordulshoz tartoznak az
egyes tulajdonsgrtk elfordulsok.

- 46 -

2003.09.09.

## Leszrmaztatott tulajdonsg. A tulajdonsgot norml mezknt be kell hozni

a relciba, majd az integritsi felttelekkel lehet kijellni, hogy ez a mez
nem kzvetlen rtkeket tartalmaz, hanem ms mezkbl szrmaztatott rtkeket. A sma grafikus megjelentsnl norml mezknt brzoljuk a szrmaztatott mezt is.

Kapcsolatok
-

1:1 kapcsolat. Az egyik rekordot kibvtjk egy j mezvel, mely a kapcsolkulcs szerept fogja jtszani. Az gy megvalstott kapcsolatnak azonban van
egy kis szpsghibja, nevezetesen: semmi sem akadlyozza meg, hogy a
kapcsol kulcsot tartalmaz relciban tbb rekord elforduls is ugyanazt az
rtket tartalmazza. Ennek megvalsulsa egy 1:N kapcsolatot eredmnyezne. Ezt gy lehetne megelzni, hogy nem engedjk meg, hogy egy kapcsolkulcs rtk tbbszr is elforduljon. Ezt gy rhetjk el, hogy a mezkhz rendelnk egy rtk egyedisget megszab felttelt is, gy ennek megadsa utn
mr nem fordulhat el ugyanaz a kapcsol kulcs rtk ktszer.

1:N kapcsolat. Az egyik egyedet kibvtjk egy j mezvel, mely a kapcsolkulcs szerept fogja jtszani. A kt egyed kzl abba kerl beptsre a kapcsolkulcs, amelyik a msik egyednek maximum egy elfordulsval kapcsoldik. Mivel itt egy kapcsolkulcs rtk tbb rekord-elfordulsban is szerepelhet egy relcin bell, ezrt ellenttben az 1:1 kapcsolattal itt nincs szksg kln integritsi felttel definilsra.

## N:M kapcsolat. Mindkt, a kapcsolatban elfordul egyedtpus elfordulsai

tbb msik egyedtpusbeli elfordulshoz is kapcsoldhatnak, ezrt minkt
kapcsolkulcsnak tbb rtket kellene felvennie, ami nem megengedett. gy
egyik sem trolhat a relciban mezknt. A problma megoldsra ltre kell
hoznunk egy j relcit, egy kapcsol relcit, melynek minden rekord elfordulsa egy konkrt kapcsolatot reprezentl. Ezen j relci kulcsnak a kapcsolatot kell azonostania, s erre a kt kapcsold egyed elforduls kulcsainak egyttest szoktk hasznlni. A kapcsol relci kulcsa teht magban
foglalja a kt kapcsolkulcsot is. Ez a megolds lehetv teszi, hogy a kapcsol relciba mezknt bevegyk azokat a tulajdonsgokat is, melyek ma-

- 47 -

2003.09.09.

## gt a kapcsolatot jellemzik, s nem csak a kapcsold egyedeket.

-

N-ed fok kapcsolat. A magasabb fok kapcsolatok lersra be kell bevezetnnk egy kapcsol relcit, melynek minden rekord elfordulsa egy konkrt kapcsolatot reprezentl. Ezen j relci kulcsnak a kapcsolatot kell azonostania, s erre a kapcsold egyed elfordulsok kulcsainak egyttest
szoktk hasznlni. A kapcsol relci kulcsa teht magban foglalja az n darab kapcsolkulcsot is.

## Totlis kapcsolat. A kapcsolat totlis voltnak trolsa egyszer, ha minden

egyed elforduls csak egy kapcsolat elfordulsban szerepel, teht amikor
az egyedhez tartoz relci tartalmazza a kapcsolatra vonatkoz kapcsolkulcsot. Ekkor a kapcsolat totlis jellege azt mondja ki, hogy egyetlen egy elfordulsban sem lehet a kapcsolkulcs rtke res (null). Ha azonban azon
egyed kapcsolata totlis, mely tbb msik egyed-elfordulssal is kapcsolatban ll, akkor a felttel gy szlna, hogy az adott relci minden kulcsrtknek el kell fordulnia a msik relciban szerepl kapcsolkulcs rtkek kztt. Ez mr egy sszetettebb integritsi felttel, melyet csak bonyolult ton
valsthatunk meg.

- 48 -

2003.09.09.

## 3. A relcik norml alakjai

3.1

Normalizls

Egy adatbzis megtervezsekor elszr sszegyjtjk azokat az adatokat, amelyekre szksgnk lesz. Ebbl az adathalmazbl, valamint az adatokon vgzend mveleti ignyekbl kiindulva meghatrozott lpsek sorozatn t jutunk el egyfajta
A helyes modell megtervezsre irnyul irnyelveket, ennek mdszertant az irodalom normalizls nven ismeri. A normalizls sorn indulskor egyetlen tblzatot alaktunk ki, melyben elhelyezzk a szksges tulajdonsgokat. Ezutn feltrjuk a
tblzat bels szerkezett, a tulajdonsgok kztti sszefggseket, fggsgi viszonyokat; lnyegben azt vizsgljuk meg, hogy a feltrt fggsgek eleget teszneke az n. norml formknak nevezett kvetelmnyeknek. A norml formkat megsrt
fggsgeket megszntetjk gy, hogy a tblzatot meghatrozott szablyok szerint
tovbbi tblzatokra bontjuk. A kapott j tblzatok normlformknak val megfelelsnek ellenrzst is elvgezzk s, ha szksges, azokat is tovbbi tblzatokra
bontjuk.
A normalizls teht lnyegben tblzat sztbont relcis mveletek sorozata, melynek eredmnyekppen egymssal kapcsolatban ll, az eredetinl kisebb trolsi igny relcikat kapunk; egy tervezsi metodika, amely segtsget nyjt a logikailag ttekinthetbb, (trlsi, mdostsi, beszrsi) anomliktl
mentes relcis smk s adatbzis smk kialaktsban.
A tervezsi irnyelveket kvetelmnyek formjban adjk meg, mghozz tbb,
egymsra pl kvetelmny alakjban. A szakirodalom t (nha hat) norml formt
klnt el. E norml formk egymsra plse azt jelenti, hogy egyes norml formk
megkvetelik ms norml formk teljeslst. A norml formk egyre szigorod kvetelmnyrendszert reprezentlnak, illetve egyre szigorod felttelrendszert jelentenek.
A tervezs sorn a legmagasabb norml forma elrse a cl: egy olyan redundanciamentes relci rendszer, relcis adatbzis, melyben csak a relci kulcsra vonatkoz tnyeket trolunk. Az els hrom norml forma a funkcionlis fggsgekben taadatbzisok.doc

- 49 -

2003.09.09.

## llhat redundancik, mg a negyedik s tdik a tbbrtk fggsgekbl add

redundancik megszntetsre koncentrl.
A normalizls lpseinek megismershez elszr t kell tekintennk, hogy mit rtnk funkcionlis s tbbrtk fggsg alatt.

3.2

## A fggsg fogalmnak segtsgvel a tblzatok bels szerkezett trhatjuk fel. A

funkcionlis s tbbrtk fggsg a tblk oszlopai kztt lv sszefggseket
rja le.

## 3.2.1 Funkcionlis fggsg

Adatok kztt akkor ll fenn funkcionlis kapcsolat, ha egy vagy tbb adat konkrt rtkbl ms adatok egyrtelmen kvetkeznek. gy pldul a szemlyi
szm s a nv kztt funkcionlis kapcsolat van, mivel minden embernek klnbz
a szemlyi szma. Jellse:
szemlyi szm nv
vagy diagrammal:
szemlyi szm

nv

## 3-1. bra. Relcik norml alakja funkcionlis fggsgi diagram.

A funkcionlis fggsg bal oldaln ll a fggsg meghatrozja. A jobb oldalon
lev egy, csak egy rtket hatroz meg a funkcionlis fggsg. Nem ll fenn funkcionlis fggsg abban az esetben, ha a meghatroz egy rtkt tbb attribtum
rtkkel hozhatjuk kapcsolatba. Pldul a nv vgzettsg llts nem igaz, mert
tbb szemlynek lehet azonos neve, akiknek klnbz a vgzettsgk.
neknk csak annyi a dolgunk, hogy felismerjk ezeket a trvnyszersgeket. A
tervezs sorn fontos, hogy ezeket a kapcsolatokat pontosan felismerjk s figyelembe vegyk.
A funkcionlis fggsg jobb oldaln tbb attribtum is llhat. Pldul a
szemlyi szm nv, szletsi v funkcionlis fggsg azt fejezi ki, hogy a szemadatbzisok.doc

- 50 -

2003.09.09.

lyi szmbl kvetkezik az illet neve s szletsi ve, mivel minden embernek ms
s ms a szemlyi szma, s minden embernek van egy neve s valamikor szletett. Diagrammal brzolva:

nv
szemlyi szm
szletsi v

## 3-2. bra. Relcik norml alakja funkcionlis fggsg tbb

meghatrozott rtkkel.
Elkpzelhet olyan eset is, amikor kt attribtum klcsnsen fgg egymstl.
Tipikusan ez a helyzet a hzastrsak esetn frj szemlyi szma felesg szemlyi
szma, illetve felesg szemlyi szma frj szemlyi szma. Ebben az esetben
mindkt funkcionlis kapcsolat igaz, amit a frj szemlyi szma felesg szemlyi
szma jellssel fejezhetnk ki.
A funkcionlis fggsg bal oldaln is megjelenhet tbb attribtum. Ilyen esetben
ezek egyttesen hatrozzk meg a jobb oldalon szerepl attribtum rtkt. Pldul
adatokat mrnk klnbz idpontokban s helyszneken gy, hogy egy helysznen
akr tbbszr is vgznk mrst. Ebben az esetben a kvetkez funkcionlis fggsg ll fenn: idpont, helyszn mrsi adatok. Diagrammal:

idpont
helyszn

## 3-3. bra. Relcik norml alakja funkcionlis fggsg sszetett meghatrozval.

A funkcionlis fggsgek egy specilis esete a teljes funkcionlis fggsg. Errl
akkor beszlhetnk, ha a meghatroz oldalon nincsen felesleges attribtum. Pldul a szemlyi szm, cm nv funkcionlis fggsg nem teljes funkcionlis fggadatbzisok.doc

- 51 -

2003.09.09.

## sg, mivel a szemlyi szm mr egyrtelmen meghatrozza az embernk nevt,

ehhez nincs szksg a cmre is.
A funkcionlis fggsg bevezetsvel a relcikat a kvetkez matematikai jellsekre pl mdon is felrhatjuk:
-

az ltalnos formja:
relcinv=({attribtumok},{funkcionlis fggsgek listja})

konkrt pldval:
dolgoz=({szemlyi szm,nv,cm },{szemlyi szmnv})

## 3.2.2 Tbbrtk fggsg

Az adatok kztt fennll kapcsolatok kzl nem mindegyik fejezhet ki a funkcionlis fggsg segtsgvel. A tbbrtk fggsg azt jelenti, hogy a meghatroz
tulajdonsg egyes adatrtkeihez a meghatrozott tulajdonsg egy-egy rtkhalmaza tartozik. Pldul minden oktat tanthat tbb tantrgyat, illetve ugyanazt a
trgyat tbb oktat is tanthatja. Ez esetben egyik irnyban sincs egyrtelm fggsg; ez egy tbbrtk fggsg, az egyik attribtumhoz egy msik attribtum csoportja, halmaza kapcsoldik. A tbbrtk fggsg brzolsra a dupla nyilat
hasznljuk: oktat tantrgy. A funkcionlis fggsghez hasonlan, a tbbrtk fggsg esetn is elfordulhat, hogy egy attribtum rtkbl egynl tbb
tovbbi attribtum rtke kvetkezik. Az elz pldnl maradva: oktat tantrgy, tantrgy kdja.

oktat

tantrgy

## 3-4. bra. Relcik norml alakja tbbrtk fggsg diagram.

A funkcionlis s a tbbrtk fggsg kztt kapcsolat ll fent. Sokszor ugyanazt a
fggsgi kapcsolatot kifejezhetjk funkcionlis s tbbrtk fggsggel is.
Pldul egy egyetemen klnbz szakok lteznek, a szakokon klnfle trgyakat
tantanak. Szeretnnk nyilvntartani szakonknt az oktatott rk szmt. Ezt lerhatjuk funkcionlis fggsg segtsgvel: szak azonost, tantrgy azonost raszm. Tbbrtk fggsggel is kifejezhetjk az adatok kapcsolatt. A szak azonost tantrgy azonost, raszm azt fejezi ki, hogy minden szakon a tantrgyak

- 52 -

2003.09.09.

## egy csoportjt oktattk bizonyos raszmban.

A funkcionlis fggsgeket mindig elnyben kell rszesteni a tbbrtk fggsggel szemben. ltalnos szably, hogy elszr az sszes funkcionlis fggsget rjuk fel, majd csak a hinyz kapcsolatok lersra hasznljunk tbbrtk fggsget.

3.3

## Els norml forma (1NF)

Egy relci els norml formban van, ha minden attribtuma egyszer nem sszetett adat (minden mezje atomi rtket hordoz), valamint ha minden mezje funkcionlisan fgg a kulcsmez csoporttl. Vagyis a fggsgi rendszerben lteznie kell
egy kulcsnak, s minden ms meznek ettl kell fggenie.
Az albbi tblzatok nem felelnek meg az 1NF feltteleinek, mert nem egyforma az
oszlopok szma, vagy tbbrtk attribtumuk van, vagy azonos sorai vannak.
Nv
Kis rpd

Hobbi
olvass
szs
Nagy Gza tenisz
sakk
Tth Erika tnc
kung-fu
sts-fzs

nv
Kiss Benedek
Kovcs Gbor
Kovcs Gbor

cm
Budapest
Szeged
Szeged

vgzettsg
fiskola
egyetem
egyetem

## 3-5. bra. Relcik norml alakja 1NF-nek nem megfelel tblzatok.

Egy tblzat 1NF-ben van, ha:
-

## minden oszlop csak egy attribtum rtket vesz fel, tovbb

minden sorhoz tartozik egy egyedi kulcs, amitl az sszes tbbi attribtum funkcionlisan fgg.

- 53 -

2003.09.09.

Nv
Kis rpd
Kis rpd
Nagy Gza
Nagy Gza
Tth Erika
Tth Erika
Tth Erika
Szemlyi szm
17204124168
12711071125
14908013514

nv
Kiss Benedek
Kovcs Gbor
Kovcs Gbor

cm
Budapest
Szeged
Szeged

Hobbi
olvass
szs
tenisz
sakk
tnc
kung-fu
sts-fzs

vgzettsg
fiskola
egyetem
egyetem

## 3-6. bra. Relcik norml alakja tblzatok mdostsa

1NF elrsainak megfelelen.
Plda: Egy egyetemi nyilvntartsban szerepel a tanul azonostja (tanazon), neve
(tannv), lakcme (cm), szakja (szak), a kar azonostja (karazon) s neve (karnv),
a kari vezet neve (karvez), s a tantrgyak (tantrgy). Foglaljuk ssze az adatokat
egyetlen tblban:
tanazon tannv
812 Szab kos

tancm
Szeged

szak
tanr

karazon karnv
karvez tantrgy
12 tanrkpz Kovcs matematika
biolgia
kmia
512 Sndor Sndor Szeged
filozfia
10 blcssz
Tth
filozfia
magyar
trtnelem
912 Vr Anik
Budapest tanr
12 tanrkpz Kovcs angol
magyar
matematika

## 3-7. bra. Relcik norml alakja tblzat normalizls eltt.

Ha talaktjuk a tblt 1NF-nek megfelelen, a kvetkez tblzatot kapjuk:
tanazon
812
812
812
512
512
512
912
912
912

tannv
Szab kos
Szab kos
Szab kos
Sndor Sndor
Sndor Sndor
Sndor Sndor
Vr Anik
Vr Anik
Vr Anik

tancm
Szeged
Szeged
Szeged
Szeged
Szeged
Szeged
Budapest
Budapest
Budapest

szak
karazon karnv
karvez tantrgy
tanr
12 tanrkpz Kovcs matematika
tanr
12 tanrkpz Kovcs biolgia
tanr
12 tanrkpz Kovcs kmia
filozfia
10 blcssz
Tth
filozfia
filozfia
10 blcssz
Tth
magyar
filozfia
10 blcssz
Tth
trtnelem
tanr
12 tanrkpz Kovcs angol
tanr
12 tanrkpz Kovcs magyar
tanr
12 tanrkpz Kovcs matematika

- 54 -

2003.09.09.

## Krds, hogy mi legyen a kulcs, melyek azok az attribtumok amelyek egyrtelmen

azonostanak egy sort? A tanazon nmagban nem elegend a rekordok azonostsra. Szksg van a szak s a tantrgy mezkre is a sorok egyrtelm azonostshoz.

3.4

## Msodik norml forma (2NF)

Msodik norml formban van a relci, ha az els norml formt teljesti s ezen
fell minden nem kulcs mez a teljes kulcstl fgg, de nem fgg a kulcs brmely valdi rszhalmaztl. Ezzel azt fejezzk ki, hogy a kulcs kzponti szerepet jtszik a
relciban, minden meznek a teljes kulcstl, s nem annak egy rsztl kell fggnie.
A relci 2NF-ben van, ha:
-

1NF-ben van s

kulcstl.

## Plda: Az 1NF-j tblzatbl olyan tblzatokat kell ltrehoznunk, amelyekben a

kulcs minimlis. Nzzk meg a fggsgeket:
tanazon tannv, tancm,
szak karazon, karnv, karvez
tantrgy
Szemlletesebben brzolva:
tannv, tancm
tanazon
karazon
szak
karnv
tantrgy
karvez

## 3-9. bra. Relcik norml alakja mezk kztti funkcionlis

fggsgek brzolsa.
A rajz alapjn kvetkezik, hogy a tblzatunkat clszer hrom rszre felbontani:

- 55 -

2003.09.09.

tanazon
812
512
912

Kar
szak
tanr
filozfia

tannv
Szab kos
Sndor Sndor
Vr Anik

tancm
Szeged
Szeged
Budapest

karazon karnv
12 tanrkpz
10 blcssz

karvez
Kovcs
Tth

Ki-hova-mit
tanazon
812
812
812
512
512
512
912
912
912

szak
tanr
tanr
tanr
filozfia
filozfia
filozfia
tanr
tanr
tanr

tantrgy
matematika
biolgia
kmia
filozfia
magyar
trtnelem
angol
magyar
matematika

## 3-10. bra. Relcik norml alakja tblzatok 2NF-ben.

szrevehetjk, hogy ebben a lpsben megjelennek az idegen kulcsok is. A Tanul
relciban a tazon elsdleges kulcs, mert ez hatrozza meg a tbbi tulajdonsgot.
A Ki-hova-mit relciban elsdleges kulcs a tazon, szak s tantrgy attribtumok
kombincija, mivel ez hatroz meg egy adott sort. Idegen kulcsok a tanazon s a
szak mezk, mert a msik kt tblra ezek segtsgvel hivatkozunk.
A Kar relciban az elsdleges kulcs a szak, vagy a karazon.

3.5

## Harmadik norml formban van a relci, ha teljesti a msodik norml formt s

ezenkvl igaz, hogy nem ll fenn tranzitv fggsg, azaz nem ll fenn az egyik nem
kulcs mezbl egy msik nem kulcs mezbe irnyul fggsg. Ilyen estben ugyanis
a kulcs a kztes mezn keresztl, tranzitven hatrozza meg a msik mez rtkt. A
kztes mez a msik meznl egyfajta kulcs szerepet jtszik.
A relci 3NF-ben van, ha:
-

2NF-ben van,

## funkcionlis fggs csak az elsdleges kulcsbl indul ki, a kzvetett

(tranzitv) fggseket megszntetjk.

Plda: A Kar nev tblnkban vannak olyan mezk, amelyek kzvetve is fggnek az
elsdleges kulcstl, gy a szak meghatrozza a kar azonostjt, a kar azonostja a
kar nevt s a kar vezetjt. gy mg mindig maradtak rendellenessgek a tblzatunkban, amit meg kellene szntetni. Ha az egyik kar indt egy j szakot, akkor ismt
be kell vinnnk a kar nevt, s vezetjt feleslegesen. Clszer teht a Kar nev tb-

- 56 -

2003.09.09.

Tanul
tanazon
812
512
912

tannv
Szab kos
Sndor Sndor
Vr Anik

Kar
karazon karnv
12 tanrkpz
10 blcssz
Szak
szak
tanr
filozfia

Ki-hova-mit
tanazon
812
812
812
512
512
512
912
912
912

tancm
Szeged
Szeged
Budapest
karvez
Kovcs
Tth

szak
tanr
tanr
tanr
filozfia
filozfia
filozfia
tanr
tanr
tanr

tantrgy
matematika
biolgia
kmia
filozfia
magyar
trtnelem
angol
magyar
matematika

karazon
12
10

3.6

## A harmadik norml formig mindenflekppen rdemes normalizlni a relcikat.

Legtbbszr elegend is az els hrom norml formnak megfelel relcik alkalmazsa. Elfordulhatnak azonban olyan esetek is, amikor mg ezutn is maradnak
anomlik s feleslegesen trolt adatok. A negyedik s tdik normlforma a tbbrtk fggsgekbl add redundancia kiszrst szolglja.
Egy relci negyedik norml formban van, ha egy XY tbbrtk fggsget tartalmaz relciban csak az X s Y-ban megtallhat attribtumokat tartalmazza.
Vagyis a relci 4NF-ben van, ha:
-

3NF-ben van,

## Plda: Oktatk klnbz tantrgyakat tantanak klnbz szakokon. Egy trgyat

tbb szakon is oktatnak s egy szakon tbb tantrgyat is tanulnak. Egy oktat is
tbbfle trgyat tanthat, illetve ugyanazt a trgyat tbb oktat is tanthatja. Felveszszk az adatokat, majd talaktjuk gy, hogy a 3NF-nak is megfeleljen. Az gy kapott
tblban az azonosthatsg rdekben kulcsnak a hrom oszlop kombincijt kell
vennnk (oktat+tantrgy+szak). Mgis szrevehetjk, hogy sok ismtlds van a
tblzatunkban. A felesleges trolsi ignyt tovbbi sztbontssal cskkenthetjk. Az

- 57 -

2003.09.09.

gy kapott j tblzatainknak tovbbra is sszetett elsdleges kulcsai vannak: a kimit-oktat relciban oktat+tantrgy, a ki-hol-oktat relciban pedig oktat+szak. Az
oktat mindkt tblban idegen kulcs, gy ezzel hivatkozhatunk a msik tblra.
A kiindulsi pontbl teht, ahol a tblzatunkban a mezk kztt tbb tbbrtk
fggs volt (oktat s tantrgy, valamint oktat s szak kztt), eljutottunk oda, hogy
kaptunk kt olyan tblzatot, amelyben mr csak egy-egy tbbrtk fggs tallhat.
Oktats
oktat
tantrgy
szak
Szab Elek fizika
informatika
matematika fizika
mszaki
Tth Erika kmia
biolgia
tanr

Oktats
oktat
Szab Elek
Szab Elek
Szab Elek
Szab Elek
Szab Elek
Szab Elek
Tth Erika
Tth Erika

tantrgy
fizika
fizika
fizika
matematika
matematika
matematika
kmia
kmia

szak
informatika
fizika
mszaki
informatika
fizika
mszaki
biolgia
tanr

Ki-mit-oktat
tantrgy
oktat
Szab Elek fizika
Szab Elek matematika
Tth Erika kmia
ki-hol-oktat
oktat
Szab Elek
Szab Elek
Szab Elek
Tth Erika
Tth Erika

szak
informatika
fizika
mszaki
biolgia
tanr

3.7

## Az tdik norml forma esetn mg tovbb bonthatjuk a relcikat a redundancia

megszntetse rdekben. Ugyanakkor mivel ez mr csak nagyobb trol terlet
felhasznlsval lehetsges, ezrt ltalban az adatbzis tervezje dnt arrl, hogy
az tdik norml formt s a nagyobb adatbzist vagy a redundancit s a komplikltabb frisstsi, mdostsi algoritmusokat vlasztja.

- 58 -

2003.09.09.

## Plda: A Ki-mit-oktat s a Ki-hol oktat mell felvesszk a hol-mit-oktatnak relcit is:

Ki-mit-oktat
oktat
tantrgy
Szab Elek fizika
Szab Elek matematika
Tth Erika kmia
ki-hol-oktat
oktat
Szab Elek
Szab Elek
Szab Elek
Tth Erika
Tth Erika

hol-mit-oktatnak
tantrgy
szak
fizika
informatika
fizika
fizika
fizika
mszaki
matematika informatika
matematika fizika
matematika mszaki
kmia
biolgia
kmia
tanr

szak
informatika
fizika
mszaki
biolgia
tanr

## 3-13. bra. Relcik norml alakja 5NF.

3.8

A normalizls eredmnye

## A normalizls eredmnyekppen olyan fggsgi rendszert kaptunk, amely tiszta s

egyrtelm. Minden tblnl lteznie kell egy fggsgi centrumnak, a kulcsnak, s
minden ms mezhz lteznie kell fggsgi kapcsolatnak a kulcsbl. Ezeken a fggsgeken kvl a relcisma nem tartalmazhat ms fggsgeket.
Az elkszlt, normalizlt modell mr mentes kell legyen azon alapvet tervezsi hibktl, melyek anomlikat okoznak. Ezzel sikerlhet egy a szemantikai tartalmat is
a lehetsgek szerint megrz s a hatkonysgi szempontokat is figyelembe vev
relcis adatmodellt alkotni, melyet felhasznlhatunk az adatbzis megvalstshoz. Azt is meg kell azonban jegyeznnk, hogy bizonyos mveletek hatkonyabb
vgrehajtsa rdekben egyes esetekben le kell mondanunk a tisztasgrl, ttekinthetsgrl, s ssze kell vonnunk olyan adatokat is egy relciba, amelyeknek a
normalizls elmlete szerint kln relcikban kellene helyet foglalniuk.

- 59 -

2003.09.09.

## 4. Mveletek, relcis algebra

A relcis modell felptsben annak strukturlis s integritsi komponensei vesznek rszt, e komponensekbl ll ssze a relcis adatstruktra. Az itt megadott szablyok hatrozzk meg, hogy hogyan nzhet ki egy adott adatbzis. Ezek a komponensek az adatbzis brmely idpontbeli llapotaira vonatkoznak, idtl fggetlenek,
ezrt statikus elemeknek nevezzk ket.
rtelme, hogy hasznljk azt. A felhasznls sorn a felhasznlk lekrdezhetik,
vagy mdosthatjk az adatbzis tartalmt. Az adatbzis akkor lesz teht l, ha
csatlakozik hozz egy olyan funkcicsoport is, amely lehetv teszi az adatbzisban
trolt adatok lekrdezst s mdostst. Ezeket a komponenseket mivel az
A relcikbl elmletileg igen sokflekppen, tbbfle mechanizmussal lehet adatokat kiolvasni. Az itt ismertetsre kerl mveletcsoportot sszefoglalan relcis
algebrnak nevezik. A relcis algebra az alapja a ma mr szabvnyknt elfogadott
s leginkbb elterjed adatlekrdez relcis parancsnyelvnek, az SQL-nek is.
A relcis adatmodell mveleti rsze a relcikon alapul, vagyis minden mvelet
a relcikon rtelmezett, bemen operandusai csak relcik lehetnek. A relcis algebra egyszer, de hatkony mdszereket ad a keznkbe ahhoz, hogy a meglv
relcikbl j relcikat hozzunk ltre.
A relcis mveletek csoportjai:
-

## mveletek, amelyek kt relci sorait kombinljk pldul a keresztszorzat

s az sszekapcsols,

- 60 -

2003.09.09.

## mjt, vagyis az attribtumok s a relci nevt ez az tnevezs.

E mveletek nem elegendek a relcikon elvgzend sszes szmtshoz, ugyanis
nagyon korltozott lehetsget biztostanak, mgis jelents rszt tartalmazzk
azoknak a mveleteknek, amelyeket az adatbzisokkal tenni akarunk.
A mveletek egyik rsze adatkezelsre (felvitel, mdosts, trls), a msik rsze
hasznlhat.
Tekintsk t a relcis algebra krbe tartoz mveleteket:
-

tnevezs (egyoperandus),

metszet (ktoperandus),

szelekci (egyoperandus),

klnbsg (ktoperandus),

projekci (egyoperandus),

oszts (ktoperandus),

sszekapcsols (ktoperandus),

kiterjeszts,

keresztszorzat (ktoperandus),

csoportosts.

uni (ktoperandus),

4.1

tnevezs

## A relcis algebra taln legegyszerbb mvelete. A mvelet:

RENAME(oszlop1,oszlop2)
Vgrehajts utn az oszlop1 nev oszlop neve oszlop2 lesz.
Plda: Az Oktats tblzatban tartjuk nyilvn a tanrok nevt s beosztst. Az eredeti relcink: Oktats(tanrnv,beoszts). Mivel nem csak tanrok oktatnak, mdostjuk az oszlop nevt: RENAME(tanrnv,oktatnv). Az tnevezs eredmnye: Oktats(oktatnv,beoszts).

4.2

Szelekci (Korltozs)

A relcinak azokat a sorait kapjuk eredmnyl, amelyek megfelelnek egy adott felttelnek. A mvelet:
RESTRICT relcinv WHERE felttel
sszetett felttelt is megadhatunk az AND (s) OR (vagy) NOT (nem) logikai kifejezsek s a > = < relcijelek hasznlatval.
Plda: Az albbi tblbl kivlogatjuk a fehr szn Opel tpus autk adatait:

- 61 -

2003.09.09.

## FehrOpel = RESTRICT Aut WHERE szn=fehr AND tpus=Opel.

Eredmnyl egyetlen sort kapunk.
Aut
rendszm
ATC-812
RSA-101
LAK-941

tpus
Opel
Opel
Suzuki

FehrOpel
rendszm tpus
ATC-812 Opel

szn
fehr
kk
fehr

r
3 000 000
2 800 000
1 900 000

szn
fehr

r
3 000 000

## 4-1. bra. Relcis algebra szelekci.

4.3

Projekci (vetlet)

## A projekci a tblzat leszktst jelenti bizonyos oszlopaira. Akkor hasznljuk, ha

csak bizonyos oszlopok tartalmra vagyunk kvncsiak. A mvelet:
relcinv PROJECT(oszlop1,oszlop2oszlopn)
Plda: Csak az autk tpusra vagyunk kvncsiak:
AutTpus = Aut PROJECT(tpus)
Aut
rendszm
ATC-812
RSA-101
LAK-941

tpus
Opel
Opel
Suzuki

szn
fehr
kk
fehr

r
3 000 000
2 800 000
1 900 000

AutTpus
tpus
Opel
Opel
Suzuki

## 4-2. bra. Relcis algebra projekci.

Mint ebben az esetben is, nha elfordulhat, hogy kapott j tblban kt, vagy tbb
rekord is meg fog egyezni, mrpedig az elmleti relcis adatmodellben ilyen nem
lehetsges. A gyakorlatban azonban az adatbzis-kezel rendszerek minden elfor-

- 62 -

2003.09.09.

dulst meghagynak az eredmnytblban, mivel a tbbszri elforduls is informcit nyjthat az adatbzis felhasznljnak. Az adatbzis-kezelk ltalban kln belltsi lehetsget biztostanak a tbbszrsen elfordul rekordok kiszrsre.

4.4

Keresztszorzat

## Kt relci keresztszorzatt gy kapjuk meg, hogy az els relci minden sorhoz

hozzrjuk a msodik relci minden sort. A mveletet abban az esetben, ha a kt
tblban van kt azonos nev oszlop, nem vgezhetjk el. Ilyenkor az egyik oszlopot
elszr t kell nevezni. Ezt a mveletet ritkn alkalmazzuk, mert nagyon ritkn van
rtelme, ezen kvl kt nagyobb mret tbla keresztszorzata egy hatalmas trigny, kezelhetetlen mret tblzatot eredmnyezhet. A mvelet:
relcinv1 TIMES relcinv2
Plda: Hrom fi s hrom lny tanul tncolni. A tncrn minden lny brmelyik
fival tncolhat, s fordtva. Az sszes lehetsges kombincit gy llthatjuk el:
prok = lnyok TIMES fik
Lnyok
l_nv
Krisztina
gnes
Anik

l_magas
180
165
172

Prok
l_nv
Krisztina
Krisztina
Krisztina
gnes
gnes
gnes
Anik
Anik
Anik

l_magas
180
180
180
165
165
165
172
172
172

Fik
f_nv
kos
Balzs
Ferenc

f_nv
kos
Balzs
Ferenc
kos
Balzs
Ferenc
kos
Balzs
Ferenc

f_magas
178
182
165

f_magas
178
182
165
178
182
165
178
182
165

## 4-3. bra. Relcis algebra keresztszorzat.

- 63 -

2003.09.09.

4.5

Uni (Halmazegyests)

A halmazegyests ktoperandus mvelet. Mindkt tblnak ugyanolyan szerkezetnek kell lennie, hiszen az eredmnyrelci mindkt relci rekord elfordulsait,
azok sszes sort tartalmazza. Az eredmnyrelci struktrja megegyezik a bemen relcik struktrjval. Azok a sorok amelyek mindkt tblban szerepelnek, az j
tblban csak egyszer fognak megjelenni. A mvelet:
relcinv1 UNION relcinv2
Plda: A nyugati, valamint keleti gpkocsik adatait tartalmaz tblbl elksztjk
azt a tblt, ami valamennyi aut adatait tartalmazza:
jAut = Aut1 UNION Aut2
Aut1
rendszm
ATC-812
RSA-101
LAK-941

tpus
Opel
Opel
Suzuki

szn
fehr
kk
fehr

r
3 000 000
2 800 000
1 900 000

Aut2
rendszm
ROC-512
ALU-019
SPA-310

tpus
Trabant
Skoda

szn
piros
zld
fehr

jAut
rendszm
ATC-812
RSA-101
LAK-941
ROC-512
ALU-019
SPA-310

tpus
Opel
Opel
Suzuki
Trabant
Skoda

szn
fehr
kk
fehr
piros
zld
fehr

r
3 000 000
2 800 000
1 900 000
500 000
30 000
1 500 000

500 000
30 000
1 500 000

## 4-4. bra. Relcis algebra uni.

4.6

Metszet

A metszet kt relciban mindkt helyen elfordul rekord elfordulsokat adja viszsza az eredmnytblban. A mvelet csak abban az esetben hajthat vgre, ha a kt
relci szerkezete megegyezik. A mvelet:

- 64 -

2003.09.09.

## relcinv1 INTERSECTION relcinv2

Plda: Egy j tblba tesszk azokat az autkat, amelyek mindkt rgi tblban szerepelnek:
KzsAut = Aut1 INTERSECTION Aut2
Aut1
rendszm
ATC-812
ALU-019
LAK-941

tpus
Opel
Trabant
Suzuki

szn
fehr
zld
fehr

r
3 000 000
30 000
1 900 000

Aut2
rendszm
ROC-512
ALU-019
SPA-310

tpus
Trabant
Skoda

szn
piros
zld
fehr

szn
zld

KzsAut
rendszm tpus
ALU-019
Trabant

500 000
30 000
1 500 000

30 000

4.7

Klnbsg

## A klnbsg ktoperandus mvelet, s csak akkor hajthat vgre, ha a tblzatok

oszlopai megegyeznek. A mvelet az elsknt vett relciban megtallhat, de a
msodikban nem szerepl rekord elfordulsokat adja vissza az eredmnytblban.
A klnbsg mvelete nem szimmetrikus, azaz az eredmny fgg az operandusok
relcinv1 EXCEPTION relcinv2
Plda: Az Opel auttpust mr kln tblban troljuk, ezrt nincs szksg arra, hogy
az sszestett tblban is szerepeljenek az adatai:
NemOpel = Aut EXCEPTION Opel

- 65 -

2003.09.09.

Aut
rendszm
ATC-812
RSA-101
LAK-941
ROC-512
ALU-019
SPA-310

tpus
Opel
Opel
Suzuki
Trabant
Skoda

szn
fehr
kk
fehr
piros
zld
fehr

r
3 000 000
2 800 000
1 900 000
500 000
30 000
1 500 000

Opel
rendszm tpus
ATC-812 Opel
RSA-101 Opel

szn
fehr
kk

r
3 000 000
2 800 000

NemOpel
rendszm
LAK-941
ROC-512
ALU-019
SPA-310

szn
fehr
piros
zld
fehr

r
1 900 000
500 000
30 000
1 500 000

tpus
Suzuki
Trabant
Skoda

4.8

sszekapcsols

## Az sszekapcsols, egyests mvelete szintn kt relcibl llt el egy eredmny

relcit. Akkor hasznljuk, ha egynl tbb tblzatbl kell sszeszedni az adatokat,
vagyis sszerakjuk azt, amit normalizlssal sztszedtnk. Az eredmny egy olyan
relci lesz, amelyben az egyik relci soraihoz hozzrjuk a msik relci minden
olyan sort, amelyben a megadott kzs mezk (join mezk) rtke azonos. Az j
tblzat oszlopainak szma a kt kiindul tblzat oszlopainak sszege mnusz a
kzs oszlopok szma. A kzs oszlop csak egyszer szerepel. A mvelet:
relcinv1 JOIN relcinv2(join mez)
Plda: Az autk s tulajdonosaik adatait kt tblban troljuk. Ltrehozunk egy olyan
Tulajdonos = Aut JOIN Ember(rendszm)

- 66 -

2003.09.09.

Aut
rendszm
ATC-812
RSA-101
LAK-941

Ember
nv
Kovcs
Nagy
Kiss

tpus
Opel
Opel
Suzuki

Tulajdonos
tpus
Opel
Opel
Suzuki

rendszm
ATC-812
RSA-101
LAK-941

rendszm
RSA-101
LAK-941
ATC-812

nv
Kiss
Kovcs
Nagy

## 4-7. bra. Relcis algebra sszekapcsols.

Az sszekapcsols sszetett mvelet. Vgrehajthattuk volna hrom msik mvelet
felhasznlsval is:
Elszr kpezzk a kt relci keresztszorzatt:
keresztszorzat = Aut TIMES Ember
Kivlogatjuk azokat a sorokat, amelyekben a kzs mezk azonosak:
vlogat = RESTRICT keresztszorzat
WHERE (Aut.rendszm=Ember.rendszm)
Vgl elhagyjuk a feleslegesen ktszer szerepl kapcsolmezk kzl az
egyiket, azaz vetletet kpeznk:
tulajdonos = vlogat PROJECT (tpus, aut.rendszm, nv)

4.9

Oszts

Az oszts a gyakorlatban igen ritkn hasznlt s kevs adatbzis-kezel rendszerben megvalstott ktoperandus mvelet, mivel vgrehajtsa igen idignyes, s
gyakorlati haszna sem jelents. Egy R1 s R2 relci hnyadosa egy olyan relci,
melyben R1 mindazon rekordjainak projekcii tartoznak, melyek szorzata az R2-vel,
legnagyobb rszhalmazt alkotjk az R1-nek.
Plda: Az Aut tblbl kivlogatjuk a Rendszm tblban lv rendszmokhoz tartoz autk tpusait:

- 67 -

2003.09.09.

Aut
rendszm
ATC-812
RSA-101
LAK-941
ROC-512
ALU-019
SPA-310

Rendszm
rendszm
ATC-812
LAK-941
ALU-019

tpus
Opel
Opel
Suzuki
Trabant
Skoda

Tpus
tpus
Opel
Suzuki
Trabant

## 4-8. bra. Relcis algebra oszts.

Hasonlan az sszekapcsolshoz, ez is egy sszetett mvelet, amit a kvetkezkppen rhatunk le: Szelektljuk az Aut tblt a Rendszm tblban megadott rtkek szerint s vgezznk projekcit a Rendszmban nem szerepl mezkre. A szelekcit a Rendszm tbla minden rekordjra el kell vgezni, gy annyi eredmnytblt
kapunk, ahny sorbl ll az oszt tblzat. Ezutn venni kell az eredmnytblk
metszett, ami egyben az oszts eredmnyt tartalmaz tbla lesz.

4.10 Kiterjeszts
A mvelet ltrehozsnak indttatsa az volt, hogy egyes lekrdezseknl nem mindig csak a mezrtkekre, hanem az azokbl kpzett valamilyen kifejezsek rtkeire is kvncsiak vagyunk.
Plda: A tblzatban trolt adatok mellett szksgnk van a nett rra is:
Aut
rendszm
ATC-812
RSA-101
LAK-941
ROC-512
ALU-019
SPA-310

tpus
Opel
Opel
Suzuki
Trabant
Skoda

szn
fehr
kk
fehr
piros
zld
fehr

r
3 000 000
2 800 000
1 900 000
500 000
30 000
1 500 000

r*0,8
2 400 000
2 240 000
1 520 000
400 000
24 000
1 200 000

## 4-9. bra. Relcis algebra kiterjeszts.

4.11 Csoportosts
Bizonyos esetekben nem magra a konkrt rekord-elfordulsokra vagyunk kvnadatbzisok.doc

- 68 -

2003.09.09.

## csiak, hanem a rekord-elfordulsok valamilyen sszest adataira. A statisztikai

adatok sokszor elegend informcit nyjtanak s jobban is kezelhetk, mint a rszletes adatlistk.
Gyakran alkalmazott sszestsek:
-

## avg elfordulsok valamely mezjnek tlaga.

Plda: Az albbi tblbl sszeszmoljuk, hogy hny darab autnk van, s mennyi
az autk tlagra:
Aut
rendszm
ATC-812
RSA-101
LAK-941
ROC-512
ALU-019
SPA-310

tpus
Opel
Opel
Suzuki
Trabant
Skoda

szn
fehr
kk
fehr
piros
zld
fehr

r
3 000 000
2 800 000
1 900 000
500 000
30 000
1 500 000
COUNT(tipus)
6
AVG(r)
1 621 667

## 4-10. bra. Relcis algebra csoportosts.

- 69 -

2003.09.09.

Az adatbzisrendszerek tervezskor abbl a tnybl kell kiindulni, hogy az adatbzisrendszer is egy szmtgpen fut program, egy szoftvertermk, ezrt az ltalnos szoftverfejlesztsi irnyelvek itt is rvnyesek. A szoftverfejleszts ltalnos metodikja mellett termszetesen az adatbzisrendszerek sajtossgait is figyelembe
kell venni.
kell mrni az ignyeket s meg kell fogalmazni a problmkat. Egy adatbzist manapsg nhny hnap alatt fejlesztenek ki. Ennek krlbell 70-75%-a a tervezsre,
10-15%-a a programozsra, a maradk pedig a tesztelsre fordtott id. Alapos tervezs nlkl a rendszer tlthatatlan lesz s utlagos mdosts mr nagyon krlmnyes.
Nzzk teht a tervezs lpseit:
1. fzis. Az ignyek sszegyjtse, elemzse.
2. fzis. Koncepcionlis terv elksztse.
4. fzis. Adatbzis-kezel rendszertl fgg lekpezs.
5. fzis. Fizikai tervezs.
6. fzis. Megvalsts.

## 5.1 1. fzis. Az ignyek sszegyjtse, elemzse, a feladat specifikcija.

A folyamat sorn nagyon gondosan, tgondoltan fel kell derteni a f alkalmazsi
terleteket, tanulmnyozni kell az adott terlettel rokon, mr meglv alkalmazsokat s azok dokumentciit. Meg kell vizsglni a jelenlegi megvalstsokat
(mg a nem szmtgpes megoldsokat is), valamint a krlmnyeket. A felhasznli ignyek, elvrsok sszegyjtse rdekben clszer a ksbbi felhasznlkkal
is elbeszlgetni.
Az adatok, informcik sszegyjtse utn olyan specifikcit kell kszteni, mely
tartalmazza a felhasznli ignyeket kielgt troland adatokat, valamint a feldolgozsi mveleteket, tranzakcikat, lekrdezseket.

- 70 -

2003.09.09.

## Plda: Egy kiskereskedelmi zlet tulajdonosban megfogalmazdik az az tlet, hogy

vezethetne szlltirl, azok legfontosabb adatairl valamifle nyilvntartst. Megkeres egy hozzrt szakembert, aki rbeszli egy adatbzis-kezel rendszer megvsrlsra s vllalja a program kifejlesztst.
A szakember krdseket tesz fel a kiskeresked ignyeivel kapcsolatban: pontosan
milyen adatokat szeretne nyilvntartani, milyen informcit szeretne leszrni a trolt
adatokbl, hogyan szeretn az informcit megjelenteni. A tbbszri beszlgets
eremnye lehet: kellene trolni a szllt nevt, cmt, adszmt, a szlltott ru
megnevezst, rt, mennyisgt, minsgt, a nyjtott fizetsi feltteleket, szlltsi
hatridket stb; a rendszer kpes legyen olyan krdsekre vlaszt adni, mint pldul
kik azok a szlltk, akik a legolcsbban, legjobb fizetsi felttelekkel, leggyorsabban
szlltanak bizonyos rukat.
Ezek utn a szakember utnanz, hogy milyen, mr ltez szoftvertermkek kaphatk a piacon, ezek esetleg mennyiben felelnek meg a kiskeresked elvrsainak. Mi
olcsbb: egy meglv rendszert megvsrolni, ami esetleg nem teljesen fedi a felhasznl ignyeit, vagy egy j rendszert fejleszteni.
Amennyiben megri j programot rni, a szksges adatokat csoportostani kell szszetartozsuk alapjn, meg kell hatrozni a kulcsokat s a kapcsolatokat. Csak nhny egyedtpus ehhez a pldhoz:
RU(cikkszm,megnevezs,mennyisgi egysg)

5.2

## 2. fzis. A koncepcionlis terv elksztse.

A terv ksztsnek folyamn kell a magas szint modellt kialaktani. A modell segtsgvel meg kell fogalmazni az elre tervezhet lekrdezseket s tranzakcikat. A
terv elnyei:
-

azok kapcsolatait, valamint a kortozsokat,

## olyan terv, lers, amit az adatbzis-kezel rendszer kivlasztsval, vagy a

bels sma mdostsa esetn nem kell megvltoztatni,

## nlklzhetetlen abbl a szempontbl is, hogy mind a felhasznlknak, mind

pedig a programozknak jabb tleteket ad,

- 71 -

2003.09.09.

## A koncepcionlis terv elksztshez leggyakrabban az egyed-kapcsolat modellt

hasznljk, mivel kifejezk (az adattpusok mellett a kapcsolatok tpusait is brzoljk), egyszerek (laikusok is viszonylag knnyen megrthetik), kevs fogalmat
hasznlnak (gy rvid id alatt megtanulhat), szemlletes brkat hasznlnak s
egyrtelmek, szinte nem lehet flrerteni azokat.
Amennyiben hasonl ignyek fogalmazdnak meg adatra vagy tranzakcira vonatkozan, az ignyeket ssze kell fslni. E feladat sorn a legnehezebb feladat az
eltrsek s egyezsgek megtallsa. (Pldul a Dolgoz s Alkalmazott egyed
jelentheti ugyanazt, de Dolgoz s Vezet mr nem.)
Plda: A kiskereskedelmi zlet pldjnl maradva, megrajzoljuk az egyed-kapcsolat
modellt. Ha nem csak egy felhasznlnk lesz, tbbfle igny is felmerlhet, ezrt
tbb nzetet hozunk ltre, majd ezeket mdostjuk, megszntetjk az esetleges ellentmondsokat, vgl integrljuk. A nzetek integrlsa eredmnyezi a teljes koncepcionlis modellt.
mennyegys

megnevezs

cikkszm

ru

mennyisg

kd

minsg

szllt

dtum

cikkszm
r

hatrid
szllt
telepls

megnevezs

utca

- 72 -

2003.09.09.

5.3

## 3. fzis. Az adatbzis-kezel rendszer kivlasztsa.

Az adatbzis-kezel rendszer kivlasztsban igen sok tnyez jtszhat szerepet, mint pldul:
-

a feladat termszete (hierarchikus 1:N kapcsolat esetn vlaszthatunk hierarchikus modellen alapul rendszert, egyb esetben hls, vagy relcis modellen alapul rendszert clszer vlasztani),

## gazdasgossgi megfontolsok (a hardver s szoftver kltsgei, betantsi

s karbantartsi stb. kltsgek),

## a rendszer szolgltatsai, felhasznlbart fellet.

Egyszerbb, pontosan tervezhet feladatok elvgzsre nem kell felttlenl adatbzis-kezel rendszert hasznlni. Nha elnysebb lehet egy hzi fejleszts program,
mint egy bonyolult s kltsges rendszer. Akkor rdemes adatbzis-kezel rendszert hasznlni, ha:
-

## a klnbz adattpusok kztt bonyolult kapcsolatrendszer ll fent s

Plda: A kiskeresked PC-t fog hasznlni, melyhez elssorban relcis adatbziskezel programokat tallhatunk a piacon. Ha a gpen a grafikus fellet Windows
opercis rendszer fut, ezzel kompatibilis adatbzis-kezel rendszert kell vlasztanunk.

5.4

## A lekpezs lnyegben a logikai adatmodelltl fgg szablyok alkalmazsa

(lsd: Egyed-kapcsolat modellbl relcis modell).
A folyamat automatizlhat az n. CASE (Computer Aided Software Engineering
Tools) programok segtsgvel. Ezek az eszkzk az ER-modellbl kiindulva a
Ebben a fzisban trtnik a lekrdezsek megtervezse is, relcis mveletek so-

- 73 -

2003.09.09.

rozatval. A lekrdezsek lershoz hasznlhatunk relcis algebrt, vagy hasznlhatunk ksbbi fejezetben ttekintett n. SQL-szer utastsokat is.
Plda: A kiskereskeds ER-modelljbl relcis adatmodellt ksztnk. (Az albbi
bra a modell egy kis rszt mutatja.) Nhny lekrdezs a modellbl: Kik a szegedi
szlltk? Ki szlltott tzezer forintnl nagyobb sszeg rut? stb.
ru
cikkszm, megnevezs, mennyegys

szllt

szllt

5.5

## 5. fzis. Fizikai tervezs.

Itt kell dnteni a trolsi szerkezetrl s a hozzfrsi mdokrl, melybe az adatbzis-kezel rendszeren kvl az opercis rendszer is beleszlhat.
Relcis adatmodell hasznlata esetn a fizikai tervesben fontos szerepet jtszik az
indexels. Dnt fontossg lehet a lekrdez s aktualizl vagyis a beszr,
trl s mdost mveletek gyakorisga s egymshoz val viszonya. Az indexelsnl azt is figyelembe kell venni, hogy az adatok elrsnek gyorstsa mellett ez
tbblet helyfoglalssal jr.
Plda: Ha mr pontosan tudjuk, hogy melyik adatbzis-kezel rendszert fogjuk hasznlni (a 3. fzisban mr eldntttk), akkor foglalkozhatunk a krdssel, nevezetesen
amennyiben FoxPro-t vagy Access-t hasznlunk , hogy hogyan trtnjen az indexels? Mit rdemes indexelni? Az elsdleges kulcs indexelsbe nem szlhatunk
bele, de megvizsglhatjuk, hogy lesznek-e olyan lekrdezseink, amikor nem az elsdleges kulcs szerint kell rendezni. Lesz, ha pldul az rukat megnevezs szerinti
sorrendben szeretnnk megjelenteni, a megnevezs pedig nem elsdleges kulcs.

- 74 -

2003.09.09.

5.6

6. fzis. Megvalsts.

A programozk megrjk a tranzakcik kdjait, vagy a felhasznli programokat,
melyek hasznlhatjk az adatbzis-kezel nyelv parancsait (ez ltalban az SQL).
Korszer rendszerek felhasznlbart grafikus fellete lehetv teszi, hogy komolyabb programozsi ismeretek nlkl hozzunk ltre kdokat. Nhny szolgltats,
amit a mai rendszerek biztostanak:
-

## 1:N s N:M kapcsolatok adatainak megjelentsre alkalmas lekrdezsek ltrehozsa,

menk, gombok s egyb objektumok ltrehozsa kdok bevitelre, rekordokkal kapcsolatos mveletek vgzsre,

## Valdi adatok felvitele eltt clszer a rendszert mintaadatokkal kiprblni, hogy ne

tl ksn derljenek ki az esetleges hibk. Ezt mr csak azrt is clszer megtenni,
mert mg ekkor is elfordulhat, hogy mind a felhasznl, mind a programoz olyan
jabb lehetsgeket fedez fel, amire eddig nem is gondolt.
A rendszer megvalstsa utn hasznlat kzben felmerlhetnek problmk, amiket
orvosolni kell. Egyb mdostsi ignyek is jelentkezhetnek rszben j felhasznli kvnsgok, rszben a vltoz kls krlmnyek kvetkeztben , amelyeket
utlag szintn be kell pteni.
Plda: A szllti nyilvntarts adatbzist a programoz elkszti. Ltrehozza a tblkat, eldnti, hogy a tbla egyes oszlopai milyen tpusak legyenek (szveg, szm,
dtum stb.), ltrehozza a tblk kztti kapcsolatokat. Elkszti a leggyakoribb lekrdezsek s rlapok smjt s kszt egy ment, amivel ezeket el lehet hvni. A

- 75 -

2003.09.09.

tbla ltrehozsa

lekrdezs ltrehozsa.

- 76 -

2003.09.09.

Szemlyi szmtgpeken elszr a dBase, FoxBase, FoxPro s a Clipper relcis
adatbzis-kezelk terjedtek el. Br a programokat klnbz szoftverfejleszt cgek
ksztettk, mgis egy kzs alapnyelvre plnek, s ppen ezrt szoks ezeket a
Ebben a fejezetben a dBase programozsi nyelv alapjaival ismerkednk meg, amihez a Visual FoxPro-t fogjuk felhasznlni.
Mieltt nekiesnnk a FoxPro-nak, nhny dologgal nem rt tisztban lennnk:
-

A leggyakoribb feladatok menbl elrhetk, gy mg azok is tudnak adatbzisokat ltrehozni, mdostani, akik nem rendelkeznek programozsi gyakorlattal. A men vltozik attl fggen, hogy ppen milyen llomnyokkal
dolgozunk. Tblzat mdostsa esetn pldul a men kiegszl adatkezel
funkcikkal.

## Az utastsokat a Command (parancs) nev ablakba kell berni. Az ENTER

letse utn a begpelt utasts azonnal vgrehajtdik. A vgrehajts eredmnyt, vagy az esetleges hibazenet a httrben, a kpernyn lthatjuk. Az
utastsok egy rsze az els ngy karakterrel rvidthet (pldul MODIFY
STRUCUTE helyett elegend a MODI STRU). A kis- s nagybetk kztt nem
tesz klnbsget a rendszer.

sszes rekordjra, mg msik rszk csak arra a rekordra vonatkozik, amelyiken a rekordmutat ll. Az utastsok hatkrt mdosthatjuk:
FOR felttel utasts vgrehajtsa azokon a rekordokon, amelyekre a felttel teljesl, sszetett felttelt is megadhatunk az .AND., .OR., .NOT. logikai kifejezsekkel.
WHILE felttel az utasts vgrehajtsa a rekordokon, amg a felttel teljesl, sszetett felttelt is megadhatunk.
NEXT n utasts vgrehajtsa a kvetkez n rekordon,
REST utasts vgrehajtsa a rekordmutattl a fjl vgig.
ALL utasts vgrehajtsa az sszes rekordon.

- 77 -

2003.09.09.

## Az utastsok mellett szmos fggvny is rendelkezsnkre ll.

-

A forrsprogramokat brmilyen szvegszerkesztvel elkszthetjk, a lnyeg, hogy ne hasznljunk formzst; egyszer szvegknt, PRG kiterjesztssel kell a programokat menteni.

## DBase-ben minden tblzatot kln munkaterleten trolunk. sszesen

tz munkaterlet ll rendelkezsnkre, amelyekre szmokkal (0-9), vagy betkkel (A-J) hivatkozhatunk. Rgi vltozatokban egy adatbzisban csak egy
tblzat lehet. (A Visual FoxPro-ban ez mr nem gy van!)

A tblzatokat tartalmaz fjlok kiterjesztse DBF. Az adatok logikai rendezst tartalmaz indexfjlok kiterjesztse lehet IDX, CDX, vagy NDX. A fordts eltti forrsprogramot tartalmaz llomny kiterjesztse PRG. Fejlettebb
rendszerek esetn ezeken kvl mg ms tpus llomnyokkal is tallkozhatunk, pldul: MNX men, LBX cmke, FMT formtum, FRM jelents.

## A tblzatokban a mezk (oszlopok) elnevezsnl az angol bc betit s

szmokat hasznljunk! Az adatok bevitelnl termszetesen mr hasznlhatunk magyar kezetes betket is.

## A mezknek nevkn kvl van tpusa s szlessge:

karakteres (character), legfeljebb 254 karakter,
szm (numeric, meg kell adni a tizedesvessz illetve tizedespont eltti s
utni karakterek szmt is),
dtum (date, nem lehet a szlessgt mdostani, az elvlasztjelekkel egytt
8 karakter) nem minden rendszert ksztettek fel az vezredvlts kezelsre,
logikai (logical, igaz/hamis, true/false, 0/1, a szlessgt nem lehet mdostani),
mem (memo, szlessgn nem lehet vltoztatni; ebben a mezben csak hivatkozunk egy klnll fjlra, amiben a mez tartalmt troljuk).
A felsoroltakon kvl rendszertl fggen ms tpusokkal is tallkozhatunk.

A sorokat rekordoknak nevezzk. A rekordmutat mindig az aktulis rekordon, vagy a fjl vgn ll.

- 78 -

2003.09.09.

A tblkba bevitt adatokat nem kell elmenteni. A mentsrl az adatbziskezel gondoskodik a httrben. (Ez csak az adattblkra igaz, minden ms
esetben neknk kell gondoskodnunk a fjlok elmentsrl!)

6.1

## Tbla megnyitsa s bezrsa:

Fjl men, Open menpont. A megjelen ablakban megkeressk azt a DBF kiterjeszts fjl, amit be kvnunk tlteni. Kapcsoljuk be az Exclusive kapcsolt is!
Ha tudjuk, hogy hol s milyen nven tallhat az adatbzisunk, a parancsablakban
adjuk ki a USE tblanv EXCLUSIVE utastst. A USE utastst nmagban is
hasznlhatjuk; ezzel bezrhatjuk az ppen aktulis adatbzist.

## 6-1. bra. FoxPro tbla megnyitsa.

A FoxPro adatbzis-kezel rendszer hlzatban is kpes mkdni. Ebbl kvetkezen alapesetben egyszerre tbben is hasznlhatnk ugyanazt az adatbzist. Ilyenkor
azonban egyes mveletek pldul az adatbzis trlse vagy struktrjnak mdostsa nem engedlyezett. Ha teljes jogkrrel szeretnnk az adatbzisokat kezelni,
akkor kizrlagos (exkluzv) hozzfrshez kell biztostanunk magunknak.

- 79 -

2003.09.09.

## Tblk ltrehozsa s struktra megadsa:

Fjl men, New menpont, majd a New ablakban a Table opcit kell vlasztani. A
New file gombra kattintva meg kell adnunk a ltrehozand tbla nevt. Ezek utn
jutunk ahhoz az ablakhoz, ahol felpthetjk az adattblnk struktrjt. Az OK
gombra kattintva ltrejn az res adatbzis.
A CREATE fjlnv utasts kiadsval szintn a struktra-felpt ablakba jutunk.

## 6-2. bra. FoxPro j tbla ltrehozsa.

FoxPro megkrdezi, hogy fel akarunk-e vinni adatokat (Input data records now?).
Ha itt igennel (Yes) vlaszolunk, megnylik a tblt tartalmaz ablak, s itt begpelhetjk az adatokat.

- 80 -

2003.09.09.

## 6-3. bra. FoxPro adatbevitel (APPEND).

megnyitott tblt tudunk feltlteni.
Megjelents, mdosts, trls:
parancsot (ebben az esetben j rekordokat is hozzadhatunk a tblhoz), illetve a
BROWSE parancsot. A mdostani kvnt rekordra r kell llni, az j rtket be kell
gpelni.

## 6-4. bra. FoxPro mdosts (BROWSE).

Rekordok trlshez a BROWSE utasts kiadsa utn a trlni kvnt sorokat ki
kell jellni. Ehhez a sor bal oldaln tallhat kis tglalapra kell kattintani. Ha meggondoljuk magunkat s mgsem akarunk trlni, a trlsre kijellst ismt a tglalapra kattintva tudjuk megszntetni.
A trlsre kijellt rekordok tblbl val vgleges eltvoltshoz a Table men

- 81 -

2003.09.09.

Remove Deleted Records menpontjra kell kattintani, vagy a PACK utastst kell
Az adattbla teljes tartalmnak trlsre a ZAP parancs hasznlhat.

6.2

A FoxPro programozsa

## A FoxPro-ban az utastsokat egyenknt is kiadhatjuk a Command ablakban, vagy

egy egyszer szvegfjlba sszefogva, programknt is lefuttathatjuk azokat.
A MODIFY COMMAND fjlnv utastssal nyithatunk olyan ablakot, ahol programot
rhatunk. A forrsprogramot a Fjl men Save menpontjval menthetjk.

## 6-5. bra. FoxPro forrsprogram rsa ablakban s a Command ablak.

Ksz programokat a Program men Do menpontjval vagy a DO programnv

- 82 -

2003.09.09.

## A Foxpro programozsnak alapjait, az adatbziskezelshez nlklzhetetlen dBase

Alkalmazott utastsok magyarzata:
SET DEFAULT TO mappanv az alaprtelmezs szerinti mappa megadsa;
minden, amit ltrehozunk, ebbe a mappba kerl; csak ltez mappanevet adhatunk
meg.
CREATE tblanv - tbla ltrehozsa s struktrjnak kialaktsa.
Hozzuk ltre a C meghajt egy mr ltez mappjban az EMBER nev, valamint
egy AUTO nev adattblt a kvetkez mezkkel:
AUTO:

EMBER:
Meznv

Tpus

Mret

Meznv

Tpus

Mret

Szemszam Szm

11,0

Rendszam Szveg

Nev

Szveg

30

Tipus

Szveg

10

Cm

Szveg

30

Szin

Szveg

10

Fizetes

Szm

6,0

Ar

Szm

10

Szuldat

Dtum

Kor

Szm

Dolgozik

Logikai

A megolds:
SET DEFAULT TO c:\foxgyak (vagy brmilyen ms, ltez! knyvtr)
CREATE ember
Stuktra elksztse.
CREATE auto
Stuktra elksztse.
Alkalmazott utastsok magyarzata:
SELECT munkaterlet a megadott munkaterlet aktivlsa; alaprtelmezs
szerint az els munkaterleten dolgozunk.
USE tblanv IN munkaterlet ALIAS alisnv INDEX indexfjl EXCLUSIVE

- 83 -

2003.09.09.

## megnyit egy tblt a megadott munkaterleten. A munkaterletnek becenevet

(aliasnv) is adhatunk. Ha logikai rendezst is hajtottunk vgre a tblban, az gy
keletkezett indexfjlt is megnyithatjuk. Ha a USE utastst nmagban, paramterek
nlkl hasznljuk, azzal bezrjuk az aktulis munkaterleten lv adattblt.
CLOSE ALL vagy CLOSE DATABASES bezrja az sszes adatbzist, illetve
egyes adatbzishoz tartoz fjlokat is. Az els munkaterlet lesz aktv.
Nyissuk meg az elbb ltrehozott EMBER nev tblt az els munkaterleten!
Megolds:
USE ember IN 1 ALIAS ember EXCLUSIVE
vagy
SELECT 1
USE ember ALIAS ember EXCLUSIVE
Zrjuk be az els ember munkaterleten lv adattblnkat!
Megolds:
SELECT ember
USE
vagy
SELECT ember
CLOSE ALL/DATABASES
Alkalmazott utastsok magyarzata:
APPEND j rekordok hozzadsa a tblhoz.
BROWSE [FIELDS mezlista] a tbla mezinek megjelentse s mdostsa
meg semmit, a tbla sszes mezjt lthatjuk.
SET DATE formtum a dtumformtum mdostsa; ha nem kvnunk ksrletezni
azzal, hogy most ppen hogy van belltva, clszer a magyar dtumformnak
megfelel ANSI belltst hasznlni.
Nyissuk meg az EMBER tblt az els, az AUTO tblt pedig a msodik
munkaterleten s tltsk fel a kvetkez adatokkal: (Az EMBER tblban a

- 84 -

2003.09.09.

## helyesrsi hiba szndkos!)

Szem.szm

EMBER:

Nv

Cm

Fizets

Szlets

Dolgozik

17912154115 Kovcs

szeged

55 000

1979.12.15.

Igen

28112011212 Nagy

Budapest

75 000

1981.12.01.

Nem

17501123124 Tth

Szeged

105 000

1975.01.12.

Nem

17704273412 Szab

Gyr

155 000

1977.04.27.

Igen

27603304871 Kovcs

Debrecen

55 000

1976.03.30.

Igen

Kor

AUTO:
Rendszm Tpus

Szn

DPA-812

Piros

AFA-314

Skoda

UIA-912

500 000

17

Fehr

1 500 000

Opel

Kk

2 100 000

CGA-719

Trabant

Zld

50 000

30

DOZ-219

Mercedes Fekete

4 500 000

50 000

30

1 800 000

BAX-111
BIE-512

Zld
Suzuki

Fehr

Megolds:
SET DATE ANSI
USE ember IN 1 ALIAS ember EXCLUSIVE
USE auto IN 2 ALIAS auto EXCLUSIVE
SELECT ember
APPEND
SELECT auto
APPEND
Kovcs cmt elrontottuk, javtsuk ki! (szeged -> Szeged)
Megolds:
BROWSE
Megkeressk a mdostand adatot s kijavtuk.

- 85 -

2003.09.09.

Alkalmazott utastsok magyarzata:
COPY STRUCTURE TO tblanv j, res adattbla ltrehozsa az aktulis adattbla szerkezetvel (kapunk egy res dbf kiterjeszts fjlt).
COPY TO tblanv [FIELDS mezlista hatkr] adattbla tartalmnak
MODIFY STRUCTURE az aktulis tbla szerkezetnek megvltoztatsa.
Ksztsnk biztonsgi msolatot az elksztett s megnyitott adattblk struktrjrl
EMBIZT s AUBIZT nven!
Megolds:
USE ember IN 1 ALIAS ember EXCLUSIVE
SELECT ember
COPY STRUCTURE TO embizt
USE auto IN 2 ALIAS auto EXCLUSIVE
SELECT auto
COPY STRUCTURE TO aubizt
Egsztsk ki az emberek adatait a tulajdonukban lv autk rendszmval!
Szem.szm

Nv

Cm

Fizets

Szlets

Dolgozik Rendszm

DOZ-219

28112011212 Nagy

Budapest

UIA-912

17501123124 Tth

Szeged

DPA-812

17704273412 Szab

Gyr

BIE-512

AFA-314

A megolds:

## USE ember IN 1 ALIAS ember EXCLUSIVE

SELECT ember
MODIFY STRUCTURE
Az EMBER tblban az j mez neve Rendszam, tpusa Szveg, mrete 7.
BROWSE

- 86 -

2003.09.09.

## A Rendszm mezbe berjuk az adatokat.

Helyezzk el az EMBIZT2 tblba azoknak az adatait, akiknek a fizetse meghaladja
a szzezer forintot!
Megolds:
USE ember IN 1 ALIAS ember EXCLUSIVE
SELECT ember
COPY TO embizt2 FOR fizetes>100000
Alkalmazott utastsok magyarzata:
SORT TO tblanv ON meznv [ASCENDING/DESCENDING] a meznv
alapjn fizikailag rendezett tbla ltrehozsa nvekv (ascending), vagy cskken
(descending) sorrendben. Ha egy adatbzisra nagyon sokszor van szksgnk egy
adott szempont szerint rendezve, akkor clszer e szempont szerint fizikai rendezst
vgezni. Ha nagymret a tblnk, sokig tarthat a rendezs, radsul a tbla
minden mdostsa utn el kellene vgezni, ppen ezrt nem gyakori mvelet.
INDEX ON meznv TO fjlnv [ASCENDING/DESCENDING] a tbla meznv
vagy meznevek szerinti logikai rendezse. Egyes programvltozatokban a rendezs
csak nvekv sorrendben lehetsges. Az eredeti tbla vltozatlan marad, de mellette
ltrejn a logikai rendezst tartalmaz fjl.
SET ORDER TO indexsorszm tbb megnyitott indexfjl kzl kijelli a vezrfjlt.
Az adattbla e szerint lesz logikailag rendezve.
REINDEX az aktv indexfjlok jraszervezse. A mveletet akkor kell vgrehajtani,
ha egy adattblt az idexfjlok nlkl nyitunk meg s gy mdostjuk. Az
indexllomnyt legkzelebbi betltsekor frissteni kell, klnben a logikai rendezs
eredmnye hibs lehet.
Az ttekinthetsg kedvrt rendezzk az adatokat az EMBERNEV tblba nv
szerint! Nyissuk meg ezt az j tblt a harmadik munkaterleten s nzzk meg! Ha
mindent rendben tallunk, zrjuk be!

- 87 -

2003.09.09.

Megolds:
USE ember in 1 ALIAS ember EXCLUSIVE
SELECT ember
SORT TO embernev ON nev
USE embernev IN 3 EXCLUSIVE
SELECT 3
BROWSE
USE
Trjnk vissza az els munkaterletre! Vgezznk logikai rendezst szemlyi szm,
fizets s szletsi dtum szerint is! Az AUTO tblt indexeljk rendszm szerint!
Megolds:
USE ember in 1 ALIAS ember EXCLUSIVE
SELECT ember
INDEX ON szemszam TO emszam
INDEX ON fizetes TO emfiz
INDEX ON szuldat TO emszul
SELECT auto
INDEX ON rendszam TO aurend
CLOSE ALL
Nyissuk meg az EMBER adattblt az els munkaterleten s tltsk be a tblhoz
az sszes indexllomnyt! A szemlyi szm szerinti rendezs legyen elsdleges!
Nyissuk meg a msodik munkaterleten az AUTO tblt az idexfjllal egytt!
Frisstsk az sszes indexllomnyt!
Megolds:
USE ember IN 1 ALIAS ember INDEX emszam, emfiz, emszul EXCLUSIVE
SET ORDER TO 1
USE auto IN 2 ALIAS auto INDEX aurend EXCLUSIVE
REINDEX

- 88 -

2003.09.09.

## 6. feladat: Mozgs a tblban, listzs

Alkalmazott utastsok magyarzata:
? kifejezs kifejezs megjelentse a kpernyn
STORE kifejezs TO vltoz rtkads vltoznak
LIST meznv hatkrmdost [TO PRINTER/FILE fjlnv] adattbla
kilistzsa, hatkre alaprtelmezs szerint az sszes rekordra kiterjed. Ha nem
adunk meg mezneveket, valamennyi mezt kilistzza. A rekordmutat a fjl vgre
(EOF()) ll.
DISPLAY meznv hatkrmdost [TO PRINTER/FILE fjlnv] aktulis
rekord kilistzsa, hatkre alaprtelmezs szerint arra a rekordra terjed ki,
amelyiken a rekordmutat ll. Ha nem adunk meg mezneveket, valamennyi mezt
kilistzza. A rekordmutat a kvetkez rekordra ll.
RECNO() az aktulis rekord fizikai sorszma, ahol a rekordmutat ll.
GO TOP, GO BOTTOM a rekordmutat thelyezse a tbla elejre, vgre.
SKIP n rekordmutat mozgatsa a kvetkez (n pozitv), vagy elz (n negatv)
rekordra. Ha az adattblhoz indexfjlt is hasznlunk, a rekordmutat a logikai
rendezst kveti.
Troljunk kt szmot A s B vltozban s vgezznk velk matematikai
Megolds:
STORE 8 TO A
B=5
? A+b=,a+b,A-B=,a-b,A*B=,a*b,A/B=,a/b
? F+ I+ A+ I+ + I
Listzzuk ki az emberek adatait elszr szemlyi szm, majd fizets s vgl
szletsi id szerint rendezett sorrendben is!
Megolds:
USE ember IN 1 ALIAS ember INDEX emszam, emfiz, emszul EXCLUSIVE
SELECT ember

- 89 -

2003.09.09.

SET ORDER TO 1
LIST vagy DISPLAY ALL
SET ORDER TO 2
LIST vagy DISPLAY ALL
SET ORDER TO 3
LIST vagy DISPLAY ALL
Listzzuk ki a fizets szerint rendezett tbla harmadik elemnek sszes mezjt,
valamint az els hrom szemly nevt s lakhelyt!
Megolds:
USE ember IN 1 ALIAS ember INDEX emfiz EXCLUSIVE
SELECT ember
GO TOP
SKIP 2
DISPLAY
GO TOP
DISPLAY nev,cim NEXT 3
Nzzk meg, hogy a szemlyi szm szerint rendezett EMBER tblban az els
Megolds:
USE ember IN 1 ALIAS ember INDEX emszam EXCLUSIVE
SELECT ember
GO TOP
? RECNO()
Alkalmazott utastsok magyarzata:
SET FILTER TO [felttel] szr belltsa. Az utastsok csak a szrfelttelnek
megfelel rekordon fognak vgrehajtdni. Ha nem adunk meg felttelt, azzal
kikapcsoljuk a szrt.
Logikai kifejezsek: .AND. s, .OR. vagy, .NOT. tagads, .T. igaz, .F. hamis.

- 90 -

2003.09.09.

## Listzzuk ki (a) azoknak a szemlyeknek a nevt, akik Budapesten laknak, (b)

szegedi s budapesti lakosok nevt s fizetst, (c) a szegedi Tth sszes adatt!
Megolds:
(a)

## USE ember EXCLUSIVE

SET FILTER TO cim=Budapest
LIST nev
SET FILTER TO

vagy:
(a)

## USE ember EXCLUSIVE

DISPLAY nev FOR cim=Budapest

(b)

## USE ember EXCLUSIVE

LIST nev, fizetes FOR cim=Szeged .OR. cim=Budapest

(c)

## USE ember EXCLUSIVE

LIST FOR nev=Tth .AND. cim=Szeged

Alkalmazott utastsok magyarzata:
EMPTY(kifejezs) fggvny, azt vizsglja, hogy egy kifejezs res-e. Eredmnye
igaz (.T.), vagy hamis (.F.).
DELETE hatkr rekord kijellse trlsre. Ha nem adunk meg hatkrt, az
aktulis rekordot trli. Visszavonsa a RECALL hatkr paranccsal trtnhet.
PACK a trlsre kijellt rekordok trlse. A trlt rekordok nem llthatk helyre.
helyre.
Trljk az sszes Trabantot az AUT tblbl! Van egy hibs sorunk, ahol nem
adtunk meg tpust (res a tpus mez). Ezt is trljk!
Megolds:
USE auto EXCLUSIVE
DELETE FOR tipus=Trabant
DELETE FOR EMPTY(tipus)=.T.
PACK

- 91 -

2003.09.09.

## Nyissuk meg a 4. feladatban ltrehozott embizt2 tblt s trljk teljes tartalmt!

Zrjuk be a fjlt!
Megolds:
USE embizt2 EXCLUSIVE
ZAP
USE
Alkalmazott utastsok magyarzata:
SET RELATION TO kulcskifejezs INTO tblanv kt adattblt kapcsol ssze a
kulcskifejezs alapjn. A kapcsolt fjlnak indexelve kell lennie. A SET RELATION TO
utastts trli a kapcsolatot.
Kapcsoljuk ssze az EMBER s az AUTO tblt a rendszm alapjn! Az EMBER az
els, az AUTO a msodik munkaterleten lesz, mindketthz tltsk be a rendszm
szerinti rendezst!
Listzzuk ki (a) kpernyre, (b) fjlba az emberek nevt s a tulajdonukban lv
autk rendszmt s tpust!
Megolds:
USE ember IN 1 ALIAS ember INDEX emszam EXCLUSIVE
USE auto IN 2 ALIAS auto INDEX aurend EXCLUSIVE
SELECT ember
SET RELATION TO rendszam INTO auto
(a)

(b)

## Listzzuk ki (a) a budapestiek autjt, (b) azokat a szegedieket, akiknek fekete

autjuk van!
Megolds:
USE ember IN 1 ALIAS ember INDEX emszam EXCLUSIVE
USE auto IN 2 ALIAS auto INDEX aurend EXCLUSIVE
SELECT ember
SET RELATION TO rendszam INTO auto

- 92 -

2003.09.09.

(a)

(b)

## Szmoljuk ki a debreceni s gyri autk nett rt!

Megolds:
USE ember IN 1 ALIAS ember INDEX emszam EXCLUSIVE
USE auto IN 2 ALIAS auto INDEX aurend EXCLUSIVE
SELECT ember
SET RELATION TO rendszam INTO auto
LIST auto->ar*0.8 FOR cim=Debrecen .OR. cm=Gyr
Alkalmazott utastsok magyarzata:
CALCULATE kifejezs hatkr sszegzs eredmnynek megjelentse. A kvetkez kifejezseket hasznlhatjuk: AVG (tlag), SUM (sszeg), CNT (darab), MAX,
MIN, NPV (jelenrtk), STD (szrs), VAR (variancia). Az utastst nem minden
dBase rendszer tmogatja.
Szmoljuk ssze, hogy hny Kovcs van az adatbzisban, sszesen s tlagosan
mennyit r az autjuk!
Megolds:
USE ember IN 1 ALIAS ember INDEX emszam EXCLUSIVE
USE auto IN 2 ALIAS auto INDEX aurend EXCLUSIVE
SELECT ember
SET RELATION TO rendszam INTO auto
CALCULATE CNT() FOR nev=Kovcs
CALCULATE SUM(auto->ar) FOR nev=Kovcs
CALCULATE AVG(auto->ar) FOR nev=Kovcs

- 93 -

2003.09.09.

## 7. Az SQL lekrdez nyelv

Az SQL (Structured Query Language) egy strukturlt lekrdez nyelv, melyet az
IBM dolgozott ki DB2 relcis adatbzis-kezeljhez. Az SQL ma mr a relcis
adatbzis-kezelk szabvnyostott nyelve. A nyelvnek tbb dialektusa, bvtse is
kialakult.
Az SQL nem tartalmaz algoritmus szerkezeteket (elgazst, ciklust stb.), teht nem
algoritmikus nyelv. Az SQL halmaz orientlt nyelv, mely a relcikon dolgozik. A
halmaz orientltsg azt jelenti, hogy nem kell definilni a mvelet vgrehajtsnak
relci, vagy relcik kivlasztott sorain hajtdnak vgre. A mvelet vgrehajtshoz
szksges optimlis megolds megtallsa a nyelvi processzor feladata, nem a
programoz; pldul annak az eldntse, hogy egy adott lekrdezsben alkalmazhatk-e indexek, vagy ptsen-e fel j indexet, a nyelvi processzor feladata. Az SQL
nem rekurzv nyelv.
Az SQL nyelvnek kt felhasznlsi lehetsge ltezik:
-

nll SQL. Az SQL nyelv nll felhasznlsa esetn csak a nyelv utastsai llnak rendelkezsnkre. Ennek alkalmazsra fknt akkor kerlhet sor,

Begyazott SQL. A begyazott SQL esetn egy harmadik genercis algoritmikus nyelvbe (C, PL/SQL, Pascal FORTRAN stb.) gyazva alkalmazzuk az
genercis nyelvre, az adatbzissal kapcsolatos mveleteket pedig az SQL-re
bzhatjuk.

## Az SQL nyelvek legfontosabb jellemzi:

-

Tblzat. Koncepcionlis s fizikai szinten definilt, a httrtroln trolt, adatokat tartalmaz tblzat.
rendszer a tblzatokbl lltja el a nzet adatait tartalmaz eredmnytbl-

- 94 -

2003.09.09.

zatot. Ha az alaptblzat adatai megvltoznak, a vltozs a nzetben is megjelenik. A nzetben vgezhetnk az alaptbla adatait megvltoztat mveleteket is.
Szinonima. A tblzathoz s a nzetekhez msodlagos nevet (aliasnv, becenv) is rendelhetnk. Az utastsokban az eredeti nevek helyett ezeket a
szinonimkat is hasznlhatjuk. Ha rvid szinonimkat hasznlunk, azzal knyelmesebb vlik a munknk.
Index. Logikai rendezshez hasznlhat, br az SQL az adatok valamilyen
szempont rendezshez nem ignyli az indexelst. Indexet csak tblzathoz
lehet ltrehozni, nzethez nem.
Katalgus. Az adatsztr szerept betlt tblzatok, melyeket az adatbziskezel rendszer hoz ltre s kezel. A felhasznlk ezt a tblzatot ugyan az
SQL nyelv segtsgvel lekrdezhetik, de mdostsa tbbnyire nem lehetsges.
-

Jelkszlet. ltalban igaz, hogy mindig a befogad opercis rendszerre jellemz karakterkszletet alkalmazzk az SQL-vltozatok. Jelkszlett a kis- s
nagybetk, szmok, mveleti jelek, rsjelek, elvlaszt jelek, egyes klnleges jelek (pldul \$ % & # ^ @) alkotjk.

Szintaktikai elemek. Az SQL a tbbi programozsi nyelvhez hasonlan alapegysgekbl pl fel, melyeket elvlaszt jelek hatrolnak. Az alapegysgek
fajti: kulcsszavak, azonostk, mveleti jelek, literlok (szmszer, dtumjelleg, szveges konstansok). A kulcsszavakban az SQL nem tesz klnbsget
a kis-, s nagybetk kztt.

## Utastsok szerkezete. Az utastsok kvetik a beszlt nyelvek logikjt. Ha

rszeiket sszeolvassuk, rtelmes felszlt mondatokat kapunk angol nyelven. Az SQL utastsok valamilyen igvel kezddnek, ezzel jelezve a felszlt
mdot. Az utastsok zradkokra tagoldnak. A zradkok az utasts trgyt s a vgrehajts feltteleit, krlmnyeit rjk le. Minden zradkot jellemz kulcssz vezet be. A zradkokban szerepelhetnek kifejezsek, hivatkozsok az adatbzis objektumaira, tovbb felttelek.

- 95 -

2003.09.09.

tpust.
-

## Utastsok fajti. Az SQL hrom alapvet utastsfajtt klnbztet meg:

s a mkds krlmnyeire vonatkoz utastsokkal.

## Kifejezsek s mveletek. A nyelvben tallunk numerikus, karakteres, dtum

s id, binris s logikai mveleteket.
Numerikus mveletek:
-

szmtani relcik,

## halmazfggvnyek, oszlopfggvnyek amelyek nem egy-egy mezre,

hanem mindig egy adott valdi vagy szrmaztatott oszlop sszes mezjre vonatkoznak egyszerre,

## egyb matematikai fggvnyek (logaritmus, hatvnyozs, szgfggvnyek stb.).

Karakteres mveletek:
-

sszefzs,

csonkts,

rszlet kiemelse,

feltlts.

-

sszehasonlts,

intervallumkpzs,

-

## negci, komplemens kpzse,

logikai S,

logikai VAGY.

- 96 -

2003.09.09.

Adattpustl fggetlenl rtelmezhetk az sszehasonlts opertorai. Ide tartoznak az =, !=, <>, <, <=, >, >=, !>, !< valamint a LIKE kulcssz. A felsorolt
opertorokat kombinlhatjuk a NOT (logikai tagads) kulcsszval vagy az
egyenrtk ! jellel.
Az albbiakban pldk segtsgvel bemutatjuk nhny SQL utasts hasznlatt. A
konkrt programvltozatokban egyes utastsoknak egyb zradkai, paramterei is
lehetnek.
A ltrehoz utastsok a CREATE (ltrehoz), a mdost utastsok az ALTER (mdost), a trl utastsok pedig a DROP (elvet) igvel kezddnek.
CREATE TABLE tblanv (oszlopnv1 tpus, oszlopnvn tpus); j tbla
ltrehozsa, szerkezetnek felptse.
CREATE INDEX indexnv ON tblanv (oszlopnv1 ASC/DESC,oszlopnvn
ASC/DESC); - adott tblzathoz az index felptse egy, vagy tbb oszlop alapjn.
CREATE SYNONYM szinonimanv FOR tblanv; - a kijellt tblzathoz lland
jelleggel msodlagos nv definilsa.
CREATE VIEW nzetnv (oszlopnv1,,oszlopnvn); - nzet definilsa az alaptblbl magadott oszlopokkal.
DROP TABLE / INDEX / SYNONYM / VIEW tblanv / indexnv / szinonimanv /
nzetnv; tblzat adatainak s szerkezetnek, az index, a szinonima, a nzet
trlse.
(a)

EMBER:
Meznv

Tpus

Szemszam Szveg
Nev

Szveg

(b)

(c)

- 97 -

2003.09.09.

Meznv

Tpus

Fizetes

Szm

Rendsz

Szveg

Dolgozik

Logikai

(d)

(e)

## Legyen a tblnk msodlagos neve DOLGOZO!

(f)

Trljk az indexet!

(g)

AUTO:
Meznv

Tpus

Rendszam Szveg
Tipus

Szveg

Szin

Szveg

Ar

Szm

Kor

Szm

Megolds:
(a)

## CREATE TABLE ember

(szemszam CHARACTER,
nev CHARACTER);

(b)

## ALTER TABLE ember ALTER

(szemszam INTEGER);

(c)

(fizetes INTEGER,
rendsz CHARACTER,
dolgozik LOGICAL);

(d)

(e)

(f)

(g)

## CREATE TABLE auto

(rendszam CHARACTER,
tipus CHARACTER,
szin CHARACTER,

- 98 -

2003.09.09.

ar INTEGER,
kor INTEGER);
INSERT INTO tblanv / nzetnv / msodnv VALUES rtk-lista); - j sorok
UPDATE tblanv / nzetnv /msodnv SET meznv1=kifejezs1, ,
DELETE FROM tblanv / nzetnv /msodnv WHERE felttel; - tblk adott
SELECT */meznv1, , meznvn FROM tblanv / nzetnv / msodnv
WHERE [NOT] felttel AND/OR [NOT] felttel . GROUP BY meznv1, ,
meznvn HAVING [NOT] felttel AND/OR [NOT] felttel . ORDER BY meznv1 ASC/DESC, , meznvn ASC/DESC; - lekrdezs megvalstsa, a tblzat adott feltteleknek megfelel megjelentse. A zradkok kzl a SELECT s a
FROM ktelez, a tbbi opcionlis.
A SELECT utni * szimblum az sszes mezt jelenti. Ha csak egyes mezket szeretnnk megjelenteni, akkor a mezket egyenknt fel kell sorolni.
A FROM utn meg kell adni, hogy mely tblzatbl, vagy tblzatokbl jelenjenek
A WHERE utn kell megadni azt a felttelt, vagy feltteleket, amelynek, amelyeknek
megfelel rekordok a lekrdezs eredmnyeknt meg fognak jelenni.
A GROUP BY zradkkal a tblzat sorait valamelyik mez adatrtkei alapjn csoportosthatjuk.
A HAVING BY zradkot kell hasznlnunk, ha a GROUP BY zradkban elrt csoportosts nyomn keletkez csoportok kzl nem mindet szeretnnk megjelenteni.
Az ORDER BY utn kell megadni azokat a mezket, amely alapjn a megjelen
eredmnyeket rendszerezzk (ASC: nvekv, DESC: cskken).

- 99 -

2003.09.09.

(a)

Szemszm

Nv

Fizets

Dolgozik Rendsz

17912154115 Kovcs

45 000 Igen

DOZ-219

28112011212 Nagy

75 000 Igen

UIA-912

17501123124 Tth

DPA-812

17704273412 Szab

## 155 000 Igen

BIE-512

27603304871 Kovcs

55 000 Igen

AFA-314

Rendszm Tpus

Szn

AFA-314

Skoda

Fehr

1 500 000

UIA-912

Opel

Kk

2 100 000

DOZ-219

Mercedes Fekete

4 500 000

BIE-512

Suzuki

1 800 000

Fehr

Kor

(b)

(c)

(d)

## Jelentsk meg azoknak az embereknek az adatait szemlyi szm szerint

cskken sorrendben, akiknek a fizetse szzezer forint alatt van!

(e)

Megolds:
(a)

## INSERT INTO ember

VALUES( 17912154115, Kovcs,

45000,

1,

DOZ-219,

28112011212, Nagy,

75000,

1,

UIA-912,

17501123124, Tth,

105000,

0,

DPA-812,

17704273412, Szab,

155000,

1,

BIE-512,

27603304871, Kovcs,

55000,

1,

AFA-314);

## INSERT INTO auto

VALUES( AFA-314,

Skoda,

Fehr,

1500000,

3,

UIA-912,

Opel,

Kk,

2100000,

2,

DOZ-219,

Mercedes,

Fekete,

4500000,

2,

BIE-512,

Suzuki,

Fehr,

1800000,

1);

- 100 -

2003.09.09.

(b)

UPDATE ember
SET fizetes=50000
WHERE nev=Kovcs AND fizetes < 50000;

(c)

## DELETE FROM ember

WHERE dolgozik=0;

(d)

## SELECT * FROM ember

WHERE fizetes<100000
ORDER BY szemszam DESC;

(e)

## SELECT nev, tipus FROM ember, auto

WHERE rendsz=rendszam
AND szin=Fehr;

CONNECT TO adatbzisnv USER felhasznlnv; - az adatbzishoz val hozzfrs szablyozsa. Az utastssal a felhasznl szmra elrhetv vlik egy adatbzis (azonost s jelsz begpelse utn).
GRANT adatbzisjog TO public / felhasznli nevek listja; - felhasznli jogok
mvelet vgzsnek joga)
GRANT mveleti jog ON adatbziselem neve TO public / felhasznli nevek listja; - mveleti jogok adsa a felhasznlk szmra. Adatbziselemekre vonatkoz
jog: ALTER (tblzat szerkezete megvltoztatsnak joga) DELETE (sorok trlsnek joga), INDEX (idexels joga), INSERT (j sorok bevitelnek joga), SELECT (lekrdezs joga), UPDATE (adatmdosts joga), REFERENCES (hivatkozsi jog),
ALL (az sszes felsorolt jog).
(a)

(b)

- 101 -

2003.09.09.

(c)

Megolds:
(a)

## CONNECT TO szlltk USER hallgato;

SET CONNECTION szallitok;

(b)

## GRANT CONNECT TO PUBLIC;

(c)

DISCONNECT szallitok;

7.1

programnyelvi szinten is lehetv teszi. Az SQL-fellet hasznlata mind interaktv
mdban, mind pedig programokba ptve lehetsges.
Az Access egyttal egy CASE eszkz is, vagyis tmogatja a szmtgppel segtett
alkalmazsfejlesztst. Az alkalmazs ltal elvgzend mveletek egy rszbl nem
programmodulok, hanem makrk pthetk fel, s interaktvan lehet ezek vgrehajtst szablyozni. A program lehetv teszi a menszerkesztst, a tbbfelhasznls
alkalmazst lehet kszteni.
Az Access adatbzis a kvetkez objektumokbl pl fel:
-

## Tblzatok: a relcis modell adatokat tartalmaz alaptblzatai.

Lekrdezsek: nzetek, virtulis tblzatok, adataik valjban az alaptblzatok adatai klnbz szempontok szerint csoportostva.

megjelentsre.

## Modulok: az adatbzis-kezel rendszer programozsi nyelvnek utastsaibl

felptett fggvnyeket, eljrsokat tartalmaz programegysgek.

## A jegyzetben az els ngy objektumrl lesz sz.

- 102 -

2003.09.09.

Adatbzist (kiterjesztse MDB) a Windowsban szoksos mdon nyithatunk meg.
Brmelyik fjlkezelben a fjlra dupln kattintva elindul az Access s benne megnylik a kivlasztott adatbzis. A programon bell a Fjl men Megnyits menpontjra
kattintva tudunk a gpen lv adatbzisok kzl vlasztani.
Adatbzis s tblk ltrehozsa, szerkezet mdostsa
(Fjl men, j menpont, ltalnos sablonok). rdemes kiprblni, mert az elre
elksztett sablonokbl szmos tletet merthetnk.
Ha varzslt hasznlunk az adatbzisunk megtervezshez, az Access ltal elre
meghatrozott lpsek szerint pthetjk fel adatbzisunkat; anlkl, hogy brmit is
tudnnk annak bels szerkezetrl. Csupn annyi lesz a dolgunk, hogy a ksz adatbzisba amelyben menpontok s nyomgombok segtsgvel tudunk mozogni
szintn elegend lesz egy-egy menpont kivlasztsa vagy egy-kt gombnyoms.

## 7-1. bra. Access adatbzis varzsl sablonok.

Ha mr kell gyakorlatra tettnk szert, ltrehozhatunk teljesen res adatbzist is (Fjl
men, j menpont, majd kattints az res adatbzisra). Ebben az esetben minden

- 103 -

2003.09.09.

tblt, azok szerkezett, a tblk kztt fennll kapcsolatokat, a klnbz nzeteket, rlapokat, jelentseket neknk kell elksztennk. El kell neveznnk az adatbzisunkat. Ezutn kapunk egy ablakot (lsd az albbi bra); itt kattintsunk a Tblk ltrehozsa Tervez nzetben feliratra.

## 7-2. bra. Access tbla ltrehozsa, 1. lps.

Meg kell adnunk a tblban szerepl oszlopok (mezk) nevt s a mezk adattpust. A tpust az adattpus mezjnek jobb sarkba kattintva listbl vlaszthatjuk.
Kulcsmez megadshoz kattintsunk r jobb egrgombbal a kvnt mezre s a
megjelen menben vlasszuk az Elsdleges kulcs menpontot. A mez neve
mellett megjelenik egy kulcs. Az Access nem teszi ktelezv kulcsmez megadst.
Ha nem adunk meg kulcsot, mentskor a program rkrdez, hogy akarunk-e egyet
ltrehozni. Ha igennel vlaszolunk, ltrejn egy szmll tpus kulcsmez. A szmll tpus mezket nem mdosthatjuk, azt a program automatikusan tlti ki az adatbevitel sorrendjben, ezzel biztostja, hogy a kulcsmezben ne legyen kt egyforma
rtk. A mezkre a tpusukon kvl egyb belltsokat is megadhatunk: mezmret,
tizedeshelyek, rvnyessgi szably stb.

- 104 -

2003.09.09.

## 7-3. bra. Access tbla ltrehozsa, 2. lps.

A meznevek felvtele utn el kell mentennk a tblt a Fjl men Ments menpontjval. A ments sorn nevet kell adni a tblnak. A tervez nzetbl a tbla
szerkezeti ablaknak bezrsval tudunk kilpni. (Ha gy zrjuk be az ablakot, hogy
mg nem mentettnk, a program felknlja a mentst. A tbbi objektum lekrdezs,
rlap stb. mentse ugyangy trtnik.)

## 7-4. bra. Access tbla ltrehozsa, 3. lps.

Ltez tbla szerkezetnek mdostshoz jelljk ki a tblt, majd kattintsunk az
ablak Tervezs felirat gombjra. A mdosts menete megegyezik az j tbla ltrehozsnak menetvel.
A tblkat (s valamennyi ksbb ismertetett objektumot a Windows-ban szoksos
mdon msolhatjuk, tnevezhetjk, vagy trlhetjk. Ezeket a funkcikat a tbln

- 105 -

2003.09.09.

## (s a tbbi objektumon) a jobb egrgombbal kattintva vagy a Szerkeszts menbl

rhetjk el.
Tblk megjelentse, feltltse, mdostsa s trlse
Egy tbla tartalmnak megjelentshez kattintsunk r dupln. Ltni fogjuk a tblbl azt, ami egy kpernyn elfr, a tovbbi rszek megtekintshez hasznljuk a
grgetsvokat.
Az adatokon vgzett mdostsokat nem kell elmenteni, arrl az Access automatikusan gondoskodik!
Az adatokat sorfolytonosan tudjuk bevinni. A ktelezen kitltend mezket pldul a kulcsmezt nem hagyhatjuk resen. gyeljnk arra, hogy a kulcsmezben
nem fordulhat el ktszer ugyanaz az rtk! Logikai tpus meznl a 9 (pipa)
jelentse: igaz vagy 1, ha nincs pipa: hamis vagy 0. (A kt llapot kztt a SZKZ
billenty vagy az egrkattints vlt.) Ha valamilyen adat nem fr ki, az oszlopok szlessgt az oszlop szlnek hzsval tudjuk vltoztatni. (Ebben az esetben vltozik
a szerkezet, teht menteni kell!)
Legkzelebbi megtekintskor az adatok a kulcsmez szerint rendezve jelennek
meg. Ms mez szerinti rendezshez jelljk ki a mezt, majd a Rekordok men
Rendezs menpontjban vlasszuk a cskken, vagy nvekv sorrendet.
Mdostshoz r kell llni a kvnt adatra s egyszeren fell lehet rni, vagy ki
lehet javtani.

## 7-5. bra. Access tbla megjelentse, feltltse s mdostsa.

Sor trlshez jelljk ki a sort, majd nyomjuk le a DEL billentyt. Az Access
megkrdezni, hogy biztosan trlni szeretnnk-e a rekordokat. Ha igennel vlaszolunk, a kijellt sor vglegesen trldik az adatbzisbl.

- 106 -

2003.09.09.

Az Access adatvdelmi szolgltatsait az Eszkzk men Adatvdelem menpontja alatt talljuk meg.

## 7-6. bra. Access adatbzisjelsz belltsa.

Legkzelebb az adatbzisunkat csak e jelsz ismeretben nyithatjuk meg.
Bellthatjuk az egyes felhasznlk, illetve felhasznli csoportok hozzfrsi jogait:

## 7-7. bra. Access felhasznli s csoportengedlyek belltsa.

- 107 -

2003.09.09.

7.2

Az Access programozsa

Lekrdezsek
Az adatbzis-kezel Lekrdezs objektuma segtsgvel nzeteket kszthetnk
az alap adattblkhoz. A lekrdezs ltrehozshoz hasznljuk a Tervez nzetet,
mellyel knnyen s gyorsan tudunk nzeteket definilni. A programnak ebben a rszben akr SQL-ben is dolgozhatunk. A nzeteket megnyitni a nevre dupla kattintssal lehet, mdostsokat vgezni pedig gy tudunk, hogy a Tervezs gombra
kattintunk.
Ksztsk el az albbi hrom tblt! Mindhrom tblbl ksztsnk msolatot EMBER2, AUT2, VEZET2 nven.
EMBER
Szemszm

Nv

Cm

Fizets

Szlets

Dolgozik

28112011212 Nagy

Budapest

17501123124 Tth

Szeged

17704273412 Szab

Gyr

21901129124 Ss

## 40 000 1919.01.12. Nem

Szeged
AUT

Rendszm Tpus

Szn

DPA-812

Piros

AFA-314

Skoda

UIA-912

Kor

tkztt

500 000

17

Igen

Fehr

1 500 000

Nem

Opel

Kk

2 100 000

Nem

CGA-719

Trabant

Zld

50 000

30

Igen

DOZ-219

Mercedes Fekete

4 500 000

Igen

BIE-512

Suzuki

1 800 000

Nem

Fehr

- 108 -

2003.09.09.

VEZET
Szemszm

Rendszm

27603304871 DOZ-219
17704273412 BIE-512
17501123124 DPA-812
28112011212 UIA-912
17912154115 AFA-314
Megolds:

- 109 -

2003.09.09.

## 7-10. bra. Access VEZET tbla szerkezete s feltltse.

A Lekrdezs ablak kt rszbl ll. A fels rszben ltjuk azokat a tblkat, amikkel
dolgozunk, az als rszben pedig a megjelentend mezket s a megjelents feltteleit. Ha a fels rszben dupln kattintunk a kivlasztott mezre, akkor az az als
rszben a megjelentend mezk kztt fog megjelenni. A feltteleket a megfelel
mezkre kattintva tudjuk mdostani.
Ksztsnk egy olyan lekrdezst, ami tartalmazza
(a) az emberek valamennyi adatt EMBERMIND nven,
(b) az autk tpust s kort TIPUSKOR nven,
(c) az auttulajdonosok nevt, autjuk tpust s rendszmt nv szerint rendezett
sorrendben, NVTIPREND nven,
(d) a szegedi autk tlagrt SZEGAUT nven,
(e) az autk tpust s nett rt NETTOR nven!
Megolds: Kattintsunk a Lekrdezsek ltrehozsa tervez nzetben feliratra, majd
(a) adjuk hozz a lekrdezshez az EMBER tblt. Kattintsunk dupln a *-ra (csillagra), gy a tbla valamennyi mezjnek adata meg fog jelenni. Ha tervez nzetbl tvltunk SQL nzetbe (Nzet men, SQL menpont) lthatjuk az utasts
SQL megfeleljt is. Ez a nzet teljesen megegyezik azzal, amit az EMBER alaptbla megnyitsa esetn kapnnk, tovbb az adatok ugyangy rendezhetk,
szrhetk, mdosthatk, vagy trlhetk. Az itt vgzett adatmdostsok megjelennek az alaptblban is.

- 110 -

2003.09.09.

Tervez nzetben:

SQL nzetben:
SELECT Ember.*
FROM Ember;

(a).

## 7-12. bra. Access vlaszt lekrdezs (a) megnyitsa.

(b) adjuk hozz a lekrdezshez az AUT tblt. Kattintsunk dupln a Tpus s a
Kor mezkre.
Tervez nzetben:

SQL nzetben:
SELECT aut.tpus, aut.kor
FROM aut;

## 7-13. bra. Access vlaszt lekrdezs (b).

- 111 -

2003.09.09.

(c) adjuk hozz a lekrdezshez az EMBER, VEZET s AUT tblt is. Az EMBER
s az AUT tbla kztt a VEZET jelenti a kapcsolatot; ebben troljuk azt, hogy
kinek milyen autja van1. Az Access automatikusan sszekti a tblkban azokat
a mezket, amelyekkel a program szerint a kt tbla sszekapcsolhat. Mi is
hozhatunk ltre kapcsolatokat: megfogjuk a kvnt mezt s thzzuk a msik
tbla azon mezjre amivel kapcsolatot akarunk ltrehozni. Jelen esetben az
EMBER nev tbla SZEMSZM mezjt a VEZET tbla SZEMSZM mezjhez, s a VEZET tbla RENDSZM mezjt az AUT tbla RENDSZM mezjhez kapcsoljuk. Az sszekt mezknek nem kell azonos neveknek lennik, a tpusuknak viszont meg kell egyeznik! A kapcsolatokat gy trlhetjk, hogy kijelljk, majd lenyomjuk a DEL billentyt.
Hromfle kapcsolatot tudunk ltrehozni; vlasztani gy tudunk, ha a kapcsolatot jelz vonalra dupln kattintunk:
-

## csak olyan sorok jelenjenek meg, amelyeknl az illesztett mezk mindkt

irnyban megegyeznek (vagyis azok az emberek, akiknek nincs autjuk, valamint azok az autk, amelyeknek nincs tulajdonosuk, nem jelennek meg),

## jelenjen meg az els tbla (amihez illesztnk) minden rekordja s a msodik

(illesztett) tbla azon rekordjai, ahol az illesztett mezk azonosak (vagyis jelenjen meg az sszes ember adata s azon autk adatai, amelyeknek van tulajdonosa),

jelenjen meg a msodik (illesztett) tbla minden adata s az els tbla (amihez illesztnk) olyan adatai, ahol az illesztett mezk azonosak (vagyis jelenjen meg az sszes aut adata s azoknak az embereknek az adatai, akik auttulajdonosok).

Kattintsunk dupln a NV, RENDSZM s TPUS mezkre, majd a NV oszlopban a Rendezs mezejre kattintva lltsunk be nvekv rendezsi sorrendet.

Jelen pldban 1:1 kapcsolatot feltteleznk. Vajon hogyan vltozik a modell 1:N kapcsolat esetn,

- 112 -

2003.09.09.

Tervez nzetben:

## 7-15. bra. Access vlaszt lekrdezs (c).

SQL nzetben:
SELECT Ember.nv, vezet.rendszm, aut.tpus
FROM (Ember INNER JOIN vezet ON Ember.szemszm = vezet.szemszm)
INNER JOIN aut ON vezet.rendszm = aut.rendszm
ORDER BY Ember.nv;
(d) adjuk hozz a lekrdezshez az EMBER, VEZET s AUT tblkat s hozzuk
ltre a kapcsolatokat gy, mint elbb. A CM s R mezkre lesz szksgnk.
Csak a szegediek cmre vagyunk kvncsiak, a CM al a felttel mezbe rjuk

- 113 -

2003.09.09.

## be a Szeged-et. A mezt nem kell megjelenteni, kapcsoljuk ki a megjelentst.

Mivel nem az egyes rakra vagyunk kvncsiak, hanem csak egy sszestsre,
a Nzet men sszests menpontjra kattintsunk r. Kapunk egy j sort,
melyben a GROUP BY felirat lthat. Az R oszlopban lv sszests mezben lv GROUP BY-ra kattintva megkapjuk az sszest fggvnyek listjt,
melyek kzl most vlasszuk ki az tlagot (AVG).
Tervez nzetben:

## 7-16. bra. Access vlaszt lekrdezs (d)

SQL nzetben:
SELECT Avg(aut.r) AS AvgOfr
FROM (Ember INNER JOIN vezet ON Ember.szemszm = vezet.szemszm)
INNER JOIN aut ON vezet.rendszm = aut.rendszm
GROUP BY Ember.cm
HAVING (((Ember.cm)="Szeged"));
(e) adjuk hozz a lekrdezshez az AUTO tblt s kattintsunk dupln a TPUS mezre. A kvetkez oszlopban az r 0,8-szerest kell kiszmolnunk: [r]*0,8. Ha
mezkkel mveleteket vgznk, a mez nevt szgletes zrjelbe kell tenni.

- 114 -

2003.09.09.

Tervez nzetben:

SQL nzetben:
SELECT aut.tpus, [r]*0.8 AS Kif1
FROM aut;

## 7-17. bra. Access vlaszt lekrdezs (e)

Ksztsnk az auttulajdonosok nevt, autjuk tpust s rendszmt nv szerint
rendezett sorrendben tartalmaz j tblt JTBLA nven!
MEGOLDS:
A tblakszt lekrdezs annyiban klnbzik csak a vlaszt lekrdezstl, hogy
az eredmnyt nem a kpernyn jelenti meg a program, hanem j tblba menti. Ksztsekor ugyangy kell eljrni, mintha vlaszt lekrdezst hoznnk ltre, majd a
Lekrdezsek men Tblakszt lekrdezs menpontjt kell vlasztani. Az j
tbla nevt meg kell adni! Ez az j tbla akkor jn ltre, amikor legkzelebb megnyitjuk a lekrdezst.
Tervez nzet:

## 7-18. bra. Access tblakszt lekrdezs.

- 115 -

2003.09.09.

SQL nzet:
SELECT Ember.nv, vezet.rendszm, aut.tpus INTO JTBLA
FROM (Ember INNER JOIN vezet ON Ember.szemszm = vezet.szemszm)
INNER JOIN aut ON vezet.rendszm = aut.rendszm
ORDER BY Ember.nv;
Trljk ki a Trabant s a Mercedes tpus gpkocsik adatait az AUTO2 tblbl! (A
lekrdezs neve: TRL.)
Megolds:
Csak az AUTO2 tblra van szksgnk a lekrdezs ltrehozshoz. A Lekrdezs menben a Trl lekrdezst kell kivlasztani. A Tpus mezre kattintsunk ktszer, majd a Felttel mezbe rjuk be a kt tpust egyms al! gyeljnk arra, hogy
nem logikai S, hanem logikai VAGY kapcsolatot kell hasznlnunk!
Az adatok a lekrdezs megnyitsakor jvhagys utn trldnek az AUTO2 tblbl.
Tervez nzet:

SQL nzet:
DELETE aut2.tpus
FROM aut2
WHERE (((aut2.tpus)="Trabant"))
OR (((aut2.tpus)="Mercedes"));

## 7-19. bra. Access trl lekrdezs.

- 116 -

2003.09.09.

Ksztsnk EMELS nven olyan frisst lekrdezst, ami 10%-kal megemeli a tzezer s negyvenezer forint fizetssel rendelkez szegediek s a budapestiek fizetst!
Megolds:
Az EMBER tblt adjuk hozz a lekrdezshez, majd vlasszuk a Lekrdezs men
Frisst lekrdezs menpontjt. A CM s a FIZETS mezkre lesz szksgnk. A
CM a felttel megadshoz kell: Szeged vagy Budapest, ez egy logikai VAGY
kapcsolat. A fizets als s fels hatra kztt logikai S kapcsolat ll fent: >40000
AND <70000. A feltteleknek megfelel fizetseket mdostjuk plusz 10%-kal, teht a
fizets mdostsa: [fizets]*1,1. A lekrdezs minden egyes megnyitsakor a feltteleknek megfelel rekordok fizets mezje 10%-kal emelkedik.
Tervez nzet:

SQL nzet:
UPDATE Ember SET Ember.fizets
= [fizets]*1.1
WHERE

(((Ember.cm)="Szeged")

AND ((Ember.fizets)>40000
AND (Ember.fizets)<70000))
OR (((Ember.cm)="Budapest"));

## 7-20. bra. Access frisst lekrdezs.

A lekrdezs segtsgvel egy tblhoz hozzadhatjuk egy msik, ugyanolyan szerkezet tbla adatait. A hozzfzend tbla kulcsrtkei nem egyezhetnek meg az
eredeti tbla kulcsrtkeivel.

- 117 -

2003.09.09.

## Ksztsnk msolatot AUT3 nven az AUT2 tblrl, majd az AUT3-ban els

kivtelvel mdostsuk az sszes rendszmot! Az AUT3-hoz ezek utn fzzk hozz az AUT2-t! (A lekrdezs neve: HOZZFZ.)
Megolds:
Ksztsk el a msolatokat, majd vlasszuk ki az AUTO2 tblt, s annak valamenynyi mezjt. A Lekrdezs menben kattintsunk a Hozzfz lekrdezs menpontra. Itt meg kell adnunk, hogy melyik tblhoz fznk hozz; vlasszuk az AUT3-at. Ha lefuttatjuk a lekrdezst, kapunk egy figyelmeztetst, mely szerint az Access nem tudta az sszes rekordot hozzfzni a tblhoz, aminek oka, hogy a
kt tblban vannak azonos kulcsrtkkel rendelkez sorok.
Tervez nzet:

SQL nzet:
INSERT INTO auto3
SELECT aut2.*
FROM aut2;

## 7-21. bra. Access hozzfz lekrdezs.

rlapok
Ksztsnk rlapot az auttulajdonosok nevnek, az aut rendszmnak, valamint
tpusnak megjelentsre!
Megolds:
Az rlapokat az alaptblk s a nzetek kpernyn val megjelentsre hasznlhatadatbzisok.doc

- 118 -

2003.09.09.

## juk. Kattintsunk az rlapok gombra. Vlaszthatunk az rlap tervezse s az rlap

ltrehozsa varzsl segtsgvel lehetsgek kztt. Ez utbbi tbbnyire elegend szolgltatst biztost az tlagfelhasznl szmra, vlasszuk mi is ezt a lehetsget.
Els lps: ki kell vlasztanunk az adattblt, vagy vlaszt lekrdezst, amit meg
akarunk jelenteni. Vlasszuk most a korbban elksztett NVTIPREND vlaszt
lekrdezsnket (lsd 2(c) feladat) s annak sszes mezjt.
A kvetkez lpsben vlasztjuk ki az rlap szerkezett. Esetnkben legyen Oszlopos, de prbakppen a tbbit is meg lehet tekinteni.
A harmadik lpsben klnbz stlusok kzl vlaszthatunk; legyen: Nemzetkzi.
Az utols lpsben nevet kell adni az rlapunknak (NVTIPREND) s el kell dntennk, hogy megnzzk a vgeredmnyt, vagy sajt elkpzelseinknek megfelelen
tovbb mdostjuk azt.

- 119 -

2003.09.09.

- 120 -

2003.09.09.

## 7-25. bra. Access rlapkszts, 4. lps.

Abban az esetben, ha gy dntnk, hogy mg szeretnnk mdostani az rlapon,
vlasszuk az rlap tervnek mdostsa pontot. (Ha az rlap varzsl helyett az rlap tervezse pontot vlasztjuk, ugyanebbe az rlapszerkeszt ablakba jutunk.) A
megnyl rlapszerkeszt ablakban az rlap teste szabshoz az albbi eszkzkszletek llnak rendelkezsre: felirat, beviteli mez, vezrlelem csoport, vltgomb,
vlasztkapcsol, jellnzet, kombi panel, listapanel, parancsgomb, kp, ktetlen
objektumkeret, kttt objektumkeret, oldaltrs, karton vezrlelem, segdrlap/segdjelents, vonal, tglalap, tovbbi vezrlk. Ezek ismertetse meghaladja
ezen jegyzet kereteit, ezrt ismertetsktl eltekintnk.

- 121 -

2003.09.09.

## 7-26. bra. Access rlap mdostsa.

Az rlapot megtekinthetjk, ha a nevre ktszer rkattintunk.

## 7-27. bra. Access elkszlt rlap.

Jelentsek
Ksztsnk az auttulajdonos nevt, az aut rendszmt s tpust tartalmaz jelentst!
Megolds:
Itt is hasznlhatunk tervez nzetet: Jelents ltrehozsa tervez nzetben; vagy
varzslt: Jelents ltrehozsa varzsl segtsgvel. Kattintsunk ez utbbira.
Az els lpsben meg kell adnunk annak a tblnak, vagy lekrdezsnek a nevt,
amibl a jelents kszl. Vlasszuk a NVTIPREND lekrdezst (lsd a 2(c) feladatot) s annak sszes mezjt.

- 122 -

2003.09.09.

## 7-28. bra. Access jelentskszts, 1. lps.

A kvetkez lpsben n. csoportszintet adhatunk meg. Itt llthatjuk be, hogy az
adataink valamilyen szempont szerint csoportonknt legyenek sszegezve, tlagolva
stb. Jelen feladatban itt nem kell belltanunk semmit.

## 7-29. bra. Access jelentskszts, 2. lps.

- 123 -

2003.09.09.

s hogyan legyenek rendezve a kinyomtatand adataink. lltsunk be nv szerinti
elsdleges, tpus szerinti msodlagos s rendszm szerinti harmadlagos rendezst.

## 7-30. bra. Access jelentskszts, 3. lps.

A negyedik lpsben kell megadnunk a jelents szerkezett s tjolst. lltsunk be
tblzatos szerkezetet s ll lapot.

- 124 -

2003.09.09.

## 7-31. bra. Access jelentskszts, 4. lps.

Az tdik lpsben hatrozhatjuk meg jelentsnk stlust. Vlasszunk tetszs szerint.

## 7-32. bra. Access jelentskszts, 5. lps.

Vgl nevet kell adnunk a jelentsnknek (NVTIPREND) s vlaszthatunk: megnzzk az eredmnyt, vagy mg mdostunk rajta. Ha a mdosts mellett dntnk,
kattintsunk a Jelentsterv mdostsa opcira.

- 125 -

2003.09.09.

## 7-33. bra. Access jelentskszts, 6. lps.

A jelents mdostsra ugyanazok az eszkzk llnak rendelkezsnkre, mint az
rlaptervezs esetn.

## 7-34. bra. Access jelentsterv mdostsa.

A jelents nyomtatsi kpt megtekinthetjk, ha nevre dupln kattintunk.

- 126 -

2003.09.09.

## 7-35. bra. Access jelents nyomtatsi kpe.

- 127 -

2003.09.09.

Az informatika nlklzhetetlen egy korszer s sikeres vllalat mkdsben: a vllalat valamennyi mkdsi terlett tszvi, kezdve a mindennapi operatv mkdstl egszen a stratgiai clok meghozatalig.
Az operatv, mindennapi mkdst tmogat ltalban relcis adatbzis-kezel
rendszerek csupn legfeljebb nhnyszz megabjtnyi adattal dolgoznak s gyakran
frisslnek. Ezen rendszerek kezelst a beosztottak vgzik.
A vezetk szmra kszl (stratgiai) dntshozatalt tmogat rendszereknek
ezzel szemben tbb szz gigabjt, esetleg terrabjt mennyisg ritkbban frisstett adatot kell kezelnik, ltalban csak lekrdeznik. E vezeti informcis
rendszerek ma mr nem kpzelhetk el rendszerezett, megbzhat minsg s
A vezeti dnts-tmogat rendszerek az alaprendszerekbl tpllkoz, gyors,
tbbdimenzis sszestsre kpes, elemzst, tervezst, ellenrzst programozs nlkl tmogat, fejlett megoldsok. Fontos jellemzjk, hogy vlaszolni tudnak a Mi lenne ha? tpus krdsekre. A rendszerek interaktv jelentseket, grafikonokat s sszefoglalkat ksztenek ismert alkalmazsokon keresztl (mint amilyen pldul egy Excel tblzat, vagy diagram).
A dntstmogat rendszerek legfontosabb jellemzi:
-

utastsok mellett rendelkeznie kell adatelemz komponensekkel is.

## A legfontosabb cl az adatok mgtt hzd trendek feldertse, vagyis az

esemnyek vltozsi irnyt, a vltozs jellegt kell meghatrozni.

Csak olvassk a letrolt adatokat, s nem tartalmaznak adatmdostsi elemeket. A dntshozshoz csak a meglv informcikat kell felderteni. (A
rendszer a dnts meghozatalt segti, magt a dntst mr nem a rendszer
fogja meghozni.)

- 128 -

2003.09.09.

A megfelel minsg, megbzhat elrejelzshez kell adatmennyisg szksges. Csekly mltbeli adatokbl nem lehet pontos elemzst, trendszmtst
vgezni, emiatt a rendszerek ignylik a nagy adatmennyisget.

A dntstmogat rendszerekben nagyobb szerep jut az idbelisgnek, vagyis annak, hogy egy adatelem, mely idpontbeli aktulis llapotnak felel meg.
A hagyomnyos rendszerekben az idnek nem volt ilyen nagy jelentsge, hiszen minden adat az ppen aktulis idpontra vonatkozott. Ebben az esetben
viszont szksgszer minden adatelemet egy idrtkkel is sszekapcsolni,
ha idbeli trendek figyelst is megkvnjuk a rendszertl.

## A rendszereknek felhasznlbart kezel fellettel kell rendelkeznik, hogy a

szmtstechnikban kevsb jratos vezetk is alkalmazni tudjk. A kezel
felletnek a lekrdezsek tern megfelel rugalmassgot kell mutatnia, hiszen
a dntsek meghozatalnl az a j, ha problmt sok oldalrl, tbbfle megkzeltsben lehet megvizsglni, s ehhez a trolt adatokbl tbbfle szempont
szerinti lekrdezsekre is szksg lehet.

A vezeti dntstmogat s informcis rendszer ltrehozsa az informatikai rendszer kiptsnek befejez lpse. Csak akkor rdemes vele foglalkozni, ha az adatbzisokat ltrehoztuk s a feldolgozi programokat mr bezemeltk. Termszetesen az informatikai fejlesztseket taglal tervekben ezt az ignyt is szerepeltetni kell:
nem szerencss, ha utlag illesztjk az ignyek kz a vezeti informcis rendszert.

8.1

## A bonyolultabb dntstmogat rendszerek meghatrozott felttelrendszer alapjn

rltssal gyjtik ssze a vllalatok letben felmerl kls s bels adatokat,
amelyek bekerlsk utn mr nem vltoznak. Tulajdonkppen az adattrhzak is
adatbzisok, de sokkal fejlettebb a feltltsi, karbantartsi s lekrdezst vgz eszkzkkel, mdszerekkel. Az adattrhzakban a klnbz adatforrsokbl nyert adatokat olyan struktrban kell elhelyezni, hogy a bennk trolt informcik igny szerint, vltozatos formban legyenek lekrdezhetk, tegyk lehetv a mlttal val szadatbzisok.doc

- 129 -

2003.09.09.

## szehasonltst s klnbz elrejelzsi lehetsgeket is biztostsanak.

Az adattrhzak fogalmnak kialakulsa az 1970-es vek vgre tehet. Erre az idszakra mr megjelentek az els nagy informcis rendszerek, melyek elsdlegesen
a napi mkdsi rendszer ignyeit szolgltk ki. E rendszerekre felptett dntstmogat alkalmazsok slyos hinyossga egyrszt a mveleti sebessg lasssga,
msrszt pedig az volt, hogy sztdarabolt adatszigetekbl llt fel a rendszer. Ez
utbbi annak volt ksznhet, hogy minden nagyobb terletnek megvolt a sajt
A hinyossgok lekzdsre jelent meg az j dntstmogatsra orientlt adatkezel rendszer, az adattrhz. Vilgmret elterjedse annak ksznhet, hogy segtsgvel megalapozott s gyors dntsek hozhatk. A felhasznlk elemezni tudjk a
klnbz esemnyek hatst s a tevkenysgkkel kapcsolatos trendeket. Ennek
eredmnyeknt a felhasznlk idejket hasznosan, az adatok megkeresse, sszegyjtse, rendezse helyett a fontos informcik analizlsval, elemzsvel s a
szksges intzkedsek megttelvel tlthetik.
tekinthet, melynek elsdleges clja a stratgiai dntsek tmogatsa. Az adattrhzban trolt adatrendszer tbb helyrl szrmaz, integrlt adatokat tartalmazhat.
azok kztt fennll kapcsolatokat is troljk.
Az adattrhz megoldsok a hagyomnyos, gyenge hatkonysg informcis
folyamatot gykeresen talaktjk az albbi elvek szerint:
-

a klnbz forrsokbl szrmaz adatok rendszeres idkznknt levlogatsra s betltsre kerlnek egy kzponti adatbzisba,

kerlnek,

- 130 -

2003.09.09.

## az elemzshez szksges funkcikat standard elemz eszkzk vagy egyedi

alkalmazsok biztostjk.

Az adattrhzakon mkd lekrdez, dntstmogat, elemz eszkzk kpessgei eltrnek egy hagyomnyos operatv vllalatirnytsi rendszer kpessgeitl. Itt
kell megemlteni az OLAP technika (Online Analytical Processing) fogalmt. Ez tbbdimenzis alap adatbzis alkalmazs. Az informcikat a dimenzik (pldul id,
rtkestsi csatorna, fldrajzi elhelyezkeds, beszllti csoportok, alkalmazott technolgik stb.) mentn tbb irnybl teszi hozzfrhetv, elemezhetv.
Az adattrhzak egy msik felhasznlsa az adatbnyszat. Ez olyan szmtstechnikai s statisztikai mdszerekbl valamint algoritmusokbl ll eszkzrendszer,
amelynek segtsgvel az ltalunk fel nem ismert sszefggsekre is fnyt derthetnk. Elssorban a marketing, illetve a kereskedelem terletn alkalmazzk, de ma
mr a termelsben s a logisztikban is hasznt veszik.
Egy adattrhz kialaktsa komoly beruhzst ignyel s kidolgozott mdszertant
kvn. Ltrehozsa tbb hnapos, gyakran tbb ves kemny munkt kvetel. Az
adattrhzak megvsrlskor resek, de beptett vagy csatolhat eszkzkkel az
zleti cl alapjn feltlthetek.
Az adattrhz rendszerek klnbz adat kivon s tisztt eszkzket, valamint betlt s frisst segdprogramokat hasznlnak az adattrhz feltltsre.
-

Tisztts. Az integrlt adatrendszer kialaktsnl fontos, hogy csak megbzhat informcik kerljenek be a rendszerbe. Azonban mivel a nagy mennyisg adat tbbszrs forrsbl jn ssze, nagyon valszn, hogy az adatokban hibk s anomlik vannak. Ezrt az adatok beolvassnl az adatok helyessgnek az ellenrzsre is trekedni kell, mely folyamatot szoks az
adatok tiszttsnak is nevezni. A tisztts sorn a megfelel segdprogram
segtsgvel lehetsg van bizonyos rtkhibk feltrsra. A fejlettebb ellenrzsi rendszerek nemcsak a statikus hibkat veszik szre, hanem alkalmasak nem definilt szablyok feltrsra is. A szablytl eltr, gyansnak tartott rtkek esetn egy figyelmeztet zenetet kldenek a felhasznlnak.

## Tlts. Miutn kinyertk, megtiszttottuk s talaktottuk az adatokat, be kell

tltennk azokat az adattrhzba. Tovbbi elfeldolgozsok lehetnek mg

- 131 -

2003.09.09.

szksgesek: integritsi felttelek ellenrzse; rendezs; sszegzs, csoportosts s egyb szmtsok, hogy felptsk az adattrhzban trolt leszrmaztatott tblkat; az indexek s egyb elrsi tvonalak ptse, stb. Az
adattrhz feltltsn kvl a betlt segdprogramnak meg kell engednie,
hogy a rendszer adminisztrtor felgyelhesse az llapotot, trlhesse,
felfggeszthesse s jra kezdhesse a betltst, illetve hiba utn az adatintegrits elvesztse nlkl jraindthassa azt.
-

Frissts. Egy adattrhz frisstse abbl ll, hogy tovbbtani kell a forrsadatokon vgzett mdostsokat, hogy a rendszer megfelelen mdostsa az
felhasznlk szksgleteitl, az adattrhz forgalmtl s klnbz forrsokra klnbz lehet.

8.2

## zleti intelligencia rendszerek

Az zletmenet sorn hatalmas mennyisg adat halmozdik fel minden nap: megrendels-, raktr-, knyvelsi-, kereskedelmi- s gyfl informcik, illetve tovbbi
adattmegek kls forrsokbl. Az zleti adatok mennyisge exponencilisan, minden 2-3 vente dupljra nvekszik. A szervezetek szmra teht ltkrds, hogy
kltsghatkonyan s gyorsan hozzfrjenek az zleti informcikhoz.
Az integrlt vllalatirnytsi informcis rendszerek ltal szolgltatott jelentsek,
listk kpesek a vezetk szmra informcikat szolgltatni, de bonyolult dntsek
elksztsre s mlyebb elemzsekre mr nem mindig alkalmasak. E problma
megoldst jelenthetik az zleti intelligencia rendszerek. Ezek technolgik s termkek szles vlasztkt nyjtjk, hogy ellssk a felhasznlkat az sszes informcival, amelyre szksgk van, hogy meg tudjk hozni a taktikai s stratgiai dntseket. Ezek a rendszerek jelentik a vllalatirnytsi informcis rendszerek integrcijnak legmagasabb szintjt. Adattrhzakon alapulnak; a klnbz terletekrl
sszegyjtik, integrljk s specilis smkban troljk a maximlis rszletezettsgig
visszakereshet adatokat, valamennyi adatot (kls bels, konkurens, piac, gazdasgi, politikai krnyezet stb.), ami a vllalat mkdse sorn felmerl, ill. amelyre a
vllalat mkdse sorn szksg lehet. gy az zleti intelligencia rendszer vlaszolni
tud valamennyi olyan krdsre, ami a vllalat irnytsa sorn felmerl.

- 132 -

2003.09.09.

## Az zleti intelligencia tbb, mint adatok s technolgik kombincija: az informci

tudss transzformlsrl szl, a megfelel adat elrsrl, a benne rejl lehetsgek felfedezstrl s rtkeinek megosztsrl. A legfejlettebb informatikai technolgikat hasznost zleti intelligencia rendszerek lehetv teszik, hogy a felhasznlk hozzjussanak a stratgiai s taktikai krdsek eldntshez elengedhetetlenl
szksges informcikhoz a megfelel idben, a megfelel helyen s a nekik megfelel mdon.
j, divatos lehetsgek az zleti intelligenciban:
-

## Stratgiai dntstmogat rendszer. Az zleti tevkenysgeket nemcsak

pnzgyi oldalrl, hanem az gyfelek, bels mkdsi folyamatok s az emberi erforrs oldalrl is mrhetv kell tenni. A pnzgyi clok teljeslst
elgedett, visszatr vevkkel lehet kielgteni. A vevt a vllalati anyagi, irnytsi s rtkfolyamatok rvn szolgljk ki. A folyamatok pedig a szervezetben dolgoz emberre plnek. A rendszer ezeken a terleteken elre meghatrozott mutatk, mrszmok alakulst vizsglja. Egyszeren mrhet,
szakmailag mg kezelhet szm (15-25) mutatt kell definilni. A cl a tbb
dimenziban trtn gondolkods. A stratgiai dntstmogat rendszer az
zleti stratgia szervezeti lebontsra is megoldst knl, gy minden szervezeti egysg a vllalatival sszhangban lv, sajt stratgit alakthat ki. Az als szintek megismerhetik sajt munkjuk hatst a vllalat mkdsre. Az
is szrmazhatnak.

## gyflkapcsolatok kezelse. Az igazi keresked egyik legfontosabb clja az

gyfl vagy vev lehet legteljesebb megismerse, s ezeknek az ismereteknek a kihasznlsa jabb s jabb eladsok rdekben. A marketing a vllalkozsok nagy rsznl mg mindig termkkzpont. Nem az gyfelekre figyelnek, hanem a rvid tv eladsi adatokra. A kzeljv sikeres cgeinek
figyelembe kell vennik az gyfelek egyedi ignyeit, meg kell prblniuk szemlyre szabott rut s szolgltatst nyjtani, valamint hossz tv, stabil gyflkapcsolatot kipteni. Az gyflkapcsolati rendszerek a kvetkez terleteken nyjtanak segtsget: kapcsolattarts (vevk, gyfelek elrhetsge), rtkestsi s marketing akcik tervezse, rtkestsi folyamat kvetse, ajn-

- 133 -

2003.09.09.

lat s rendels nyilvntarts, rtkestsi csatornk kezelse, telefonos vevszolglat, szerviz s lzing szerzdsek kezelse, dokumentumkezels, dntstmogats klnbz elemzsek, statisztikk segtsgvel, telemarketing,
gyflkapcsolat gondozsa.
-

Elltsi, beszllti lnc kezelse. Ezek a rendszerek egyttmkdst feltteleznek a lnc tagjai azaz a beszlltk kztt, racionalizlva a logisztikai
rendszert. A rsztvevk nllsgukat megrizve egyestik erforrsaikat. Az
albbi terleteken adnak megoldst: vevi ignyek felmrse, kszletek beszerzse, gyrtsi folyamatok tervezse, rendelskvets, ksztermk eloszts, piackutats s termktervezs.

## Az zleti intelligencia alkalmazsa fegyelmet knyszert a vllalatokra, megkveteli a

mutatk s az zleti fogalmak cgen belli azonos rtelmezst. Nehezen integrlhatak a szervezeti egysgek vezetinek egyni sziget-megoldsai. Elnys, ha az
adatokat egy megbzhat informcikat nyjt integrlt vllalatirnytsi informcis
rendszerbl vesszk.
Egy piackutat cg elrejelzse szerint a vezeti informcis s dntstmogatsi
rendszerek piacn 2002-re az operatv rendszerek s dntstmogat rendszerek
jelenlegi 70-30%-os arnya 30-70%-osra vltozik. A drasztikus vltozst azzal indokoljk, hogy a hangsly a dntstmogatsi munkt segt informcik gyors elrsre helyezdik.

- 134 -

2003.09.09.

## Felhasznlt s ajnlott irodalom

1. Czenky Mrta: Adatmodellezs. SQL s Access alkalmazs. Computerbooks.
Budapest. 2001.
2. Grupi, Kristen et al.: Microsoft Office XP lpsrl lpsre. Szak Kiad. 2001.
3. Hetyei Jzsef: Vllalatirnytsi informcis rendszerek Magyarorszgon.
Computerbooks. Budapest. 1999.
4. Katona Endre: Bevezets az Informatikba. Novadat. Budapest. 1996.
5. Dr. Kovcs Tivadar et al.: Mit kell tudni a PC-rl? Computerbooks. Budapest.
2000.
6. Tmr Lajos et al.: ptsnk knnyen s lassan adatmodellt! Veszprmi Egyetemi
7. Ulman, Jeffrey D. Widom, Jenifer: Adatbzis-rendszerek. Panem-Prentice-Hall.
Budapest. 1998.
Egyb forrs:
1. Nagy Attila: Az adatbziskezels alapjai.
http://www-db.iit.uni-miskolc.hu/new/ (2002.09.30.)
3. Michelberger Pl: Vllalati informcis rendszerek jvje.
http://193.224.141.245/UjsagInfo/10/Michelberger.htm (2002.09.30.)
4. Dr. Siki Zoltn: Adatbziskezels s szervezs.