Informatieanalyse en databaseontwerp Practicum 3 Lieve Mona, dus: Relatiemanagement.
-
Upload
michiel-verstraeten -
Category
Documents
-
view
236 -
download
0
Transcript of Informatieanalyse en databaseontwerp Practicum 3 Lieve Mona, dus: Relatiemanagement.
Informatieanalyse en databaseontwerp
Practicum 3
Lieve Mona, dus:
Relatiemanagement
Inhoud Workshop 3
Relationele Databases Zelf werken aan RD’s Voorbereiden op de opdracht, de casus
Wat kun je nu?
Je kunt een eenvoudige platte database maken:» Tabellen met gegevens maken» Formulier voor het toevoegen van nieuwe gegevens» Queries gebruiken om informatie te selecteren» Rapporten om schriftelijk overzicht te bieden» Je beheerst de basis van de diverse design views om
formulieren, rapporten etc aan te kunnen passen naar jouw wensen.
Lukt dit nog niet (goed) dan:» Herhaal sheets college 1 en 2 (2 is aangepast!)» Gebruik de help-functie» Kijk je buurman/vrouw lief aan
Deze vaardigheden zijn essentieel voor eindwerk!
Demo Theorie Relaties op Whiteboard Als je dit mist, mis je een heleboel informatie die je
nodig hebt voor de informatie-analyse van de eindopdracht!
Beschrijving van de context voor de opdracht
De firma Teleprom heeft zijn verkoop in een database gezet.
Deze database is in het beginstadium van ontwikkeling (nog niet af).
Teleprom levert artikelen en diensten Bij elke levering hoort een factuur De factuur wordt gemaakt op basis van verschillende
tabellen:» Een tabel met klantgegevens» Een tabel met artikelgegevens
Dit kan alleen goed gaan met relaties!
Aan de slag!
Download op www.accessworkshop.tk onder het kopje Workshop 3 de volgende database: “verkoop”, sla die op op je eigen schijf en open hem.
Je ziet een aantal losse tabellen:
Database Verkoop
Tabel Inhoud
Contactpersonen contactpersonen
Klanten klantgegevens
Artikelen en Diensten artikelgegevens
Orders ordergegevens
De te leggen relaties:
Tussen Contactpersonen en Klanten Tussen Orders en Klanten Tussen Orders en “Artikelen en diensten”
Denkvraag:» Waarom hebben we deze relaties nodig? (denk er eerst over
na, klik dan pas door)
De te leggen relaties:
Tussen Contactpersonen en Klanten» Elke klant heeft een contactpersoon binnen het bedrijf.
Tussen Orders en Klanten» Bij elke order moeten gegevens van de klant vermeld
worden.
Tussen Orders en “Artikelen en diensten”» Bij elke order moeten de gegevens van de artikelen vermeld
worden.
Definities
Primaire Sleutel» Om relaties te kunnen leggen,
moet er in elke tabel een primair sleutelveld (primairy key) staan, waarbij de gegevens in dat veld per record verschillen.
» Vaak heeft zo’n veld het gegevenstype AutoNummering (AutoNumber) zodat Access een uniek nummer toekent (zie het als BV je Sofi Nummer, ieder mens heeft zijn eigen nummer)
Definities
Relaties» Een relatie is een verbinding tussen overeenkomstige
velden in twee tabellen. » Als gevolg van een relatie kunnen gegevens uit
verschillende tabellen gecombineerd worden in bijvoorbeeld een factuur.
» Vaak zijn de overeenkomstige velden sleutelvelden (primairy keys!), die meestal in beide tabellen dezelfde veldnaam hebben.
» Dat laatste hoeft echter niet perse (maar het is wel handig!)
De Een op Een relatie
De Een op Een relatie komt niet vaak voor. Meestal combineer je beide tabellen tot één tabel Soms is het handig om één grote tabel in een aantal
kleinere te splitsen. In ons voorbeeld heeft elk bedrijf binnen de tabel
Klanten zijn contactpersoon, waarvan de gegevens in Contactpersoon staan:
Opdracht 1: De Een op Een relatie
Zorg dat je in het databasevenster bent Druk op de knop Relationships van de werkbalk
Database
» Het lege venster Relationships verschijnt
Staat het dialoogvenster Show Table niet op het scherm, klik dan op de knop Show Table:
Selecteer de tabel Contactpersonen en klik op Add (toevoegen)» De tabel verschijnt in het venster Relationships
Voeg ook de tabel klanten toe» Misschien komt deze achter het dialoogvenster terecht.
Sluit het dialoogvenster Show Table
Dialoogvenster Edit Relationships
Sleep het veld Debiteurnr uit de tabel Contactpersoon naar het veld Debiteurnr in de tabel Klanten
Nu verschijnt het dialoogvenster
Je ziet dat onderin bij het Relationship Type het type ‘one to one’ staat
Klik op Create
De relatie geeft Access nu weer met een lijntje:
Één op één relaties werken we niet verder uit. Dit type komt zeer weinig voor namelijk.
We gaan nu verder met één op veel relaties.
Een op Veel relaties: achtergrond
Een klant kan meerdere orders aanmaken Een artikel kan meerdere keren verkocht worden
(nou ja, verschillende exemplaren uit de voorraad natuurlijk)
Een SLB’er heeft meerdere studenten in zijn groep Een student heeft meerdere cijfers in zijn boom Hiervoor hebben we de Een op Veel relatie
Opdracht 2: De Een op Veel relatie
Ga weer naar het relationship overzicht. Klik op tabel weergeven Voeg de tabel Orders toe Sluit het venster Add Table Sleep het veld Debiteurnr uit de tabel Klanten naar
het veld Debnr in de tabel Orders Het venster Relaties Bewerken verschijnt. Zet de optie ‘Enforce Referential Integrety’ aan. Klik op Create. Het moet er ongeveer zo uit zien:
Definitie: Referentiele integriteit
Dit dient om fouten te voorkomen. Dit checkt of je gebruik maakt van bestaande
gegevens (dus een order aan een klant koppelen die daadwerkelijk bestaat)
Je kunt zien of het actief is door de dikkere lijnen. Extra opties:
» Cascade Update Related FieldsStel de primairy key van een artikel wijzigt. Als deze optie
aanstaat, dan wijzigt het in je order meteen mee (raak je niks kwijt). Zo niet, dan kan je ineens sokken ipv een dvd speler toegestuurd krijgen.
» Cascade Delete Related RecordsStel je wist je klant, dan wist dit ook de orders (let op! Dit wil je
niet altijd laten gebeuren!)
Tip om foutjes te corrigeren
Relaties kun je bewerken door er op te dubbelklikken (op de lijn dus)
Je kunt relaties wissen door er één keer op te klikken (dan wordt de lijn dik en is hij geselecteerd) en op Delete te drukken.
Er zijn nog wel meer mogelijkheden, die kun je zelf wel ontdekken.
Opdracht 3: Nog een Een op Veel relatie
Leg een relatie tussen de tabel Artikelen en Orders:» We willen dat we altijd bestaande artikelen kunnen bestellen
Referentiele integriteit moet dan ……..??? (zie voorgaande stof)
» We willen niet dat als we een artikel uit het assortiment halen, dat het dan op oude orders verdwijnt
Cascade Delete Related Records moet dan ….. ???? (zie voorgaande stof)
De Veel op Veel relatie
Bestaat wel, heb je niet nodig nu. Hij is handig voor oa
» Een order met meerdere items
Komt niet voor op de eindopdracht. Gelukkig maar, want hij is verdraaid lastig om goed
uit te leggen ;-)
Iets doen met al dat werk
We gaan een aantal formulieren maken» Maak met de wizard voor elk van de volgende tabellen een
standaard formulier (dus 3 formulieren!), gewoon alles er op zoals je gewent bent:
Artikelen en DienstenContactpersonenKlanten
» Check de werking van deze formulieren door bij elk een nieuw record in te voegen.
Dat was een makkie, nu het lastige deel
Maak een formulier met de Wizard voor de table Orders Open dit formulier in de Design View Vergroot het formulier aan de rechterkant zodat je de ruimte
hebt om meer velden te plaatsen. (let op dat de toverstaf/Wizard aan staat!) Voeg een Combo Box toe naast het DebNr veld
» Kies: “I want .. Look up in a table or query”
» Kies voor de Table Klanten
» Kies Debiteurnummer en Bedrijf (naar rechts dus klikken!)
» Zorg dat het vinkje om de key column te verbergen aan staat
» Kies Store the value… in het veld DebNr
» Noem het veld Bedrijf en druk op Finish
» Schakel naar de Weergave (knopje Linksboven), werkt het?
» (je ziet in het lijstje als het goed is een aantal bedrijfsnamen
Wat kun je daar nou mee?
Stel je voor, je hebt 1000 cliënten. Weet jij van allen nog het klantnummer? Je kunt ze nu op naam kiezen, en de computer doet de rest.
Of is het onthouden van je 10 personeelsleden hun nummers al vervelend? Klik, opzoeken en klaar.
Dat scheelt trouwens ook de nodige tikfouten.
Meer denkwerk van hetzelfde
Maak ook een combobox op het formulier Orders om makkelijk artikelen te kunnen kiezen. (kies dus om de informatie uit de tabel Artikelen te halen): Je wilt het ArtikelID gebruiken en de ArtikelBeschrijving. En je slaat het op onder … van de tabel orders.
Werkt dit? Goed Zo!
Opdrachten/Huiswerk
Verbreek de relatie tussen klanten en contact-personen Maak in de tabel Contactpersonen een nieuw veld, ContactID, en zet
die op AutoNumber Wis de oude Primairy key van die tabel en maak een nieuwe op
ContactID Leg een één op veel relatie tussen ContactID uit de tabel
Contactpersonen en Contactpersoon uit de tabel Klanten. Dwing natuurlijk Referentiele Integriteit af.
Pas het formulier Klanten aan zodat je makkelijk een contactpersoon kan kiezen.
Maak een Rapport waaruit blijkt welke klant wat wanneer heeft besteld, tegen welke prijs. (meerdere tables toevoegen in je report).
Maak een Query om klant 1 uit te kiezen, en maak dan eenzelfde rapport als hierboven, maar dan alléén met klant 1 er dus op!
Casus/Eindwerk
Een advocatenkantoor wil graag een op maat gemaakt administratieve database
Casus staat op» www.accessworkshop.tk
Voor deze Casus moet je beheersen:» Begrijpend lezen/InformatieAnalyse
» Tabellen maken, aanpassen en het nut van datatypen begrijpen
» Formulieren maken, aanpassen
» Query’s maken, begrijpen hoe criteria werken en wat je er mee kunt doen
» Rapporten maken, begrijpen hoe je ze aan kunt passen
» Relaties tussen tabellen kunnen leggen.
Gebruik de oude sheets! Koop/leen een boek! Zorg voor een slimme(re) buurman/vrouw!
Inleveren Casus
Je werkt alleen, of in tweetallen (aanrader!) Elk tweetal levert EIGEN werk in. Niet aanwezig = onvoldoende! Maak je het tijdens de workshopuren? Heel goed!
Dan kan ik je helpen als het misgaat!
Beoordeling Casus
Schaal 1 tot 14, 6 is voldoende (5.5 dus niet!)» Database structuur:
TabellenRelaties
» Invoermethodes:Werking formulieren
» Uitvoermethodes:Werking QueriesWerking Rapporten
» Kwaliteit (bonus/malus-punt):Bruikbaarheid product (informatie via rapporten bv)Professionele lay-outCorrect taalgebruik
Herkansing/Problemen
Workshoppers die het niet afkrijgen hebben op dezelfde dag de mogelijkheid bij andere uren (indien plaats beschikbaar!) het af te maken.
Als je dit niet red (onwaarschijnlijk) ga je helaas door naar de volgende ronde (half jaar later)
Boekentips
Werkboek Access 2003 (of 2002)» Maya Bunschoten» ISBN: 9789059061286
The Access (versienummer) Bible Access for Dummies?