Database-ontwerp. Database-ontwerp. Ondersteuning Informaticabeheer. Marleen Decuyper Ria Van Eysendeyk. Ondersteuning Informaticabeheer

Maat: px
Weergave met pagina beginnen:

Download "Database-ontwerp. Database-ontwerp. Ondersteuning Informaticabeheer. Marleen Decuyper Ria Van Eysendeyk. Ondersteuning Informaticabeheer"

Transcriptie

1 Alle rechten voorbehouden. Behoudens de uitdrukkelijk bij wet bepaalde uitzonderingen mag niets uit deze uitgave worden verveelvoudigd, opgeslagen in een geautomatiseerd gegevensbestand of openbaar gemaakt, op welke wijze ook, zonder de uitdrukkelijke voorafgaande en schriftelijke toestemming van het VVKSO. Database-ontwerp Database-ontwerp Ondersteuning Informaticabeheer Ondersteuning Informaticabeheer Marleen Decuyper Ria Van Eysendeyk IB Marleen Decuyper Ria Van Eysendeyk IB D/2002/784/049

2 Inhoud Werken met data Databases Databasesystemen RDBMS OODBMS ORDBMS Data en MS-Office Stappen bij het ontwerpen van een database Datamodel Datadictionary Veldeigenschappen Zelf een tabel maken Probleemdefinitie Tabelstructuur Indexeren Tabelstructuur wijzigen Tabeleigenschappen Primaire sleutel Een database implementeren Oefeningen Overzicht Een tabel aanmaken Tabelstructuur aanpassen Tabeleigenschappen Primaire sleutel Het Entiteit-Relatie model Entiteiten Relatie Attributen Cardinaliteit Optionaliteit Voorbeeld Uitgewerkt voorbeeld Oefeningen Een relationele databank Tabellen Primaire sleutel Namen van velden Koppelingen tussen tabellen Het normalisatieproces Niet genormaliseerde gegevensgroepen Repeterende groepen Partiële functionele afhankelijkheid Transitieve functionele afhankelijkheid Overzicht Uitgewerkt voorbeeld Oefeningen Omzetting datamodel naar databaseontwerp Entiteiten Zelfstandige entiteiten Relaties zonder attributen Één-op-één relatie Eén-op-veel relatie Veel-op-veel relatie Relaties met attributen Eén-op-één relatie Een-op-veel relatie Veel-op-veel relatie Overzicht Uitgewerkt voorbeeld Oefeningen Een database implementeren Het tabel-ontwerpscherm Veldnaam Gegevenstype Beschrijving... 47

3 Werken met data. Databases Wat is een database? Het begrip database Soorten database managementsystemen Het begrip datamodel Datadictionary Meestal speelt het voor langere tijd bewaren van gegevens, een belangrijke rol in informatiesystemen. Denk bijvoorbeeld aan de loonadministratie in een bedrijf. Welke gegevens moeten hiervoor onder andere bijgehouden worden? Als deze gegevens op een gestructureerde, digitale manier bijgehouden worden, is het mogelijk de verwerking van die gegevens tot bijvoorbeeld jaarlijkse loonfiches voor alle werknemers, te automatiseren. Dat bespaart hopen werk! Keerzijde van de medaille: een degelijke structuur opbouwen om de gegevens te bewaren, kost soms de spreekwoordelijke bloed, zweet en tranen. Het is gedeeltelijk een wetenschap en gedeeltelijk kunst. Het wetenschappelijke deel is het onderwerp van de volgende hoofdstukken: je leert hoe je, door het gebruik van bepaalde technieken, tot een werkbare structuur komt. Zo'n gestructureerde, digitaal bewaarde verzameling gegevens, opgezet om in een bepaalde informatiebehoefte te voorzien, wordt een database of gegevensbank genoemd. Wanneer heb je er één nodig? Een database is een hulpmiddel voor de informatievoorziening. Niet alle gegevens die in een organisatie nodig zijn hoeven te worden gestructureerd in een database. In onder andere volgende gevallen heb je een database nodig. - De gegevens worden frequent opgevraagd en gebruikt. - De zoekinspanning van de gebruiker moet minimaal zijn, m.a.w. zoekacties moeten snel resultaat opleveren. In plaats van de gebruiker te laten bladeren door lange lijsten is het gewenst dat het systeem het gevraagde zoekt en aanbiedt. - Er is behoefte aan antwoorden op complexere vragen dan alleen het opvragen van opgeslagen gegevens. Het moet mogelijk zijn om het systeem te laten zoeken naar combinaties van gegevens en om filters te gebruiken. Wat komt er allemaal bij kijken? Als besloten is om een database op te zetten, dan moet de precieze functie van die database voor de organisatie in kaart gebracht worden. Daarbij komen verschillende aspecten aan bod: het gaat om heel wat meer dan alleen maar 'Welke gegevens moeten bewaard worden?'. - Er moet duidelijkheid komen over de omvang en aard van het domein waarover informatie gevraagd zal worden. Over welke dingen gaat het, welke eigenschappen van die dingen zijn van belang (of kunnen dat in de toekomst worden) en welke niet. Een domein is het relevante deel van de werkelijkheid voor wat betreft de informatiebehoefte. De dingen in het domein worden entiteiten genoemd. Bijvoorbeeld VVKSO Informaticabeheer Databases - pagina 5 in het domein personeelsadministratie zijn de volgende entiteiten belangrijk: personeelslid, afdeling, functiebeschrijvingen Som enkele domeinen en betrokken entiteiten op voor de schooladministratie. - Er moet ingeschat worden welke (soorten) vragen in welke frequentie gesteld zullen worden. Als die frequentie zeer hoog is, dan zal dat extra eisen stellen aan de computerimplementatie van de database (hierover later meer). Er moet ingeschat worden of bepaalde combinaties van gegevens opgevraagd zullen worden, of dat er bepaalde zoekfilters gebruikt gaan worden. Bespreek de bevraging van een database met rekeninginformatie van een bank (frequentie, soort vragen, soort bewerkingen). - Het verwachte aantal gebruikers van de database. Dit kan variëren van tot zeer veel. Vormen ze een homogene groep? Worden de gebruikers getraind in het werken met de database, of gaat het om incidentele gebruikers? Wat is een acceptabele wachttijd op een antwoord van het databasesysteem? Hoe zit dit voor de database met rekeninginformatie? - Het verwachte aantal externe softwarepakketten dat de database aanspreekt. Als de database rechtstreeks of via internet verbonden is met andere computerprogrammas, dan zal het databasesysteem daardoor belast worden, mogelijk met nadelige gevolgen voor de "gewone" gebruikers. Zijn er externe softwarepakketten die eventueel het databasesysteem van de schooladministratie aanspreken? Geef voorbeelden. - De te verstrekken privileges aan de gebruikers. Het kan de bedoeling zijn dat verschillende (groepen) gebruikers verschillende rechten van toegang tot de gegevens krijgen. De gegevens moeten selectief beveiligd en beschermd kunnen worden. Mag iedereen volledige toegang krijgen tot alle gegevens in het databasesysteem van de schooladministratie? Verduidelijk je antwoord. - Het moet duidelijk zijn welke partijen het recht (of de plicht) hebben gegevens in te voeren in en/of te verwijderen uit de database. Ook hier spelen kwantitatieve aspecten zoals de omvang van de ingevoerde gegevensstroom een rol. Hoe zit dat voor de schooladministratie en de database met rekeninginformatie van de bank? - Er moet ingeschat worden hoe duurzaam de gegevens moeten zijn. Soms zijn alleen actuele gegevens van belang (bijvoorbeeld verkeersinformatie), soms moeten gegevens na 50 jaar nog beschikbaar zijn (bijvoorbeeld bevolkingsregister). Hoe zit dat voor de schooladministratie en de database met rekeninginformatie van de bank? - Er moet ingeschat worden hoe duurzaam de structuur van de gegevens is. Let op het grote verschil van dit punt met het hiervoor genoemde punt. Een DBS (database systeem, zie verder) is ontworpen op (snelle) veranderingen van de inhoud, maar wel binnen steeds dezelfde structuur van de database. Als de informatiebehoefte zou veranderen, dan moet soms de gegevensstructuur van de database her- VVKSO Informaticabeheer Databases - pagina 6

4 zien worden. Dit kan zeer duur zijn, vandaar dat dit punt extra aandacht verdient. Overigens is het gebruikelijk dat een database meegroeit met een organisatie of met een toepassing. Het moet daarom mogelijk zijn om de gegevensstructuur aan te passen. Aan de hand van een analyse zoals hiervoor beschreven, kunnen beslissingen genomen worden over het systeem (hardware, software) waarin de database zal geïmplementeerd worden, wat de database moet bevatten en wie (wat) en hoe ze zal gebruikt worden. In de volgende hoofdstukken houden we ons voornamelijk bezig met welke gegevens er moeten bewaard worden en hoe..2 Databasesystemen In een database worden gegevens digitaal bijgehouden. Je hebt dus software nodig om de gegevens in te brengen en te beheren. De software die het werken met een database mogelijk maakt is het database managementsysteem (DBMS). Het geheel van database en DBMS is dan het databasesysteem (DBS). De volgende figuur geeft een schematisch overzicht van een databasesysteem en drie partijen die met de DBS te maken hebben: gebruikers, applicatiesoftware en een beheerder. De pijlen geven mogelijke gegevensstromen aan. Gebruiker Gebruiker Gebruiker Beheerder meer). In een RDBMS worden gegevens typisch bijgehouden in tabellen (rijen en kolommen). RDBMSen zijn zeer geschikt voor applicaties met eenvoudige data en uitgebreide bevragingsmogelijkheden, de typische administratieve applicaties. Enkel eenvoudige datatypes (numeriek, tekst ) kunnen bijgehouden worden. Een gebruiker kan zelf geen datatypes toevoegen. Een grote troef voor RDBMSen is dat ze allen bevraagd kunnen worden met een standaardtaal: SQL (Structured Query Language). MS-Access, het database managementsysteem waarmee je leert werken is een RDBMS..2.2 OODBMS Een OODBMS of Object-Oriented Database Management System is een DBMS dat volledig beantwoord aan de OO-technologie. Object bases bevatten niet alleen de (statische) toestandsgegevens van reële objecten, maar ook informatie over het gedrag van objecten op externe impulsen (gebeurtenissen). De meeste OODBMSen breiden een bestaande OO-programeertaal uit met database functionaliteit. Prototypen van zulke systemen verschenen in het begin van de jaren tachtig. Tegenwoordig zijn er een aantal ODBMSen commercieel verkrijgbaar, zoals: ObjectStore, O 2, GemStone, Objectivity/DB, ONTOS en Versant. Object databases maken het verder mogelijk om data van arbitraire complexiteit op te slaan; de programmeur heeft de vrijheid om nieuwe typen te definiëren. Verder zijn overerving en inkapseling belangrijke concepten binnen OO-talen en dus ook binnen OO-databases. Applicatie Applicatie "Echte" OODBMSen zijn nog niet zo lang beschikbaar. Dit betekent dat er nog het nodige te wensen overblijft rond standaardisatie en query-talen. Verder is het programmeren van applicaties met persistente (bewaarde) objecten niet altijd eenvoudig. Omdat OODBMSen hun wortels hebben in OOPLs (Object Oriented Programming Language) worden ze ook soms Persistent Programming Languages (PPL) genoemd. databasemenagement systeem (DBMS ) database (DB) databasesysteem (DBS) Er bestaan verschillende types DBMS. Ze worden gecategoriseerd aan de hand van de manier waarop (structuur) de gegevens worden opgeslagen. Relationele gegevensbanken vormen thans het meest verspreide systeem voor het beheer van persistente (te bewaren) gegevens. Andere, oudere vormen van gegevensbeheer zijn onder meer: hiërarchische databases en netwerkdatabases. Een recente ontwikkeling is de opkomst van objectgeoriënteerde databases, ook wel object bases genoemd..2.3 ORDBMS Een alternatief scenario dat goed aansluit bij de bestaande investeringen is het opslaan van objecten in relationele databases. Hier zijn weer twee benaderingen mogelijk. De eerste vertrekt van standaard relationele databases, en legt daarboven een "schil" waarin de speciale kenmerken van objecten opgeslagen worden in rijen van tabellen. Voor iedere klasse introduceer je dan een tabel met de corresponderende attributen. Een andere oplossing is dat het relationele model uitgebreid wordt met objectgeoriënteerde kenmerken, zoals overerving, bewaarde methodes (stored methods) en nog een paar andere voorzieningen. Zo'n systeem kan dan SQL-compatible blijven, zolang geen gebruik van de uitbreidingen wordt gemaakt. In beide gevallen spreekt men van een ORDBMS, een Object-Relational DBMS. Voorbeelden hiervan zijn Oracle, Sybase en Informix..2. RDBMS RDBMSen of Relationele Database Managmentsystemen zijn reeds een aantal jaren de meest gebruikte DBMSen. Ze zijn gebaseerd op het Relationeel model (hierover later VVKSO Informaticabeheer Databases - pagina Data en MS-Office Als je zelf kunt bepalen in welk formaat de nodige gegevens bewaard worden dan opteer je waarschijnlijk voor een Accesdatabase (mdb), een Excel-werkblad (xls) of een database server zoals MS SQL Server. VVKSO Informaticabeheer Databases - pagina 8

5 Wanneer kies je best voor een Excel-werkblad en wanneer voor een RDBMS zoals Access of SQL Server? Excel is geschikt voor het bewaren van kleine hoeveelheden data waarmee je berekeningen moet uitvoeren. Voor grotere hoeveelheden is een relationele database beter geschikt. Je kunt dan altijd Excel nog gebruiken voor het rekenwerk en voor de analyse van gegevens. MS-Access is een zuivere RDBMS. Een veld kan wel als datatype OLE-object hebben, maar dit heeft niets te maken met een objectoriëntatie. Velden van het type OLE-object worden gebruikt om gegevens op te slaan die met andere programma's zijn gemaakt, zoals Microsoft Word- of Microsoft Excel-documenten, figuren, geluiden en andere typen binaire gegevens. OLE-objecten kunnen worden gekoppeld aan of ingesloten in een veld in een Microsoft Access-tabel. Data hoeven niet bewaard te worden in een Office component zoals een Excel-werkblad of een Access-database om ze te kunnen benaderen via Office. Office XP kan via de OLEDB of ODBC (Open Database Connectivity) technologie gebruik maken van data bewaard in een ander dan Office-formaat. Dit is nuttig als je geconfronteerd wordt met reeds bestaande data die bijvoorbeeld al door andere applicaties gebruikt worden..3 Stappen bij het ontwerpen van een database Het motto voor het ontwerpen van een database is zeker: 'Bezint voor je begint'. Een slecht ontworpen database kan een firma letterlijk duur te staan komen. Databaseontwerpers voor grote databases is dit teamwerk- worden goed betaald. Maar voor wat, hoort wat natuurlijk! De verantwoordelijkheid is groot en de job niet altijd even gemakkelijk. Het ontwerp van een database verloopt in verschillende stappen die hieronder schematisch weergegeven worden. Analyse van de informatiebehoefte Bepalen van het domein. Benoemen van de entiteiten Opstellen en documenteren van het datamodel Keuze van het DBMS Opstellen, invoeren en documenteren van het dataontwerp Invoer data Aan de hand van de analyse van de informatiebehoefte kan een datamodel (zie verder) opgesteld worden. Als dit gebeurd is, kan de structuur bepaald worden waarin de gegevens zullen bewaard worden: het DBMS waarin gewerkt wordt, wordt gekozen. Het datamodel moet vertaald worden naar een dataontwerp (dataschema) dat kan ingevoerd worden in het DBMS. Als het dataontwerp geïmplementeerd is, kunnen uiteindelijk de data ingevoerd worden. VVKSO Informaticabeheer Databases - pagina 9.4 Datamodel Wat is een model? Een model is een abstracte voorstelling van (een deel van) de reële wereld. Dit wil zeggen dat de maker van een model bepaalde essentiële kenmerken van de realiteit isoleert, en alle andere kenmerken als bijkomstig achterwege laat. Een gegevensmodel of datamodel is een abstracte voorstelling van een informatiesysteem, waarbij alle dynamische aspecten (generatie, transformatie en verwerking van gegevens) achterwege blijven en slechts de statische informatiestructuren, hun beperkingen en hun onderlinge verbanden van belang zijn. Een datamodel gaat over de structuur van gegevens, niet over de inhoudelijke opvulling. Een gegevensmodel kan specifiëren dat een bedrijf de namen en adressen van zijn werknemers opslaat. Het zegt niet dat er een werknemer bestaat met de naam Peeters en evenmin dat de namen en adressen worden verkregen via de personeelsdienst. Het kan wel bepalen dat ieder adres een postnummer moet bevatten. Een procesmodel brengt de dynamische aspecten in beeld. Een gegevensstroomdiagram (Data Flow Diagram, DFD) is hiervan een voorbeeld. Het toont op een visuele manier waar de data gegeneerd en verwerkt worden en waarheen ze getransporteerd worden. Een gegevensmodel wordt gebruikt voor het structureren van een database terwijl een gegevensstroomschema eerder gebruikt wordt voor het programmeren. Waarom modelleren? Een gegevensmodel moet een duidelijke, éénduidige voorstelling geven van de gegevens en hun onderlinge verbanden. Het moet voldoende visueel zijn zodat het kan dienen als communicatiemiddel tussen de verschillende belanghebbenden van het informatiesysteem: - ontwerpers, - analisten, - gebruikers, - beheerders, -... Pas als alle betrokken partijen het eens zijn over het model, kan er verder ontwikkeld worden. Welk model gebruiken? Er worden heel wat verschillende datamodellen gebruikt. Het Entiteit-Relatie (Entity- Relationschip) Model is een van de bekendste traditionele modellen. Er bestaan verschillende 'dialecten' van, ze verschillen hoofdzakelijk in notatie. Een voordeel van het gebruik van een algemeen bekend model is dat de samenwerking tussen de verschillende mensen die betrokken zijn bij het ontwerp, vlot kan verlopen. Geen extra trainingen nodig: iedereen kan het model interpreteren en er zijn/haar zegje over hebben. In het volgende hoofdstuk maak je kennis met een vereenvoudigde vorm van het Entiteit-Relatie Model. VVKSO Informaticabeheer Databases - pagina 0

6 .5 Datadictionary Bij het ontwikkelen van een database is het belangrijk dat er zoveel mogelijk informatie bestaat over alle gegevens die bijgehouden worden. Hiervoor wordt meestal een datadictionary, een gegevens-woordenlijst, gebruikt. Een datadictionary is een verzameling van eigenschappen van gegevens. Hij bevat dus gegevens over gegevens (metagegevens). Een datadictionary kan vele vormen aannemen. Hij kan afzonderlijk bestaan of toegevoegd worden aan een datamodel. Er zijn softwarepakketten op de markt voor de creatie en het beheer van een datadictionary. Vaak zijn deze gekoppeld aan andere software waarmee de implementatie van de database (gedeeltelijk) geautomatiseerd kan worden. De datadictionary is niet alleen belangrijk voor de ontwikkeling van een database, maar is ook een uitstekend middel om de database te documenteren. Dit is belangrijk voor het onderhoud, het beheer en het latere gebruik van de databank. Een datadictionary kan onder andere volgende gegevens bevatten: - gegevens m.b.t. de identificatie zoals de naam van het gegeven, eventuele synoniemen, een beschrijving waarin de betekenis van het gegeven wordt toegelicht; - gegevens m.b.t. de representatie zoals gegevenstype, lengte, invoerformaat; - gegevens ter ondersteuning van de beveiliging zoals toegestane gebruikers, hun wachtwoorden en toegangsrechten (lezen, wijzigen, toevoegen, verwijderen); - gegevens ter ondersteuning van de integriteit (juistheid van de gegevens) zoals toegestane waarden, validatieregels (waarover later meer); - gegevens ter verbetering van de prestaties zoals statistische gegevens over het gebruik van de gegevens. Voorbeeld: gegevenselementbeschrijving uit een klantenadministratie. 2 Het Entiteit-Relatie model Entiteiten en relaties Attributen Cardinaliteit Optionaliteit In dit hoofdstuk maak je kennis met een datamodel dat zeer geschikt is voor het ontwerpen van een database: het Entiteit-Relatie Model (Entity Relationship Model), afgekort ER-model. Het is in 976 in informaticaland héél lang gelden - door P. Chen geïntroduceerd. Sindsdien zijn er verschillende varianten ontwikkeld. In het Entiteit-Relatie model wordt gebruik gemaakt van: - entiteiten, - attributen, - relaties (relationships). 2. Entiteiten Een entiteit is simpelweg iets dat je kunt identificeren en waarvan je gegevens wilt bijhouden: auto, persoon, magazijn, bankrekening, computer... Een entiteit bestaat uit: - een unieke naam; - een definitie die objectief en ondubbelzinnig aangeeft, welke objecten door de entiteit worden gemodelleerd (en soms even belangrijk: welke niet); - een lijst van attributen (zie verder). Voorbeeld BENAMING: KredietlimietKlant Naam werknemer BETEKENIS: TYPE: Het maximum bedrag dat een klant verschuldigd mag zijn. Numeriek Definitie een natuurlijke persoon die in loondienst is van de firma; personen die slechts occasioneel voor de firma werken en personen die via een interimkantoor tewerkgesteld zijn, worden niet als werknemers beschouwd. LENGTE: Max. 7 cijfers Attributen naam, adres, telefoonnummer, geboortedatum, datum-in-dienstname FORMAAT: ,00 zowel voor invoer als bij uitvoer MOGELIJKE WAARDEN: Positief geheel getal kleiner dan ,00 ENTITEIT: TOEGANGSBEVEILIGING: KLANT Invoer en wijziging enkel toegestaan aan werknemers van de financiële afdeling. Geen toegangsbeveiliging voor consultatie. In een database voor een uitleenbibliotheek worden onder andere volgende gegevens bijgehouden: Boeknummer, DatumUitlening. Geef van beide een (intuïtieve) beschrijving voor een datadictionary. VVKSO Informaticabeheer Databases - pagina Voorstelling Een entiteit wordt voorgesteld door een rechthoek. Werknemer 2.2 Relatie Een relatie is een verband tussen twee of meer entiteiten dat model staat voor een overeenkomstige band tussen de reële objecten. Een relatie bestaat uit: - een naam, uniek binnen het beschouwde diagram; - een lijst van betrokken entiteiten; VVKSO Informaticabeheer Databases - pagina 2

7 - een definitie die objectief en ondubbelzinnig aangeeft, in welke omstandigheden precies het veronderstelde verband aan- of afwezig is tussen de gespecificeerde entiteiten; - een lijst van attributen (zie verder). Voorbeeld Naam Werkt in Deelnemende entiteiten werknemer, afdeling Definitie Attributen Voorstelling een werknemer werkt in een afdeling als hij verantwoording verschuldigd is aan het hoofd van die afdeling aantal werkuren Een relatie wordt voorgesteld als een verbindingslijn tussen de betrokken entiteiten. Werknemer Werkt in Afdeling In een groothandel worden bijvoorbeeld artikelgegevens bijgehouden, o.a. naam, inkoopprijs, en hoeveelheid in voorraad. Bij het interventariseren wil men, per artikel, de waarde van de voorraad kennen. Je zou hiervoor een attribuut WaardeVoorraad kunnen voorzien waarbij WaardeVoorraad = Inkoopprijs * HoeveelheidInVoorraad. Dit betekent echter dat om de integriteit van de database te behouden bij elke verandering van de voorraad of de inkoopprijs ook de waarde van dit attribuut moet aangepast worden. Daarom worden procesgegevens meestal niet opgenomen in de database. Ze worden berekend op het moment dat ze nodig zijn. Een attribuut bestaat uit de volgende elementen: - een naam, uniek binnen de collectie attributen van dezelfde entiteit of relatie; - een entiteit of relatie waarvan het attribuut een kenmerk is; - een domein, dit is de collectie van alle mogelijke waarden die het kenmerk kan aannemen; - een definitie die éénduidig de interpretatie van de gekozen waarde uit het domein aangeeft; - het al dan niet verplichte karakter van het attribuut: moet elke instantie van de gegeven entiteit of relatie over deze eigenschap beschikken, of is dit optioneel, met andere woorden, modelleer je ook instanties waarvoor deze eigenschap irrelevant of onbekend is. Voorbeeld De naam van de relatie kan al dan niet vermeld worden. Het pijltje is hier enkel een hulpmiddel bij het lezen van het diagram van links naar rechts: werknemer werkt in afdeling. Naam Entiteit personen ten laste werknemer 2.3 Attributen Iedere entiteit en relatie is voorzien van een collectie van nul of meer attributen. Een attribuut is een eigenschap die met de instanties van de entiteit of de relatie geassocieerd wordt. Entiteiten hebben bijna altijd attributen. Relaties kunnen gemakkelijk voorkomen zonder attributen. Samengestelde gegevens Je wenst bijvoorbeeld gegevens op te slaan van personen zodat deze telefonisch of per brief kunnen gecontacteerd worden. Als attributen van de persoon heb je dan nodig: naam, adres en telefoonnummer. Je zou dus kunnen opteren voor drie attributen. Dit is echter niet handig. Als je bijvoorbeeld een adresetiket wilt samenstellen, heb je straat, postnummer en gemeente apart nodig. De gegevens naam, adres en telefoonnummer zijn samengestelde gegevens: naam bevat zowel voor- als familienaam, adres bevat straat, straatnummer, postnummer en gemeente en telefoonnummer bevat zonenummer en eigenlijke nummer. Als je de deelgegevens van een samengesteld gegeven afzonderlijk gebruikt, is het beter ze te beschouwen als afzonderlijke attributen. Zo splits je naam waarschijnlijk best op in de attributen voornaam en familienaam. Adres kan gesplitst worden in straat, postnummer en gemeente. Meestal zal het geen zin hebben om straatnaam en straatnummer afzonderlijk op te splitsen, gewoon omdat ze niet afzonderlijk gebruikt worden. Procesgegevens Een procesgegeven of berekend gegeven is een gegeven waarvan de waarde bepaald wordt door de waarde van één of meer andere gegevens. VVKSO Informaticabeheer Databases - pagina 3 Domein de natuurlijke getallen, inclusief 0 Definitie het aantal personen dat fiscaal ten laste van de medewerker is, volgens opgave door de medewerker zelf Verplicht Voorstelling ja De attributen worden bij in de rechthoek geschreven. In diagrammen worden ze meestal weggelaten om de overzichtelijkheid niet te schaden. Werknemer naam adres telefoonnummer datum-in-dienst 2.4 Cardinaliteit De cardinaliteit van een relatie geeft aan, hoeveel elementen van een betrokken entiteittype maximaal in relatie kunnen staan met één instantie van de andere entiteittypes. Daarbij zijn de toegelaten waarden: één of veel. VVKSO Informaticabeheer Databases - pagina 4

8 Voorbeeld Als je de relatie 'persoon is ondergeschikte van manager' bekijkt, dan gelden waarschijnlijk de volgende twee beschouwingen betreffende de cardinaliteit: - iedere werknemer heeft (is ondergeschikt aan) hoogstens één manager; - een manager kan veel ondergeschikten (ondergeschikte werknemers) hebben. In een gegevensstructuurdiagram geven we de cardinaliteit aan door een markering van de lijnen (relaties) op de plaats waar ze de rechthoeken (entiteiten) bereiken: - als de instantie van de desbetreffende entiteit uniek is (d.w.z. hoogstens één), plaats je een dwarsstreepje op de lijn vlakbij de entiteit; - als de instantie van de desbetreffende entiteit verscheidene malen kan voorkomen (d.w.z. hoogstens veel), plaats je een kraaienpoot op de lijn tegen de entiteit. - als de instantie van de desbetreffende entiteit optioneel is (d.w.z. minstens nul), plaatsen we een cirkeltje op de lijn. persoon Het verplicht karakter van een relatie is een zeer strenge eis. Als een relatie verplicht is, wil dat zeggen dat je geen enkele situatie kunt modelleren waarin de relatie niet voorkomt, zelfs niet tijdelijk. Om de optionaliteit te bepalen, stel je een vraag in de vorm: - Moet een persoon minstens één contract hebben? - Moet een contract minstens door één persoon ondertekend zijn? Bij een positief antwoord: optionaliteit één, anders nul. contract Werknemer Manager 2.6 Voorbeeld Voor een relatie tussen twee entiteiten zijn er dus, wat de cardinaliteit betreft, de volgende mogelijkheden: één-op-één, één-op-veel en veel-op-veel. Een één-op-één-relatie wordt ook : genoteerd, een één-op-veel-relatie :n (lees: één op n) en een veel-opveel-relatie m:n (lees: m op n). Datamodel van een verkoop Klant Order Verkoper Om de cardinaliteit te bepalen, stel je een vraag in de vorm: - Kan een werknemer meer dan één manager hebben? - Kan een manager meer dan één werknemer hebben? Bij een positief antwoord: cardinaliteit veel, anders één. 2.5 Optionaliteit De optionaliteit van een relatie geeft aan, hoeveel elementen van een betrokken entiteittype minimaal in relatie moeten staan met één instantie van de andere entiteittypes. Daarbij zijn de toegelaten waarden: nul of één. Voorbeeld Als je in een juridische database de entiteiten 'natuurlijke persoon' en 'arbeidscontract' beschouwt, met daartussen de relatie 'persoon werkt onder contract', dan gelden de volgende vaststellingen omtrent de optionaliteit: - een natuurlijke persoon heeft niet noodzakelijk een arbeidscontract ; - ieder arbeidscontract heeft noodzakelijk betrekking op een persoon. In een gegevensstructuurdiagram geven we de optionaliteit aan door het aanbrengen van een symbool op de lijnen (relaties) dichtbij de rechthoeken (entiteiten), naast de tekens voor cardinaliteit: - als de instantie van de desbetreffende entiteit verplicht is (d.w.z. minstens één), plaatsen we een dwarsstreepje op de lijn; VVKSO Informaticabeheer Databases - pagina 5 Volgens dit datamodel gelden de volgende regels: - een klant die nog geen order heeft geplaatst, kan bestaan; - een verkoper die nog niets heeft verkocht, kan bestaan; - een product dat nog niet verkocht is kan bestaan; - een order van een bestaand product moet via een bestaande verkoper door een bestaande klant gedaan worden. Welke attributen zou je aan elke entiteit toekennen? 2.7 Uitgewerkt voorbeeld Datamodel voor Computerpark Product Er zijn 6 belangrijke entiteiten: Computer, Randapparaat, Software, Verbruiksproduct, Licentie en Leverancier. Met randapparaat wordt een uitwendig randapparaat bedoeld, bijvoorbeeld: hub, printer, modem, scanner De relaties tussen de entiteiten Levertx, Heeft, Draait op, Is verbonden met, Connecteert worden getoond in het volgende diagram samen met hun cardinaliteit en optionaliteit. VVKSO Informaticabeheer Databases - pagina 6

9 (In deze oplossing wordt verondersteld dat de computers in netwerk verbonden zijn via een hub, d.w.z. de computers zijn onderling niet rechtstreeks verbonden.) Bestudeer het volgende diagram aandachtig. Ga, wat de cardinaliteit en de optionaliteit betreft, na wat deze precies betekenen. Waarom is bijvoorbeeld de relatie tussen Leverancier en Verbruiksproduct anders dan tussen Leverancier en Computer of Leverancier en Randapparaat? Diskettestation CD/DVD RAM RAMtype RAMUitTeBreiden Beeldscherm Klavier Muis Geluidskaart Netwerkkaart ISATotaal ISABezet PCITotaal PCIBezet BIOS Moederkaart Chipset Extras Opmerkingen merk, type (samengesteld gegeven) merk en type van ingebouwd CD of DVD-station (samengesteld gegeven) aanwezige hoeveelheid RAM type uitbreidingsmogelijkheid merk, type (samengesteld gegeven) merk, type (samengesteld gegeven) merk, type (samengesteld gegeven) merk, type (samengesteld gegeven) merk, type (samengesteld gegeven) totaal aantal ISA-uitbreidingsgleuven aantal bezette ISA-uitbreidingsgleuven totaal aantal PCI-uitbreidingsgleuven aantal bezette PCI-uitbreidingsgleuven naam naam naam soort, merk en type van extra ingebouwde onderdelen, bijvoorbeeld zipdrive (samengesteld gegeven) algemene opmerkingen i.v.m. het toestel Randapparaat Per entiteit worden volgende attributen bewaard. De domeinen worden niet aangegeven omdat ze vrij evident zijn. Computer Naam Definitie Verplicht ComputerID identificatie van de computer, naam waaronder de PC gekend is, bijvoorbeeld PC0, Joske... Serienummer serienummer gegeven door producent Ja Merk merknaam of 'wit product' Ja Type naam van het type zoals gekend bij producent Lokaal locatie waar toestel zich bevindt, bijvoorbeeld: B, Directiebureel... Functie bijvoorbeeld: lescomputer, labocomputer, server, internetserver... Processor type en klokfrequentie Ja Harde schijf merk, type, capaciteit van alle ingebouwde schijven (samengesteld gegeven) VVKSO Informaticabeheer Databases - pagina 7 Ja Ja Ja Naam Definitie Verplicht RandapparaatID identificatienummer van het specifieke randapparaat Ja Functie functie, bijvoorbeeld: poort, netwerkkaart, modem, printer Merk naamproducent Ja Type naam van het type zoals gekend bij producent Ja Beschrijving Doel Software voornaamste karakteristieken waarvoor het randapparaat gebruikt wordt, bijvoorbeeld: randapparaat, reserve, didactisch materiaal Naam Definitie Verplicht NaamSoftware inclusief versienummer, bijvoorbeeld MS Word 9.0 Ja Producent AantalCD LocatieCD bijvoorbeeld Microsoft aantal installatie cd's aanduiding waar de cds bewaard worden VVKSO Informaticabeheer Databases - pagina 8 Ja

10 Draait op Licentie Naam Definitie Verplicht Licentienummer of freeware, gegevens 'shareware' indien dit het geval is Soort licentie schoollicentie, klaslicentie, netwerk... Ja Registratiedatum AantalLicenties Verbruiksproduct datum waarop licentie geregistreerd is aantal toestellen of gebruikers waarvoor licentie geldt Naam Definitie Verplicht Soort papier, toner voor HPLaser6... Ja Merk Type Beschrijving naam producent type naam zoals gekend door producent voornaamste karakteristieken Voorraad hoeveelheid stuks in voorraad Ja Bestelpunt minimumvoorraad Ja Leveringstermijn In bestelling Leverancier gemiddelde leveringstermijn in dagen Ja/nee Naam Definitie Verplicht Firmanaam naam van de firma Ja Contactpersoon Klantnummer Telnr Faxnr adres Adres naam van de contactpersoon bij de firma klantnummer zoals gekend bij leverancier telefoonnummer faxnummer adres van contactpersoon adres van de firma De attributen die bij de relaties Levertx en Draait op horen worden in de volgende tabellen weergegeven. De relaties Is verbonden met en Connecteert hebben geen attributen. Levert Naam Definitie Verplicht Leveringsdatum datum waarop goederen geleverd werden Ja Aankoopprijs prijs per stuk Ja Opmerking opmerking i.v.m. de levering Ja Naam Definitie Verplicht begindatum einddatum opmerking 2.8 Oefeningen datum installatie datum verwijdering opmerking, bijvoorbeeld Service Release die geïnstalleerd is, optionele componenten Ontwerp voor de beschreven omgevingen een datamodel. Volg bij het ontwerpen de volgende stappen: - bepaal de entiteiten; - bepaal de relaties; - bepaal de cardinaliteit van de relaties; - bepaal de optionaliteit van de relaties; - bepaal de attributen van de entiteiten en de relaties. Ontwerp een datamodel voor een puntenboek van een leraar. Je moet zowel de punten voor gewone toetsen als voor proefwerken opslaan. Op het einde van de maand moet er op basis van de databank een puntenlijst afgedrukt worden met de punten van dagelijks werk voor het maandrapport en op het einde van het trimester de punten voor dagelijks werk en proefwerk. De leraar kan meerdere vakken geven en kan in meerdere klassen komen. 2 Ontwerp een datamodel voor een databank voor de schoolbibliotheek. Voor elk boek wordt bijgehouden welk type het is (boek, tijdschrift, naslagwerk). Elk werk heeft uiteraard een naam (titel) en is voorzien van een etiket met een uniek nummer. Een gebruiker moet een werk kunnen opzoeken op basis van een trefwoord. Een werk kan aan meerdere trefwoorden voldoen. Boeken kunnen uitgeleend worden. Je moet kunnen zien of het werk nog aanwezig is of uitgeleend. Indien het uitgeleend is, heeft de persoon het recht om het werk te reserveren. Je moet natuurlijk weten aan wie het is uitgeleend vermits de leners het boek maar één maand mogen bijhouden. Op elk moment moet een lijst kunnen afgedrukt worden van de ontleende en gereserveerde boeken. 3 Een sportclub (atletiek) wenst van al zijn leden een aantal gegevens bij te houden zoals hun lidnummer, naam, adres, postnummer, gemeente, telefoonnummer en welke beste tijden ze behaalden op de loopnummers 00 m, 200 m en 400 m en de datum waarop die beste tijden gelopen werden. 4 Een kapper wil voor elk bezoek van zijn klanten bijhouden welke bewerkingen hij heeft uitgevoerd (zoals knippen, wassen & gebruikte producten, kleuren & gebruikte producten) zodat hij later een historiek kan samenstellen per klant. 5 Een huisarts wil een databank met volgende gegevens: patiënten, gezinsgegevens (gezinshoofd, gezinsleden ), adres, telefoon, mutualiteit, bezoeken per gezinslid, diagnose per bezoek, voorgeschreven geneesmiddelen. 6 De firma La Linea werkt met vertegenwoordigers die kleding verkopen in een bepaald verkoopgebied. Een klant bestelt altijd via dezelfde vertegenwoordiger. De databank moet zeker volgende zaken bevatten: - vertegenwoordigers: vertegenwoordigersnummer, naam en adresgegevens, totale verdienste en commissiepercentage; VVKSO Informaticabeheer Databases - pagina 9 VVKSO Informaticabeheer Databases - pagina 20

11 - klanten: klantnummer, naam, adres, saldo, kredietlimiet. Elke klant heeft een vertegenwoordiger maar nooit meer dan één; - kledingsstukken: artikelnummer, omschrijving, prijs, aantal in voorraad; - bestellingen: bestelnummer, klantgegevens, vertegenwoordiger, bestelde artikelen met aantal en prijs. Bijkomende vereisten - een bestelling wordt alleen aanvaard indien de klant geregistreerd is; - per bestelling is er hoogstens één klant; - klanten kunnen een korting krijgen: de te betalen prijs kan dus lager zijn dan de prijs in het artikelenbestand; - indien de prijs van een artikel verhoogt, betaalt de klant nooit meer dan afgesproken bij de bestelling. 3 Een relationele databank 3. Tabellen Het relationeel model Primaire en refererende sleutels Het normalisatieproces Gegevens kunnen gegroepeerd worden omdat ze om de een of andere reden bij elkaar horen (cfr. entiteiten in het entiteit-relatie datamodel). Zo'n groep noem je een objecttype. In een relationele databank worden objecttypes geïmplementeerd d.m.v. tabellen met twee dimensies: rijen en kolommen. Per object (instantie van het objecttype) wordt één rij gebruikt en per gegeven (attribuut) één kolom. Deze tabellen worden relaties (relations) genoemd. Dit is een term uit de wiskunde, niet te verwarren met de relaties (relationships) in het datamodel. Voorbeeld: patiëntengegevens Voornaam Familienaam Geboortedatum Lengte Gewicht Jan De Blauwe Piet De Bruyn Joris De Swert Corneel De Wit De attributen van een patiënt-objecttype zijn voornaam, familienaam, geboortedatum, lengte en gewicht. Ze vormen de kolommen of velden van de tabel. De verschillende patiënten vormen de verschillende rijen of records in de tabel. Voorwaarden waaraan een tabel moet voldoen in een relationele database Een tabel in een relationele database moet aan bepaalde voorwaarden voldoen. Zo mogen twee rijen nooit helemaal hetzelfde zijn (geen duplicaten) en mag de volgorde van de rijen en kolommen geen intrinsieke betekenis hebben, d.w.z. het verplaatsen van rijen en/of kolommen heeft geen invloed op de betekenis van de bewaarde gegevens. Een derde voorwaarde is dat elke cel atomaire gegevens moet bevatten, d.w.z. er mag maar een waarde van het attribuut in voorkomen. In een cel waarin een lengte aangegeven wordt, mag maar lengte staan en niet bijvoorbeeld de resultaten van opeenvolgende metingen. Een database zal meestal uit meerdere tabellen bestaan die onderling met elkaar in verband staan. 3.. Primaire sleutel Elke rij is uniek en kan bijgevolg geïdentificeerd worden door de waarde in een kolom of een combinatie van kolommen. Het kan voorkomen dat er meerdere kolommen of combinaties van kolommen de rij identificeren. Er zijn dan meerdere kandidaat-sleutels. Eén ervan wordt gekozen tot primaire sleutel (primary key). Als de primaire sleutel uit meerdere kolommen bestaat, spreekt men van een samengestelde sleutel. De primaire sleutel van een tabel speelt een belangrijke rol in een relationele database. Besteed dus steeds voldoende zorg aan de keuze ervan. VVKSO Informaticabeheer Databases - pagina 2 VVKSO Informaticabeheer Databases - pagina 22

12 In de voorgaande tabel is er eigenlijk geen kandidaat-sleutel. Theoretisch, alhoewel zeer onwaarschijnlijk, is het mogelijk dat er twee personen met dezelfde naam zijn, die op dezelfde dag geboren zijn en dan nog dezelfde lengte en hetzelfde gewicht hebben. In dergelijke gevallen voeg je een veld toe, meestal met een numerieke waarde, dat als primaire sleutel fungeert. Om aan te geven dat een veld als primaire sleutel fungeert, wordt dit veld meestal onderstreept. Ouder OuderID Familienaam Voornaam Straat postnummer Gemeente Kind KindID Voornaam Leeftijd Geslacht OuderID Surrogaat sleutel In de praktijk kies je best een extra kolom als primaire sleutel, d.w.z. een kolom die niet overeenkomt met een eigenschap van een entiteit, maar die enkel dient om de rij te identificeren. Als je een kolom neemt die overeenkomt met een eigenschap van een attribuut, dan kan dit in de loop van de tijd veranderen. Stel dat je als primaire sleutel een telefoonnummer zou nemen. In theorie biedt dit een unieke identificatie van bijvoorbeeld een klant. Als echter de telefoonmaatschappij om een of andere reden de nummers aanpast, bijvoorbeeld zonenummer 089 wordt gesplitst in 089 en 0 zal de applicatie overal waar deze waarde als primaire sleutel en refererende sleutel (zie volgende paragraaf) gebruikt wordt, moeten aangepast worden. Dat vraagt heel wat meer werk dan enkel de gegevens in één kolom aanpassen. Een sleutel die niet overeenkomt met een eigenschap van een entiteit noemt men een surrogaat sleutel Namen van velden Ieder veld behoort een duidelijke, binnen de tabel unieke naam te krijgen, waarmee het zich van alle andere gegevens onderscheidt. Hoewel het in de meeste pakketten voor gegevensbeheer, zoals MS-Access mogelijk is om een naam te kiezen die bestaat uit meerdere woorden, is dit geen aanrader. Beter is het om de woorden aan elkaar te schrijven en ieder nieuw woord met een hoofdletter te beginnen. Overdrijf niet in de lengte van de naam: 25 karakters zou ruim voldoende moeten zijn. Voorbeelden van zinvolle naamgeving: WaardeVoorraad, BetalingPerCheck enz. Een tabel kan bijvoorbeeld weergeven worden als: Patiënt(PatiëntID, Voornaam, Familienaam, Geboortedatum, Lengte, Gewicht) 3..3 Koppelingen tussen tabellen Verschillende tabellen in een relationele database kunnen gegevens bevatten die onderling gekoppeld zijn, die dus samen een grotere gegevensgroep vormen. Bijvoorbeeld: een tabel bevat gegevens van ouders en een andere tabel bevat gegevens van kinderen. Er moet een mechanisme bestaan om aan te geven welke ouders bij welke kinderen horen. Een dergelijke koppeling wordt in het Nederlands ook een relatie genoemd (Engels: relationship). Dit kan tot verwarring leiden. In hetgeen volgt wordt de term relatie gebruikt om een koppeling tussen tabellen aan te geven. In een relationeel ontwerp wordt een relatie aangegeven door een lijn tussen de twee tabellen die de koppelende velden verbindt. 3.2 Het normalisatieproces Normalisatie is een bepaalde herschikking van de gegevens en gegevensgroepen, waarbij soms nieuwe groepen worden gevormd door gegevens uit bestaande groepen af te zonderen. Uiteindelijk wil je tot de volgende situatie komen: alle attributen van een groep zijn functioneel afhankelijk van de volledige sleutel, en tussen attributen onderling bestaan geen functionele afhankelijkheden. Een gegeven is functioneel afhankelijk van een ander als dit gegeven gekend is als het andere gegeven gekend is. Bijvoorbeeld in het rijksregister zijn de gegevens naam en woonplaats functioneel afhankelijk van het rijksregisternummer. Als je het rijksregisternummer van iemand kent, dan kun je zijn naam en woonplaats vinden. Door het gebruik in volgende paragrafen wordt het begrip wellicht duidelijker. Het doel van normalisatie is het vermijden van redundantie. Redundantie betekent, dat bepaalde informatie tegelijkertijd op meer dan één plaats wordt voorgesteld. De voornaamste nadelen van redundantie zijn: - risico's van inconsistentie: indien dezelfde soort informatie op meer dan één plaats tegelijk aanwezig is, dan kunnen de verschillende plaatsen van informatieopslag elkaar tegenspreken; - moeilijker gegevensonderhoud: sommige wijzigingen moeten op verschillende plaatsen tegelijk worden doorgevoerd. Nochtans is redundantie soms nuttig. Zo kan een overdreven genormaliseerd gegevensbeheersysteem veel tijd vragen om gegevens op te zoeken, door het grote aantal verschillende gegevensgroepen. Je gaat hoe dan ook de normalisatie steeds volledig doorvoeren, en achteraf bepaalde redundanties eventueel opnieuw invoeren, op voorwaarde dat je daarvoor een goede reden kunnen opgeven. Normalisatie vindt plaats in drie stappen. - Verwijder de zich herhalende deelverzamelingen (repeterende groepen). - Verwijder de attributen die functioneel afhankelijk zijn van slechts een deel van de sleutel. - Verwijder de attributen die functioneel afhankelijk zijn van andere attributen. Met 'verwijderen' wordt bedoeld in een afzonderlijke gegevensgroep onderbrengen, niet weglaten uit het gegevensmodel. VVKSO Informaticabeheer Databases - pagina 23 VVKSO Informaticabeheer Databases - pagina 24

13 3.3 Niet genormaliseerde gegevensgroepen Onderstaande tabel bevat gegevens over meubelen en de leverancier ervan. Het is eigenlijk niets anders dan een losse verzameling van gegevens. Een dergelijke gegevensgroep is een gegevensgroep in de nulde normaalvorm (0NF). Naam Kleur Prijs Aantal Naam Tel Straat Postc Plaats TAFEL Wit 445,00 2 IDEA Boomsesteenweg WILRIJK STOEL Wit 98,00 8 FIEREMANS Assesteenweg 740 TERNAT TAFEL Zwart 495,00 6 JANSSENS Zeypstraat MECHELEN TAFEL Zwart 495,00 6 JANSSENS Zeypstraat MECHELEN STOEL Bruin 24,00 0 JANSENS Zeipstraat MECHELEN KAST BED Zwart Wit Bruin Grijs Wit 544,00 5 FIEREMANS ,00 422,00 9 LINEA BRICO Assesteenweg 2 Ninoofsesteenweg 56 Boomsesteenweg 85 Hoogstraat TERNAT ROOSDAAL WILRIJK BRUSSEL KAST Bruin 745,00 4 JANSSENS Zeipstraat MECHELEN Bekijk de adresgegevens van leverancier Janssens. Wat stel je vast? Twee rijen zijn volledig identiek. Wat denk je hierover? Sommige artikelen bestaan in meerdere kleuren. Welke? Mag dit in een tabel van een relationele database zo bewaard worden? Verklaar. Wordt er op andere plaatsen nog gezondigd tegen dezelfde regel? Waar? Het is duidelijk dat deze gegevensgroep niet voldoet om als tabel in een relationele omgeving gebruikt te worden. Herlees nog eens de voorwaarden waaraan een tabel in een relationele databank moet voldoen (paragraaf 3.). Aan welke voorwaarden wordt in deze gegevensgroep niet voldaan? Bij een relationele tabel hoort ook een primaire sleutel. Wat zou je in deze tabel als primaire sleutel kunnen gebruiken? 3.4 Repeterende groepen Persnr Naam Straat Postnummer Gemeente Taal 005 Devos Dorpsplein 8000 Brugge Nederlands Frans Engels Vandevelde Centrumlaan Gent Nederlands Duits Het veld Taal bevat de talen gekend door de personeelsleden. Wat is de primaire sleutel van deze gegevensgroep? Waarom kan deze gegevensgroep niet als tabel gebruikt worden in een relationele database? De talenkennis van de personeelsleden moet op een andere manier bewaard worden. Welke problemen kun je verwachten als je diverse velden voorziet (Taal, Taal2, Taal3...) om dan in elk veld een gekende taal te noteren? Welke problemen treden op als je per personeelslid zoveel rijen voorziet als er gekende talen zijn? Een gegeven of een combinatie van gegevens die per entiteit meerdere keren voorkomt noemt men een repeterende groep. De oplossing van de aangehaalde problemen vereist het verwijderen van de repeterende groep (hier het gegeven Taal) uit de oorspronkelijke gegevensgroep en het creëren van een nieuwe gegevensgroep met de gegevens van de repeterende groep. Er wordt een scheiding gemaakt van gegevens WAARBIJ MEN ER MOET VOOR ZORGEN OM GEEN INFORMATIE TE VERLIEZEN! Een volgende opsplitsing zou dan ook verkeerd zijn: Persnr Naam Straat Postnummer Gemeente 005 Devos Dorpsplein 8000 Brugge Vandevelde Centrumlaan Gent en Taal Nederlands Frans Engels Nederlands Duits Voorbeeld Waarom is dit geen goed voorstel en volgend voorstel wel? In een bedrijf worden de volgende personeelsgegevens bijgehouden: VVKSO Informaticabeheer Databases - pagina 25 VVKSO Informaticabeheer Databases - pagina 26

14 Persnr Naam Straat Postnummer Gemeente 005 Devos Dorpsplein 8000 Brugge Vandevelde Centrumlaan Gent Persnr en Taal 005 Nederlands 005 Frans 005 Engels Nederlands Duits Om geen gegevensverlies te hebben moet je dus de repeterende groep uit de oorspronkelijke gegevensgroep verwijderen en in een aparte gegevensgroep zetten, waarbij je de primaire sleutel herhaalt. Wat is een primaire sleutel voor de tweede gegevensgroep? Bovenstaande gegevensgroepen staan in de eerste normaalvorm (NF). Het is mogelijk dat er meerdere repeterende groepen voorkomen. Die moeten allemaal in aparte gegevensgroepen bijgehouden worden. De zo ontstane gegevensgroepen zijn gerelateerd. De relatie wordt gelegd door het primaire sleutelveld van de eerste gegevensgroep dat herhaald wordt in de tweede gegevensgroep. In de tweede gegevensgroep kan dat sleutelveld meerdere keren dezelfde waarde bevatten. Het kan dus zeker geen primair sleutelveld voor de tweede gegevensgroep vormen. Men spreekt van een refererende sleutel of foreign key. In het bovenstaande voorbeeld is Persnr de primaire sleutel van de eerste gegevensgroep en de refererende sleutel van de tweede gegevensgroep. Voorbeeld 2 Bij het normaliseren hoef je niet onmiddellijk de gegevens in tabelvorm weer te geven. Meestal is dit zelfs niet mogelijk omdat er te veel gegevens zijn. Je kunt de gegevens ook onder elkaar weergeven zoals in volgend voorbeeld. (De primaire sleutel wordt onderstreept.) nulde normaalvorm personeelsnummer naam adresgegevens (straat, postnummer, gemeente) talenkennis (taal, mondelinge kennis, schriftelijke kennis) behaalde diploma's (naam, jaartal) eerste normaalvorm personeelsnummer naam adresgegevens (straat, postnummer, gemeente) en personeelsnummer taal mondelinge kennis schriftelijke kennis en personeelsnummer diplomanaam jaartal Personeelsnummer is de primaire sleutel van de eerste gegevensgroep en de refererende sleutel van de twee andere. Voorbeeld 3 nulde normaalvorm lidnummer naam adresgegevens (straat, postnummer, gemeente) kinderen (naam, leeftijd, gevolgde lessen) Stap eerste normaalvorm lidnummer naam adresgegevens (straat, postnummer, gemeente) en lidnummer naamkind leeftijd gevolgde lessen Stap 2 lidnummer naam adresgegevens (straat, postnummer, gemeente) en VVKSO Informaticabeheer Databases - pagina 27 VVKSO Informaticabeheer Databases - pagina 28

15 lidnummer naamkind leeftijd en lidnummer naamkind gevolgde les Voor de eenvoud kun je aan de tweede gegevensgroep een speciaal sleutelveld toevoegen dat kan dienen als primaire sleutel voor de gegevensgroep. Je krijgt dan iets als het volgende. eerste normaalvorm lidnummer naam adresgegevens (straat, postnummer, gemeente) en kindnummer lidnummer naamkind leeftijd en kindnummer gevolgde les Voorbeeld 4 Hieronder zie je een tabel met namen van personen en de softwarepakketten die ze gebruiken. Persnum Naam Software P0 Annie Visio, WP P Ria Excel, Word, Access P3 Wim Word, Access P6 Guy WP, Word, Lotus P9 Paul Lotus, WP, Visio De repeterende groep wordt gevormd door de gebruikte software. Een omzetting naar de eerste normaalvorm geeft het volgende resultaat. Persnum Naam P0 Annie P Ria P3 Wim P6 Guy P9 Paul en Persnum Software P0 Visio P0 WP P Excel P Word P Access P3 Word Misschien heb je het probleem van het softwaregebruik als volgt opgelost. Persnum Naam Visio Wp Word Access Lotus Excel P0 Annie x x P Ria x x x P3 Wim x x x P6 Guy x x x P9 Paul x x x Schijnbaar is er hier geen sprake van herhalende groepen. In elke cel staat immers hoogstens één vermelding nl. een x als de persoon het betreffende programma gebruikt. Dergelijke structuur heeft enkele belangrijke nadelen. - Vele velden zijn leeg, maar nemen toch plaats in op de schijf. - Wanneer een pakket niet meer gebruikt wordt, is het bij alle records leeg maar het is nog aanwezig. Je kunt het slechts verwijderen wanneer je de structuur van de tabel wijzigt. Dit is een activiteit die de gewone gebruiker niet zal uitvoeren. Wanneer er een nieuw pakket bijkomt moet je eveneens de tabelstructuur aanpassen. Wanneer je daarentegen met een gesplitste tabel werkt, dan heb je slechts records te verwijderen of toe te voegen. De tabelstructuur verandert hierdoor niet, wel het aantal rijen in de tabel. 3.5 Partiële functionele afhankelijkheid Voorbeeld In een onderneming waar software op maat van de klant ontwikkeld wordt, wordt elke opdracht gezien als een project dat geïdentificeerd wordt door een projectnummer en naam. Analisten, programmeurs en andere medewerkers worden toegewezen aan één of meerdere projecten. Om de kosten te kunnen bepalen, wordt per medewerker bijgehouden hoelang hij aan een project gewerkt heeft. VVKSO Informaticabeheer Databases - pagina 29 VVKSO Informaticabeheer Databases - pagina 30

16 nulde normaalvorm personeelsnummer adresgegevens (straat, postnummer, gemeente) uurloon projecten (projectnummer, projectnaam, klantnaam, werkduur) eerste normaalvorm personeelsnummer adresgegevens (straat, postnummer, gemeente) uurloon en personeelsnummer projectnummer projectnaam klantnaam werkduur Kenmerkend voor een primaire sleutel is dat hij een rij volledig identificeert. Dit wil zeggen: als de primaire sleutel gekend is, dan kun je de waarden van alle andere velden vinden. Men zegt dat alle velden functioneel afhankelijk zijn van de primaire sleutel. Als de primaire sleutel een samengestelde sleutel is, m.a.w. uit meerdere velden bestaat, dan is het mogelijk dat kennis van een deel van de sleutel voldoende is om de waarde van een of meer velden te vinden. In het bovenstaande voorbeeld, tweede tabel, is dit het geval voor de velden projectnaam en klantnaam. Als het projectnummer gekend is, dan kan men de waarde van deze beide velden vinden. Men zegt dat deze velden partieel functioneel afhankelijk zijn van de primaire sleutel. In de tweede stap in de normalisering moeten velden die partieel functioneel afhankelijk zijn uit de oorspronkelijke gegevensgroep verwijderd worden en samen met het deel van de sleutel waarvan ze afhankelijk zijn in een nieuwe gegevensgroep geplaatst worden. tweede normaalvorm personeelsnummer adresgegevens (straat, postnummer, gemeente) uurloon en personeelsnummer projectnummer werkduur en projectnummer projectnaam klantnaam Als deze stap niet gezet wordt, zal de database redundante gegevens bevatten, d.w.z. dezelfde gegevens komen meerdere malen voor (zie voorbeeld 2). Inderdaad zal in bovenstaande voorbeeld, voor elk personeelslid dat aan een bepaald project toegewezen wordt zowel de projectnaam als de klantnaam herhaald worden. Merk op dat door het afzonderen van de projectgegevens de primaire sleutel van de nieuwe gegevensgroep (projectnummer) aanwezig blijft als refererende sleutel in de oorspronkelijk gegevensgroep. De gegevens van de medewerkers zitten samen in de gegevensgroep. De gegevens van het project zitten samen in een andere gegevensgroep. De koppeling tussen deze gegevensgroepen namelijk welke werknemers werken hoelang voor welk project, zit in een aparte gegevensgroep met een samengestelde sleutel. Voorbeeld 2 Een groothandelaar koopt bepaalde artikelen bij meerdere leveranciers. nulde normaalvorm artikelnummer artikelnaam artikelcategorie leveranciersnummer aantal levtel eerste normaalvorm artikelnummer artikelnaam artikelcategorie en artikelnummer leveranciersnummer aantal levtel Als de stap naar de tweede normaalvorm (2NF) niet gedaan wordt, kan de tweede gegevensgroep er als volgt uitzien. Levnum LevTel Artnum Aantal L 235 A 0 L 235 A2 2 L 235 A3 4 L2 999 A2 0 L2 999 A4 5 L3 800 A 3 L3 800 A5 0 L4 600 A6 5 Welke gegevens worden nodeloos herhaald? VVKSO Informaticabeheer Databases - pagina 3 VVKSO Informaticabeheer Databases - pagina 32

17 Hoeveel keer moet je het telefoonnummer veranderen als het telefoonnummer van L verandert? Wat gebeurt er indien artikel A6 gewist wordt (niet aangekocht)? Kun je het telefoonnummer van een leverancier toevoegen als hij nog geen artikel geleverd heeft? Welke velden zijn functioneel afhankelijk van slechts een deel van de sleutel? Breng bovenstaande gegevensgroep in tweede normaalvorm. 3.6 Transitieve functionele afhankelijkheid Voorbeeld In een boekenwinkel houdt men van alle boeken volgende gegevens bij: Boekcode Categoriecode CategorieOms Titel Auteur Verkprijs BK276 K36 Kinderen 3-6 jaar Samson op reis 4,50 VW0058 K03 Kinderen 0-3 jaar Dieren kijken 2,45 HJ000 K36 Kinderen 3-6 jaar Samson is ziek 4,50 Wat vind je zelf (intuïtief) van dit voorstel voor de gegevensbestandstructuur? Leg uit met voorbeeld(en) waarom je dit voorstel goed of slecht vindt. In dit voorbeeld is de categorieomschrijving (CategorieOms) gekend als de categoriecode gekend is. Dit veld is dus functioneel afhankelijk van een ander veld dan het primaire sleutelveld. Men spreekt in dat geval van transitieve functionele afhankelijkheid. In de derde stap van de normalisering moeten velden die transitief functioneel afhankelijk zijn uit de oorspronkelijke gegevensgroep verwijderd worden en samen met het veld waarvan ze afhangen in een nieuwe gegevensgroep geplaatst worden. Boekcode CategorieCode Titel Auteur Verkprijs BK276 K36 Samson op reis 4,50 VW0058 K03 Dieren kijken 2,45 HJ000 K36 Samson is ziek 4,50 CategorieCode K36 K03 en CategorieOms Kinderen 3-6 jaar Kinderen 0-3 jaar Merk op: CategorieCode is de primaire sleutel van de nieuwe gegevensgroep en de refererende sleutel in de oorspronkelijke groep. De werkwijze is dus analoog als bij de tweede normalisatiestap. 3.7 Overzicht Om tot een goede structuur van je relationele database te komen maak je volgende stappen. Inventariseer alle elementaire gegevens. Verwijder alle procesgegevens. Zet de gegevensgroepen in eerste normaalvorm. Doe het volgende totdat er geen nieuwe groepen meer ontstaan. Geef de primaire sleutel van de groep aan. Geef de deelverzameling aan die een herhaald aantal keren voorkomt. Herhaal de sleutelgegevens van de oorspronkelijke groep samen met de gegevens van de zich herhalende deelverzameling als nieuwe groep. Verwijder de zich herhalende deelverzameling uit de oorspronkelijke groep. Zet de gegevensgroepen in tweede normaalvorm. Geef de attributen aan die niet functioneel afhankelijk zijn van de volledige sleutel. Vorm een aparte groep voor ieder deel van de sleutel waarvan attributen functioneel afhankelijk zijn. Neem in iedere groep de attributen met het bijbehorende sleuteldeel op. Verwijder deze attributen uit de oorspronkelijke groep. Zet de gegevensgroepen in derde normaalvorm. Geef de attributen aan die ook functioneel afhankelijk zijn van andere attributen. Vorm een aparte groep voor ieder attribuut of combinatie van attributen, waar andere attributen functioneel afhankelijk van zijn. Neem in iedere groep de attributen met bijbehorende sleutel op. Verwijder de attributen van de nieuwe groep(en) uit de oorspronkelijke groep. 3.8 Uitgewerkt voorbeeld Beschouw als gegevensgroep de attributen behorende bij de entiteit Computer in het voorbeeld Computerpark. Nulde normaalvorm De definities worden weergegeven voor de duidelijkheid. ComputerID fungeert als primaire sleutel. Naam ComputerID Serienummer Merk Type Definitie identificatie van de computer, naam waaronder de PC gekend is, bijvoorbeeld PC0, Joske... serienummer gegeven door producent merknaam of 'wit product' naam van het type zoals gekend bij producent Lokaal locatie waar toestel zich bevindt, bijvoorbeeld: B, Directiebureel... Functie specifieke functie, bijvoorbeeld: lescomputer, labocomputer, server, VVKSO Informaticabeheer Databases - pagina 33 VVKSO Informaticabeheer Databases - pagina 34

18 Processor Harde schijf Diskettestation CD/DVD RAM RAMtype RAMUitTeBreiden Beeldscherm Klavier Muis Geluidskaart Netwerkkaart ISATotaal ISABezet PCITotaal PCIBezet BIOS Moederkaart Chipset Extras Opmerkingen eerste normaalvorm internetserver... type met klokfrequentie merk, type, capaciteit van alle ingebouwde schijven (samengesteld gegeven) merk, type (samengesteld gegeven) merk en type van ingebouwd CD of DVD-station (samengesteld gegeven) aanwezige hoeveelheid RAM type uitbreidingsmogelijkheid merk, type (samengesteld gegeven) merk, type (samengesteld gegeven) merk, type (samengesteld gegeven) merk, type (samengesteld gegeven) merk, type (samengesteld gegeven) totaal aantal ISA-uitbreidingsgleuven aantal bezette ISA-uitbreidingsgleuven totaal aantal PCI-uitbreidingsgleuven aantal bezette PCI-uitbreidingsgleuven naam naam naam soort, merk en type van extra ingebouwde onderdelen, bijvoorbeeld, zipdrive, cd-writer (samengesteld gegeven) algemene opmerkingen i.v.m. het toestel Afhankelijk van het computerpark dat beschreven wordt, bevat de gegevensgroep verschillende repeterende groepen. In sommige computerparken is het bijvoorbeeld mogelijk dat een computer meerdere netwerkkaarten bevat, meerdere diskettestations enz. Hier wordt verondersteld dat een toestel meerdere harde schijven kan hebben en meerdere extra's. Dit leidt tot volgende splitsing. Computer Extra HardeSchijf ComputerID ExtraID HardeSchijfID Serienummer ComputerID ComputerID Merk Type Type Type Beschrijving Capaciteit Lokaal Merk Snelheid Functie Merk Processor Diskettestation CD/DVD RAM RAMtype RAMUitTeBreiden Beeldscherm Klavier Muis VVKSO Informaticabeheer Databases - pagina 35 Geluidskaart Netwerkkaart ISATotaal ISABezet PCITotaal PCIBezet BIOS Moederkaart Chipset Opmerkingen Tweede normaalvorm Enkel de nieuwe gegevensgroepen moeten bekeken worden, want zij hebben een samengestelde sleutel. In beide gevallen hangen alle niet sleutelattributen af van het eerste deel van de sleutel. Dit leidt tot volgde splitsingen. ExtraComputer ExtraID ComputerID Extra ExtraID Type Beschrijving Merk Derde normaalvorm HardeSchijfComputer HardeSchijfID ComputerID HardeSchijf HardeSchijfID Type Capaciteit Snelheid Merk Diskettestation, CD/DVD, Beeldscherm, Klavier, Muis, Geluidskaart en Netwerkkaart zijn samengestelde gegevens. Bovendien is het zo dat als het identificerend gegeven bekend is. Dit leidt tot volgde splitsingen. Computer Diskettestation CD/DVD ComputerID DiskettestationID CD/DVD_ID Serienummer Merk Merk Merk Type Type Type Snelheid Speed Lokaal ComputerID Functie Processor Beeldscherm KlavierID DiskettestationID BeeldschermID KlavierID CD/DVD_ID Merk Merk RAM Type Type RAMtype Energiesparend Ergonomisch RAMUitTeBreiden BeeldschermID Muis Geluidskaart KlavierID MuisID GeluidskaartID MuisID Merk Merk GeluidskaartID Type Type NetwerkkaartID Soort AantalBit ISATotaal Driver ISABezet Netwerkkaart PCITotaal NetwerkkaartID PCIBezet Merk BIOS Type Moederkaart Driver VVKSO Informaticabeheer Databases - pagina 36

19 Chipset Opmerkingen 4 Omzetting datamodel naar databaseontwerp De andere gegevensgroepen van Computerpark zijn in de derde normaalvorm. 3.9 Oefeningen Verbind de termen in kolom met de synoniemen in kolom 2. Rij Kolom Tabel Veld Record Attribuut Relatie Instantie van entiteit Kenmerk 2 Geef een voorbeeld van een unieke sleutel die door volgende organisaties of instellingen wordt gebruikt om iemand te identificeren. - Verzekeringsmaatschappij - Financiële instelling - Mutualiteit - Jeugdbeweging of sportvereniging 3 Onderstreep in de eerste rij (veldnamen) van volgende tabel de primaire sleutel. NUMMER NAAM VOORNAAM GEBOORTEDATUM LENGTE GEWICHT P0 Legrand Pieter P Legrand Annemie P40 De Bolle Annemie P50 Vervaet Sandra P60 Legrand Pieter Kun je ook een kandidaat-sleutel vinden? 4 Bepaal een mogelijke structuur voor personeelsgegevens van een onderneming. In de databank met personeelsgegevens wordt naast de gegevens van de werknemers (naam, datum indiensttreding, afdeling, brutoloon) ook de naam en de geboortedatum van de kinderen bijgehouden. 5 Normaliseer de gegevensgroepen die je hebt gevonden als resultaat van de oefeningen uit het vorige hoofdstuk. Omzetting van entiteiten Omzetting van relaties Een entity-relationship diagram kun je omzetten naar de verschillende soorten DBMS. In dit hoofdstuk wordt de omzetting naar een RDBMS besproken. Het resultaat van de omzetting wordt het databaseontwerp genoemd. Een relationele database ontwerpen wil zeggen de tabellen en hun onderlinge relaties definiëren en wel zo dat de database geen overtollige noch tegenstrijdige gegevens zal bevatten. De gegevens moeten steeds genormaliseerd worden. Je mag dit doen op het niveau van het datamodel, d.w.z. het datamodel verfijnen tot de attributen die bij de entiteiten of de relaties horen, een genormaliseerde groep vormen, of op het niveau van het database ontwerp, d.w.z. eerst een omzetting doen naar gerelateerde tabellen en dan de tabellen normaliseren. 4. Entiteiten 4.. Zelfstandige entiteiten Zelfstandige entiteiten zijn entiteiten die niet in een supertype/subtype relatie zitten. Als je een Entiteit-Relatie model hebt opgemaakt kun je in eerste instantie de entiteiten vertalen in tabellen. De entiteiten worden tabellen, de attributen worden velden. Indien dit nog niet gebeurd is, moet je nog een normalisatie doorvoeren. 4.2 Relaties zonder attributen 4.2. Één-op-één relatie Voorbeeld relatie: Gebruikt entiteiten: Bureautafel(BureautafelID, Locatie, Type) en Werknemer(WerknemerID, Familienaam, Voornaam) definitie: Werknemer Administratieve werknemers krijgen een vaste bureautafel toegewezen op kantoor. Deze bureautafel moet met niemand gedeeld worden en iedereen krijgt slechts één bureautafel. Er kunnen werknemers zijn zonder bureautafel en bureautafels die niet gebruikt worden door werknemers. Bureautafel De relatie Gebruikt wordt in het relationele ontwerp gebracht door tussen de tabellen Werknemer en Bureautafel een relatie (koppeling) te leggen. Dit gebeurt door aan de tabel Bureautafel de primaire sleutel (WerknemerID) van de tabel Werknemer toe te voegen of omgekeerd. Het toegevoegde veld is de referende sleutel. VVKSO Informaticabeheer Databases - pagina 37 VVKSO Informaticabeheer Databases - pagina 38

20 De tabellen in het relationele ontwerp worden dus: Werknemer WerknemerID Familienaam Voornaam of Werknemer WerknemerID Familienaam Voornaam BureautafelID Bureautafel BureautafelID Locatie Type WerknemerID Bureautafel BureautafelID Locatie Type In principe zijn beide oplossingen gelijkwaardig. Welke van de twee uiteindelijk praktisch het beste is, hangt af van de bevraging van de databank. Als daarbij meestal uitgegaan wordt van de werknemers (wat waarschijnlijk het geval is), dan is de eerste oplossing de beste Veel-op-veel relatie Beschouw weer dezelfde relatie maar breid ze verder uit door toe te laten dat eenzelfde bureautafel gedeeld wordt door verschillende werknemers. Werknemer Om deze relatie te vertalen naar een relationeel ontwerp, creëer je nog een extra tabel naast de tabellen die de entiteiten voorstellen. Deze derde tabel geef je als attributen de primaire sleutel van beide tabellen. Ze vormen samen de primaire sleutel van de nieuwe tabel en elk apart een refererende sleutel voor een entiteit-tabel. Iedere entiteit-tabel heeft een een-op-veel relatie met de bijkomende derde tabel. Werknemer WerknemerBureautafel Bureautafel WerknemerID Familienaam Voornaam Bureautafel WerknemerID BureautafelID BureautafelID Locatie Type Opmerking In sommige gevallen kan een één-op-één relatie zonder attributen teruggebracht worden tot één tabel. Dit kan enkel als tenminste in een van de tabellen geen enkel attribuut als primaire sleutel kan fungeren, anders krijg je immers transitieve afhankelijk. Het is vooral de optionaliteit die zal bepalen of het werken met één enkele tabel zinvol is. Veel lege velden bijhouden heeft geen zin Eén-op-veel relatie Beschouw dezelfde relatie als hierboven maar waarbij het mogelijk is dat een werknemer meerdere bureautafels toegewezen krijgt. 4.3 Relaties met attributen 4.3. Eén-op-één relatie Voorbeeld relatie: Huwt entiteiten: Man(ManID, Familienaam, Voornaam) en Vrouw(VrouwID, Familienaam) definitie: Een man huwt een vrouw. Een man kan maar één vrouw huwen en omgekeerd. Niet elke man en niet elke vrouw huwt. attributen: Huwelijksdatum, NaamGetuige, NaamGetuige2 Werknemer Bureautafel Man Vrouw De omzetting gebeurt op dezelfde manier als bij een één-op-één relatie maar nu wordt de primaire sleutel van de tabel langs de een-kant toegevoegd als refererende sleutel aan de tabel aan de veel-kant. Werknemer WerknemerID Familienaam Voornaam Bureautafel BureautafelID Locatie Type WerknemerID De één- en de veel-kant worden respectievelijk aangeduid door de symbolen en. De relatie wordt vertaald in een bijkomende tabel. Man Huwelijk Vrouw ManID Familienaam Voornaam Huwelijksdatum NaamGetuige NaamGetuige2 VrouwID ManID VrouwID Familienaam Voornaam Vanwege de één-op-één relatie kan, als primaire sleutel van de tabel die met de relatie overeenkomt, de primaire sleutel van één van beide andere tabellen gekozen worden. VVKSO Informaticabeheer Databases - pagina 39 VVKSO Informaticabeheer Databases - pagina 40

21 4.3.2 Een-op-veel relatie Voorbeeld relatie: Schrijft in entiteiten: Persoon(PersoonID, Familienaam, Voornaam) en Cursus(CursusID, Naam, Lesgever, Klaslokaal) definitie: Een persoon schrijft in voor een cursus. Een persoon kan maar inschrijven voor één cursus. attributen: Inschrijvingsdatum, Inschrijvingsgeld Overzicht Relaties zonder attributen Een-op-een relatie - 2 tabellen (:) - primaire sleutel ene refererende andere - in sommige gevallen terug te brengen tot één tabel Een-op-veel relatie - 2 tabellen (: ) - primaire van een-kant: refererende veel-kant Veel-op-veel relatie - 3 tabellen (: ; : ) - 3 de tabel bevat primaire sleutels als refererende sleutel Persoon Cursus Relaties met attributen Verklaar de optionaliteit van deze relatie. Naast de entiteiten, wordt de relatie zelf ook vertaald in een tabel. Deze tabel krijgt als attributen de attributen van de relatie en de primaire sleutels van de entiteit-tabellen. Persoon Inschrijving Cursus PersoonID Familienaam Voornaam Inschrijvingsdatum Inschrijvingsgeld PersoonID CursusID CursusID Naam Lesgever Een-op-een relatie - 3 tabellen (:; :) - refererende sleutels in relatie-tabel: primaire sleutels entiteiten - primaire sleutel relatie: een van primaire sleutels entiteiten Een-op-veel relatie - 3 tabellen (:; : ) - refererende sleutels in relatie-tabel: primaire sleutels entiteiten - primaire sleutel relatie: primaire sleutel entiteit van de veel-kant Veel-op-veel relatie - 3 tabellen (: ; : ) - refererende sleutels in relatie-tabel: primaire sleutels entiteiten - primaire sleutel relatie: primaire sleutels entiteiten Veel-op-veel relatie Beschouw dezelfde relatie waarbij het nu toegestaan is dat een persoon zich inschrijft voor meerdere cursussen. Persoon De oplossing is analoog maar nu is een bijkomende tabel verplicht. Persoon Inschrijving Cursus PersoonID Familienaam Voornaam Cursus Inschrijvingsdatum Inschrijvingsgeld PersoonID CursusID Welke verschillen zijn er met de een-op-veel relatie? CursusID Naam Lesgever Klaslokaal 4.4 Uitgewerkt voorbeeld De gegevensgroepen behorende bij de entiteiten in het datamodel voor Computerpark zijn reeds genormaliseerd in vorig hoofdstuk. Alle resulterende gegevensgroepen zullen omgezet worden in een tabel. Dit leidt tot de volgende tabellen: Randapparaat, Software, Licentie, Verbruiksproduct, Leverancier, Computer, HardeSchijf, Extra, HardeSchijf- Computer, ExtraComputer, Diskettestation, CD_DVD, Beeldscherm, Klavier, Muis, Geluidskaart, Netwerkkaart. De relaties tussen deze tabellen zijn af te leiden uit het datamodel of volgen uit de normalisering. Het datamodel bevat drie veel-op-veel relaties en vijf relaties met attributen nl. Levertx en Draait op. Deze moeten nog omgezet worden naar tabellen en relaties voor het relationeel model. Is verbonden met Veel-op-veel relatie zonder attributen. Computer Verbinding Randapparaat ComputerID ComputerID RandapparaatID RandapparaatID VVKSO Informaticabeheer Databases - pagina 4 VVKSO Informaticabeheer Databases - pagina 42

22 Levertx Het gaat hier om 4 verschillende relaties die verschillende entiteiten verbinden. Drie van de relaties zijn één-op-veel en de vierde is veel-op-veel. Elke relatie heeft dezelfde attributen. Naam Definitie Verplicht Leveringsdatum datum waarop goederen geleverd werden Ja Aankoopprijs prijs per stuk Ja Opmerking opmerking i.v.m. de levering Levert, levering computers (één-op-veel) De relatie wordt vertaald in een tabel: LeveringComputer. Computer LeveringComputer Leverancier ComputerID Leveringsdatum Aankoopprijs Opmerking LeverancierID ComputerID LeverancierID Als meerdere computers bij dezelfde levering aan dezelfde prijs geleverd worden, krijg je dikwijls dezelfde waarden voor de attributen en de tabel LeveringComputer. In dat geval kun je aan de levering een identificatie toekennen en pas je de tabellen aan. Computer LeveringComputer Leverancier ComputerID LeveringID LeveringID Leveringsdatum Aankoopprijs Opmerking LeverancierID Hoe voorzie je deze situatie in het datamodel? Vertaal het aangepaste datamodel naar een databaseontwerp. Bekom je hetzelfde resultaat? Levert2: levering randapparaten (één-op-veel) Idem. LeverancierID Levert3: levering software (één-op-veel) De relatie wordt vertaald in een tabel LeveringSoftware. Software LeveringSoftware Leverancier SoftwareID Leveringsdatum Aankoopprijs Opmerking LeverancierID SoftwareID LeverancierID Tussen de tabellen Software en LeveringSoftware bestaat een één-op-één relatie. Deze kan in sommige gevallen teruggebracht worden tot één tabel. Omdat een bepaald softwarepakket (installatie cd's) slechts in één exemplaar en door één leverancier geleverd wordt, plaatsen we de attributen van de levering bij in de tabel Software. Software Is dit een goed idee als er veel freeware gebruikt wordt? Verklaar je antwoord. SoftwareID LeveranciersID Leveringsdatum Aankoopprijs Opmerking Levert4: levering verbruiksproducten Leverancier LeverancierID Hier moet er met een aparte tabel gewerkt worden omdat het om een veel-op-veel relatie gaat. Verbruiksproduct LeveringVerbruiksProd Leverancier VerbruiksproductID LeveringID Leveringsdatum Aankoopprijs Opmerking LeverancierID VerbruiksproductID LeverancierID In principe vormen LeverancierID, VerbruikproductID en Leveringsdatum samen een samengestelde primaire sleutel. Hier is de voorkeur gegeven aan een surrogaatsleutel LeveringsID. Draait op Deze relatie is een veel-op-veel relatie. Er zal dus met een bijkomende tabel moeten gewerkt worden. De attributen van Draait op zijn: VVKSO Informaticabeheer Databases - pagina 43 VVKSO Informaticabeheer Databases - pagina 44

23 Naam Begindatum Einddatum Opmerking Definitie datum installatie datum verwijdering opmerking, bijvoorbeeld Service Release die geïnstalleerd is, optionele componenten 5 Een database implementeren Het tabel-ontwerpscherm in MS-Access Gegevenstypes Veldeigenschappen Computer DraaitOp Software ComputerID LeveringID ComputerID SoftwareID Begindatum Einddatum Opmerking SoftwareID Opmerking: mogelijk bevatten alle computers in hetzelfde lokaal ook dezelfde software. 5. Het tabel-ontwerpscherm Je maakt een tabel aan in twee stappen: eerst leg je de tabeldefinitie vast en daarna voer je de gegevens in. Bij het vastleggen van de tabeldefinitie bepaal je de veldnamen, gegevenstypes, beschrijvingen en veldeigenschappen van de velden. Het is zeer belangrijk dat je goed nadenkt voor je de structuur vastlegt. Later wijzigingen aanbrengen, kan behoorlijk ingewikkeld zijn en bovendien soms leiden tot gegevensverlies! Is in dit geval deze oplossing een goede oplossing? Verklaar je antwoord. Pas het datamodel en het dataontwerp aan aan deze situatie. Connecteert Open de database Artemis. Selecteer de tabel tblwerknemers en kies in het databasevenster. Je komt in de ontwerpweergave van de tabel. Het scherm voor ontwerpweergave bestaat uit twee delen. In het bovenste venster staan de velden met hun veldnamen, gegevenstype en beschrijving. In het onderste gedeelte zie je een aantal specifieke veldeigenschappen van het geselecteerde veld. Connecteert is een speciale relatie omdat ze een entiteit verbindt met zichzelf. Ook hier is een supplementaire tabel nodig. Randapparaat RandapparaatID Connectie RandapparaatID RandapparaatID2 Vanwege het speciale karakter van tabel Connectie zal er steeds bijzondere aandacht moeten besteed worden aan query's en filters die hiermee gemaakt worden. 4.5 Oefeningen Zet de datamodellen van de oefeningen uit het vorige hoofdstuk om naar databaseontwerpen voor een RDBMS. VVKSO Informaticabeheer Databases - pagina 45 VVKSO Informaticabeheer Databases - pagina 46

24 Met deze knoppen schakel je tussen de ontwerpweergave en de gegevensbladweergave van de tabel. Wanneer is zo een beschrijving nuttig? 5..4 Veldeigenschappen 5.. Veldnaam Gebruik de Helpfunctie om de eigenschappen van veldnamen op te zoeken. (Druk op F terwijl de muisaanwijzer in de kolom van de veldnaam staat.) Regels voor de naamgeving van objecten In MS-Access kunnen veldnamen maximaal 64 tekens lang zijn en uit elke combinatie van letters, getallen, spaties en speciale tekens bestaan, met uitzondering van een punt (.), uitroepteken (!), accent grave (`) en vierkante haakjes ([ ]). Het is niet mogelijk om dezelfde veldnamen aan meerdere velden toe te wijzen. Let steeds op het volgende. Gebruik betekenisvolle veldnamen. Uit de naam van een veld moet je de inhoud ervan kunnen afleiden. Vermijd te lange veldnamen en gebruik zo weinig mogelijk spaties. Dit laatste is vooral van belang als je vaak in expressies of Visual Basic-code naar objecten verwijst Gegevenstype Zoek in de kolom Gegevenstype welke types mogelijk zijn. Vul voor de onderstaande velden het gekozen gegevenstype in en ga na waarom die keuze gemaakt werd. Gebruik eventueel de Helpfunctie voor meer uitleg over de verschillende types. Correct en efficiënt werken met een database betekent dat je een bepaald gegeven slechts één keer invoert en steeds opnieuw gebruikt. Daarom is het zeer belangrijk dat een gegeven zonder fouten en in de juiste vorm in een tabel wordt weggeschreven. Aangepaste veldeigenschappen helpen hierbij. Open de tabel tblwerknemers in ontwerpweergave. Vul onderstaande tabel in. Zoek welke veldeigenschappen worden gebruikt om de opgegeven doelen te realiseren. Welke waarden worden toegekend aan de verschillende veldeigenschappen? Gebruik de Helpfunctie om bijkomende informatie op te vragen. veldnamen doel veldeigenschap waarde Familienaam Voornaam Adres Gemeente Postcode Telefoonnummer Hoofdletters Moet steeds worden ingevuld. Kleine letters In gegevensbladweergave Straat en nummer als aangepaste titel Vlot sorteren en/of zoeken op gemeente Maximum vier tekens Precies vier cijfers Maximum 3 posities veldnaam Werknemer-ID Familienaam BrutoWedde Auto InDienst Foto Bijzonderheden gegevenstype Gebruik steeds het gepaste gegevenstype. Een postnummer is bijvoorbeeld van het tekentype, ook al bevat het enkel cijfers, omdat je er niet mee rekent Beschrijving In de kolom Beschrijving is plaats voor een korte beschrijving van het veld. Deze beschrijving is ook te zien in de statusbalk als het veld geselecteerd is in de gegevensbladweergave. Functie BrutoWedde Toestelnummer Auto InDienst Geslacht Bij het invoeren van gegevens moet de gebruiker de functie kunnen kiezen uit een vooraf gedefinieerde lijst (bedrijfsleider of vertegenwoordiger of manager verkoop of). Wedden moeten in EUR uitgedrukt worden. Twee decimale cijfers weergeven Precies twee cijfers De meeste werknemers beschikken over een auto. Weergave Weergave zoals bijvoorbeeld 5-dec-98 Standaard is de systeemdatum ingevuld. Wordt weergegeven aan de hand van een cijfer: = Manne- VVKSO Informaticabeheer Databases - pagina 47 VVKSO Informaticabeheer Databases - pagina 48

25 veldnamen doel veldeigenschap waarde lijk; 2 = Vrouwelijk Hoeveel kolommen worden opgenomen in de keuzelijst? Waaruit kun je dat afleiden? Waaruit bestaat de eerste kolom? En de tweede? Waaruit kun je dat afleiden? Open de tabel tblproducten in gegevensbladweergave. Tot welke categorie behoort productnummer 0? Schakel over naar de ontwerpweergave. Vind je in deze tabel een veld terug waarin de categorienaam wordt bijgehouden? Welk veld zorgt ervoor dat er informatie in deze tabel wordt bijgehouden over de categorie waartoe het product behoort? Door gebruik te maken van het tabblad Opzoeken in het veldeigenschappengedeelte van de ontwerpweergave van de tabel, maak je een veld dat een keuzelijst weergeeft. De waarden in de lijst zijn gegevens uit een bestaande tabel of query of vaste waarden die je invoert bij het maken van het veld. In de tabel tblproducten is het veld categorienummer omgevormd tot een veld met een keuzelijst waarin de categorienamen worden weergegeven. De lijst bevat in feite de kolommen Categorienummer en Categorienaam van de tabel tblcategorieën, maar het categorienummer wordt niet getoond. Heel belangrijk is dat tussen de tabellen tblproducten en tblcategorieën de juiste relatie aanwezig is. Dat leer je in het volgende hoofdstuk. Welke kolom wordt in feite bewaard in het veld? Waaruit kun je afleiden? De kolom met het categorienummer is onzichtbaar in gegevensbladweergave. Waaruit kun je dit afleiden? Zorg ervoor dat het categorienummer nu wel te zien is in gegevensbladweergave. Is dat een goed idee? Zorg opnieuw voor een gebruiksvriendelijker voorstelling. Wat is het voordeel van de eigenschap Alleen lijst op Ja te zetten? 5.2 Zelf een tabel maken 5.2. Probleemdefinitie Juli, augustus en september zijn altijd drukke maanden voor Artemis. Het extra werk wordt opgevangen door aanwerving van jobstudenten. Jij moet de gegevens hiervan bijhouden in een nieuwe tabel Selecteer het veld Categorienummer en bestudeer het tabblad Opzoeken Tabelstructuur Bepaal welke informatie je per jobstudent moet hebben. De tabelstructuur wordt ingevoerd in het Tabelontwerpvenster. Selecteer in het databasevenster het tabblad Tabel en klik op. Kies Ontwerpweergave. Maak gebruik van F om uitleg op te vragen over de verschillende onderdelen. Het ontwerpscherm heeft een aangepaste werkbalk: VVKSO Informaticabeheer Databases - pagina 49 VVKSO Informaticabeheer Databases - pagina 50

26 Gebruik Knopinfo om de betekenis van de knoppen te kennen. Beantwoord de nevenstaande vraag voorlopig met Nee. (zie verder) Vul het Tabelontwerpvenster correct in, rekening houdend met de onderstaande tabel: Familienaam Straat Postnummer Gemeente Telefoon Geboortedatum Afdeling Uurloon Rekeningnummer DatumEersteContract Rijbewijs Geslacht Opmerkingen veldnaam Verfijn vervolgens het tabelontwerp. gegevenstype De familienaam (verplicht in te vullen) moet steeds in hoofdletters worden getoond. Voor het postnummer geef je steeds precies vier cijfers in. De gemeente wens je steeds in hoofdletters weer te geven. Het uurloon kan waarden krijgen tussen 8,00 EUR en 2,00 EUR; de meeste jobstudenten verdienen 0,00 EUR per uur. Voor het rekeningnummer moet je een gepast masker voorzien (enkel cijfers typen en bewaren). De datum waarop het eerste contract met de jobstudent wordt afgesloten kan nooit plaatsvinden na vandaag. Voor de afdeling moet de gebruiker kunnen kiezen uit een lijst (Verkoop, Personeelsdienst, Productie of Marketing). Gebruik voor het maken van een keuzelijst de Wizard Opzoeken bij het kiezen van het Veldtype. De meeste jobstudenten hebben geen rijbewijs. Bij Geslacht moet je (voor mannelijk) of 2 (voor vrouwelijk) invullen. Test de veldeigenschappen aan de hand van vijf goed gekozen voorbeeldrecords. Sluit het ontwerpscherm. Kies wijzigingen opslaan en bewaar de structuur als tbl- Jobstudenten Indexeren Met de veldeigenschap Geïndexeerd kun je het sorteren en zoeken naar gegevens versnellen. Opzoeken en/of sorteren volgens familienaam komt vrij vaak voor en moet dus vlot verlopen. Open het tabelontwerpvenster opnieuw voor tbljobstudenten. Kies uit het lijstje naast Geïndexeerd Ja (Duplicaten OK). Waarom kies je voor Duplicaten OK en niet voor Geen duplicaten? Sla het gewijzigde ontwerp op. Indexen versnellen het zoekproces. Komt de naam van de jobstudent niet voor dan zal dit vlugger ontdekt worden met een index. Bij het toevoegen, verwijderen en aanpassen van de gegevens van een jobstudent zal MS-Access automatisch alle bestaande indexen aanpassen Tabelstructuur wijzigen Voeg het veld Voornaam toe na het veld Familienaam. Let op: Wijzigingen aan de tabelstructuur kunnen leiden tot gegevensverlies! Welke problemen kun je verwachten in volgende gevallen: wijzigen van de validatieregel bij het veld Uurloon in: Between 0 And 5? veldlengte bij het veld Familienaam wijzigen in 25. Kun je problemen verwachten als je de veldlengte bij het veld Gemeente wijzigt in 55? Tabeleigenschappen Met de veldeigenschap Validatieregel kun je de waarden die ingevoerd mogen worden beperken. Een validatieregel van een veld mag echter nooit een veldnaam bevatten. De jobstudenten van Artemis moeten minstens 8 jaar zijn bij aanwerving. Deze voorwaarde controleren voor elke record vereist de kennis van de Geboortedatum en van DatumEersteContract. Daarom kun je deze eis niet vertalen naar een validatieregel bij een bepaald veld. Via de tabeleigenschappen kan dit wel. VVKSO Informaticabeheer Databases - pagina 5 VVKSO Informaticabeheer Databases - pagina 52

27 of kies Beeld, Eigenschappen... Vul het dialoogven- Klik op de knop Eigenschappen ster als volgt in: 5.3 Een database implementeren Als je een database-ontwerp hebt gemaakt, kun je de database implementeren in MS- Access. Iedere tabel uit het ontwerp wordt geïmplementeerd als een MS-Access tabel. Bij het ontwerp heb je ook al voor elke tabel een primaire sleutel gedefinieerd en heb je relaties tussen de tabellen gelegd. Bij het implementeren van de database moet je dus: - tabellen definiëren; - relaties tussen de tabellen leggen. Bij het definiëren van de tabellen moet je aandacht besteden aan het invoeren van goede veldeigenschappen. De rechte haken ([ ]) duiden aan dat het niet om de woorden DatumEersteContract en Geboortedatum gaat, maar om de velden met die naam. Ga na met de Helpfunctie wat de betekenis is van de functie Year(). Je kunt meerdere voorwaarden aanbrengen in de validatieregel door ze te verbinden met de logische operatoren en en of. Nadat alle gegevens van een record ingevoerd zijn, zal MS-Access controleren of er aan de tabeleigenschappen is voldaan. Een nieuwe database maken in MS-Access Wanneer je Microsoft Access start, wordt automatisch een dialoogvenster weergegeven waarin je kunt kiezen of je een nieuwe database wilt maken of een bestaande database wilt openen. Als dit dialoogvenster wordt weergegeven, kies je Op basis van een lege database en klik je vervolgens op OK. Als je al een database hebt geopend of het dialoogvenster hebt gesloten dat verschijnt wanneer Microsoft Access wordt gestart, klik je op de knop Nieuw en kies je Lege Database in het taakvenster Nieuw bestand. op de werkbalk Primaire sleutel Voor elke tabel in MS-Access wordt best een primaire sleutel gedefinieerd. Het kiezen van een primaire sleutel heeft volgende voordelen: je kunt nooit twee records met dezelfde waarde voor dat veld (of combinatie van velden) tegenkomen; het sorteren en opzoeken volgens dit veld gaat aanzienlijk sneller; de tabel wordt gerangschikt volgens de waarde van de primaire sleutel. Ga na in de ontwerpweergave van de tabel tblwerknemers welk veld als primaire sleutel werd ingesteld. Hoe herken je de primaire sleutel? Open de tabel tbljobstudenten. Geef een naam en een locatie op voor de database en klik op Maken. Welk(e) veld(en) kunnen hier in aanmerking komen als primaire sleutel? Verklaar je antwoord. Voeg een veld JobstudentID toe als primaire sleutel. Welk gegevenstype kies je hiervoor en waarom? 5.4 Oefeningen Hoeveel primaire sleutels kan een tabel hebben. Hoe ken je een primaire sleutel toe aan een veld? 2 Wat is de betekenis van de knoppen? VVKSO Informaticabeheer Databases - pagina 53 VVKSO Informaticabeheer Databases - pagina 54

Database-ontwerp. op basis van een SQL-database HA

Database-ontwerp. op basis van een SQL-database HA Database-ontwerp op basis van een SQL-database HA-1611-01 Boekhouden-informatica, Informaticabeheer Marc De Wandel, Ria Van Eysendeyk Werkgroep Handel 2009 Vlaams Verbond van het Katholiek Secundair Onderwijs

Nadere informatie

Als er besloten is een database op te stellen dient men een analyse van de informatiegegevens te volbrengen.

Als er besloten is een database op te stellen dient men een analyse van de informatiegegevens te volbrengen. Normaliseren Een van de voornaamste rollen in een informatie systeem is het bewaren van gegevens en liefst over een lange tijd. Meestal doen we dat door middel van een gegevensbank of databank. Deze gestructureerde,

Nadere informatie

In deze appendix wordt bekeken wat er moet gebeuren voordat

In deze appendix wordt bekeken wat er moet gebeuren voordat Normaliseren A In deze appendix wordt bekeken wat er moet gebeuren voordat een systeem kan worden gedefinieerd. Dit begint met een analyse van de gegevens die de basis vormen. Daarbij wordt gekeken naar

Nadere informatie

Informatie & Databases

Informatie & Databases Informatie Wat is informatie en waaruit het bestaat? Stel op een kaart staat het getal 37 geschreven. Wat kun je dan zeggen van het cijfer 37? Niets bijzonders, toch? Alleen dat het een getal is. Gaat

Nadere informatie

Normaliseren voor Dummies

Normaliseren voor Dummies Waarom normaliseren? Normaliseren voor Dummies Gegevensredundantie leidt tot gegevensinconsistentie! Dit cryptisch antwoord betekent het volgende: indien men dezelfde gegevens onnodig herhaaldelijk opslaat

Nadere informatie

Workshop 3x. Normaliseren. Normaliseren. Hiëarchische database ODBMS. Relationele database. Workshop 14 oktober 2010. A. Snippe ICT Lyceum 1

Workshop 3x. Normaliseren. Normaliseren. Hiëarchische database ODBMS. Relationele database. Workshop 14 oktober 2010. A. Snippe ICT Lyceum 1 Workshop 3x Analytisch vermogen Huiswerk Lestijden 10:00 12:30 Pauze 10:15 10:30 Deze les: Hiëarchische database Relationele database ODBMS Normaliseer stappen Hiëarchische database Elk record in een database

Nadere informatie

Les S-01: De basisbeginselen van SQL

Les S-01: De basisbeginselen van SQL Les S-01: De basisbeginselen van SQL 1.0 Relationele databases en SQL Een database is een bestand waarin gegevens worden opgeslagen in de vorm van tabellen. Zo kan een huisarts met behulp van een database

Nadere informatie

Cursus Access voor Beginners Hoofdstuk 2

Cursus Access voor Beginners Hoofdstuk 2 Cursus Access voor Beginners Hoofdstuk 2 Handleiding van Auteur: OctaFisH April 2011 handleiding: Cursus Access voor Beginners Hoofdstuk 2 Cursus Access voor Beginners Hoofdstuk 2 Auteur: OctaFisH In deze

Nadere informatie

9 Werken met meer tabellen (zie ook query s)

9 Werken met meer tabellen (zie ook query s) 9 Werken met meer tabellen (zie ook query s) 9.1 Inleiding werkwijze je moet begrijpen waarom in de praktijk een databank meestal opgebouwd wordt met verschillende tabellen die aan elkaar gekoppeld worden.

Nadere informatie

Systeemontwikkeling, Hoofdstuk 4, Tabellen maken in MS Access 2010

Systeemontwikkeling, Hoofdstuk 4, Tabellen maken in MS Access 2010 4 Tabellen maken in MS Access In dit hoofdstuk starten we met de bouw van ons informatiesysteem met de belangrijkste bouwstenen: de tabellen. 4.1 Starten met MS Access Als je het programma Microsoft Access

Nadere informatie

Leerjaar 1/2 ICT-Academie. Niveau 4. Applicatie ontwikkeling

Leerjaar 1/2 ICT-Academie. Niveau 4. Applicatie ontwikkeling Databases SQL Leerjaar 1/2 ICT-Academie Niveau 4 Applicatie ontwikkeling Auteur: R. Meijerink Datum: Januari 2013 0. Inleiding Databases / SQL In deze lessen wordt je geleerd databases te bouwen in SQL-code.

Nadere informatie

Entiteit Zaken en gebeurtenissen waarvan gegevens moeten worden vastgelegd worden een entiteit genoemd: b.v. mens, voorstelling, auto.

Entiteit Zaken en gebeurtenissen waarvan gegevens moeten worden vastgelegd worden een entiteit genoemd: b.v. mens, voorstelling, auto. Relationele databases SqlServer en Oracle zijn relationele client server databases. De verwerking van de opdrachten vindt plaats op de server. Access is een relationele pc database. De verwerking van de

Nadere informatie

Databanken programmatorisch benaderen

Databanken programmatorisch benaderen Databanken programmatorisch benaderen met Visual Studio 2013 HA-2267-01 Informaticabeheer Bert Cauwenberg en Lieven Pauwels Werkgroep Handel 2015 Vlaams Verbond van het Katholiek Secundair Onderwijs Guimardstraat

Nadere informatie

Les S-01: De basisbeginselen van SQL

Les S-01: De basisbeginselen van SQL Les S-01: De basisbeginselen van SQL 1.0 Relationele databases en SQL Een database is een bestand waarin gegevens worden opgeslagen in de vorm van tabellen. Zo kan een huisarts met behulp van een database

Nadere informatie

Databases - Inleiding

Databases - Inleiding Databases Databases - Inleiding Een database is een verzameling van een aantal gegevens over een bepaald onderwerp: een ledenbestand van een vereniging, een forum, login gegevens. In een database worden

Nadere informatie

Opleiding SQL / Systeemanalyse IBK ERD. Hogeschool Rotterdam

Opleiding SQL / Systeemanalyse IBK ERD. Hogeschool Rotterdam Opleiding SQL / Systeemanalyse IBK ERD Hogeschool Rotterdam ERD ERD = Entity Relationship diagram is een model of diagram voor het inzichtelijk te maken van een conceptueel datamodel. Het is een visuele

Nadere informatie

Waarom Access. In de onderstaande afbeelding ziet u een begin van de lijst met cliëntgegevens van de diëtiste.

Waarom Access. In de onderstaande afbeelding ziet u een begin van de lijst met cliëntgegevens van de diëtiste. Waarom Access Voor velen is het verschijnsel van de relationele database een brug te ver. Voor het opslaan en analyseren van gegevens neemt men zijn toevlucht tot Excel. Excel heeft inderdaad een uitgebreid

Nadere informatie

Les 10 : Aanmaken van een database (deel2).

Les 10 : Aanmaken van een database (deel2). Les 10 : Aanmaken van een database (deel2). Wat is een database? Een centrale opslagruimte voor gegevens. Alle informatie wordt centraal opgeslagen en kan door iedereen geraadpleegd worden. Voordelen van

Nadere informatie

Programmeren met databanken volgens het lagenmodel in C#

Programmeren met databanken volgens het lagenmodel in C# Programmeren met databanken volgens het lagenmodel in C# met Visual Studio en MySQL HA-2267-02 Informaticabeheer Bert Cauwenberg en Lieven Pauwels Werkgroep Handel 2016 Guimardstraat 1, 1040 Brussel Guimardstraat

Nadere informatie

Programmeren met databanken volgens het lagenmodel in C#

Programmeren met databanken volgens het lagenmodel in C# Programmeren met databanken volgens het lagenmodel in C# met Visual Studio en MySQL HA-2267-04 Informaticabeheer Bert Cauwenberg en Lieven Pauwels Werkgroep Handel 2017 Guimardstraat 1, 1040 Brussel Guimardstraat

Nadere informatie

Opdrachten databaseontwikkeling. Niveau 3/4

Opdrachten databaseontwikkeling. Niveau 3/4 Opdrachten databaseontwikkeling. Bij: databaseontwikkeling Access 2000/2002 Niveau 3/4 Opdracht 01. In de bijlage van deze opdrachten wordt stap voor stap aangegeven welke stappen je moet volgen om tot

Nadere informatie

Informatie Systeem Ontwikkeling ISO 2R290

Informatie Systeem Ontwikkeling ISO 2R290 Informatie Systeem Ontwikkeling ISO 2R290 docent: Prof. dr. Paul De Bra Gebaseerd op: Database System Concepts, 5th Ed. doel van dit vak kennis van en inzicht in basisbegrippen over informatiesystemen

Nadere informatie

1 Download de database 'bieren.mdb' en bewaar het bestand in c:\werkmap van je computer.

1 Download de database 'bieren.mdb' en bewaar het bestand in c:\werkmap van je computer. DataBase Management & Databasetechnologie We gaan nu aan de slag met het databasemanagementprogramma Access. Zo'n set programma's waarmee je databases kunt maken, beheren en bevragen noemt men ook wel

Nadere informatie

Normaliseren versie 1.1

Normaliseren versie 1.1 Normaliseren versie 1.1 Datamodellering 27 1 Wat is normaliseren? Data organiseren in tabelvorm, zó dat: er minimale redundantie is update operaties (toevoegen, wijzigen, verwijderen) eenvoudig zijn uit

Nadere informatie

4 Tabellen maken in MS Access In dit hoofdstuk starten we met de bouw van ons informatiesysteem met de belangrijkste bouwstenen: de tabellen.

4 Tabellen maken in MS Access In dit hoofdstuk starten we met de bouw van ons informatiesysteem met de belangrijkste bouwstenen: de tabellen. 4 Tabellen maken in MS Access In dit hoofdstuk starten we met de bouw van ons informatiesysteem met de belangrijkste bouwstenen: de tabellen. 4.1 Starten met MS Access Als je het programma Microsoft Access

Nadere informatie

Databases gebruiken. Databases gebruiken

Databases gebruiken. Databases gebruiken Databases gebruiken In deze module wordt van de kandidaat verwacht dat hij een goed begrip heeft van databases en aantoont competent te zijn in het gebruik van een database. Doel van de module De kandidaat:

Nadere informatie

DATAMODELLERING DATA MAPPING MODEL

DATAMODELLERING DATA MAPPING MODEL DATAMODELLERING DATA MAPPING MODEL Inleiding In dit whitepaper wordt de datamodelleervorm data mapping model beschreven. Deze modelleervorm staat in verhouding tot een aantal andere modelleervormen. Wil

Nadere informatie

PROGRAMMA 2011-2012. Vak: informatica..

PROGRAMMA 2011-2012. Vak: informatica.. Vak: informatica.. Laag: Havo-. PROGRAMMA 2011-2012 week leerstof dagen toets overig 34-26.08 zomervakantie Bespreking PTA-404 Deze week: uitreiking van de Praktische Opdracht Programmeren Herhaling theorie

Nadere informatie

Technische nota AbiFire5 Rapporten maken via ODBC

Technische nota AbiFire5 Rapporten maken via ODBC Technische nota AbiFire5 Rapporten maken via ODBC Laatste revisie: 29 juli 2009 Inhoudsopgave Inleiding... 2 1 Installatie ODBC driver... 2 2 Systeeminstellingen in AbiFire5... 3 2.1 Aanmaken extern profiel...

Nadere informatie

Normaliseren. Er zijn 5 stappen in het normaliseren, maar meestal worden alleen de eerste 3 uitgevoerd.

Normaliseren. Er zijn 5 stappen in het normaliseren, maar meestal worden alleen de eerste 3 uitgevoerd. Inleiding In deze les gaan we de stappen van het normaliseren van nulde normaalvorm (0NV) tot en met de derde normaalvorm (3NV) bespreken aan de hand van een volledig uitgewerkt voorbeeld. De normalisering

Nadere informatie

DATAMODELLERING BASIS UML KLASSEMODEL

DATAMODELLERING BASIS UML KLASSEMODEL DATAMODELLERING BASIS UML KLASSEMODEL Inleiding In dit whitepaper wordt de datamodelleervorm basis UML klassemodel beschreven. Deze modelleervorm staat in verhouding tot een aantal andere modelleervormen.

Nadere informatie

2.2 Een tabel ontwerpen

2.2 Een tabel ontwerpen 2.2 Een tabel ontwerpen 2.2.1 Gegevens analyse Alvorens de tabellen van een database te kunnen gaan opzetten, dient u eerst te bepalen, welke gegevens daarin moeten worden opgenomen. Bepaal eerst het doel

Nadere informatie

Entity-Relationship Diagram (ERD) Modelleren

Entity-Relationship Diagram (ERD) Modelleren Entity-Relationship Diagram (ERD) Modelleren Huub de Beer Eindhoven, 4 juni 2011 Informatiesysteemontwikkeling en modelleren in fasen 1. Gegevensstromen naar en van het systeem: DFD 2. Gegevens die in

Nadere informatie

SQL is opgebouwd rond een basisinstructie waaraan één of meerdere componenten worden toegevoegd.

SQL is opgebouwd rond een basisinstructie waaraan één of meerdere componenten worden toegevoegd. BASISINSTRUCTIES SQL SQL : Structured Query Language is een taal gericht op het ondervragen van een relationele database en die aan veel klassieke databasemanagementsystemen kan worden gekoppeld. SQL is

Nadere informatie

Een database voor MEDIAGROEP DE CASE OBJECTTYPEN EN LABELTYPEN

Een database voor MEDIAGROEP DE CASE OBJECTTYPEN EN LABELTYPEN pagina 1 van 9 Een database voor MEDIAGROEP In dit digitale practicum wordt het efficiënt ontwerpen van een eenvoudige database behandeld. Er wordt gebruik gemaakt van een werkwijze, die een aantal jaren

Nadere informatie

Hoofdstuk. Access wordt ook wel een elektronische kaartenbak. Access 2013, wat kunt u ermee?

Hoofdstuk. Access wordt ook wel een elektronische kaartenbak. Access 2013, wat kunt u ermee? Access 2013, wat kunt u ermee? Access wordt ook wel een elektronische kaartenbak genoemd. Anderen noemen het een programma om een relationele database mee te beheren. De vergelijking met een kaartenbak

Nadere informatie

INHOUDSOPGAVE Ms Access 2007

INHOUDSOPGAVE Ms Access 2007 INHOUDSOPGAVE Ms Access 2007 Woord vooraf... 11 Inleiding... 12 1 Een inleiding tot databanken... 12 2 Een databank ontwerpen... 13 3 Wat is Microsoft Access?... 16 DEEL 1 Een relationele databank opstellen...

Nadere informatie

Van een ER-diagram naar een database specificatie in SQL

Van een ER-diagram naar een database specificatie in SQL Van een ER-diagram naar een database specificatie in SQL Huub de Beer Eindhoven, 4 juni 2011 Inhoudsopgave 1 Inleiding 1 2 Van een ER-diagram naar het relationele model 1 3 Van relationeel model naar SQL

Nadere informatie

Zelftest Informatica-terminologie

Zelftest Informatica-terminologie Zelftest Informatica-terminologie Document: n0947test.fm 01/07/2015 ABIS Training & Consulting P.O. Box 220 B-3000 Leuven Belgium TRAINING & CONSULTING INTRODUCTIE Deze test is een zelf-test, waarmee u

Nadere informatie

het bank voorbeeld ISO Datamodelleren modelleren met het E-R R model een database ontwerpen verzamelingen van relaties (verbanden)

het bank voorbeeld ISO Datamodelleren modelleren met het E-R R model een database ontwerpen verzamelingen van relaties (verbanden) het bank voorbeeld ISO Datamodelleren Prof. dr. Paul De Bra waarom zijn er drie tabellen om klanten en rekeningen voor te stellen? customer (customer_name, customer_street, customer_city) account (account_number,

Nadere informatie

Relationele databases

Relationele databases Relationele databases Normaliseert eer gij begint! Normalisatie is van zeer groot belang bij het ontwikkelen van een database applicatie. De kern van de zaak, de doelstelling : Efficiënt beheer van data.

Nadere informatie

MS Access. Module 0. MS Access, versie 2000 (NL) Nummer: 256 (11062002) The Courseware Company

MS Access. Module 0. MS Access, versie 2000 (NL) Nummer: 256 (11062002) The Courseware Company MS Access Module 0 MS Access, versie 2000 (NL) Nummer: 256 (11062002) The Courseware Company Niets van deze uitgave mag verveelvoudigd worden en/of openbaar worden gemaakt door middel van druk, fotokopie,

Nadere informatie

Cursus Analyse voor Web Applicaties 1. Webdesign / Web Programmeren Analyse voor web applicaties SDM methode + Basis UML

Cursus Analyse voor Web Applicaties 1. Webdesign / Web Programmeren Analyse voor web applicaties SDM methode + Basis UML Cursus Analyse voor Web Applicaties 1 Organisatie Opleiding Module Onderwerp Syntra AB Webdesign / Web Programmeren Analyse voor web applicaties SDM methode + Basis UML Analyse op basis van SDM en UML

Nadere informatie

Info-books. Toegepaste Informatica. Handleiding. Deel 40c : Gegevensbeheer en algoritmen in Access. HA40c. Jos Gils Erik Goossens

Info-books. Toegepaste Informatica. Handleiding. Deel 40c : Gegevensbeheer en algoritmen in Access. HA40c. Jos Gils Erik Goossens Info-books HA40c Toegepaste Informatica Handleiding Deel 40c : Gegevensbeheer en algoritmen in Access Jos Gils Erik Goossens Veldlengte Het maximale aantal tekens dat in een veld kan ingevoerd worden.

Nadere informatie

ER-modeling. Datamodellering Wat is ER-modeling?

ER-modeling. Datamodellering Wat is ER-modeling? ER-modeling Datamodellering 2008 1 Wat is ER-modeling? ER-modelleren: top-down benadering bedacht door P. Chen 1976, paper in ACM Transactions on Database Systems Codd (Relationeel Model) aanvankelijk

Nadere informatie

ER-modeling. Wat is ER-modeling? ERD & relationeel model. ER-benadering DMO Datamodellering 2008

ER-modeling. Wat is ER-modeling? ERD & relationeel model. ER-benadering DMO Datamodellering 2008 ER-modeling Datamodellering 2008 1 Wat is ER-modeling? ER-modelleren: top-down benadering bedacht door P. Chen 1976, paper in ACM Transactions on Database Systems Codd (Relationeel Model) aanvankelijk

Nadere informatie

Toegepaste notatiewijzen DLA software

Toegepaste notatiewijzen DLA software Toegepaste notatiewijzen DLA software Bert Dingemans info@dla-architect.nl Inleiding In de DLA Software wordt gebruik gemaakt van een aantal notatiewijzen voor het opstellen van een object- en procesmodel.

Nadere informatie

1. Databanken. Wat is een databank? Verschillende opslagmethodes

1. Databanken. Wat is een databank? Verschillende opslagmethodes 1. Databanken Wat is een databank? Verschillende opslagmethodes Tekst bestanden Spreadsheet Relationele gegevensbanken Relationeel model De gestandaardiseerde opvraagtaal SQL Beheer van een mysql databank

Nadere informatie

ISO Datamodelleren. Prof. dr. Paul De Bra. Gebaseerd op: Database System Concepts, 5th Ed. Silberschatz, Korth and Sudarshan

ISO Datamodelleren. Prof. dr. Paul De Bra. Gebaseerd op: Database System Concepts, 5th Ed. Silberschatz, Korth and Sudarshan ISO Datamodelleren Prof. dr. Paul De Bra Gebaseerd op: Database System Concepts, 5th Ed. het bank voorbeeld waarom zijn er drie tabellen om klanten en rekeningen voor te stellen? customer (customer_name,

Nadere informatie

Koppeling met een database

Koppeling met een database PHP en MySQL Koppeling met een database 11.1 Inleiding In PHP is het eenvoudig om een koppeling te maken met een database. Een database kan diverse gegevens bewaren die met PHP aangeroepen en/of bewerkt

Nadere informatie

Een inleiding in de Unified Modeling Language 79

Een inleiding in de Unified Modeling Language 79 Een inleiding in de Unified Modeling Language 79 2. Het objectdiagram Soms hebben we behoefte om in de plaats van een klasse een instantie van deze klasse weer te geven. Figuur 3.22. toont als voorbeeld

Nadere informatie

MODULEBESCHRIJVING Databases DBS1

MODULEBESCHRIJVING Databases DBS1 MODULEBESCHRIJVING Databases DBS1 Samensteller(s): Richard van den Ham Datum: 30-08-2012 Versie: 1.0 Module: Databases Identificatie Progresscode: DBS1 Semester: 1 Omvang: 140 SBUs/ 5 ECTS-punten Lestijd:

Nadere informatie

PROGRAMMA 2011-2012. Vak: Informatica..

PROGRAMMA 2011-2012. Vak: Informatica.. Vak: Informatica.. Laag: vwo-. PROGRAMMA 2011-2012 week leerstof dagen toets overig 34-26.08 zomervakantie Bespreking PTA-404 1. Deze week: uitreiking van de Praktische Opdracht Programmeren Herhaling

Nadere informatie

Praktijkinstructie Geautomatiseerde informatievoorziening - beheer 3 (CIN02.3/CREBO:50170)

Praktijkinstructie Geautomatiseerde informatievoorziening - beheer 3 (CIN02.3/CREBO:50170) instructie Geautomatiseerde informatievoorziening - beheer 3 (CIN02.3/CREBO:50170) pi.cin02.3.v2 ECABO, 1 september 2003 Alle rechten voorbehouden. Niets uit deze uitgave mag worden vermenigvuldigd, overgenomen,

Nadere informatie

Technische nota AbiFire Rapporten maken via ODBC

Technische nota AbiFire Rapporten maken via ODBC Technische nota AbiFire Rapporten maken via ODBC Laatste revisie: 23 januari 2018 Inhoudsopgave 1 Inleiding... 2 2 Systeeminstellingen in AbiFire... 3 2.1 Aanmaken extern profiel... 3 2.2 Toewijzing extern

Nadere informatie

Normaliseren van tabellen

Normaliseren van tabellen Normaliseren van tabellen Inleiding Uit het voorgaande blijkt duidelijk dat de grote hoeveelheid informatie die verzameld worden in een database verspreid zitten over verschillenden tabellen. Dit is een

Nadere informatie

Database Structuur via menus

Database Structuur via menus Data Dictionary Database Structuur via menus Na het normaliseren en maken van een data dictionary kunnen de tabellen worden ingevoerd in de database. In deze les wordt getoond hoe dit in Access gebeurt.

Nadere informatie

Systeemontwikkeling, Hoofdstuk 3, Tabellen en formulieren

Systeemontwikkeling, Hoofdstuk 3, Tabellen en formulieren 3. Tabellen en formulieren Het Contextdiagram en het Data Flow Diagram geven een globaal ontwerp van het informatiesysteem dat we gaan bouwen. We gaan het ontwerp nu verder detailleren voordat we het daadwerkelijk

Nadere informatie

Vak: Toegepaste informatica

Vak: Toegepaste informatica Vak: Toegepaste informatica Let op: de inhoud van een vakfiche wordt jaarlijks aangepast. Zorg ervoor dat u de juiste vakfiche raadpleegt. Deze vakfiche is geldig van 1 januari 2015 tot en met 31 december

Nadere informatie

DATABASEBEHEER IN EXCEL

DATABASEBEHEER IN EXCEL DATABASEBEHEER IN EXCEL 1. LIJSTEN Een lijst is een reeks van rijen met gelijksoortige gegevens waarvan de eerste rij de labels (veldnamen) bevat. Een voorbeeld: Je kunt een lijst beschouwen als een eenvoudige

Nadere informatie

Databases en SQL Foundation (DBSQLF.NL)

Databases en SQL Foundation (DBSQLF.NL) Databases en SQL Foundation (DBSQLF.NL) EXIN Hét exameninstituut voor ICT ers Janssoenborch - Hoog Catharijne Godebaldkwartier 365 3511 DT Utrecht Postbus 19147 3501 DC Utrecht Nederland T +31 30 234 48

Nadere informatie

Met een mailing of massaverzending kunt u een groot aantal documenten verzenden naar gebruikelijke adressen, die in een gegevensbestand staan.

Met een mailing of massaverzending kunt u een groot aantal documenten verzenden naar gebruikelijke adressen, die in een gegevensbestand staan. Een mailing verzorgen Met een mailing of massaverzending kunt u een groot aantal documenten verzenden naar gebruikelijke adressen, die in een gegevensbestand staan. Voor deze techniek zijn twee bestanden

Nadere informatie

INHOUDSOPGAVE Ms Access 2010

INHOUDSOPGAVE Ms Access 2010 Inhoudsopgave Ms Access 2010-1 INHOUDSOPGAVE Ms Access 2010 Woord vooraf... 11 Inleiding... 12 1 Een inleiding tot databanken... 12 2 Een databank ontwerpen... 13 3 Wat is Microsoft Access?... 16 DEEL

Nadere informatie

Auteur Arjaan den Ouden Datum 4 december 2013 Status Definitief Versie 1.0

Auteur Arjaan den Ouden Datum 4 december 2013 Status Definitief Versie 1.0 Auteur Arjaan den Ouden Datum 4 december 2013 Status Definitief Versie 1.0 Behoudens uitzondering door de wet gesteld, mag zonder schriftelijke toestemming van de rechthebbende op het auteursrecht van

Nadere informatie

Oefening 1. Bedenk een voorbeeld van een vreemde sleutel die naar de eigen relatie verwijst.

Oefening 1. Bedenk een voorbeeld van een vreemde sleutel die naar de eigen relatie verwijst. Oefening 1 Bedenk een voorbeeld van een vreemde sleutel die naar de eigen relatie verwijst. Oplossing 1 Bijvoorbeeld een werknemer die leiding geeft aan andere werknemers. Oefening 2 Gegeven is de relatie

Nadere informatie

7. Het selecteren van gegevens

7. Het selecteren van gegevens 7. Het selecteren van gegevens 7.1. Inleiding Het doel van databases is het ontsluiten van gegevens. Een database wordt gebruikt om gegevens in op te slaan en te lezen. In dit hoofdstuk ga je door gebruik

Nadere informatie

Het omzetten van een ER-diagram naar SQL

Het omzetten van een ER-diagram naar SQL Het omzetten van een ER-diagram naar SQL Huub de Beer Eindhoven, 4 juni 2011 Omzetting ER-diagram naar SQL in twee stappen 1: ER-Diagram relationeel model Onderwerp van hoofdstuk 3 Entiteittype relatie,

Nadere informatie

Databases Ontwerpen en Normaliseren. 5 & 6 Informatica. Ontwerpen van een database volgens de regels van Boyce/Codd

Databases Ontwerpen en Normaliseren. 5 & 6 Informatica. Ontwerpen van een database volgens de regels van Boyce/Codd Databases Ontwerpen en Normaliseren 5 & 6 Informatica Ontwerpen van een database volgens de regels van Boyce/Codd Lic. André JONCKERS 2012-2013 1 Introductie In deze cursus leer je een database ontwerpen.

Nadere informatie

Powerpoint presentatie College 5 Gilbert van Lierop & Farshad Salamat

Powerpoint presentatie College 5 Gilbert van Lierop & Farshad Salamat Powerpoint presentatie College 5 Gilbert van Lierop & Farshad Salamat Wat is een database? Een verzameling van georganiseerde data Een database bestaat uit applicaties, SQL en het DBMS Watis eendbms? EenDBMS

Nadere informatie

WISKUNDE EN ICT. 1 Wiskundige symbolen N, R, 2 Symbolen

WISKUNDE EN ICT. 1 Wiskundige symbolen N, R, 2 Symbolen Vergelijkingseditor 2003 Module 1a en ICT 1 WISKUNDE EN ICT Tijdens de lessen wiskunde op deze hogeschool met de laptop moet je ook voor wiskunde de laptop zinvol gebruiken. Dat dit niet zo evident is,

Nadere informatie

Inhoudsopgave Voorwoord 9 Nieuwsbrief 9 Introductie Visual Steps 10 Wat heeft u nodig? 11 Hoe werkt u met dit boek?

Inhoudsopgave Voorwoord 9 Nieuwsbrief 9 Introductie Visual Steps 10 Wat heeft u nodig? 11 Hoe werkt u met dit boek? Inhoudsopgave Voorwoord... 9 Nieuwsbrief... 9 Introductie Visual Steps... 10 Wat heeft u nodig?... 11 Hoe werkt u met dit boek?... 12 Uw voorkennis... 13 De volgorde van lezen... 14 De schermafbeeldingen...

Nadere informatie

INLEIDING... 1 AFSPRAKEN... 2 INHOUDSOPGAVE...

INLEIDING... 1 AFSPRAKEN... 2 INHOUDSOPGAVE... Inhoudsopgave INLEIDING... 1 AFSPRAKEN... 2 INHOUDSOPGAVE... 3 1 DE DATABASE CURSUSSEN... 9 1.1 Inleiding... 9 1.2 Het voorbeeld... 9 1.2.1 Probleemomschrijving... 9 1.2.2 Concretisering en vragen naar

Nadere informatie

ADVANCED DATABASES Syllabus versie 2.0

ADVANCED DATABASES Syllabus versie 2.0 ECDL-MODULE ADVANCED DATABASES Syllabus versie 2.0 Doel Dit document bevat de syllabus van de module Advanced Databases. In de syllabus worden aan de hand van leeruitkomsten de kennis en vaardigheden uiteengezet

Nadere informatie

Inhoudsopgave. Hoofdstuk 1: Beginnen met Access Hoofdstuk 2: Database SNOEP verkennen Voorwoord...9. Inhoudsopgave 3

Inhoudsopgave. Hoofdstuk 1: Beginnen met Access Hoofdstuk 2: Database SNOEP verkennen Voorwoord...9. Inhoudsopgave 3 Inhoudsopgave 3 Inhoudsopgave Voorwoord...9 Hoofdstuk 1: Beginnen met Access...11 Wat zijn databases?...12 Tabellen...12 Query's...13 Formulieren...14 Rapporten...14 Wat is een macro?...15 Wat is een module?...15

Nadere informatie

Trainingsomschrijving ACCESS 97 / 2000 / 2003NL

Trainingsomschrijving ACCESS 97 / 2000 / 2003NL Module 1 Inleiding Module 2 Ontwerpen van tabellen Module 3 Relationele databases en queries Module 4 Formulieren en rapporten Module 5 Geav. formulieren en rapporten Module 6 Macro s en menu s Module

Nadere informatie

Samen op zoek naar proeven

Samen op zoek naar proeven Samen op zoek naar proeven De handleiding Jens Vanhouwaert jens@vanhouwaert.be 1 Inhoudsopgave 1 Handleiding... 4 1.1 De website... 4 1.2 Algemene werking... 4 1.3 Download de databank... 4 1.3.1 Internet

Nadere informatie

Projecten Applicatie Ontwikkeling

Projecten Applicatie Ontwikkeling Projecten Applicatie Ontwikkeling Standaarden Normaliseren ROC Flevoland Werner Pauchli Versie 1.0 Almere, 15 januari 2004 Inhoudsopgave Inhoudsopgave Inhoudsopgave 3 1. Documentbeheer 4 2. Inleiding

Nadere informatie

databases & SQL - antwoorden

databases & SQL - antwoorden informatica databases & SQL - antwoorden Op dit lesmateriaal is een Creative Commons licentie van toepassing. 2010 Remie Woudt remie.woudt@gmail.com 2013 François Vonk (XAMP vervangen door USBWebserver

Nadere informatie

DATAMODELLERING ER DIAGRAM

DATAMODELLERING ER DIAGRAM DATAMODELLERING ER DIAGRAM Inleiding In dit whitepaper wordt de datamodelleervorm ER diagram beschreven. Deze modelleervorm staat in verhouding tot een aantal andere modelleervormen. Wil je een beeld krijgen

Nadere informatie

SQL & Datamodelleren

SQL & Datamodelleren SQL & Datamodelleren HVA-CMD-V1-datamodelleren Algemene handleiding bij het lesprogramma 2012-2013 Inhoud Inhoud... 2 Inleiding... 3 Leerdoelen:... 3 Plaats in het leerplan:... 3 Werkwijze:... 3 Lesstof:...

Nadere informatie

INSTRUCT Samenvatting Praktijk Access 2010, H2 SAMENVATTING HOOFDSTUK 2

INSTRUCT Samenvatting Praktijk Access 2010, H2 SAMENVATTING HOOFDSTUK 2 SAMENVATTING HOOFDSTUK 2 Sorteren en filteren in een tabel Sorteren kun je met de knoppen (Oplopend) en (Aflopend). Hiermee zet je records in alfabetische of numerieke volgorde. Er wordt gesorteerd op

Nadere informatie

INHOUD. Presentatie ICT werkervaring (voornamelijk) Gericht op databasetoepassingen. Sprekers. Allard van Amerongen Ing. Stefan Boekel 05-02-2008

INHOUD. Presentatie ICT werkervaring (voornamelijk) Gericht op databasetoepassingen. Sprekers. Allard van Amerongen Ing. Stefan Boekel 05-02-2008 INHOUD Presentatie ICT werkervaring (voornamelijk) Gericht op databasetoepassingen Sprekers Datum : : Allard van Amerongen Ing. Stefan Boekel 05-02-2008 INTRODUCTIE WIE BEN IK? Verleden/heden WAT DOE IK?

Nadere informatie

Les 2 Eenvoudige queries

Les 2 Eenvoudige queries Les 2 Eenvoudige queries XAMP Apache server ( http ) mysql server PHP myadmin IAM SQL oefeningen Database phpmyadmin Import : sql_producten.sql, sql_winkel.sql, sql_festival.sql SAMS SQL in 10 minuten

Nadere informatie

Canonieke Data Modellering op basis van ArchiMate. Canonieke Data Modellering op basis van Archimate Bert Dingemans

Canonieke Data Modellering op basis van ArchiMate. Canonieke Data Modellering op basis van Archimate Bert Dingemans Canonieke Data Modellering op basis van ArchiMate Canonieke Data Modellering op basis van Archimate Bert Dingemans Abstract Modelleren op basis van de open standard ArchiMate is een goed uitgangspunt voor

Nadere informatie

www.dubbelklik.nu Handleiding Access 2010

www.dubbelklik.nu Handleiding Access 2010 www.dubbelklik.nu Handleiding Access 2010 Deze handleiding is onderdeel van Dubbelklik, een lesmethode Technologie, ICT/ Loopbaanoriëntatie en Intersectoraal Alle rechten voorbehouden. Niets uit deze uitgave

Nadere informatie

Export/Import van Straten

Export/Import van Straten Technische nota AbiFire v5.4/v6.1 Export/Import van Straten Laatste revisie: 4 juli 2012 Inhoudopgave 1 Inleiding... 1 2 Overzicht van de gegevens in de import/export... 2 3 Export gegevens van de straten...

Nadere informatie

Sparse columns in SQL server 2008

Sparse columns in SQL server 2008 Sparse columns in SQL server 2008 Object persistentie eenvoudig gemaakt Bert Dingemans, e-mail : info@dla-os.nl www : http:// 1 Content SPARSE COLUMNS IN SQL SERVER 2008... 1 OBJECT PERSISTENTIE EENVOUDIG

Nadere informatie

Snelgids voor het bouwen van een IT- RDBMS in EXCEL.

Snelgids voor het bouwen van een IT- RDBMS in EXCEL. Snelgids voor het bouwen van een IT- RDBMS in EXCEL. door Johan van der Maas. Tabel2 Kolom1 Kolom2 Kolom3 Kolom4 Tabel1 Kolom1 Kolom7 Kolom6 Kolom7FK Kolom8 Kolom9 Kolom10 Kolom11 Kolom14 Tabel3 Kolom7

Nadere informatie

EUROPEES COMPUTER RIJBEWIJS / INTERNATIONAAL COMPUTER RIJBEWIJS ADVANCED DATABASE

EUROPEES COMPUTER RIJBEWIJS / INTERNATIONAAL COMPUTER RIJBEWIJS ADVANCED DATABASE EUROPEES COMPUTER RIJBEWIJS / INTERNATIONAAL COMPUTER RIJBEWIJS ADVANCED DATABASE The European Computer Driving Licence Foundation Ltd. Portview House Thorncastle Street Dublin 4 Ierland Tel: + 353 1 630

Nadere informatie

DMD-2011 Introductie. Introductie. Opzet van de cursus. Werkwijze per week. Datamodelleren en databases 2011. Twee hoorcolleges in totaal

DMD-2011 Introductie. Introductie. Opzet van de cursus. Werkwijze per week. Datamodelleren en databases 2011. Twee hoorcolleges in totaal Datamodelleren en databases 2011 Introductie Leen Breure 1/33 Opzet van de cursus Twee hoorcolleges in totaal week 1 en week 8 (14 juni) Wekelijks practicum: ca. 2 * 1 uur 1 uur: ontwikkeling van eigen

Nadere informatie

1.1 Een database ontwerpen voor een webliografie

1.1 Een database ontwerpen voor een webliografie 1.1 Een database ontwerpen voor een webliografie Maak een nieuwe Access-database aan, en noem die Webliografie.accdb 1.1.1 Aanmaken van de benodigde tabellen We maken eerst een tabel voor personen. Elke

Nadere informatie

Uitwerking toets modelleren voor vwo 6

Uitwerking toets modelleren voor vwo 6 Uitwerking toets modelleren voor vwo 6 Huub de Beer Schooljaar 2010/2011 Inhoudsopgave 1 DFD: toetsenfabrikant Dub5 1 1.1 Contextdiagram............................ 1 1.2 Gedetailleerd DFD..........................

Nadere informatie

Access Basis. 699,- excl. BTW per deelnemer Duur: Kosten: 2 dagen Max Deelnemers: 10

Access Basis. 699,- excl. BTW per deelnemer Duur: Kosten: 2 dagen Max Deelnemers: 10 Access Basis Kosten: 699,- excl. BTW per deelnemer Duur: 2 dagen Max Deelnemers: 10 Microsoft Access behoort tot een van de meest gebruikte database applicaties, waarmee u databases kunt ontwerpen en bijhouden

Nadere informatie

1 Besturingssysteem. 1.1 Wat is een besturingssysteem? 1.2 Verschillende besturingssystemen. 1.3 Windows, verschillende versies

1 Besturingssysteem. 1.1 Wat is een besturingssysteem? 1.2 Verschillende besturingssystemen. 1.3 Windows, verschillende versies 1 Besturingssysteem 1.1 Wat is een besturingssysteem? Elke computer heeft een besturingssysteem. Zonder besturingssysteem kan een computer niet werken. Het besturingssysteem zorgt ervoor dat de computer

Nadere informatie

AFO 241 - Leveranciers

AFO 241 - Leveranciers AFO 241 - Leveranciers 241.1 Inleiding[//] Het systeem hanteert een authority bestand voor leveranciers waarin alle leveranciers opgenomen worden. Bij het invoeren van een bestelling wordt een leverancier

Nadere informatie

SQL / Systeemanalyse

SQL / Systeemanalyse SQL / Systeemanalyse Wie ben ik Hans de Wit 44 jaar HBO BI in deeltijd gedaan Sinds 2008 werkzaam met BI / DWH med.hro.nl/wihan SQL De gegevens in een database vormen de grondstof voor informatie De informatie

Nadere informatie

Hoofdstuk 21: Gegevens samenvatten

Hoofdstuk 21: Gegevens samenvatten Hoofdstuk 21: Gegevens samenvatten 21.0 Inleiding In Excel kunnen grote (en zelfs ook niet zo grote) tabellen met getallen en tekst er nogal intimiderend uitzien. Echter, Excel komt helemaal tot haar recht

Nadere informatie

De teamleider is een coördinator van de lotenverkoop binnen uw vereniging, hij of zij heeft een aantal lotenverkopers onder zich.

De teamleider is een coördinator van de lotenverkoop binnen uw vereniging, hij of zij heeft een aantal lotenverkopers onder zich. 1. Inleiding Hieronder vindt u uitgebreide informatie over het invoeren van lotenkopers. U vindt hier alles over het gebruik van de knoppen en achterliggende invoer- en beheerschermen. 2. Het gemak van

Nadere informatie

Vragen hoofdstuk 1: Resultaat

Vragen hoofdstuk 1: Resultaat Vragen hoofdstuk 1: Resultaat Het ontwikkelen van informatiesystemen bevat volgende activiteiten: Analyse van het probleem. Toewijzen van resources. Ontwerp van de onderdelen van het systeem. Bouw van

Nadere informatie

Gebruikershandleiding

Gebruikershandleiding E-BOX Dankzij e-box kunnen openbare Gebruikershandleiding instellingen zoals Medex u eenvoudig documenten bezorgen. Snelheid, veiligheid, toegankelijkheid, De voordelen zijn legio! Datum 12/12/2016 Inhoudstafel

Nadere informatie