vrijdag 11 mei 2012

Praktische informatica: De basisvaardigheden voor database ontwerpers - Deel 2


“Zoek naar niets, vind ook niets – letterlijk.”
                                                            - 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