Office
Aanmelden
Inleiding tot Access

Aan de slag met databases

Uw browser biedt geen ondersteuning voor video. Installeer Microsoft Silverlight, Adobe Flash Player of Internet Explorer 9.

Databases en web-apps kunnen erg nuttig zijn voor bedrijven. Een goed databaseontwerp is essentieel voor het bereiken van uw doelen. Het maakt hierbij niet uit of u gegevens van werknemers wilt beheren, weekrapporten wilt bijhouden of orders van klanten wilt volgen. Als u de tijd neemt om meer te weten te komen over het ontwerpen van een database, zal u dit helpen bij het bouwen van databases die meteen goed werken en flexibel zijn bij veranderende behoeften.

Belangrijk: Access-web-apps zijn iets anders dan bureaubladdatabases. In dit artikel wordt geen aandacht besteed aan het ontwerpen van web-apps.

Concepten en termen

Laten we beginnen met enkele onmisbare termen en concepten. Als u een bruikbare database wilt ontwerpen, moeten de tabellen in de database zijn afgestemd op één onderwerp. U gebruikt velden in de tabellen om alle gegevens vast te leggen die nodig zijn voor dat onderwerp. Een veld is de kleinste opslageenheid voor het invoeren van gegevens.

Relationele databases

Een database waarin gegevens zijn verdeeld over tabellen. Een tabel werkt als een spreadsheet. Elke tabel heeft maar één onderwerp, zoals klanten (de ene tabel) of producten (een andere tabel).

Records en velden

Opslagruimten voor de discrete gegevens in een tabel. In rijen (of records) worden unieke gegevenspunten opgeslagen, zoals de naam van een klant. Via kolommen (of velden) worden de gegevens die worden vastgelegd voor elk gegevenspunt, uitgesplitst tot de kleinst mogelijke eenheid. Zo kan Voornaam een kolom zijn en Achternaam een andere kolom.

Primaire sleutel

Een waarde die ervoor zorgt dat elke record uniek is. Stel dat er twee klanten zijn met dezelfde naam, Hilde Eppink. De record van de ene Hilde Eppink heeft dan bijvoorbeeld het getal 12 als de primaire sleutel, terwijl de andere Hilde Eppink de primaire sleutel 58 heeft.

Relaties tussen bovenliggende en onderliggende tabel

Veelvoorkomende relaties tussen tabellen. Zo kan een klant verschillende orders hebben lopen. Bovenliggende tabellen hebben een primaire sleutel. Onderliggende tabellen hebben een refererende sleutel. Dit zijn waarden uit de primaire sleutel die aangeven hoe de records uit de onderliggende tabel zijn gekoppeld aan de bovenliggende tabel. Deze sleutels worden gekoppeld via een relatie.

Wat is een goed databaseontwerp?

Twee principes zijn fundamenteel voor een goed databaseontwerp:

  • Het vermijden van dubbele gegevens (ook wel redundante gegevens genoemd). Dubbele gegevens betekent niet alleen dat er opslagruimte wordt verspild, maar ook dat de kans op fouten groter wordt.

  • Controleren of gegevens juist en volledig zijn. Onvolledige of onjuiste gegevens werken door in query's en rapporten en kunnen uiteindelijk leiden tot verkeerde beslissingen.

U kunt deze problemen als volgt voorkomen:

  • Verdeel databasegegevens over tabellen die elk een afgebakend onderwerp vertegenwoordigen en een smalle focus hebben. Voorkom de duplicatie van gegevens in meerdere tabellen. (Neem klantnamen bijvoorbeeld altijd in maar één tabel op.)

  • Verbind de tabellen via sleutels en niet door gegevens te dupliceren.

  • Voeg processen toe waarmee de nauwkeurigheid en integriteit van databasegegevens kan worden ondersteund en gehandhaafd.

  • Houd bij het ontwerpen van de database rekening met de behoeften ten aanzien van de verwerking en rapportage van gegevens.

Volg deze vijf ontwerpstappen om ervoor te zorgen dat een database ook op de lange termijn bruikbaar blijft:

Stap 1: Het doel van uw database bepalen

Begin met het bepalen van het doel van de database.

Maak een korte samenvatting van het vastgestelde doel en raadpleeg deze samenvatting regelmatig om ervoor te zorgen dat u dicht bij het ontwerp blijft. Als u bijvoorbeeld een kleine database wilt ontwerpen voor een bedrijf aan huis, kunt u misschien een samenvatting schrijven zoals 'De klantendatabase is bedoeld voor het bijhouden van een lijst met klantgegevens om mailings en rapporten te kunnen versturen'. Als het om een database voor een grote onderneming gaat, zijn er misschien wel meerdere alinea's nodig om te beschrijven wanneer en hoe mensen met verschillende rollen de database en de bijbehorende gegevens gaan gebruiken. Schrijf een specifieke en gedetailleerde missieverklaring waarop u gedurende het ontwerpproces kunt terugvallen.

Stap 2: De vereiste gegevens zoeken en organiseren

Verzamel alle typen gegevens die u wilt vastleggen, zoals productnamen en ordernummers.

Begin met uw bestaande gegevens en registratiemethoden. Het is bijvoorbeeld mogelijk dat u inkooporders momenteel invoert in een grootboek of klantgegevens op papieren formulieren noteert. Gebruik deze bronnen om een overzicht te maken van de gegevens die u op dit moment verzamelt (bijvoorbeeld alle invoervelden op de formulieren). Als u weet dat er in de huidige situatie bepaalde belangrijke informatie niet wordt vastgelegd, omschrijf dan welke unieke gegevens u daarvoor wilt registreren. Elk individueel gegevenstype wordt later een veld in uw database.

Het is niet erg als u niet meteen een perfecte lijst kunt maken. U kunt de lijst namelijk altijd nog aanpassen. Het is wel belangrijk dat u in dit stadium alle personen noteert die deze gegevens gebruiken en vervolgens aan deze personen vraagt wat hun ideeën zijn.

Bedenk vervolgens wat voor gegevens of informatie de database moet opleveren en wat voor rapporten of mailings u wilt produceren. Controleer vervolgens of alle gegevens worden vastgelegd die zijn vereist om te voldoen aan deze doelen. Als u bijvoorbeeld een rapport wilt met verkoopcijfers per regio, moet u verkoopgegevens vastleggen op regioniveau. Het is vaak handig om even een opzet van het rapport te tekenen met de gegevens die u uiteindelijk wilt zien. Noteer vervolgens de gegevens die u nodig hebt om een dergelijk rapport te maken. Ga op dezelfde manier te werk voor mailings of andere uitvoer die de database moet produceren.

Voorbeeld

Stel dat uw klanten zich kunnen aanmelden (of afmelden) voor een periodieke nieuwsbrief die per e-mail wordt verstuurd en dat u een lijst wilt afdrukken met klanten die zich hebben aangemeld. U hebt dan een kolom E-mail versturen nodig in de tabel Klanten, met de toegestane waarden Ja en Nee.

Voor de personen die per e-mail een nieuwsbrief willen ontvangen, hebt u een e-mailadres nodig, waarvoor u ook een veld moet reserveren. Als u de juiste aanhef wilt gebruiken in de e-mail (zoals 'heer' of 'mevrouw'), is een veld Aanhef ook noodzakelijk. Als u gewend bent om uw klanten met hun voornaam aan te spreken in e-mailberichten, kunt u nog het veld Voornaam toevoegen.

Tip: Vergeet niet om elk stukje informatie op te splitsen in de kleinst mogelijke eenheid, zoals voornaam en achternaam voor een klantentabel. Als u weet dat u een bepaald gegevensitem (zoals de achternaam van klanten) zult gaan gebruiken bij sorteren, zoeken, berekeningen uitvoeren of rapporteren, is de vuistregel dat u dat item in een eigen veld moet opnemen.

Stap 3: Gegevens verdelen over tabellen

Verdeel de gegevensitems over hoofdentiteiten of onderwerpen, zoals producten, klanten en orders. Elk onderwerp wordt een tabel.

Nadat u de lijst met vereiste gegevens hebt samengesteld, bepaalt u de belangrijkste entiteiten (of onderwerpen) die u nodig hebt om uw gegevens te ordenen. Voorkom dubbele gegevens binnen entiteiten. Stel dat de voorlopige lijst voor een database met verkoopgegevens er zo uitziet:

Schermafbeelding van gegevensitems gegroepeerd in onderwerpen

De belangrijkste entiteiten zijn: klanten, leveranciers, producten en orders. Dit betekent dat u begint met vier tabellen: één voor gegevens van klanten, één voor gegevens van leveranciers, enzovoort. Dit hoeft niet het definitieve ontwerp te zijn, maar het is wel een goed uitgangspunt.

Opmerking: De beste databases bevatten meerdere tabellen. Laat u niet in de verleiding brengen om alle gegevens onder te brengen in één tabel. U krijgt dan te maken met dubbele gegevens, een grotere database en meer fouten. Ontwerp de database zo dat elk stukje informatie maar eenmaal wordt vastgelegd. Als u merkt dat gegevens worden herhaald, zoals het adres van een leverancier, past u de structuur van de database aan om die gegevens in een aparte tabel te plaatsen.

Laten we eens naar de onderstaande tabel kijken om erachter te komen waarom voor databasetabellen de regel 'minder is meer' niet opgaat:

Schermfragment met gegevens van producten en leveranciers

Elke rij bevat informatie over zowel het product als de leverancier. Aangezien veel producten afkomstig zijn van dezelfde leverancier, moeten de naam en adresgegevens van de leverancier vaak worden herhaald. Dit is een verspilling van schijfruimte. Het is beter om de leveranciersgegevens eenmaal op te nemen in een aparte tabel Leveranciers en die tabel te koppelen aan de tabel Producten.

Het tweede probleem met dit ontwerp wordt duidelijk wanneer u gegevens van de leverancier moet wijzigen. Stel dat u het adres van een leverancier moet wijzigen. Aangezien het adres op verschillende plaatsen voorkomt, kan het gebeuren dat u het adres op één plaats vergeet te wijzigen. Als het adres van de leverancier maar op één plaats is geregistreerd, is dit probleem niet meer aan de orde.

Nog een laatste voorbeeld om aan te tonen dat meer tabellen vaak beter is. U hebt een leverancier die maar één product levert en dat is Coho Winery. U wilt het product verwijderen uit de database, maar de naam en de adresgegevens van de leverancier behouden. Hoe kunt u met dit ontwerp de productrecord verwijderen en tegelijkertijd de leveranciersgegevens behouden? Dat kan dus niet. Aangezien elke record niet alleen gegevens van een product bevat maar ook gegevens van de bijbehorende leverancier, is het onmogelijk om gegevens selectief te verwijderen. Als u deze gegevens gescheiden wilt houden, moet u deze tabel opsplitsen: een tabel met productgegevens en een tabel met leveranciersgegevens. Als u vervolgens een productrecord verwijdert, verwijdert u alleen de gegevens van het product, niet de gegevens van de leverancier.

Stap 4: Gegevensitems omzetten in kolommen

Bepaal welke gegevens u in elke tabel moet opslaan. Deze afzonderlijke stukjes informatie worden velden in de tabel. Zo kan een tabel Werknemers velden bevatten als Achternaam, Voornaam en Datum indiensttreding.

Nadat u het onderwerp voor een databasetabel hebt gekozen, mogen in de kolommen in die tabel alleen gegevens worden opgeslagen over dat onderwerp. Zo mogen in een producttabel alleen gegevens van producten worden opgeslagen, niet van de bijbehorende leveranciers.

Gebruik de lijst die u eerder hebt gemaakt om te bepalen welke gegevens u in de tabel wilt bijhouden. In de tabel Klanten kunt u bijvoorbeeld deze gegevens vastleggen: Voornaam, Achternaam, Adres, E-mail versturen, Aanhef en E-mailadres. Elke record (klant) in de tabel bevat dezelfde set kolommen, zodat voor elke klant exact dezelfde gegevens worden opgeslagen.

Pak het lijstje erbij dat u eerder hebt gemaakt en pas dit zo nodig aan. Vergeet niet om de gegevens op te splitsen in de kleinst mogelijke velden. Als de oorspronkelijke lijst bijvoorbeeld Adres als veld bevat, splitst u dat veld op in de velden Straat, Postcode en Plaats. Als u klanten in verschillende landen hebt, kunt u nog het veld Land toevoegen. Op die manier kunt u eenvoudig mailings versturen of verkoopoverzichten per land weergeven.

Nadat u de gegevenskolommen in elke tabel hebt verfijnd, kunt u voor elke tabel een primaire sleutel gaan kiezen.

Stap 5: Primaire sleutels opgeven

Kies voor elke tabel een primaire sleutel. De primaire sleutel, zoals Productnummer of Ordernummer, vormt een unieke aanduiding voor elke record. Als u niet over een duidelijke, unieke id beschikt, kunt u een sleutel laten genereren door Access.

Er is een methode nodig om elke rij in elke tabel uniek aan te duiden. Hierboven kwam al even de situatie te sprake dat twee klanten dezelfde naam hebben. In dat geval moet er toch een manier zijn om die personen afzonderlijk te identificeren.

Elke tabel moet dus een kolom (of een set kolommen) bevatten waarmee elke rij uniek wordt aangeduid. Dit wordt de primaire sleutel genoemd. Vaak betreft het een uniek nummer, zoals een werknemersnummer of een serienummer. Access gebruikt primaire sleutels om gegevens uit verschillende tabellen snel bij elkaar te brengen en aan u te presenteren.

Soms bestaat de primaire sleutel uit twee of meer velden. Zo kan de primaire sleutel van een tabel Ordergegevens, met regelitems voor orders, bestaan uit een combinatie van deze twee kolommen: Ordernummer en Productnummer. Als een primaire sleutel uit meer dan één kolom bestaat, wordt dit ook wel een samengestelde sleutel genoemd.

Schermfragment van tabel met producten

Als u al een unieke id hebt voor de gegevens in een tabel, zoals productnummers die een unieke aanduiding vormen van alle producten in de catalogus, kunt u die waarde gebruiken. De waarde moet dan wel voldoen aan deze regels voor primaire sleutels:

  • De id is altijd uniek voor elke record. Dubbele waarden zijn niet toegestaan in een primaire sleutel.

  • Er is altijd een waarde beschikbaar voor het item. Elke record in de tabel moet een primaire sleutel hebben. Als u meerdere kolommen gebruikt om de sleutel te maken (zoals Onderdeelfamilie en Onderdeelnummer), moeten beide waarden altijd aanwezig zijn.

  • De primaire sleutel is een waarde die niet wordt gewijzigd. Aangezien ook door andere tabellen wordt verwezen naar de sleutels, betekent een wijziging van een primaire sleutel in de ene tabel een wijziging op alle plaatsen waar naar de sleutel wordt verwezen. Regelmatige wijzigingen vergroten de kans op fouten.

Als u geen duidelijke id hebt, kunt u een willekeurig, uniek nummer gebruiken als de primaire sleutel. U kunt bijvoorbeeld aan elke order een uniek ordernummer toewijzen, uitsluitend om de order te identificeren.

Tip: Als u een uniek nummer wilt maken als de primaire sleutel, voegt u een kolom toe met het gegevenstype AutoNummering. Het gegevenstype AutoNummering zorgt ervoor dat er automatisch een unieke, numerieke waarde wordt toegewezen aan elke record. Dit type id bevat geen feitelijke informatie over de rij die met de id wordt aangeduid. Een dergelijke id is ideaal als primaire sleutel omdat de getallen hetzelfde blijven, in tegenstelling tot een primaire sleutel met gegevens van een rij, zoals een telefoonnummer of de naam van een klant.

Wilt u meer zien?

Richtlijnen voor het geven van namen aan velden, besturingselementen en objecten

Kennismaking met tabellen

Training voor Excel

Training voor Outlook

De beste databases beginnen met een goed structureel ontwerp. In deze video wordt ingegaan op de vraag wat een database is, met name een RELATIONELE database die u met Access kunt maken. U ontdekt hoe u een database kunt organiseren met TABELLEN en hoe u met SLEUTELS de relatie legt tussen uw tabellen.

Wat is een database nou eigenlijk? In feite is een database gewoon een geordende verzameling gegevens. Uw kookboeken zijn databases, net als deze eenvoudige lijst met namen en telefoonnummers in Excel.

De volgende vraag is: 'Wat is er anders aan een Access-database? Waarom zou ik deze moeten gebruiken?' Het antwoord is: de STRUCTUUR VAN EEN RELATIONELE TABEL en dat betekent het volgende.

Uw gegevens zijn geordend in TABELLEN. Deze tabellen zijn aan elkaar gekoppeld met GEDEELDE VELDEN, SLEUTELS genaamd.

Sleutels hebben twee functies. Ten eerste wijst u hiermee een waarde toe aan elke rij in een tabel. U ziet hier dat in het geval van Guus Van Lingen de waarde '1' aan zijn naam is toegewezen en Luus Van Hoogstraten heeft de waarde '2' gekregen.

Sleutels koppelen tabellen ook aan elkaar door waarden tussen velden te delen. U kunt bijvoorbeeld zien dat de sleutelwaarde van Guus wordt gedeeld met twee telefoonnummers, waardoor dit zijn telefoonnummers worden. U kunt ook zien dat de sleutelwaarden van Justina Melkert drie keer worden gedeeld en die telefoonnummers zijn van haar.

Uw database bevat twee soorten sleutels. De sleutelwaarden zijn afkomstig uit dit veld en worden gedeeld in dit veld, het doelveld. Het bronveld wordt een PRIMAIRE SLEUTEL genoemd en het doelveld wordt een REFERERENDE SLEUTEL genoemd. Maar alleen de aanwezigheid van deze velden brengt nog geen koppeling tot stand. U koppelt de tabellen door een relatie tussen de tabellen te maken.

Nu denkt u misschien: 'Wacht even, dat is vast een hele klus. Waarom moet ik dit doen?' Goede vraag. Eerst en vooral, de opslag is efficiënter. Ziet u hoe vaak namen hier worden herhaald?

In een relationele structuur voert u de meeste gegevens maar één keer in. Dit kan u veel ruimte besparen. Relationele structuren verbeteren de nauwkeurigheid omdat de kans dat u fouten maakt, groter is wanneer u gegevens meerdere keren moet invoeren.

Als voorbeeld kijken we naar wat er gebeurt als u de naam van Justina Melkert verkeerd schrijft. Haar telefoonnummer wordt dan moeilijker gevonden en mogelijk vindt u de fout nooit. Omdat u de meeste gegevens in een relationele structuur maar één keer invoert, wordt de kans op fouten kleiner. En als u een fout maakt, hoeft u die maar op één plaats te corrigeren.

Relationele structuren zijn ook handig voor het vastleggen van transacties. Afhankelijk van de aard van uw database kan met een transactie worden aangegeven welke studenten zich in welke klaslokalen bevinden, welke verkopen er hebben plaatsgevonden, of aan wie u uw boek hebt uitgeleend.

Nu kent u dus de eerste drie basisstappen van het databaseontwerp. Stap 1 bestaat uit het vastleggen van alle gegevens die u wilt opslaan. In dit voorbeeld hebben we klantnamen en telefoonnummers nodig, en een manier om die nummers te categoriseren.

In stap 2 moet u alle gegevens identificeren die waarschijnlijk herhaaldelijk nodig zijn. In dit voorbeeld zijn dat de klantnamen.

In stap 3 gaat u die gegevens in een eigen tabel organiseren.

Hebt u echter al de herhaalde gegevens in het veld Type gezien? Goed gezien. Die gegevens zou u ook in een tabel kunnen indelen. Maar omdat dit slechts enkele waarden zijn, is het beter om een opzoeklijst te maken, een korte selectielijst met waarden.

Het gebruik van tabellen en sleutels om een relationele structuur te maken is een fundamentele stap in een goed databaseontwerp. Met uw relationele database in Access kunt u tijd en ruimte besparen, de kans op fouten verkleinen en transacties met uw belangrijke gegevens vastleggen zodat u efficiënter kunt werken.

Uw Office-vaardigheden uitbreiden
Training verkennen
Als eerste nieuwe functies krijgen
Deelnemen aan Office Insiders

Was deze informatie nuttig?

Bedankt voor uw feedback.

Hartelijk dank voor uw feedback! Het lijkt ons een goed idee om u in contact te brengen met een van onze Office-ondersteuningsagents.

×