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.

Probeer het zelf

Databases en web-apps kunnen grote zakelijke voordelen opleveren. Databaseontwerp is essentieel voor het bereiken van uw doelstellingen, of u nu werknemersgegevens wilt beheren, wekelijkse rapporten wilt verstrekken op basis van gegevens of orders van klanten wilt bijhouden. Als u de tijd krijgt om inzicht te krijgen in het databaseontwerp, kunt u databases bouwen die de eerste keer goed werken en die aan veranderende behoeften voldoen.

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 basistermen en -concepten te leren. Als u een nuttige database wilt ontwerpen, maakt u tabellen die op één onderwerp zijn gericht. In uw tabellen legt u alle gegevens vast die nodig zijn voor dat onderwerp in velden, die de kleinst mogelijke gegevenseenheid bevatten.

Relationele databases

Een database waarin gegevens zijn onderverdeeld in tabellen, die een soort spreadsheets zijn. Elke tabel heeft slechts één onderwerp, zoals klanten (één tabel) of producten (een andere tabel).

Records en velden

Opslag voor de discrete gegevens in een tabel. In rijen (of records) wordt elk uniek gegevenspunt opgeslagen, zoals de naam van een klant. Kolommen (of velden) isoleren de informatie die over elk gegevenspunt wordt vastgelegd in de kleinst mogelijke eenheid. De voornaam kan één kolom zijn en de achternaam kan een andere zijn.

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

Algemene relaties tussen tabellen. Eén klant kan bijvoorbeeld meerdere orders hebben. Bovenliggende tabellen hebben primaire sleutels. Onderliggende tabellen hebben refererende sleutels. Dit zijn waarden van de primaire sleutel die laten zien hoe de onderliggende tabelrecords worden gekoppeld aan de bovenliggende tabel. Deze sleutels zijn gekoppeld door 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.

U hoeft zich geen zorgen te maken over het perfect maken van uw eerste lijst. U kunt deze na verloop van tijd aanpassen. Maar houd rekening met alle mensen die deze informatie gebruiken en vraag om hun ideeën.

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.

Stel dat er slechts één product is geleverd door Coho Winery en dat u het product wilt verwijderen, maar de naam en het adres van de leverancier wilt behouden. Hoe zou u met dit ontwerp de productrecord verwijderen zonder ook de leveranciersgegevens te verliezen? Dat is niet mogelijk. Omdat elke record naast feiten over een leverancier ook feiten over een product bevat, is het onmogelijk om een record te verwijderen zonder de andere te verwijderen. Om deze feiten gescheiden te houden, splitst u deze tabel in tweeën: de eerste voor productinformatie en de tweede voor informatie over leveranciers. Wanneer u vervolgens een productrecord verwijdert, verwijdert u alleen de feiten over het product, niet de feiten over 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.

Creatie uw eerste lijst en controleer en verfijn deze. Vergeet niet om informatie op te splitsen in de kleinst mogelijke velden. Als uw eerste lijst bijvoorbeeld Adres als veld bevat, kunt u dit opsplitsen in Straatadres, Plaats, Provincie en Postcode, of, als uw klanten wereldwijd zijn, in nog meer velden. Op die manier kunt u bijvoorbeeld mailings in de juiste indeling uitvoeren of orders per staat rapporteren.

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 set kolommen) bevatten die elke rij uniek identificeert. Dit wordt de primaire sleutel genoemd en is vaak een uniek nummer, zoals een werknemer-id-nummer of een serienummer. Access maakt gebruik van primaire sleutels om snel gegevens uit meerdere tabellen te koppelen en de gegevens voor u samen te brengen.

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

Meer hulp nodig?

Meer opties?

Verken abonnementsvoordelen, blader door trainingscursussen, leer hoe u uw apparaat kunt beveiligen en meer.

Community's helpen u vragen te stellen en te beantwoorden, feedback te geven en te leren van experts met uitgebreide kennis.