Einfaldur gagnagrunnur

Til þess að átta sig á því hvers vegna hugmyndir Dr. Codd höfðu byltingarkennd áhrif á gagnagrunna er vert að athuga aðra möguleika á gagnasöfnum t.d. mætti athuga einfalda gagnaskrá sem geymir samskiptaupplýsingar einhverra aðila: nöfn, heimilisföng, netföng og slíkt. Einfaldast væri að álíta sem svo að skráakerfi stýrikerfisins myndi geyma skrána og ákveða mætti að hún væri afmörkuð (e. Delimited) textaskrá.

Tafla 1a

Nafn   Heimilisfang  Sími   Netfang       Veffang

Grjóti Stefsson      Aflatröð 5    599-1234      grjoti@aflatradir.net      www.aflatradir.net/grjoti

Jóndi Bullsson       Boðatröð 6    599-2341      jondi@bodatradir.net www.bodatradir.net/jondi

Gudda Karlsdóttir    Grandatröð    599-3412      gudda@grandatradir.net     www.grandatradir.net/gudda

Þessi skrá er mjög einföld aðeins fimm dálkar og afmörkun dálkanna er með dálka-merki (e. Tab delimited). Einnig mætti afmarka dálkana með öðrum afmarkara (þ.e. lesstaki) s.s. semíkommu (;) og einnig mætti afmarka gildi dálkanna sjálfra með tvíhöggi, samanber:

Tafla 1b

“Nafn”;”Heimilisfang”;”Sími”;”Netfang”;”Veffang”

“Grjóti Stefsson”;”Aflatröð 5”;”599-1234”;”grjoti@aflatradir.net”;”www.aflatradir.net/grjoti”

“Jóndi Bullsson”;”Boðatröð 6”;”599-2341”;”jondi@bodatradir.net”;”www.bodatradir.net/jondi”

“Gudda Karlsdóttir”;”Grandatröð”;”599-3412”;”gudda@grandatradir.net”;”www.grandatradir.net/gudda”

Þessi gögn eru e.t.v. ekki falleg á að líta eða fljótlesin enda ekki ætlast til þess. Tilgangur allra gagnagrunna, hvort heldur settir upp í einföldum textaskrám eða á annan máta er að tölvan geti lesið gögnin eftir einhverju kerfi. Fyrir þessa skrá mætti forrita fremur einfalt forrit sem a) læsi skrána og b) þáttaði (e. Parse) hana í línur, þar sem fyrsta línan hefði dálkaheiti, c) aðgreindi gildin og raðaði upp í línur og dálka eða raðaði upp á spjöld sem notandi grunnsins gæti síðan lesið, breytt, bætt inn eða eytt út og d) gæti skrifað í skrána hafi gögnin breyst eða hreinlega yfirritað hana. Einfalt ekki satt. Nú mætti bæta við forritið fáeinum notadrjúgum aðgerðum s.s. að raða nafnalistanum í stafrófsröð eða eftir heimilisföngum. Notandi gæti þá flett upp á notanda með því að leita eftir símanúmerum eða öðrum mismunandi skilyrðum.

Nú vandast málið ef sú þörf kemur upp að fleiri en einn notandi þurfi aðgang að skránni t.d. á Neti. Hvernig á að bregðast við ef tveir eða fleiri notendur eru að breyta upplýsingum og vista á sama sekúndubroti eða ef sömu línunni er breytt á sama tíma. Þetta mætti leysa þannig að forritið sem les skrána gæti læst aðgangi að henni á meðan hún er lesin í minni og aftur á meðan hún er skrifuð út, sem aftur getur hamlað vinnsluhraða ef t.d. 100 notendur væru að vinna með skrána á sama tíma. Augljóslega getur forritunar vinna vegna einfaldra gagna vaxið og vaxið.

Gott er að hafa hér í huga að 1970 þegar Codd er að birta hugleiðingar sínar um venslaða gagnagrunna með aðferðum „Vensla-algebru“ (e. Relational Algebra) – ekki má gleyma að Codd var fyrst og fremst stærðfræðingur – var öll tölvuvinnsla miðuð við tölvur af stórtölvu og millitölvu gerð og notendur tengdust tölvum sínum yfirleitt með einföldum-útstöðvum (e. Dumb terminals). Einstaklings tölvan sem hugtak þótti fáránleg og algengt var að notendur ynnu margir í einu með sömu gögnin.

Notendur Lýðnetsins eru bundnir að miklu leyti við samskonar vinnuhugmynd og þá var venja. Þegar notandi sækir og les vefsíðu, t.d. gagnagrunnstengdar upplýsingar á innankerfis (e. Online) pöntunarvef, er allt eins víst að hundruð og jafnvel þúsundir notenda séu að sækja sömu upplýsingarnar og hugsanlega á sama tíma. Aðal munurinn á þeim aðstæðum frá því sem var á blómatíma Codds, er að miðlarinn (eða stórtölvan) geta sent gögnin hrá til ráparans (e. Browser) sem getur þá tekið þátt í útlitsmótun upplýsinganna en slíkt er utan viðfangsefnis þessarar bókar.

Það sem þörf er á hér er öflugri lausn en skráakerfi stýrikerfisins geymsluvélarinnar. Lausnin gæti verið púki (e. Daemon) sem er vakandi í vinnsluminni geymslutölvunnar og stjórnar öllum aðgangi að skránni.

Púkinn gæti þá haft yfir að ráða stefjum og geymsluaðferðum sem þáttuðu gögnin  fyrir notendaforritið og tækju við þeim aftur til geymslu. Slíkur púki gæti hugsanlega sinnt þörfum fleiri biðlara forrita samtímis án þess að þau yrðu sérstaklega vör við tafir vegna læsingu á skráaaðgangi.

Gögnin í gagnasafninu gætu þá litið út gagnvart notendaforritunum eitthvað svipað því sem birtist í eftirfarandi töflu. Hér mætti hugsanlega miðla gögnunum þannig til notenda að þeir geti aðeins átt við gildi í einni línu í senn þannig að séu fleiri notendur að vinna með gögnin samtímis, finni þeir ekkert fyrir því svo fremi þeir séu að vinna með ólíkar línur.

Tafla 1c

Nafn Heimilisfang Sími Netfang Veffang
Grjóti Stefsson Aflatröð 5 599-1234 grjoti@aflatradir.net www.aflatradir.net/grjoti
Jóndi Bullsson Boðatröð 6 599-2341 jondi@bodatradir.net www.bodatradir.net/jondi
Gudda Karlsdóttir Grandatröð 599-3412 gudda@grandatradir.net www.grandatradir.net/gudda

Ennfremur væri sætt ef púkinn gæfi biðlurunum leyfi til að sækja takmarkaðan hluta gagnanna án þess að forritarinn þyrfti að hafa sérstaklega fyrir þáttun og frekari forskriftun (e. Scripting). Til að mynda mætti sækja öll gögn í töflunni þar sem heimilisfang væri „Aflatröð“ og raða í hækkandi röð eftir símanúmerum, eða í stafrófsröð eftir gildunum í nafn o.s.frv. Slík tækni myndi sérstaklega vera mikilvæg ef gagnaskráin innihéldi t.d. 500.000 línur og notandi gagnanna þyrfti aðeins að vinna með þær 50 línur sem hugsanlegt er að framangreint skilyrði gæfi af sér.

Þetta er þó ekki nóg. Aðal ástæða þess að Dr. Codd vann að hugmyndafræði sinni um venslaða gagna­grunna var, eins og fram hefur komið, að gagnagrunnskerfi þess tíma buðu upp á skekkjur og umfremdir. Ennfremur rakst Codd á ýmis frábrigði[1] (e. Anomalies) sem gátu komið upp við ýmsar aðstæður í gagnavinnslu. Greinin sem hann ritaði árið 1970 voru í raun niðurstöður rannsókna hans sem áttu að sýna með aðferðum stærðfræðinnar hvernig forðast mætti frábrigði, koma í veg fyrir skekkjur (e. Errors) og útrýma umfremdum.

Í viðtölum við samstarfsmenn Codd frá þessum tíma hefur komið í ljós að fyrstu viðbrögð manna við niðurstöðum hans voru að hrista hausinn og segja sem svo „hver nema stærðfræðingur kemur fram með svona?“ Aðrir svo sem Larry Ellison lásu hinsvegar grein Codds og komust að raun um að lausn hans er afar einföld, ekki nóg með það hún svínvirkar. Svo rækilega virkar hún að Larry Ellison er einn ríkari manna samtímans og þú ert að lesa þessa bók. Ekki nóg með það heldur eru allar líkur til þess að þú notir daglega gagnasafns-umsjónarkerfi í einhverri mynd.

 


[1] Frávik er þegar eitthvað bregður út af reglu eða brýtur upp skipulag sem gert var ráð fyrir. Óregla og frábrigði eru samheiti orðsins frávik. Nota ég öll hugtökin yfir sama fyrirbærið. Tölvuorðasafnið hefur ekki skilgreint enska orðið Anomaly sérstaklega en enskt samheiti þess er Exception sem þýtt er sem frábrigði í hlutbundinni forritun. Sú venja hefur skapast í umfjöllun um hlutbundna forritun verið notað orðið frávik yfir Exception en rétt væri að nota þar frábrigði samkvæmt Tölvuorðasafni. Skekkja og villa eru hins vegar er þýðingar á enska orðsins Error.

 

 

This entry was posted in Gagnagrunnar og SQL and tagged . Bookmark the permalink.

Comments are closed.