Practicum CSA

advertisement
CSA Opdracht 4
pagina 1
Practicum CSA
Opdracht 4
Uitvoering
Deze opdracht wordt uitgevoerd tijdens het practicum in week 4 in groepen van 2
personen.
Deelopdracht 1 Installeren van de benodigde files
Verwijder een eventueel reeds aanwezige folder Csa op drive D: in z'n geheel.
Maak op drive D: een nieuwe directory D:\Csa aan en daarin de subfolders
Opdr4\CreateDB, Opdr4\Opdracht en Opdr4\Databases.
Kopieer alle files van de folder I:\Csa\JBuilder 6\Code\CreateDB naar
D:\Csa\Opdr4\CreateDB.
Kopieer alle files van de folder I:\Csa\JBuilder 6\Code\Opdracht naar
D:\Csa\Opdr4\Opdracht.
Kopieer alle files uit de folder I:\Csa\JBuilder 6\Code\Databases naar
D:\Csa\Opdr4\Databases.
Deelopdracht 2 Werkomgeving instellen
Voer de volgende opdrachten uit:
Voordat we de database kunnen gaan installeren, dienen we eerst de Interbase
Server te activeren.
Start de Interbase Server op vanuit de groep InterBase
Een icoontje verschijnt.
opmerking.
We gaan er vanuit dat deze activatie niet automatisch tijdens opstarten van Windows
wordt gerealiseerd.
Vervolgens dienen we de InterServer te activeren.
Deze server is nodig omdat deze dienst de JDBC-calls in ontvangst neemt en omzet
naar Interbase opdrachten.
Start de InterServer op vanuit de groep InterBase InterClient.
Een icoontje verschijnt.
opmerking.
We gaan er vanuit dat deze activatie niet automatisch tijdens opstarten van Windows
wordt gerealiseerd.
In de groep Interbase InterClient\Documentation is de specificatie
opgenomen van de packages, die gebruikt worden bij JDBC.
CSA Opdracht 4
pagina 2
Deelopdracht 3 Installeren van de database LedenDB.gdb
Het installeren van de database bestaat uit drie stappen:
1. met behulp van een tool de ruimte voor een database reserveren.
2. het aanmaken van de tabellen, stored triggers en stored procedures.
3. het invoeren van de databasetupels en foreign key constraints.
Deelopdracht 3.1 Reserveren van de database ruimte
Voordat we een database kunnen gaan vullen met informatie over tabellen, tupels
etc. dienen we eerst de daarvoor benodigde ruimte op schijf te reserveren.
Voor een Interbase database betekent dit dat we met behulp van een tool,
Interbase Windows ISQL (WISQL), een bestand aanmaken, waarin de database
een plaats gaat krijgen.
Het tool WISQL kun je vinden in de groep InterBase.
Voer na elkaar de volgende stappen uit:
 kies uit het menu file het menu-item Create Database
 bij location info kies voor local Engine
 bij database het volledige pad naar de database file:
 d:\csa\opdr4\CreateDB\LedenDB.gdb
"gdb" is de gebruikelijke aanduiding voor een Interbase database file.
 bij User STUDENT
 bij password geheim
 druk tenslotte de OK-knop in
Controleer dat de database is aangemaakt:
 kies uit het menu Metadata het menu-item Extract Database
 Na keuze Save output to file = No, wordt nu informatie over de
aangemaakte database in het uitvoervenster zichtbaar gemaakt. Je ziet dat nu
een lege database is aangemaakt.
Sluit de verbinding met de database
 kies uit het menu file het menu-item Disconnect from Database
Het is verstandig om een copie van de file LedenDB.gdb te bewaren in de folder
D:\Csa\Opdr4\Databases. Gaat er naderhand iets mis tijdens het vullen van de
database, dan hoef je bovenstaande stappen niet meer uit te voeren.
CSA Opdracht 4
pagina 3
Deelopdracht 3.2 Vullen van de database met definities van tabellen
Open in JBuilder het project uit de folder D:\CSA\Opdr4\CreateDB.
Bestudeer de bij dit projekt behorende file DBFase_1.java en zie hoe eerst een
connectie met een database wordt gemaakt voordat de feitelijke database-acties
plaats vinden.
Let ook op hoe de excepties worden opgevangen.
(de listing is als bijlage toegevoegd bij de voorbereiding).
opmerking.
Interbase kan problemen geven, indien we in deze sessie ook nog proberen om
hierna tupels te gaan toevoegen; er kunnen dan nog zaken open staan, die eerst
moeten worden afgesloten voor het volgende kan worden uitgevoerd.
Daarom maken we er twee afzonderlijke sessies van, waarbij we automatisch eerst
zaken afsluiten voor een volgende actie op de database op gang gaan brengen.
Voer het programma uit en ga via de meldingen in het messageveld van JBuilder na
hoe de uitvoering van het programma verloopt.
CSA Opdracht 4
pagina 4
Deelopdracht 3.3 Vullen van de database met tupels etc.
Open het in D:\Csa\Opdr4\CreateDB geinstalleerde project.
Bestudeer de bij dit project behorende file DBFase_2.java
(de listing is als bijlage toegevoegd bij de voorbereiding).
Voor het aanmaken van de leden- en boetetupels zijn drie mogelijkheden uitgewerkt:
1. met behulp van dynamisch SQL, waarbij precies één keer precompilatie
plaatsvindt.
2. met behulp van dynamisch SQL, waarbij voor elk tupel afzonderlijk
precompilatie plaatsvindt.
3. met behulp van statisch SQL.
In het programma wordt gemeten hoeveel tijd elk van deze stappen kost. Om de
meting met enige betrouwbaarheid te laten verlopen moeten eerst alle applicaties,
die niet nodig zijn worden afgesloten. Herhaal indien nodig de meting, indien een
onwaarschijnlijk resultaat wordt verkregen.
Ga via de meldingen in het message veld van JBuilder na hoe de uitvoering van het
programma verloopt.
Ga na voor elk van bovenstaande drie gevallen hoeveel tijd het kost om de ledentupels en boete-tupels in te voeren. Maak van het deel van message veld waarin
deze tijden voorkomen een screenshot en geef een verklaring voor de opgetreden
verschillen; neem dit op in het verslag.
opmerking.
Indien een stap foutief is verlopen, dan is het verstandig om eerst de database file te
verwijderen en vervolgens met de copie van de file uit deelopdracht 3.1 opnieuw de
deelopdrachten 3.2 en 3.3 uit te voeren.
CSA Opdracht 4
pagina 5
Deelopdracht 4 Werken met de database TestDB
We gaan nu de in de voorbereiding geschreven stored SQL-procedure, SQL-query
en SQL-mutatie in een java-programma opnemen ("embedden") met behulp van
JDBC. Omdat bij SQL-fouten de debug-faciliteiten beperkt zijn, is het sterk aan te
raken om eerst met het tool WISQL te controleren of de SQL-opdrachten correct zijn.
Deelopdracht 4.1 Testen met behulp van WISQL
Kopieer eerst de file D:\Csa\Opdr4\Databases\TestDB.gdb naar
D:\Csa\Opdr4\Opdracht.
Start WISQL op en maak een connectie met deze database, die reeds gevuld is met
data:
 kies uit het menu file het menu-item Connect Database
 bij location info kies voor local Engine
 bij database het volledige pad naar de database file:
D:\Csa\Opdr4\Opdracht\TestDB.gdb
 bij User STUDENT en bij password geheim
 druk tenslotte de OK-knop in
Controleer dat de database is aangemaakt:
 kies uit het menu Metadata het menu-item Extract Database
 Na keuze Save output to file = No, wordt nu informatie over de
aangemaakte database in het venster zichtbaar gemaakt.
Aanmaken en testen van de stored SQL-procedure:
 zet de code voor de stored procedure in het invoerveld
 activeer deze code met behulp van het menu-item Query Execute
 roep de procedure aan en controleer het resultaat.
Indien we de code van een stored procedure voor de tweede keer onder
dezelfde naam aanbieden wordt een foutmelding gegeven.
Verwijder dan eerst de bestaande procedure met behulp van de opdracht::
DROP PROCEDURE <procedure-naam>
en biedt daarna opnieuw de code van de procedure aan.
Aanmaken en testen van de statische SQL-query
 zet de code voor de query in het invoerveld
 activeer deze code met behulp van het menu-item Query Execute
 voer de query uit en controleer het resultaat.
Aanmaken en testen van de dynamische SQL-mutatie
 zet de code voor de query in het invoerveld
 vervang de parameters door zelfgekozen actuele waarden
 activeer deze code met behulp van het menu-item Query Execute
 voer de query uit en controleer het resultaat.
 herstel de oorspronkelijke database inhoud met behulp van het menu-item
File Rollback Work
CSA Opdracht 4
pagina 6
Deelopdracht 4.2 Maken en testen van de applicatie
Start hierna JBuilder op en open het projekt uit de folder
D:\Csa\opdr4\Opdracht.
Breng de wijzigingen in de volgende volgorde aan:
1. Voeg code toe voor het maken van een verbinding met de database.
Zie voorbereiding vraag 1.
2. Voeg de code voor het maken van de stored SQL-procedure toe aan het begin
van de applicatie.
Zie voorbereiding vraag 4.
3. Voeg de code toe voor het verwijderen van deze procedure aan het einde van de
applicatie.
Zie voorbereiding vraag 4.
4. Breng de applicatie tot uitvoering en controleer of de procedure correct wordt
aangemaakt en verwijderd.
5. Voeg de code toe om de stored procedure aan te roepen.
Zie voorbereiding vraag 4.
Breng de applicatie tot uitvoering en controleer de werking van de procedure
6. Voeg code toe om de statische SQL-query uit te voeren.
Zie voorbereiding vraag 2.
Breng de applicatie tot uitvoering en controleer de werking van de query
7. Voeg code toe om de dynamische SQL-mutatie uit te voeren.
Zie voorbereiding vraag 3.
Breng de applicatie tot uitvoering en controleer de werking van de mutatie
Indien alles naar behoren functioneert voer je nog een keer de gehele applicatie uit
maar dan op de oorspronkelijke database.
Deze staat nog steeds in de folder D:\Csa\Opdr4\Databases
Maak nu een screenshot van het messageveld van JBuilder en toon daarmee de
correcte werking van de applicatie aan.
CSA Opdracht 4
pagina 7
Practicum CSA
Opdracht 4
Evaluatie
Maak een kort verslag, waarin de volgende zaken zijn opgenomen:
1. De screenshot waarom gevraagd werd in opdracht 3.3 met een toelichting op de
verschillen die gevonden zijn bij het toevoegen van de leden- en boetetupels aan
de database LedenDB, volgens de drie beschreven varianten.
2. de volledige sourcecode van de klasse opdracht met een duidelijke toelichting
bij alle zelf toegevoegde onderdelen.
3. De screenshot waarom in deelopdracht 4.2 werd gevraagd met een korte
toelichting.
4. het antwoord op de vragen 5 tot en met 7 uit de voorbereiding op deze opdracht.
Er moet per groep één verslag worden ingeleverd; dit verslag zal ook groepsgewijs
beoordeeld worden
Houd goed rekening met de eisen, die aan het verslag gesteld worden. Deze staan
beschreven in het dictaat. Als aan deze eisen niet voldaan wordt, dan komt dit tot
uitdrukking in de beoordeling.
Wanneer twee verslagen een opvallende gelijkenis vertonen wordt dit aangemerkt
als fraude. Dit heeft voor beide partijen gevolgen.
Het verslag dient uiterlijk ingeleverd te worden op de derde werkdag na het
practicum in week 4 (eerder mag ook) in het postvak van de docent.
Download