Inleiding tot Access

Aan de slag met databases

Uw browser biedt geen ondersteuning voor video.

Probeer het zelf

Databases en web-apps kunnen grote bedrijfsvoordelen opleveren. Databaseontwerp is essentieel voor het bereiken van uw doelen, of u nu werknemersgegevens wilt beheren, wekelijks rapporten wilt verstrekken over gegevens of klantorders wilt bijhouden. Door de tijd te investeren om het databaseontwerp te begrijpen, kunt u databases maken die de eerste keer goed werken en die tegemoet komen aan 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 basistermen en concepten te leren. Als u een handige 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

Storage voor de afzonderlijke gegevens in een tabel. Rijen(of records)slaan elk uniek gegevenspunt op, zoals de naam van een klant. Kolommen(of velden)isoleren de gegevens die over elk gegevenspunt worden vastgelegd in de kleinst mogelijke eenheid. Voornaam kan een kolom zijn en 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

Veelvoorkomende relaties tussen tabellen. Eén klant kan bijvoorbeeld meerdere orders hebben. Bovenliggende tabellen hebben primaire sleutels. Onderliggende tabellen hebben vreemde sleutels,die waarden zijn van de primaire sleutel die laten zien hoe de onderliggende tabelrecords zijn 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.

Maak u geen zorgen om uw eerste lijst perfect te maken, u kunt deze in de tijd verder afstemmen. Maar houd rekening met alle personen 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 wordt geleverd door Coho Winery en u het product wilt verwijderen, maar de naam en adresgegevens 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 feiten over een product bevat naast feiten over een leverancier, is het onmogelijk om een record te verwijderen zonder de andere te verwijderen. Als u deze feiten gescheiden wilt houden, splitst u deze tabel op in twee: de eerste voor productgegevens en de tweede voor leveranciersgegevens. 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.

Maak uw eerste lijst en controleer en verfijn deze. Vergeet niet om gegevens op te delen in de kleinst mogelijke velden. Als uw eerste lijst bijvoorbeeld Adres als veld heeft, kunt u dit opsnuiten in Adres, Plaats, Provincie en Postcode, of, als uw klanten globaal zijn, in nog meer velden. Op die manier kunt u bijvoorbeeld mailings in de juiste indeling of rapport over orders per status uitvoeren.

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 getal, zoals een werknemer-id of een serieel nummer. Access gebruikt 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?

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

Was deze informatie nuttig?

×