“Zoek naar niets, vind
ook niets – letterlijk.”
- Sam Rain
- Sam Rain
In deel 1 besprak ik de vier zuilen van een database
vluchtig; in dit deel ga ik dieper in op de tabellen.
Een tabel, in het geval van een database, dient als functie
door een grote collectie van individuele informatiegroepen te beheren.
Een ‘informatiegroep’ bepaal je door de typische eigenschappen te identificeren
naar het ‘soort’ eigenschap. De ‘informatiegroep’ is een ‘rij’ (row) en het ‘soort’
eigenschap een kolom (column).
Stel we willen ‘tijgers’ beheren (nou ja – de informatie
over tijgers). Iedere afzonderlijke tijger hoort thuis in een ‘rij’ en we
kunnen de specifieke informatie ontwerpen in de kolommen. Sam’s Zoo heeft 100
tijgers, waarvan elk een eigen naam, een leeftijd, een gewicht en een
‘gedragscijfer’ (hoe hoger hoe agressiever). De eigenschappen worden ieder een
kolom in de tabel ‘Tijgers’ (het meervoud van de rij dat het object weergeeft –
een tijger). Omdat tabellen gebruikt worden om te zoeken (en zoals later
duidelijk wordt voor andere handige truukjes) kun je iedere rij voorzien van
een ‘speciale’ kolom, genaamd ‘id’. Dit staat ook voor identificatie,
zodat iedere tijger óók gezocht kan worden op ‘nummer’. Het ontwerp van de rij
bestaat dan uit 5 kolommen:
Id – naam – leeftijd – gewicht – agressiviteit
We zouden aan de hand van deze groep informatie o.a. het
volgende kunnen vinden: a) alle tijgers tussen een bepaalde leeftijd, b)
tijgers die zeer agressief zijn, c) een alfabetische volgorde van alle namen,
d) het gemiddeld gewicht en e) het totaal aan tijgers. Juist voor de
berekeningen zal iedere kolom specifiek ontworpen moeten worden naar een
‘datatype’ – informatie waardoor een computer begrijpt waar de informatie voor
bedoeld is. Zonder al te moeilijk te gaan doen, zijn dit de algemene types in
de databases.
·
numeriek (cijfers en getallen)
·
tekst (letters en woorden)
·
datum (tijdsnotering)
·
ja/nee (de Boolean)
·
reeks (de automatische nummering)
Als we deze toepassen op ons ontwerp:
Id (reeks) – naam (tekst) – leeftijd (datum) – gewicht
(numeriek) – agressiviteit (numeriek)
Hebben we een functioneel tabel ontwerpen, waarop we naar hartenlust
queries (zoekopdrachten) op los kunnen laten. We kunnen zoveel kolommen
(eigenschappen) toevoegen als we willen; echter wil je geen ‘onnodige’
informatie toevoegen dan noodzakelijk. Een ‘rij’ toevoegen kost schijfruimte en
over een bepaalde tijd zal de collectie dus groeien.
Na een tijdje belt de verzorger van Sam’s Zoo; alle tijgers
zijn wel opgeslagen, maar ze overlijden ook zo nu en dan. Dòh!
Weer wat geleerd, want door de rij te voorzien van een kolom ‘levend’ van het
datatype ‘Boolean’ kunnen de levende tijgers snel gevonden worden en het aantal
doden ook. Of was het slimmer om een geboortedatum en sterftedatum te
gebruiken? En dat zijn dus de dilemma’s voor ontwerpers – alle tijgers moeten
gecontroleerd worden en de nieuwe informatie worden toegevoegd. Oefening baart
kunst!
Meer lezen over Informatie Technologie? Klik hier
voor de inhoudsopgave van alle artikelen!
Geen opmerkingen:
Een reactie posten