Modernize Studio
Taal: Nederlands
Mail ons

Casestudy: de Northwind-database van Microsoft, van Access 97 naar SQL en de browser

Northwind is de voorbeelddatabase die Microsoft met Access meeleverde. We hebben een openbare kopie ervan gebruikt (Access 97-formaat) om op een bestand dat iedereen kan controleren te laten zien hoe we een Access-programma naar een moderne database overzetten zonder een rij te verliezen of een bedrag te veranderen. Er zit geen klant achter deze pagina: de bedrijven en personen in Northwind zijn verzonnen.

De webapplicatie Northwind: order 10250 geopend om te bewerken, met de drie productregels, de kortingen en de bijgewerkte totalen.
De webapplicatie gebouwd op de gemigreerde database: een order uit de voorbeelddatabase Northwind van Microsoft, met totalen die opnieuw worden berekend terwijl u typt.

Uitgangspunt

  • Eén Access 97-bestand van 2.932 KB: 9 tabellen met 4.032 rijen, 22 opgeslagen query's (drie met parameters en één kruistabel), 13 rapporten en 21 formulieren.
  • Afbeeldingen opgeslagen als OLE-objecten, die alleen Access kan weergeven.
  • Bedrijfsregels verspreid over veldeigenschappen, relaties en de query's achter de rapporten.

Wat we hebben gedaan

  1. Gegevens. Elke tabel en elke rij is overgezet naar een nieuw relationeel schema, geleverd als SQLite-database en als PostgreSQL-scripts, met primaire en vreemde sleutels, indexen, en de validatieregels van Access omgezet in databaseconstraints. De 17 afbeeldingen zijn pixel voor pixel PNG-bestanden geworden.
  2. Query's. De 22 opgeslagen query's zijn SQL-views met dezelfde namen geworden, in beide databases, samen met de berekeningen achter de rapporten: ordertotalen na korting, factuurbedragen, verkopen per categorie en per jaar.
  3. Bewijs. Geautomatiseerde tests vergelijken het originele bestand met de nieuwe databases: aantallen rijen en een controlesom van elke rij per tabel, en het volledige resultaat van elke query, 855 uitvoeringen in totaal, op vier manieren gecontroleerd (Access-SQL op het originele bestand, een onafhankelijk model, PostgreSQL en de browser).
  4. Applicatie. Een webapplicatie op de gemigreerde database die volledig in de browser draait: bestellingen met live totalen, klanten, producten, leveranciers, medewerkers, een dashboard en de oorspronkelijke rapporten, klaar om af te drukken.

Resultaten van de run

9/9
tabellen identiek, rij voor rij
22/22
query's met identieke resultaten (855 uitvoeringen)
17/17
pogingen om een regel te overtreden geweigerd door de database
$ 1.265.793,02
waarde van de 2.155 orderregels, gelijk in SQLite, PostgreSQL en de browser

Twee verschillen, allebei bewust

Access berekent orderregels met binaire drijvende komma en bewaart kortingen als benaderde getallen (15% wordt opgeslagen als 0,15000000596). Bij 18 van de 2.155 orderregels, waarvan het exacte bedrag precies op een halve cent valt, verschuift het resultaat daardoor één cent. De nieuwe databases slaan exacte percentages op en ronden overal op dezelfde manier af; het eindtotaal verandert met $ 0,16. Elke betrokken regel staat in het rapport.

148 tekstwaarden zijn een overbodige spatie aan het eind of een ouderwets regeleinde kwijtgeraakt. Een daarvan was het land Zweden, één keer opgeslagen met een spatie aan het eind, dat anders als apart land zou tellen.

Wat de tests onderweg vonden

UCanAccess, een veelgebruikte tool om Access-bestanden vanuit Java te lezen, leest de kortingskolom van dit Access 97-bestand als geheel getal: alle 838 kortingen worden nul. De tabelcontroles vingen dat op, en het rapport legt uit hoe we gelijk met gelijk hebben vergeleken. De SQL-tekst die Jackcess reconstrueert, laat bovendien de TOP 10 van één query weg; die hebben we uit de systeemtabellen van het bestand gelezen.

De applicatie laadt de database van 1.116 KB in uw browser, met SQLite gecompileerd naar WebAssembly. Uw wijzigingen blijven in het tabblad en een knop zet de oorspronkelijke gegevens terug.

Contact

Kies het kanaal dat u het beste uitkomt. We antwoorden binnen één werkdag per e‑mail, in het Nederlands.

Per e‑mail

riccardo@modernizestudio.com
Stuur een e‑mail

Heeft u een Access-database, of een ander ouder programma, dat u hetzelfde traject zou willen laten doorlopen? Stuur ons een kopie of een korte omschrijving. We antwoorden binnen één werkdag.

Stuur ons uw bestand

Is het programma gemaakt in Access, Excel, VB6, Delphi of een oudere versie van .NET? Dan ontvangt u binnen 48 uur na het versturen van het bestand een gratis schriftelijke analyse.

  1. Maak een kopie van het bestand, desgewenst met testgegevens.
  2. Voeg die toe aan het formulier of aan een e‑mail, bij voorkeur als archief met een wachtwoord dat u apart stuurt. Op verzoek tekenen we eerst een geheimhoudingsovereenkomst.
  3. Binnen 48 uur: de analyse en een vaste prijs voor een pilotmodule.

Wij werken vanuit Italië.

Stuur een bericht

Optioneel. Een database, een Excel-werkmap, schermafbeeldingen of een programma van eisen, tot 10 MB. Zet voor grotere bestanden een downloadlink in het bericht.

Mail ons

De knop opent uw e‑mailprogramma met het bericht al ingevuld. Er wordt niets verstuurd totdat u daar op Verzenden klikt.

Mail ons