Database en spreadsheet (rekenblad)

Hoogstwaarschijnlijk hebt u al spreadsheet-toepassingen gebruikt, zoals Calligra Sheets, LibreOffice Calc of Microsoft® Excel. In dat geval vraagt u zich misschien af: spreadsheets en databases hebben allebei tabellen, waarom zou ik de laatste gebruiken?

Bij het vergelijken van spreadsheets en databases kunt u de volgende punten tegenkomen die later gedetailleerder ter sprake komen.

Waarin verschilt een database van een spreadsheet?

Om de capaciteit groter dan die van een mobiele telefoon te maken, voegt u een kolom (veld) Adres aan de tabel Contacten toe. Voeg voor iedere persoon meer telefoonnummers (werk, thuis) toe en voeg achternamen aan namen toe. Om het eenvoudiger te maken nemen we het volgende aan:

  • De tabel is beperkt tot twee personen (in een echte database kunnen dat er honderden of duizenden zijn)

  • Er zijn geen twee personen met dezelfde naam en achternaam

Tabel 6.2. De tabel "Contacten"

Naam en achternaamTelAdres

Joan Smith

699 23 43 12

Western Gate 1, Warsaw

Adam Willson

711 19 77 21

London, Frogs Drive 5

Joan Smith

110 98 98 00

Western Gate 1

Smith Joan

312 43 42 22

Warsaw, Western Gate 1

ADAM Willson

231 83 02 04

Frogs Drive 5, London


Zo'n tabel kan zowel in een spreadsheet als in een database gemaakt worden. In een spreadsheet is dat natuurlijk gemakkelijk te doen. Welk probleem komen we op dit punt tegen?

Integriteit van referentiegegevens

Veronderstel dat u een spreadsheet gebruikt en dat u het adres van ten minste één persoon moet veranderen. Er is een klein probleem: u moet het adres vaak in veel rijen veranderen. Joan staat bijvoorbeeld op drie rijen. Er ontstaat een echt probleem als u vergeet om het adres in één van de rijen te veranderen - het adres dat bij deze persoon hoort, is dubbelzinnig, hierdoor verliezen uw gegevens hun integriteit.

Bovendien is er geen eenvoudige manier om een persoon uit de tabel te verwijderen, omdat u eraan moet denken dat alle rijen met betrekking tot die persoon verwijderd moeten worden.

Dubbele gegevens

Dit houdt direct verband met het vorige probleem. In de velden Naam en achternaam en Adres zijn dezelfde gegevens meerdere keren ingevoerd. Dit is typerend voor de manier waarop spreadsheets gegevens opslaan, de database wordt onnodig groot en vereist daardoor meer van de computer (meer te verwerken gegevens vereisen meer tijd).

Hoe kunt u deze problemen met behulp van een database oplossen? U kunt de informatie in kleinere stukken opsplitsen door een aanvullende tabel Personen aan te maken, deze tabel heeft slechts twee kolommen: Naam en achternaam en Adres:

Tabel 6.3. De tabel Personen

Naam en achternaamAdres

Joan Smith

Western Gate 1, Warsaw

Adam Willson

Frogs Drive 5, London


Elke rij in de tabel Personen komt overeen met een enkele persoon. De tabel Contacten is vanaf nu een relatie naar de tabel Personen.

Integriteit en geldigheid van gegevens

Let op de manier waarop gegevens in de velden Naam en achternaam en Adres zijn ingevuld. Mensen die gegevens intypen kunnen fouten maken en soms slordig zijn. In ons voorbeeld hebben we namen in verschillende volgordes en vormen (Joan Smith en Smith Joan; Adam en ADAM) en ook verschillende manieren om hetzelfde adres in te typen. Er zijn vast nog meer verschillende manieren te bedenken.

Het bovenstaande laat zien dat, wanneer u bijv. het telefoonnummer van een persoon met het adres Western Gate 1, Warsaw zoekt, u niet alle resultaten ziet. U krijgt slechts één rij te zien in plaats van drie. Ook vindt u niet alle telefoonnummers voor Joan Smith in het veld Naam en achternaam, omdat Smith Joan niet hetzelfde is als Joan Smith.

Hoe kunt u deze problemen oplossen door een database te gebruiken? U kunt dit doen door het ontwerp van de tabel Personen te veranderen:

  1. Splits de gegevens in het veld Naam en achternaam in twee aparte velden: Naam en Achternaam.

  2. Splits de gegevens in het veld Adres in drie aparte velden: Straat, Huisnummer en Plaats.

  3. Geldigheid van gegevens garanderen: door er zeker van te zijn dat er geen lege velden zijn, u moet bijv. altijd een huisnummer invullen.

Een gewijzigde tabel ziet er ongeveer zo uit:

Tabel 6.4. De tabel Personen

NaamAchternaamStraatHuisnummerPlaats

Joan

Smith

Western Gate

1

Warsaw

Adam

Willson

Frogs Drive

5

London

Voorwaarden

    

vereist veld

vereist veld

vereist veld

vereist veld

vereist veld


Dankzij het introduceren van de voorwaarde vereist veld kunnen we er zeker van zijn dat ingevulde gegevens compleet zijn. Bij andere tabellen kunt u natuurlijk toestaan dat bepaalde velden leeg blijven.

Beperking van gegevensweergave

Een spreadsheet geeft alle rijen en kolommen van de tabel weer, wat lastig kan zijn als er veel gegevens zijn. U kunt in spreadsheets natuurlijk rijen filteren en sorteren, maar dat vereist extra voorzichtigheid. Wanneer u een spreadsheet gebruikt, loopt u het risico dat u vergeet dat de gegevens gefilterd zijn, wat tot vergissingen kan leiden. Bij het berekenen van totalen kunt u denken dat u 100 rijen met gegevens hebt, terwijl er nog 20 extra rijen verborgen zijn.

Als u met een klein gedeelte van de gegevens wilt werken, bijv. om deze gegevens door een ander te laten bewerken, kunt u deze naar een ander spreadsheet kopiëren en, nadat ze bewerkt zijn weer terugkopiëren. Deze handmatige bewerking kan echter de oorzaak zijn van gegevensverlies of van onjuiste berekeningen.

Om de zichtbaarheid van gegevens te beperken, kunnen database-toepassingen query's, formulieren en rapporten maken.

Een praktische manier om de gegevens te beperken is de volgende uitgebreide versie van de eerder beschreven tabel Personen:

Tabel 6.5. De tabel Personen

NaamAchternaamStraatHuisnummerPlaatsInkomen

Joan

Smith

Western Gate

1

Warsaw

2300

Adam

Willson

Frogs Drive

5

London

1900


We nemen aan dat de nieuwe kolom Inkomen vertrouwelijke gegevens bevat. Hoe kunt u informatie over de personen door uw medewerkers laten inzien, zonder de inkomens bekend te maken? Dit is mogelijk als u ze alleen een query en niet de gehele tabel geeft. De query kan alle kolommen behalve Inkomen selecteren. In de wereld van de database staat zo'n query ook bekend als weergave (view).

Prestatie en capaciteit

U werkt waarschijnlijk met een vrij snelle computer, maar u zult ook inzien dat dat bij grote, logge spreadsheets niet echt helpt. Het gebrek aan efficiëntie wordt ten eerst veroorzaakt door het ontbreken van indexen die het zoekproces versnellen (databases hebben die wel). Ook het gebruik van een klembord om gegevens te kopiëren kan na verloop van tijd lastig worden.

Het duurt lang om spreadsheets die veel gegevens bevatten te openen. Een spreadsheet laadt heel veel gegevens in het computergeheugen. De meeste van deze gegevens hebt u waarschijnlijk niet direct nodig. Databases laden, in tegenstelling tot spreadsheets, de gegevens alleen wanneer ze nodig zijn.

In de meeste gevallen hoeft u er niet om te denken hoe de database de gegevens opslaat. Dit betekent dat het volgende voor databases, in tegenstelling tot spreadsheets, niet uitmaakt:

  • De volgorde van de rijen, u kunt deze immers veranderen als dat nodig is. Bovendien kunt u dezelfde gegevens in andere volgorden in meer weergaven tegelijk zien.

  • Hetzelfde geldt voor de kolommen (velden) in de tabel.

Samen met Beperking van gegevensweergave beschreven in het vorige gedeelte, bepalen deze eigenschappen de voordelen van databases.

Gegevensinvoer

De nieuwere versies van toepassingen om spreadsheets te creëren bieden de mogelijkheid om formulieren voor gegevensinvoer te ontwerpen. Zulke formulieren zijn nuttig als de gegevens niet gemakkelijk in een tabel getoond kunnen worden, bijv. omdat de tekst te lang is of omdat niet alle kolommen op het scherm passen.

In dit geval is de manier waarop de spreadsheet werkt problematisch. Velden voor gegevensinvoer worden her en der in de spreadsheet geplaatst en zijn vaak niet beschermd tegen (bedoelde of onbedoelde) bewerking door andere gebruikers.

Rapporten

In databases kunnen gegevens gegroepeerd, beperkt en verzameld worden in de vorm van een rapport. Spreadsheets worden gewoonlijk in de vorm van kleine tabellen afgedrukt zonder volledige automatische controle over de verdeling van de pagina's en de indeling van de velden.

Programmeren

Toepassingen voor het creëren van databases beschikken vaak over volwaardige programmeertalen. Nieuwere spreadsheets hebben deze mogelijk ook, maar berekeningen worden nog steeds gedaan door het wijzigen van de velden en het kopiëren van gegevens, zonder rekening te houden met de eerder genoemde regels voor relevantie en integriteit.

In een spreadsheet worden de gegevens gewoonlijk in een grafische gebruikersinterface verwerkt, waardoor de snelheid achteruit kan gaan. Databases kunnen in de achtergrond werken, buiten de grafische interface om.

Gebruik door meer personen tegelijk

Het is moeilijk om met meer personen tegelijk aan een spreadsheet te werken. Zelfs als het technisch mogelijk is, zoals bij de nieuwste toepassingen, dan vereist het nog een hoge mate van discipline, aandacht en kennis van de gebruikers; en deze eigenschappen kunnen niet gegarandeerd worden.

Een klassieke manier om gegevens in een spreadsheet met anderen te delen is: het gehele bestand versturen (gewoonlijk per email) of het bestand op een netwerk opslaan. Deze manier van werken is niet effectief voor grote groepen - gegevens die op een bepaalde tijd nodig zijn, kunnen geblokkeerd zijn doordat iemand anders eraan werkt.

Databases zijn juist ontworpen om de gegevens voor meer personen tegelijk toegankelijk te maken. Zelfs in de eenvoudigste versies kunnen rijen in een bepaalde tabel geblokkeerd worden, waardoor de tabelgegevens gemakkelijk gedeeld kunnen worden.

Beveiliging

Het beveiligen van een spreadsheet of bepaalde delen ervan met een wachtwoord is vaak niet meer dan symbolisch. Nadat een spreadsheet op een computernetwerk opgeslagen is, kan iedereen die het bestand kan kopiëren ook proberen het wachtwoord te achterhalen. Dit is vaak niet eens moeilijk als het wachtwoord in hetzelfde bestand als de spreadsheet opgeslagen is.

Functies om het bewerken of het kopiëren van een spreadsheet (of een deel ervan) te blokkeren, zijn eveneens gemakkelijk te kraken.

Databases (behalve die in een bestand opgeslagen zijn in plaats van op een server) hoeven niet als een enkel bestand beschikbaar te zijn. U krijgt toegang tot een database via een computernetwerk, gewoonlijk moet u een gebruikersnaam een een wachtwoord opgeven. U krijgt alleen toegang tot de delen (tabellen, formulieren of zelfs alleen bepaalde rijen en kolommen) die aan u toegewezen zijn door het instellen van toegangsrechten.

Toegangsrechten bepalen of gegevens bewerkt of alleen gelezen kunnen worden. Als bepaalde gegevens niet voor u beschikbaar zijn, worden die ook niet naar uw computer gestuurd, er is dan ook geen mogelijkheid om de gegevens zo gemakkelijk te kopiëren, zoals dat wel bij spreadsheets kan.