diff --git a/alkis-ableitungsregeln.sql b/alkis-ableitungsregeln.sql index d34af51..7c30193 100644 --- a/alkis-ableitungsregeln.sql +++ b/alkis-ableitungsregeln.sql @@ -314,7 +314,7 @@ SELECT 'Präsentationstabellen werden erzeugt.'; SELECT alkis_dropobject('po_points'); CREATE TABLE po_points( ogc_fid serial PRIMARY KEY, - gml_id varchar NOT NULL, + gml_id character(16) NOT NULL, thema varchar NOT NULL, layer varchar NOT NULL, signaturnummer varchar, @@ -329,7 +329,7 @@ SELECT AddGeometryColumn('po_points','point', :alkis_epsg, 'MULTIPOINT', 2); SELECT alkis_dropobject('po_lines'); CREATE TABLE po_lines( ogc_fid serial PRIMARY KEY, - gml_id varchar NOT NULL, + gml_id character(16) NOT NULL, thema varchar NOT NULL, layer varchar NOT NULL, signaturnummer varchar REFERENCES alkis_linien(signaturnummer), @@ -342,7 +342,7 @@ SELECT AddGeometryColumn('po_lines','line', :alkis_epsg, 'MULTILINESTRING', 2); SELECT alkis_dropobject('po_polygons'); CREATE TABLE po_polygons( ogc_fid serial PRIMARY KEY, - gml_id varchar NOT NULL, + gml_id character(16) NOT NULL, thema varchar NOT NULL, layer varchar NOT NULL, signaturnummer varchar, @@ -357,7 +357,7 @@ SELECT AddGeometryColumn('po_polygons','polygon', :alkis_epsg, 'MULTIPOLYGON', 2 SELECT alkis_dropobject('po_labels'); CREATE TABLE po_labels( ogc_fid serial PRIMARY KEY, - gml_id varchar NOT NULL, + gml_id character(16) NOT NULL, thema varchar NOT NULL, layer varchar NOT NULL, signaturnummer varchar REFERENCES alkis_schriften(signaturnummer), @@ -605,7 +605,7 @@ WHERE ARRAY[2001,2003,2004] && artderflurstuecksgrenze AND a.ogc_fid character(16) + s := 0; + i := 0; + FOR c IN + SELECT table_name + FROM information_schema.columns a + WHERE a.table_schema='public' + AND (a.table_name LIKE 'ax_%' OR a.table_name LIKE 'ap_%') + AND a.column_name='gml_id' + AND a.data_type='character varying' + LOOP + -- RAISE NOTICE '%', 'UPDATE ' || c.table_name || ' SET gml_id=substring(gml_id,1,16) WHERE length(gml_id)>16'; + EXECUTE 'UPDATE ' || c.table_name || ' SET gml_id=substring(gml_id,1,16) WHERE length(gml_id)>16'; + GET DIAGNOSTICS n = ROW_COUNT; + s := s + n; + + -- RAISE NOTICE '%', 'ALTER TABLE ' || c.table_name || ' ALTER COLUMN gml_id TYPE character(16)'; + EXECUTE 'ALTER TABLE ' || c.table_name || ' ALTER COLUMN gml_id TYPE character(16)'; + i := i + 1; + END LOOP; - SELECT count(*) INTO n FROM information_schema.columns WHERE table_schema='public' AND table_name='delete' AND column_name='replacedby'; - IF n=0 THEN - ALTER TABLE "delete" ADD replacedBy VARCHAR; - END IF; + IF i > 0 OR s > 0 THEN + r := coalesce(r||E'\n','') || i || ' Tabellen mit ' || s || ' lange AAA-Identifikatoren geändert.'; + END IF; - -- Spalte identifier ergänzen, wo sie fehlt - FOR c IN SELECT table_name FROM information_schema.columns a WHERE a.column_name='gml_id' - AND EXISTS (SELECT * FROM information_schema.columns b WHERE b.column_name='beginnt' AND a.table_catalog=b.table_catalog AND a.table_schema=b.table_schema AND a.table_name=b.table_name) - AND NOT EXISTS (SELECT * FROM information_schema.columns b WHERE b.column_name='identifier' AND a.table_catalog=b.table_catalog AND a.table_schema=b.table_schema AND a.table_name=b.table_name) - LOOP - EXECUTE 'ALTER TABLE ' || c.table_name || ' ADD identifier character(44)'; - END LOOP; + -- land, gemarkungsnummer, gemeinde, regierungsbezirk, bezirk, kreis, schluesselgesamt: integer => varchar + i := 0; + FOR c IN + SELECT table_name, column_name + FROM information_schema.columns a + WHERE a.table_schema='public' + AND a.table_name LIKE 'ax_%' + AND a.column_name IN ('land','gemarkungsnummer','gemeinde','regierungsbezirk','bezirk','kreis','schluesselgesamt') + AND a.data_type='integer' + LOOP + -- RAISE NOTICE '%', 'ALTER TABLE ' || c.table_name || ' ALTER COLUMN ' || c.column_name || ' TYPE character varying'; + EXECUTE 'ALTER TABLE ' || c.table_name || ' ALTER COLUMN ' || c.column_name || ' TYPE character varying'; + i := i + 1; + END LOOP; - -- Spalte endet ergänzen, wo sie fehlt - FOR c IN SELECT table_name FROM information_schema.columns a WHERE a.column_name='gml_id' - AND EXISTS (SELECT * FROM information_schema.columns b WHERE b.column_name='beginnt' AND a.table_catalog=b.table_catalog AND a.table_schema=b.table_schema AND a.table_name=b.table_name) - AND NOT EXISTS (SELECT * FROM information_schema.columns b WHERE b.column_name='endet' AND a.table_catalog=b.table_catalog AND a.table_schema=b.table_schema AND a.table_name=b.table_name) - LOOP - EXECUTE 'ALTER TABLE ' || c.table_name || ' ADD endet character(20) CHECK (endet>beginnt)'; - END LOOP; + IF i > 0 THEN + r := coalesce(r||E'\n','') || i || ' Spalten angepaßt (integer->character varying).'; + END IF; - -- Lebensdauer-Constraint ergänzen - FOR c IN SELECT table_name FROM information_schema.columns a WHERE a.column_name='gml_id' - AND EXISTS (SELECT * FROM information_schema.columns b WHERE b.column_name='beginnt' AND a.table_catalog=b.table_catalog AND a.table_schema=b.table_schema AND a.table_name=b.table_name) - AND EXISTS (SELECT * FROM information_schema.columns b WHERE b.column_name='endet' AND a.table_catalog=b.table_catalog AND a.table_schema=b.table_schema AND a.table_name=b.table_name) - LOOP - SELECT alkis_dropobject(c.table_name||'_lebensdauer'); - EXECUTE 'ALTER TABLE ' || c.table_name || ' ADD CONSTRAINT ' || c.table_name || '_lebensdauer CHECK (beginnt IS NOT NULL AND endet>beginnt)'; - END LOOP; + -- Relationen: varchar => character(16) bzw. varchar[] => character(16)[] + i := 0; + FOR c IN + WITH RECURSIVE + element(name,base) AS ( + SELECT name,unnest(name||abgeleitet_aus) AS base + FROM alkis_elemente + UNION + SELECT a.name,unnest(b.abgeleitet_aus) AS base + FROM element a + JOIN alkis_elemente b ON a.base=b.name + ), + relation(element,bezeichnung,kennung) AS ( + SELECT element,bezeichnung,kennung FROM alkis_relationsart + UNION + SELECT b.element,a.bezeichnung,a.kennung FROM alkis_relationsart a JOIN relation b ON a.element=lower(b.bezeichnung) + ) + SELECT col.table_name,col.column_name,col.udt_name + FROM element t + JOIN relation a ON t.base=a.element + JOIN information_schema.columns col ON lower(t.name)=col.table_name AND lower(a.bezeichnung)=col.column_name + WHERE col.udt_name IN ('_varchar','varchar') + LOOP + IF c.udt_name='_varchar' THEN + -- RAISE NOTICE '%', 'ALTER TABLE ' || c.table_name || ' ALTER COLUMN ' || c.column_name || ' TYPE character(16)[]'; + EXECUTE 'ALTER TABLE ' || c.table_name || ' ALTER COLUMN ' || c.column_name || ' TYPE character(16)[]'; + i := i + 1; + ELSE + -- RAISE NOTICE '%', 'UPDATE ' || c.table_name || ' SET ' || c.column_name || '=' || 'substring('||c.column_name||',1,16) WHERE length('||c.column_name||')>16'; + EXECUTE 'UPDATE ' || c.table_name || ' SET ' || c.column_name || '=' || 'substring('||c.column_name||',1,16) WHERE length('||c.column_name||')>16'; - -- Indizes aktualisieren - FOR c IN SELECT table_name FROM information_schema.columns a WHERE a.column_name='gml_id' - AND EXISTS (SELECT * FROM information_schema.columns b WHERE b.column_name='beginnt' AND a.table_catalog=b.table_catalog AND a.table_schema=b.table_schema AND a.table_name=b.table_name) - LOOP - -- Vorhandene Indizes droppen (TODO: Löscht auch die Sonderfälle - entfernen) - FOR i IN EXECUTE 'SELECT indexname FROM pg_indexes WHERE NOT indexname LIKE ''%_pk'' AND schemaname=''public'' AND tablename='''||c.table_name||'''' LOOP - EXECUTE 'DROP INDEX ' || i.indexname; + -- RAISE NOTICE '%', 'ALTER TABLE ' || c.table_name || ' ALTER COLUMN ' || c.column_name || ' TYPE character(16)'; + EXECUTE 'ALTER TABLE ' || c.table_name || ' ALTER COLUMN ' || c.column_name || ' TYPE character(16)'; + i := i + 1; + END IF; END LOOP; - -- Indizes erzeugen - EXECUTE 'CREATE UNIQUE INDEX ' || c.table_name || '_id ON ' || c.table_name || '(gml_id,beginnt)'; - EXECUTE 'CREATE UNIQUE INDEX ' || c.table_name || '_ident ON ' || c.table_name || '(identifier)'; - EXECUTE 'CREATE INDEX ' || c.table_name || '_gmlid ON ' || c.table_name || '(gml_id)'; - EXECUTE 'CREATE INDEX ' || c.table_name || '_beginnt ON ' || c.table_name || '(beginnt)'; - EXECUTE 'CREATE INDEX ' || c.table_name || '_endet ON ' || c.table_name || '(endet)'; - END LOOP; + IF i > 0 THEN + r := coalesce(r||E'\n','') || i || ' Spalten angepaßt (varchar->character(16)).'; + END IF; - -- Geometrieindizes aktualisieren - FOR c IN SELECT table_name FROM information_schema.columns a WHERE a.column_name='gml_id' - AND EXISTS (SELECT * FROM information_schema.columns b WHERE b.column_name='wkb_geometry' AND a.table_catalog=b.table_catalog AND a.table_schema=b.table_schema AND a.table_name=b.table_name) - LOOP - EXECUTE 'CREATE INDEX ' || c.table_name || '_geom ON ' || c.table_name || ' USING GIST (wkb_geometry)'; - END LOOP; + UPDATE alkis_version SET version=1; + END IF; - RETURN 'Schema aktualisiert.'; + RETURN r; END; $$ LANGUAGE plpgsql; --- Im Trigger 'delete_feature_trigger' muss eine dieser beiden Funktionen --- (delete_feature_hist oder delete_feature_kill) verlinkt werden, je nachdem ob nur --- aktuelle oder auch historische Objekte in der Datenbank geführt werden sollen. -- Löschsatz verarbeiten (MIT Historie) --- context='update' => "endet" auf übergebene Zeit setzen und anlass festhalten -- context='delete' => "endet" auf aktuelle Zeit setzen -- context='replace' => "endet" des ersetzten auf "beginnt" des neuen Objekts setzen +-- context='update' => "endet" auf übergebene Zeit setzen und "anlass" festhalten CREATE OR REPLACE FUNCTION delete_feature_hist() RETURNS TRIGGER AS $$ DECLARE - s TEXT; - alt_id TEXT; - neu_id TEXT; - beginnt TEXT; - endete TEXT; n INTEGER; + beginnt TEXT; + s TEXT; BEGIN - NEW.context := lower(NEW.context); - IF NEW.context IS NULL THEN - NEW.context := 'delete'; - END IF; + NEW.context := coalesce(lower(NEW.context),'delete'); - -- TIMESTAMP weder in gml_id noch identifier verläßlich. - -- also ggf. aus Datenbank holen + IF NEW.anlass IS NULL THEN + NEW.anlass := ''; + END IF; IF length(NEW.featureid)=32 THEN - alt_id := substr(NEW.featureid, 1, 16); - - IF NEW.featureid<>NEW.replacedBy THEN - -- Beginnt-Datum aus Timestamp - beginnt := substr(NEW.featureid, 17, 4) || '-' - || substr(NEW.featureid, 21, 2) || '-' - || substr(NEW.featureid, 23, 2) || 'T' - || substr(NEW.featureid, 26, 2) || ':' - || substr(NEW.featureid, 28, 2) || ':' - || substr(NEW.featureid, 30, 2) || 'Z' - ; - END IF; + beginnt := substr(NEW.featureid, 17, 4) || '-' + || substr(NEW.featureid, 21, 2) || '-' + || substr(NEW.featureid, 23, 2) || 'T' + || substr(NEW.featureid, 26, 2) || ':' + || substr(NEW.featureid, 28, 2) || ':' + || substr(NEW.featureid, 30, 2) || 'Z' + ; ELSIF length(NEW.featureid)=16 THEN - alt_id := NEW.featureid; - ELSE - RAISE EXCEPTION '%: Länge 16 oder 32 statt % erwartet.', NEW.featureid, length(NEW.featureid); - END IF; - - IF beginnt IS NULL THEN - -- Beginnt-Datum des ältesten Eintrag, der nicht untergegangen ist - -- => der Satz dessen 'endet' gesetzt werden muß + -- Ältestes nicht gelöschtes Objekt EXECUTE 'SELECT min(beginnt) FROM ' || NEW.typename - || ' WHERE gml_id=''' || alt_id || '''' - || ' AND endet IS NULL' + || ' WHERE gml_id=''' || substr(NEW.featureid, 1, 16) || '''' + || ' AND endet IS NULL' INTO beginnt; - END IF; - IF beginnt IS NULL THEN - IF NEW.context = 'delete' OR NEW.safetoignore = 'true' THEN - RAISE NOTICE 'Kein Beginndatum für Objekt % gefunden - ignoriert.', alt_id; - NEW.ignored := true; - RETURN NEW; - ELSE - RAISE EXCEPTION 'Kein Beginndatum für Objekt % gefunden.', alt_id; + IF beginnt IS NULL THEN + RAISE EXCEPTION '%: Keinen Kandidaten zum Löschen gefunden.', NEW.featureid; END IF; + ELSE + RAISE EXCEPTION '%: Identifikator gescheitert.', NEW.featureid; END IF; IF NEW.context='delete' THEN - endete := to_char(CURRENT_TIMESTAMP AT TIME ZONE 'UTC','YYYY-MM-DD"T"HH24:MI:SS"Z"'); + NEW.endet := to_char(CURRENT_TIMESTAMP AT TIME ZONE 'UTC','YYYY-MM-DD"T"HH24:MI:SS"Z"'); + + ELSIF NEW.context='update' THEN + IF NEW.endet IS NULL THEN + RAISE EXCEPTION '%: Endedatum nicht gesetzt', NEW.featureid; + END IF; ELSIF NEW.context='replace' THEN NEW.safetoignore := lower(NEW.safetoignore); - IF NEW.safetoignore IS NULL THEN RAISE EXCEPTION '%: safeToIgnore nicht gesetzt.', NEW.featureid; ELSIF NEW.safetoignore<>'true' AND NEW.safetoignore<>'false' THEN RAISE EXCEPTION '%: safeToIgnore ''%'' ungültig (''true'' oder ''false'' erwartet).', NEW.featureid, NEW.safetoignore; END IF; - IF length(NEW.replacedBy)=32 THEN - -- Beginnt-Datum aus Timestamp - IF NEW.featureid<>NEW.replacedBy THEN - endete := substr(NEW.replacedBy, 17, 4) || '-' - || substr(NEW.replacedBy, 21, 2) || '-' - || substr(NEW.replacedBy, 23, 2) || 'T' - || substr(NEW.replacedBy, 26, 2) || ':' - || substr(NEW.replacedBy, 28, 2) || ':' - || substr(NEW.replacedBy, 30, 2) || 'Z' - ; - END IF; - ELSIF length(NEW.replacedBy)<>16 THEN - RAISE EXCEPTION '%: Länge 16 oder 32 statt % erwartet.', NEW.replacedBy, length(NEW.replacedBy); + IF length(NEW.replacedby)=32 AND NEW.replacedby<>NEW.featureid THEN + NEW.endet := substr(NEW.replacedby, 17, 4) || '-' + || substr(NEW.replacedby, 21, 2) || '-' + || substr(NEW.replacedby, 23, 2) || 'T' + || substr(NEW.replacedby, 26, 2) || ':' + || substr(NEW.replacedby, 28, 2) || ':' + || substr(NEW.replacedby, 30, 2) || 'Z' + ; END IF; - neu_id := NEW.replacedBy; - IF endete IS NULL THEN - -- Beginnt-Datum des neuesten Eintrag, der nicht untergegangen ist - -- => Enddatum für vorherigen Satz - EXECUTE 'SELECT max(beginnt) FROM ' || NEW.typename - || ' WHERE gml_id=''' || NEW.replacedBy || '''' - || ' AND beginnt>''' || beginnt || '''' + IF NEW.endet IS NULL THEN + -- Ältestes nicht gelöschtes Objekt + EXECUTE 'SELECT min(beginnt) FROM ' || NEW.typename + || ' WHERE gml_id=''' || substr(NEW.replacedby, 1, 16) || '''' || ' AND endet IS NULL' - INTO endete; - IF endete IS NULL AND length(NEW.replacedBy)=32 THEN - EXECUTE 'SELECT max(beginnt) FROM ' || NEW.typename - || ' WHERE gml_id=''' || substr(NEW.replacedBy, 1, 16) || '''' - || ' AND beginnt>''' || beginnt || '''' - || ' AND endet IS NULL' - INTO endete; - neu_id := substr(NEW.replacedBy, 1, 16); - END IF; + INTO NEW.endet; END IF; - IF alt_id<>substr(neu_id, 1, 16) THEN - RAISE NOTICE 'Objekt % wird durch Objekt % ersetzt.', alt_id, neu_id; - END IF; + IF NEW.endet IS NULL THEN + IF NEW.safetoignore='false' THEN + RAISE EXCEPTION '%: Beginn des ersetzenden Objekts % nicht gefunden.', NEW.featureid, NEW.replacedby; + -- RAISE NOTICE '%: Beginn des ersetzenden Objekts % nicht gefunden.', NEW.featureid, NEW.replacedby; + END IF; - IF endete IS NULL THEN - RAISE NOTICE 'Kein Beginndatum für Objekt % gefunden.', NEW.replacedBy; + NEW.ignored=true; + RETURN NEW; END IF; - IF endete IS NULL OR beginnt=endete THEN - RAISE EXCEPTION 'Objekt % wird durch Objekt % ersetzt (leere Lebensdauer?).', alt_id, neu_id; - END IF; - ELSIF NEW.context='update' THEN - endete := NEW.endet; ELSE RAISE EXCEPTION '%: Ungültiger Kontext % (''delete'', ''replace'' oder ''update'' erwartet).', NEW.featureid, NEW.context; + END IF; - s := 'UPDATE ' || NEW.typename - || ' SET endet=''' || endete || '''' - || ',anlass=''' || coalesce(NEW.anlass,'000000') || '''' - || ' WHERE gml_id=''' || NEW.featureid || '''' - || ' AND beginnt=''' || beginnt || '''' - || ' AND endet IS NULL'; + s := 'UPDATE ' || NEW.typename + || ' SET endet=''' || NEW.endet || '''' + || ',anlass=''' || NEW.anlass || '''' + || ' WHERE gml_id=''' || substr(NEW.featureid, 1, 16) || '''' + || ' AND beginnt=''' || beginnt || '''' + ; EXECUTE s; GET DIAGNOSTICS n = ROW_COUNT; - IF n=0 AND alt_id<>NEW.featureid THEN - s := 'UPDATE ' || NEW.typename - || ' SET endet=''' || endete || '''' - || ',anlass=''' || coalesce(NEW.anlass,'000000') || '''' - || ' WHERE gml_id=''' || alt_id || '''' - || ' AND beginnt=''' || beginnt || '''' - || ' AND endet IS NULL'; - EXECUTE s; - GET DIAGNOSTICS n = ROW_COUNT; - END IF; - + -- RAISE NOTICE 'SQL[%]:%', n, s; IF n<>1 THEN - RAISE NOTICE 'SQL[%<>1]: %', n, s; - IF NEW.context = 'delete' OR NEW.safetoignore = 'true' THEN - RAISE NOTICE '%: Untergangsdatum von % Objekten statt einem auf % gesetzt - ignoriert', NEW.featureid, n, endete; - NEW.ignored := true; - RETURN NEW; - ELSIF n=0 THEN - EXECUTE 'SELECT endet FROM ' || NEW.typename || - ' WHERE gml_id=''' || alt_id || '''' || - ' AND beginnt=''' || beginnt || '''' - INTO endete; - - IF NOT endete IS NULL THEN - RAISE NOTICE '%: Objekt bereits % untergegangen - ignoriert', NEW.featureid, endete; - ELSE - RAISE NOTICE '%: Objekt nicht gefunden - ignoriert', NEW.featureid; - END IF; - - NEW.ignored := true; - RETURN NEW; - ELSE - RAISE EXCEPTION '%: Untergangsdatum von % Objekten statt einem auf % gesetzt - Abbruch', NEW.featureid, n, endete; - END IF; + RAISE EXCEPTION '%: % schlug fehl [%]', NEW.featureid, NEW.context, n; + -- RAISE NOTICE '%: % schlug fehl [%]', NEW.featureid, NEW.context, n; + -- NEW.ignored=true; + -- RETURN NEW; END IF; NEW.ignored := false; @@ -589,7 +576,7 @@ BEGIN SELECT element,bezeichnung,datentyp,kardinalitaet,kennung,definition FROM alkis_attributart UNION SELECT b.element,a.bezeichnung,a.datentyp,a.kardinalitaet,a.kennung,a.definition FROM alkis_attributart a JOIN typ b ON a.element=lower(b.datentyp) - -- FIXME: kommen unterschiedliche Kardinalitäten bei Element und Attribut vor? + -- FIXME: kommen unterschiedliche Kardinalitäten bei Element und Attribut vor? ) SELECT col.table_name,col.column_name,a.definition,a.datentyp,a.kardinalitaet,a.kennung FROM element t diff --git a/alkis-import.sh b/alkis-import.sh index 4957bae..a9f0db3 100755 --- a/alkis-import.sh +++ b/alkis-import.sh @@ -288,6 +288,20 @@ EOF continue ;; + update) + if [ -z "$DB" ]; then + echo "$P: Keine Datenbankverbindungsdaten angegeben" >&2 + exit 1 + fi + + echo "UPDATE $(bdate)" + pushd "$B/$sql" >/dev/null + sql alkis-update.sql + popd >/dev/null + + continue + ;; + "gdb") if [ -n "$log" ]; then echo "$P: gdb und log schließen sich aus" >&2 diff --git a/alkis-schema.sql b/alkis-schema.sql index 3dc51d9..6f2ac91 100644 --- a/alkis-schema.sql +++ b/alkis-schema.sql @@ -43,6 +43,9 @@ -- Alle Tabellen löschen SELECT alkis_drop(); +CREATE TABLE alkis_version(version integer); +INSERT INTO alkis_version(version) VALUES (1); + -- BW/BY-Koordinatensystem anlegen SELECT alkis_create_bsrs(:alkis_epsg); @@ -51,11 +54,11 @@ CREATE TABLE "delete" ( ogc_fid serial NOT NULL, typename varchar, featureid varchar, - context varchar, -- delete/replace/update - safetoignore varchar, -- replace.safetoignore 'true'/'false' - replacedBy varchar, -- gmlid - anlass varchar, -- update.anlass - endet character(20), -- update.endet + context varchar, -- delete/replace/update + safetoignore varchar, -- replace.safetoignore 'true'/'false' + replacedBy varchar, -- gmlid + anlass varchar, -- update.anlass + endet character(20), -- update.endet ignored boolean DEFAULT false, -- Satz wurde nicht verarbeitet CONSTRAINT delete_pk PRIMARY KEY (ogc_fid) ); @@ -66,28 +69,20 @@ CREATE UNIQUE INDEX delete_fid ON "delete"(featureid); COMMENT ON TABLE "delete" IS 'Hilfstabelle für das Speichern von Löschinformationen.'; COMMENT ON COLUMN delete.typename IS 'Objektart, also Name der Tabelle, aus der das Objekt zu löschen ist.'; -COMMENT ON COLUMN delete.featureid IS 'gml_id des zu löschenden Objekts.'; +COMMENT ON COLUMN delete.featureid IS 'gml_id des zu löschenden Objekts (falls ein Objekt in einer Datei in verschiedenen Version angesprochen wird mit Timestamp).'; COMMENT ON COLUMN delete.context IS 'Operation ''delete'', ''replace'' oder ''update''.'; COMMENT ON COLUMN delete.safetoignore IS 'Attribut safeToIgnore von wfsext:Replace'; COMMENT ON COLUMN delete.replacedBy IS 'gml_id des Objekts, das featureid ersetzt'; +COMMENT ON COLUMN delete.anlass IS 'Anlaß des Endes'; +COMMENT ON COLUMN delete.endet IS 'Zeitpunkt des Endes'; COMMENT ON COLUMN delete.ignored IS 'Löschsatz wurde ignoriert'; --- B e z i e h u n g e n --- ---------------------------------------------- --- Zentrale Tabelle fuer alle Relationen im Buchwerk. Zukünftig entfallend. --- Bevor diese Tabelle entfallen kann müssen alle Views und Anwendungen umgestellt werden auf die Nutzung der Beziehungen-Spalten in den Tabellen. - --- Die Fremdschlüssel 'beziehung_von' und 'beziehung_zu' verweisen auf die ID des Objekte (gml_id). --- Das Feld 'gml_id' sollte daher in allen Tabellen indiziert werden. - --- Zusätzlich enthält 'beziehungsart' noch ein Verb für die Art der Beziehung. - CREATE TABLE alkis_beziehungen ( - ogc_fid serial NOT NULL, - beziehung_von varchar NOT NULL, --> gml_id - beziehungsart varchar, - beziehung_zu varchar NOT NULL, --> gml_id - CONSTRAINT alkis_beziehungen_pk PRIMARY KEY (ogc_fid) + ogc_fid serial NOT NULL, + beziehung_von character(16) NOT NULL, + beziehungsart varchar, + beziehung_zu character(16) NOT NULL, + CONSTRAINT alkis_beziehungen_pk PRIMARY KEY (ogc_fid) ); CREATE INDEX alkis_beziehungen_von_idx ON alkis_beziehungen USING btree (beziehung_von); @@ -101,25 +96,12 @@ COMMENT ON COLUMN alkis_beziehungen.beziehung_von IS 'Join auf Feld gml_id versc COMMENT ON COLUMN alkis_beziehungen.beziehung_zu IS 'Join auf Feld gml_id verschiedener Tabellen'; COMMENT ON COLUMN alkis_beziehungen.beziehungsart IS 'Typ der Beziehung zwischen der von- und zu-Tabelle'; --- Hinweis: --- Diese Tabelle enthält für ein Kreisgebiet ca. 5 Mio. Zeilen und wird ständig benutzt. --- Optimierung z.B. über passende Indices ist wichtig. - - --- Löschtrigger setzen -\i alkis-trigger.sql - - --- =========================================================== --- A L K I S - L a y e r --- =========================================================== - - -- S o n s t i g e s B a u w e r k -- ---------------------------------- +-- Wird von OGR generiert, ist aber keiner Objektartengruppe zuzuordnen. CREATE TABLE ks_sonstigesbauwerk ( ogc_fid serial NOT NULL, - gml_id varchar NOT NULL, + gml_id character(16) NOT NULL, identifier varchar, beginnt character(20), endet character(20), @@ -136,8 +118,8 @@ CREATE INDEX ks_sonstigesbauwerk_geom_idx ON ks_sonstigesbauwerk USING gist (wkb COMMENT ON TABLE ks_sonstigesbauwerk IS 'Sonstiges Bauwerk'; - - +-- Löschtrigger setzen +\i alkis-trigger.sql --*** ############################################################ @@ -147,12 +129,12 @@ COMMENT ON TABLE ks_sonstigesbauwerk IS 'Sonstiges Bauwerk'; --** Objektartengruppe: AAA_Praesentationsobjekte -- =================================================================== - -- A P P P O -- ---------------------------------------------- +-- Objektart: AP_PPO Kennung: 02310 CREATE TABLE ap_ppo ( ogc_fid serial NOT NULL, - gml_id varchar NOT NULL, + gml_id character(16) NOT NULL, identifier varchar, beginnt character(20), endet character(20), @@ -166,7 +148,7 @@ CREATE TABLE ap_ppo ( skalierung double precision, -- Beziehung - dientzurdarstellungvon varchar[], + dientzurdarstellungvon character(16)[], CONSTRAINT ap_ppo_pk PRIMARY KEY (ogc_fid) ); @@ -181,9 +163,10 @@ CREATE INDEX ap_ppo_dzdv ON ap_ppo USING gin (dientzurdarstellungvon); -- A P L P O -- ---------------------------------------------- +-- Objektart: AP_LPO Kennung: 02320 CREATE TABLE ap_lpo ( ogc_fid serial NOT NULL, - gml_id varchar NOT NULL, + gml_id character(16) NOT NULL, identifier varchar, beginnt character(20), endet character(20), @@ -195,7 +178,7 @@ CREATE TABLE ap_lpo ( art varchar, -- Beziehung - dientzurdarstellungvon varchar[], + dientzurdarstellungvon character(16)[], CONSTRAINT ap_lpo_pk PRIMARY KEY (ogc_fid) ); @@ -208,12 +191,12 @@ CREATE INDEX ap_lpo_dzdv ON ap_lpo USING gin (dientzurdarstellungvon); CREATE INDEX ap_lpo_endet ON ap_lpo USING btree (endet); - -- A P P T O -- ---------------------------------------------- +-- Objektart: AP_PTO Kennung: 02341 CREATE TABLE ap_pto ( ogc_fid serial NOT NULL, - gml_id varchar NOT NULL, + gml_id character(16) NOT NULL, identifier varchar, beginnt character(20), endet character(20), @@ -227,12 +210,12 @@ CREATE TABLE ap_pto ( vertikaleausrichtung varchar, signaturnummer varchar, darstellungsprioritaet integer, - art varchar, -- Inhalte z.B. "ZAE_NEN" siehe unten + art varchar, -- Inhalte z.B. "ZAE_NEN" siehe unten drehwinkel double precision, -- falsche Masseinheit für Mapserver, im View umrechnen - -- Beziehung - dientzurdarstellungvon varchar[], - hat varchar, + -- Beziehungen + dientzurdarstellungvon character(16)[], + hat character(16), CONSTRAINT ap_pto_pk PRIMARY KEY (ogc_fid) ); @@ -250,31 +233,30 @@ CREATE INDEX ap_pto_hat ON ap_pto USING btree (hat); COMMENT ON INDEX ap_pto_art_idx IS 'Suchindex auf häufig benutztem Filterkriterium'; - - -- A P L T O -- ---------------------------------------------- +-- Objektart: AP_LTO Kennung: 02342 CREATE TABLE ap_lto ( ogc_fid serial NOT NULL, - gml_id varchar NOT NULL, + gml_id character(16) NOT NULL, identifier varchar, beginnt character(20), endet character(20), advstandardmodell varchar[], sonstigesmodell varchar[], anlass varchar, - art varchar, schriftinhalt varchar, fontsperrung double precision, skalierung double precision, horizontaleausrichtung varchar, vertikaleausrichtung varchar, signaturnummer varchar, + art varchar, darstellungsprioritaet integer, - -- Beziehung - dientzurdarstellungvon varchar[], - hat varchar, + -- Beziehungen + dientzurdarstellungvon character(16)[], + hat character(16), CONSTRAINT ap_lto_pk PRIMARY KEY (ogc_fid) ); @@ -291,22 +273,23 @@ CREATE INDEX ap_lto_endet_idx ON ap_lto USING btree (endet); -- A P D a r s t e l l u n g -- ---------------------------------------------- +-- Objektart: AP_Darstellung Kennung: 02350 CREATE TABLE ap_darstellung ( ogc_fid serial NOT NULL, - gml_id varchar NOT NULL, + gml_id character(16) NOT NULL, identifier varchar, beginnt character(20), -- Datumsformat endet character(20), -- Datumsformat advstandardmodell varchar[], sonstigesmodell varchar[], anlass varchar, - art varchar, - darstellungsprioritaet integer, signaturnummer varchar, + darstellungsprioritaet integer, + art varchar, positionierungsregel integer, -- Beziehung - dientzurdarstellungvon varchar[], + dientzurdarstellungvon character(16)[], CONSTRAINT ap_darstellung_pk PRIMARY KEY (ogc_fid) ); @@ -325,56 +308,58 @@ COMMENT ON TABLE ap_darstellung IS 'A P D a r s t e l l u n g'; --*** Objektbereich: Flurstücke, Lage, Punkte --*** ############################################################ +--** Objektartengruppe: Angaben zu Festpunkten der Landesvermessung + --** Objektartengruppe: Angaben zum Flurstück -- =================================================================== -- F l u r s t u e c k -- ---------------------------------------------- --- Kennung 11001 +-- Objektart: AX_Flurstueck Kennung: 11001 CREATE TABLE ax_flurstueck ( ogc_fid serial NOT NULL, - gml_id varchar NOT NULL, -- Datenbank-Tabelle interner Schlüssel + gml_id character(16) NOT NULL, -- Datenbank-Tabelle interner Schlüssel -- GID: AX_Flurstueck_Kerndaten -- 'Flurstück_Kerndaten' enthält Eigenschaften des Flurstücks, die auch für andere Flurstücksobjektarten gelten (z.B. Historisches Flurstück). - land integer, -- - gemarkungsnummer integer, -- - flurnummer integer, -- Teile des Flurstückskennzeichens - zaehler integer, -- (redundant zu flurstueckskennzeichen) - nenner varchar, -- tlw. nicht nummerische Werte in SN + land varchar, + gemarkungsnummer varchar, + flurnummer integer, + zaehler integer, + nenner varchar, flurstuecksfolge varchar, -- daraus abgeleitet: - flurstueckskennzeichen character(20), -- Inhalt rechts mit __ auf 20 aufgefüllt - amtlicheflaeche double precision, -- AFL - abweichenderrechtszustand varchar DEFAULT 'false', -- ARZ - rechtsbehelfsverfahren varchar DEFAULT 'false', -- RBV - zweifelhafterFlurstuecksnachweis varchar DEFAULT 'false', -- ZFM Boolean - zeitpunktderentstehung varchar, -- ZDE Inhalt jjjj-mm-tt besser Format date ? - gemeinde integer, + flurstueckskennzeichen character(20), -- Inhalt rechts mit __ auf 20 aufgefüllt + amtlicheflaeche double precision, -- AFL + abweichenderrechtszustand varchar DEFAULT 'false', -- ARZ + rechtsbehelfsverfahren varchar DEFAULT 'false', -- RBV + zweifelhafterFlurstuecksnachweis varchar DEFAULT 'false', -- ZFM + zeitpunktderentstehung varchar, -- ZDE Inhalt jjjj-mm-tt besser Format date ? + gemeinde varchar, -- GID: ENDE AX_Flurstueck_Kerndaten identifier varchar, - beginnt character(20), -- Timestamp der Entstehung - endet character(20), -- Timestamp des Untergangs + beginnt character(20), -- Timestamp der Entstehung + endet character(20), -- Timestamp des Untergangs advstandardmodell varchar[], sonstigesmodell varchar[], anlass varchar, name varchar[], - regierungsbezirk integer, - kreis integer, + regierungsbezirk varchar, + kreis varchar, stelle varchar, angabenzumabschnittflurstueck varchar[], kennungschluessel varchar[], flaechedesabschnitts double precision[], - angabenzumabschnittnummeraktenzeichen integer[], + angabenzumabschnittnummeraktenzeichen varchar[], angabenzumabschnittbemerkung varchar[], -- Beziehungen - beziehtsichaufflurstueck varchar[], - zeigtauf varchar[], - istgebucht varchar, - weistauf varchar[], - gehoertanteiligzu varchar[], + beziehtsichaufflurstueck character(16)[], + zeigtauf character(16)[], + istgebucht character(16), + weistauf character(16)[], + gehoertanteiligzu character(16)[], CONSTRAINT ax_flurstueck_pk PRIMARY KEY (ogc_fid) ); @@ -392,16 +377,14 @@ CREATE INDEX ax_flurstueck_kz ON ax_flurstueck USING btree (flurstueckskennzeich CREATE INDEX ax_flurstueck_wa ON ax_flurstueck USING gin (weistauf); CREATE INDEX ax_flurstueck_gaz ON ax_flurstueck USING gin (gehoertanteiligzu); -COMMENT ON COLUMN ax_flurstueck.name IS 'Array mit Fortführungsjahr und -Nummer'; - -COMMENT ON INDEX ax_flurstueck_kz IS 'Suche nach Flurstückskennzeichen'; -- B e s o n d e r e F l u r s t u e c k s g r e n z e -- ----------------------------------------------------- +-- Objektart: AX_BesondereFlurstuecksgrenze Kennung: 11002 CREATE TABLE ax_besondereflurstuecksgrenze ( ogc_fid serial NOT NULL, - gml_id varchar NOT NULL, + gml_id character(16) NOT NULL, identifier varchar, beginnt character(20), endet character(20), @@ -419,12 +402,12 @@ CREATE UNIQUE INDEX ax_besondereflurstuecksgrenze_gml ON ax_besondereflurstuecks CREATE INDEX ax_besondereflurstuecksgrenze_adfg ON ax_besondereflurstuecksgrenze USING gin (artderflurstuecksgrenze); - -- G r e n z p u n k t -- ---------------------------------------------- +-- Objektart: AX_Grenzpunkt Kennung: 11003 CREATE TABLE ax_grenzpunkt ( ogc_fid serial NOT NULL, - gml_id varchar NOT NULL, + gml_id character(16) NOT NULL, identifier varchar, beginnt character(20), endet character(20), @@ -445,7 +428,7 @@ CREATE TABLE ax_grenzpunkt ( relativehoehe double precision, -- Beziehung - zeigtauf varchar, + zeigtauf character(16), CONSTRAINT ax_grenzpunkt_pk PRIMARY KEY (ogc_fid) ); @@ -463,9 +446,10 @@ CREATE INDEX ax_grenzpunkt_za ON ax_grenzpunkt USING btree (zeigtauf); -- L a g e b e z e i c h n u n g o h n e H a u s n u m m e r -- ------------------------------------------------------------- +-- Objektart: AX_LagebezeichnungOhneHausnummer Kennung: 12001 CREATE TABLE ax_lagebezeichnungohnehausnummer ( ogc_fid serial NOT NULL, - gml_id varchar NOT NULL, + gml_id character(16) NOT NULL, identifier varchar, beginnt character(20), endet character(20), @@ -473,15 +457,15 @@ CREATE TABLE ax_lagebezeichnungohnehausnummer ( sonstigesmodell varchar[], anlass varchar, unverschluesselt varchar, -- Gewanne - land integer, -- Strassenschluessel - regierungsbezirk integer, - kreis integer, - gemeinde integer, - lage varchar, - zusatzZurLagebezeichnung varchar, + land varchar, + regierungsbezirk varchar, + kreis varchar, + gemeinde varchar, + lage varchar, -- Strassenschlüssel + zusatzzurlagebezeichnung varchar, - -- Beziehung - beschreibt varchar[], + -- Beziehungen + beschreibt character(16)[], gehoertzu varchar[], CONSTRAINT ax_lagebezeichnungohnehausnummer_pk PRIMARY KEY (ogc_fid) @@ -497,28 +481,29 @@ CREATE INDEX ax_lagebezeichnungohnehausnummer_key ON ax_lagebezeichnungoh -- L a g e b e z e i c h n u n g m i t H a u s n u m m e r -- ----------------------------------------------------------- +-- Objektart: AX_LagebezeichnungOhneHausnummer Kennung: 12001 CREATE TABLE ax_lagebezeichnungmithausnummer ( ogc_fid serial NOT NULL, - gml_id varchar NOT NULL, + gml_id character(16) NOT NULL, identifier varchar, beginnt character(20), endet character(20), advstandardmodell varchar[], sonstigesmodell varchar[], anlass varchar, - land integer, - regierungsbezirk integer, - kreis integer, - gemeinde integer, + land varchar, + regierungsbezirk varchar, + kreis varchar, + gemeinde varchar, lage varchar, -- Strassenschluessel hausnummer varchar, -- Nummer (blank) Zusatz -- Beziehungen - hat varchar[], - beziehtsichauf varchar, - beziehtsichauchauf varchar, - gehoertzu varchar[], - weistzum varchar, + hat character(16)[], + beziehtsichauf character(16), + beziehtsichauchauf character(16), + gehoertzu character(16)[], + weistzum character(16), CONSTRAINT ax_lagebezeichnungmithausnummer_pk PRIMARY KEY (ogc_fid) ); @@ -537,26 +522,27 @@ CREATE INDEX ax_lagebezeichnungmithausnummer_weistzum ON ax_lagebezeichnungmit -- L a g e b e z e i c h n u n g m i t P s e u d o n u m m e r -- -------------------------------------------------------------- +-- Objektart: AX_LagebezeichnungMitPseudonummer Kennung: 12003 -- Nebengebäude: lfd-Nummer eines Nebengebäudes zu einer (Pseudo-) Hausnummer CREATE TABLE ax_lagebezeichnungmitpseudonummer ( ogc_fid serial NOT NULL, - gml_id varchar NOT NULL, + gml_id character(16) NOT NULL, identifier varchar, beginnt character(20), endet character(20), advstandardmodell varchar[], sonstigesmodell varchar[], anlass varchar, - land integer, - regierungsbezirk integer, - kreis integer, - gemeinde integer, + land varchar, + regierungsbezirk varchar, + kreis varchar, + gemeinde varchar, lage varchar, -- Strassenschluessel pseudonummer varchar, laufendenummer varchar, -- leer, Zahl, "P2" -- Beziehung - gehoertzu varchar, + gehoertzu character(16), CONSTRAINT ax_lagebezeichnungmitpseudonummer_pk PRIMARY KEY (ogc_fid) ); @@ -567,37 +553,37 @@ CREATE UNIQUE INDEX ax_lagebezeichnungmitpseudonummer_gml ON ax_lagebezeichnungm CREATE INDEX ax_lagebezeichnungmitpseudonummer_gehoertzu ON ax_lagebezeichnungmitpseudonummer USING btree (gehoertzu); - -- Georeferenzierte G e b ä u d e a d r e s s e -- ---------------------------------------------- +-- Objektart: AX_GeoreferenzierteGebaeudeadresse Kennung: 12006 CREATE TABLE ax_georeferenziertegebaeudeadresse ( ogc_fid serial NOT NULL, - gml_id varchar NOT NULL, + gml_id character(16) NOT NULL, identifier varchar, beginnt character(20), -- Inhalt z.B. "2008-06-10T15:19:17Z" endet character(20), -- Inhalt z.B. "2008-06-10T15:19:17Z" - -- ISO: waere "2008-06-10 15:19:17-00", timestamp-Format wird nicht geladen, bleibt leer + advstandardmodell varchar[], sonstigesmodell varchar[], anlass varchar, - qualitaetsangaben integer, -- zb: "1000" (= Massstab) - -- -- -- Gemeindeschluessel, bestehend aus: - land integer, - regierungsbezirk integer, - kreis integer, - gemeinde integer, - ortsteil integer, - - postleitzahl varchar, -- mit fuehrenden Nullen - ortsnamepost varchar, -- - zusatzortsname varchar, -- - strassenname varchar, -- - strassenschluessel varchar, -- max. 5 Stellen - hausnummer varchar, -- meist 3 Stellen - adressierungszusatz varchar, -- Hausnummernzusatz-Buchstabe + qualitaetsangaben integer, + + land varchar, + regierungsbezirk varchar, + kreis varchar, + gemeinde varchar, + ortsteil varchar, + + postleitzahl varchar, + ortsnamepost varchar, + zusatzortsname varchar, + strassenname varchar, + strassenschluessel varchar, + hausnummer varchar, + adressierungszusatz varchar, -- Beziehung - hatauch varchar, + hatauch character(16), CONSTRAINT ax_georeferenziertegebaeudeadresse_pk PRIMARY KEY (ogc_fid) ); @@ -613,19 +599,19 @@ CREATE INDEX ax_georeferenziertegebaeudeadresse_adr ON ax_georeferenziertegebaeu --** Objektartengruppe: Angaben zum Netzpunkt -- =================================================================== - -- A u f n a h m e p u n k t -- ---------------------------------------------- +-- Objektart: AX_Aufnahmepunkt Kennung: 13001 CREATE TABLE ax_aufnahmepunkt ( ogc_fid serial NOT NULL, - gml_id varchar NOT NULL, + gml_id character(16) NOT NULL, identifier varchar, beginnt character(20), endet character(20), advstandardmodell varchar[], sonstigesmodell varchar[], anlass varchar, - punktkennung varchar, -- integer ist zu klein, + punktkennung varchar, land varchar, stelle varchar, sonstigeeigenschaft varchar[], @@ -633,7 +619,7 @@ CREATE TABLE ax_aufnahmepunkt ( relativehoehe double precision, -- Beziehung - hat varchar[], + hat character(16)[], CONSTRAINT ax_aufnahmepunkt_pk PRIMARY KEY (ogc_fid) ); @@ -647,9 +633,10 @@ CREATE INDEX ax_aufnahmepunkt_hat ON ax_aufnahmepunkt USING gin (hat); -- S i c h e r u n g s p u n k t -- ---------------------------------------------- +-- Objektart: AX_Sicherungspunkt Kennung: 13002 CREATE TABLE ax_sicherungspunkt ( ogc_fid serial NOT NULL, - gml_id varchar NOT NULL, + gml_id character(16) NOT NULL, identifier varchar, beginnt character(20), endet character(20), @@ -665,8 +652,8 @@ CREATE TABLE ax_sicherungspunkt ( relativehoehe double precision, -- Beziehungen - beziehtsichauf varchar, - gehoertzu varchar, + beziehtsichauf character(16), + gehoertzu character(16), CONSTRAINT ax_sicherungspunkt_pk PRIMARY KEY (ogc_fid) ); @@ -676,9 +663,10 @@ SELECT AddGeometryColumn('ax_sicherungspunkt','dummy',:alkis_epsg,'POINT',2); -- s o n s t i g e r V e r m e s s u n g s p u n k t -- --------------------------------------------------- +-- Objektart: AX_SonstigerVermessungspunkt Kennung: 13003 CREATE TABLE ax_sonstigervermessungspunkt ( ogc_fid serial NOT NULL, - gml_id varchar NOT NULL, + gml_id character(16) NOT NULL, identifier varchar, beginnt character(20), endet character(20), @@ -686,7 +674,7 @@ CREATE TABLE ax_sonstigervermessungspunkt ( sonstigesmodell varchar[], anlass varchar, vermarkung_marke integer, - punktkennung varchar, -- integer, + punktkennung varchar, art varchar, land varchar, stelle varchar, @@ -694,7 +682,7 @@ CREATE TABLE ax_sonstigervermessungspunkt ( relativehoehe double precision, -- Beziehung - hat varchar[], + hat character(16)[], CONSTRAINT ax_sonstigervermessungspunkt_pk PRIMARY KEY (ogc_fid) ); @@ -705,8 +693,7 @@ CREATE UNIQUE INDEX ax_sonstigervermessungspunkt_gml ON ax_sonstigervermessungsp CREATE INDEX ax_sonstigervermessungspunkt_hat ON ax_sonstigervermessungspunkt USING gin (hat); - ---AX_Netzpunkt +-- Objektart: AX_Netzpunkt Kennung: 13004 -- ** Tabelle bisher noch nicht generiert --** Objektartengruppe: Angaben zum Punktort @@ -716,9 +703,10 @@ CREATE INDEX ax_sonstigervermessungspunkt_hat ON ax_sonstigervermessungspunkt US -- P u n k t o r t AG -- ---------------------------------------------- +-- Objektart: AX_PunktortAG Kennung: 14002 CREATE TABLE ax_punktortag ( ogc_fid serial NOT NULL, - gml_id varchar NOT NULL, + gml_id character(16) NOT NULL, identifier varchar, beginnt character(20), endet character(20), @@ -735,7 +723,7 @@ CREATE TABLE ax_punktortag ( hinweise varchar, -- Beziehungen - istteilvon varchar, + istteilvon character(16), CONSTRAINT ax_punktortag_pk PRIMARY KEY (ogc_fid) ); @@ -747,12 +735,12 @@ CREATE UNIQUE INDEX ax_punktortag_gml ON ax_punktortag USING btree (gml_id,begin CREATE INDEX ax_punktortag_itv_idx ON ax_punktortag USING btree (istteilvon); - -- P u n k t o r t A U -- ---------------------------------------------- +-- Objektart: AX_PunktortAU Kennung: 14003 CREATE TABLE ax_punktortau ( ogc_fid serial NOT NULL, - gml_id varchar NOT NULL, + gml_id character(16) NOT NULL, identifier varchar, beginnt character(20), endet character(20), @@ -769,7 +757,7 @@ CREATE TABLE ax_punktortau ( hinweise varchar, -- Beziehung - istteilvon varchar, + istteilvon character(16), CONSTRAINT ax_punktortau_pk PRIMARY KEY (ogc_fid) ); @@ -781,12 +769,12 @@ CREATE UNIQUE INDEX ax_punktortau_gml ON ax_punktortau USING btree (gml_id,begin CREATE INDEX ax_punktortau_itv_idx ON ax_punktortau USING btree (istteilvon); - -- P u n k t o r t T A -- ---------------------------------------------- +-- Objektart: AX_PunktortTA Kennung: 14004 CREATE TABLE ax_punktortta ( ogc_fid serial NOT NULL, - gml_id varchar NOT NULL, + gml_id character(16) NOT NULL, identifier varchar, beginnt character(20), endet character(20), @@ -804,7 +792,7 @@ CREATE TABLE ax_punktortta ( hinweise varchar, -- Beziehung - istteilvon varchar, + istteilvon character(16), CONSTRAINT ax_punktortta_pk PRIMARY KEY (ogc_fid) ); @@ -817,15 +805,15 @@ CREATE INDEX ax_punktortta_endet_idx ON ax_punktortta USING btree (endet); CREATE INDEX ax_punktortta_itv_idx ON ax_punktortta USING btree (istteilvon); - --** Objektartengruppe: Fortführungsnachweis -- =================================================================== -- F o r t f u e h r u n g s n a c h w e i s / D e c k b l a t t -- -------------------------------------------------------------- +-- Objektart: AX_FortfuehrungsnachweisDeckblatt Kennung: 15001 CREATE TABLE ax_fortfuehrungsnachweisdeckblatt ( ogc_fid serial NOT NULL, - gml_id varchar NOT NULL, + gml_id character(16) NOT NULL, identifier varchar, beginnt character(20), endet character(20), @@ -834,8 +822,8 @@ CREATE TABLE ax_fortfuehrungsnachweisdeckblatt ( anlass varchar, uri varchar, fortfuehrungsfallnummernbereich varchar, - land integer, - gemarkungsnummer integer, + land varchar, + gemarkungsnummer varchar, laufendenummer integer, titel varchar, erstelltam varchar, -- Datum jjjj-mm-tt @@ -844,7 +832,7 @@ CREATE TABLE ax_fortfuehrungsnachweisdeckblatt ( bemerkung varchar, -- Beziehung - beziehtsichauf varchar, + beziehtsichauf character(16), CONSTRAINT ax_fortfuehrungsnachweisdeckblatt_pk PRIMARY KEY (ogc_fid) ); @@ -854,9 +842,10 @@ SELECT AddGeometryColumn('ax_fortfuehrungsnachweisdeckblatt','dummy',:alkis_epsg -- F o r t f u e h r u n g s f a l l -- --------------------------------- +-- Objektart: AX_Fortfuehrungsfall Kennung: 15002 CREATE TABLE ax_fortfuehrungsfall ( ogc_fid serial NOT NULL, - gml_id varchar NOT NULL, + gml_id character(16) NOT NULL, identifier varchar, beginnt character(20), endet character(20), @@ -870,9 +859,9 @@ CREATE TABLE ax_fortfuehrungsfall ( anzahlderfortfuehrungsmitteilungen integer, -- Beziehungen - zeigtaufaltesflurstueck varchar[], -- Format wie flurstueckskennzeichen (20) als Array - zeigtaufneuesflurstueck varchar[], -- Format wie flurstueckskennzeichen (20) als Array - bemerkung varchar, + zeigtaufaltesflurstueck character(16)[], + zeigtaufneuesflurstueck character(16)[], + bemerkung character(16), CONSTRAINT ax_fortfuehrungsfall_pk PRIMARY KEY (ogc_fid) ); @@ -880,15 +869,15 @@ CREATE TABLE ax_fortfuehrungsfall ( SELECT AddGeometryColumn('ax_fortfuehrungsfall','dummy',:alkis_epsg,'POINT',2); - --** Objektartengruppe: Angaben zur Reservierung -- =================================================================== -- R e s e r v i e r u n g -- ----------------------- +-- Objektart: AX_Reservierung Kennung: 16001 CREATE TABLE ax_reservierung ( ogc_fid serial NOT NULL, - gml_id varchar NOT NULL, + gml_id character(16) NOT NULL, identifier varchar, beginnt character(20), endet character(20), @@ -908,12 +897,12 @@ CREATE TABLE ax_reservierung ( SELECT AddGeometryColumn('ax_reservierung','dummy',:alkis_epsg,'POINT',2); - -- P u n k t k e n n u n g U n t e r g e g a n g e n -- --------------------------------------------------- +-- Objektart: AX_PunktkennungUntergegangen Kennung: 16002 CREATE TABLE ax_punktkennunguntergegangen ( ogc_fid serial NOT NULL, - gml_id varchar NOT NULL, + gml_id character(16) NOT NULL, identifier varchar, beginnt character(20), endet character(20), @@ -927,12 +916,21 @@ CREATE TABLE ax_punktkennunguntergegangen ( SELECT AddGeometryColumn('ax_punktkennunguntergegangen','dummy',:alkis_epsg,'POINT',2); + +-- Objektart: AX_PunktkennungVergleichend Kennung: 16003 +-- 'Punktkennung vergleichend' (NREO) enthält vorläufige Punktkennungen. + + +--** Objektartengruppe: Angaben zur Historie +-- =================================================================== + -- Historisches Flurstück (ALKIS) -- ------------------------------ +-- Objektart: AX_HistorischesFlurstueck Kennung: 17001 -- Die "neue" Historie, die durch Fortführungen innerhalb von ALKIS entstanden ist. CREATE TABLE ax_historischesflurstueck ( ogc_fid serial NOT NULL, - gml_id varchar NOT NULL, + gml_id character(16) NOT NULL, identifier varchar, beginnt character(20), endet character(20), @@ -944,32 +942,32 @@ CREATE TABLE ax_historischesflurstueck ( -- GID: AX_Flurstueck_Kerndaten -- 'Flurstück_Kerndaten' enthält Eigenschaften des Flurstücks, die auch für andere Flurstücksobjektarten gelten (z.B. Historisches Flurstück). - land integer, -- - gemarkungsnummer integer, -- - flurnummer integer, -- Teile des Flurstückskennzeichens - zaehler integer, -- (redundant zu flurstueckskennzeichen) - nenner varchar, -- tlw. nicht nummerische Werte in SN + land varchar, + gemarkungsnummer varchar, + flurnummer integer, -- Teile des Flurstückskennzeichens + zaehler varchar, -- (redundant zu flurstueckskennzeichen) + nenner varchar, -- tlw. nicht nummerische Werte in SN -- daraus abgeleitet: flurstueckskennzeichen character(20), -- Inhalt rechts mit __ auf 20 aufgefüllt amtlicheflaeche double precision, -- AFL abweichenderrechtszustand varchar DEFAULT 'false', -- ARZ - zweifelhafterflurstuecksnachweis varchar DEFAULT 'false', -- ZFM Boolean + zweifelhafterflurstuecksnachweis varchar DEFAULT 'false', -- ZFM rechtsbehelfsverfahren varchar DEFAULT 'false', -- RBV - zeitpunktderentstehung character(10), -- ZDE Inhalt jjjj-mm-tt besser Format date ? - zeitpunktderhistorisierung varchar, - gemeinde integer, + zeitpunktderentstehung character(10), -- ZDE Inhalt jjjj-mm-tt besser Format date ? + zeitpunktderhistorisierung character(10), + gemeinde varchar, -- GID: ENDE AX_Flurstueck_Kerndaten - regierungsbezirk integer, - kreis integer, + regierungsbezirk varchar, + kreis varchar, vorgaengerflurstueckskennzeichen varchar[], nachfolgerflurstueckskennzeichen varchar[], blattart integer, buchungsart varchar, buchungsblattkennzeichen varchar[], - bezirk integer, + bezirk varchar, buchungsblattnummermitbuchstabenerweiterung varchar[], - laufendenummerderbuchungsstelle varchar, -- tlw. nicht nummerische Werte in SN + laufendenummerderbuchungsstelle varchar, -- tlw. nicht nummerische Werte in SN CONSTRAINT ax_historischesflurstueck_pk PRIMARY KEY (ogc_fid) ); @@ -983,8 +981,6 @@ CREATE INDEX ax_historischesflurstueck_kennz ON ax_historischesflurstueck U COMMENT ON INDEX ax_historischesflurstueck_kennz IS 'Suche nach Flurstückskennzeichen'; -- Suche nach Vorgänger / Nachfolger --- ++ Welche Methode für ein Array? --- Wirkt das überhaupt bei der Suche nach einem einzelnen Wert aus dem Array? CREATE INDEX idx_histfs_vor ON ax_historischesflurstueck USING btree (vorgaengerflurstueckskennzeichen); CREATE INDEX idx_histfs_nach ON ax_historischesflurstueck USING btree (nachfolgerflurstueckskennzeichen); @@ -995,6 +991,8 @@ COMMENT ON INDEX idx_histfs_nach IS 'Suchen nach Nachfolger-Flurstück'; -- H i s t o r i s c h e s F l u r s t ü c k A L B -- --------------------------------------------------- +-- Objektart: AX_HistorischesFlurstueckALB Kennung: 17002 + -- Variante A: "Standardhistorie" (statt ax_historischesflurstueckohneraumbezug) -- Die "alte" Historie, die schon aus dem Vorgängerverfahren ALB übernommen wurde. @@ -1002,7 +1000,7 @@ COMMENT ON INDEX idx_histfs_nach IS 'Suchen nach Nachfolger-Flurstück'; CREATE TABLE ax_historischesflurstueckalb ( ogc_fid serial NOT NULL, - gml_id varchar NOT NULL, + gml_id character(16) NOT NULL, identifier varchar, beginnt character(20), endet character(20), @@ -1013,27 +1011,27 @@ CREATE TABLE ax_historischesflurstueckalb ( -- GID: AX_Flurstueck_Kerndaten -- 'Flurstück_Kerndaten' enthält Eigenschaften des Flurstücks, die auch für andere Flurstücksobjektarten gelten (z.B. Historisches Flurstück). - land integer, -- - gemarkungsnummer integer, -- - flurnummer integer, -- Teile des Flurstückskennzeichens - zaehler integer, -- (redundant zu flurstueckskennzeichen) - nenner varchar, -- tlw. nicht nummerische Werte in SN + land varchar, + gemarkungsnummer varchar, + flurnummer integer, -- Teile des Flurstückskennzeichens + zaehler integer, -- (redundant zu flurstueckskennzeichen) + nenner varchar, -- tlw. nicht nummerische Werte in SN flurstuecksfolge varchar, -- daraus abgeleitet: - flurstueckskennzeichen character(20), -- Inhalt rechts mit __ auf 20 aufgefüllt - - amtlicheflaeche double precision, -- AFL - abweichenderrechtszustand varchar DEFAULT 'false', -- ARZ - zweifelhafterFlurstuecksnachweis varchar DEFAULT 'false', -- ZFM Boolean - rechtsbehelfsverfahren varchar DEFAULT 'false', -- RBV - zeitpunktderentstehung character(10), -- ZDE jjjj-mm-tt - gemeinde integer, + flurstueckskennzeichen character(20), -- Inhalt rechts mit __ auf 20 aufgefüllt + + amtlicheflaeche double precision, -- AFL + abweichenderrechtszustand varchar DEFAULT 'false', -- ARZ + zweifelhafterFlurstuecksnachweis varchar DEFAULT 'false', -- ZFM + rechtsbehelfsverfahren varchar DEFAULT 'false', -- RBV + zeitpunktderentstehung character(10), -- ZDE jjjj-mm-tt + gemeinde varchar, -- GID: ENDE AX_Flurstueck_Kerndaten blattart integer, buchungsart varchar[], buchungsblattkennzeichen varchar[], - bezirk integer, + bezirk varchar, buchungsblattnummermitbuchstabenerweiterung varchar[], laufendenummerderbuchungsstelle varchar[], zeitpunktderentstehungdesbezugsflurstuecks varchar, @@ -1048,8 +1046,8 @@ CREATE TABLE ax_historischesflurstueckalb ( SELECT AddGeometryColumn('ax_historischesflurstueckalb','dummy',:alkis_epsg,'POINT',2); CREATE UNIQUE INDEX ax_historischesflurstueckalb_gml ON ax_historischesflurstueckalb USING btree (gml_id,beginnt); -CREATE INDEX idx_histfsalb_vor ON ax_historischesflurstueckalb USING btree (vorgaengerflurstueckskennzeichen /* ASC */); -CREATE INDEX idx_histfsalb_nach ON ax_historischesflurstueckalb USING btree (nachfolgerflurstueckskennzeichen /* ASC */); +CREATE INDEX idx_histfsalb_vor ON ax_historischesflurstueckalb USING btree (vorgaengerflurstueckskennzeichen); +CREATE INDEX idx_histfsalb_nach ON ax_historischesflurstueckalb USING btree (nachfolgerflurstueckskennzeichen); COMMENT ON INDEX idx_histfsalb_vor IS 'Suchen nach Vorgänger-Flurstück'; COMMENT ON INDEX idx_histfsalb_nach IS 'Suchen nach Nachfolger-Flurstück'; @@ -1057,13 +1055,13 @@ COMMENT ON INDEX idx_histfsalb_nach IS 'Suchen nach Nachfolger-Flurstück'; COMMENT ON COLUMN ax_historischesflurstueck.gemeinde IS 'GDZ "Gemeindekennzeichen zur Zuordnung der Flurstücksdaten zu einer Gemeinde.'; - ---** Objektartengruppe: Angaben zur Historie --- =================================================================== -- Variante B: "Vollhistorie" (statt ax_historischesflurstueckalb) +-- H i s t o r i s c h e s F l u r s t ü c k O h n e R a u m b e z u g +-- ------------------------------------------------------------------------ +-- Objektart: AX_HistorischesFlurstueckOhneRaumbezug Kennung: 17003 CREATE TABLE ax_historischesflurstueckohneraumbezug ( ogc_fid serial NOT NULL, - gml_id varchar NOT NULL, + gml_id character(16) NOT NULL, identifier varchar, beginnt character(20), endet character(20), @@ -1074,29 +1072,29 @@ CREATE TABLE ax_historischesflurstueckohneraumbezug ( -- GID: AX_Flurstueck_Kerndaten -- 'Flurstück_Kerndaten' enthält Eigenschaften des Flurstücks, die auch für andere Flurstücksobjektarten gelten (z.B. Historisches Flurstück). - land integer, -- - gemarkungsnummer integer, -- - flurnummer integer, -- Teile des Flurstückskennzeichens - zaehler integer, -- (redundant zu flurstueckskennzeichen) - nenner varchar, -- tlw. nicht nummerische Werte in SN + land varchar, + gemarkungsnummer varchar, + flurnummer integer, -- Teile des Flurstückskennzeichens + zaehler varchar, -- (redundant zu flurstueckskennzeichen) + nenner varchar, -- tlw. nicht nummerische Werte in SN -- daraus abgeleitet: - flurstueckskennzeichen character(20), -- Inhalt rechts mit __ auf 20 aufgefüllt - amtlicheflaeche double precision, -- AFL - abweichenderrechtszustand varchar, -- ARZ - zweifelhafterFlurstuecksnachweis varchar, -- ZFM Boolean - rechtsbehelfsverfahren integer, -- RBV - zeitpunktderentstehung varchar, -- ZDE Inhalt jjjj-mm-tt besser Format date ? - gemeinde integer, + flurstueckskennzeichen character(20), -- Inhalt rechts mit __ auf 20 aufgefüllt + amtlicheflaeche double precision, -- AFL + abweichenderrechtszustand varchar, -- ARZ + zweifelhafterFlurstuecksnachweis varchar, -- ZFM + rechtsbehelfsverfahren varchar, -- RBV + zeitpunktderentstehung varchar, -- ZDE Inhalt jjjj-mm-tt besser Format date ? + gemeinde varchar, -- GID: ENDE AX_Flurstueck_Kerndaten nachfolgerflurstueckskennzeichen varchar[], vorgaengerflurstueckskennzeichen varchar[], -- Beziehungen - gehoertanteiligzu varchar[], - weistauf varchar[], - zeigtauf varchar[], - istgebucht varchar, + gehoertanteiligzu character(16)[], + weistauf character(16)[], + zeigtauf character(16)[], + istgebucht character(16), CONSTRAINT ax_historischesflurstueckohneraumbezug_pk PRIMARY KEY (ogc_fid) ); @@ -1126,12 +1124,12 @@ COMMENT ON COLUMN ax_historischesflurstueckohneraumbezug.name IS 'Array mit Fort -- ** Objektartengruppe: Personen- und Bestandsdaten -- =================================================================== --- 21001 P e r s o n +-- P e r s o n -- ---------------------------------------------- --- Buchwerk. Keine Geometrie +-- Objektart: AX_Person Kennung: 21001 CREATE TABLE ax_person ( ogc_fid serial NOT NULL, - gml_id varchar NOT NULL, + gml_id character(16) NOT NULL, identifier varchar, beginnt character(20), endet character(20), @@ -1147,14 +1145,14 @@ CREATE TABLE ax_person ( akademischergrad varchar, -- Beziehungen - hat varchar[], - weistauf varchar[], - wirdvertretenvon varchar[], - gehoertzu varchar[], - uebtaus varchar[], - besitzt varchar[], - zeigtauf varchar, - benennt varchar[], + hat character(16)[], + weistauf character(16)[], + wirdvertretenvon character(16)[], + gehoertzu character(16)[], + uebtaus character(16)[], + besitzt character(16)[], + zeigtauf character(16), + benennt character(16)[], CONSTRAINT ax_person_pk PRIMARY KEY (ogc_fid) ); @@ -1174,14 +1172,16 @@ CREATE INDEX ax_person_ben ON ax_person USING gin (benennt); --AX_Personengruppe +-- Objektart: AX_Personengruppe Kennung: 21002 +-- 'Personengruppe' ist die Zusammenfassung von Personen unter einem Ordnungsbegriff. -- ** Tabelle bisher noch nicht generiert -- A n s c h r i f t -- ---------------------------------------------- --- Buchwerk, keine Geometrie. +-- Objektart: AX_Anschrift Kennung: 21003 CREATE TABLE ax_anschrift ( ogc_fid serial NOT NULL, - gml_id varchar NOT NULL, + gml_id character(16) NOT NULL, identifier varchar, beginnt character(20), endet character(20), @@ -1199,11 +1199,11 @@ CREATE TABLE ax_anschrift ( weitereAdressen varchar[], telefon varchar, fax varchar, - organisationName varchar, + organisationname varchar, -- Beziehungen - beziehtsichauf varchar[], - gehoertzu varchar[], + beziehtsichauf character(16)[], + gehoertzu character(16)[], CONSTRAINT ax_anschrift_pk PRIMARY KEY (ogc_fid) ); @@ -1217,9 +1217,10 @@ CREATE INDEX ax_anschrift_gz ON ax_anschrift USING gin (gehoertzu); -- V e r w a l t u n g -- ------------------- +-- Objektart: AX_Verwaltung Kennung: 21004 CREATE TABLE ax_verwaltung ( ogc_fid serial NOT NULL, - gml_id varchar NOT NULL, + gml_id character(16) NOT NULL, identifier varchar, beginnt character(20), endet character(20), @@ -1228,8 +1229,8 @@ CREATE TABLE ax_verwaltung ( anlass varchar, -- Beziehungen - beziehtsichauf varchar[], - haengtan varchar, + beziehtsichauf character(16)[], + haengtan character(16), CONSTRAINT ax_verwaltung_pk PRIMARY KEY (ogc_fid) ); @@ -1239,9 +1240,10 @@ SELECT AddGeometryColumn('ax_verwaltung','dummy',:alkis_epsg,'POINT',2); -- V e r t r e t u n g -- ------------------- +-- Objektart: AX_Vertretung Kennung: 21005 CREATE TABLE ax_vertretung ( ogc_fid serial NOT NULL, - gml_id varchar NOT NULL, + gml_id character(16) NOT NULL, identifier varchar, beginnt character(20), endet character(20), @@ -1250,9 +1252,9 @@ CREATE TABLE ax_vertretung ( anlass varchar, -- Beziehung - vertritt varchar[], - haengtan varchar, - beziehtsichauf varchar[], + vertritt character(16)[], + haengtan character(16), + beziehtsichauf character(16)[], CONSTRAINT ax_vertretung_pk PRIMARY KEY (ogc_fid) ); @@ -1261,14 +1263,12 @@ SELECT AddGeometryColumn('ax_vertretung','dummy',:alkis_epsg,'POINT',2); - - -- N a m e n s n u m m e r -- ---------------------------------------------- --- Buchwerk. Keine Geometrie +-- AX_Namensnummer Kennung: 21006 CREATE TABLE ax_namensnummer ( ogc_fid serial NOT NULL, - gml_id varchar NOT NULL, + gml_id character(16) NOT NULL, identifier varchar, beginnt character(20), endet character(20), @@ -1284,10 +1284,10 @@ CREATE TABLE ax_namensnummer ( beschriebderrechtsgemeinschaft varchar, -- Beziehungen - bestehtausrechtsverhaeltnissenzu varchar, - istbestandteilvon varchar, - hatvorgaenger varchar[], - benennt varchar, + bestehtausrechtsverhaeltnissenzu character(16), + istbestandteilvon character(16), + hatvorgaenger character(16)[], + benennt character(16), CONSTRAINT ax_namensnummer_pk PRIMARY KEY (ogc_fid) ); @@ -1305,9 +1305,10 @@ CREATE INDEX ax_namensnummer_ben ON ax_namensnummer USING btree (benennt); -- B u c h u n g s b l a t t -- ------------------------- +-- Objektart: AX_Buchungsblatt Kennung: 21007 CREATE TABLE ax_buchungsblatt ( ogc_fid serial NOT NULL, - gml_id varchar NOT NULL, + gml_id character(16) NOT NULL, identifier varchar, beginnt character(20), endet character(20), @@ -1315,14 +1316,14 @@ CREATE TABLE ax_buchungsblatt ( sonstigesmodell varchar[], anlass varchar, buchungsblattkennzeichen varchar, - land integer, - bezirk integer, + land varchar, + bezirk varchar, buchungsblattnummermitbuchstabenerweiterung varchar, blattart varchar, art varchar, -- Beziehung - bestehtaus varchar[], + bestehtaus character(16)[], CONSTRAINT ax_buchungsblatt_pk PRIMARY KEY (ogc_fid) ); @@ -1334,12 +1335,12 @@ CREATE INDEX ax_buchungsblatt_lbb ON ax_buchungsblatt USING btree (land,bezirk,b CREATE INDEX ax_buchungsblatt_bsa ON ax_buchungsblatt USING gin (bestehtaus); - -- B u c h u n g s s t e l l e -- ----------------------------- +-- Objektart: AX_Buchungsstelle Kennung: 21008 CREATE TABLE ax_buchungsstelle ( ogc_fid serial NOT NULL, - gml_id varchar NOT NULL, + gml_id character(16) NOT NULL, identifier varchar, beginnt character(20), endet character(20), @@ -1356,15 +1357,15 @@ CREATE TABLE ax_buchungsstelle ( buchungstext varchar, -- Beziehungen - istbestandteilvon varchar, - durch varchar[], - verweistauf varchar[], - grundstueckbestehtaus varchar[], - zu varchar[], - an varchar[], - hatvorgaenger varchar[], - wirdverwaltetvon varchar, - beziehtsichauf varchar[], + istbestandteilvon character(16), + durch character(16)[], + verweistauf character(16)[], + grundstueckbestehtaus character(16)[], + zu character(16)[], + an character(16)[], + hatvorgaenger character(16)[], + wirdverwaltetvon character(16), + beziehtsichauf character(16)[], CONSTRAINT ax_buchungsstelle_pk PRIMARY KEY (ogc_fid) ); @@ -1393,10 +1394,10 @@ CREATE INDEX ax_buchungsstelle_bsa ON ax_buchungsstelle USING gin (beziehtsich -- G e b ä u d e -- --------------- --- Kennung 31001 +-- Objektart: AX_Gebaeude Kennung: 31001 CREATE TABLE ax_gebaeude ( ogc_fid serial NOT NULL, - gml_id varchar NOT NULL, + gml_id character(16) NOT NULL, identifier varchar, beginnt character(20), endet character(20), @@ -1409,13 +1410,13 @@ CREATE TABLE ax_gebaeude ( bauweise integer, anzahlderoberirdischengeschosse integer, anzahlderunterirdischengeschosse integer, - hochhaus varchar, -- "true"/"false", meist aber leer + hochhaus varchar, -- "true"/"false", meist leer objekthoehe double precision, dachform integer, zustand integer, - geschossflaeche integer, - grundflaeche integer, - umbauterraum integer, + geschossflaeche double precision, + grundflaeche double precision, + umbauterraum double precision, baujahr integer, lagezurerdoberflaeche integer, dachart varchar, @@ -1427,11 +1428,11 @@ CREATE TABLE ax_gebaeude ( individualname varchar, -- Beziehungen - gehoertzu varchar, - hat varchar, - gehoert varchar[], - zeigtauf varchar[], - haengtzusammenmit varchar, + gehoertzu character(16), + hat character(16), + gehoert character(16)[], + zeigtauf character(16)[], + haengtzusammenmit character(16), CONSTRAINT ax_gebaeude_pk PRIMARY KEY (ogc_fid) ); @@ -1448,12 +1449,12 @@ CREATE INDEX ax_gebaeude_hzm ON ax_gebaeude USING btree (haengtzusammenmit); - -- B a u t e i l -- ------------- +-- Objektart: AX_Bauteil Kennung: 31002 CREATE TABLE ax_bauteil ( ogc_fid serial NOT NULL, - gml_id varchar NOT NULL, + gml_id character(16) NOT NULL, identifier varchar, beginnt character(20), endet character(20), @@ -1478,9 +1479,10 @@ CREATE UNIQUE INDEX ax_bauteil_gml ON ax_bauteil USING btree (gml_id,beginnt); -- B e s o n d e r e G e b ä u d e l i n i e -- ---------------------------------------------- +-- Objektart: AX_BesondereGebaeudelinie Kennung: 31003 CREATE TABLE ax_besonderegebaeudelinie ( ogc_fid serial NOT NULL, - gml_id varchar NOT NULL, + gml_id character(16) NOT NULL, identifier varchar, beginnt character(20), endet character(20), @@ -1501,9 +1503,10 @@ CREATE INDEX ax_besonderegebaeudelinie_bes ON ax_besonderegebaeudelinie USING gi -- F i r s t l i n i e -- ----------------------------------------------------- +-- Objektart: AX_Firstlinie Kennung: 31004 CREATE TABLE ax_firstlinie ( ogc_fid serial NOT NULL, - gml_id varchar NOT NULL, + gml_id character(16) NOT NULL, identifier varchar, beginnt character(20), endet character(20), @@ -1524,9 +1527,10 @@ CREATE UNIQUE INDEX ax_firstlinie_gml ON ax_firstlinie USING btree (gml_id,begin -- B e s o n d e r e r G e b ä u d e p u n k t -- ----------------------------------------------- +-- Objektart: AX_BesondererGebaeudepunkt Kennung: 31005 CREATE TABLE ax_besonderergebaeudepunkt ( ogc_fid serial NOT NULL, - gml_id varchar NOT NULL, + gml_id character(16) NOT NULL, identifier varchar, beginnt character(20), endet character(20), @@ -1547,13 +1551,11 @@ SELECT AddGeometryColumn('ax_besonderergebaeudepunkt','dummy',:alkis_epsg,'POINT CREATE UNIQUE INDEX ax_besonderergebaeudepunkt_gml ON ax_besonderergebaeudepunkt USING btree (gml_id,beginnt); - ---AX_Nutzung_Gebaeude --- ** Tabelle bisher noch nicht generiert - --*** ############################################################ --*** Objektbereich: Tatsächliche Nutzung (AX_TatsaechlicheNutzung) --*** ############################################################ +-- Objektart: AX_TatsaechlicheNutzung Kennung: 40001 +-- abstrakte Oberklasse für alle tatsächlichen Nutzungen -- Gemeinsame Attribute: -- DLU datumDerLetztenUeberpruefung DateTime @@ -1564,9 +1566,10 @@ CREATE UNIQUE INDEX ax_besonderergebaeudepunkt_gml ON ax_besonderergebaeudepunkt -- W o h n b a u f l ä c h e -- ---------------------------------------------- +-- Objektart: AX_Wohnbauflaeche Kennung: 41001 CREATE TABLE ax_wohnbauflaeche ( ogc_fid serial NOT NULL, - gml_id varchar NOT NULL, + gml_id character(16) NOT NULL, identifier varchar, beginnt character(20), endet character(20), @@ -1589,9 +1592,10 @@ CREATE UNIQUE INDEX ax_wohnbauflaeche_gml ON ax_wohnbauflaeche USING btree (gml_ -- Objektart: I n d u s t r i e - u n d G e w e r b e f l ä c h e -- -------------------------------------------------------------------- +-- Objektart: AX_IndustrieUndGewerbeflaeche Kennung: 41002 CREATE TABLE ax_industrieundgewerbeflaeche ( ogc_fid serial NOT NULL, - gml_id varchar NOT NULL, + gml_id character(16) NOT NULL, identifier varchar, beginnt character(20), endet character(20), @@ -1617,9 +1621,10 @@ CREATE UNIQUE INDEX ax_industrieundgewerbeflaeche_gml ON ax_industrieundgewerbef -- H a l d e -- ---------------------------------------------- +-- Objektart: AX_Halde Kennung: 41003 CREATE TABLE ax_halde ( ogc_fid serial NOT NULL, - gml_id varchar NOT NULL, + gml_id character(16) NOT NULL, identifier varchar, beginnt character(20), endet character(20), @@ -1638,13 +1643,12 @@ CREATE INDEX ax_halde_geom_idx ON ax_halde USING gist (wkb_geometry); CREATE UNIQUE INDEX ax_halde_gml ON ax_halde USING btree (gml_id,beginnt); - -- B e r b a u b e t r i e b -- ------------------------- --- 'Bergbaubetrieb' ist eine Fläche, die für die Förderung des Abbaugutes unter Tage genutzt wird. +-- Objektart: AX_Bergbaubetrieb Kennung: 41004 CREATE TABLE ax_bergbaubetrieb ( ogc_fid serial NOT NULL, - gml_id varchar NOT NULL, + gml_id character(16) NOT NULL, identifier varchar, beginnt character(20), endet character(20), @@ -1664,12 +1668,12 @@ CREATE INDEX ax_bergbaubetrieb_geom_idx ON ax_bergbaubetrieb USING gist (wkb_ CREATE UNIQUE INDEX ax_bergbaubetrieb_gml ON ax_bergbaubetrieb USING btree (gml_id,beginnt); - -- T a g e b a u / G r u b e / S t e i n b r u c h -- --------------------------------------------------- +-- Objektart: AX_TagebauGrubeSteinbruch Kennung: 41005 CREATE TABLE ax_tagebaugrubesteinbruch ( ogc_fid serial NOT NULL, - gml_id varchar NOT NULL, + gml_id character(16) NOT NULL, identifier varchar, beginnt character(20), endet character(20), @@ -1693,9 +1697,10 @@ CREATE UNIQUE INDEX ax_tagebaugrubesteinbruchb_gml ON ax_tagebaugrubesteinbruch -- F l ä c h e n g e m i s c h t e r N u t z u n g -- ----------------------------------------------------- +-- Objektart: AX_FlaecheGemischterNutzung Kennung: 41006 CREATE TABLE ax_flaechegemischternutzung ( ogc_fid serial NOT NULL, - gml_id varchar NOT NULL, + gml_id character(16) NOT NULL, identifier varchar, beginnt character(20), endet character(20), @@ -1715,12 +1720,12 @@ CREATE INDEX ax_flaechegemischternutzung_geom_idx ON ax_flaechegemischternutzung CREATE UNIQUE INDEX ax_flaechegemischternutzung_gml ON ax_flaechegemischternutzung USING btree (gml_id,beginnt); - -- F l ä c h e b e s o n d e r e r f u n k t i o n a l e r P r ä g u n g -- ------------------------------------------------------------------------------- +-- Objektart: AX_FlaecheBesondererFunktionalerPraegung Kennung: 41007 CREATE TABLE ax_flaechebesondererfunktionalerpraegung ( ogc_fid serial NOT NULL, - gml_id varchar NOT NULL, + gml_id character(16) NOT NULL, identifier varchar, beginnt character(20), endet character(20), @@ -1740,12 +1745,12 @@ CREATE INDEX ax_flaechebesondererfunktionalerpraegung_geom_idx ON ax_flaechebeso CREATE UNIQUE INDEX ax_flaechebesondererfunktionalerpraegung_gml ON ax_flaechebesondererfunktionalerpraegung USING btree (gml_id,beginnt); - -- S p o r t - , F r e i z e i t - u n d E r h o h l u n g s f l ä c h e -- --------------------------------------------------------------------------- +-- Objektart: AX_SportFreizeitUndErholungsflaeche Kennung: 41008 CREATE TABLE ax_sportfreizeitunderholungsflaeche ( ogc_fid serial NOT NULL, - gml_id varchar NOT NULL, + gml_id character(16) NOT NULL, identifier varchar, beginnt character(20), endet character(20), @@ -1765,12 +1770,12 @@ CREATE INDEX ax_sportfreizeitunderholungsflaeche_geom_idx ON ax_sportfreizeitund CREATE UNIQUE INDEX ax_sportfreizeitunderholungsflaeche_gml ON ax_sportfreizeitunderholungsflaeche USING btree (gml_id,beginnt); - -- F r i e d h o f -- ---------------- +-- Objektart: AX_Friedhof Kennung: 41009 CREATE TABLE ax_friedhof ( ogc_fid serial NOT NULL, - gml_id varchar NOT NULL, + gml_id character(16) NOT NULL, identifier varchar, beginnt character(20), endet character(20), @@ -1789,15 +1794,15 @@ CREATE INDEX ax_friedhof_geom_idx ON ax_friedhof USING gist (wkb_geometry); CREATE UNIQUE INDEX ax_friedhof_gml ON ax_friedhof USING btree (gml_id,beginnt); - --** Objektartengruppe: Verkehr (in Objektbereich: Tatsächliche Nutzung) -- =================================================================== -- S t r a s s e n v e r k e h r -- ---------------------------------------------- +-- Objektart: AX_Strassenverkehr Kennung: 42001 CREATE TABLE ax_strassenverkehr ( ogc_fid serial NOT NULL, - gml_id varchar NOT NULL, + gml_id character(16) NOT NULL, identifier varchar, beginnt character(20), endet character(20), @@ -1808,10 +1813,10 @@ CREATE TABLE ax_strassenverkehr ( name varchar, zweitname varchar, zustand integer, - land integer, - regierungsbezirk integer, - kreis integer, - gemeinde integer, + land varchar, + regierungsbezirk varchar, + kreis varchar, + gemeinde varchar, lage varchar, unverschluesselt varchar, CONSTRAINT ax_strassenverkehr_pk PRIMARY KEY (ogc_fid) @@ -1823,12 +1828,12 @@ CREATE INDEX ax_strassenverkehr_geom_idx ON ax_strassenverkehr USING gist (wkb_g CREATE UNIQUE INDEX ax_strassenverkehr_gml ON ax_strassenverkehr USING btree (gml_id,beginnt); - -- W e g -- ---------------------------------------------- +-- Objektart: AX_Strassenverkehr Kennung: 42001 CREATE TABLE ax_weg ( ogc_fid serial NOT NULL, - gml_id varchar NOT NULL, + gml_id character(16) NOT NULL, identifier varchar, beginnt character(20), endet character(20), @@ -1838,10 +1843,10 @@ CREATE TABLE ax_weg ( funktion integer, name varchar, bezeichnung varchar, - land integer, - regierungsbezirk integer, - kreis integer, - gemeinde integer, + land varchar, + regierungsbezirk varchar, + kreis varchar, + gemeinde varchar, lage varchar, unverschluesselt varchar, CONSTRAINT ax_weg_pk PRIMARY KEY (ogc_fid) @@ -1853,12 +1858,12 @@ CREATE INDEX ax_weg_geom_idx ON ax_weg USING gist (wkb_geometry); CREATE UNIQUE INDEX ax_weg_gml ON ax_weg USING btree (gml_id,beginnt); - -- P l a t z -- ---------------------------------------------- +-- Objektart: AX_Platz Kennung: 42009 CREATE TABLE ax_platz ( ogc_fid serial NOT NULL, - gml_id varchar NOT NULL, + gml_id character(16) NOT NULL, identifier varchar, beginnt character(20), endet character(20), @@ -1868,10 +1873,10 @@ CREATE TABLE ax_platz ( funktion integer, name varchar, zweitname varchar, - land integer, - regierungsbezirk integer, - kreis integer, - gemeinde integer, + land varchar, + regierungsbezirk varchar, + kreis varchar, + gemeinde varchar, lage varchar, -- Straßenschlüssel unverschluesselt varchar, -- Gewanne? CONSTRAINT ax_platz_pk PRIMARY KEY (ogc_fid) @@ -1883,12 +1888,12 @@ CREATE INDEX ax_platz_geom_idx ON ax_platz USING gist (wkb_geometry); CREATE UNIQUE INDEX ax_platz_gml ON ax_platz USING btree (gml_id,beginnt); - -- B a h n v e r k e h r -- ---------------------------------------------- +-- Objektart: AX_Bahnverkehr Kennung: 42010 CREATE TABLE ax_bahnverkehr ( ogc_fid serial NOT NULL, - gml_id varchar NOT NULL, + gml_id character(16) NOT NULL, identifier varchar, beginnt character(20), endet character(20), @@ -1909,18 +1914,13 @@ SELECT AddGeometryColumn('ax_bahnverkehr','wkb_geometry',:alkis_epsg,'GEOMETRY', CREATE INDEX ax_bahnverkehr_geom_idx ON ax_bahnverkehr USING gist (wkb_geometry); CREATE UNIQUE INDEX ax_bahnverkehr_gml ON ax_bahnverkehr USING btree (gml_id,beginnt); --- Flächen von Bahnverkehr sind --- * der Bahnkörper (Unterbau für Gleise; bestehend aus Dämmen oder Einschnitten und deren kleineren Böschungen, --- Durchlässen, schmalen Gräben zur Entwässerung, Stützmauern, Unter- und Überführung, Seiten und Schutzstreifen) mit seinen Bahnstrecken --- * an den Bahnkörper angrenzende bebaute und unbebaute Flächen (z.B. größere Böschungsflächen). - - -- F l u g v e r k e h r -- ---------------------- +-- Objektart: AX_Flugverkehr Kennung: 42015 CREATE TABLE ax_flugverkehr ( ogc_fid serial NOT NULL, - gml_id varchar NOT NULL, + gml_id character(16) NOT NULL, identifier varchar, beginnt character(20), endet character(20), @@ -1942,12 +1942,12 @@ CREATE INDEX ax_flugverkehr_geom_idx ON ax_flugverkehr USING gist (wkb_geomet CREATE UNIQUE INDEX ax_flugverkehr_gml ON ax_flugverkehr USING btree (gml_id,beginnt); - -- S c h i f f s v e r k e h r -- --------------------------- +-- Objektart: AX_Schiffsverkehr Kennung: 42016 CREATE TABLE ax_schiffsverkehr ( ogc_fid serial NOT NULL, - gml_id varchar NOT NULL, + gml_id character(16) NOT NULL, identifier varchar, beginnt character(20), endet character(20), @@ -1966,15 +1966,15 @@ CREATE INDEX ax_schiffsverkehr_geom_idx ON ax_schiffsverkehr USING gist (wkb_geo CREATE UNIQUE INDEX ax_schiffsverkehr_gml ON ax_schiffsverkehr USING btree (gml_id,beginnt); - --** Objektartengruppe:Vegetation (in Objektbereich:Tatsächliche Nutzung) -- =================================================================== -- L a n d w i r t s c h a f t -- ---------------------------------------------- +-- Objektart: AX_Landwirtschaft Kennung: 43001 CREATE TABLE ax_landwirtschaft ( ogc_fid serial NOT NULL, - gml_id varchar NOT NULL, + gml_id character(16) NOT NULL, identifier varchar, beginnt character(20), endet character(20), @@ -1992,12 +1992,12 @@ CREATE INDEX ax_landwirtschaft_geom_idx ON ax_landwirtschaft USING gist (wkb_geo CREATE UNIQUE INDEX ax_landwirtschaft_gml ON ax_landwirtschaft USING btree (gml_id,beginnt); - -- W a l d -- ---------------------------------------------- +-- Objektart: AX_Wald Kennung: 43002 CREATE TABLE ax_wald ( ogc_fid serial NOT NULL, - gml_id varchar NOT NULL, + gml_id character(16) NOT NULL, identifier varchar, beginnt character(20), endet character(20), @@ -2016,12 +2016,12 @@ CREATE INDEX ax_wald_geom_idx ON ax_wald USING gist (wkb_geometry); CREATE UNIQUE INDEX ax_wald_gml ON ax_wald USING btree (gml_id,beginnt); - -- G e h ö l z -- ---------------------------------------------- +-- Objektart: AX_Gehoelz Kennung: 43003 CREATE TABLE ax_gehoelz ( ogc_fid serial NOT NULL, - gml_id varchar NOT NULL, + gml_id character(16) NOT NULL, identifier varchar, beginnt character(20), endet character(20), @@ -2040,13 +2040,12 @@ CREATE INDEX ax_gehoelz_geom_idx ON ax_gehoelz USING gist (wkb_geometry); CREATE UNIQUE INDEX ax_gehoelz_gml ON ax_gehoelz USING btree (gml_id,beginnt); - - -- H e i d e -- ---------------------------------------------- +-- Objektart: AX_Heide Kennung: 43004 CREATE TABLE ax_heide ( ogc_fid serial NOT NULL, - gml_id varchar NOT NULL, + gml_id character(16) NOT NULL, identifier varchar, beginnt character(20), endet character(20), @@ -2063,12 +2062,12 @@ CREATE INDEX ax_heide_geom_idx ON ax_heide USING gist (wkb_geometry); CREATE UNIQUE INDEX ax_heide_gml ON ax_heide USING btree (gml_id,beginnt); - -- M o o r -- ---------------------------------------------- +-- Objektart: AX_Moor Kennung: 43005 CREATE TABLE ax_moor ( ogc_fid serial NOT NULL, - gml_id varchar NOT NULL, + gml_id character(16) NOT NULL, identifier varchar, beginnt character(20), endet character(20), @@ -2089,9 +2088,10 @@ CREATE UNIQUE INDEX ax_moor_gml ON ax_moor USING btree (gml_id,beginnt); -- S u m p f -- ---------------------------------------------- +-- Objektart: AX_Sumpf Kennung: 43006 CREATE TABLE ax_sumpf ( ogc_fid serial NOT NULL, - gml_id varchar NOT NULL, + gml_id character(16) NOT NULL, identifier varchar, beginnt character(20), endet character(20), @@ -2108,12 +2108,12 @@ CREATE INDEX ax_sumpf_geom_idx ON ax_sumpf USING gist (wkb_geometry); CREATE UNIQUE INDEX ax_sumpf_gml ON ax_sumpf USING btree (gml_id,beginnt); - -- U n l a n d / V e g e t a t i o n s f l ä c h e -- --------------------------------------------------- +-- Objektart: AX_UnlandVegetationsloseFlaeche Kennung: 43007 CREATE TABLE ax_unlandvegetationsloseflaeche ( ogc_fid serial NOT NULL, - gml_id varchar NOT NULL, + gml_id character(16) NOT NULL, identifier varchar, beginnt character(20), endet character(20), @@ -2132,15 +2132,15 @@ CREATE INDEX ax_unlandvegetationsloseflaeche_geom_idx ON ax_unlandvegetationslos CREATE UNIQUE INDEX ax_unlandvegetationsloseflaeche_gml ON ax_unlandvegetationsloseflaeche USING btree (gml_id,beginnt); - --** Objektartengruppe: Gewässer (in Objektbereich: Tatsächliche Nutzung) -- =================================================================== -- F l i e s s g e w ä s s e r -- ---------------------------------------------- +-- Objektart: AX_Fliessgewaesser Kennung: 44001 CREATE TABLE ax_fliessgewaesser ( ogc_fid serial NOT NULL, - gml_id varchar NOT NULL, + gml_id character(16) NOT NULL, identifier varchar, beginnt character(20), endet character(20), @@ -2160,12 +2160,12 @@ CREATE INDEX ax_fliessgewaesser_geom_idx ON ax_fliessgewaesser USING gist (wkb_g CREATE UNIQUE INDEX ax_fliessgewaesser_gml ON ax_fliessgewaesser USING btree (gml_id,beginnt); - -- H a f e n b e c k e n -- --------------------- +-- Objektart: AX_Hafenbecken Kennung: 44005 CREATE TABLE ax_hafenbecken ( ogc_fid serial NOT NULL, - gml_id varchar NOT NULL, + gml_id character(16) NOT NULL, identifier varchar, beginnt character(20), endet character(20), @@ -2184,13 +2184,12 @@ CREATE INDEX ax_hafenbecken_geom_idx ON ax_hafenbecken USING gist (wkb_geomet CREATE UNIQUE INDEX ax_hafenbecken_gml ON ax_hafenbecken USING btree (gml_id,beginnt); - - --- s t e h e n d e s G e w ä s s e r +-- S t e h e n d e s G e w ä s s e r -- ---------------------------------------------- +-- Objektart: AX_StehendesGewaesser Kennung: 44006 CREATE TABLE ax_stehendesgewaesser ( ogc_fid serial NOT NULL, - gml_id varchar NOT NULL, + gml_id character(16) NOT NULL, identifier varchar, beginnt character(20), endet character(20), @@ -2200,7 +2199,7 @@ CREATE TABLE ax_stehendesgewaesser ( funktion integer, name varchar, gewaesserkennziffer varchar, - hydrologischesMerkmal integer, + hydrologischesmerkmal integer, unverschluesselt varchar, CONSTRAINT ax_stehendesgewaesser_pk PRIMARY KEY (ogc_fid) ); @@ -2211,12 +2210,12 @@ CREATE INDEX ax_stehendesgewaesser_geom_idx ON ax_stehendesgewaesser USING gist CREATE UNIQUE INDEX ax_stehendesgewaesser_gml ON ax_stehendesgewaesser USING btree (gml_id,beginnt); - -- M e e r -- ---------------------------------------------- +-- Objektart: AX_Meer Kennung: 44007 CREATE TABLE ax_meer ( ogc_fid serial NOT NULL, - gml_id varchar NOT NULL, + gml_id character(16) NOT NULL, identifier varchar, beginnt character(20), endet character(20), @@ -2236,34 +2235,21 @@ CREATE INDEX ax_meer_geom_idx ON ax_meer USING gist (wkb_geometry); CREATE UNIQUE INDEX ax_meer_gml ON ax_meer USING btree (gml_id,beginnt); - --*** ############################################################ --*** Objektbereich: Bauwerke, Einrichtungen und sonstige Angaben --*** ############################################################ +-- .. ist Ziel einer Relation ---AX_BauwerkeEinrichtungenUndSonstigeAngaben --- ** Tabelle bisher noch nicht generiert - ---AX_DQMitDatenerhebung --- ** Tabelle bisher noch nicht generiert - ---AX_LI_Lineage_MitDatenerhebung --- ** Tabelle bisher noch nicht generiert - ---AX_LI_ProcessStep_MitDatenerhebung --- ** Tabelle bisher noch nicht generiert - ---AX_LI_Source_MitDatenerhebung --- ** Tabelle bisher noch nicht generiert --** Objektartengruppe: Bauwerke und Einrichtungen in Siedlungsflächen -- =================================================================== -- T u r m -- --------------------------------------------------- +-- Objektart: AX_Turm Kennung: 51001 CREATE TABLE ax_turm ( ogc_fid serial NOT NULL, - gml_id varchar NOT NULL, + gml_id character(16) NOT NULL, identifier varchar, beginnt character(20), endet character(20), @@ -2275,7 +2261,7 @@ CREATE TABLE ax_turm ( name varchar, -- Beziehung - zeigtauf varchar, + zeigtauf character(16), CONSTRAINT ax_turm_pk PRIMARY KEY (ogc_fid) ); @@ -2287,12 +2273,12 @@ CREATE UNIQUE INDEX ax_turm_gml ON ax_turm USING btree (gml_id,beginnt); CREATE INDEX ax_turm_za ON ax_turm USING btree (zeigtauf); - -- Bauwerk oder Anlage fuer Industrie und Gewerbe -- ---------------------------------------------- +-- Objektart: AX_BauwerkOderAnlageFuerIndustrieUndGewerbe Kennung: 51002 CREATE TABLE ax_bauwerkoderanlagefuerindustrieundgewerbe ( ogc_fid serial NOT NULL, - gml_id varchar NOT NULL, + gml_id character(16) NOT NULL, identifier varchar, beginnt character(20), endet character(20), @@ -2312,12 +2298,12 @@ CREATE INDEX ax_bauwerkoderanlagefuerindustrieundgewerbe_geom_idx ON ax_bauwerko CREATE UNIQUE INDEX ax_bauwerkoderanlagefuerindustrieundgewerbe_gml ON ax_bauwerkoderanlagefuerindustrieundgewerbe USING btree (gml_id,beginnt); - -- V o r r a t s b e h ä l t e r / S p e i c h e r b a u w e r k -- ----------------------------------------------------------------- +-- Objektart: AX_VorratsbehaelterSpeicherbauwerk Kennung: 51003 CREATE TABLE ax_vorratsbehaelterspeicherbauwerk ( ogc_fid serial NOT NULL, - gml_id varchar NOT NULL, + gml_id character(16) NOT NULL, identifier varchar, beginnt character(20), endet character(20), @@ -2337,12 +2323,12 @@ CREATE INDEX ax_vorratsbehaelterspeicherbauwerk_geom_idx ON ax_vorratsbehaelters CREATE UNIQUE INDEX ax_vorratsbehaelterspeicherbauwerk_gml ON ax_vorratsbehaelterspeicherbauwerk USING btree (gml_id,beginnt); - -- T r a n s p o r t a n l a g e -- --------------------------------------------------- +-- Objektart: AX_Transportanlage Kennung: 51004 CREATE TABLE ax_transportanlage ( ogc_fid serial NOT NULL, - gml_id varchar NOT NULL, + gml_id character(16) NOT NULL, identifier varchar, beginnt character(20), endet character(20), @@ -2351,8 +2337,8 @@ CREATE TABLE ax_transportanlage ( anlass varchar, bauwerksfunktion integer, lagezurerdoberflaeche integer, - art varchar, --(15) - name varchar, -- (3) "NPL", "RMR" + art varchar, + name varchar, produkt integer, CONSTRAINT ax_transportanlage_pk PRIMARY KEY (ogc_fid) ); @@ -2363,12 +2349,12 @@ CREATE INDEX ax_transportanlage_geom_idx ON ax_transportanlage USING gist (wkb_g CREATE UNIQUE INDEX ax_transportanlage_gml ON ax_transportanlage USING btree (gml_id,beginnt); - -- L e i t u n g -- ---------------------------------------------- +-- Objektart: AX_Leitung Kennung: 51005 CREATE TABLE ax_leitung ( ogc_fid serial NOT NULL, - gml_id varchar NOT NULL, + gml_id character(16) NOT NULL, identifier varchar, beginnt character(20), endet character(20), @@ -2386,12 +2372,12 @@ CREATE INDEX ax_leitung_geom_idx ON ax_leitung USING gist (wkb_geometry); CREATE UNIQUE INDEX ax_leitung_gml ON ax_leitung USING btree (gml_id,beginnt); - -- Bauwerk oder Anlage fuer Sport, Freizeit und Erholung -- ----------------------------------------------------- +-- Objektart: AX_BauwerkOderAnlageFuerSportFreizeitUndErholung Kennung: 51006 CREATE TABLE ax_bauwerkoderanlagefuersportfreizeitunderholung ( ogc_fid serial NOT NULL, - gml_id varchar NOT NULL, + gml_id character(16) NOT NULL, identifier varchar, beginnt character(20), endet character(20), @@ -2410,12 +2396,12 @@ CREATE INDEX ax_bauwerkoderanlagefuersportfreizeitunderholung_geom_idx ON ax_bau CREATE UNIQUE INDEX ax_bauwerkoderanlagefuersportfreizeitunderholung_gml ON ax_bauwerkoderanlagefuersportfreizeitunderholung USING btree (gml_id,beginnt); - -- Historisches Bauwerk oder historische Einrichtung -- ------------------------------------------------- +-- Objektart: AX_HistorischesBauwerkOderHistorischeEinrichtung Kennung: 51007 CREATE TABLE ax_historischesbauwerkoderhistorischeeinrichtung ( ogc_fid serial NOT NULL, - gml_id varchar NOT NULL, + gml_id character(16) NOT NULL, identifier varchar, beginnt character(20), endet character(20), @@ -2433,12 +2419,12 @@ CREATE INDEX ax_historischesbauwerkoderhistorischeeinrichtung_geom_idx ON ax_his CREATE UNIQUE INDEX ax_historischesbauwerkoderhistorischeeinrichtung_gml ON ax_historischesbauwerkoderhistorischeeinrichtung USING btree (gml_id,beginnt); - -- H e i l q u e l l e / G a s q u e l l e -- ---------------------------------------------- +-- Objektart: AX_HeilquelleGasquelle Kennung: 51008 CREATE TABLE ax_heilquellegasquelle ( ogc_fid serial NOT NULL, - gml_id varchar NOT NULL, + gml_id character(16) NOT NULL, identifier varchar, beginnt character(20), endet character(20), @@ -2456,12 +2442,12 @@ CREATE INDEX ax_heilquellegasquelle_geom_idx ON ax_heilquellegasquelle USING gis CREATE UNIQUE INDEX ax_heilquellegasquelle_gml ON ax_heilquellegasquelle USING btree (gml_id,beginnt); - -- sonstiges Bauwerk oder sonstige Einrichtung -- ---------------------------------------------- +-- Objektart: AX_SonstigesBauwerkOderSonstigeEinrichtung Kennung: 51009 CREATE TABLE ax_sonstigesbauwerkodersonstigeeinrichtung ( ogc_fid serial NOT NULL, - gml_id varchar NOT NULL, + gml_id character(16) NOT NULL, identifier varchar, beginnt character(20), endet character(20), @@ -2469,13 +2455,13 @@ CREATE TABLE ax_sonstigesbauwerkodersonstigeeinrichtung ( sonstigesmodell varchar[], anlass varchar, description integer, - name varchar, -- Lippe immer leer, RP "Relationsbelegung bei Nachmigration" + name varchar, bauwerksfunktion integer, funktion integer, -- Beziehungen - gehoertZuBauwerk varchar, - gehoertzu varchar, + gehoertZuBauwerk character(16), + gehoertzu character(16), CONSTRAINT ax_sonstigesbauwerkodersonstigeeinrichtung_pk PRIMARY KEY (ogc_fid) ); @@ -2487,20 +2473,13 @@ CREATE UNIQUE INDEX ax_sonstigesbauwerkodersonstigeeinrichtung_gml ON ax_sonstig CREATE INDEX ax_sonstigesbauwerkodersonstigeeinrichtung_gzb ON ax_sonstigesbauwerkodersonstigeeinrichtung USING btree (gehoertZuBauwerk); CREATE INDEX ax_sonstigesbauwerkodersonstigeeinrichtung_gz ON ax_sonstigesbauwerkodersonstigeeinrichtung USING btree (gehoertzu); -COMMENT ON COLUMN ax_sonstigesbauwerkodersonstigeeinrichtung.gehoertZuBauwerk IS 'Beziehung zu ax_bauwerkeeinrichtungenundsonstigeangaben (0..1): ''AX_SonstigesBauwerkOderSonstigeEinrichtung'' kann einem anderen Bauwerk zugeordnet werden.'; - - --- B a u w e r k e, E i n r i c h t u n g e n und s o n s t i g e A n g a b e n --- -------------------------------------------------------------------------------- - --- ax_bauwerkeeinrichtungenundsonstigeangaben --- in Relation aus ax_sonstigesbauwerkodersonstigeeinrichtung verlinkt aber bisher noch nicht generiert -- E i n r i c h t u n g i n Ö f f e n t l i c h e n B e r e i c h e n -- ------------------------------------------------------------------------ +-- Objektart: AX_EinrichtungInOeffentlichenBereichen Kennung: 51010 CREATE TABLE ax_einrichtunginoeffentlichenbereichen ( ogc_fid serial NOT NULL, - gml_id varchar NOT NULL, + gml_id character(16) NOT NULL, identifier varchar, beginnt character(20), endet character(20), @@ -2520,12 +2499,13 @@ CREATE UNIQUE INDEX ax_einrichtunginoeffentlichenbereichen_gml ON ax_einrichtung -- B e s o n d e r e r B a u w e r k s p u n k t -- ----------------------------------------------- +-- Objektart: AX_BesondererBauwerkspunkt Kennung: 51011 CREATE TABLE ax_besondererbauwerkspunkt ( ogc_fid serial NOT NULL, - gml_id varchar NOT NULL, + gml_id character(16) NOT NULL, identifier varchar, beginnt character(20), - endet character(20), + endet character(20), advstandardmodell varchar[], sonstigesmodell varchar[], anlass varchar, @@ -2541,7 +2521,6 @@ SELECT AddGeometryColumn('ax_besondererbauwerkspunkt','dummy',:alkis_epsg,'POINT CREATE UNIQUE INDEX ax_besondererbauwerkspunkt_gml ON ax_besondererbauwerkspunkt USING btree (gml_id,beginnt); - --** Objektartengruppe: Besondere Anlagen auf Siedlungsflächen -- =================================================================== @@ -2549,18 +2528,12 @@ CREATE UNIQUE INDEX ax_besondererbauwerkspunkt_gml ON ax_besondererbauwerkspunkt -- ======================================================================= - ---** Objektartengruppe: Besondere Anlagen auf Siedlungsflächen --- =================================================================== - ---** Objektartengruppe: Bauwerke, Anlagen und Einrichtungen für den Verkehr --- ======================================================================= - -- B a u w e r k i m V e r k e h s b e r e i c h -- ------------------------------------------------ +-- Objektart: AX_BauwerkImVerkehrsbereich Kennung: 53001 CREATE TABLE ax_bauwerkimverkehrsbereich ( ogc_fid serial NOT NULL, - gml_id varchar NOT NULL, + gml_id character(16) NOT NULL, identifier varchar, beginnt character(20), endet character(20), @@ -2579,12 +2552,12 @@ CREATE INDEX ax_bauwerkimverkehrsbereich_geom_idx ON ax_bauwerkimverkehrsbereich CREATE UNIQUE INDEX ax_bauwerkimverkehrsbereich_gml ON ax_bauwerkimverkehrsbereich USING btree (gml_id,beginnt); - --- S t r a s s e n v e r k e h r s a n l a g e --- -------------------------------------------- +-- S t r a ß e n v e r k e h r s a n l a g e +-- ------------------------------------------ +-- Objektart: AX_Strassenverkehrsanlage Kennung: 53002 CREATE TABLE ax_strassenverkehrsanlage ( ogc_fid serial NOT NULL, - gml_id varchar NOT NULL, + gml_id character(16) NOT NULL, identifier varchar, beginnt character(20), endet character(20), @@ -2603,12 +2576,12 @@ CREATE INDEX ax_strassenverkehrsanlage_geom_idx ON ax_strassenverkehrsanlage USI CREATE UNIQUE INDEX ax_strassenverkehrsanlage_gml ON ax_strassenverkehrsanlage USING btree (gml_id,beginnt); - -- W e g / P f a d / S t e i g -- ---------------------------------------------- +-- Objektart: AX_WegPfadSteig Kennung: 53003 CREATE TABLE ax_wegpfadsteig ( ogc_fid serial NOT NULL, - gml_id varchar NOT NULL, + gml_id character(16) NOT NULL, identifier varchar, beginnt character(20), endet character(20), @@ -2626,12 +2599,12 @@ CREATE INDEX ax_wegpfadsteig_geom_idx ON ax_wegpfadsteig USING gist (wkb_geometr CREATE UNIQUE INDEX ax_wegpfadsteig_gml ON ax_wegpfadsteig USING btree (gml_id,beginnt); - -- B a h n v e r k e h r s a n l a g e -- ---------------------------------------------- +-- Objektart: AX_Bahnverkehrsanlage Kennung: 53004 CREATE TABLE ax_bahnverkehrsanlage ( ogc_fid serial NOT NULL, - gml_id varchar NOT NULL, + gml_id character(16) NOT NULL, identifier varchar, beginnt character(20), endet character(20), @@ -2650,12 +2623,12 @@ CREATE INDEX ax_bahnverkehrsanlage_geom_idx ON ax_bahnverkehrsanlage USING gist CREATE UNIQUE INDEX ax_bahnverkehrsanlage_gml ON ax_bahnverkehrsanlage USING btree (gml_id,beginnt); - -- S e i l b a h n, S c h w e b e b a h n -- -------------------------------------- +-- Objektart: AX_SeilbahnSchwebebahn Kennung: 53005 CREATE TABLE ax_seilbahnschwebebahn ( ogc_fid serial NOT NULL, - gml_id varchar NOT NULL, + gml_id character(16) NOT NULL, identifier varchar, beginnt character(20), endet character(20), @@ -2673,13 +2646,12 @@ CREATE INDEX ax_seilbahnschwebebahn_geom_idx ON ax_seilbahnschwebebahn USING gis CREATE UNIQUE INDEX ax_seilbahnschwebebahn_gml ON ax_seilbahnschwebebahn USING btree (gml_id,beginnt); - - -- G l e i s -- ---------------------------------------------- +-- Objektart: AX_Gleis Kennung: 53006 CREATE TABLE ax_gleis ( ogc_fid serial NOT NULL, - gml_id varchar NOT NULL, + gml_id character(16) NOT NULL, identifier varchar, beginnt character(20), endet character(20), @@ -2699,12 +2671,12 @@ CREATE INDEX ax_gleis_geom_idx ON ax_gleis USING gist (wkb_geometry); CREATE UNIQUE INDEX ax_gleis_gml ON ax_gleis USING btree (gml_id,beginnt); - -- F l u g v e r k e h r s a n l a g e -- ----------------------------------- +-- Objektart: AX_Flugverkehrsanlage Kennung: 53007 CREATE TABLE ax_flugverkehrsanlage ( ogc_fid serial NOT NULL, - gml_id varchar NOT NULL, + gml_id character(16) NOT NULL, identifier varchar, beginnt character(20), endet character(20), @@ -2722,11 +2694,13 @@ SELECT AddGeometryColumn('ax_flugverkehrsanlage','wkb_geometry',:alkis_epsg,'GEO CREATE INDEX ax_flugverkehrsanlage_geom_idx ON ax_flugverkehrsanlage USING gist (wkb_geometry); CREATE UNIQUE INDEX ax_flugverkehrsanlage_gml ON ax_flugverkehrsanlage USING btree (gml_id,beginnt); + -- E i n r i c h t u n g e n f ü r d e n S c h i f f s v e r k e h r -- ------------------------------------------------------------------------ +-- Objektart: AX_EinrichtungenFuerDenSchiffsverkehr Kennung: 53008 CREATE TABLE ax_einrichtungenfuerdenschiffsverkehr ( ogc_fid serial NOT NULL, - gml_id varchar NOT NULL, + gml_id character(16) NOT NULL, identifier varchar, beginnt character(20), endet character(20), @@ -2745,13 +2719,12 @@ CREATE INDEX ax_einrichtungenfuerdenschiffsverkehr_geom_idx ON ax_einrichtungenf CREATE UNIQUE INDEX ax_einrichtungenfuerdenschiffsverkehr_gml ON ax_einrichtungenfuerdenschiffsverkehr USING btree (gml_id,beginnt); - - -- B a u w e r k i m G e w ä s s e r b e r e i c h -- ----------------------------------------------------- +-- Objektart: AX_BauwerkImGewaesserbereich Kennung: 53009 CREATE TABLE ax_bauwerkimgewaesserbereich ( ogc_fid serial NOT NULL, - gml_id varchar NOT NULL, + gml_id character(16) NOT NULL, identifier varchar, beginnt character(20), endet character(20), @@ -2770,15 +2743,15 @@ CREATE INDEX ax_bauwerkimgewaesserbereich_geom_idx ON ax_bauwerkimgewaesserberei CREATE UNIQUE INDEX ax_bauwerkimgewaesserbereich_gml ON ax_bauwerkimgewaesserbereich USING btree (gml_id,beginnt); - --** Objektartengruppe: Besondere Vegetationsmerkmale -- =================================================================== -- V e g a t a t i o n s m e r k m a l -- ---------------------------------------------- +-- Objektart: AX_Vegetationsmerkmal Kennung: 54001 CREATE TABLE ax_vegetationsmerkmal ( ogc_fid serial NOT NULL, - gml_id varchar NOT NULL, + gml_id character(16) NOT NULL, identifier varchar, beginnt character(20), endet character(20), @@ -2797,15 +2770,15 @@ CREATE INDEX ax_vegetationsmerkmal_geom_idx ON ax_vegetationsmerkmal USING gist CREATE UNIQUE INDEX ax_vegetationsmerkmal_gml ON ax_vegetationsmerkmal USING btree (gml_id,beginnt); - --** Objektartengruppe: Besondere Eigenschaften von Gewässern -- =================================================================== -- G e w ä s s e r m e r k m a l -- ---------------------------------------------- +-- Objektart: AX_Gewaessermerkmal Kennung: 55001 CREATE TABLE ax_gewaessermerkmal ( ogc_fid serial NOT NULL, - gml_id varchar NOT NULL, + gml_id character(16) NOT NULL, identifier varchar, beginnt character(20), endet character(20), @@ -2823,12 +2796,12 @@ CREATE INDEX ax_gewaessermerkmal_geom_idx ON ax_gewaessermerkmal USING gist (wkb CREATE UNIQUE INDEX ax_gewaessermerkmal_gml ON ax_gewaessermerkmal USING btree (gml_id,beginnt); - --- u n t e r g e o r d n e t e s G e w ä s s e r +-- U n t e r g e o r d n e t e s G e w ä s s e r -- ------------------------------------------------- +-- Objektart: AX_UntergeordnetesGewaesser Kennung: 55002 CREATE TABLE ax_untergeordnetesgewaesser ( ogc_fid serial NOT NULL, - gml_id varchar NOT NULL, + gml_id character(16) NOT NULL, identifier varchar, beginnt character(20), endet character(20), @@ -2848,18 +2821,27 @@ CREATE INDEX ax_untergeordnetesgewaesser_geom_idx ON ax_untergeordnetesgewaesser CREATE UNIQUE INDEX ax_untergeordnetesgewaesser_gml ON ax_untergeordnetesgewaesser USING btree (gml_id,beginnt); +-- Objektart: AX_Wasserspiegelhoehe Kennung: 57001 +-- 'Wasserspiegelhöhe' ist die Höhe des mittleren Wasserstandes über bzw. unter der Höhenbezugsfläche. + --** Objektartengruppe: Besondere Angaben zum Verkehr -- =================================================================== +-- 56001 'Netzknoten' +-- 56002 'Nullpunkt' +-- 56003 'Abschnitt' +-- 56004 'Ast' + --** Objektartengruppe: Besondere Angaben zum Gewässer -- =================================================================== -- W a s s e r s p i e g e l h ö h e -- --------------------------------- +-- Objektart: AX_Wasserspiegelhoehe Kennung: 57001 CREATE TABLE ax_wasserspiegelhoehe ( ogc_fid serial NOT NULL, - gml_id varchar NOT NULL, + gml_id character(16) NOT NULL, identifier varchar, beginnt character(20), endet character(20), @@ -2876,12 +2858,12 @@ CREATE INDEX ax_wasserspiegelhoehe_geom_idx ON ax_wasserspiegelhoehe USING gist CREATE UNIQUE INDEX ax_wasserspiegelhoehe_gml ON ax_wasserspiegelhoehe USING btree (gml_id,beginnt); - -- S c h i f f f a h r t s l i n i e / F ä h r v e r k e h r -- ----------------------------------------------------------- +-- Objektart: AX_SchifffahrtslinieFaehrverkehr Kennung: 57002 CREATE TABLE ax_schifffahrtsliniefaehrverkehr ( ogc_fid serial NOT NULL, - gml_id varchar NOT NULL, + gml_id character(16) NOT NULL, identifier varchar, beginnt character(20), endet character(20), @@ -2909,9 +2891,10 @@ CREATE UNIQUE INDEX ax_schifffahrtsliniefaehrverkehr_gml ON ax_schifffahrtslinie -- B ö s c h u n g s k l i f f -- ----------------------------- +-- Objektart: AX_BoeschungKliff Kennung: 61001 CREATE TABLE ax_boeschungkliff ( ogc_fid serial NOT NULL, - gml_id varchar NOT NULL, + gml_id character(16) NOT NULL, identifier varchar, beginnt character(20), endet character(20), @@ -2927,12 +2910,12 @@ SELECT AddGeometryColumn('ax_boeschungkliff','dummy',:alkis_epsg,'POINT',2); CREATE UNIQUE INDEX ax_boeschungkliff_gml ON ax_boeschungkliff USING btree (gml_id,beginnt); - -- B ö s c h u n g s f l ä c h e -- --------------------------------- +-- Objektart: AX_Boeschungsflaeche Kennung: 61002 CREATE TABLE ax_boeschungsflaeche ( ogc_fid serial NOT NULL, - gml_id varchar NOT NULL, + gml_id character(16) NOT NULL, identifier varchar, beginnt character(20), endet character(20), @@ -2941,7 +2924,7 @@ CREATE TABLE ax_boeschungsflaeche ( anlass varchar, -- Beziehung - istteilvon varchar, + istteilvon character(16), CONSTRAINT ax_boeschungsflaeche_pk PRIMARY KEY (ogc_fid) ); @@ -2953,12 +2936,12 @@ CREATE UNIQUE INDEX ax_boeschungsflaeche_gml ON ax_boeschungsflaeche USING btree CREATE INDEX ax_boeschungsflaeche_itv ON ax_boeschungsflaeche USING btree (istteilvon); - -- D a m m / W a l l / D e i c h -- ---------------------------------------------- +-- Objektart: AX_DammWallDeich Kennung: 61003 CREATE TABLE ax_dammwalldeich ( ogc_fid serial NOT NULL, - gml_id varchar NOT NULL, + gml_id character(16) NOT NULL, identifier varchar, beginnt character(20), endet character(20), @@ -2977,12 +2960,12 @@ CREATE INDEX ax_dammwalldeich_geom_idx ON ax_dammwalldeich USING gist (wkb_geome CREATE UNIQUE INDEX ax_dammwalldeich_gml ON ax_dammwalldeich USING btree (gml_id,beginnt); - -- H ö h l e n e i n g a n g -- ------------------------- +-- Objektart: AX_Hoehleneingang Kennung: 61005 CREATE TABLE ax_hoehleneingang ( ogc_fid serial NOT NULL, - gml_id varchar NOT NULL, + gml_id character(16) NOT NULL, identifier varchar, beginnt character(20), endet character(20), @@ -3000,13 +2983,12 @@ CREATE INDEX ax_hoehleneingang_geom_idx ON ax_hoehleneingang USING gist (wkb_geo CREATE UNIQUE INDEX ax_hoehleneingang_gml ON ax_hoehleneingang USING btree (gml_id,beginnt); - -- F e l s e n , F e l s b l o c k , F e l s n a d e l -- ------------------------------------------------------ --- Nutzung +-- Objektart: AX_FelsenFelsblockFelsnadel Kennung: 61006 CREATE TABLE ax_felsenfelsblockfelsnadel ( ogc_fid serial NOT NULL, - gml_id varchar NOT NULL, + gml_id character(16) NOT NULL, identifier varchar, beginnt character(20), endet character(20), @@ -3023,12 +3005,12 @@ CREATE INDEX ax_felsenfelsblockfelsnadel_geom_idx ON ax_felsenfelsblockfelsnadel CREATE UNIQUE INDEX ax_felsenfelsblockfelsnadel_gml ON ax_felsenfelsblockfelsnadel USING btree (gml_id,beginnt); - -- D ü n e -- ------- +-- Objektart: AX_Duene Kennung: 61007 CREATE TABLE ax_duene ( ogc_fid serial NOT NULL, - gml_id varchar NOT NULL, + gml_id character(16) NOT NULL, identifier varchar, beginnt character(20), endet character(20), @@ -3045,12 +3027,12 @@ CREATE INDEX ax_duene_geom_idx ON ax_duene USING gist (wkb_geometry); CREATE UNIQUE INDEX ax_duene_gml ON ax_duene USING btree (gml_id,beginnt); - -- H ö h e n l i n i e -- -------------------- +-- Objektart: AX_Hoehenlinie Kennung: 61008 CREATE TABLE ax_hoehenlinie ( ogc_fid serial NOT NULL, - gml_id varchar NOT NULL, + gml_id character(16) NOT NULL, identifier varchar, beginnt character(20), endet character(20), @@ -3066,11 +3048,13 @@ SELECT AddGeometryColumn('ax_hoehenlinie','wkb_geometry',:alkis_epsg,'LINESTRING CREATE INDEX ax_hoehenlinie_geom_idx ON ax_hoehenlinie USING gist (wkb_geometry); CREATE UNIQUE INDEX ax_hoehenlinie_gml ON ax_hoehenlinie USING btree (gml_id,beginnt); + -- B e s o n d e r e r T o p o g r a f i s c h e r P u n k t -- ------------------------------------------------------------- +-- Objektart: AX_BesondererTopographischerPunkt Kennung: 61009 CREATE TABLE ax_besonderertopographischerpunkt ( ogc_fid serial NOT NULL, - gml_id varchar NOT NULL, + gml_id character(16) NOT NULL, identifier varchar, beginnt character(20), endet character(20), @@ -3091,9 +3075,10 @@ CREATE UNIQUE INDEX ax_besonderertopographischerpunkt_gml ON ax_besonderertopogr -- S o l l -- ------- +-- Objektart: AX_Soll Kennung: 61010 CREATE TABLE ax_soll ( ogc_fid serial NOT NULL, - gml_id varchar NOT NULL, + gml_id character(16) NOT NULL, identifier varchar, beginnt character(20), endet character(20), @@ -3110,26 +3095,17 @@ CREATE INDEX ax_soll_geom_idx ON ax_soll USING gist (wkb_geometry); CREATE UNIQUE INDEX ax_soll_gml ON ax_soll USING btree (gml_id,beginnt); - - - - - - --** Objektartengruppe: Primäres DGM -- =================================================================== +-- Kennung '62000' ---AX_Erfassung_DGM --- ** Tabelle bisher noch nicht generiert - ---AX_ErfassungMarkanterGelaendepunkt --- ** Tabelle bisher noch nicht generiert -- G e l ä n d e k a n t e -- ---------------------------------------------- +-- Objektart: AX_Gelaendekante Kennung: 62040 CREATE TABLE ax_gelaendekante ( ogc_fid serial NOT NULL, - gml_id varchar NOT NULL, + gml_id character(16) NOT NULL, identifier varchar, beginnt character(20), endet character(20), @@ -3142,7 +3118,7 @@ CREATE TABLE ax_gelaendekante ( art integer, -- Beziehung - istteilvon varchar, + istteilvon character(16), CONSTRAINT ax_gelaendekante_pk PRIMARY KEY (ogc_fid) ); @@ -3154,15 +3130,19 @@ CREATE UNIQUE INDEX ax_gelaendekante_gml ON ax_gelaendekante USING btree (gml_id CREATE INDEX ax_gelaendekante_itv_idx ON ax_gelaendekante USING btree (istteilvon); ---AX_MarkanterGelaendepunkt +-- M a r k a n t e r G e l ä n d e p u n k t +-- ------------------------------------------- +-- Objektart: AX_MarkanterGelaendepunkt Kennung: 62070 -- ** Tabelle bisher noch nicht generiert +-- "Markanter Geländepunkt" ist ein Höhenpunkt an markanter Stelle des Geländes, der zur Ergänzung eines gitterförmigen DGM und/oder der Höhenliniendarstellung dient. -- B e s o n d e r e r H ö h e n p u n k t -- ------------------------------------------------------------- +-- Objektart: AX_BesondererHoehenpunkt Kennung: 62090 CREATE TABLE ax_besondererhoehenpunkt ( ogc_fid serial NOT NULL, - gml_id varchar NOT NULL, + gml_id character(16) NOT NULL, identifier varchar, beginnt character(20), endet character(20), @@ -3181,6 +3161,10 @@ CREATE UNIQUE INDEX ax_besondererhoehenpunkt_gml ON ax_besondererhoehenpunkt USI --** Objektartengruppe: Sekundäres DGM -- =================================================================== +-- Kennung '63000' +-- 63010 'DGM-Gitter' +-- 63020 'Abgeleitete Höhenlinie' + --*** ############################################################ --*** Objektbereich: Gesetzliche Festlegungen, Gebietseinheiten, Kataloge @@ -3188,13 +3172,14 @@ CREATE UNIQUE INDEX ax_besondererhoehenpunkt_gml ON ax_besondererhoehenpunkt USI --** Objektartengruppe: Öffentlich-rechtliche und sonstige Festlegungen -- =================================================================== - +-- Kennung '71000' -- K l a s s i f i z i e r u n g n a c h S t r a s s e n r e c h t -- ------------------------------------------------------------------- +-- Objektart: AX_KlassifizierungNachStrassenrecht Kennung: 71001 CREATE TABLE ax_klassifizierungnachstrassenrecht ( ogc_fid serial NOT NULL, - gml_id varchar NOT NULL, + gml_id character(16) NOT NULL, identifier varchar, beginnt character(20), endet character(20), @@ -3215,12 +3200,17 @@ CREATE UNIQUE INDEX ax_klassifizierungnachstrassenrecht_gml ON ax_klassifizierun CREATE INDEX ax_klassifizierungnachstrassenrecht_afs ON ax_klassifizierungnachstrassenrecht(land,stelle); +-- Objektart: AX_AndereFestlegungNachStrassenrecht Kennung: 71002 +-- "Andere Festlegung nach Straßenrecht" ist die auf den Grund und Boden bezogene Beschränkung, Belastung oder andere Eigenschaft einer Fläche nach öffentlichen, straßenrechtlichen Vorschriften. + + -- K l a s s i f i z i e r u n g n a c h W a s s e r r e c h t -- --------------------------------------------------------------- +-- Objektart: AX_KlassifizierungNachWasserrecht Kennung: 71003 CREATE TABLE ax_klassifizierungnachwasserrecht ( ogc_fid serial NOT NULL, - gml_id varchar NOT NULL, + gml_id character(16) NOT NULL, identifier varchar, beginnt character(20), endet character(20), @@ -3241,9 +3231,10 @@ CREATE INDEX ax_klassifizierungnachwasserrecht_afs ON ax_klassifizierungnachwass -- A n d e r e F e s t l e g u n g n a c h W a s s e r r e c h t -- -------------------------------------------------------------------- +-- Objektart: AX_AndereFestlegungNachWasserrecht Kennung: 71004 CREATE TABLE ax_anderefestlegungnachwasserrecht ( ogc_fid serial NOT NULL, - gml_id varchar NOT NULL, + gml_id character(16) NOT NULL, identifier varchar, beginnt character(20), endet character(20), @@ -3263,13 +3254,12 @@ CREATE UNIQUE INDEX ax_anderefestlegungnachwasserrecht_gml ON ax_anderefestlegun CREATE INDEX ax_anderefestlegungnachwasserrecht_afs ON ax_anderefestlegungnachwasserrecht(land,stelle); - - -- S c h u t z g e b i e t n a c h W a s s e r r e c h t -- ----------------------------------------------------------- +-- Objektart: AX_SchutzgebietNachWasserrecht Kennung: 71005 CREATE TABLE ax_schutzgebietnachwasserrecht ( ogc_fid serial NOT NULL, - gml_id varchar NOT NULL, + gml_id character(16) NOT NULL, identifier varchar, beginnt character(20), endet character(20), @@ -3290,11 +3280,13 @@ SELECT AddGeometryColumn('ax_schutzgebietnachwasserrecht','dummy',:alkis_epsg,'P CREATE UNIQUE INDEX ax_schutzgebietnachwasserrecht_gml ON ax_schutzgebietnachwasserrecht USING btree (gml_id,beginnt); CREATE INDEX ax_schutzgebietnachwasserrecht_afs ON ax_schutzgebietnachwasserrecht USING btree (land,stelle); + -- N a t u r -, U m w e l t - o d e r B o d e n s c h u t z r e c h t -- ------------------------------------------------------------------------ +-- Objektart: AX_NaturUmweltOderBodenschutzrecht Kennung: 71006 CREATE TABLE ax_naturumweltoderbodenschutzrecht ( ogc_fid serial NOT NULL, - gml_id varchar NOT NULL, + gml_id character(16) NOT NULL, identifier varchar, beginnt character(20), endet character(20), @@ -3314,11 +3306,13 @@ CREATE INDEX ax_naturumweltoderbodenschutzrecht_geom_idx ON ax_naturumweltoder CREATE UNIQUE INDEX ax_naturumweltoderbodenschutzrecht_gml ON ax_naturumweltoderbodenschutzrecht USING btree (gml_id,beginnt); CREATE INDEX ax_naturumweltoderbodenschutzrecht_afs ON ax_naturumweltoderbodenschutzrecht(land,stelle); + -- S c h u t z g e b i e t n a c h N a t u r, U m w e l t o d e r B o d e n s c h u t z r e c h t -- ----------------------------------------------------------------------------------------------------- +-- Objektart: AX_SchutzgebietNachNaturUmweltOderBodenschutzrecht Kennung: 71007 CREATE TABLE ax_schutzgebietnachnaturumweltoderbodenschutzrecht ( ogc_fid serial NOT NULL, - gml_id varchar NOT NULL, + gml_id character(16) NOT NULL, identifier varchar, beginnt character(20), endet character(20), @@ -3340,9 +3334,10 @@ CREATE INDEX ax_schutzgebietnachnaturumweltoderbodenschutzrecht_afs ON ax_schutz -- B a u - , R a u m - o d e r B o d e n o r d n u n g s r e c h t -- --------------------------------------------------------------------- +-- Objektart: AX_BauRaumOderBodenordnungsrecht Kennung: 71008 CREATE TABLE ax_bauraumoderbodenordnungsrecht ( ogc_fid serial NOT NULL, - gml_id varchar NOT NULL, + gml_id character(16) NOT NULL, identifier varchar, beginnt character(20), endet character(20), @@ -3367,9 +3362,10 @@ CREATE UNIQUE INDEX ax_bauraumoderbodenordnungsrecht_gml ON ax_bauraumoderbodeno -- D e n k m a l s c h u t z r e c h t -- ----------------------------------- +-- Objektart: AX_Denkmalschutzrecht Kennung: 71009 CREATE TABLE ax_denkmalschutzrecht ( ogc_fid serial NOT NULL, - gml_id varchar NOT NULL, + gml_id character(16) NOT NULL, identifier varchar, beginnt character(20), endet character(20), @@ -3390,11 +3386,13 @@ CREATE INDEX ax_denkmalschutzrecht_geom_idx ON ax_denkmalschutzrecht USING gis CREATE UNIQUE INDEX ax_denkmalschutzrecht_gml ON ax_denkmalschutzrecht USING btree (gml_id,beginnt); CREATE INDEX ax_denkmalschutzrecht_afs ON ax_denkmalschutzrecht(land,stelle); + -- F o r s t r e c h t -- ------------------- +-- Objektart: AX_Forstrecht Kennung: 71010 CREATE TABLE ax_forstrecht ( ogc_fid serial NOT NULL, - gml_id varchar NOT NULL, + gml_id character(16) NOT NULL, identifier varchar, beginnt character(20), endet character(20), @@ -3415,12 +3413,12 @@ CREATE UNIQUE INDEX ax_forstrecht_gml ON ax_forstrecht USING btree (gml_id,begin CREATE INDEX ax_forstrecht_afs ON ax_forstrecht(land,stelle); - -- S o n s t i g e s R e c h t -- ----------------------------- +-- Objektart: AX_SonstigesRecht Kennung: 71011 CREATE TABLE ax_sonstigesrecht ( ogc_fid serial NOT NULL, - gml_id varchar NOT NULL, + gml_id character(16) NOT NULL, identifier varchar, beginnt character(20), endet character(20), @@ -3442,11 +3440,14 @@ SELECT AddGeometryColumn('ax_sonstigesrecht','wkb_geometry',:alkis_epsg,'GEOMETR CREATE INDEX ax_sonstigesrecht_geom_idx ON ax_sonstigesrecht USING gist (wkb_geometry); CREATE UNIQUE INDEX ax_sonstigesrecht_gml ON ax_sonstigesrecht USING btree (gml_id,beginnt); + + -- S c h u t z z o n e -- ------------------- +-- Objektart: AX_Schutzzone Kennung: 71012 CREATE TABLE ax_schutzzone ( ogc_fid serial NOT NULL, - gml_id varchar NOT NULL, + gml_id character(16) NOT NULL, identifier varchar, beginnt character(20), endet character(20), @@ -3457,7 +3458,7 @@ CREATE TABLE ax_schutzzone ( art varchar[], -- Beziehung - istteilvon varchar, -- Nur RP? + istteilvon character(16), -- Nur RP? CONSTRAINT ax_schutzzone_pk PRIMARY KEY (ogc_fid) ); @@ -3468,18 +3469,18 @@ CREATE INDEX ax_schutzzone_geom_idx ON ax_schutzzone USING gist (wkb_geometry) CREATE UNIQUE INDEX ax_schutzzone_gml ON ax_schutzzone USING btree (gml_id,beginnt); CREATE INDEX ax_schutzzone_itv ON ax_schutzzone USING btree (istteilvon); -COMMENT ON COLUMN ax_schutzzone.istteilvon IS 'Beziehung zu AX_SchutzgebietNachWasserrecht (1)'; - - --** Objektartengruppe: Bodenschätzung, Bewertung -- =================================================================== +-- Kennung '72000' + -- B o d e n s c h ä t z u n g -- ---------------------------------------------- +-- Objektart: AX_Bodenschaetzung Kennung: 72001 CREATE TABLE ax_bodenschaetzung ( ogc_fid serial NOT NULL, - gml_id varchar NOT NULL, + gml_id character(16) NOT NULL, identifier varchar, beginnt character(20), endet character(20), @@ -3492,8 +3493,8 @@ CREATE TABLE ax_bodenschaetzung ( bodenart integer, zustandsstufeoderbodenstufe integer, entstehungsartoderklimastufewasserverhaeltnisse integer[], - bodenzahlodergruenlandgrundzahl integer, - ackerzahlodergruenlandzahl integer, + bodenzahlodergruenlandgrundzahl varchar, + ackerzahlodergruenlandzahl varchar, sonstigeangaben integer[], jahreszahl integer, CONSTRAINT ax_bodenschaetzung_pk PRIMARY KEY (ogc_fid) @@ -3505,13 +3506,12 @@ CREATE INDEX ax_bodenschaetzung_geom_idx ON ax_bodenschaetzung USING gist (wkb_g CREATE UNIQUE INDEX ax_bodenschaetzung_gml ON ax_bodenschaetzung USING btree (gml_id,beginnt); - - -- M u s t e r -, L a n d e s m u s t e r - u n d V e r g l e i c h s s t u e c k -- ----------------------------------------------------------------------------------- +-- Objektart: AX_MusterLandesmusterUndVergleichsstueck Kennung: 72002 CREATE TABLE ax_musterlandesmusterundvergleichsstueck ( ogc_fid serial NOT NULL, - gml_id varchar NOT NULL, + gml_id character(16) NOT NULL, identifier varchar, beginnt character(20), endet character(20), @@ -3538,13 +3538,13 @@ SELECT AddGeometryColumn('ax_musterlandesmusterundvergleichsstueck','wkb_geometr CREATE INDEX ax_musterlandesmusterundvergleichsstueck_geom_idx ON ax_musterlandesmusterundvergleichsstueck USING gist (wkb_geometry); CREATE UNIQUE INDEX ax_musterlandesmusterundvergleichsstueck_gml ON ax_musterlandesmusterundvergleichsstueck USING btree (gml_id,beginnt); -COMMENT ON COLUMN ax_musterlandesmusterundvergleichsstueck.sonstigeangaben IS '"Sonstige Angaben" ist der Nachweis von Besonderheiten einer bodengeschätzten Fläche.'; -- G r a b l o c h d e r B o d e n s c h ä t z u n g --- ------------------------------------------------------- +-- ----------------------------------------------------- +-- Objektart: AX_GrablochDerBodenschaetzung Kennung: 72003 CREATE TABLE ax_grablochderbodenschaetzung ( ogc_fid serial NOT NULL, - gml_id varchar NOT NULL, + gml_id character(16) NOT NULL, identifier varchar, beginnt character(20), endet character(20), @@ -3554,14 +3554,14 @@ CREATE TABLE ax_grablochderbodenschaetzung ( art varchar, name varchar, bedeutung integer[], - land integer, + land varchar, nummerierungsbezirk varchar, - gemarkungsnummer integer, + gemarkungsnummer varchar, nummerdesgrablochs varchar, - bodenzahlOderGruenlandgrundzahl integer, + bodenzahlodergruenlandgrundzahl varchar, -- Beziehung - gehoertzu varchar, + gehoertzu character(16), CONSTRAINT ax_grablochderbodenschaetzung_pk PRIMARY KEY (ogc_fid) ); @@ -3574,9 +3574,10 @@ CREATE UNIQUE INDEX ax_grablochderbodenschaetzung_gml ON ax_grablochderbodenscha -- B e w e r t u n g -- ------------------ +-- Objektart: AX_Bewertung Kennung: 72004 CREATE TABLE ax_bewertung ( ogc_fid serial NOT NULL, - gml_id varchar NOT NULL, + gml_id character(16) NOT NULL, identifier varchar, beginnt character(20), endet character(20), @@ -3594,12 +3595,12 @@ CREATE UNIQUE INDEX ax_bewertung_gml ON ax_bewertung USING btree (gml_id,beginnt - -- T a g e s a b s c h n i t t -- --------------------------- +-- Objektart: AX_Tagesabschnitt Kennung: 72006 CREATE TABLE ax_tagesabschnitt ( ogc_fid serial NOT NULL, - gml_id varchar NOT NULL, + gml_id character(16) NOT NULL, identifier varchar, beginnt character(20), endet character(20), @@ -3616,22 +3617,24 @@ CREATE INDEX ax_tagesabschnitt_geom_idx ON ax_tagesabschnitt USING gist (wkb_ CREATE UNIQUE INDEX ax_tagesabschnitt_gml ON ax_tagesabschnitt USING btree (gml_id,beginnt); - --** Objektartengruppe: Kataloge -- =================================================================== +-- Kennung '73000' + -- B u n d e s l a n d -- ---------------------------------------------- +-- Objektart: AX_Bundesland Kennung: 73002 CREATE TABLE ax_bundesland ( ogc_fid serial NOT NULL, - gml_id varchar NOT NULL, + gml_id character(16) NOT NULL, identifier varchar, beginnt character(20), endet character(20), advstandardmodell varchar[], sonstigesmodell varchar[], anlass varchar, - schluesselgesamt integer, + schluesselgesamt varchar, bezeichnung varchar, land varchar, stelle varchar, @@ -3646,19 +3649,20 @@ CREATE UNIQUE INDEX ax_bundesland_gml ON ax_bundesland USING btree (gml_id,begin -- R e g i e r u n g s b e z i r k -- ---------------------------------------------- +-- Objektart: AX_Regierungsbezirk Kennung: 73003 CREATE TABLE ax_regierungsbezirk ( ogc_fid serial NOT NULL, - gml_id varchar NOT NULL, + gml_id character(16) NOT NULL, identifier varchar, beginnt character(20), endet character(20), advstandardmodell varchar[], sonstigesmodell varchar[], anlass varchar, - schluesselgesamt integer, + schluesselgesamt varchar, bezeichnung varchar, - land integer, - regierungsbezirk integer, + land varchar, + regierungsbezirk varchar, CONSTRAINT ax_regierungsbezirk_pk PRIMARY KEY (ogc_fid) ); @@ -3667,24 +3671,23 @@ SELECT AddGeometryColumn('ax_regierungsbezirk','dummy',:alkis_epsg,'POINT',2); CREATE UNIQUE INDEX ax_regierungsbezirk_gml ON ax_regierungsbezirk USING btree (gml_id,beginnt); - -- K r e i s / R e g i o n -- --------------------------- --- AX_KreisRegion Geändert (Revisionsnummer: 1658) +-- Objektart: AX_KreisRegion Kennung: 73004 CREATE TABLE ax_kreisregion ( ogc_fid serial NOT NULL, - gml_id varchar NOT NULL, + gml_id character(16) NOT NULL, identifier varchar, beginnt character(20), endet character(20), advstandardmodell varchar[], sonstigesmodell varchar[], anlass varchar, - schluesselgesamt integer, + schluesselgesamt varchar, bezeichnung varchar, - land integer, - regierungsbezirk integer, - kreis integer, + land varchar, + regierungsbezirk varchar, + kreis varchar, CONSTRAINT ax_kreisregion_pk PRIMARY KEY (ogc_fid) ); @@ -3693,28 +3696,28 @@ SELECT AddGeometryColumn('ax_kreisregion','dummy',:alkis_epsg,'POINT',2); CREATE UNIQUE INDEX ax_kreisregion_gml ON ax_kreisregion USING btree (gml_id,beginnt); - -- G e m e i n d e -- ---------------------------------------------- +-- Objektart: AX_Gemeinde Kennung: 73005 CREATE TABLE ax_gemeinde ( ogc_fid serial NOT NULL, - gml_id varchar NOT NULL, + gml_id character(16) NOT NULL, identifier varchar, beginnt character(20), endet character(20), advstandardmodell varchar[], sonstigesmodell varchar[], anlass varchar, - schluesselgesamt integer, + schluesselgesamt varchar, bezeichnung varchar, - land integer, - regierungsbezirk integer, - kreis integer, + land varchar, + regierungsbezirk varchar, + kreis varchar, gemeinde varchar, stelle varchar, -- Beziehungen - istamtsbezirkvon varchar[], + istamtsbezirkvon character(16)[], CONSTRAINT ax_gemeinde_pk PRIMARY KEY (ogc_fid) ); @@ -3724,27 +3727,26 @@ SELECT AddGeometryColumn('ax_gemeinde','dummy',:alkis_epsg,'POINT',2); CREATE UNIQUE INDEX ax_gemeinde_gml ON ax_gemeinde USING btree (gml_id,beginnt); CREATE INDEX ax_gemeinde_iabv ON ax_gemeinde USING gin (istamtsbezirkvon); -COMMENT ON COLUMN ax_gemeinde.istamtsbezirkvon IS 'Beziehung zu ax_dienststelle (0..*): ''Bundesland'' ist Verwaltungsbezirk einer Dienststelle.'; - -- G e m e i n d e t e i l -- ----------------------------------------- +-- Objektart: AX_Gemeindeteil Kennung: 73006 CREATE TABLE ax_gemeindeteil ( ogc_fid serial NOT NULL, - gml_id varchar NOT NULL, + gml_id character(16) NOT NULL, identifier varchar, beginnt character(20), endet character(20), advstandardmodell varchar[], sonstigesmodell varchar[], anlass varchar, - schluesselgesamt double precision, + schluesselgesamt varchar, bezeichnung varchar, administrativefunktion integer, - land integer, - regierungsbezirk integer, - kreis integer, - gemeinde integer, + land varchar, + regierungsbezirk varchar, + kreis varchar, + gemeinde varchar, gemeindeteil integer, CONSTRAINT ax_gemeindeteil_pk PRIMARY KEY (ogc_fid) ); @@ -3754,22 +3756,21 @@ SELECT AddGeometryColumn('ax_gemeindeteil','dummy',:alkis_epsg,'POINT',2); CREATE UNIQUE INDEX ax_gemeindeteil_gml ON ax_gemeindeteil USING btree (gml_id,beginnt); - -- G e m a r k u n g -- ---------------------------------------------- --- NREO, nur Schluesseltabelle: Geometrie entbehrlich +-- Objektart: AX_Gemarkung Kennung: 73007 CREATE TABLE ax_gemarkung ( ogc_fid serial NOT NULL, - gml_id varchar NOT NULL, + gml_id character(16) NOT NULL, identifier varchar, beginnt character(20), endet character(20), advstandardmodell varchar[], sonstigesmodell varchar[], anlass varchar, - schluesselgesamt integer, + schluesselgesamt varchar, bezeichnung varchar, - land integer, + land varchar, gemarkungsnummer varchar, stelle varchar, CONSTRAINT ax_gemarkung_pk PRIMARY KEY (ogc_fid) @@ -3781,74 +3782,86 @@ CREATE UNIQUE INDEX ax_gemarkung_gml ON ax_gemarkung USING btree (gml_id,beginnt CREATE INDEX ax_gemarkung_nr ON ax_gemarkung USING btree (land,gemarkungsnummer); -- Such-Index, Verweis aus ax_Flurstueck - -- G e m a r k u n g s t e i l / F l u r -- ---------------------------------------------- +-- Objektart: AX_GemarkungsteilFlur Kennung: 73008 CREATE TABLE ax_gemarkungsteilflur ( ogc_fid serial NOT NULL, - gml_id varchar NOT NULL, + gml_id character(16) NOT NULL, identifier varchar, beginnt character(20), endet character(20), advstandardmodell varchar[], sonstigesmodell varchar[], anlass varchar, - schluesselgesamt integer, + schluesselgesamt varchar, bezeichnung varchar, - land integer, + land varchar, gemarkung integer, gemarkungsteilflur integer, + + -- Beziehung + gehoertzu character(16)[], + CONSTRAINT ax_gemarkungsteilflur_pk PRIMARY KEY (ogc_fid) ); SELECT AddGeometryColumn('ax_gemarkungsteilflur','dummy',:alkis_epsg,'POINT',2); CREATE UNIQUE INDEX ax_gemarkungsteilflur_gml ON ax_gemarkungsteilflur USING btree (gml_id,beginnt); +CREATE INDEX ax_gemarkungsteilflur_ghz ON ax_gemarkungsteilflur USING gin (gehoertzu); -- V e r w a l t u n g s g e m e i n s c h a f t -- --------------------------------------------- +-- Objektart: AX_Verwaltungsgemeinschaft Kennung: 73009 CREATE TABLE ax_verwaltungsgemeinschaft ( ogc_fid serial NOT NULL, - gml_id varchar NOT NULL, + gml_id character(16) NOT NULL, identifier varchar, beginnt character(20), endet character(20), advstandardmodell varchar[], sonstigesmodell varchar[], anlass varchar, - schluesselgesamt integer, + schluesselgesamt varchar, bezeichnung varchar, bezeichnungart integer, - land integer, - regierungsbezirk integer, - kreis integer, + land varchar, + regierungsbezirk varchar, + kreis varchar, verwaltungsgemeinschaft integer, CONSTRAINT ax_verwaltungsgemeinschaft_pk PRIMARY KEY (ogc_fid) ); SELECT AddGeometryColumn('ax_verwaltungsgemeinschaft','dummy',:alkis_epsg,'POINT',2); +-- Werte: +-- 1000 Samtgemeinde 'Samtgemeinde' umfasst in Niedersachsen das Gebiet einer Samtgemeinde. +-- 2000 Verbandsgemeinde +-- 3000 Amt 'Amt' umfasst das Gebiet eines Amtes, das aus Gemeinden desselben Landkreises besteht. + -- B u c h u n g s b l a t t - B e z i r k -- ---------------------------------------------- +-- Objektart: AX_Buchungsblattbezirk Kennung: 73010 CREATE TABLE ax_buchungsblattbezirk ( ogc_fid serial NOT NULL, - gml_id varchar NOT NULL, + gml_id character(16) NOT NULL, identifier varchar, beginnt character(20), endet character(20), advstandardmodell varchar[], sonstigesmodell varchar[], anlass varchar, - schluesselgesamt integer, + schluesselgesamt varchar, bezeichnung varchar, - land integer, + land varchar, bezirk varchar, stelle varchar, -- Beziehung - gehoertzu varchar, + gehoertzu character(16), CONSTRAINT ax_buchungsblattbezirk_pk PRIMARY KEY (ogc_fid) ); @@ -3861,12 +3874,12 @@ CREATE INDEX ax_buchungsblattbez_ghz ON ax_buchungsblattbezirk USING btree (geho CREATE INDEX ax_buchungsblattbez_key ON ax_buchungsblattbezirk USING btree (land,bezirk); - -- D i e n s t s t e l l e -- ---------------------------------------------- +-- Objektart: AX_Dienststelle Kennung: 73011 CREATE TABLE ax_dienststelle ( ogc_fid serial NOT NULL, - gml_id varchar NOT NULL, + gml_id character(16) NOT NULL, identifier varchar, beginnt character(20), endet character(20), @@ -3878,9 +3891,10 @@ CREATE TABLE ax_dienststelle ( land varchar, stelle varchar, stellenart integer, + kennung varchar, -- Beziehung - hat varchar, + hat character(16), CONSTRAINT ax_dienststelle_pk PRIMARY KEY (ogc_fid) ); @@ -3890,12 +3904,18 @@ SELECT AddGeometryColumn('ax_dienststelle','dummy',:alkis_epsg,'POINT',2); CREATE UNIQUE INDEX ax_dienststelle_gml ON ax_dienststelle USING btree (gml_id,beginnt); +-- V e r b a n d +-- ------------- +-- Objektart: AX_Verband Kennung: 73012 +-- "Verband" umfasst die Verbände, denen Gemeinden angehören (z.B. Planungsverbände) mit den entsprechenden Bezeichnungen. + -- L a g e b e z e i c h n u n g s - K a t a l o g e i n t r a g -- -------------------------------------------------------------- +-- Objektart: AX_LagebezeichnungKatalogeintrag Kennung: 73013 CREATE TABLE ax_lagebezeichnungkatalogeintrag ( ogc_fid serial NOT NULL, - gml_id varchar NOT NULL, + gml_id character(16) NOT NULL, identifier varchar, beginnt character(20), endet character(20), @@ -3904,10 +3924,10 @@ CREATE TABLE ax_lagebezeichnungkatalogeintrag ( anlass varchar, schluesselgesamt varchar, bezeichnung varchar, - land integer, - regierungsbezirk integer, - kreis integer, - gemeinde integer, + land varchar, + regierungsbezirk varchar, + kreis varchar, + gemeinde varchar, lage varchar, -- Straßenschlüssel CONSTRAINT ax_lagebezeichnungkatalogeintrag_pk PRIMARY KEY (ogc_fid) ); @@ -3925,16 +3945,20 @@ CREATE INDEX ax_lagebezeichnungkatalogeintrag_gesa ON ax_lagebezeichnungkataloge CREATE INDEX ax_lagebezeichnungkatalogeintrag_bez ON ax_lagebezeichnungkatalogeintrag USING btree (bezeichnung); - - --** Objektartengruppe: Geographische Gebietseinheiten -- =================================================================== + +-- Objektart: AX_Landschaft Kennung: 74001 +-- "Landschaft" ist hinsichtlich des äußeren Erscheinungsbildes (Bodenformen, Bewuchs, Besiedlung, Bewirtschaftung) ein in bestimmter Weise geprägter Teil der Erdoberfläche. + + -- k l e i n r ä u m i g e r L a n d s c h a f t s t e i l -- ----------------------------------------------------------- +-- Objektart: AX_KleinraeumigerLandschaftsteil Kennung: 74002 CREATE TABLE ax_kleinraeumigerlandschaftsteil ( ogc_fid serial NOT NULL, - gml_id varchar NOT NULL, + gml_id character(16) NOT NULL, identifier varchar, beginnt character(20), endet character(20), @@ -3952,12 +3976,12 @@ CREATE INDEX ax_kleinraeumigerlandschaftsteil_geom_idx ON ax_kleinraeumigerlan CREATE UNIQUE INDEX ax_kleinraeumigerlandschaftsteil_gml ON ax_kleinraeumigerlandschaftsteil USING btree (gml_id,beginnt); - -- W o h n p l a t z -- ----------------------------------------------------------- +-- Objektart: AX_Wohnplatz Kennung: 74005 CREATE TABLE ax_wohnplatz ( ogc_fid serial NOT NULL, - gml_id varchar NOT NULL, + gml_id character(16) NOT NULL, identifier varchar, beginnt character(20), endet character(20), @@ -3965,6 +3989,7 @@ CREATE TABLE ax_wohnplatz ( sonstigesmodell varchar[], anlass varchar, name varchar, + zweitname varchar, CONSTRAINT ax_wohnplatz_pk PRIMARY KEY (ogc_fid) ); @@ -3974,22 +3999,25 @@ CREATE INDEX ax_wohnplatz_geom_idx ON ax_wohnplatz USING gist (wkb_geometry); CREATE UNIQUE INDEX ax_wohnplatz_gml ON ax_wohnplatz USING btree (gml_id,beginnt); - --** Objektartengruppe: Administrative Gebietseinheiten -- =================================================================== +-- Kennung '75000' + -- B a u b l o c k -- ---------------------------------------------- +-- Objektart: AX_Baublock Kennung: 75001 CREATE TABLE ax_baublock ( ogc_fid serial NOT NULL, - gml_id varchar NOT NULL, + gml_id character(16) NOT NULL, identifier varchar, beginnt character(20), endet character(20), advstandardmodell varchar[], sonstigesmodell varchar[], anlass varchar, - baublockbezeichnung integer, + baublockbezeichnung varchar, + art integer, CONSTRAINT ax_baublock_pk PRIMARY KEY (ogc_fid) ); @@ -3999,14 +4027,12 @@ CREATE INDEX ax_baublock_geom_idx ON ax_baublock USING gist (wkb_geometry); CREATE UNIQUE INDEX ax_baublock_gml ON ax_baublock USING btree (gml_id,beginnt); - - - -- W i r t s c h a f t l i c h e E i n h e i t -- --------------------------------------------- +-- Objektart: AX_WirtschaftlicheEinheit Kennung: 75002 CREATE TABLE ax_wirtschaftlicheeinheit ( ogc_fid serial NOT NULL, - gml_id varchar NOT NULL, + gml_id character(16) NOT NULL, identifier varchar, beginnt character(20), endet character(20), @@ -4021,9 +4047,10 @@ SELECT AddGeometryColumn('ax_wirtschaftlicheeinheit','dummy',:alkis_epsg,'POINT' -- K o m m u n a l e s G e b i e t -- ---------------------------------------------- +-- Objektart: AX_KommunalesGebiet Kennung: 75003 CREATE TABLE ax_kommunalesgebiet ( ogc_fid serial NOT NULL, - gml_id varchar NOT NULL, + gml_id character(16) NOT NULL, identifier varchar, beginnt character(20), endet character(20), @@ -4031,10 +4058,10 @@ CREATE TABLE ax_kommunalesgebiet ( sonstigesmodell varchar[], anlass varchar, schluesselgesamt varchar, - land integer, - regierungsbezirk integer, - kreis integer, - gemeinde integer, + land varchar, + regierungsbezirk varchar, + kreis varchar, + gemeinde varchar, gemeindeflaeche double precision, CONSTRAINT ax_kommunalesgebiet_pk PRIMARY KEY (ogc_fid) ); @@ -4045,16 +4072,46 @@ CREATE INDEX ax_kommunalesgebiet_geom_idx ON ax_kommunalesgebiet USING gist (w CREATE UNIQUE INDEX ax_kommunalesgebiet_gml ON ax_kommunalesgebiet USING btree (gml_id,beginnt); ---AX_Gebiet --- ** Tabelle bisher noch nicht generiert +-- abstrakte Objektart: AX_Gebiet Kennung: 75010 + + +--*** ############################################################ +--*** Objektbereich: Nutzerprofile +--*** ############################################################ + + +--** Objektartengruppe: Nutzerprofile +-- =================================================================== +-- Kennung '81000' + +-- Objektart: AX_Benutzer Kennung: 81001 +-- In der Objektart 'Benutzer' werden allgemeine Informationen über den Benutzer verwaltet. + +-- Objektart: AX_Benutzergruppe Kennung: 81002 + +-- Objektart: AX_BenutzergruppeMitZugriffskontrolle Kennung: 81003 +-- In der Objektart 'Benutzergruppe mit Zugriffskontrolle' werden Informationen über die Benutzer der ALKIS-Bestandsdaten verwaltet, die den Umfang der Benutzung und Fortführung aus Gründen der Datenkonsistenz und des Datenschutzes einschränken. + +-- Objektart: AX_BenutzergruppeNBA Kennung: 81004 +-- In der Objektart 'Benutzergruppe (NBA)' werden relevante Informationen für die Durchführung der NBA-Versorgung, z.B. die anzuwendenden Selektionskriterien, gespeichert. +-- Eine gesonderte Prüfung der Zugriffsrechte erfolgt in diesem Fall nicht, deren Berücksichtigung ist von dem Administrator bei der Erzeugung und Pflege der NBA-Benutzergruppen sicherzustellen. + + +--*** ############################################################ +--*** Objektbereich: Migration +--*** ############################################################ + +--** Objektartengruppe: Migrationsobjekte +-- =================================================================== +-- Kennung '91000' --- ENDE Objektartengruppe Administrative Gebietseinheiten -- G e b ä u d e a u s g e s t a l t u n g -- ----------------------------------------- +-- Objektart: AX_Gebaeudeausgestaltung Kennung: 91001 CREATE TABLE ax_gebaeudeausgestaltung ( ogc_fid serial NOT NULL, - gml_id varchar NOT NULL, + gml_id character(16) NOT NULL, identifier varchar, beginnt character(20), endet character(20), @@ -4064,7 +4121,7 @@ CREATE TABLE ax_gebaeudeausgestaltung ( darstellung integer, -- Beziehung - zeigtauf varchar, + zeigtauf character(16), CONSTRAINT ax_gebaeudeausgestaltung_pk PRIMARY KEY (ogc_fid) ); @@ -4074,11 +4131,13 @@ SELECT AddGeometryColumn('ax_gebaeudeausgestaltung','wkb_geometry',:alkis_epsg,' CREATE INDEX ax_gebaeudeausgestaltung_geom_idx ON ax_gebaeudeausgestaltung USING gist (wkb_geometry); CREATE UNIQUE INDEX ax_gebaeudeausgestaltung_gml ON ax_gebaeudeausgestaltung USING btree (gml_id,beginnt); + -- T o p o g r a p h i s c h e L i n i e -- --------------------------------------- +-- Objektart: AX_TopographischeLinie Kennung: 91002 CREATE TABLE ax_topographischelinie ( ogc_fid serial NOT NULL, - gml_id varchar NOT NULL, + gml_id character(16) NOT NULL, identifier varchar, beginnt character(20), endet character(20), @@ -4096,30 +4155,10 @@ CREATE INDEX ax_topographischelinie_geom_idx ON ax_topographischelinie USING g CREATE UNIQUE INDEX ax_topographischelinie_gml ON ax_topographischelinie USING btree (gml_id,beginnt); - - - \i alkis-wertearten.sql SELECT alkis_set_comments(); ---*** ############################################################ ---*** Objektbereich: Nutzerprofile ---*** ############################################################ - ---** Objektartengruppe: Nutzerprofile --- =================================================================== - ---AX_FOLGEVA - ---*** ############################################################ ---*** Objektbereich: Migration ---*** ############################################################ - ---** Objektartengruppe: Migrationsobjekte --- =================================================================== - - -- Schlüsseltabelle "advstandardmodell" (9): -- ---------------------------------------- -- LiegenschaftskatasterModell = DLKM diff --git a/alkis-update.sql b/alkis-update.sql new file mode 100644 index 0000000..f029014 --- /dev/null +++ b/alkis-update.sql @@ -0,0 +1,26 @@ +/****************************************************************************** + * + * Projekt: norGIS ALKIS Import + * Purpose: ALKIS-Schema ggf. migrieren + * Author: Jürgen E. Fischer + * + ****************************************************************************** + * Copyright (c) 2012-2014, Jürgen E. Fischer + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + ****************************************************************************/ + +SET client_encoding = 'UTF8'; + +-- Abbruch bei Fehlern +\set ON_ERROR_STOP + +-- Stored Procedures laden +\i alkis-functions.sql + +-- Schema migrieren +SELECT alkis_update_schema(); diff --git a/alkisImport.py b/alkisImport.py index e92101f..3d6f026 100755 --- a/alkisImport.py +++ b/alkisImport.py @@ -570,7 +570,7 @@ def importALKIS(self): if conn is None: break - self.db.exec_( "SET application_name='ALKIS-Import - Frontend" ) + self.db.exec_( "SET application_name='ALKIS-Import - Frontend'" ) self.db.exec_( "SET client_min_messages TO notice" ) qry = self.db.exec_( "SELECT version()" ) @@ -581,7 +581,7 @@ def importALKIS(self): self.log( "Datenbank-Version: %s" % qry.value(0) ) - m = re.search( "PostgreSQL (\d+)\.(\d+)\.", qry.value(0) ) + m = re.search( "PostgreSQL (\d+)\.(\d+)", qry.value(0) ) if not m: self.log(u"PostgreSQL-Version nicht im erwarteten Format") break @@ -721,6 +721,11 @@ def importALKIS(self): break self.cbxCreate.setChecked( False ) self.log( u"Datenbank angelegt." ) + else: + self.status( u"Datenbankschema wird geprüft..." ) + if not self.runSQLScript( conn, "alkis-update.sql" ): + self.log( u"Schemaprüfung schlug fehl." ) + break ok = True diff --git a/postprocessing.d/nas2alb.sql b/postprocessing.d/nas2alb.sql index 90613d7..fe6d8cf 100644 --- a/postprocessing.d/nas2alb.sql +++ b/postprocessing.d/nas2alb.sql @@ -79,10 +79,10 @@ CREATE TABLE flurst ( INSERT INTO flurst(flsnr,flsnrk,gemashl,flr,entst,fortf,flsfl,amtlflsfl,gemflsfl,af,flurknr,baublock,flskoord,fora,fina,h1shl,h2shl,hinwshl,strshl,gemshl,hausnr,lagebez,k_anlverm,anl_verm,blbnr,n_flst,ff_entst,ff_stand,ff_datum) SELECT - to_char(land::int,'fm00') || to_char(gemarkungsnummer::int,'fm0000') || '-' || to_char(coalesce(flurnummer,0),'fm000') || '-' || to_char(zaehler,'fm00000') || '/' || CASE WHEN gml_id LIKE 'DESN%' THEN substring(flurstueckskennzeichen,15,4) ELSE CASE WHEN gml_id LIKE 'DESN%' THEN substring(flurstueckskennzeichen,15,4) ELSE to_char(coalesce(mod(nenner::int,1000),0),'fm000') END END AS flsnr, - to_char(zaehler,'fm00000') || '/' || CASE WHEN gml_id LIKE 'DESN%' THEN substring(flurstueckskennzeichen,15,4) ELSE to_char(coalesce(mod(nenner::int,1000),0),'fm000') END AS flsnrk, + to_char(land::int,'fm00') || to_char(gemarkungsnummer::int,'fm0000') || '-' || to_char(coalesce(flurnummer,0)::int,'fm000') || '-' || to_char(zaehler::int,'fm00000') || '/' || CASE WHEN gml_id LIKE 'DESN%' THEN substring(flurstueckskennzeichen,15,4) ELSE CASE WHEN gml_id LIKE 'DESN%' THEN substring(flurstueckskennzeichen,15,4) ELSE to_char(coalesce(mod(nenner::int,1000),0)::int,'fm000') END END AS flsnr, + to_char(zaehler::int,'fm00000') || '/' || CASE WHEN gml_id LIKE 'DESN%' THEN substring(flurstueckskennzeichen,15,4) ELSE to_char(coalesce(mod(nenner::int,1000),0)::int,'fm000') END AS flsnrk, to_char(land::int,'fm00') || to_char(gemarkungsnummer::int,'fm0000') AS gemashl, - to_char(coalesce(flurnummer,0),'fm000') AS flr, + to_char(coalesce(flurnummer,0)::int,'fm000') AS flr, substr(zeitpunktderentstehung,1,4) || '/ - ' AS entst, NULL AS fortf, amtlicheflaeche::int AS flsfl, @@ -91,14 +91,14 @@ INSERT INTO flurst(flsnr,flsnrk,gemashl,flr,entst,fortf,flsfl,amtlflsfl,gemflsfl '01' AS af, NULL AS flurknr, NULL AS baublock, - to_char(st_x(st_pointonsurface(wkb_geometry))*10,'fm00000000')||' '||to_char(st_y(st_pointonsurface(wkb_geometry))*10,'fm00000000') AS flskoord, + to_char(st_x(st_pointonsurface(wkb_geometry))*10::int,'fm00000000')||' '||to_char(st_y(st_pointonsurface(wkb_geometry))*10::int,'fm00000000') AS flskoord, NULL AS fora, NULL AS fina, NULL AS h1shl, NULL AS h2shl, NULL AS hinwshl, NULL AS strshl, - to_char(land::int,'fm00')||regierungsbezirk||to_char(kreis,'fm00')||to_char(gemeinde,'fm000') AS gemshl, + to_char(land::int,'fm00')||regierungsbezirk||to_char(kreis::int,'fm00')||to_char(gemeinde::int,'fm000') AS gemshl, NULL AS hausnr, NULL AS lagebez, NULL AS k_anlverm, @@ -140,9 +140,9 @@ CREATE TABLE str_shl ( INSERT INTO str_shl(strshl,strname,gemshl) SELECT DISTINCT - to_char(land::int,'fm00')||regierungsbezirk||to_char(kreis,'fm00')||to_char(gemeinde,'fm000')||' '||trim(lage) AS strshl, + to_char(land::int,'fm00')||regierungsbezirk||to_char(kreis::int,'fm00')||to_char(gemeinde::int,'fm000')||' '||trim(lage) AS strshl, regexp_replace(bezeichnung,' H$','') AS strname, -- RP: Historische Straßennamen mit H am Ende - to_char(land::int,'fm00')||regierungsbezirk||to_char(kreis,'fm00')||to_char(gemeinde,'fm000') AS gemshl + to_char(land::int,'fm00')||regierungsbezirk||to_char(kreis::int,'fm00')||to_char(gemeinde::int,'fm000') AS gemshl FROM ax_lagebezeichnungkatalogeintrag a WHERE endet IS NULL -- Nur nötig, weil Kataloge nicht vernünfigt geführt werden und doppelte Einträge vorkommen @@ -174,16 +174,16 @@ INSERT INTO strassen(flsnr,pk,strshl,hausnr,ff_entst,ff_stand) 0 FROM ( SELECT - to_char(f.land::int,'fm00') || to_char(f.gemarkungsnummer::int,'fm0000') || '-' || to_char(coalesce(f.flurnummer,0),'fm000') || '-' || to_char(f.zaehler,'fm00000') || '/' || CASE WHEN f.gml_id LIKE 'DESN%' THEN substring(f.flurstueckskennzeichen,15,4) ELSE to_char(coalesce(mod(f.nenner::int,1000),0),'fm000') END AS flsnr, - to_char(l.land::int,'fm00')||l.regierungsbezirk||to_char(l.kreis,'fm00')||to_char(l.gemeinde,'fm000')||' '||trim(lage) AS strshl, + to_char(f.land::int,'fm00') || to_char(f.gemarkungsnummer::int,'fm0000') || '-' || to_char(coalesce(f.flurnummer,0)::int,'fm000') || '-' || to_char(f.zaehler::int,'fm00000') || '/' || CASE WHEN f.gml_id LIKE 'DESN%' THEN substring(f.flurstueckskennzeichen,15,4) ELSE to_char(coalesce(mod(f.nenner::int,1000),0)::int,'fm000') END AS flsnr, + to_char(l.land::int,'fm00')||l.regierungsbezirk||to_char(l.kreis::int,'fm00')||to_char(l.gemeinde::int,'fm000')||' '||trim(lage) AS strshl, hausnummer AS hausnr FROM ax_lagebezeichnungmithausnummer l JOIN ax_flurstueck f ON ARRAY[l.gml_id] <@ f.weistauf AND f.endet IS NULL WHERE NOT l.lage IS NULL AND l.endet IS NULL UNION SELECT - to_char(f.land::int,'fm00') || to_char(f.gemarkungsnummer::int,'fm0000') || '-' || to_char(coalesce(f.flurnummer,0),'fm000') || '-' || to_char(f.zaehler,'fm00000') || '/' || CASE WHEN f.gml_id LIKE 'DESN%' THEN substring(f.flurstueckskennzeichen,15,4) ELSE to_char(coalesce(mod(f.nenner::int,1000),0),'fm000') END AS flsnr, - to_char(l.land::int,'fm00')||l.regierungsbezirk||to_char(l.kreis,'fm00')||to_char(l.gemeinde,'fm000')||' '||trim(lage) AS strshl, + to_char(f.land::int,'fm00') || to_char(f.gemarkungsnummer::int,'fm0000') || '-' || to_char(coalesce(f.flurnummer,0)::int,'fm000') || '-' || to_char(f.zaehler::int,'fm00000') || '/' || CASE WHEN f.gml_id LIKE 'DESN%' THEN substring(f.flurstueckskennzeichen,15,4) ELSE to_char(coalesce(mod(f.nenner::int,1000),0)::int,'fm000') END AS flsnr, + to_char(l.land::int,'fm00')||l.regierungsbezirk||to_char(l.kreis::int,'fm00')||to_char(l.gemeinde::int,'fm000')||' '||trim(lage) AS strshl, '' AS hausnr FROM ax_lagebezeichnungohnehausnummer l JOIN ax_flurstueck f ON ARRAY[l.gml_id] <@ f.zeigtauf AND f.endet IS NULL @@ -204,11 +204,11 @@ CREATE TABLE gem_shl ( INSERT INTO gem_shl(gemshl,gemname) SELECT - to_char(schluesselgesamt,'fm00000000') AS gemshl, + to_char(schluesselgesamt::int,'fm00000000') AS gemshl, min(bezeichnung) AS gemname FROM ax_gemeinde a WHERE endet IS NULL - GROUP BY to_char(schluesselgesamt,'fm00000000'); + GROUP BY to_char(schluesselgesamt::int,'fm00000000'); CREATE INDEX gem_shl_idx0 ON gem_shl(gemshl); @@ -249,8 +249,8 @@ CREATE TABLE eignerart ( INSERT INTO eignerart(flsnr,bestdnr,bvnr,b,anteil,auftlnr,sa,ff_entst,ff_stand,lkfs) SELECT - to_char(f.land::int,'fm00') || to_char(f.gemarkungsnummer::int,'fm0000') || '-' || to_char(coalesce(f.flurnummer,0),'fm000') || '-' || to_char(f.zaehler,'fm00000') || '/' || CASE WHEN f.gml_id LIKE 'DESN%' THEN substring(f.flurstueckskennzeichen,15,4) ELSE to_char(coalesce(mod(f.nenner::int,1000),0),'fm000') END AS flsnr, - to_char(bb.land::int,'fm00') || to_char(bb.bezirk,'fm0000') || '-' || trim(bb.buchungsblattnummermitbuchstabenerweiterung) AS bestdnr, + to_char(f.land::int,'fm00') || to_char(f.gemarkungsnummer::int,'fm0000') || '-' || to_char(coalesce(f.flurnummer,0)::int,'fm000') || '-' || to_char(f.zaehler::int,'fm00000') || '/' || CASE WHEN f.gml_id LIKE 'DESN%' THEN substring(f.flurstueckskennzeichen,15,4) ELSE to_char(coalesce(mod(f.nenner::int,1000),0)::int,'fm000') END AS flsnr, + to_char(bb.land::int,'fm00') || to_char(bb.bezirk::int,'fm0000') || '-' || trim(bb.buchungsblattnummermitbuchstabenerweiterung) AS bestdnr, lpad(laufendenummer,4,'0') AS bvnr, buchungsart AS b, coalesce(bs.zaehler || '/' || bs.nenner,bs.zaehler::text) AS anteil, @@ -265,8 +265,8 @@ INSERT INTO eignerart(flsnr,bestdnr,bvnr,b,anteil,auftlnr,sa,ff_entst,ff_stand,l WHERE f.endet IS NULL UNION SELECT - to_char(f.land::int,'fm00') || to_char(f.gemarkungsnummer::int,'fm0000') || '-' || to_char(coalesce(f.flurnummer,0),'fm000') || '-' || to_char(f.zaehler,'fm00000') || '/' || CASE WHEN f.gml_id LIKE 'DESN%' THEN substring(f.flurstueckskennzeichen,15,4) ELSE to_char(coalesce(mod(f.nenner::int,1000),0),'fm000') END AS flsnr, - to_char(bb.land::int,'fm00') || to_char(bb.bezirk,'fm0000') || '-' || trim(bb.buchungsblattnummermitbuchstabenerweiterung) AS bestdnr, + to_char(f.land::int,'fm00') || to_char(f.gemarkungsnummer::int,'fm0000') || '-' || to_char(coalesce(f.flurnummer,0)::int,'fm000') || '-' || to_char(f.zaehler::int,'fm00000') || '/' || CASE WHEN f.gml_id LIKE 'DESN%' THEN substring(f.flurstueckskennzeichen,15,4) ELSE to_char(coalesce(mod(f.nenner::int,1000),0)::int,'fm000') END AS flsnr, + to_char(bb.land::int,'fm00') || to_char(bb.bezirk::int,'fm0000') || '-' || trim(bb.buchungsblattnummermitbuchstabenerweiterung) AS bestdnr, lpad(bs.laufendenummer,4,'0') AS bvnr, bs.buchungsart AS b, coalesce(bs.zaehler || '/' || bs.nenner, bs.zaehler::text) AS anteil, @@ -309,7 +309,7 @@ CREATE SEQUENCE bem_best_pk_seq; INSERT INTO bem_best(bestdnr,pk,lnr,text,ff_entst,ff_stand) SELECT - to_char(bb.land::int,'fm00') || to_char(bb.bezirk,'fm0000') || '-' || trim(bb.buchungsblattnummermitbuchstabenerweiterung) AS bestdnr, + to_char(bb.land::int,'fm00') || to_char(bb.bezirk::int,'fm0000') || '-' || trim(bb.buchungsblattnummermitbuchstabenerweiterung) AS bestdnr, to_hex(nextval('bem_best_pk_seq'::regclass)) AS pk, laufendenummer AS lnr, beschreibungdessondereigentums AS text, @@ -339,9 +339,9 @@ CREATE INDEX bestand_ff_stand ON bestand(ff_stand); INSERT INTO bestand(bestdnr,gbbz,gbblnr,anteil,auftlnr,bestfl,ff_entst,ff_stand,pz) SELECT - to_char(land::int,'fm00') || to_char(bezirk,'fm0000') || '-' || trim(buchungsblattnummermitbuchstabenerweiterung) AS bestdnr, - to_char(bezirk,'fm0000') AS gbbz, - to_char(to_number(buchungsblattnummermitbuchstabenerweiterung,'000000'),'fm000000') AS gbblnr, + to_char(land::int,'fm00') || to_char(bezirk::int,'fm0000') || '-' || trim(buchungsblattnummermitbuchstabenerweiterung) AS bestdnr, + to_char(bezirk::int,'fm0000') AS gbbz, + to_char(to_number(buchungsblattnummermitbuchstabenerweiterung,'000000')::int,'fm000000') AS gbblnr, NULL AS anteil, NULL AS auftrlnr, NULL AS bestfl, @@ -403,7 +403,7 @@ CREATE SEQUENCE eigner_pk_seq; INSERT INTO eigner(bestdnr,pk,ab,namensnr,ea,antverh,name,name1,name2,name3,name4,name5,name6,name7,name8,anrede,vorname,nachname,namensteile,ak_grade,geb_name,geb_datum,str_hnr,plz_pf,postfach,plz,ort,land,ff_entst,ff_stand) SELECT - to_char(bb.land::int,'fm00') || to_char(bb.bezirk,'fm0000') || '-' || trim(bb.buchungsblattnummermitbuchstabenerweiterung) AS bestdnr, + to_char(bb.land::int,'fm00') || to_char(bb.bezirk::int,'fm0000') || '-' || trim(bb.buchungsblattnummermitbuchstabenerweiterung) AS bestdnr, to_hex(nextval('eigner_pk_seq'::regclass)) AS pk, NULL AS ab, laufendenummernachdin1421 AS namensnr, @@ -413,7 +413,7 @@ INSERT INTO eigner(bestdnr,pk,ab,namensnr,ea,antverh,name,name1,name2,name3,name coalesce( p.nachnameoderfirma || coalesce(', ' || p.vorname, ''), '(' || (SELECT v FROM alkis_wertearten WHERE element='ax_namensnummer' AND bezeichnung='artderrechtsgemeinschaft' AND k=artderrechtsgemeinschaft::varchar) || ')', '(Verschiedene)' ) AS name1, coalesce('geb. '||p.geburtsname||', ','') || '* ' || p.geburtsdatum AS name2, an.strasse || coalesce(' ' || an.hausnummer,'') AS name3, - an.postleitzahlpostzustellung||' '||an.ort_post AS name4, + coalesce(an.postleitzahlpostzustellung||' ','')||an.ort_post AS name4, bestimmungsland AS name5, NULL AS name6, NULL AS name7, @@ -652,7 +652,7 @@ INSERT INTO fs(fs_key,fs_obj,alb_key) SELECT ogc_fid ,gml_id - ,to_char(land::int,'fm00') || to_char(gemarkungsnummer::int,'fm0000') || '-' || to_char(coalesce(flurnummer,0),'fm000') || '-' || to_char(zaehler,'fm00000') || '/' || CASE WHEN gml_id LIKE 'DESN%' THEN substring(flurstueckskennzeichen,15,4) ELSE to_char(coalesce(mod(nenner::int,1000),0),'fm000') END + ,to_char(land::int,'fm00') || to_char(gemarkungsnummer::int,'fm0000') || '-' || to_char(coalesce(flurnummer,0)::int,'fm000') || '-' || to_char(zaehler::int,'fm00000') || '/' || CASE WHEN gml_id LIKE 'DESN%' THEN substring(flurstueckskennzeichen,15,4) ELSE to_char(coalesce(mod(nenner::int,1000),0)::int,'fm000') END FROM ax_flurstueck; CREATE INDEX fs_obj ON fs(fs_obj); diff --git a/re b/re index 2ad317d..c818375 100644 --- a/re +++ b/re @@ -37,7 +37,7 @@ psql:alkis-functions.sql:612: ERROR: syntax error at or near "WITH RECURSIVE"\r ^psql:alkis-compat.sql:.*: ERROR: function combine_bbox\(box2d, geometry\) does not exist\s*$ ^psql:alkis-compat.sql:.*: FEHLER: Berechtigung nur f\S+r Eigent\S+mer der Funktion st_dump\s*$ ^.*(Tabelle|Sicht|Sequenz|Funktion|Constraint|Index).*gel\S+scht\..*$ -^\s+(addgeometrycolumn|alkis_drop|alkis_dropobject|alkis_create_bsrs|alkis_set_comments|alkis_besondereflurstuecksgrenze|version|postgis_version|\?column\?)\s*$ +^\s+(addgeometrycolumn|alkis_drop|alkis_dropobject|alkis_create_bsrs|alkis_set_comments|alkis_update_schema|alkis_besondereflurstuecksgrenze|version|postgis_version|\?column\?)\s*$ ^-+\s*$ ^\s+public\..*\.(wkb_geometry|dummy) SRID:\d+ TYPE:(GEOMETRY|LINESTRING|POINT|MULTIPOINT|POLYGON) DIMS:2\+?\s*$ ^\s+public\.ax_punktortau\.wkb_geometry SRID:\d+ TYPE:POINT DIMS:3\+?\s*$