Index page

 

Ariadne - Technical description

 

Ariadne Design decisions

Description


5.1. Veronderstellingen en uitgangspunten
1. Ontwikkelomgeving voor Ariadne is MS Access 8 (Office 97). Er is hiervoor gekozen, omdat dit het platform is waar de meeste mensen wel aan kunnen komen. Andere platformen ( bijv. Oracle, Object brokers, etc. ) zijn duurder, moeilijker aan te komen, en vragen specialistischer kennis. Voor de omvang van het aantal gegevens en het aantal gelijktijdige gebruikers lijkt MS-Access toereikend. Nadelen zijn dat het niet een open omgeving is waar een ieder vanuit zijn eigen favoriete ontwikkelomgeving modules aan kan koppelen. Het is niet porteerbaar (bijv. naar Linux). Als je wilt porteren, dan kan de database-access via SQL-queries nog vrij gemakkelijk geporteerd worden. Alle schermen en reports zijn niet porteerbaar, en moeten in de nieuwe omgeving opnieuw gebouw worden. Te aanzien van record locking en backtracking (undo van databasetransakties) is MS-Access niet sterk. Bij het ontwerp moet met deze beperkingen rekening gehouden worden. (Dit houdt in: geen onafhankelijke mutatiefuncties op een tabel die real-time kritisch gebonden is)
2. Het database ontwerp van [ref. 2] wordt geimplementeerd. De tabellen van dit databaseontwerp zijn verdeeld over drie databases: Ariadne-main, Current-competition en Ariadne-history. De voorwaarde is dat deze drie databases bij elkaar in één directory staan. Bij het opstarten van het Ariadne systeem worden de koppelingen tussen de databases ververst.
3. Tabel Startnummers (T050-Starting-number) kan via een directe query onderhouden worden.
4. Tabel T060-Country-code is handmatig gevuld met de voorkomende landennamen en bijbehorende ISO-2 landencodes. Voor deze tabel wordt in het prototype geen onderhoudsfunctie geschreven.
5. De tabel Status type (T020-status-type) is handmatig ingevuld. Er wordt geen onderhoudsfunctie voor geschreven.
6. De tabel Rol type (T030-Role-type) is handmatig ingevuld. Er wordt geen onderhoudsfunctie voor geschreven.
7. De tabel CU-type (T031-CU-type) is handmatig ingevuld. Er wordt geen onderhoudsfunctie voor geschreven.
8. De tabel Gender (T033-Gender) is handmatig ingevuld. Er wordt geen onderhoudsfunctie voor geschreven.
9. (09-04-01)De tabel T510-Run wordt beperkt dat deze per startnummer/serienummer 0 of 1 record bevat. Dit betekent dat in T510 geen eventhistorie wordt bijgehouden. Oorspronkelijk was dit wel het uitgangspunt, maar het compliceert de eventverwerking uit het T600-event-buffer nodeloos. (Met name als het eventbuffer opnieuw verwerkt moet worden in T510). De eventhistorie van een startnummer is ook beschikbaar in het T600-event-buffer, en kan daar eventueel gemakkelijk uitgefilterd worden.
10. De tabel Boat-type (T032-Boat-type) is handmatig ingevuld. Er wordt geen onderhoudsfunctie voor geschreven.
11. De tabel Age-class (T044-Age-class) is handmatig ingevuld. Er wordt geen onderhoudsfunctie voor geschreven.
12. De tabel T870-Ranking-scale is onderdeel van de de Ariadne-history database.
13. De tabel T880-Start-interval is onderdeel van de de Ariadne-history database.
14. De tabel T081-SI-temp is een tijdelijke tabel voor het berekenen van het startinterval. Deze tabel wordt na het berekenen niet verwijderd. (Daar is geen noodzaak toe, en het maakt de individuele startintervallen zichtbaar).
15. De tabel T520-Archived-result is onderdeel van de de Ariadne-history database.
16. De tabel T100-Slalom-competition is per 3.30 verhuisd naar Ariadne-history als T101-Slalomcompetition, en kan nu gegevens van meer wedstijdevenementen bevatten. In Ariadne komt daarvoor in de plaats T100-Current-competition, dat de gegevens bevat van het huidige wedstrijdevenement.
17. De tabel T530-Gate-negotiation wordt gedenormaliseerd, zodat er 23 poortjes in één record voorkomen. Dit is handiger in de verwerking. Het denormaliseren levert hier geen problemen op, omdat de tabel aan de rand van het model zit, en alle poortjes steeds bij elkaar behandeld moeten worden.

5.2. Invoeren na-inschrijvingen
Voor het vastleggen van de na-inschrijvingen tijdens de wedstrijdbespreking wordt de Ariadne database naar een PC (liefst Laptop) bij de wedstrijdbespreking gekopieerd. De na-inschrijvingen worden al liefst voor de wedstrijdbespreking ingevoerd. Tijdens de wedstrijdbespreking worden de startnummers toegekend. Die kunnen on line tijdens de wedstrijdbespreking worden overgenomen. Het vraagt wat afspraken met de voorzitter van de wedstrijdbespreking, om on line alle wijzigingen tijdens de wedstrijdbespreking direct in te kunnen tikken.
5.3. Database performance en record locking
Teneinde de database performance maximaal te hebben, en het probleem van record locking te minimaliseren, worden MS-Access queries voor reports en voor picklists in dropboxes als 'snapshot' aangemaakt. Snapshots worden niet dynamisch gewijzigd, indien de onderliggende database tabellen wijzigen. Queries waarop mutaties aangebracht kunnen worden, wordenals 'dynaset' aangemaakt.

5.4. Graphical User Interface (GUI)
Het is gewenst om afsluitfuncties zoveel mogelijk expliciet te maken. D.w.z. met knoppen 'OK', 'Sluiten', 'Cancel' e.d. Het is niet vanzelfsprekend dat je een scherm sluit met het X-tje rechtsboven. Bovendien is dan de sluitstatus niet helder: Wordt wel of niet geupdated ? Als je het gedrag van MS-Access kent, zijn de huidige schermen weliswaar voldoende, maar niet iedereen heeft die Access-kennis, en dan is bij het ontbreken van de betreffende knoppen niet duidelijk hoe het scherm verlaten moet worden.



Change history

date version change
01-10-02 1.5 Ariadne 4.1, text converted to html