Informaticasite van het Sondervick College te Veldhoven                 © L.J.M van Haperen (bron : R.J. van der Beek)
 
  Opgaven hoofdstuk 10      
 
1. Start Access en open de database BIBLIOTHEEK. Maak de opdracht, schrijf het antwoord in je schrift!
a. Welke verwijzing naar andere tabellen (referentiesleutels) heeft de tabel RESERVERINGEN ? (klik op Extra en dan op Relaties)
b. Welke kolom(men) vormen de primaire sleutel van de tabel Auteurs?
c. Welke kolom(men) vormen de primaire sleutel van de tabel UITLENINGEN?
d. Welke kolommen in de tabel AUTEURS moeten beslist worden ingevuld? Hoe kun je dat te weten komen? (klik op de tabel AUTEURS, en dan op Ontwerpen)
e. Tussen de tabel UITLENINGEN en de tabel EXEMPLAREN zit een ingewikkelde verwijzing. Omschrijf wat deze verwijzing inhoudt.


2. Theorievragen over paragraaf 10.1
a. Wat wordt er bedoeld met de primaire sleutel van een tabel ?
b. Aan welke twee regels moeten de waarden in de kolom(men) van een primaire sleutel voldoen ?
c. Noem twee redenen waarom er in veel tabellen een kolom voorkomt waarin alleen een nummer voorkomt (bijv. leerlingnummer, auteurnummer, enz.)
d. Wat wordt er met een referentiesleutel (engels: foreign key) bedoeld ?
e. Hoe wordt het controleren van verwijzingen in een database ook wel genoemd ?


3. Start Access en open de database BIBLIOTHEEK.
a. Open de tabel LEERLINGEN, ga naar de onderste (lege) regel, en voer je eigen gegevens in. Wat gebeurt er als je als leerlingnummer 190 invoert? Verander het daarna in 197.
b. Wat gebeurt er als je bij geslacht niets invult? (wis het als er al iets staat, en druk dan op de pijl naar beneden)
c. Wat gebeurt er als je bij geslacht een j (van jongen) invult? (wijzig wat er staat in een j, en druk dan op de pijl naar beneden)
d. Open de tabel BOEKEN, ga naar de onderste (lege) regel, en voer de gegevens van het volgende boek in:
De titel is Het instituut van Vincent Bijlo. Het is gepubliceerd in 2005, het heeft 112 pagina's, het genre is novelle, en het hoort bij de rubriek nederlands. Voer als auteurnummer 100 in, en als boeknummer 300
Waarom krijg je een foutmelding als je op de pijl naar beneden drukt ?
d. Voer als auteurnummer 200 in, en als boeknummer 328
Waarom krijg je nu een foutmelding als je op de pijl naar beneden drukt ? Sluit de tabel af zonder de nieuwe gegevens op te slaan.


4. Start Access en open de database BIBLIOTHEEK. Maak de sql-queries, schrijf ze ook in je schrift!
a. Er is een nieuw boek voor de bibliotheek gekocht, en dit moet in de database worden ingevoerd. Het gaat om het boek Kathys dochtervan Tim Krabbé (auteurnr. 124). Het is gepubliceerd in 2004, het heeft 207 pagina's, het genre is roman, en het hoort bij de rubriek nederlands. Het boek krijgt boeknr. 328
Je zou dit kunnen invoeren door de gegevens in de onderste (lege) regel van de tabel BOEKEN in te vullen, maar je kunt het ook met een SQL-query invoeren. Doe dat, en schrijf die query op.
b. Er is nog een nieuw boek voor de bibliotheek gekocht, en dit moet ook in de database worden ingevoerd. Het gaat om het boek Het instituutvan Vincent Bijlo. Het is gepubliceerd in 2005, het heeft 112 pagina's, het genre is novelle, en het hoort bij de rubriek nederlands. Het boek krijgt boeknr. 329
De auteur Vincent Bijlo komt nog niet voor bij de namen van de auteurs, die moet ook nog worden ingevoerd. Hij krijgt auteurnummer 191, en zijn geboortejaar is 1965.
Voer het boek en de auteur beide in m.b.v. een SQL-query. Schrijf die query's op.
c. Wat moet je bij vraag b eerst invoeren: het boek of de auteur, of maakt het niet uit? Als het wel iets uit maakt, waarom dan?
d. Rafael Menendez is verhuisd naar Veldwachterserf 14 in Houten, postcode 3991 KW. Voer dit in m.b.v. een SQL-query. Schrijf die query op.
e. Er is een exemplaar van het boek Giph! van Ronald Giphart zoekgeraakt. Het is exemplaar nr. 2 van boeknummer 185, en dit kan verwijderd worden uit de tabel EXEMPLAREN. Zorg dat dit gebeurt m.b.v. een SQL-query. Schrijf die query op.


  De volgende vragen hebben betrekking op de database RUNDVEEADMINISTRATIE
Die database bestaat uit drie tabellen:

BEDRIJVEN
bedrijfsnrnaamadrespostcplaatstel

KOEIEN
koenrvadermoedergebdatbedrijfsnr

JAARPROD
koenrjaarkgmelkvetgeheiwitgeh



5. Maak de sql-queries m.b.t. de database RUNDVEEADMINISTRATIE (zonder de computer te gebruiken), schrijf ze in je schrift!
a. Bedrijf met nummer 800 heeft een ander telefoonnummer gekregen, het is 0511-544444 geworden.
Geef de sql-query die er voor zorgt dat die mutatie wordt doorgevoerd
b. Op het bedrijf met nummer 800 is op 20 aug. 2004 een kalfje geboren. Dat kalfje krijgt nummer 12578, de moeder heeft nummer 8756, de vader heeft nummer 5022.
Geef de sql-query die er voor zorgt dat die mutatie wordt doorgevoerd
c. Het bedrijf met nummer 800 wordt opgeheven, het kan dus uit de database worden verwijderd.
Geef de sql-query die er voor zorgt dat die mutatie wordt doorgevoerd


  De volgende vragen hebben betrekking op de database TENNISVERENIGING
Die database bestaat uit drie tabellen:

LEDEN
lidnrnaamwoonplaatsgeborenleeftijdlidsoortscore

COMPETITIESOORT
soortspeeldagaanvoerder

COMPETITIELID
compnrlidnrsoort


6. Maak de sql-queries m.b.t. de database TENNISVERENIGING (zonder computer, of m.b.v de SQL-site), schrijf ze in je schrift!
a. Geef de query voor het toevoegen van een nieuw lid: Theo, Augustinusga, geboren 1945-01-13, leeftijd: 61, lidsoort: senior
b. Margreet uit Kollum (lidnr 4) is geen aktielid meer maar is nu senior-lid, en haar score is 350 geworden. Geef de query waarmee deze wijziging ingevoerd kan worden.
c. Kees uit Veenklooster (lidnr 11) heeft zijn lidmaatschap opgezegd. Geef de query waarmee hij verwijderd kan worden.
d. Er is weer een jaar voorbij. Dat heeft tot gevolg dat bij iedereen de leeftijd met één verhoogd moet worden. Geef de query waarmee dat voor iedereen gebeurt.


7. Tabellen maken m.b.v. SQL
a. Start Access, en klik op Bestand → Nieuw. Klik rechts op Lege database, dan komt er een nieuw venster waarin je de gegevens van de nieuwe database kunt vastleggen. Voer als bestandsnaam Rundvee.mdb in, en kies een map uit waarin de gegevens kunnen worden opgeslagen.
b. Voer de tabel BEDRIJVEN (zie boven vraag 4 voor de gegevens) in door op Tabellen te klikken, en dan op Tabel maken in ontwerpweergave. (In Access 2007 klik je in het menu op het tabblad "Maken", en dan op "Tabelontwerp")
Je voert de namen van de velden in, en je geeft van elk veld aan van welk type het is. De kolom bedrijfsnr is numeriek en de rest is van het type tekst. Geef de sleutel nog niet aan.
c. Je kunt een tabel ook op een andere manier invoeren: m.b.v. SQL
Voer de tabel KOEIEN in m.b.v. een SQL-query. Geef ook de sleutel (dat is koenr) aan in de SQL-query. De kolom gebdat is van het type datum en de rest is numeriek. Schrijf de SQL-query op.
d. Voer de tabel JAARPROD in m.b.v. een SQL-query. Schrijf de SQL-query op. De kolommen zijn allemaal van het type numeriek. De sleutel hoef je niet in de SQL-query aan te geven.


8. Maak de sql-queries m.b.t. de database TENNISVERENIGING (zonder computer, of m.b.v de SQL-site), schrijf ze in je schrift!
a. Geef de query voor het maken van de tabel competitiesoort. De kolommen zijn: soort (tekst, 2 tekens), speeldag (tekst, 10 tekens) en aanvoerder (integer, unsigned). De soort is de primaire sleutel.
b. Geef de query voor het verwijderen van de tabel competitielid


9. Sleutelvelden en relaties maken m.b.v. ACCESS
a. Start Access, en open het bestand Rundvee.mdb dat je bij opgave 6 gemaakt hebt.
Zorg er voor dat bij de tabel BEDRIJVEN de kolom bedrijfsnr het sleutelveld wordt (klik op de tabel BEDRIJVEN en dan op Ontwerpen, selecteer de kolom bedrijfsnr door er voor te klikken en klik dan op het sleuteltje in de werkbalk)
b. Zorg er voor dat bij de tabel JAARPROD de kolommen koenr en jaar samen de sleutel worden (klik op de tabel BEDRIJVEN en dan op Ontwerpen, selecteer de kolommen bedrijfsnr en jaar door er voor te klikken terwijl je de control-toets ingedrukt houdt, en klik dan op het sleuteltje in de werkbalk)
c. Zorg er voor dat er een relatie tussen bedrijfsnr van de tabel KOEIEN en bedrijfsnr van de tabel BEDRIJVEN wordt gelegd. (klik op Extra en dan op Relaties, voeg de tabellen BEDRIJVEN, KOEIEN en JAARPROD toe in het relatie-venster.
Sleep dan het veld bedrijfsnr van de tabel KOEIEN naar het veld bedrijfsnr van de tabel BEDRIJVEN.
Zet een vinkje voor Referentiële integriteit afdwingen, en klik dan op Maken
d. Zorg er voor dat er een relatie tussen koenr van de tabel JAARPROD en koenr van de tabel KOEIEN wordt gelegd.


10. Validatieregels in Access
a. Start Access en open de database BIBLIOTHEEK.
Selecteer de tabel LEERLINGEN en klik op Ontwerpen. Klik op het veld Geslacht
Wat staat er (onder in het venster) achter Validatieregel ?
En wat staat er achter Validatietekst ?
b. Zorg er voor dat bij de KLAS alleen 4a of 4b of 5a of 5b of 6a of 6b kan worden ingevoerd. Wat moet je dan als Validatieregel invoeren ? Voer ook een Validatietekst in.
Kijk of het werkt, door de tabel LEERLINGEN te openen, en ergens klas 4a te veranderen in 4c. Wat gebeurt er ?


11. Theorievragen over paragraaf 10.2 en 10.3
a. Als je een nieuwe tabel invoert in Access dan moet je voor elke kolom aangeven van welk type de gegevens zijn. Noem zes hoofdtypen waar je dan uit kunt kiezen.
b. Als je als hoofdtype Numeriek uitkiest, dan kun je nog aangeven om welke soort getallen het gaat. Uit welke soorten kun je dan kiezen ?
c. Waarom kun je bij telefoonnummers beter aangeven dat het om Tekst gaat dan om Numerieke gegevens ?
d. Waarom kun je bij huisnummers beter aangeven dat het om Tekst gaat dan om Numerieke gegevens ?
e. Als je op huisnummer laat sorteren, welk huisnummer komt dan eerst: 3 of 12 ?
f. Wat is het voordeel als je een datum ook als het type Datum vastlegt en niet als Tekst ?
g. Hoe kun je er voor zorgen dat er bij een veld alleen maar een a of een b of een c kan worden ingevoerd ?


12. Theorievragen m.b.t. Wet Bescherming Persoonsgegevens (WBP)
a. In welk jaar is de Wet Bescherming Persoonsgegevens (WBP) in werking getreden ?
Zoek de antwoorden op deze vraag op de site van het CBP (College Bescherming Persoonsgegevens): www.cbpweb.nl
b. Als je graag wilt weten welke gegevens van jou de school allemaal heeft opgeslagen, is de school verplicht je daar inzicht in te geven?
c. Als bij je aanmelding bij onze school ook de beroepen van je ouders/verzorgers zijn opgegeven, dan zijn die ook in de school-database vastgelegd. Is de school verplicht die gegevens te verwijderen, als jij dat wilt?
d. De Postbank vraagt onze school om de namen en adressen van alle examenleerlingen, omdat de Postbank die leerlingen wil benaderen om een rekening bij hen te openen. Mag onze school die gegevens dan aan de Postbank verstrekken?
e. De politie vraagt op de administratie van onze school inlichtingen over een leerling, omdat die leerling iets op zijn kerfstok heeft. Mag onze school die gegevens dan aan de politie verstrekken?


13. Hoe snel vind de computer een record?
a. Als je een getal onder de 100 moet raden, en je gaat gewoon de rij af (je vraagt eerst: is het 1? Dan: is het 2? enz. Net zolang tot er ja wordt gezegd) hoevaak moet je dan maximaal raden?
b. Als je een getal onder de 100 moet raden, en je gaat steeds het aantal waaruit je moet kiezen halveren (je vraagt eerst: is het lager dan 50? Is het antwoord Ja, dan vraag je: is het lager dan 25? Is het antwoord daarop Nee, dan vraag je: is het lager dan 38? enz.), hoe vaak moet je dan maximaal raden ?
c. Als de computer een naam in een database met 1000.000 records moet zoeken, en de computer gaat gewoon de rij af hoeveel records moet de computer dan maximaal bekijken voordat hij de juiste gevonden heeft?
d. Als de computer een naam in een database met 1000.000 records moet zoeken, en de kolom waarin hij zoekt is geïndexeerd (d.w.z. ze staan in alfabetische volgorde) hoeveel records moet de computer dan maximaal bekijken voordat hij de juiste gevonden heeft?
d. Als de computer een naam in een database met 1000.000 records moet zoeken, en de kolom waarin hij zoekt is geïndexeerd, hoe zoekt de computer die naam dan (dit wordt wel binair zoeken genoemd) ?
e. Als de computer een naam in een database met 1000.000 records moet zoeken, en de kolom waarin hij zoekt is geïndexeerd, wanneer weet de computer dan dat die naam niet voorkomt?
f. Als de computer een naam in een database met 1000.000 records moet zoeken, en de namen zijn gesorteerd op achternaam, kan de computer dan naar een postcode zoeken op de snelle manier? Zo ja, hoe dan. Zo nee, waarom niet? hoe zoekt de computer die naam dan?
g. Wat is het voordeel als een database geïndexeerd is, en wat is het nadeel?


14. Problemen die bij databases kunnen optreden, als veel mensen er tegelijk mee werken.
a. Wat wordt er bedoeld met concurrente processen
b. Wat wordt er met een lock bedoeld, als je met een database werkt
c. Wat wordt er met een deadlock bedoeld, als je met een database werkt
d. Met welke term wordt aangegeven dat een transactie volledig is uitgevoerd?
e. Als een transactie niet volledig is uitgevoerd kun je in SQL de instructie ROLLBACK geven. Wat wordt daarmee bedoeld?