Septimas høringssvar vedrørende dokumenteterne FKG datamodellen - Version 2 3 1 - Fysisk implementering.pdf og FKG_2_3_1_mssql.sql

Relaterede dokumenter
FKG datamodellen Version Implementeringsguidelines. FKG datamodellen Version Implementeringsguidelines

FKG datamodellen Version ArcGIS integration Sidste revisionsdato: 23. maj 2014

FKG datamodellen Version Fysisk implementering #3. FKG datamodellen Version Den fysiske implementering

FESD-standardiseringsgruppen Att: Palle Aagaard IT- og Telestyrelsen IT-strategisk kontor Holsteinsgade København Ø

OGF Datamodeller. Workshop 2 Teknisk gennemgang

Fredericia Kommunes GIS database. Insights Danmark 2012

Off-line redigering i Arealdata

Uddybende spørgsmål til MUD-GIS kravspecifikation

Kommunernes implementering af FKG datamodellen

Database design for begyndere

Upload & Download. Vejledning. Vejledning til brugen af upload og download funktionerne for Plandata.dk. Udarbejdet af Erhvervsstyrelsen

Implementeringsvejledning til FKG-datamodel version 2.5 for MS SQL Server og ArcGIS

Database programmerings tips

Kort og godt om test af arkiveringsversioner

DAVAR Omdøbt til SagDokumentFormat. Attention er skilt ud i et selvstændigt format, AttentionFormat.

Brugervejledning DAGI Afstemningsområder

Kommentar fra KMS til Specifikation af Serviceinterface for Person

Anvendelse af dobbelthistorik i GD2

Introduktion til OPC Access

Høringssvar vedrørende Specifikation af serviceinterface for person (part)

De vigtigste SQL-sætninger. SQL kap Oprette database. DDL og DML

Feltnavn Beskrivelse Datatype Eksempel Bemærkninger vedr. indberetning til PlansystemDK. Integer(3) 791

Integration mellem Scan Jour Captia og ArcGIS

Energinet.dk's svar på anbefalinger fra kvalitetsgruppen (Bilag 3)

Opgraderingsvejledning: Fra LDV til LDV 2.4.0

OBJEKTKODE Kodeværdi for objekttype Integer(2) 30 Objektkode 30 gælder for planer der knyttes til en lokalplan. Se evt. kodeliste for Plandk2+

Vejledning. Zonekort. Erhvervsministeriet, Erhvervsstyrelsen Udarbejdet af Erhvervsstyrelsen. Version: 1.0.0

Vejledning til online-redigering i Danmarks Arealinformation

VEJLEDNING I OPSÆTNING I MICROSTATION, MAPINFO, QGIS OG ARCGIS

Data lagring. 2. iteration (implement backend)

VEJLEDNING I OPSÆTNING I MICROSTATION, MAPINFO, QGIS OG ARCGIS

SFI-model _1441

Overordnet set vurderer Odense Kommune, at både det foreliggende udkast og det bagvedliggende arbejde er af høj kvalitet.

Anvisning i aflevering af bitemporale data

Høringssvar vedr. Serviceinterface for Person

SIMS Active Directory Service 2.5 Quick Guide

B R A N D S O F T. Vejledning til opmåling af kirkegårdskort for landinspektører.

PlanDK2+: Byggefelt OBS. Byggefelter er implementeret i PDK som en selvstændig Plantype (30.4) under objektkode 30 (lokalplandelområde).

Hvad er en relationsdatabase? Odense, den 19. januar Version 1.0

Feltnavn Beskrivelse Datatype Eksempel Bemærkninger vedr. indberetning til Plandata.dk

Web-baseret metadata redigeringsmodul

MAPINFO PROFESSIONAL V11.5

Begrynder til at lave log ind system

VEJLEDNING I REGISTRERING MED BORINGSFIKS- OG PEJLEPUNKTER

Guide til opdatering af Navision Stat med ny funktionalitet - nye objekter, datakonvertering, automatisk indlæsning af datafiler.

Casper Fabricius ActiveRecord. O/RM i Ruby on Rails

Arkitektur for begyndere

Brugervejledning til databrowseren

Notat om metadata om grunddata

Begrænsninger i SQL. Databaser, efterår Troels Andreasen

DM507 Algoritmer og datastrukturer

OIOUBL Guideline. OIOUBL Guideline

Indberetning af planer via upload Opdateret d

Brugers vejledning til indtastning af Naturdata på eksisterende 3- områder

Delprojekt Datamodeller

Tilgang til data. To udbredte metoder for at tilgå data: Sekventiel tilgang Random access: tilgang via ID (også kaldet key, nøgle) for dataelementer.

Indholdsfortegnelse. Systembeskrivelse kapitel 3 Forretningslogik

Postnummerkort.dk, version 1.0 officielt postnummerkort

Delvis aflysning af lokalplan i forbindelse med vedtagelse af ny lokalplan

GEOGIS UDVEKSLING AF DATA MELLEM REGIONER OG RÅDGIVERE. Beregnet for GeoGIS Brugere. Dokument type Brugervejledning.

vejman.dk WMS/WFS dokumentation vmgeoserver.vd.dk Maj 2013 Udgave 2.0

Merging og Hashing (del I)

Teknikken bag Datafordeleren Distribution af data. Fællesoffentlig datadistribution

I mit script tager jeg højde for det problem ved, at gemme et unikt tal mellem 0-9 på 6 cifre og derved vil de så blive vist som 2 online.

Databasesystemer. Databaser, efterår Troels Andreasen. Efterår 2002

Datamodeller. 1. Elementerne. Vi betragter E/R-diagrammet, som et diagram over entiteter og relationer Tegneregler: Entitet

GeoDK workshop. Opgaver. Odense 25. juni GeoDK workshop version 1.3

Indholdsfortegnelse Databaser og PHP... 3 Opgave... 4 Opgave... 5 Opgave... 6 Sidste opgave er en lille gæstebog... 7 Kilder og nyttige links:...

Definition: unikt beskrivende navn på engelsk, der entydigt refererer til egen- skaben

FOT3 - ny grundkortstandard. Set fra en Data-producent synsvinkel

Modul 2 Database projekt Multimediedesign 3. semester Gruppe 3 IRF/TUJE

Underbilag 2O Beskedkuvert Version 2.0

Upload af byggefelter

Bemærk! Et PHP script har kun brug for at forbinde én gang til databaseserveren. Det kan så sagtens udføre flere kommandoer vha. denne forbindelse.

Afsnittet er temmelig teoretisk. Er du mere til det praktiske, går du blot til det næste afsnit.

Udgivelsen er beskyttet af Creative Commons license, Navngivning 2.5

GERDA, Faglig følgegruppe, møde 28. aug 2008

Manglende konsistens i datamodellen og upræcise SQLsætninger er årsagen til, at mange IT-systemer fejler.

Side 1. Databaser og SQL. Dagens gang. Databasebegreber. Introduktion til SQL Kap 1-5

1 KlassifikationStruktur

En Kort Introduktion til Oracle

Tilgang til data. To udbredte metoder for at tilgå data: Sekventiel tilgang Random access: tilgang via ID (key, nøgle) for dataelementer.

Udgivelsen er beskyttet af Creative Commons license, Navngivning 2.5

SelskabMasterKom. Per Kjærulf-Møller ApS 13. november KomTabel-layout. Art: 41 Sendes: Begge veje

Engrosmodellen Retningslinjer for sikring af datakonsistens

Dataadministration af 3D bymodeller

Nyt i VandløbsGIS. Brugergruppemøde den november Flemming Nygaard Madsen

Vejledning til online-redigering i Danmarks Arealinformation

Logning. V/ Hans Kennet Larsen

Foto-Applikation Dokumentation. Et Kod-i-Ferien projekt

FKG. FKG datamodellen Opgradering til version 2.5 ArcGIS integration. Fælleskommunale Geodatasamarbejde. Sidste revisionsdato: 14.

1. Generelt om WFS Opsætning Eksempler... 6

Udfordringer og løsninger. ved anvendelse af Bentley Map og Geospatial Administrator til landmåling

- P-nummer medtages på niveauerne anvisning og alternativ adresse.

1 Indlæsning af script

Kodeliste til Plandata.dk

Erfaringer med CPR-replikering

Database tips. Den forudsætter lidt kendskab til SQL men er for mindre erfarne. Denne guide er oprindeligt udgivet på Eksperten.dk

2. SEMESTER PROJEKT 3 INTERAKTIONSUDVIKLING

Transkript:

Septima P/S Larsbjørnsstræde 3 1454 København K +45 7230 0672 www.septima.dk 31. juli 2013 Septimas høringssvar vedrørende dokumenteterne FKG datamodellen - Version 2 3 1 - Fysisk implementering.pdf og FKG_2_3_1_mssql.sql Indholdsfortegnelse: 1 Indledning... 2 2 Generelle bemærkninger... 3 2.1 Forholdet til eksisterende implementeringer... 3 2.2 Forholdet til andre databaseplatforme... 3 2.3 Temagrupper... 3 2.4 Sikkerhedsmodel... 3 2.5 Versionering... 3 2.6 Diverse... 3 3 Specifikke bemærkninger til datamodellen - Version 2 3 1 - Fysisk implementering.pdf... 4 3.1 Afsnit 1.3... 4 3.2 Afsnit 1.4... 4 3.3 Afsnit 2.2... 4 3.4 Afsnit 3.2... 4 3.5 Afsnit 4.1... 4 3.6 Afsnit 4.2... 4 3.7 Afsnit 4.3... 5 3.8 Afsnit 4.5... 5 3.9 Afsnit 4.6... 6 3.10 Afsnit 4.7... 6 3.11 Afsnit 4.9-3. afsnit... 6 3.12 Afsnit 4.9-4. afsnit... 7 3.13 Afsnit 4.9-5. afsnit... 7 3.14 Appendiks A... 7 4 Specifikke bemærkninger til FKG_2_3_1_mssql.sql... 8 4.1 Postnumre... 8 4.2 Indexer... 8 4.3 Insert triggers... 8 4.4 Update triggers... 8 4.5 Funktionen FKG_geometry_is_valid... 8

1 Indledning Nærværende dokument er Septimas besvarelse af høring vedr. Fælles Kommunale Geodata FKG - offentliggjort 8/7-2013 på KL s hjemmeside. Septimas besvarelse er udarbejdet efter en granskning af dokumentet FKG datamodellen - Version 2 3 1 - Fysisk implementering.pdf samt en stikprøvevis gennemgang af script til SQLserver generering: FKG_2_3_1_mssql.sql. Høringssvaret indeholder ikke en komplet gennemgang af samtlige temaer, idet den dermed forbundne arbejdsbyrde har været for omfattende. Vores høringssvar vedrører udelukkende de IT-tekniske aspekter i materialet - de faglige kommentarer til omfang og indhold af de enkelte temaet har vi ikke baggrund for at besvare. Er der eventuelle spørgsmål eller behov for uddybende kommentarer, kan Septima kontaktes: Christian Fischer christian@septima.dk tlf: +45 9132 6942 Gregers Petersen gregers@septima.dk tlf: +45 9132 6945 31. juli 2013 Side 2 af 8

2 Generelle bemærkninger 2.1 Forholdet til eksisterende implementeringer I de fysiske implementerings guidelines er der nogle forskelle i forhold til den logiske model (se særligt vores kommentarer til: Afsnit 4.2, 4.3, 4.5, 4.6, 4.7 og 4.9. I den forbindelse, anbefaler vi FKG-gruppen at overveje de ekstra omkostninger, der vil være for kommunerne ved at ændre allerede eksisterende implementeringer, så de stemmer overens med implementeringsguidelines. 2.2 Forholdet til andre databaseplatforme Afsnit 4 om implementeringsguidelines er fokuseret omkring en MS SQL-server implementering. En række af de konkret beskrevne guidelines, kan ikke følges for andre databaseplatforme. Derfor er bemærkningen i afsnit 4.1 Med udgangspunkt i implementeringen, som den foreligger til MS SQL Server, beskrives de forskellige guidelines, som bør følges, uanset hvilken databaseplatform, implementeringen er vendt mod. problematisk. Eksempler: Datatyper - der er forskelle mellem MS SQL-server og andre platforme i navngivning af datatype (GUID / UUID, varchar() / character varying(), smallint / NUMBER(,), bit / boolean) etc. Spatialle indexer - der findes ikke et Bounding Box begreb i Postgres Vi anbefaler, at MS SQL-server specifikke begreber fjernes fra implementeringsguidelines - alternativt angives som eksempler og ikke som regler. 2.3 Temagrupper Modellen indeholder ikke definition af de enkelte temaers tilhørsforhold til de 14 anvendte temagrupper. Temagrupperne er beskrevet i den logiske datamodel (afsnit 3.3.1). Vi anbefaler, at tilhørsforholdet modelleres i den fysiske implementering f.eks. som en parentchild relation, hvor hvert tema tilhører een temagruppe. 2.4 Sikkerhedsmodel Der findes i implementeringsbeskrivelsen ingen vejledning i hvordan en sikkerhedsmodel ovenpå implementeringen kan / bør implementeres. Vi vil anbefale, at man indføjer et kort afsnit om at der bør oprettes brugere, der kun kan skrive/læse i de valgte interfaceviews samt læse i kodelisterne. 2.5 Versionering Der beskrives i implementeringen ikke noget sted, hvor implementeringsversion gemmes i databasen. Idet det må forventes, at der kommer mange implementeringsversioner (mindst én pr. version af den logiske datamodel), vil vi anbefale at disse metadata ligeledes gemmes i den implementerede database (f.eks. een version for implementeringen og een version for den tilsvarende logiske datamodel - impl_ver= 2.3.1b, fkg_ver= 2.3.1 ). 2.6 Diverse Dokumentet indeholder en del stave- og slåfejl, som bør rettes. 31. juli 2013 Side 3 af 8

3 Specifikke bemærkninger til datamodellen - Version 2 3 1 - Fysisk implementering.pdf 3.1 Afsnit 1.3 Versionsnummer bør fremgå ved MS SQL server. Jf. scriptet er dette MS SQL server 2008, som bør indføres i dokumentet. Øvrige krav til databaseinstallation bør ligeledes anføres (f.eks. collation). 3.2 Afsnit 1.4 Vi anbefaler, at understøttelse af QGIS tilføjes. QGIS er et udbredt OpenSource Desktop GIS produkt, som vi forventer vil være af interesse for en del kommuner. 3.3 Afsnit 2.2 Teksten oprettelse af alle kodeværdier bør rettes til oprettelse af alle kodeværdier, som er fælles for alle kommuner. F.eks. er lookup tabellen d_vejnavn ikke oprettet i scriptet (og skal heller ikke). 3.4 Afsnit 3.2 Der er uoverensstemmelser mellem den logiske datamodel og den fysiske implementering: Forskelle i udvekslingsnavn: Logisk datamodel - udvekslingsnavn t_5009_pumpelag Interfaceview - Viewnavn t_5009_pumpelaug Vi anbefaler at den logiske datamodel altid følges i implementeringen, og at navnet i den logiske datamodel rettes i forbindelse med en opdatering af denne. 3.5 Afsnit 4.1 Teksten... andre kommende implementeringer af FKG datamodellen ligeledes skal følge. og senere...som den foreligger til MS SQL Server, beskrives de forskellige guidelines, som bør følges... Vi anbefaler, at der i begge sætninger står bør med den argumentation, at implementeringsguidelines netop er FKG's anbefalinger for en implementering. Andre implementeringer kan anvendes. Efter vores vurdering er det væsentlige, at interfaceviews og kodelister standardiseres for så vidt angår navngivning, datatyper og forretningsregler. 3.6 Afsnit 4.2 Angående argumentet med risiko for inkonsistens ved at opdele temaer i en specifik og en generel del (1:1 relation): vi har meget vanskeligt ved at se, hvordan dette kan ske med tilgangen til databasen gennem interfaceviews. Metoden med at anvende interfaceviews sikrer jo netop, at der ikke kan forekomme denne type inkonsistens (og strider i øvrigt imod argumentet for at bruge interfaceviews som det fremføres i afsnit 3.2). Modsat har en udskillelse af den generelle del i en separat tabel nogle fordele i forhold til den angivne metode: 31. juli 2013 Side 4 af 8

Forretningsregler for attributter i den generelle del, kan implementeres én gang i stedet for 82 gange. De 3 relationer fra den generelle del (cvr_kode, oprindkode og statuskode) kan reduceres til 3 i stedet for 246 (3 * 82) Det bliver mere klart i den fysiske model, hvordan strukturen med en generel del og en specifik del fungerer Der kan enkelt sikres eksplicit at det globalt unikke objekt_id ikke kan gentages for flere objekter på tværs af temaer. Vi vil anbefale FKG-gruppen nøje at overveje fordelene ved en udsplitning i en specifik tabel. Se i øvrigt kommentarer til afsnit 4.3 om generel sikring af unikt objekt_id. 3.7 Afsnit 4.3 Jævnfør vore erfaringer med implementering af FKG til de større GIS-platforme (QGIS, GeoMedia, MapInfo og ArcGIS gennem plugin), er der kun MapInfo, der ikke direkte understøtter brugen af GUID som primærnøgle. MapInfo kræver udover dette en række ændringer, f.eks. understøttes (status: december 2012) ikke direkte editering af (varchar-)felter større end 254 tegn. Dette udelukker editering af en lang række af modellens felter i MapInfo. Vi anbefaler derfor, at det undersøges, hvormange...mange af dagens GIS-programmer... der er tale om og at det desuden undersøges om ikke - bl.a. pga. problemet med editering af felter med mere end 254 tegn - der alligevel skal editeres f.eks. ved hjælp af et MBX-plugin til MapInfo. Vi anbefaler, at der ikke introduceres en ny primærnøgle (ID - integer), men at version_id som beskrevet i den logiske datamodel bibeholdes som primær nøgle. Efter vores overbevisning mangler der - jvf. kommentarerne til afsnit 4.2 - desuden en tilsikring af at objekt_id i sammenstilling med systid_fra behandles som en globalt unik nøgle. Dette nævnes ikke i dette afsnit og jvf. kommentarerne i afsnittet ovenfor er der derfor med den nuværende implementering ingen garanti for at man ikke kan indsætte flere samtidige objekter med samme objekt_id - i den nuværende beskrivelse sikres dette ikke engang i samme tabel. Dette strider mod ordlyden og meningen som beskrevet i logiske datamodel. 3.8 Afsnit 4.5 Der benyttes i den givne implementering varchar(x)-felter til implementering af tekst. Brugen af varchar gør det alene muligt at anvende ASCII-tegn og det er således ikke muligt at benytte internationale tegn. Vi anbefaler, at der i stedet benyttes nvarchar (hvor der gemmes i UTF-8), således at også særlige udenlandske specialtegn kan medtages. 31. juli 2013 Side 5 af 8

3.9 Afsnit 4.6 Vi savner en forklaring på hvorfor navngivningen af attributter i kodelistetabeller ikke følger den logiske datamodelbeskrivelse. I den implementerede model er benyttet: kode (for primærnøglen) tekst (for den tilhørende tekstuelle beskrivelse) aktiv (for markering af om kodeværdien er i brug) begrebsdefinition (for en detaljeret beskrivelse) I den logiske datamodelbeskrivelse benyttes en anden semantik - f.eks d_basis_hastighed: hastighed_kode hastighed aktiv begrebsdefinition Der er fordele og ulemper ved begge metoder, men der bør være overensstemmelse mellem den logiske beskrivelse og den fysiske implementering. Den valgte semantik vil være i strid med allerede implementerede FKG datamodeller, og vil vanskelliggøre tolkningen af den bagvedliggende datamodel. Det er desuden vores erfaring, at når alle felter ikke er navngivet ens, vil muligheden for fejl ved udarbejdelse af triggers og scripts mv. øges betragteligt. Vi anbefaler, at FKG gruppen: Enten ændringer retningslinjer for den fysiske implementering, så de følger den logiske datamodel eller Ændrer den logiske datamodelbeskrivelse, så den svarer til retningslinjerne for den fysiske implementering 3.10 Afsnit 4.7 I den logiske datamodel afsnit 2.5.3 Tilladt geometri, er angivet at Geometri for objekter skal opfylde OGC Simple Feature Specification standarderne for punkt, linje, polygon, multipunkt, multilinje og multipolygon. Standarderne skal opfyldes på databaseniveau. (Eksempelvis må en linje ikke krydse sig selv.) For hvert tema er geometritypen enten et punkt, en linje eller en polygon eller tilsvarende multi-punkt, -linje eller -polygon. Dette er i modstrid med implementeringsbeskrivelsen, hvor multi-versionerne ikke findes. Allerede eksisterende implementeringer (og data) ligger med multigeometrier - en udveksling vil derfor ikke være mulig med den beskrevne implementering. Vi anbefaler FKG gruppen, at retningslinjer for den fysiske implementeres ændres så den svarer til beskrivelsen i den logiske datamodel. 3.11 Afsnit 4.9-3. afsnit Det er meningsløst og bør ikke kunne lade sig gøre at ændre temakoden / temanavnet for et objekt i et tema. Dette vil betyde at man f.eks. kan have parkinventar liggende i temaet vandløb (med vandløbsattributter). Derudover vil vi anbefale, at man ikke kan ændre en kodeværdi i temaet ved at ændre kodeteksten (dette er i øvrigt heller ikke understøttet med de triggerdefinitioner, som er implementeret i fkg_2_3_1_mssql.sql ). Det vil skabe uklarhed om hvad der sker hvis både kodeværdien og teksten ændres i en update og værdierne ikke stemmer overens med hvad der ligger i kodelistetabellen. I stedet bør updates af kodetekster bortkastes. 31. juli 2013 Side 6 af 8

3.12 Afsnit 4.9-4. afsnit Afsnit 4: Hvad er årsagen til at man vil indsætte teksten Ukendt i bruger_id. Det er defineret som et obligatorisk og teksten Ukendt kan vel ikke fortolkes som andet end at man ikke har angivet bruger_id. Vi anbefaler, at der checkes for NOT NULL i stedet - idet erfaringen ellers viser at der vil opstå et stort antal poster med Ukendt som bruger. Samtidig anbefaler vi at definitionen i den logiske datamodel suppleres med en bemærkning om at obligatorisk / frit markeringen S/(O) skal forstås som at systemgenereret ikke er systemgenereret af databasen, men af den applikation, som tilgår databasen (det andet kan ikke lade sig gøre). Den samme bemærkning gør sig gældende for feltet cvr_kode. 3.13 Afsnit 4.9-5. afsnit Teksten: Triggers håndterer versionering i en update-transaktion således En update af den aktueller version af objektet, hvor systid_til sættes til det aktuelle tidspunkt. Er gentaget. 3.14 Appendiks A Vi har ikke gennemgået appendikset i detaljer - vi antager at indholdet følger definitionen i den logiske datamodel. 31. juli 2013 Side 7 af 8

4 Specifikke bemærkninger til FKG_2_3_1_mssql.sql 4.1 Postnumre Basistabellen d_basis_postnr bliver oprettet med både Grønlandske, Færøske og pseudo postnumre. Vi anbefaler, at basisversionen kun indeholder danske postnumre 4.2 Indexer Der defineres flere indexer end der er beskrevet i guideline dokumentet. F.eks. defineres der på tabellen t_5000_vandl_t følgende indexer: IDX_t_5000_vandl_t_101 ON t_5000_vandl_t (versions_id) IDX_t_5000_vandl_t_102 ON t_5000_vandl_t (systid_til) IDX_t_5000_vandl_t_103 ON t_5000_vandl_t (systid_fra) IDX_t_5000_vandl_t_104 ON t_5000_vandl_t ([systid_fra] ASC, [systid_til] ASC) INDEX SPIDX_t_5000_vandl ON t_5000_vandl_t (GEOMETRI) Vi anbefaler, at der kun implementeres de indexer, der er beskrivet i guidelines. 4.3 Insert triggers Det er ikke muligt at indsætte data hvor man kender objekt_id. Databasen tildeler altid et nyt objekt_id. Dette er ikke hensigsmæssigt, idet det umuliggør f.eks. off-line oprettelse af objekter eller udveksling af objekter på tværs af platforme. 4.4 Update triggers Det kan lade sig gøre at opdatere objekt_id. Dette bør undgås, idet en opdatering af objekt_id ødelægger den bagvedliggende historik på objektet. 4.5 Funktionen FKG_geometry_is_valid Der tjekkes for om punkter er punkter, om linier er linier og om polygoner er polygoner eller multipolygoner. Det kan undre, hvorfor der kun for polygoner tillades multigeometrier. 31. juli 2013 Side 8 af 8