• Nem Talált Eredményt

A statisztikai adatbankok tervezésének egyes elméleti kérdései

N/A
N/A
Protected

Academic year: 2022

Ossza meg "A statisztikai adatbankok tervezésének egyes elméleti kérdései"

Copied!
21
0
0

Teljes szövegt

(1)

A STATISZTIKAI ADATBANKOK TERVEZÉSÉNEK EGYESELMÉLETI KÉRDÉSEI

ESZTERGÁR ZSOLT — WlLLlAM F. SMYTH

'_ ' Napjainkban világszerte 'fokozódóf'érdeklődés mutatkozik az információfel—d'ol—

l'gdzás területén az addtbanklvagy adatbázis—kezelő rendszerek irányában. Nagy információs rendszerek kidolgozása nehezen valósítható meg ezen' rendszerek

nélkül. '

Bár a téma ma már túl van azon, hogy kizárólag elméleti kutatások tárgya legyen —- sok helyen működnek hatékony adatbázis-kezelő rendszerek —. mégis érdemes lehet néhány elméleti probléma felvetése és vizsgálata egy speciális té—

makör, a statisztikai adatbázis-kezelő rendszerek vonatkozásában.

A feladat több irányból is megközelíthető, például a statisztikai információ- rendszerek kialakításának munkája során megoldandó feladatok vagy egy haté- kony feldolgozási rendszer kidolgozása érdekében megoldandó problémák szem—

pontjából.

A következőkben a statisztikai adatbanrkok tervezése során —— elsősorban a fel- dolgozási rendszer hatékonysága szempontjából —— felvetődő néhány problémát vizs-

gálunk meg.

AZ ADATOK SZERKEZETE

Adoton olyan a elemek (elemi információk) halmazát érthetjük, melyeket egy

d leírás és egy a előjeles érték egyértelműen specifikál. Igy:

az(dml)

A d értelmezése lehet például az 1969—ben Magyarországról Jugoszláviába

exportált kerékpárok száma és a hozzá tartozó a : 9153.

Általában, a tároló gazdaságosabb kihasználása érdekében, d helyett egy c kódot szokás használni. Igy

a : (c, CI)

A fenti példa szerint így a következőt kaphatjuk:

Cl,- : (CV: ch)

al. :: (1497209410669. 9153),

ahol c,— az 1. táblában leírt módon értelmezhető. a

(2)

ESZTERGÁR—SMYTH: ADATBANK TERVEZESE 1013

kitáblo

, § ! _, m _

Kód ! 113511);ng l Mérték Leírás

l , 1

cm l 1—1 [ 1 Mutatja, hogy egy számról van szó.

Ci2 l 2—4 l 497 Mutatja, hogy a termék: kerékpár.

c,-3 ; 5—5 ' 2 ; Exportra utal. ( Á

c,-4 [ 6—8 094 ' Mutatja, hogy a szállító ország Magyarország]

c,v5 I 9—11 106 l Mutatja, hogy Jugoszláviába s'zállitják.

ció § 12—13 69 ; Mutatja, hogy a szállítás éve 1969.

: i l

A c kódot általában c, szubkódokra szokták osztani. Általában célszerű a; kó;

dokat úgy tagolni, hogy a kód szerkezete azonos legyen minden c,- számára, fazaz"

c,-,- és ch, a c kódnak mindig ugyanarra a (i-edik) tagjára utaljon mindeni és h számara. Néha azonban ez az egyszerűsítés nem oldható meg; különösen akkor nem, amikor fontosnak látszik, hogy a c kódszám számjegyeinek a száma minél kevesebb legyen (még a fenti rendkívül egyszerű példában is c-nek 13 decimális

számjeggyel kellett rendelkeznie). ' '

Tételezzük fel, hogy az m számjegyből álló c kód Mm, számjegyből álló c,- particióból áll, úgyhogy

M

_,

m: ám,-,

fel

és minden c,-

Ci:(ci1'ci2""'ciM)

formában írható fel, ahol természetesen minden cí,- pontosan lm,— számjegyet tar- talmaz (j :: 1, 2, . . . , M).

AZ ELEMEK REKORDOKKÁ SZERVEZÉÁSE

Vizsgáljunk meg néhány lehetséges módot az elemeknek adatbázis1 rekordokká

szervezésére. A legegyszerűbb módszer természetesen az lenne. hogy úgy definí—

áljuk a rekordokat. hogy minden egyes r,- rekord2 egy és csak egy a; elemet tartal—

mazzon. Legyen N az adatbázisban levő elemek száma. Ebben az esetben N,,- rekordhoz jutunk (í :: 1, N). amely rekord—ok mindegyikéhez egy c,— kúlcsf)

tartozik. ,

Ennek a módszernek az a nagy előnye, hogynem kell semmiféle megkötést tenni

az elemek közötti kapcsolatokat illetően (eltekintve a kódolási rendszerben levő meg-kötöttségektől). így lehetőség nyílhat arra, hogy ezek a kapcsolatok valamely

flexibilis és általános módon alvisszanyerés igényeinek megfelelően alakíthatók,

illetve létesíthetők legyenek. '; ' ' ' ' " '

Egy másik egyszerű módszer szinténdtigyelmet érdemel. Általában az ilyen

típusú adatbázisok esetén az információkat—évek szerint kódolják; fenti példánk is ilyen. Azt a módszert is választhatjuk, hogy; eltávolítjuk kódszámunkból az évre

1Adatbázis az egy információ-rendszer tartalmát képező adatok szervezett halmaza.

?Rekord az egy jelenségre vagy folyamatra! vonatkozó elemi információk halmaza.

3 Kulcs a rekord olyan adata, amely a rekord azonosítására is felhasználható.

(3)

1014 , ESZTERGAR ZSOLT—WILLIAM F. SMYTH

utaló két számjegyet. és olyan rekordokat szerkesztünk. amelyek az utolsó - mondjuk - 10 évre vonatkozó információkat tartalmazzák:

. .

'i : (Ci' (ho' gi1' "" Gw)!

ahol c; nem más, mint c,— az év kódja nélkül. és :: aik -k adják az évenkénti a, mennyiségeket oly módon, hogy am a folyó évi, Cin az előző évi stb. mennyi—

ségekre utal.

Tételezzük fel, hogy a a", értékek egyike sem nulla (k no,.n, 9), továbbá tételezzük fel. hogy c 12 számjegyből, c, pedig 10 számjegyből áll, akkor ez a mód—

szer feltétlenül tárolómegtakarítást eredményez. Minden r' (12 — 2) -l- 10 . 10 ::

110 decimális számjegyet tartalmaz, és 10 r,- -ne'k felel meg, amelyek együttesen

10 (12 —l- 10) : 220 decimális számjegyet tartalmaznak.

Más szóval az r' rendszer várhatólag kb. kétszer olyan hatékony, mint az !

rendszer, ami a tároló kihasználását illeti. feltéve, hogy többségében vagy

Mao (k:0.1,....9)

vagy

gikeo (k:0,1,...,9)

Ha átlagosan a a", -k fele zéró és fele nem zéró, a két módszer durván ekvi- valens tároló igényű.

Más meggondolásokat is kell azonban tennünk. Az r* módszer használata

arra kényszerít bennünket, hogy különlegesen kezeljünk olyan adatokat, amelyek

több mint 10 évvel ezelőttre utalnak. Szükség van valamely évenként futtatandó

programra, amely az évlistákat egy pozícióval ,.eltolja", és azokat az adatokat,

amelyek így kitolódtak a rekordokbál. egy back up file4-on tárolja. Továbbá, két-

ségtelen, hogy az r* rekordok használata esetén gyakran fogunk olyan informá—

ciákat tárolni, amelyekre — visszanyerés esetén — nincs szükségünk. Például. ha

egy csak a Clo- (11, Clz- ag -- azaz az utolsó négy évi —— mennyiségeken alapuló táblázatot kell készítenünk. információink 60 százalékát feleslegesen tároljuk, és elvész az az előny, amelyet az r* módszer a tárolásban nyújt. Ennek a problémá- nak fontos'és lényegbevágó volta természetesen sok egyéb tényezőtől függ. pél- dául a rendelkezésre álló közvetlen elérésű tárolóktól, a visszanyerésnél alkalma- zott módszerektől stb.

Egy további problémát rejthet magában az r* módszer. amely a file update5—tel

kapcsolatos. Általában az update csak a legutóbbi évre vonatkozó adatokat érinti.

és viszonylag ritkán van szükség arra, hogy korábbi évekre vonatkozó adatokat

is módosítsunk. Más szóval csupán a gy,, mennyiségeket kívánjuk módosítani és a a", an.. .., c),—9 adatokat változatlanul kívánnának hagyni. Szekvenciális6 update esetén az r* módszer használata (110/22 :) 5-szörös írás— és olvasástöbb-

letet jelent, összehasonlítva azzal az esettel. ha csupán az rio: (C;. a,b) rekor- dokat módosítanánk. Másrészt viszont az r' módszer használata random7 file mó-

* Back up file a "történeti" file. amelynek alapján a ille egy korábbi állapota rekonstruálható.

File a hasonló eseményekre. folyamatokra vagy objektumokra stb. vonatkozó vagy hasonló alakú rekordok halmaza.

5 Update a ..naprakész"-szé tétel. Az a tevékenység. amelynek során a tárolt adatokat aktuális ada-

tokkal helyettesítik. ,

" Szekvenclálís feldolgozásnál a file minden egyes rekordját sorban egymás után feldolgozzák. mo- doslt ők.

17 Random feldolgozósnál a file-nak csak bizonyos rekordlalt dolgozzák fel; előfeltétele. hogy közvet- len tárolón legyen a file.

(4)

ADATBANK TERVEZÉSE 1015

dosítás esetén lehet. hogy nem jelent több írást és olvasást (ez ugyanis ebben az esetben a blokkméret és nem a rekordméret függvénye), és bizonyos. hogy átla—

gosan nem jelent több fejmozgást8 vagy kivárási időt sem; viszont többszörös idő- igényt jelent a file mágnesszalagra történő kiírása.

Fenti meggondolások alapján kísérletezhetnénk:

1. az r-típusú rekordok mágnesszalagos update rendszerével, ahol a különböző évekre vonatkozó adatok különböző szalagőkon lennének (ez bármely speciális back up rendszer létét is szükségtelenné teszi):

2. olyan adatbázis részhalmaz képzésével, amelyek r*-típusú rekordokat tartalmaznak, amelyeknek hossza (az évek száma) a visszanyerési igényektől függ.

Egy ilyen rendszernek is komoly hibái lehetnek. Előfordulhat, hogy az évek sze- rinti osztás nem kielégítő: gyakran havonkénti vagy negyedévenkénti adatszolgál- tatás-ra alapul a rendszer. és lehetőség kellene az ilyen adatok kezelésére és mó- dosítására is az adatbázisban. Továbbá. az évek nem szükségképpen ikezdődnek és végződnek ugyanazon a napon: szükséges lehet minden egyes év kezdetének a specifikációja egy extra kód segítségével, amelynek használata viszont jelentősen módosíthatja a fenti gondolatmenetet,

Lehetséges. hogy az input adatok update céljából történő rendezéséhez, vala- mint a mágneslemezen tárolt részhalmazok előállításához szükséges idő ellensú- lyozna' egy ilyen megközelítés lehetséges előnyeit. Az erre a kérdésre adható vá- lasz az idő, a költségek, a rendelkezésre álló tároló _és az adatok mennyiségének függvénye.

Végezetül nem szabad elfeledkeznünk arról, hogy igen sok más. bonyolultabb

mód is lehetséges az elemi információk rekordokba szervezésére.

KAPCSOLATOK A SZUBKÓDOK K'O'ZÖTT

Vizsgáljuk meg, hogy milyen relációk létezhetnek egy tetszés szerinti c] szub-

kód értékei között, valamint vizsgáljuk meg, azokat a kapcsolatokat. amelyek kü- lönböző ci, ck, c, szubkódok értékei között fennállhatnak. Minden esetben fel-

tételezzük, hogy azok a szubkódok, amelyeket a tárgyalandó kapcsolatok közvetlenül

nem érintenek, állandók (konstansok).

A kapcsolatok legáltalánosabb és legegyszerűbb formája hierarchikus termé- szetű, és egy bizonyos c,- számára az aggregáció képzésének módjára utal. (Lásd az i. ábrát.)

Itt a 010 kódnak megfelelő mennyiség a 006 és 008 kódoknak megfelelő meny- nyiségek összege. feltéve, hogy valamennyi más kód azonos stb.

Viszonylag könnyebben ikezelhető rendszerhez jutunk, ha a hierarchikus kap-

csolatokat fa formában tudjuk feltüntetni, azaz ki tudjuk küszöbölni az olyan

eseteket, mint példánkban a 002, ahol a mennyiség két különböző ,,szülő"9 meny- nyiséghez (006 és 007) adódik hozzá. Meg kell jegyezni, hogy ilyen esetek a való-

3 Fejmozgás a mágneslemeznél az író-, illetve olvasóíejek fizikai elmozdítása, hogy a kívánt tároló- rész írása, illetve olvasása végrehajtható legyen.

Kivárásl idő az az idő, amely a kívánt tárolórész olvasó. illetve iró pozícióba fardulósához szükséges.

9 Hierarchikus szerkezetekkel kapcsolatosan általánosan elterjedt a "szülő". "testvér", "gyermek!—'

analógia használata. '

(5)

1016 ESZTERGAR ZSOLT——WiLLiAM F, SMYTH

ságban nem is túl gyakran fordulnak elő. A fenti szerkezet faszerkezetűvé törté- nő alakításának viszonylag egyszerű módja, hogy elegendő számú üres csomópon- tot iktatunk be, amelyek biztosítják az ilyen csomópontok többszörös kapcsolatát.

(Lásd a 2. ábrát.)

3. szín/

2. sth/

7, lsz/W

ű. sz/nf

002 0 72

003 073

009 0 79

2. ábra

Példánkban a hierarchikus struktúra két különböző fa segitségével ábrázol—

ható. _

A különböző feldolgozások során általában szükség lesz arra. hogy rendsze—

rünkben lentről felfelé csakúgy. mint fentről lefelé tudjunk közlekedni (elemi ada—

tokból aggregált adatok képzése. illetve aggregált adatok elemi adatokkc'r történő

lebontása). Ennek egyik lehetséges módja. hogy minden egyes csomóponthoz listá-

kat tárolunk. (Lásd a 2. táblát.)

Nyilvánvaló, hogy az alárendelt csomópontok listájának mérete a fa szerkeze- tének függvénye; a gyakorlatban sokszor szükség lehet arra. hogy elég jelentős számú (10 vagy akár 15) csomópontot tüntethessünk itt fel. Célszerűnek látszik te- hát meggondolni, nincs-e valamilyen lehetőség arra, hogy csökkentsük a szüksé—

ges tárolókapacitóst. A 2. táblából azonnal szembetűnik, hogy az azonos csomó- pont és az alárendelt csomópontok kölcsönösen kizárják egymást. A csomópontok—

hoz rendelt listák tehát egy taggal kevesebből állhatnak, az alárendelt csomópont—

rovatban tüntethetjük fel az azonos csomópontra vonatkozó információt is.10 Továb—

bi tc'rrolómegtakaritást tesz lehetővé a bináris fa szerkezetté való alakítás.

1" Az azonos és alárendelt csomópontlista egyesitésének problémája nem oldható meg ilyen egyszerűen a gyakorlatban: itt pusztán arra kívántunk utalni. hogy megoldható. Az ezzel kapcsolatos meggondolások

részletesebb kifejtése meghaladná e tanulmány kereteit.

(6)

ADATBANK TERVEZÉSE

1017

2. tábla

, ..Föl'éren— ! ,,Alárend !" Azonos Csomopont d::gpgzg' , csomóponeták csomópont

001 ... 006 3 009 _ ..

002 ... 006 l —- 012

003 ... 008 ; ._ 013

004 ... 008 l 005 ... 008 ' -—

006 ... 010 001, 002, 007 ... —— 012, 013. 019 008 ... 010 , 003. 004, 005 009 ... 001 ; -- 019 010 ... l 006, 008 -—

012 ... 007 002 013 ... 007 1 - 003

019 ... 007 § _ 009

l

A bináris fa szerkezetté alakítás a vertikális kapcsolatoknak az alábbiak egyi- kével történő helyettesitésével érhető el:

— ,,testvér"—kapcsolatok (jobbról balra) olyan mennyiségek között. amelyek összeadód- nok,

-— ,,leszármazott"—kapcsolatok a legbaloldalibb ilyen mennyiség és a szülő mennyiség között,

— ,,ős"—kapcsolatok a .,szülő" és legjobboldalibb gyermekek között.

Példánkból a 3. ábra szerinti eredményt nyerjük.

—— 755/1434 //.*—-.___k ——— [má/"mazo"

/ ______ _ ... a;

o

3. ábra

Meg kell jegyezni. hogy minden egyes csomópont (a legfelsőt kivéve) vagy egy testvér. vagy egy leszármazott kapcsolatból ered. de nem mind a kettőből egy- szerre; ettől függetlenül a csomóponthoz tartozhat egy őskapcsolat. Alakítsuk át ábránkot úgy, hogy a megszokottabb bináris fa reprezentációt nyerjük. (Lásd a 4.

ábrát.)

A 4. ábrán látható, hogy egy jobb oldali ág utal az összeadásra. és a bal ol- dali ágak mutatják. hol tárolódnak ezek az összegek. Nézzük ezeknek o bináris fáknak a tárolóigényét (Lásd a 3. táblát.)

Látható, hogy ennek a szerkezetnek a tárolása sokkal kisebb tárolókapacitást igényel, és az ezzel járó feldolgozási időtöbblet úgyszólván teljes mértékben el- hanyagolható.

(7)

1018 ESZTERGAR ZSOLT—WILLlAM F. SMYTH

3. tábla

Jobb. ifiet— *

ve bal Ós cso- Azonos C'OMÓPOM csomő- mőpont csomópont

pont _,"

: 006 009

4— 001 012

: 008 -- 013

—l— 003 --

—f— 004 -- -—-

: 010 002 -

-- 013

d- 006 005 --

: 001 ; 019

- 008 -—

%- 019 —- 002

% 012 003

: 007 009

4. ábra

Befejezésül két megjegyzést az egyszerű hierarchikus kapcsolatok feldolgozó- sót illetően.

1. A szubkódok közötti hierarchikus kapcsolatok vizsgálata során az első ób-

rón bevezettük a szint fogalmát. Az alábbi rekurzív definícióval adható meg egy. a hierarchikus rendszerben elhelyezkedő kódhoz tartozó szint.

A kód 0 szintű, ha nem tartozik hozzá ,,ős" csomópont. A csomópontnak i) 0 szintje van, ha van olyan i—1 szintű kód. de nincs olyan i— 'l—nél nagyobb szintű kód. amelyhez tartozó mennyiség közvetlenül az e kódhoz tartozó mennyiséghez

adódik.

A szint fogalmat célszerű felhasználni a feldolgozások során annak biztosító—

sóra. hogy az összegezések a megfelelő sorrendben végződjenek: azaz a szintek

növekvő sorrendjében.

2. Statisztikai adatokkal foglalkozunk, amelyek input adatok is lehetnek, de nem feltétlenül azok. különböző adatszolgáltatóktól származhatnak és lehetséges.

hogy nem egészen pontos adatok. így megtörténhet, hogy a bináris fa által definiált

(8)

ADATBANK TERVEZESE 1019

kapcsolatok nem minden esetben bizonyulnak igaznak. Sőt, inkább azt lehetne mon- dani, hogy ezek csupán ritkán vagy csupán megközelítőleg igaz kapcsolatok.

Tételezzük fel, hogy A adatszolgáltatótól az alábbi értékeket kapjuk:

(1003 : 1710, (7004 : 92,

ugyanakkor B adatszolgáltató szerint

(1005 : 2600. 9003 : 4450.

Ekkor azt kapjuk, hogy

0003 "l— (14—04 —l* Chios : 4402,

míg (7008 —-——— 4450, a két érték között mutatkozó differenciára (48) nincs magyará- zat. Vagy tegyük fel, hogy az A adatszolgáltatótól egyáltalán nem kaptunk infor- mációt; ebben az esetben

%% "l* (1004 l 0005 :: 2600

értékhez jutunk, amely ebben az esetben 1850 különbséget eredményez. Vagy pedig ha B adatszolgáltatótól nem kaptunk információt, a

(7008 : (7003 'l— (7004 : 1802

értékhez jutunk. Általában véve azt lehet mondani, hogy a rendszer egyik legfonto- sabb outputjának olyan elemzésnek kell lennie, amely összehasonlítja a ténylege-

sen jelentett értékeket azokkal, amelyeket az aggregáció—hierarchia határoz meg.

Ezek a különbségek igen fontos tájékoztatást nyújtanak a lehetséges hibaforrások- ról. és módot nyújtanak arra, hogy a megfelelő kiigazításokat végre lehessen haj- tani. Ezzel kapcsolatban felmerülő kérdés: érdemesebb—e

— tobb tárolóterületet felhasználni, és a nem input aggregált adatokat csak akkor ki—

számolni, amikor azokra szükség van, vagy

— takarékoskodni a feldolgozási idővel, és a nem input aggregált adatokat egyszer és mindenkorra kiszámolni a file update eljárás melléktermékeként?

A választ erre speciális elemzések adhatják meg. Meg kell azonban jegyezni, hogy a második változat általában nem hajtható végre egy mágnesszalagos update eljárással; továbbá, ha gyakori update-re kell számítani. lehetséges, hogy jelen- tősen több feldolgozási időt igényel, mint az első változat; másrészt viszont a visz-

szanyerési időt jelentősen csökkentheti.

Vizsgáljuk most meg röviden a szubkód értékek közötti általánosabb kapcso- latokat. Egy példája az ilyenfajta kapcsolatoknak az index. Tegyük fel, hogy a t évi kerékpárgyártást a a,- (t) és a kerékpárok előállításához szükséges munkaárákat a ak (t) reprezentálja. A .,kerékpárgy—ártási index"

mü) : ff/(Ú/(fk (f)

formában adható meg. Hasonló természetű kifejezésekhez jutunik, amikor a meny—

nyiségeket standard egységekre számítjuk át. Sokkal összetettebb kifejezésekhez

jutunk. ha egy termékre vonatkozólag vizsgáljuk a t—1 időszak alatt előállított mennyiségeket, és következtetéseket vonunk le t időszakra. Általában ilyenkor

ajak—dja" (t), a" 0—1). a," (t), ama—i)]

(9)

1020 ESZTERGÁR ZSOLT—WiLLlAM F. SMYTH

alakú formulához jutunk, ahol az f függvény általában a paraméterek összegeinek,—

különbsége—inek. hányadosainak és szorzatainak valamilyen kombinációja, és ahol azokról a szubkódokról, amelyek nem szerepelnek, feltételezzük, hogy azonosak

minden paraméter számára.

Az ezekkel kapcsolatos leglényegesebb döntés az lehet (és ez nagymértékben függ attól. hogy milyen bonyolultnak tételezzük fel a szubkód értékek közötti kopf csolatokat), hogy vajon érdemes-e vagy nem kifejleszteni olyan kalkulust vagy nyelvet. amelynek segítségével ezeket a kapcsolatokat ki lehet fejezni? Ez igen gyak—

ran érdemesnek bizonyul, különösen a visszanyerési műveletek egyszerűsítése és él—

talánosítása szempontjából.

AZ ADATBÁZlS UPDATE

Az adatbázissal kapcsolatban különleges természetű döntésekkel kell szembe—

néznünk, amelyek olyan rendszer-paraméterek függvényei, mint

— az adatbázis mérete.

-— a számitógép konfigurációja (az on-line hozzáférhető. közvetlen elérésű tárolókapa- citás. a rendelkezésre álló mágnesszalagegységek, a rendelkezésre álló központi memória, tároló),

—- a rendszert milyen válaszidőre kell tervezni (3 másodperc? 2 nap?),

— az update ciklusok gyakorisága és természete.

-— milyen fokú rugalmasságot várnak el a rendszertől a táblázat-generálás, a szubkó- dok közötti kapcsolatok stb. tekintetében.

Általánosságban azt lehet mondani, hacsak nem nagyon biztos, hogy a rendel—

kezésre álló mágneslemez vagy —dob kapacitása kielégítő - és kielégítő is marad — a tervezett adatmennyiség kezeléséhez. mágnesszalagos rendszert célszerű tervez- ni. A szóban forgó rendszerek esetében általában lehetséges, és ténylegesen cél—

szerű, hogy az adatok update—je évenként történjék (vagy ha szükséges. fél—, illet- ve legfeljebb negyedévenként): ez mint láttuk. lehetővé teszi. hogy egy mágnes- szalagos update esetén tárolóhelyet lehessen megtakarítani, és nagymértékben csökkenti a mágnesszalagos update-időt.

Az 5—9. ábrákon öt különböző update—rendszer vázlata látható. A 4. táblában megkíséreltük összehasonlítani az öt változatot. feltüntetve ezek előnyeit, hátrá—

nyait.

4. tábla

§ !. * n. ; m. 1 iV. ? v.

Jellemző l ,, V, __3 _, s _ ' _1 , ,, ,.,_ __V

l változat jellemzőinek értéke

' l l l l

Szükséges tárolókapacitás ... l kevés ? kevés ' kevés % közepes nagy Update-idő ... l kevés l közepes nagy l; kevés % kevés

Szükséges-e rendezni? ... l igen ! igen igen l nem nem

Részholmazt kell—e generálni? ... l igen l igen : igen igen % nem Adatok aggregálása ... l * l * ; * ** l ***

Rekordméret elemekben ... i l 1 i )1 i jopcionális

Ori-line lekérdező rendszerrel ( [ l % %

kompatibilis—e? ... ' részben részben _ részben 5 részben l igen input—adat azonnal visszanyerhető—e? nem ; nem : nem ! nem 1 igen

4 l l

* Részhalmaz—generálással együtt.

" Részhalmaz-generálással vagy update—tel együtt.

"* Update-tel együtt.

(10)

ADATBANK TERVEZESE 1021

[Vál/yzat Maynessza/agás upda/e éve/Wmi

Ifj/Mások Rendezés -. WWW És (íj adata/( ([ Műszer/hl) !i/Jyof

? (ha)

!

!

H/baw'zsyá/a/

. WW

! ! WW f/ÖWJÉ'ZVEJHEM

, rá/fazo'm/MaWX/

, . ÉJSZ/b/fl' szer/hl)

Ú'lbí/IJ/J [JJ/Újak- ü Háhá/gk

MüM/maz Mmmm/es

gene/Wés "%%"

M/áza/ymenáűs/m /€ÉÉPFEIÉ.$'Ú£Z s/á, e/á'X'áslí/m ff'EÁ'ű/W': ""

ie/fm

5. ábra

//. l/á/fpzaí Manassze/agas y/ada/f neyyedéumkín/

m/Ml/

(áig)

( / I.)"[á' ,, , . . ;

—,—-—,——- Fenz/ezes A Mammkinf/ [;r !- fű,,a-í/iimk)

__ ra,/20750; (Máslak és WWW _ ada/ááz/Lv-fyye- Maki

" "f a '? " híd szep/m WW Liz/' mi ma) am

§ (hű) / (M) ,

§ : [40313 x

! ________.., ' (Gyk/Vivát)

Mawksyá/a/ *

%

l

/ /

Hal/life !/ a'afe AW/j ' , .

l ; // ;: ; Ida/Mm .

' / L———————— níxzúa/fzvazyenfrá/ás,

( / min/L az [Vá/fazaf/iá/

// lla/újak

(f:!)

ami

ad;/bizi: .

Pá) :

(ali..,/iíszaí/'J)

Meka/vo':

lelem

6. ábra

Néhány dolgot hozzá kel! még fűznki ezekhez a rendszertervekhez. Meg kell jegyezni például, hogy az I., a H. és a III. változat csupán abban különbözik egy—

(11)

1022

ESZTERGÁR ZSOLT—WILLIAM F. SMVTH

mástól, hogy más-más időszakonként történik az update. Az !. változ—at több még—-

nesszalagot használ. mint a III.. de gyorsabb az update idő; másrészt viszont a

III. változat általában kevesebb szolagtekercselési időt igényel a részhalmaz-

generóció idején.

///,1/á/fozat Ma'ynessza/agas [ada/e dakádankín/

___r Ifj/Mások Raginak Muflka- , fú ,. [Vi

gyámi/ak (MMM/vki [ága 3?) módos/fás — ""

9 M, % ,) fr:; fi)

l / mya/m

! (ha 5 )

, // ,!) '

[lán/Mila! // mi. ,

! ütünk/%m //

! /

. . Máá/' ila/áíz/if fészke/maz

lib / / '*— ——

/ a /s a [4de (f301 gear/Wés m/n/ szí rá/faza/ná/

/ /

/ "akard:

/ 70 elm

WZ

Jász/(7

'019

7. ábra

Változások

[._._.—....

IV. Vá/fazat Érenkánh' randa/n mágnes/emez updafe

nem vál/azászuúkj—

(dekás sz'/bf szer/bf)

._.. !

ís (íj ela/ak

? (ha)

l/ibal/ízsyá/af

!

!

* Míg az : gre icia'k—afa'íbí IZ] , Én; ism/Jamal ,

ada/ám; reszúa/mazyenef'a'i/Zí rá:;zekín/ kagylót/ik e/.

yá/ zalv

ll pg ! (agár/átm—

U/w'afe ! ?m- JfÉseé; adal— §?)

- za bázis update ? '

Időszakankénfi ' ,:

mágnes/mer MMV ' sza/sg dump ha

Ináfáa'zís fm"— fáma/maz

generá/ás

'Rész/la/maz-

,a! , -— )?Myzafya/m'las/íaz

— — '

it'/"W Miriaziá'áezs/ó. '

e/íkt'sz/fre veka/'a':

Mem 8. ábra

(12)

ADATBANK TERVEZESE 1023

V, yá/faza/f Ta'/jes mágnes/emez gpg/afa

7 feka/'a':

? e/em

Waf— űá/ázafyener'á/ásbaz,

! így;/3355; Mm ""—*Mm——* /eX/ár0'ezésúez, Má

, e/íX'ÁSZ/M'

l

Míawksyá/af l

l

Agnegáa'asza— MM? ra'/fűzi

""! '/a neniw'sés szuákóo'ake's

—— idő"/Will?? SZM szám;/)

MI mém;—

Iayaf 9. ábra

A IV. változat az !. (mágnesszalagos) változat mágneslemezes változata, és je- lentős mennyiségű mágneslemezes tárolót igényel, de nem biztos, hogy teljes update ideje kisebb lesz, mint az !. változaté (beleszámítva a rendezési időt is).

Az V. megközelítés csak abban az esetben használható. ha az egész adatbázis a rendelkezésre álló on-line mágneslemezes tároló kapacitásán belül van. Megjegy- zendő azonban, hogy az első négy megközelítés mind azon a feltételezésen alap—

szik. hogy elég nagy adatbázis—részhalmazt lehet definiálni és tárolni. amely külön—

böző összefüggésekben is felhasználható. ezáltal indokolt vállalni a generálásuk- kal járó többletet.

Nem tettünk kísérletet arra. hogy összehasonlitsuk a random vagy indexelt szekvenciális (vagy egyéb) file szerkezetek használata esetén adódó különbségeket.

Végezetül arról kell beszélnünk, amelyet itt ,,részhalmaz-generáció"-nak nevez—

tünk.

Az adatbázis-részhalmaz egy direkt szerkezetű elemekből (vagy elemek cso—

portjait tartalmazó rekordokból) álló file, amely alkalmas arra, hogy bizonyos fajta lekérdezésekhez, illetve bizonyos típusú jelentések vagy táblázatok készítéséhez tartalmazza az összes szükséges adatot. Feltételezzük, hogy ez tartalmazza az ősz—

szes aggregált adatot vagy egyéb számított információt. amely a kódok közötti kapcsolatokon alapszik, elsősorban, mert feltételezhetően a gyűjtött adatokra gyak-

ran van szükség a táblázatokban, másrészt mert aggregált adatok előbb történő

kiszámolásából a rendszert on-line lekérdező rendszerekkel kompatibilissé lehet tenni. Megtörténhet azonban, hogy a rendelkezésre álló. általában korlátozott mágneslemez- kapacitás nem teszi lehetővé az aggregált adatok tárolását (a gyűj- tött és egyéb számitott értékeknek az eredeti input-adatokhoz viszonyított aránya igen nagy — gyakran több mint 100 százalék — lehet).

(13)

1024 ESZTERGÁR ZSOLT—WILLIAM F. SMYTH

A felhasználó által vezérelt két definiáló eljárás segitségével lehet ekkor adat—

bázis—részhalmazt képezni. Ezek:

—- a részhalmaz—definíciók, amelyek standard formátumban rögzítik azokat a kódokat és kódkombinációkat. amelyeket a részhalmazba bele kell foglalni, és amelyek esetleg a részhalmaz—rekordok formátumát és kulcsát is meghatározzák,

-— az aggregáció—könyvtár, amely részletesen specifikálja az aggregációk hierarchiáját a különböző szubkódok számára és még általánosabban esetleg az egyéb — a szubkódok között fennálló —-— numerikus kapcsolatokat is. (Az aggregáciő—könyvtárral kapcsolatban meg- jegyzen)dő, hogy felhasználható az egyes kódokhoz tartozó alfabetikus információk tárolá—

sara is.

VISSZANYERÉS

A rendszerrel szemben támasztott információvisszanyerési kívánságok speci- fikálhatják vagy

1. a c kódok egy sorozatát. vagy a Ci szubkódok sorozatainak kombinációját, vagy 2. a :; mennyiségek egy sorozatát. vagy

34 mindkettőt.

Más lehetőségek nincsenek. Ebben a részben azokkal a file szerkezetekkel fog—

lalkozunk. amelyek segítségével egyszerűsíthető és gyorsabbá tehető az információ- visszanyerés. Nem térünk ki e részben a visszanyert információ rendezésével, fel—

dolgozásával, formázásával kapcsolatos problémákra, mindössze annyit jegyeznénk meg. hogy ezek a további operációk általánosíthatók olyan mértékben. hogy csupán paraméterek segítségével — amelyeket egy általánosított program értelmezni képes -- lehetséges a különböző táblázatok előállítása.

Vizsgáljuk meg először az első lehetőséget: a statisztikai táblák viszonylag nagy tömege (évi jelentések stb.) a kódok és szubkódok alapján történő vissza—

nyeirésre támaszkodnak. Ezekben az esetekben olyan információkkal foglalkozunk.

amelyeknek a hozzájuk rendelt kódja bizonyos feltételeket elégít ki; ha az így meghatározott információ létezik. minden bizonnyal fel is használjuk. Ezeket a kö—

rülményeket figyelembe véve. a szükséges file szerkezetnek olyannak kell lennie.

hogy

-— segítségével a lehető leggyorsabban lehessen elérni azokat a rekordokat. amelyek- nek kulcsai kielégítik az adott feltételeket,

— minimalizálja a nem létező rekordok visszanyerését (az információ nem létezik, vagy értéke zéró).

Meg kell jegyezni, hogy mindkét fenti cél elérhető indexelt szekvenciális. sőt szekvenciális file szerkezettel,

— ha az adatbázis részhalmazból előállítandó táblázatokhoz a részhalmazban levő rekordok nagy százaléka szükséges. *

-— ha a táblázatok rendezettsége megfelel a file rendezettségének.

Néha ezeket a feltételeket .ki lehet elégíteni, de sokkal gyakrabban nem. Ha

vaiamilyen fajta random file szerkezetet tekintünk, fenti probléma elsősorban arra korlátozódik, hogy valamilyen módszert találjunk a nem létező rekordok vissza—

nyerésére történő kísérletek kiküszöbölésére. Ennek egyik módja olyan táblázat előállítása és tárolása lehetne, amely a (: skód által felvehető összes lehetséges ér- ték közül a nem létezőket definiálná. Abban az esetben, ha egy ilyen tábla tárol- ható lenne a központi memóriában. ez egy egyszerű (és gyors) módszert eredmé-

(14)

ADATBANK TERVEZÉSE 1025

nyezne, amelynek segítségével minden egyes kulcsra vonatkozólag meg lehetne határozni, hogy létezik-e hozzátartozó rekord vagy nem; így pontosan annyiszor kell csak hozzáférni a tórolóhoz. ahányszor szükséges.

Milyen méretű is lehet ez a kulcstóblózat? Tegyük fel, hogy c kód m szóm—

jegyből óll. Ekkor N: 10'" egymástól különböző kód lehetséges, és legyen n a ténylegesen használt kódok szóma. Tóblózatunk egy-egy tételt fog tartalmazni min—

den egyes folytonosan hasznalt értéksorozat első és utolsó tagjához tartozóan.

Feltételezve, hogy az összes kombináció egyforma valószínűséggel fordulhat elő, annak a valószínűsége, hogy k ilyen folytonos értéksorozat lesz a rendszerben

nk : lZZJllN'ZMl/ll'l'

és a sorozatok számát pedig

n_1 " N'" l N

E (sorozat) : ; kpk: Z klz—lll rlz—l—llf/lnlz

ll Z F_xl 324: l..

M :

x_ x: ll

_ _ :

F_ *2 ll *: __! ll

) kz!

SNLD—tln—l [n'1][N""]:

[2] [(ISO k k

Eszerint. ha n elég kicsi N—hez viszonyítva -— és az esetek nagy többségében így is van —— tóblózatunkban várhatólag 2n tételt kell tárolni; várhatólag minden n kód sorozatot ,,hézag" választ el a másiktól. Még ha ezt a tényt ki is akarnánk használni oly módon. hogy tóblózatunk egy tételt tartalmazzon hézagonként —- vagyis n tétel lesz a tóblózatunkban —, ebben az esetben is tóblózatunk mérete m - n karakter lenne. Ez gyakorlatilag kezelhetetlenül nagy méretű táblázatot ered- ményez. (Gondoljuk csak meg azt az egyaltalan nem elképzelhetetlen esetet, amikor m : 10, n :: 50000.) A 10. ábra az E (sorozat) és az n összefüggését mu—

tatja.

Természetesen nem minden kombináció egyformán valószínű; a felhasznált értékek 1—nél hosszabb sorozatokba csoportosíthatók. Csak abban az esetben, ha erre a csoportosítósra mód van. válik lehetségessé a kulcstóblózat használata: K csoport esetén a táblázat 2K'M karaktert fog tartalmazni, és m :: 10 esetén az esetek nagy többségében biztosak lehetünk abban, hogy K S 500.

A problémának egy másik megközelítése lehet az. hogy több kulcstóblózatot Iétesítünk, amelyek mindegyike egy bizonyos szubkódra vonatkozik. Azokban az esetekben, amikor a szubkódak értékei hosszabb sorozatokban csoportosíthatók.

ez 'az N lehetőségek nagy részét kiküszöbölné, de nem küszöbölné ki azt a lehető—

séget, hogy nem létező rekordok elérését kelljen megkísérelni. Ennek elkerülése

céljából szükség lenne arra, hogy a szubkód-tóblózatokat összekapcsoljuk.

A Statisztikai Szemle

(15)

1026 ESZTERGAR ZSOLT—WlLLlAM F. SMYTH

Az összekapcsolt szubkód—táblázatoknak az alábbi formájú feltételeket kell ki—

fejezniökz—M

(011 S Ci í bu) V (012 S Cl í bmw V (Gini §; Ci Sbiml (021 S Cz S bm) V (022 S Cz S 522) V V (Ulm S 02 S bzna)

(am S CMS bM1)V(aM2 § CM S bme) V... V (OMnMS CM S anM)

Ez láthatóan túl sok tárolót igényel, és túlságosan bonyolult is, ezenkivül igen sok update problémát vet fel. Mindezeket összevetve, valószinűleg nem érdemes ezzel a módszerrel kísérletezni.

E (so/mai)

7 - :

7 fil/2 JV

10. ábra

Talán általánosabban használható megoldást eredményezne — némi tároló-

kapacitás feláldozásával —- minden rekord két további kulccsal való kiegészítése:

K*

(Ci—, C2*, . . . , C,w*)

Kt

ll ll

(ch, ez," . .., CM*),

ahol minden egyes Ci' tartalmazza c,- számára a következő c,-nél magasabb tá—

rolt értéket (ha van), amely számára az egyéb ct (k % jl-k értéke ugyanaz. és minden egyes Ci' tartalmazza a c,- legközelebbi alacsonyabb tárolt értékét (ha

van), amely számára a többi ck (k % ]) ugyanolyan értékű. lgy minden egyes re- kord a tárolón 2M lánc tagja lehet, és az összes lánc követése révén minden egyes mágneslemezen tárolt rekordot elérhetünk, visszanyerés céljából azonban csupán azokat a rekordokat vizsgáljuk meg. amelyeknek kulcsa eleget tesz :! visszanyerési ' igénynél meghatározott feltételeknek. és nem kisérelünk meg nem létező rekordo-

kat is visszanyerni. ,

Az ezzel a megoldással járó tárolókapacitási többletráfordítás a kulcs m szám- jegyeinek és az r rekordméret hányadoSával, p-vel fejezhető ki. Azaz, ha 100(m :r): p, a rekord méretét 2.p—vel kell megnövelnünk; például, ha ma 10

és r: 200. mindössze 10 százalékkal. Sok esetben ezt az áldozatot bőven ellen- súlyozza a nagyobb feldolgozási sebesség, amelyet ily módon elérhetünk.

Foglalkoznunk kell ezzel kapcsolatban azokkal az algoritmusokkal. amelyek segítségével a K* és K.: által generált láncokat fel tudjuk dolgozni. Először is egy

megfelelő induló rekordra van szükségünk. azaz olyanra. amelynek c kulcsa kielé—

gíti az adott feltételeket. Ennek elérésére két lehetőség van:

" A V jelentése: ,,vagy".

(16)

ADATBANK TERVEZESE 1027

1. a legalacsonyabb (vagy legmagasabb) sorszámú, az adott feltételeket ki- elégítő kulccsal kezdjük, majd az így nyert kulcsértéket folytonosan növeljük (Csök- kentjük) mindaddig, míg olyan kulcsot nem találunk. amely a mágneslemezen is tárolva van:

2. valamely, véletlenszerűen kiválasztott rekordot olvasunk a tárolóról, és rend- szeresen követjük a rekord kulcsa által generált láncokat mindaddig. amíg olyan

rekordot nem találunk. amelynek kulcsa kielégíti az adott feltételeket.

Nem tudjuk, hogy a két módszer közül melyiket ésszerűbb választani. A leg-

egyszerűbb és minden bizonnyal legbiztosabb módszer azonban egy ismert és a feltételeket kielégítő kezdő értéket beolvasni.

A következőkben egy algoritmust ismertetünk, amellyel alkalmas (: kezdőérték—

ből kiindulva a K" és K; értékek által generált láncokat követni lehet. Az algoritmus c-ből kiindulva egy láncot követ mindaddig. amíg ez lehetséges — azaz, amíg olyan rekordot nem talál, amely nem rendelkezik az adott feltételeket kielégítő rekordra vagy rekordokra mutató K* vagy Kt értékkel —, és tárolja az összes, korábban még

meg nem vizsgált K* és K3 értékeket egy push down12 listában (l). Ezután veszi a

következő kulcsot az l-lista elejéről, és ezt tekinti a következő lánc kiinduló pontjá—

nak. Ezt addig folytatja, figyelmen kívül hagyva azokat az ..új" rekordokat, amelyek már tárolva vannak l-be'n, míg végül ! üressé válik. Mint az ebből a leírásból is ki- tűnik. az algoritmust rendkívül kényelmes list processing eljárás formájában egy magas szintű programnyelvben fogalmazni, kihasználva a rekurzió lehetőségét:

lnteger e; list I;

I :: cons (O. cons (c, o)) ; followchain (I) ;

list procedure followchain (I) ; list ! ;

if I:: 0 then goto exit

else begin x :: hd (hd (l)) ; process x; e :: contents (x) ; if newelement (e, I) ;5 0

then followchain (cons (I). newelement (e, l)) else if tl (hd (l)) :_—'— O then followchain (tl (l)) else followchain (cons (tl (l). tl (hd (I))))

exit: end ;

list procedure newelement (e, l) ; list 9. I ;

newelement: : if e : 0 then O

else cons (newelement (tl (e), l), hd (e)) ; boolean procedure mem (e, l) ;

integer e; list I;

mem: : if atom (l) then ea (e, !) else if mem (e, hd (I)) then true

else mem (e, tl (l)) ;

Az algoritmushoz az alábbiakat kell még definiálnunk:

integer — olyan változó deklarációja, mely csak egész értéket vehet fel ; list — olyan változó deklarációja, melynek egy lista lehet az értéke ; boolean procedure— eljárás, melynek értéke igaz vagy hamis (true, false) lehet ;

lista atomok (elemi értékek) összetartozó tüzére, melyben az elemek kötött sorrendben helyezkednek el.

process x — az x kulccsal rendelkező rekord tárolóról történő elérése és feldolgozása, contents (x) — olyan kulcsok listája, amelyeket az x-nek megfelelő K* és K* határoz

meg és amelyek szintén kielégítik az adott feltételeket,

13 Push dawn lista olyan lista. amelyhez mindig egy elemet lehet hozzátenni (a lista elejére). és amely.

ből mindig csak egy elemet lehet elvenni (a lista első elemét).

['s

(17)

1028 ESZTERGÁR ZSOLT—WRLLIAM F. SMYTH cons (l, a) : (a, b, c, d, .. .), amikor I: (b, c, d, .. .)

hd (l) :: a, amikor I: (a, b, c, d, . . .)

tl (l) : (b, c, d, ...), amikor I:: (a, b, c, d, .._.) atom (i) : true, amikor I az (..atom") lista egy eleme;

különben : false

ea (e, I) :: true. ha az e és az l-lista elemei egyenlők;

különben : false.

Nyilvánvalónak latszik. hogy a fenti algoritmus helyes minden olyan esetben.

amikor csak egy a,- 5 cjíb, formájú feltétel áll fenn minden egyes c,- szubkód

számára, azaz, amikor nincsenek hézagok a c,- c'lltal felvehető értékek között. Az algoritmus működésére vonatkozó kielégítő feltétel azonban nincs definiálva, és további nyitott kérdések is maradtak; mi az l-lista várható hossza? Mennyi feldol—

gozási időmegtakarítást jelent (ha jelent) az algoritmus használata. szemben azzal az egyszerű feldolgozással, amikor az összes lehetséges rekordot megvizsgáljuk?

Redukólható—e l-lista keresési ideje az alábbi tények figyelembevétele mellett:

—- bármely adott két kulcs mindegyikéhez legfeljebb két kulcs van kapcsolva; — -— bármely adott két kulcshoz nincsenek más kulcsok kapcsolva. ha az adott kulcsok több' mint két szubkódban különböznek egymástól;

— ha két kulcs pontosan egy szubkódban különbözik egymástól, ezek vagy egymáshoz

vannak kapcsolva, vagy nincs közös kapcsolatuk. *

A következőkben az algoritmus működésére mutatunk be példát arra az eszebe.

amikor M : 3. Az alábbi diagramon láthatók azok a kapcsolatok a rekordok kö-

zött, amelyeket a K* és K* értékek mutatnak, és amelyek szintén kielégítik a ci-re

adott feltételeket. A kapcsolatok feldolgozasa az alábbi tetszőleges sorrendben

történik:

elik! CZ!!! Cg— ch! CZ" Cam

amelynek eredményeként a c : 001-rekordból (csomópontból) kiindulva a rekordok

(csomópontok) feldolgozása :: csomópontok száma szerinti sorrendben történik.

11. ábra

Az l-lista mérete a 003 rekord feldolgozása előtt a legnagyobb. Ekkor a lista 12 különböző elemet tartalmaz:

(001)

(002, 008, 011, 013. 015, 016) (003. 004, 005. 006, 007)

(18)

ADATBANK TERVEZÉSE 1039

Ez a példában szerepelő 16 rekord 75 százalékát jelenti, amely túlságosan nagy: gyakorlatilag nem használható az az algoritmus, amely azt igényli, hogy 0.75 n rkulcsot kelljen tárolni azért, hogy n rekordot fel lehessen dolgozni. Tehát.

annak érdekében. hogy ezt a megközelítést alkalmazhassuk, valamilyen kísérleti

vagy elméleti alapon az l—lista méretét korlátozni kellene.

Foglalkozzunk most a '2/ és /3f—ban foglaltak alapján történő visszanyeréssel;

azaz azokkal az esetekkel, amelyekben a lekérdezés a a mennyiségek egyik soro—

zatára vonatkozik. Ezzel kapcsolatosan a lekérdezésben rendszerint specifikálják

azokat a szubkódokat is. amelyekhez a (; értékeknek tartozniuk kell. Például:

—— meg kell állapítani azoknak az eseteknek a számát, amelyekben a nehézipari ex—

portterveket teljesítették vagy túlteljesítették az elmúlt évben.

— listát kell készíteni azokról a nem mezőgazdasági termékekről, amelyekre vonatkozóan az exportterveket 10 vagy több százalékkal túlteljesítették, illetve azokról. amelyekre vonat- kozóan csak 75 százalékra vagy annál kevesebbre teljesítették az elmúlt 10 év folyamán.

Ha az ilyen típusú lekérdezéseket hatékonyan és gyorsan akarjuk kezelni, az előbbinél sokkal nehezebb problémával kell szembenéznünk. Elsősorban azért, mert a rekordok, amelyeket el kell érni. nem csoportosíthatók előre, nincs a priori ismere- tünk azokra az értékhatárokra vonatkozóan, amelyeket a lekérdezésben specifikál-

hatnak.

Egy ,,clurva" megoldás lehetne a következő. El kell érni (be kell olvasni) min—

den olyan rekordot. amelynek kulcsa kielégíti a lekérdezésben specifikált feltétele- ket (előző év, nehézipar, export), majd megvizsgálni. hogy a mennyiség szintén ki—

elégíti-e az adott feltételeket (nagyobb vagy egyenlő a kerettel). Ez a megoldás sok esetben teljesen megfelelő, különösen akkor. ha a rendszer nem on-line, és ha a lekérdezések általában a tárolt részadathalmaznak csak egy kis hányadára vonatkoznak.

Általában azonban — amikor csak a rendelkezésre álló mégneslemezes tároló- kapacitás ezt megengedi — egy invertált file-t célszerű létrehozni a tárolt részadat- halmazból, amelynek segítségével a lekérdezésekre gyorsabban lehet választ adni.

Az invertált file szintén egy lemezes file vagy random. vagy indexelt szekvenciális, amelyben azonban a kulcsok nem a kódok. hanem a mennyiségek. A rekordok ek—

kor az alábbi formában írhatók:

fi : (az: le- Ci2! ..., Cím,-),

ahol a Cíi —k (] : ,..., m,) az egyedüli kódok. amelyek kielégítik a (7; -— KS. c,-, 5 (zi—l— K egyenlőtlenséget valamely rögzített egész K érték szám—ára. Ebből követke—

zik. hogy egymással szomszédos (; értékek kielégítik a

Gitt—Gif—TZK'l'l

egyenlőséget. Minél nagyobbra választjuk a K értékét. annál kevesebb rekordot lesz szükséges elérni. és annál kevesebb a,- mennyiséget szükséges tárolni. Más- részt viszont az átlagos rekordméret K-val arányosan növekszik, és a rekordokban (: lekérdezést nem kielégítő c,-,- kódok aránya is megnő. Mindent összevéve, az ilyen típusú alkalmazások szempontjából jelentős előnyökkel járónak látszik egy indexelt szekvenciális file használata (K) értékek és változó hosszúságú r,- rekordok mellett (feltéve. hogy a mágneslemez—kezelő software lehetővé teszi a változó re-

kordok kezelését). Ennek a megoldásnak a fő hátránya az a külön időigény és ne-

hézség, amellyel egy indexelt szekvenciális invertált file-nak az adatbázis részhal- mazból való előállítása jár.

(19)

1030 ESZTERGAR ZSOLT—WILLIAM F. smvm Ez a megoldás is igen sok felesleges tárolóátvitellel jár azokban az esetekben,

amikor a beolvasott invertált file rekord nem tartalmaz adott feltételt kielégítő ká-

dokat. Továbbá, ha Ki 0, és a visszanyerési igény a a,- pontos értékére irányul.

akkor szükség van arra is. hogy az adatbázis részhalmaz minden olyan rekordját megvizsgáljuk amelynek kulcsát az invertált file rekordban az adott feltételeket kielégítőnek találjuk. Tehát a követendő megoldási módszer kiválasztása nagymér-

tékben a kidolgozandó rendszer jellemzőin múlik:

-- a rendelkezésre álló tárolókapacitás.

-— a szükséges válaszidő,

- az adatbázis részhalmaz módosításának gyakorisága.

—- a visszanyerési igények természete: értéktartományok vagy diszkrét értékek vissza- nyerése szükséges-e stb.

A felesleges mágneslemez-hozzáférések szóma csökkentésének egyik lehetsé-

ges módja: több invertált file előállítása ugyanazon adatbázis részhalmaz alapján,

azaz valamely szubkód bizonyos értéke szerinti invertált file képzése. Például bi—

zonyos esetekben hasznos lehet, ha invertált file-ok állnak rendelkezésre

— a forintérték szerinti export. - a cikkszám szerinti import, -— a cikkszám szerinti export, —- a forintérték szerinti termelés.

— a forintérték szerinti import. —- a cikkszám szerinti termelés vonatkozásában. Az ilyen megosztás abban az esetben célravezető, ha a lekérde-

zési igények ugyanebben a megosztásban fordulnak elő; ha nem. akkor továbbra

is többszörös és felesleges tárolóhozzálérésekre lesz szükség az igényelt információ visszanyerése céljából. Végül néhány megjegyzés a változó hosszúságú r,- rekOr- dok méretét illetően. Ha minden egyes c,-,- m számjegyből és minden egyes a,- n számjegyből áll, akkor az r,- rekord l-hossza

KrúzmlmiH—n

lgen könnyen kiderülhet, hogy I—nek mint c,,- függvényének értékei nem egyen- letes eloszlásúak, és ez a lemeztároló-elérésben igen rossz hatékonyságra vezethet.

Lehetséges azonban K—t a,- függvényében úgy megválasztani, hogy ezzel egyenle-

tessé váljék az I-értékek eloszlása:

Ki : K (gi)!

m,- : m,- (Cli Kí)'

,; :I(ai):m(mi

(ClirKí)) "l'":

és lehetséges, hogy tudunk olyan K, értékeket találni, melyek mellett !; közelítőleg konstans.

( A statisztikai adatbankokkal kapcsolatban érdemes megjegyezni. hogyeze—k modellezési vagy szimulációs célokra is kiválóan felhasználhatók. llyen esetekben kívánatos lehet feltételezett vagy becsült értékek tárolása az adatbankban. Ezeket az

értékeket természetesen a ,.valódi" értékektől elkülönítve kell tárolni. E megjegyzés—

sel mindössze arra kívánjuk felhívni a figyelmet. hogy a modellezési adatok elkülö—

nített tárolásának alkalmas megvalósítási módja az. hogy ezeket csak az adatbázis részhalm-azokban tároljuk. Ez azt jelenti, hogy célszerű olyan közvetlen elérésű up- date lehetőséget biztosítani, amellyel a részhalmaz—definíciók és az aggregáció—

könyvtár alapján egy adatbázis részhalmazt lehet generálni.

(20)

ADATBANK TERVEZESE

1031

Végül megjegyezzük. hogy a rendszer működésének ellenőrzése és javítása cél- jából gyakran célszerű statisztikai nyilvántartást vezetni

— a változások gyakoriságáról (update).

-— a felhasználás gyakoriságáról (visszanyerés)

a rendszerben tárolt minden rekord számára. Esetünkben elégséges lehet a rekor- dok használatának gyakoriságát néhány kiválasztott szubkód vonatkozásában nyil—

vántartani az aggregáció-könyvtárban; ennek alapján információnk lesz arról. hogy * például a c, szubkódot illetően hányszor kellett visszanyerni olyan rekordokat.

amelyekben ez a szubkód szerepelt. Ennek alapján megállapíthatjuk, hogy melyek azok az információk. amelyeket gyakran kellett felhasználni és melyek bizonyultak szükségtelennek. Meg kell azonban jegyezni azt is. hogy még az ilyen fokú rend- szerellenőrzés is hátrányosan befolyásolhatja a rendszer hatékonyságát: nem lehet megmondani minden rendszer esetében, hogy az ilyen módon nyert információ ,.megéri-e" azt a hatásfokvesztese'get, amelyet előállítása jelent.

IRODALOM

W. Fel/er: An introduction probability theory and its applications. Vol. 1. Wiley—Chapman—Hall.

New York—London. 1950. XII. 419 old.

D. E. Knuth: The art of computer programming, Vol. 1. Addison Wesley. Reading. 1969.

]. Mr Foster: List processing McDonald Elsevier. London. 1969.

A. Szlavkín: Az automatizált adatbank kialakításának néhány kérdése a Szovjetunióban. Statisztikai Szemle. 1971. évi 11. sz. 1107—1119. old.

DES—HOME

noxasaTeAb momno onpeaenurb KaK anememapnyxo nmpopmagmo, onpeneAeHHym cos- MCCTHO onucauuem ozmoro (pam-a 14 oanoü nmwmnoíá. Onucarme uac-ro HpeaCTaBAel-M) Ko- AOM; ny'reM pasőmakn Kozta Ha COCTaBHbIC 'laCTH HOAytxaeM cyőxozusl, Kamarai?! 143 anem Koropmx HBAHGTCH onnca're/xbuoü vaC'rHoü unmopmagueü.

ABTOpr s cum-m (: opranusagneü SAEMBHTOB (noxasareheü) B zwei/im: cpaBm—Iaalo'r maa me'rozxa (7. us OAHIOI'O SAeMeHTa onna aut—finta HS 011an aAeMeHTOB; 2. onna xueüxa 143 ejtene!!- TOB, Kacawlgnxcx om—xoro nepnoaa, 'ro CCTb B'peEMeHHoífx pill!) C'rovnm sperma Bpemexm oópa- őonm, SMKOC'I'H xpanerma H conepmannn.

Memay 11333be?! 14, CACAOBaTeAbHO, onucmaarmgnmn nx cyőxoaamn Hanőonee %c:—ro ameer meno nepapxnuecxan CBHBb. B xone ncheAOBaHnn xapax'repHC'mK, Boamomuoc'reí'r npeoőpaaoaaunn B őx—mapnme CprKTypbl u' oőoőxgeum! BOSHHKaeT HCOÖXOAHMOCTb 3003- aaauu ocoőoro nsbma mm saaxos zum OHHCöHI/IH chym-ypbx.

HpOÖAeMbI coaepmannx (Donna zxanubxx aBTOpbl aHaAnsupyro'r fly'l'eM cpaaHeHx—m nam paammnbrx npuóAnmeanír u nponaaoam nonbnxy OHpeACAI/ITb Bamneümne opraHuaagnou- nme napameTpm.

csxsn c BbISOBOM AaHHbIX amopm nogsepramr HccAeaosanmo emmemnanoc'rb oóxge- pacnpoc'rpaueunoü Haőopnoü CprKTYpb! MHOPOKpaTHle nepeuueü " BbleIBHOl'O aAropuTMa, a 'ramxe npnrozmoc'rb oőpaxgennbtx HaÖOprIX chyK'ryp.

sakmouenne aB'l'Opr ycTaHaBAHBaIOT, 1x'ro B cosnasaemom (pounc CTaTHC'I'HlIECKl/IX nari;

Hblx nymo npeaycmorperb Boamomuocrb OCngeCTBAeHHH MOHEAHpDBaI-IHH u cnmynagm—t.

Hommo eToro B geAnx nponepxn emmemnsnocm (palma 11319me cnc'rema őauxa nanamx aoxmua npouanoamb cra'mcruxy u OTHOCHTCADHO csoeü coőc'raeuuoü aen'reAbHocru.

SUMMARY

Data may be defined as elementary information determined by a description together with values. Descriptions are often represented by codes; dividing them into parts one gets sub-codes which are all descriptive part-information.

(21)

1032 _ ESZTE-RGÁR—SMYTH: ADATBANK TERVEZÉS;

ln connection with organizing elements (data) into records, the authors compared two methods (1. from one element one record and 2. from elements pertaining to a given period one record, i. e. time series) considering the time of processing, storage capacity, and

maintenance. _

The most freauent connection existing between data and sub-codes which describe them is of hierarchic nature. In the course of investigating characteristics, transformabiiity to binory structure, and possibility of generalizatíon of such systems demand emerges for evolving a special descriptive language or calculus of data-structure. '

The authors analyse the problem ot maintenance of the data base by means of - comparing five different approaches and try to determine the most important organizational

porameters.

in relation to retrieving data—information the efficiency of a generally applicable multilist file structure and that of a retrieve algorythm as well as the adaptability of the inverted

file structure are discussed. . * , _

In the end the outhors establish that at the data bank to be formed, the possibility far _modelling and simuloting must be created. Moreover. in order to check the efficiency ',of [the data base it is necessary for the data bank system to prepare statistics also about

its own activity.

Hivatkozások

KAPCSOLÓDÓ DOKUMENTUMOK

Érdekes mozzanat az adatsorban, hogy az elutasítók tábora jelentősen kisebb (valamivel több mint 50%), amikor az IKT konkrét célú, fejlesztést támogató eszközként

A helyi emlékezet nagyon fontos, a kutatói közösségnek olyanná kell válnia, hogy segítse a helyi emlékezet integrálódását, hogy az valami- lyen szinten beléphessen

Bp. Budai Nagy Antal Gimnázium, I. - Munkáját ezúton is megköszönjük.. E kategóriák az egyes tantárgyakon belül, a tantárgyi sajátosságok alapján tovább

gokban, az iparhoz hasonlóan, közrejátszik az is, hogy az anyagtervek készítésének időpontjában a termelési tervek sokszor csak globálisan (forint — értékben) ismeretesek,

képessége az együttműködő (kooperáló) erőművek teljesítőképességének mindössze O,8 százalékát teszi ki. évben az európai vízierőművek teljesítőképessége az

Ezek a momentumok magyarázzák meg azt az éles ellentétet is, amely a központi tervező szervek —— elsősorban az Országos Tervhivatal -—— és az egyes minisztériumok között

értékének erejéig, hanem ennél lényegesen nagyobb mértékben hasznos a fogyasztó számára. Ha erre a körülményre nem lennénk figyelemmel és az életszinvonal

Mint aki tengerekről jött, oly rekedt a hangod, szemedben titkok élnek, szederfán tiszta csöppek, legörnyed homlokod, mint felhőtől súlyos égbolt. De mindig újraéledsz,