Program til kontrol af datakonsistens

Tags:    databaser

Hej,

Jeg har udviklet et program, hvori man kan definere nogle regner for kontroller af datakonsistens. Programmet kan findes på http://www.mikl.dk/dcc/

Jeg vil være meget glad for, hvis I gad prøve det - og kommentere det.

Lige nu er der ud over alm. querystrings også bl.a. mulighed for match på regex, kontrol af om et felt i databasen indeholder et gyldigt dansk CPR-nummer (modulus 11).

Planlagte udvidelser til programmet er:
- Flere større kontroller, som ikke kan laves direkte i en alm. querystring (ala dansk CPR-nummer)
- Mulighed for HTML-mails
- Et GUI til at designe kontrollerne med

Oprindeligt udviklede jeg programmet med henblik på ERP-systemet Visma Business, men jeg har siden lavet det mere generelt, så det også kan bruges på andre applikation. Men det er derfor, der står så meget med Visma på hjemmesiden :-)

Som sagt ønsker jeg respons - både godt og skidt :-)

Mikkel Meyer Andersen (mikl-dk)



2 svar postet i denne tråd vises herunder
0 indlæg har modtaget i alt 0 karma
Sorter efter stemmer Sorter efter dato
Som jeg kan læse ud af dokumentationen er det ikke konsistens kontrol du laver men almindelig validering af data. Ved konsistens kontrol forstår jeg ikke at man skal kontrollere om de indsatte data er korrekte, dette burde gøres med forskellige constraints eller andre mekanismer inden de indsættes i databasen. Jeg er også dybt uening i at du i din dokumentation skriver at man således ikke behøver at tænke på at lave en manuel kontrol.

Min holdning er at hvis man laver en ordentlig database og en ordentlig validering inden indsætning i databasen så skal man ikke bekymre sig om tlf. er indtastet korrekt. Og hvis det er noget man alligevel kun gør med jævne mellemrum, så har man ugyldige data i sin database indtil man kører sit check og så igen sekundet efter man har kørt dit program, så har man ugyldige data igen.

Konsistens kontrol derimod er valideringen den strukturelle integritet, dvs. om primær nøgler og fremmednøgler matcher og om der er ygyldige rækker i databasen, og til en vis grad også check af indeksering. (naturligvis kan dette gøres med constraints i form af nøgler, så derfor hører dette også til en sjældenhed at man foretager denne type checks). Udover dette er der i netop MS SQL Serveren (som du nævner i din dokumentation) allerede en stored procedure: DBCC CHECKDB, der gør netop dette.

Jeg vil vove den påstand at dit værktøj kun virker på databaser (ved ikke om visma er en af disse, men MS SQL Server er ikke) der ikke selv kan holde konsistens ved hjælp af almindelige constraints, eller hvis databasen ikke er lavet korrekt.

Constraints til at holde konsistensen med er almindeilg SQL92 funktionalitet, det vil sige at alle databaser der understøtter SQL kan selv gøre dette.

I det firma jeg arbejder i bruger vi kun den type applikationer som hjælp for kunder der ikke selv kan finde ud af at lave databaser!!!

(¯`·._.·[Brian Hvarregaard]·._.·´¯)
Praesto et Persto



Jeg forstår godt dine gode argumenter for datakonsistens, og tager dem til mig.

Jeg er dog ikke enig i, at alt direkte kan løses på databaseniveau, men du har ret i, at meget af det kan klares sådan.

Jeg går i tænkeboks :-) Mange tak for den gode respons :-)

Mikkel Meyer Andersen (mikl-dk)



t