Informatieanalyse en databaseontwerp Practicum 3 Lieve Mona, dus: Relatiemanagement.

32
Informatieanalyse en databaseontwerp Practicum 3 Lieve Mona, dus: Relatiemanagement

Transcript of Informatieanalyse en databaseontwerp Practicum 3 Lieve Mona, dus: Relatiemanagement.

Page 1: Informatieanalyse en databaseontwerp Practicum 3 Lieve Mona, dus: Relatiemanagement.

Informatieanalyse en databaseontwerp

Practicum 3

Lieve Mona, dus:

Relatiemanagement

Page 2: 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

Page 3: Informatieanalyse en databaseontwerp Practicum 3 Lieve Mona, dus: Relatiemanagement.

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!

Page 4: Informatieanalyse en databaseontwerp Practicum 3 Lieve Mona, dus: Relatiemanagement.

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!

Page 5: Informatieanalyse en databaseontwerp Practicum 3 Lieve Mona, dus: Relatiemanagement.

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!

Page 6: Informatieanalyse en databaseontwerp Practicum 3 Lieve Mona, dus: Relatiemanagement.

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

Page 7: Informatieanalyse en databaseontwerp Practicum 3 Lieve Mona, dus: Relatiemanagement.

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)

Page 8: Informatieanalyse en databaseontwerp Practicum 3 Lieve Mona, dus: Relatiemanagement.

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.

Page 9: Informatieanalyse en databaseontwerp Practicum 3 Lieve Mona, dus: Relatiemanagement.

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)

Page 10: Informatieanalyse en databaseontwerp Practicum 3 Lieve Mona, dus: Relatiemanagement.

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!)

Page 11: Informatieanalyse en databaseontwerp Practicum 3 Lieve Mona, dus: Relatiemanagement.

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:

Page 12: Informatieanalyse en databaseontwerp Practicum 3 Lieve Mona, dus: Relatiemanagement.

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:

Page 13: Informatieanalyse en databaseontwerp Practicum 3 Lieve Mona, dus: Relatiemanagement.

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

Page 14: Informatieanalyse en databaseontwerp Practicum 3 Lieve Mona, dus: Relatiemanagement.

Dialoogvenster Edit Relationships

Sleep het veld Debiteurnr uit de tabel Contactpersoon naar het veld Debiteurnr in de tabel Klanten

Page 15: Informatieanalyse en databaseontwerp Practicum 3 Lieve Mona, dus: Relatiemanagement.

Nu verschijnt het dialoogvenster

Je ziet dat onderin bij het Relationship Type het type ‘one to one’ staat

Klik op Create

Page 16: Informatieanalyse en databaseontwerp Practicum 3 Lieve Mona, dus: Relatiemanagement.

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.

Page 17: Informatieanalyse en databaseontwerp Practicum 3 Lieve Mona, dus: Relatiemanagement.

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

Page 18: Informatieanalyse en databaseontwerp Practicum 3 Lieve Mona, dus: Relatiemanagement.

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:

Page 19: Informatieanalyse en databaseontwerp Practicum 3 Lieve Mona, dus: Relatiemanagement.

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!)

Page 20: Informatieanalyse en databaseontwerp Practicum 3 Lieve Mona, dus: Relatiemanagement.

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.

Page 21: Informatieanalyse en databaseontwerp Practicum 3 Lieve Mona, dus: Relatiemanagement.

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)

Page 22: Informatieanalyse en databaseontwerp Practicum 3 Lieve Mona, dus: Relatiemanagement.

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 ;-)

Page 23: Informatieanalyse en databaseontwerp Practicum 3 Lieve Mona, dus: Relatiemanagement.

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.

Page 24: Informatieanalyse en databaseontwerp Practicum 3 Lieve Mona, dus: Relatiemanagement.

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

Page 25: Informatieanalyse en databaseontwerp Practicum 3 Lieve Mona, dus: Relatiemanagement.

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.

Page 26: Informatieanalyse en databaseontwerp Practicum 3 Lieve Mona, dus: Relatiemanagement.

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!

Page 27: Informatieanalyse en databaseontwerp Practicum 3 Lieve Mona, dus: Relatiemanagement.

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!

Page 28: Informatieanalyse en databaseontwerp Practicum 3 Lieve Mona, dus: Relatiemanagement.

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!

Page 29: Informatieanalyse en databaseontwerp Practicum 3 Lieve Mona, dus: Relatiemanagement.

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!

Page 30: Informatieanalyse en databaseontwerp Practicum 3 Lieve Mona, dus: Relatiemanagement.

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

Page 31: Informatieanalyse en databaseontwerp Practicum 3 Lieve Mona, dus: Relatiemanagement.

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)

Page 32: Informatieanalyse en databaseontwerp Practicum 3 Lieve Mona, dus: Relatiemanagement.

Boekentips

Werkboek Access 2003 (of 2002)» Maya Bunschoten» ISBN: 9789059061286

The Access (versienummer) Bible Access for Dummies?