Index: trunk/data/konvert/postnas_0.7/pp_definition.sql
===================================================================
--- trunk/data/konvert/postnas_0.7/pp_definition.sql	(revision 162)
+++ trunk/data/konvert/postnas_0.7/pp_definition.sql	(revision 163)
@@ -2,9 +2,10 @@
 -- ALKIS PostNAS 0.7
 
--- Post Processing Teil 1: Anlegen der Tabellen
+-- Post Processing (pp_) Teil 1: Anlegen der Tabellen und Views
 
 -- Stand 
 
 --  2012-02-13 PostNAS 07, Umbenennung
+--  2012-02-17 Optimierung
 
 -- ============================
@@ -42,24 +43,24 @@
 
   CREATE TABLE pp_gemeinde (
-    land 		integer,
+    gid			serial,
+    land		integer NOT NULL,
     regierungsbezirk	integer,
     kreis		integer,
-    gemeinde		integer,
+    gemeinde		integer NOT NULL,
     gemeindename	character varying(80),
-    gkz			character varying(03),	-- wird (noch) nicht benutzt
+ -- gkz			character varying(03),	-- wird (noch) nicht benutzt
     anz_gemarkg		integer,		-- Anzahl Gemarkungen
     CONSTRAINT pp_gemeinde_pk PRIMARY KEY (land, gemeinde)
   );
 
-
--- GesamtflÃ€che
+-- ALTER TABLE pp_gemeinde ADD COLUMN gid serial;
+CREATE UNIQUE INDEX pp_gemeinde_gid_ix ON pp_gemeinde (gid);
+
+-- Gesamtflaeche
 SELECT AddGeometryColumn('pp_gemeinde','the_geom','25832','MULTIPOLYGON',2);
-
--- Index
 CREATE INDEX pp_gemeinde_gidx ON pp_gemeinde USING gist(the_geom);
 
--- vereinfachte GesamtflÃ€che
+-- vereinfachte Gesamtflaeche
 SELECT AddGeometryColumn('pp_gemeinde','simple_geom','25832','MULTIPOLYGON',2);
-
 CREATE INDEX pp_gemeinde_sgidx ON pp_gemeinde USING gist(simple_geom);
 
@@ -68,4 +69,6 @@
 COMMENT ON COLUMN pp_gemeinde.gemeinde       IS 'Gemeindenummer';
 COMMENT ON COLUMN pp_gemeinde.gkz            IS 'Gemeindekennziffer fÃŒr Mandant';
+COMMENT ON COLUMN pp_gemeinde.the_geom       IS 'prÃ€zise Geometrie aus Summe aller Gemarkungen';
+COMMENT ON COLUMN pp_gemeinde.simple_geom    IS 'vereinfachte Geometrie fÃŒr die Suche und die Anzeige von Ãbersichten in kleinen MaÃstÃ€ben.';
 
 
@@ -80,33 +83,34 @@
 -- muss diese Information als (redundante) Tabelle nach dem Laden zwischengespeichert werden. 
 
---CREATE TABLE gemeinde_gemarkung (  -- PostNAS 0.6
-  CREATE TABLE pp_gemarkung (        -- PostNAS 0.7
-    land 		integer,
+--CREATE TABLE gemeinde_gemarkung (		-- alt: PostNAS 0.6
+  CREATE TABLE pp_gemarkung (			-- PostNAS 0.7
+    gid			serial,
+    land		integer NOT NULL,
     regierungsbezirk	integer,
     kreis		integer,
-    gemeinde		integer,	-- fast ein Foreign-Key Constraint
+    gemeinde		integer NOT NULL,	-- fast ein Foreign-Key Constraint
     gemarkung		integer NOT NULL,
     gemarkungsname	character varying(80),
-    anz_flur		integer,	-- Anzahl Fluren
+    anz_flur		integer,		-- Anzahl Fluren
     CONSTRAINT pp_gemarkung_pk PRIMARY KEY (land, gemarkung)
   );
 
+-- ALTER TABLE pp_gemarkung ADD COLUMN gid serial;
+CREATE UNIQUE INDEX pp_gemarkung_gid_ix ON pp_gemarkung (gid);
 
 -- GesamtflÃ€che
 SELECT AddGeometryColumn('pp_gemarkung','the_geom','25832','MULTIPOLYGON',2);
-
--- Index
 CREATE INDEX pp_gemarkung_gidx ON pp_gemarkung USING gist(the_geom);
-
 
 -- vereinfachte GesamtflÃ€che
 SELECT AddGeometryColumn('pp_gemarkung','simple_geom','25832','MULTIPOLYGON',2);
-
 CREATE INDEX pp_gemarkung_sgidx ON pp_gemarkung USING gist(simple_geom);
 
 
-COMMENT ON TABLE  pp_gemarkung                IS 'Post-Processing: Gemarkung. u.a. liegt in welcher Gemeinde';
-COMMENT ON COLUMN pp_gemarkung.gemeinde       IS 'Gemeindenummer';
-COMMENT ON COLUMN pp_gemarkung.gemarkung      IS 'Gemarkungsnummer';
+COMMENT ON TABLE  pp_gemarkung               IS 'Post-Processing: Gemarkung. u.a. liegt in welcher Gemeinde';
+COMMENT ON COLUMN pp_gemarkung.gemeinde      IS 'Gemeindenummer';
+COMMENT ON COLUMN pp_gemarkung.gemarkung     IS 'Gemarkungsnummer';
+COMMENT ON COLUMN pp_gemarkung.the_geom      IS 'prÃ€zise Geometrie aus Summe aller Fluren';
+COMMENT ON COLUMN pp_gemarkung.simple_geom   IS 'vereinfachte Geometrie fÃŒr die Suche und die Anzeige von Ãbersichten in kleinen MaÃstÃ€ben.';
 
 
@@ -115,21 +119,24 @@
 
   CREATE TABLE pp_flur (
-    land 		integer,
+    gid			serial,
+    land		integer NOT NULL,
     regierungsbezirk	integer,
     kreis		integer,
     gemarkung		integer NOT NULL,
     flurnummer		integer NOT NULL,
-    anz_fs		integer,	-- Anzahl FlurstÃŒcke
+    anz_fs		integer,		-- Anzahl FlurstÃŒcke
     CONSTRAINT pp_flur_pk PRIMARY KEY (land, gemarkung, flurnummer)
   );
 
+-- ALTER TABLE pp_flur ADD COLUMN gid serial;
+CREATE UNIQUE INDEX pp_flur_gid_ix ON pp_flur (gid);
+
 -- GesamtflÃ€che
 SELECT AddGeometryColumn('pp_flur','the_geom','25832','MULTIPOLYGON',2);
-
--- Index
 CREATE INDEX pp_flur_gidx ON pp_flur USING gist(the_geom);
 
 COMMENT ON TABLE  pp_flur                IS 'Post-Processing: Flur';
 COMMENT ON COLUMN pp_flur.gemarkung      IS 'Gemarkungsnummer';
+COMMENT ON COLUMN pp_flur.the_geom       IS 'Geometrie aus Summe aller FlurstÃŒcke';
 
 
@@ -150,9 +157,9 @@
 
   CREATE TABLE gemeinde_person (
-    land 			integer,
+    land 		integer,
     regierungsbezirk	integer,
-    kreis			integer,
+    kreis		integer,
     gemeinde		integer,
-    person		character varying(16), 
+    person		character varying(16),
     buchtyp		integer,
     CONSTRAINT gemeinde_person_pk PRIMARY KEY (gemeinde, person)
@@ -288,3 +295,23 @@
 
 
+-- Views zur Analyse der vereinfachten Geometrie
+-- Finden des richtigen Genauigkeits-Wertes fÃŒr die Vereinfachung der Geometrie
+
+-- z.B. Gemeinden:  10 Meter
+--      Gemarkungen: 4 Meter
+
+CREATE VIEW pp_gemeinde_analyse AS
+  SELECT land, gemeinde, gemeindename,
+         st_npoints(the_geom)    AS umring_alle_punkte,
+         st_npoints(simple_geom) AS umring_einfache_punkte
+  FROM pp_gemeinde;
+
+
+CREATE VIEW pp_gemarkung_analyse AS
+  SELECT land, gemeinde, gemarkung, gemarkungsname,
+         st_npoints(the_geom)    AS umring_alle_punkte,
+         st_npoints(simple_geom) AS umring_einfache_punkte
+  FROM pp_gemarkung;
+
+
 -- ENDE --
