Professional Documents
Culture Documents
At07segedlet PDF
At07segedlet PDF
EURPAI UNI
STRUKTURLIS ALAPOK
T
M
R
N
K
I
I
N
F
O
R
M
A
T
I
K
A
BMEEOFTAT07 segdlet a BME ptmrnki Kar hallgati rszre
HEFOP/2004/3.3.1/0001.01
MSZAKI PROBLMK MEGOLDSA SZMTGPEN
1.1 Tervezs
A tervezs egy olyan tevkenysg, amely egy j, mg meg nem lv objektum, berendezs,
rendszerjellemzinek (szerkezeti, geometriai, energetikai, szilrdsgi, eszttikai stb), megadott
krlmnyek melletti, elrt feltteleket kielgt meghatrozsra irnyul. Fontos szerepet kap a
megvalsthatsg (technikai s technolgiai lehetsgek) illetve valamilyen (mszaki illetve
gazdasgi) szempontbl val optimalizls krdse.
1.2 Analzis
Vagyis annak elemzse, vizsglata, hogy egy mr meglv illetve megtervezett berendezs
esetn, miknt vltoznak a tervezs sorn meghatrozott, a tervezsi krlmnyeket kielgt
rendszerjellemzk, ha a tervezsitl eltr krlmnyek lpnek fel.
1.3 Szablyozs
2. Szimulci
A szimulci alatt egy olyan ksrleti eljrst rtnk, amelynek sorn az eredeti, valsgos vagy
elkpzelt mszaki, gazdasgi, biolgiai stb. rendszert, egy neki megfelel modellel helyettestjk
s a rendszer vizsglatt ezzel a modellel vgezzk. Magt a modellt szoks szimultornak is
nevezni. A szimulci clja ltalban tervezs, analzis vagy optimalizci.
Lnyeges, hogy a szimulci nemcsak szmtgppel trtnhet, br ez a leggyakoribb. Minl
mlyebb elmleti ismeretekkel rendelkeznk, annl sikeresebb lehet a szmtgppel trtn
modellezs. Az albbi bra egy fizikai - mszaki rendszer szimulcijval kapcsolatos elvi smt
szemlltet.
valsgos
vagy Eredeti
elkpzelt rendszer
Szimultor Modell
A fizikai hasonlsgi trvny (elv) alkalmazsra plda lehet egy az eredetinl jelentsen kisebb
mret replgp modell szlcsatornban val vizsglata, amely alapjn azutn az eredeti gp
replsi tulajdonsgaira kvetkeztethetnk.
De ez a fizikai hasonlsgi trvnyen alapul szimulcis mdszer nemcsak a repliparban
megszokott, hanem alkalmazhat a gpkocsi s hajtervezs esetn is, st az j tpus elektromos
hajtsok az n. lineris motorok tervezsnl is, tovbb a vegyiparban, ahol az eredeti mret
zem tervezshez hozztartozik az n. pilot-plant (ksrleti zem) vizsglat, azaz a laboratriumi
mreteknl nagyobb, de az eredetinl kisebb mret berendezseken vgzett ksrlet.
Termszetesen, ezekben az esetekben jl kell ismerni azokat a hasonlsgi kritriumokat amelyek
azonossga esetn a valdi s a szimultorknt alkalmazott rendszerben a folyamatok ugyangy
zajlanak (pl. az ramlstani folyamatok hasonlsgi szma, a Reynolds szm = v d/, vagy a
kmia reakcik hasonlsgnak egyik hasonlsgi szma a Damkhler szm = k , stb).
Egy msik szimulcis elv a fizikai folyamatok analgijnak elve, azaz egy izomorfizmus
(klcsns megfeleltets) a klnbz fizikai folyamatok kztt. Pldul egy ilyen megfeleltets
adhat egy mechanikai rendszer (rglland + csillapts + kls erhats) ahol az er
tmadspontja elmozdulsnak idbeli alakulst vizsgljuk s egy strukturlisan ennek
megfelel elektromos hlzat (induktivits + vezetkpessg+ ramerssg) kztt, amely
utbbiban a feszltsg idbeli vltozst tekintjk. gy lehetsgess vlik pldul a mechanikai
rendszer dinamikjnak vizsglata az elektromos hlzat dinamikjnak a vizsglata alapjn.
Hasonl izomorfizmus adhat pldul egy htechnikai folyamat s egy elektromos hlzat kztt.
A szmtstechnika egy korbbi korszakban ezen az elven mkdtek az n. analg
szmtgpek illetve ezeknek s a digitlis gpeknek az egytteseknt mkd hibrid
szmtgpek.
A harmadik szimulcis elv a matematikai analgia, amely azt jelenti, hogy klnbz
folyamatok lersnak matematikai modellje, a matematikai alakja, egyenletei egyezk. Ezen az
elven alkalmazhatunk digitlis szmtgpet, amellyel az eredeti folyamat matematikai
modelljnek megfelel folyamatokat produklunk a szmtgp hardware-jben.
3. Modellek
Ezutn definiljuk ezen objektumok fizikai modelljt, azokat a vltozkat, amelyek egyrtelmen
lerjk ezeknek a rszrendszereknek a mkdst, tovbb a szaktrgyakban megismert
fogalmak segtsgvel s a fizikai trvnyszersgek alapjn meghatrozzuk a rendszer
rendszervltoznak kapcsolatt, egymsra hatsukat. Ebben a fzisban fontos szerepe van a
mszaki meggondolsokon nyugv elhanyagolsoknak. A mrnki tevkenysg az
elhanyagolsok mvszete.
3.3 Algoritmizls
Modell-
validci
Szmtgpi
Eredeti
modell
rendszer
=Szimultor
Program-
verifikci
Rendszerelemzs
Modellalkots
Programozs
Matematikai
modell
Irodalom
Palncz B. (1992) : Mszaki problmk megoldsa formulaorientlt nyelven, BME, Budapest.
1. Algoritmus fogalma
Algoritmusnak olyan egyrtelm elrst neveznk, amely meghatrozza, hogy egy adott
feladatosztlyhoz tartoz feladatok megoldsakor, milyen mveleteket, milyen sorrendben kell
vgrehajtanunk. Az algoritmusnak vges szm lpsben kell el lltania a megoldst.
Pldaknt tekintsk kt termszetes szm legnagyobb kzs osztjnak el lltst. Nyilvn annyi
ilyen feladat van ahny szm pr kpezhet . Elsknt nzzk a megoldst, amely a defincit
kveti. Tekintsnk kt szmot, mondjuk, 18 s 12.
1. Megolds: A definci alapjn: LKO (18,12) = max( metszet (oszti (18), oszti(12))) = max
(metszet({2,3,6,9},{2,3,4,6})) = max ({2,3,6}) = 6
igen igen
a <>b a<b b=b-a
nem nem
Output : a
a=a-b
stop
A numerikus algoritmusok szleskr elterjedsnek egyik oka, hogy nagyon sok ms mveletet
vissza lehet vezetni a ngy alapmveletre. Igaz, hogy ez a visszavezets nem mindig abszolt
pontos, de tetszleges, elre megadott pontossggal ( helyesebben hibval) elvgezhet.
Ezt jl mutatja a Heron ltal javasolt ngyzetgykvons algoritmusnak pldja, amellyel egy
szm a, ngyzetgykt csak kzeltleg, de tetszleges pontossggal lehet kiszmtani osztsok,
szorzsok s sszeadsok sorozatval. Az egymst kvet lpsek szmtsa a kvetkez
formulval trtnik:
x0 = a
az eljrst addig folytatjuk, amg
abs(xi+1 - xi ) >
ahol egy alkalmasan vlasztott hibakorlt. Konvergencia esetn ez biztostja a algoritmus vges
lpsszmt. Pl. legyen a = 31, ekkor = 0.00001 vlaszts esetn a sorozat:
A modern matematika egy specilis ga a numerikus analzis, eljrsokat dolgozott ki arra, hogy
olyan bonyolultabb mveleteket, mint pldul az integrls, differencils stb. az
alapmveletekre vezessnk vissza.
Keressk meg egy halmaz legkisebb elemt (melyik ?). Legyen a halmaz H s elemei hi ,
sorszmozottak, i =1,2,...,n. Az algoritmus a kvetkez lehet:
Input: H
s = h1
i=2
igen
hi < s s=hi
nem
i=i+1
igen
i>n Output :s
nem
Stop
3. Algoritmusok jellemzi
Hatsossg
Ezzel a jellemzvel azt mrjk, hogy az algoritmus milyen mrtkben alkalmas arra, hogy vele, az
adott feladatosztlyhoz tartoz problmk minl szlesebb, teljesebb krt megoldjuk. Egy
algoritmus akkor hatsosabb egy msiknl, ha az ltala megoldhat feladatosztly bvebb mint
a msikkal megoldhat feladatosztly.
xi+1 = g ( xi )
Legyen g(x) = (20 + 3 sqrt(x) 8 x)P. Vlasszuk P rtkt P = 0.3 ra. Ekkor konvergens eljrst
kapunk. Ha azonban P = 0.5 akkor mr a mdszer divergens, azaz az algoritmus mr nem
alkalmas a P = 0.5 esetre.
Az eredeti algoritmust mdostva azonban egy hatsosabb algoritmust kaphatunk, amely ebben
az esetben is konvergens, azaz mkdik:
xi+1 = g ( xi ) + (1 - ) xi
ahol 0 < < = 1. = 1 vlaszts esetn az eredeti algoritmust kapjuk, azaz az j algoritmus
minden olyan feladatot megold amit a korbbi s mint lttuk olyat is amelyet az eredeti nem volt
kpes.
3.2 Hatkonysg.
yh = c0 + c1 xh + c2 xh xh + c3 xh xh xh + c4 xh xh xh xh
Most csupn 4 sszeadsra s 4 szorzsra van szksg, teht a Horner elrendezsen alapul
algoritmus a hatkonyabb.
Komplexits
Ezzel a jellemzvel azt mrjk, hogy miknt vltozik az algoritmus vgrehajtshoz szksges
mveletek szma a problma mretnek nvelsvel. (mveleti komplexits).
b) Gauss mdszere, fggetlenl az sszeadandk szmtl mindig csak egy osztst , egy
szorzst s egy sszeadst kell elvgezni: n/2(1+n)
Polinomilis komplexits mg megoldhat szmtgpen nagy n esetn is: (nC ahol C lland s
n a feladat mrete). Vannak exponencilis komplexits algoritmusok is pl. Hanoi tornyai 2n-1,
vagy az utaz gynk problma. Ezeknl nagy n esetn kzelt algoritmusokat szoks
alkalmazni.
Irodalom
Egy algoritmus elrsai szerint dolgoz ember a szmtsi folyamat sorn bizonyos tjkoztatst
(informcit) vesz fel, trol, dolgoz fel s bocst ki. Ezt az informcit rendszerint papron rja le
(brzolja) szmjegyek, betk vagy ms jelek felhasznlsval. Ezeknek a jeleknek a halmazt
clszer ABC-nek nevezni. Pldul az algebrban hasznlt ABC a szoksos betkn s
szmjegyeken kvl tartalmaz mg mveleti jeleket, zrjeleket stb. Az ember ltal vgzett
"kiszmtsi" eljrsra a kvetkezk jellemzk:
Papirlap
Utasitsok
Ember
Szmok
irsa
Szmol
eszkz
Az informcik trolsra a gpnek is szksge van egy ABC-re, azonban a grafikus jelek
helyett a gpben az ABC jeleit klnbz fizikai llapotokkal jellemzik, ltalban a fizikai
llapotokat 0-nak vagy 1-nek feleltetik meg. A gpbe belp s a gp mkdse kzben
talakul sszes informcit szmok formjban, kettes szmrendszerben kdoljk. gy tbbek
kztt magt az algoritmust is, amely a gp munkjt vezrli, szintn szmsorozat formjban
rjk fel.
Tr
Vezrl 1.
1 11 12 15
egysg 2
0 00 00 25 3
Aritmetikai
10
egysg
0 00 01 02
2. Elemi programszerkezetek
Szekvencia
Elgazs
Input: x
Input: x
igen
x>10
x>10 y=2x
igen nem
nem
y=2x y=-x
y=-x Output: y
Output: y
Folyamatbra Struktogram
3. bra Elgazs megvalstsa
2.3 Iterci
Az algoritmusok tbbsgnl elfordul, hogy bizonyos mveleteket tbbszr meg kell ismtelni.
Az ilyen jelleg algoritmus, illetve programszerkezeteket itercinak nevezzk. Klnbsget
szoks tenni, az n. szmllssal s felttellel vezrelt ismtlses szerkezetek kztt. A
szmllssal vezrelt esetben tudjuk, hogy hnyszor kell az ismtlst vgrehajtanunk. A felttellel
vezrelt ismtlsnl az ismtlsek szma ismeretlen. Ezzel szemben ismert valamilyen felttel,
amely igaz volta esetn a krdses mveletek megismtlendk. Ha a felttel hamiss vlik akkor
az ismtls (ciklus) befejezdik. A szmllssal s a felttellel vezrelt ismtlsek programnyelvi
megvalstsa alapjn szoks for illetve while ciklusokrl beszlni.
In pu t : N
i=0 In pu t : N
s= 0
s=0
i = 1 ..N
i =i +1 s=s+i
Ou tp ut : s
s=s+i
ig en
i <N
g oto
n em
Ou tp ut: s
3. Programnyelvek
- A harmadik genercis nyelvek sorba tartoznak pl. a BASIC, COBOL, FORTRAN s C nyelvek.
Ezeket a nyelveket magas szint nyelveknek hvjk.
-A negyedik genercis nyelvek egyik fejldsi irnynak jellemzje az adatszerkezet s a rajtuk
vgzett mveletek sszerendelse, az n. objektum orientlt nyelvek, pl. Visual Basic, C++.
A msik fejldsi irny a szmtgp-algebra alkalmazsa, az n. formula orientlt s szimbolikus
nyelvek kialakulsa, pl. MathCAD, Maple, Mathematica, MATLAB stb. Ezen utbbiak nagyszm
beptett fggvnnyel rendelkeznek, amelyek a szimbolikus szmtsok mellett a numerikus
feladatok megoldst is nagymrtkben tmogatjk, s lehetv teszik az n. funkcionlis
programozst s a vizualizcit.
Irodalom
A top - down technika lnyege, hogy elszr a megoldand problmnak egy tfog, nem
rszletes megoldst keressk, majd a rszfeladatok ismeretben, azok megoldsnak lpseit
fokrl fokra haladva egyre jobban mlytjk, finomtjuk.
2. Modularits
Az elz pldban egy szm osztinak meghatrozsa egy nll feladatknt tekinthet,
amelynek megoldst kt klnbz bemen adatra kell elvgezni. Clszernek ltszik ezt az
algoritmusrszt gy megadni, hogy csak egyszer legyen szksg a lersra.
Erre ad lehetsget a modul, amely egy nll algoritmusrsz programjnak ltalnos, azaz
tetszleges bemen adatokra rvnyes, lerst adja.
12.1 12.1 x
a rtk szerint
Aktulis
paramter
Formlis
paramter
12.1
cim szerint
nem szerepel a modul formlis vltozi kztt. Ezzel lnyegben az adattads egy msik
formjt valsthatjuk meg a klnbz modulok kztt.
A loklis s globlis elnevezsek relatv viszonyokat tkrznek. Egy modul szmra, amely egy
msik modulba van gyazva (onnan kerl meghvsra), az t hv modul loklis vltozi, az
szempontjbl globlis vltozk.
3. Rekurzi
3! = 3*2!
2! = 2*1!
1! = 1 (bzisrtk)
2! = 2*1=2
3! = 3*2 = 6
Vannak olyan esetek, amikor egy algoritmus nem rekurzv formban val megrsa a feladat
megoldst nagyon bonyolultt tenn, szemben a rekurzv megkzeltssel. Erre j plda a Hanoi
tornyai-nak nevezett problma.
Legyen adott hrom fggleges rd, amelyeket A, B s C-vel jellnk, s legyen az A rdon
alulrl felfel cskken mretben n darab korong. Az A-rl a C rdra kell eljuttatni a korongokat
az albbi szablyok szerint:
A B C
Azaz, ha az eljrs neve Hanoi (n, A,B,C) vagyis n korongot helyezznk A-rl C-re a B-n keresztl,
akkor ez a kvetkez lpsekkel valsthat meg :
1) Hanoi (n-1,A,C,B)
2) Hanoi(1,A,B,C)
3) Hanoi(n-1,B,A,C)
Az algoritmus:
Hanoi (n, A,B,C) = Ha n = 1 then A C
klnben Hanoi (n-1,A,C,B);
A C;
Hanoi(n-1,B,A,C) ;
4. Megoszts mdszere
A mdszer lnyege, hogy a feladatot nem az eredeti halmazon, hanem annak kivlasztott
rszhalmazn oldjuk meg, azaz az eredeti halmazt lpsrl lpsre szktve kapjuk meg a
keresett megoldst.
Pldaknt nzzk a keress feladatt egy mr rendezett sorozatban. Idzzk fel a sztrak
hasznlatt, amikor nem az els vagy utols oldaltl indulva lapozzuk vgig a sztrat amg
megtalljuk a keresett szt, hanem feltjk a sztrat valahol kzpen s a keresett szt
sszehasonltjuk az ott tallt szval. Ha a keresett sz elbb van az ABC - ben akkor a keresett
sz a sztr els felben van, ellenkez esetben a msodik felben. Ezutn a megfelel rszben
folytatjuk tovbb a keresst az elz felezsi mdszerrel. Ezt a keressi mdszert binris vagy
logaritmikus keressnek nevezik. Vajon mirt?
5. Prhuzamosts
Az algoritmusok egyes lpseinek vgrehajtsa sorn elfordul, hogy kt vagy tbb lps
egymstl fggetlenl akr prhuzamosan, egyidejleg is vgrehajthat, mivel a lpsek
eredmnyei nem befolysoljk egymst. Ennek a lehetsgnek a kihasznlsa rdekben, a
prhuzamosts megvalstshoz, bizonyos hardware s szoftware feltteleknek kell eleget
tenni.
Irodalom
Naps - Nance (1992) : Introduction to Computer Science, West Publishing Company, New York
1. Elemi adattpusok
1.3 Vals adattpus: vges tizedes trt (pl. 0.0139), kerektsi hiba.
1.4 Komplex tpus: valjban sszetett, 2 elem vektor (pl. 2.2 3.4i)
2. Elemei adatszerkezetek
2.2 Tmbk
Tudjuk, hogy minden adatszerkezet, mint sszetett adattpus, elemi tpusokbl pl fel, ezrt
annak megadsnl meg kell mondanunk, hogy milyen tpus elemekbl s hogyan kpezzk
ket. Az sszetett struktra kpzse abbl a problmbl fakad, hogy sokszor van szksgnk
olyan azonos tulajdonsg s szerkezet vltozkra, amelyeket valamilyen szempontbl
egytt kell kezelnnk. Magtl addik az tlet, hogy kzs nvvel hivatkozzunk rjuk, de gy,
hogy elemeik megklnbztethetk maradjanak.
A tmb azonos tpus, meghatrozott szm, sorrendbe helyezett elemekbl ll sorozat, ahol
az elemeket index (ltalban pozitv, de mindig egsz szmok) azonostjk. A szimbolikus
nyelvekben ezekbl a megktsekbl csak a sorrendisg marad.
Az egydimenzis tmbt vektornak, a ktdimenzis tmbt mtrixnak (vagy tblzatnak)
nevezzk s a kzttk elvgezhet mveletekre specilis szablyok rvnyesek. Bizonyos
rendszereknl a tmb akrhny dimenzis is lehet.
1 D Tmbk - vektor: egy nv de tbb adat. Jellemzk: azonos tpus adatok, vektor elem-
index: egszszm. sor s oszlop vektor, transzponlt. 3 mvelet a vektorok kztt: eredmny:
skalr, vektor s mtrix
2 D Tmbk - mtrix- sor s oszlop index: mtrix szorzsa vektorral, mtrix - mtrix
szorzsa, egysgmtrix s inverz mtrix.
A memrit gy kpzeljk el, mint egy sokfikos szekrnyt, amelynek minden fikjhoz, de
egyszerre csakis egyhez frhetnk hozz. Egy fikban lnyegben egyetlen szmot
helyezhetnk el, de nem akrmekkort. Ennek maximlis rtke 255 lehet. Ezt a kpzeletbeli
fikot nevezzk bjtnak.
A bjt valsgban tovbb bonthat 8 kisebb egysgre, ezek a bitek. Egy bit kt rtket
vehet fel: 0-t vagy 1-et. Ha a troland szmot binris, azaz kettes szmrendszerben adjuk
meg, akkor vilgos, hogy mirt lehet az egy fikban elhelyezhet szm maximlis rtke 255.
Ha a 8 egymst kvet bitet a kettes szmrendszer helyrtkeinek feleltetjk meg, akkor a
legnagyobb szm alakja: 11111111. Ez pedig a tzes szmrendszerben:
Egsz
Ennl nagyobb egsz szm esetn tbb fikot fogunk ssze. Az egsz szmokat ltalban 2
bjton brzoljuk. Az els bit az eljel szmra szolgl, amely pozitv esetben 0, negatv
szmnl pedig 1.
Vals tpus
x = m Re
c=e +K
eljel|karakterisztika|mantissza
Karakter : 1 byte
Logikai: 1 byte
Tmb tpus
Mint emltettk, a tmb lnyegben lineris adatszerkezet, azaz az elemek az egymst kvet
memriahelyeket foglaljk el. A szmtgp a tmb neve alapjn meghatrozza a tmb
kezd elemnek memria cmt (bziscm), majd az index, valamint az elemtpusnak
megfelel trolsi hossz ismeretben az indexnek megfelel elem helyt a memriban.
4. Adatllomny
Specilis file-tpus az n. text file, ahol a komponensek vltoz hosszsg stringek, amelyeket
egy kocsivissza (Carrige Return) s egy soremels (Line Feed) zr le. Ezeket (CR+LF)
egyttesen nevezzk sorvgjelnek.
A MATLAB, amelyet tudomnyos mszaki szmtsok cljra terveztek, elssorban numerikus
adatokat tartalmaz adatllomnyok kezelsre alkalmas, amelyeknl a numerikus rtkek
karakter illetve karakterlnc formjban szerepelnek a file-ban s csak az aktulis MATLAB
vltozba val berskor, illetve a file-ba val kirskor konvertldnak automatikusan pl.
vals szmbl karakterlncc vagy karakterlncbl vals szmm.
Irodalom
Tartalom: 1. Egyszer programozsi ttelek; 1.1 Eldnts; 1.2 Kivlaszts; 1.3 Keress; 1.4
Megszmlls; 2. sszetett programozsi ttelek; 2.1 Rendezs; 2.2 Kigyjts; 2.3
Sztvlogats; 2.4 Sorozatok egyestse; 2.5 Sorozatok kzs rsze;
A tmb, mint adattpus fontos szerepet jtszik a szmtstechnikban, ezrt ezek kezelsre
alapalgoritmusokat dolgoztak ki. Ezeket nevezzk programozsi tteleknek.
A programozsi ttelek tpusai, az algoritmusok bemenete s kimenete alapjn a kvetkez
csoportokba sorolhatk:
Bemenet Kimenet
sorozat skalr
sorozat sorozat
sorozat sorozatok
sorozatok sorozat
Eldnts
Ebben az esetben a sorozathoz egy logikai rtket rendelnk. Ha a sorozatban tallhat adott
tulajdonsg elem, akkor 1, klnben 0.
function y=eldont(s,T)
n=length(s);
i=1;
while and(i<n,not(T(s(i))))
i=i+1;
end
if or(T(s(n)),i<n)
y=1;
else
y=0;
end
Kivlaszts
Az algoritmus gondolatmenete nagyon hasonlt az eldnts szablyra, azzal a klnbsggel,
hogy most a keresett elem helyt, illetve magt az elemet kell megadni. A kivlaszts esetn
felttelezzk, hogy van mit kivlasztani, azaz a keresett adatnak benne kell lennie a
sorozatban.
function y=kivalaszt(s,T)
i=1;
while not(T(s(i)))
i=i+1;
end
y=i;
Keress
A lineris keress szablyt akkor alkalmazzuk, ha nincs biztostk arra, hogy a kivlasztand
elem benne van a halmazban. Ennek megfelelen ez a szably az eldnts s kivlaszts
szablyt tvzi egybe. A fggvny 0 ad vissza, ha nincs a vektorban keresett tulajdonsg
elem.
function y=keres(s,T)
n=length(s);
i=1;
while and(i<n,not(T(s(i))))
i=i+1;
end
if i<n
y=i;
elseif T(s(n))
y=n;
else
y=0;
end
Megszmlls
A megszmlls szablya azokban az esetekben alkalmazhat, ha rendelkezsnkre ll egy
sorozat s egy,a sorozat elemein rtelmezhet T tulajdonsg s az a feladatunk, hogy
szmoljuk meg a T tulajdonsggal rendelkez elemeket.
function y=szamlal(s,T)
n=length(s);
z=0;
for i=1:n
if T(s(i))
z=z+1;
end
end
y=z;
2.1 Rendezs
A rendezsre nagyon sokfle mdszer knlkozik. Ezek kzl nzzk a maximum kivlasztson
alapul rendezst. Ennek a mdszernek a lnyege, hogy kivlasztjuk a legnagyobb rtk
elemet, amit a sorozat vgre helyeznk, gy, hogy a legnagyobb elemet felcserljk a
sorozat utols elemvel, majd a vizsglt sorozat hosszt eggyel cskkentjk.
function y=rendez(x)
n=length(x);
nc=n;
for i=1:n-1
imax=1;
for j=1:nc
if x(imax)<x(j)
imax=j;
end
end
maxi=x(imax);
x(imax)=x(nc);
x(nc)=maxi;
nc=nc-1;
end
y=x;
2.2 Kigyjts
Ebben a esetben egy sorozatbl egy adott tulajdonsggal rendelkez sszes elemet ki kell
gyjteni, eltren a kivlasztstl, amikor csak egy ilyen elem kivlasztsa volt a cl.
function y=kigyujt(x,T)
n=length(x);
y=[];
for i=1:n
if T(x(i))
y=[y,x(i)];
end
end
2.3 Sztvlogats
Ebben az esetben egy sorozatbl kt sorozatot lltunk el. A bemen sorozat elemeit
valamilyen felttel alapjn kt diszjunkt sorozatra bontjuk.
function y=szetvalogat(x,T)
n=length(x);
i=1;
j=n;
for k=1:n
if T(x(k))
y(i)=x(k);
i=i+1;
else
y(j)=x(k);
j=j-1;
end
end
Adott kt sorozat, hatrozzuk meg azt a sorozatot, amely azokat az elemeket tartalmazza,
amelyek az egyik s msik sorozatban is benne vannak. De ezek csak egyszer szerepelnek az
egyestsben.
Az s1 sorozatot tmsoljuk s3 vektorba, majd minden s2 sorozatbeli elemrl eldntjk, hogy
benne van-e s1 sorozatban. Ha nincs, akkor beletesszk az s3 egyestst tartalmaz
vektorba.
function s3=egyesit(s1,s2)
n1=length(s1);n2=length(s2);
for i=1:n1
s3(i)=s1(i);
end
for i=1:n2
j=1;
while and(j<n2,not(s2(i)==s1(j)))
j=j+1;
end
if and(not(s2(i)==s2(j)),not(j<n2))
s3=[s3,s2(i)];
end
end
Tbb sorozat unijt gy lltjuk el, hogy az els kett unijt tekintjk, majd ennek s a
harmadik sorozatnak lltjuk el az unijt, s gy tovbb.
function s3=kozos(s1,s2)
n1=length(s1);
n2=length(s2);
k=1;
for i=1:n1
j=1;
while and(j<n2,not(s1(i)==s2(j)))
j=j+1;
end
if or(s1(i)==s2(n2),j<n2)
s3(k)=s1(i);
k=k+1;
end
end
Irodalom
1. Az egyenletrendszerek tpusai
Ax=b
Kt eset lehetsges:
u =5 + v
11
10
3
-5 -4 -3 -2 -1 0 1 2 3 4 5
v
u=2.5 s v = -2.5
Ekkor is definilhatunk egy legkisebb hibj megoldst, amely ugyan egyik egyenletet sem
elgti ltalban ki, azonban az egyes egyenletek hibinak ngyzetsszege minimlis lesz.
Teht most a minimlis normj hibavektorhoz tartoz vektort tekintjk megoldsnak.
det(A) = 1040
x = linsolve(A,b)
x = 12.5
6.5
x = 2.5
- 2.5
x = 3.1
- 3.1
x = 4.0132 x = 4.0132
-1.2710 -1.2710
A pinv ltal adott megolds normja kisebb, norm(x1) = 6.891 s norm(x2) = 8.145
Intervallumfelezs mdszere
Ebben az esetben tudjuk, hogy a keresett gyk milyen intervallumba esik. Itt mindig egy
gykre gondolunk, azaz
f(x1) f(x2) < 0
1) Vlasszuk meg x1 s x2 rtkeit gy, hogy az f(x1) f(x2) < 0 felttel igaz legyen.
2) Szmtsuk ki az intervallum felezpontjt:
xc = (x1 + x2)/2
Newton mdszer
f(x1)
x2 x1
f(x)
1.bra A Newton mdszer elve
Jellemzk:
- a konvergencia ngyzetes
- ha f'(x) ~ 0 oszcillci lp fel!
- ha f''(0) ~ 0, inflexis pont kzelben lv gyk esetn, lass konvergencia (divergencia).
MATLAB fggvnyek
10
-5
-10
-2 -1.5 -1 -0.5 0 0.5 1 1.5 2 2.5 3
x
>>fzero(f, 2)
ans=2.09455148154233
>> fzero(f,[1,3])
ans =
2.09455148154233
>>p = [1 0 -2 -5];
A gykk pedig,
>> roots(p)
ans =
2.09455148154233
-1.04727574077116 + 1.13593988908893i
-1.04727574077116 - 1.13593988908893i
2. Interpolci
Ha ismerjk az yi = f(xi) sszetartoz (xi, yi) rtkeit, i = 1,n pontokban, krds mi lesz az
yt = f(xt) rtke, ahol xi < xt < xi+1?
10
-2
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
y = @(x)interp1(X,Y,x)
10
y1 = a2 x12 + a1 x1 + a0
y2 = a2 x22 + a1 x2 + a0
y3 = a2 x32 + a1 x3 + a0
azaz n-ed fok polinommal val kzelts esetn n+1 adat prra (xi,yi) van szksg!
Az a0, a1 s a2 ismeretlenekre add lineris egyenletrendszer mtrixa az n,.
Vandermonde mtrix. A gond, hogy a Vandermonde mtrix rosszul kondicionlt! Ezrt azutn
az egytthatkat clszerbb ms mdon szmolni. Pl. a Lagrange-fle alakban.
A MATLAB-ban a polinomilis interpolci fggvnyt a polifit() s a polival() fggvnyek
segtsgvel llthatjuk el:
14
12
10
Lthat, hogy a vgeken irrelis lengsek lpnek fel. Oka tl sok pont, tl magasfok
interpolcis polinom. Ezrt 7-8 pontnl tbb esetn nem alkalmazand!
>> ys=@(x)spline(X,Y,x)
spline(X,Y,x)
12
10
3. Regresszi
Az adatok hibval terheltek s ezekre akarunk egy modellt illeszteni, amelynek paramtereit
keressk. Az interpolcihoz kpest teht itt a grbe nem megy t a mrsi pontokon!
A rendelkezsre ll adatok: (xi, yi) i=1,...,n > 2. Tbb egyenlet mint ismeretlen (b0, b1)
y1 = b1*x1 + b0
.
yn = b1*xn + b0
1050
1000
950
900
850
800
750
20 30 40 50 60 70 80 90 100
v
Ebben az esetben a kzelt polinom nem elsfok, hanem magasabb fok polinom. Ennek
fokszma n adat esetn maximum m = n 2, hiszen m = n-1 mr interpolcit jelent.
polyval(p,v)
1050
1000
950
900
850
800
750
20 30 40 50 60 70 80 90 100
v
1. Felhasznlsi terlet
34
A SZMTGPES GRAFIKA ALAPELEMEI
2. Megjelentsi alapfogalmak
2.2. Sznezs
35
A SZMTGPES GRAFIKA ALAPELEMEI
36
A SZMTGPES GRAFIKA ALAPELEMEI
Vektoros megjelent:
- Rajzgp kis kocsin mozg tollakkal, specilis papron trtnik a rajzols. Fbb tpu-
sok a sk, a tekercses s a dobos plotter. A 70-es, 80-as vek klasszikus megjelent
eszkze. A korltozott sznszm s a vonalorientlt rajzolsi md elavultt tette.
Pixeles megjelentk:
- nyomtat,
- monitor,
- mikrofilm a 70-es, 80-as vek nagy szn s pixelfelbonts outputja.
3.2.1. Nyomtatk
Gyakrabban hasznlt tpusok:
- Karakternyomtat hasonlak az elektromos rgpekhez. Elemi egysge a karak-
ter. Egyes technikai megoldsok (sornyomtatk) igen nagy sebessggel nyomtatnak,
azonban a formzsi ktttsgek s a nehzkes mechanika miatt elavultak.
- Mtrixnyomtat egy vagy tbb tsor festkszalagon keresztl hagy nyomot a pa-
pron. Egy karakter kpe pontmtrixbl ll ssze. E nyomtattpus grafikus zem-
mdban is hasznlhat. Megfelel festkszalaggal sznes nyomtats is lehetsges.
- Lzernyomtat specilis anyagbl kszlt hengerre lzer rja fel pontokkal a kpet.
Ahol a lzer a hengerhez r, a fellete elektrosztatikusan feltltdik s itt a festk
megtapad. A papron vgiggrdtve a festk a paprra tapad, amit rgetnek.
- Tintasugaras nyomtat tintacseppeket lvell a paprra. A nyomtatsi minsg er-
sen fgg a cseppek mrettl, a festk s a papr minsgtl. A nyomtattpus f
erssge a viszonylag olcs s j minsg sznes nyomtatsi lehetsg.
- Hnyomtat specilis, hrzkeny papron a kvnt pontok helye elsznezdik.
A kp minsgt az inch-enknt nyomtatott pontszmmal jellemezzk (dot/inch). Tipikus
rtksorozatok: 150, 300, 600, 1200 dpi illetve 180, 360, 720, 1440 dpi.
3.2.2. Monitorok
A manapsg hasznlt videomegjelentk a pixelgrafikus elvet hasznljk.
Jellemz technikai megvalstsok:
- Katdsugrcsves elektronsugr psztzza a fnyrzkeny foszforrteggel bevont
ernyt. Az elektron energijval arnyos intenzits fnykibocstsra kszteti a kp-
ernyt. A sznes monitorokban hrom szngy van, melyekbl kibocstott sugarak
egytt mozognak. A foszforrteg is hrom klnbz tpusbl pl fel, s egy sznh-
l tallhat a kpcsvn.
37
A SZMTGPES GRAFIKA ALAPELEMEI
Irodalom
Koczka Gyrgy: Bevezets a szmtgpes grafikba, Megyetemi kiad, 2002
Szirmay-Kalos Lszl: Szmtgpes grafika, ComputerBooks, 1999
38
A SZMTGPES GRAFIKA ALGORITMUSAI
1. Grafikai szoftverek
Hardverek, szoftverek grafikus ignye igen sokrt. Az ignyek klnbz szint megva-
lstst ignyelnek. Egy digitalizl eszkzbl rkez jelek feldolgozsa vagy egy inte-
raktv vonalrajzol nyilvn ms jelleg program ksztst kveteli meg.
Hrom f szint jellemzi a grafikus igny programokat.
39
A SZMTGPES GRAFIKA ALGORITMUSAI
40
A SZMTGPES GRAFIKA ALGORITMUSAI
Plda:
Az AutoCAD rendszer fontosabb funkcii:
- rajzi krnyezet belltsa (paprmret, pozcionl hl, rajzi segdeszkzk, etc.),
- rajzelemek ltrehozsa,
egyszer rajzi entitsok: pont, vonal, kr, v, szveg,
sszetett rajzi entitsok: vonallnc, blokk, mintzat, mretvonal,
- rajzelemek mdostsa, transzformlsa,
- a rajz szervezse,
blokkok: fizikailag sszekapcsolt rajzelemek, melyek azonostval rendelkeznek,
flik: logikailag sszekapcsolt rajzelemek, melyek bizonyos helyzetekben kzsen
kezelhetk,
- a rajz nzetvltsa,
- rajzelemek lekrdezse,
- a rajz megjelentse hardver eszkzkn,
- kapcsolat az opercis rendszerrel.
A rajzot felpt grafikus elemeket a rendszer terminolgijval lve rajzelemeknek
(entity) nevezzk.
2. Grafikus algoritmusok
41
A SZMTGPES GRAFIKA ALGORITMUSAI
x = dx/dl s y = dy/dl
x0 = x1, y0 = y1
i = 0, 1, , dl-re
a kirajzolt pont helye: round(xi, yi),
az elmleti egyenes lpsei: xi+1 = xi + x s yi+1 = yi + y .
A pixelek helye az elmleti egyenesbl kerektssel addik (nyomvonal). Igen egyszer
s rvid algoritmus. Lebegpontos mveleteket ignyel, ezrt csak a kis vonaligny
szoftverekhez alkalmas.
A kperny hatrait meghosszabbtjuk gy, hogy a teljes kpet kilenc rszre osszk fel.
E tartomnyok egy 4-bites kdot kapnak az bra szerint. Az egyenes vgpontjai pedig
megkapjk azt a kdot, melyikben fekszenek.
A vgsi algoritmus lpsei:
- Nyilvnval, ha mindkt vgponthoz zrus tartozik az egyenes teljes terjedelmben
bell van.
- Amennyiben a kt kd logikai szorzata (logikai s) nem nulla, az egyenes kvl esik.
- Egybknt darabolni kell.
A darabols mdja, hogy megkeressk az egyenes s a kperny egyik lnek met-
szspontjt. Az brn pl. a C pontot. Ekkor az AC szakasz elhagyhat. A CB szakasz
vizsglatval megkapjuk a D pontot, gy a megjelenthet BD szakaszt.
2.3. Poligonfests
Az algoritmus clja, hogy tetszleges skidomot be tudjunk festeni egy megadott sznre.
Egy ltalnos skidomot tetszleges mrtkben kzelthetnk poligonnal. Legyen a
poligon oldalszma n. Egy kiszemelt pontjbl n-2 darab hromszgre vghatjuk. Ezzel
a feladatot visszavezettk hromszg festsre.
A hromszget vzszintes cskokra vgjuk a kperny sorai szerint, majd adott szn vz-
szintes vonalakkal kitltjk. A szakaszok vgpontjai a szmtott metszspontokbl add-
nak.
A gyakran hasznlt szntmenetes poligonkitltsnek is a fenti algoritmus szolglhat ala-
pot. Ekkor a vzszintes vonalat valamilyen interpolcival szmolva pixelenknt ms
sznnel kell rajzolni.
2.4. Foltkitlts
43
A SZMTGPES GRAFIKA ALGORITMUSAI
hiszen vagy maga is bekerl a trba, vagy egy ilyen pontbl res pontokon keresztl,
vzszintes irnybl elrhet.
2.5. Kpfeldolgozs
111111111111111111
100011111111111111
100000111111111111
100000001111111111
100000000011111111
100000000000111111
100000000000001111
111111000011111111
111111100001111111
111111110000111111
111111111000011111
111111111100001111
111111111110000111
111111111111000011
111111111111100001
111111111111110001
111111111111111001
111111111111111111
44
A SZMTGPES GRAFIKA ALGORITMUSAI
2.6. Mozgsrzkeltets
Irodalom
45
A SZMTGPES GRAFIKA ALGORITMUSAI
46
SZMTGPES GRAFIKAI MODELLEZS I.
1. Grafikai modellezs
Ahhoz, hogy megjelenthessk a valsg egy kiszemelt rszt nevezzk szntrnek ezt
a gondolatban elhatrolt trrszt grafikus output eszkzn, a kvetkez lpseket kell
megtennnk:
47
SZMTGPES GRAFIKAI MODELLEZS I.
modelltr a trgymodellek elhelyezse
transzformcik a trgytr elksztse (a nzpont
vetts irny modelltr)
a nzpont irny ltvny elk-
sztse
kptr (az alakzatok ltvnya) alakzatok a kpskban a hozzjuk
tartoz mlysgi adatokkal
transzformci a hardver eszkz a ltvny rgztse
koordintarendszerbe
megjelent eszkz
A szoftverek, grafikus tervezk egykt fzist tvesznek a felhasznltl. Az AutoCAD
men szinten biztostja a modelltr kptr transzformcikat. Termszetesen biztos-
tottak a kptr monitor, nyomtat transzformcik is.
Az alakzatokat adatszerkezetben trolt koordinti, azok kapcsolati sszefggsei
teljes mrtkben meghatrozzk. Az ilyen tulajdonsggal rendelkez modelleket
geometriai modellnek nevezzk.
Plda:
Test felsznnek kzeltse s kpi megjelentsnek elksztse.
A felsznt diszjunkt p1, p2,..., pn poligonokkal kzeltjk, terletk rendre f1, f2,..., fn.
n n
Ezzel a kzelt polider p = U p i s felszne F = f i . Megfelel feloszts esetn a
i =1 i =1
test alakjnak kpe jl kzelti a valsgot s a szmtott felszn is megfelel pontoss-
g.
brzolshoz meg kell hatrozni a poligonok modelltrbeli cscsponti koordintit. A
megfelel nzpont szerinti transzformcit elvgezve, a cscsokat vonalakkal sszekt-
ve elll a test drtvzas kpe.
Legyen egy relcis adatbzis kt tblja a polidert ler adatszerkezet. Az egyik
tbla a cscsokat, a msik a cscsokat tartalmaz leket, azaz a kapcsolatokat tartal-
mazza.
48
SZMTGPES GRAFIKAI MODELLEZS I.
Cscsok s koordintik:
azonost x y z
cscsp xp yp zp
lek s a hozz tartoz vgpontok:
azonost kezdpont vgpont
lk cscsp cscsq
A poligonok leivel sszerendelt cscsponti koordintk a test drtvzas geometriai mo-
delljt alkotjk.
Tmr megjelentshez meg kell adni a lapokat. A lapokat cscsaik megfelel sorrend
felsorolsval definiljuk. A krbejrst a jobbkz-szably konvenci betartsval gy
vgezzk, hogy a normlis a poliderbl kifel mutasson.
Vegyk az elz cscsok-koordintk tblhoz a lapok tblt:
azonost darab 1. cscs . K. cscs .
lapk K cscsp . cscsq
A darab oszlop megadja, hogy az adott lapnak hny cscsa van. (Ebben a tblban
elfordulhatnak res cellk.) A lapok takarsvizsglat utn megjelenthetk kontrjukkal,
festhetk vagy vilgtst hasznlva rnyalhatk.
A polider lapjaival sszerendelt cscsponti koordintk a test geometriai modelljt
alkotjk.
1.3. Alaklers
Egy grafikus programnak tbb, nha egymsnak ellentmond szempontnak kell megfe-
lelnie. Teljestenie kell a felhasznl kvetelmnyeit, matematikailag jl kezelhet mo-
dellt kell alkotnia, szmtsi munka s trigny szerint hatkonynak kell lennie. Vizsgljuk
meg e szempontokat.
49
SZMTGPES GRAFIKAI MODELLEZS I.
50
SZMTGPES GRAFIKAI MODELLEZS I.
51
SZMTGPES GRAFIKAI MODELLEZS I.
A grafikus megjelentkn nem tudunk s nem is mindig clszer olyan kpet ellltani,
amely a valdi ltvny tkletes brzolsa lenne. Olyan mdszerekre van szksg,
amelyek figyelembe veszik az adott alkalmazs ignyeit, a kp ellltshoz szks-
ges munka mennyisgt s a megjelent hardver jellemzit, kpessgt.
A megjelentsi mdszerek alapproblmja a mlysg, azaz a harmadik dimenzi rz-
keltetse.
A megjelents fontosabb eszkzei:
Alak, forma rzkeltetse
- a kontrvonal rajzval (drtvzas megjelents),
- a terlet festsvel (sraffozs, rnyals).
A hromdimenzis ltvny ktdimenzis kpnek ellltshoz alapvet a vetts.
Gyakran hasznlt vettsi mdok:
- prhuzamosan skra,
- perspektven skra a tvlatot azzal rzkelteti, hogy a kzelebbi trgyakat na-
gyobbnak brzolja a tvolabbiaknl,
- nem sk felletre.
A trbelisg rzkeltetsnek fbb mdszerei:
- Merleges vetts
- Perspektv vetts
- Takart felletek elhagysa
- rnyals
- Kinetikus mlysgi hats
Irodalom
Bajcsai Pl: Numerikus analzis, Akadmia Kiad, 1985
Koczka Gyrgy: Bevezets a szmtgpes grafikba, Megyetemi kiad, 2002
W. M. Newman R. F. Sproull: Interaktv szmtgpes grafika, Mszaki Knyvkiad,
1987
52
SZMTGPES GRAFIKAI MODELLEZS II.
1. Grafikai modellezs
1.1. Transzformcik
Egy grafikus rendszernek lehetv kell tennie, hogy a felhasznl az alakzatok elksz-
tse sorn klnbz transzformcikat alkalmazzon. Fel kell tudnia nagytani, mozgat-
nia kell, alkalmanknt tkrzsre s forgatsra is szksg lehet.
A szmtgpes grafika matematikai appartusa a lineris algebra eszkztrn alapul.
Az alaklerst vektoros, a koordinta transzformcikat mtrixos rsmddal trgyaljuk.
a e i 0
b f j 0
[x ' y ' z ' 1] = [x y z 1]
c g k 0
d h l 1
53
SZMTGPES GRAFIKAI MODELLEZS II.
1 0 0 0
0 1 0 0
0 0 1 0
D x Dy Dz 1
54
SZMTGPES GRAFIKAI MODELLEZS II.
resztl trtn tkrzs mtrixt abbl az egyszer meggondolsbl rjuk fel, hogy min-
den koordinta eljele vlt a mveletnl!
1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0
0
1 0 0 0 1 0 0 0 1 0 0 0 1 0 0
=
0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0
k1 k2 k3 1 0 0 0 1 k1 k2 k3 1 2k1 2k 2 2k 3 1
55
SZMTGPES GRAFIKAI MODELLEZS II.
1.3. rnyals
56
SZMTGPES GRAFIKAI MODELLEZS II.
Drtvz modell
A geometriai modell hrom s ngyszgekbl ll.
Az rnyalsi polider
Megjelents a lapok fggetlen rnyalsval.
57
INFORMCIS RENDSZEREK
1. Informcis rendszerek
Adatfeldolgozs:
A feladatot ltalban szmtgp ltja el. Irnyulhat tranzakcik vgzsre, vagy
akr vezeti dnts elksztsre is.
Telekommunikci:
Az informci tvolabbi helyekre val eljuttatsra szolgl. A telefon, telex, telefax
s termszetesen a szmtgpes hlzatok (LAN-ok, WAN-ok tartoznak ide).
Automatizlt irodai szolgltatsok:
rgpek, msolk, kpfeldolgozk, terminlok, szemlyi szmtgpek alkotjk.
Termszetesen a szmtstechnika mai fokn a fenti kategrik sszemosdnak. Azon-
ban ltszik, hogy egy informcis rendszer nem jelentheti egyetlen szoftver megalkot-
st s hasznlatt.
58
INFORMCIS RENDSZEREK
1.2.1. Adatok
Adatszerkezetekben trolt informcik.
1.2.2. Hardver
Minden rendszer valamilyen konkrt hardveren valsul meg. Ennek rsze a szmtgp
(illetve szmtgpek elosztott rendszereknl), a terminlok, a trolk s a hozzjuk tar-
toz telekommunikci.
1.2.3. Szoftver
Az informcis rendszerek szoftver rszei:
Opercis rendszer
felgyeli az adatbzis-kezel mkdst.
Adatbzis-kezel rendszer
f feladata a file-mveletek s jogosultsgok kezelse.
Alkalmazi programok
a tnyleges tevkenysg megfogalmazsa egy programnyelv segtsgvel.
A hrom szint kialaktsa a rugalmassgot biztostja.
Plda:
UNIX, Oracle (kernel s fellet)
Sybase (op.-rendszerek, adatbzis-kezel, parancsrtelmez, gazdanyelvek)
Windows, Jet, Access
Windows, Microsoft SQL server (Sybase alap), Powerbuilder
1.2.4. Felhasznlk
A felhasznls mdjtl fgg csoportok:
Alkalmazsi programozk:
A megadott ignyek alapjn ksztik el az alkalmazs programjait.
Nem programoz alkalmazk:
A megrt programok alapjn lphetnek kapcsolatba a rendszerrel. A jogkrben, illet-
ve a hozzfrsben viszonylag bvek a lehetsgeik.
Men alapjn dolgoz felhasznlk:
A rendszeres tevkenysg vgzi. Elre programozott krdsekkel s ignyekkel for-
dulhatnak a rendszerhez.
59
INFORMCIS RENDSZEREK
2. Adatbzisok
2.1. Adatbzis
2.2. Adatmodell
Hls grf
60
INFORMCIS RENDSZEREK
61
INFORMCIS RENDSZEREK
Irodalom
Quittner Pl: Adatbzis-kezels a gyakorlatban, Akadmia Kiad, 1993
62
RELCIS ADATBZISOK
1. Relcis adatbzisok
A relci azt fejezi ki, hogy halmazok, vagy bizonyos elemeik kztt valamilyen ssze-
fggs ll fenn.
Relci az aritmetikai relcik szkebb csoportja is: pldul a<b.
A relcis adatbzisoknl az egyedek tulajdonsgai kapjk a hangslyt. Szemlletesen
1.1. Tbla
A tblnak sorai s oszlopai vannak. Egy sor, egy egyednek felel meg. Az oszlopok
nevei alkotjk a relci fejlct. Az oszlopokban lv adatok az egyed tulajdonsgai.
Ahhoz, hogy egy tblzat valban egy relcis adatbzis tblja lehessen a kvetkez
feltteleknek kell eleget tennie:
A sorokban lv oszlopok szma azonos.
Minden oszlopnak egyedi neve van.
A sorok celli csak egy rtket vehetnek fel.
A sorok egyrtelmen azonosthatk
A sorok s oszlopok sorrendje nincs megktve.
63
RELCIS ADATBZISOK
1.2. Kulcs
Egy tbla brmely sorhoz ltezik legalbb egy oszlopkombinci, mely azt azonostja
s meghatrozza a tbbi rtket. Ezeket azonost, a tbbit ler tulajdonsgnak nevez-
zk.
Elsdleges kulcsnak nevezik ezt a kombincit.
Egyszer a kulcs, ha az egy tulajdonsg.
sszetett kulcs, amennyiben tbb tulajdonsgbl tevdik ssze.
Alternatv kulcs, ha egyb tulajdonsgcsoportbl is kialakthat sorazonost.
Idegen kulcs a relci azon tulajdonsgcsoportja, mely egy msik relci egyedre hi-
vatkozik.
1.3. Normalizls
Tervezsnl a cl, hogy relciink redundancia-mentesek legyenek. Ehhez bizonyos fel-
tteleket kell teljesteni. A felttelek folyamatos kielgtst normalizcis folyamatnak
nevezzk. Az llapotokat nvekv szmmal jellik, s norml formnak hvjk (NF).
A funkcionlis fggsg formlisan reprezentlja az egyrtk tnyeket. Azt mutatja,
hogy egy tulajdonsg egy vagy tbb msikat egyrtelmen meghatroz.
1.3.1. 1NF
Egy tblzat adatai 1NF-ban vannak, ha:
- kielgti az elz tbla defincit
- minden sorhoz tartozik egyedi kulcs, melytl a tbbi tulajdonsg funkcionlisan
fgg
- kulcs tulajdonsg nem hinyozhat
1.3.2. 2NF
- 2NF-ban van, ha 1NF s a nem kulcs tulajdonsgok teljesen fggnek az elsdle-
ges kulcstl.
1.3.3. 3NF
- 2NF-ban van s a funkcionlis fggs csak az elsdleges kulcsokbl indulhat ki.
1.3.4. Magasabb NF
Gyakorlatban elegend az adatokat a 3NF-ban esetleg a hatkonysg rdekben
alacsonyabb formban elhelyezni. Bonyolult helyzetben, vagy elmleti szinten tovbbi
finomtsokra is szksg lehet. Ezeket 4NF s 5NF-nak nevezi az elmlet.
Megjegyzs: a magasabb NF-ra trekvs tbbsgben elmleti jelleg s ltalban a
hatkonysg rovsra megy.
64
RELCIS ADATBZISOK
Plda:
Adatbzis tervezse, normalizcis folyamat.
Egy cg dolgozinak, fizetsnek nyilvntartshoz szksges adatok:
Nv Cm Beoszts Osztly Fnk Pnz Dtum
Azonost: Nv, Dtum
A tblzat 1NF-ban van.
Problmk: adatredundancia, trlsnl egyb informcik elvesztse.
Nv Pnz Dtum
Azonost: Nv, Dtum, Idegen kulcs: Nv
A tblzat 2NF-ban van.
Problmk: kisebb adatredundancia, j osztly csak j dolgozval lehetsges (tranzitv
fggsg meglte).
Nv Cm Beoszts Osztly
Azonost: Nv, Idegen kulcs: Osztly
Osztly Fnk
Azonost: Osztly
Nv Pnz Dtum
Azonost: Nv, Dtum, Idegen kulcs: Nv
A tblzat 3NF-ban van.
Megjegyzs: az adatbzis kt trzstblbl s egy forgalmi tblbl ll.
65
RELCIS ADATBZISOK
2. SQL nyelv
SQL a Structured Query Language rvidtse. Valjban tbb ennl, egy teljes relcis
adatbzis-kezel nyelv.
2.2. Adattpusok
Ezen tpusokkal rhatjuk el a rendszer adatainak trolsi, illetve bels brzolsi md-
jt. Jellemz gyjt tpusok: numerikus, szveges, dtum jelleg, logikai. Ezek egyszer
tpusok, illetve kifel egyszer tpust mutat objektumok.
66
RELCIS ADATBZISOK
ALTER mdost
67
RELCIS ADATBZISOK
HELP segtsg
CANCEL megszakt
Plda:
Irodalom
Quittner Pl: Adatbzis-kezels a gyakorlatban, Akadmia Kiad, 1993
Stolniczki Gyula: SQL kziknyv, ComputerBooks, 1996
68