Einindi

Algeng aðferð við að skipta upp töflum er sú að greina upplýsingar þeirra upp í einindi (e. Entity) og reyna eins og hægt er að greina atóms-gildi (e. Atomic values) þeirra eða frumgildi (e. Primary values) sem nákvæmast. Til þess að beita þessari aðferð er gott að líta fyrst á skilgreiningu[1] hugtaksins Einindi:

img-coll-0498Einindi samkvæmt Tölvuorðasafninu er: „Sérhvert hlutrænt eða hugrænt fyrirbæri sem er til, hefur verið til eða gæti orðið til, þar með talin tengsl milli fyrirbæranna. [dæmi] Persóna, hlutur, atburður, hugmynd, ferli o.s.frv. [skýr.] Einindi er til, hvort sem gögn um það eru tiltæk eða ekki.“

Samkvæmt þessari skilgreiningu má því líta á fyrirtæki sem sérstakt hugsanlegt einindi. Maður er einindi, borð er einindi. Einindi sem til er í hlutveruleikanum er oft nefnt tilvik ímyndaðs einindis. Þannig ímyndum við okkur hvernig borð lítur út og hvaða eiginleika það hefur. Raunverulegt borð er þá hlutgert tilvik þeirrar hugmyndar. Hvorutveggja, tilvikið og hugmyndin, geta verið einindi.

Hugsanlegt fyrirtækis einindi hefur nafn, heimilisfang og samskipta gáttir s.s. síma, fax, veffang ofl. Einindið fyrirtæki er þannig almenn lýsing á fyrirtækjum sem hægt er að máta við raunveruleg fyrirtæki. Fyrirtækið Hugbrjótur ehf. er þá tilvik af einindinu fyrirtæki. Hugbrjótur ehf. er þannig einindi líka. Einskonar holdgerving hugmyndar sem lýst hefur verið.

Sé þessari hugsunar-aðferð beitt á Töflu 2a má sjá að hún geymir tvö skýr einindi, Fyrirtæki og Tengiliður. Fyrirtæki hefur heiti, staðsetningu og samskiptagáttir. Tengiliður hefur nafn, titil, heimilisfang og samskiptagáttir. Einnig má greina tvö önnur einindi þegar betur er að gáð en það eru Heimilisfang og Svæði.

Einindi er þannig hugtak (eða aðferð) til að lýsa einhverju sem getur átt sér sjálfstæða tilvist.

Þegar þessari aðferð er beitt á töflur koma upp á yfirborðið spurningar á borð við: „Hversu smá­muna­samlega þarf ég að skipta töflunni upp í einindi?“ Tökum sem dæmi einindið Svæði. Svæði hefur aðeins tvö atóms-gildi, númer og heiti. Ágóðinn af að klippa Svæði út úr töflunni og smíða sérstaka töflu fyrir það er ótvíræður af sömu ástæðum „dagréttinga-frávika“ og áður hafa komið fram.

Nú myndi það spara vinnu við innslátt ef upplýsingar um póstsvæði væru fluttar í sérstaka töflu, í stað þess að slá inn „0210 Garðabæ“ (og stöku sinnum slá inn skekkjuna Garðabær) t.d. 100 sinnum fyrir hundrað einstaklinga eða fyrirtæki í Garðabæ, væri nóg að slá inn númerið sjálft, 0210[2]. Þegar flett væri upp á tilteknu fyrirtæki mætti nota póstnúmerið til að fletta upp heiti þess í viðkomandi töflu.

Tilvik eininda (e. Instance, Entity instance, Instance of Entities) er þegar tafla fær áþreifanlegar (e. Concrete) upplýsingar um einindi sem raunverulega er til í viðfangs?veruleikanum[3] (e. Universe of discourse) sem gagna­grunnurinn nær til. Viðfangs-veruleiki er einnig nefndur raunheimur. Gagna­grunnurinn geymir með öðrum orðum upplýsingar um raunveruleg einindi sem til eru í raunheimi, eða viðfangs-veruleika. Samkvæmt framangreindu má líta á hugsanlegt fyrirtæki sem ákveðið einindi en þegar tiltekið fyrirtæki sem raunverulega er til er fært inn í töfluna má líta á þá færslu sem raunverulegt tilvik einindis. Fyrirtækið er til í raunheimi.

Smá innskot

Ég geri mér vel ljóst að byrjendum í svona umfjöllun líður ekkert voða vel þegar hingað er komið. Ég hef sjálfur verið í þeim sporum. Eitt sinn fékk ég viðamikla sýnikennslu í notkun gagnagrunna og var dálítið vankaður á eftir. Síðar þurfti ég að vinna með gögn og skipuleggja smærri gagnasöfn fyrir lítinn rekstur. Mjög fljótt varð ég var við, eftir því sem reynslan jókst, að þessi grunnur sem hér er framsettur styður við þessa reynslu og gerir hana ánægjulegri eftir því sem líður á. Í rauninni myndi ég hvetja byrjendur til að lesa kaflann hratt yfir, æfa sig í sýnidæmunum í næsta kafla og lesa þennan kafla aftur síðar.

Atómgildi og gildamengi

Atómgildi er gildi sem ekki verður brotið upp í einingar. Heiltalan 10 er atóm-gildi og mannsnafnið Adam er atómgildi (þó það sé samsett úr rittáknum). Mannsnafnið „Adam Alfreð Atlason“ er ekki atómgildi því það er samsett úr þrem stökum gildum. Atómgildi getur þó verið nokkuð teygjanlegt því við gætum þurft að líta svo á að fornafn-föðurnafn sé atóms-gildi eftir atvikum við hönnun tiltekins gagnasafns. Hérlendis eru einstaklingar yfirleitt skráðir með fullu nafni eða fornafn og föðurnafn saman en millinöfn sér. Erlendis er algengt að fornafn og föðurnafn/ættarnafn sé skrásett sitt í hvoru lagi.

Einindi er samsett úr atómgildum[4] (e. Atomic Values). Þetta þýðir t.d. fyrir einindið Fyrirtæki að ekki er hægt eða raunhæft að skipta nafni þess upp í einingar og ekki heldur númeri línunnar (eða færslunnar). Númer færslunnar fyrir Hugbrjótur ehf. er talan 1 sem er heiltala. Nafn fyrirtækisins í dálkinum (eða sviðinu) Fyrirtækisnafn er „Hugbrjótur ehf.“ sem er bókstafa-strengur. Orð og orðasambönd í tölvunar- og gagnagrunnsfræðum eru jafnan nefnd Strengir. Strengir eru röð rittákna sem lesin eru saman í einu lagi. Stakir stafir eru venjulega nefndir stafir, tákn eða rittákn. Þessi tvö svið má þannig skilgreina sem „Nr“ af taginu (e. Type) heiltala (e. Integer) og „Fyrirtækisnafn“ af taginu strengur (e. String).

Þegar einindum er skipt upp í atómgildi sín þá er hvert gildi sett innan ákveðins gildissviðs, t.d. hlýtur röð bókstafa að lenda innan gildissviðs strengja, tölur sem ekki innihalda brotatölur lenda innan gildissviðs heiltalna og tölur sem geta innihaldið brot innan gildissviðs rauntalna. Gildi sem gefa til kynna satt/ósatt, rétt/rangt, já/nei, af/á eru rökgildi á ensku nefnd „Boolean values“ eftir Ensk?Írska stærð­fræðingnum Boole. Í gagnagrunnsfræðum eru slík gildi yfirleitt táknuð með 0 (ósatt) eða 1 (satt).

Gildistegundir í gagnagrunns fræðum eiga sér gildamengi[5] (e. Domain). Með gildamengi er átt við að t.d. heiltölur geta verið heilar jákvæðar eða neikvæðar tölur eða núll. Strengir hafa það gildamengi að geta verið röð rittákna sem rita má með eðlilegu ritmáli eða tómur strengur. Brotatölur (eða kommutölur) séu tölur sem geta haft aukastafi eða brot.

Gildismengið tiltekur jafnan hversu langt það getur verið. Til dæmis getur mannsnafn verið í þjóðskrá Íslands allt að 31 staf og nafn einstaklings getur ekki verið ekkert (NULL). Mánaðafjöldi í almennu dagatali getur verið frá 1 og upp í 12 og getur ekki verið ekkert því alltaf er til mánuður[6].

Mannsnafn myndi falla undir gildamengið strengur og mánaðafjöldi undir heiltölu. Auk þess má tilgreina gildissvið mengisins. Streng má tilgreina að hann geti verið hámark 31 stafur og velja má að mánaðafjöldi sé innan gildissviðsins mjög-lítil-heiltala (e. Tiny-Integer eða TINYINT) sem í MySQL er á gildissviðinu ?128 til 127.

Gildamengi er aðeins hugtak til að tilgreina hvers konar gildi séu gefin á einindi. Ef við t.d. skoðum einindið „Adam Atlason fæddur 1.1.1970.“ Þetta einindi á tvo eiginleika (e. Attributes), nafn og fæðingardag. Við getum geymt nafnið sem streng (gildamengi strengja) og fæðingardag sem dagsetningu. Gildamengi dagsetningarinnar sé þá Gregoríanskt dagatal? Með öðrum orðum þá er gildamengi aðeins reglur til að skilreina eðli þeirra eiginleika þ.e. eiginda, sem einindin hafa.

Einindið Hugbrjótur ehf. hefur þannig eigindin Nr, Nafn, Heimilisfang, Svæði, Aðalsíma, o.s.frv. Hvert eigindi sem slíkt dvelur innan ákveðins gildissviðs t.d. getur Nr. verið frá 0, 1, 2,  og uppúr en ekki  ?1 og niðurúr, allt í heilum tölum.

[1] Þess er gætt eins og kostur er í hugtakaskilgreiningum að notast við Tölvuorðasafn Íslenskrar málnefndar. Sakir skammleika (e. Brevity) er ekki hægt að gera öllum enskum hugtökum nægilega góð skil svo enskum hugtökum er dreift hér og þar í texta bókarinnar. Lesendur eru hvattir til að nota ágæta leitarvél Tölvuorðasafnsins á http://ismal.hi.is/ til að fletta þeim upp.

[2] Póstnúmer á íslandi eru númeruð frá 101 til 902 en í þessari bók hefur verið bætt tölunni 0 framan við póstnúmerin. Þetta er gert til tákns um að allar upplýsingar í gagnagrunnum bókarinnar eru skáldaðar og skrefi frá raunverulegum (almennum, íslenskum) gagnagrunnum. Búast má við af þessum sökum að ýmis póstnúmerasvæði í grunnum bókarinnar séu ekki til á íslandi. Sama afstaða er tekin t.d. til kennitalna, engin raunveruleg kennitala mun finnast í þessari bók.

[3] Margar gagnagrunnsbækur enskar, nefna viðfangs-veruleika eða Universe of Discourse þann veruleika sem við viljum geyma upplýsingar um. Viðfangs-veruleiki getur verið félagaskrár, þjóðskrár eða einkunnatöflur.

[4] Tölvuorðasafnið hefur ekki komið með tillögu fyrir gagnagrunns, og forritunarhugtakið, „Atomic value.“ Atómgildi, eða atómlegt-gildi verður því notað í bókinni.

[5] Þegar þetta er ritað hefur Tölvuorðasafnið ekki gefið út tillögu fyrir þýðingu á gagnagrunns hugtakinu Domain. Domain merkir á öðrum sviðum ýmist lén, umdæmi eða sérsvið. Hér hefur verið valin merkingin gildamengi sem merkir á ensku „set of values.“

[6] Heimspeki er utan efnissviðs bókarinnar, en er mánuður yfirleitt til nema sem hugtak?

 

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

Comments are closed.