χαροκοπειο πανεπιστημιο

144
ΥΑΡΟΚΟΠΔΗΟ ΠΑΝΔΠΗΣΖΜΗΟ Σκήκα Γεσγξαθίαο Πξφγξακκα Μεηαπηπρηαθψλ πνπδψλ «Δθαξκνζκέλε Γεσγξαθία θαη Γηαρείξηζε ηνπ Υώξνπ» Καηεχζπλζε: Γεσπιεξνθνξηθή Ανάπηςξη Πιλοηικήρ Εθαπμογήρ για ηη διενέπγεια Σςνδςαζηικών Ελέγσων μεηαξύ Πεπιγπαθικών και Χωπικών Βάζεων Κηημαηολογίος Γηπισκαηηθή εξγαζία ηεο Γεσξγαθάθε ηαπξνχιαο Αζήλα, Φεβξνπάξηνο 2012

Transcript of χαροκοπειο πανεπιστημιο

ΥΑΡΟΚΟΠΔΗΟ ΠΑΝΔΠΗΣΖΜΗΟ

Σκήκα Γεσγξαθίαο

Πξφγξακκα Μεηαπηπρηαθψλ πνπδψλ

«Δθαξκνζκέλε Γεσγξαθία θαη Γηαρείξηζε ηνπ Υώξνπ»

Καηεχζπλζε: Γεσπιεξνθνξηθή

Ανάπηςξη Πιλοηικήρ Εθαπμογήρ για ηη διενέπγεια

Σςνδςαζηικών Ελέγσων μεηαξύ Πεπιγπαθικών και Χωπικών

Βάζεων Κηημαηολογίος

Γηπισκαηηθή εξγαζία ηεο Γεσξγαθάθε ηαπξνχιαο

Αζήλα, Φεβξνπάξηνο 2012

Αλάπηπμε Πηινηηθήο Δθαξκνγήο γηα ηε δηελέξγεηα πλδπαζηηθώλ Διέγρσλ

κεηαμύ Πεξηγξαθηθώλ θαη Υσξηθώλ Βάζεσλ Κηεκαηνινγίνπ Μάξηηνο 2012

ύληαμε: Γεσξγαθάθε ηαπξνύια 2 /144

Αλάπηπμε Πηινηηθήο Δθαξκνγήο γηα ηε δηελέξγεηα πλδπαζηηθώλ Διέγρσλ

κεηαμύ Πεξηγξαθηθώλ θαη Υσξηθώλ Βάζεσλ Κηεκαηνινγίνπ Μάξηηνο 2012

ύληαμε: Γεσξγαθάθε ηαπξνύια 3 /144

ΥΑΡΟΚΟΠΔΗΟ ΠΑΝΔΠΗΣΖΜΗΟ

Σκήκα Γεσγξαθίαο

Πξφγξακκα Μεηαπηπρηαθψλ πνπδψλ

«Δθαξκνζκέλε Γεσγξαθία θαη Γηαρείξηζε ηνπ Υώξνπ»

Καηεχζπλζε: Γεσπιεξνθνξηθή

Ανάπηςξη Πιλοηικήρ Εθαπμογήρ για ηη διενέπγεια

Σςνδςαζηικών Ελέγσων μεηαξύ Πεπιγπαθικών και Χωπικών

Βάζεων Κηημαηολογίος

Γηπισκαηηθή εξγαζία ηεο Γεσξγαθάθε ηαπξνχιαο

Δπηβιέπσλ: Δκκαλνπήι ηεθαλάθεο, Αλαπιεξσηήο Καζεγεηήο

Αζήλα, Φεβξνπάξηνο 2012

Αλάπηπμε Πηινηηθήο Δθαξκνγήο γηα ηε δηελέξγεηα πλδπαζηηθώλ Διέγρσλ

κεηαμύ Πεξηγξαθηθώλ θαη Υσξηθώλ Βάζεσλ Κηεκαηνινγίνπ Μάξηηνο 2012

ύληαμε: Γεσξγαθάθε ηαπξνύια 4 /144

Αλάπηπμε Πηινηηθήο Δθαξκνγήο γηα ηε δηελέξγεηα πλδπαζηηθώλ Διέγρσλ

κεηαμύ Πεξηγξαθηθώλ θαη Υσξηθώλ Βάζεσλ Κηεκαηνινγίνπ Μάξηηνο 2012

ύληαμε: Γεσξγαθάθε ηαπξνύια 5 /144

ην ηιβηάθη....

Αλάπηπμε Πηινηηθήο Δθαξκνγήο γηα ηε δηελέξγεηα πλδπαζηηθώλ Διέγρσλ

κεηαμύ Πεξηγξαθηθώλ θαη Υσξηθώλ Βάζεσλ Κηεκαηνινγίνπ Μάξηηνο 2012

ύληαμε: Γεσξγαθάθε ηαπξνύια 6 /144

Αλάπηπμε Πηινηηθήο Δθαξκνγήο γηα ηε δηελέξγεηα πλδπαζηηθώλ Διέγρσλ

κεηαμύ Πεξηγξαθηθώλ θαη Υσξηθώλ Βάζεσλ Κηεκαηνινγίνπ Μάξηηνο 2012

ύληαμε: Γεσξγαθάθε ηαπξνύια 7 /144

Πεπιεσόμενα

Πεπίλητη .......................................................................................................................... 11

Abstract ............................................................................................................................. 11

Ππόλογορ ........................................................................................................................... 12

1. Διζαγυγή ................................................................................................................ 15

1.1. Αληηθείκελν - ηφρνη ηεο εξγαζίαο .......................................................................... 15

2. Κηημαηολόγιο και Βάζειρ Γεδομένυν Κηημαηολογίος ...................................... 17

2.1. Οξηζκνί Βαζηθψλ Δλλνηψλ Κηεκαηνινγίνπ ............................................................ 17

2.1.1. Δζληθφ Κηεκαηνιφγην ............................................................................................ 17

2.1.2. χληαμε Κηεκαηνινγίνπ (Κηεκαηνγξάθεζε) ....................................................... 18

2.1.3. Κηεκαηνινγηθή βάζε ............................................................................................ 18

2.1.4. Κσδηθφο Αξηζκφο Δζληθνχ Κηεκαηνινγίνπ (ΚΑΔΚ) ........................................... 19

2.2. Γεδνκέλα Δηζφδνπ Δθαξκνγήο - χλδεζε κε Σερληθέο Πξνδηαγξαθέο ................... 19

2.2.1. Υσξηθά ηνηρεία Κηεκαηνινγίνπ .......................................................................... 20

2.2.2. Πεξηγξαθηθά ηνηρεία Κηεκαηνινγίνπ ................................................................. 21

2.2.3. Γνκή Παξαδνηέσλ Αξρείσλ .................................................................................. 23

2.3. Απαηηήζεηο Πνηφηεηαο Κηεκαηνινγηθψλ Γεδνκέλσλ .............................................. 27

2.3.1. Έιεγρνη πνηφηεηαο παξαδνηέσλ Κηεκαηνιφγην Α.Δ. ............................................ 27

2.3.2. Έιεγρνη ζπζρέηηζεο Υσξηθήο θαη Πεξηγξαθηθήο Βάζεο Κηεκαηνινγίνπ ............ 28

3. Μέζα Τλοποίηζηρ .................................................................................................. 30

3.1. χζηεκα Γηαρείξηζεο Βάζεο Γεδνκέλσλ ................................................................ 30

3.1.1. PostgreSQL ........................................................................................................... 31

3.1.2. Γεληθά ραξαθηεξηζηηθά - πκβαηφηεηα κε πξνδηαγξαθέο .................................... 31

3.1.3. PostgreSQL Interactive Terminal (psql)................................................................ 32

3.1.4. PostGIS .................................................................................................................. 34

3.1.5. PostGIS Loader (shp2pgsql) .................................................................................. 37

3.1.6. PostGIS Dumper (pgsql2shp) ................................................................................ 38

3.2. Πιαίζην - Γιψζζα πξνγξακκαηηζκνχ γηα ηελ αλάπηπμε ηεο δηεπαθήο ................... 38

3.2.1. .NET Framework ................................................................................................... 38

3.2.2. VB.NET ................................................................................................................. 39

3.2.3. DotSpatial .............................................................................................................. 40

3.3. Δπηθνηλσλία ΒΓ ....................................................................................................... 40

3.3.1. .NET Framework Data Providers (ADO.NET) ..................................................... 40

3.3.2. Npgsql Data Provider ............................................................................................ 42

3.3.3. SQL (Structured Query Language)........................................................................ 42

4. ηάδια ανάπηςξηρ ηηρ εθαπμογήρ ........................................................................ 43

4.1. πιινγή θαη Αλάιπζε Απαηηήζεσλ Δθαξκνγήο ..................................................... 43

4.1.1. Πξνζδηνξηζκφο Αλαγθψλ ...................................................................................... 43

Αλάπηπμε Πηινηηθήο Δθαξκνγήο γηα ηε δηελέξγεηα πλδπαζηηθώλ Διέγρσλ

κεηαμύ Πεξηγξαθηθώλ θαη Υσξηθώλ Βάζεσλ Κηεκαηνινγίνπ Μάξηηνο 2012

ύληαμε: Γεσξγαθάθε ηαπξνύια 8 /144

4.1.2. Καηαγξαθή απαηηήζεσλ ........................................................................................ 44

4.2. Δλλνηνινγηθφο ρεδηαζκφο ...................................................................................... 45

4.2.1. Αλάιπζε θαη Αμηνιφγεζε Γεδνκέλσλ Δηζφδνπ.................................................... 45

4.2.2. Αλάιπζε θαη Αμηνιφγεζε Γεδνκέλσλ Δμφδνπ ..................................................... 47

4.3. Δπηινγή ΓΒΓ θαη Λνγηζκηθνχ ............................................................................... 48

4.3.1. Δπηινγή ΓΒΓ ....................................................................................................... 48

4.3.2. Τπνζηεξηθηηθφ Λνγηζκηθφ .................................................................................... 48

4.4. Λνγηθφο θαη Φπζηθφο ρεδηαζκφο ............................................................................ 49

4.4.1. Λνγηθφ ρήκα ΒΓ PostgreSQL/PostGIS ............................................................... 49

4.4.2. Μνλνπάηηα Αλαδήηεζεο (Δπξεηήξηα) ................................................................... 53

4.4.3. Απνηέιεζκα Δξγαζηψλ ηαδίνπ ............................................................................ 54

4.5. ρεδηαζκφο ιεηηνπξγηψλ ειέγρνπ θαη δνζνιεςηψλ ................................................. 54

4.5.1. ρεδηαζκφο ιεηηνπξγηψλ ειέγρνπ .......................................................................... 54

4.5.2. ρεδηαζκφο δνζνιεςηψλ ....................................................................................... 56

4.6. ρεδηαζκφο ηεο Γηεπαθήο Υξήζηε (GUI) ................................................................ 56

4.6.1. Φφξκα ηνηρείσλ χλδεζεο κε Γηαθνκηζηή .......................................................... 56

4.6.2. Φφξκα Δπηινγήο Βάζεο Γεδνκέλσλ ..................................................................... 57

4.6.3. Φφξκα Βαζηθψλ Λεηηνπξγηψλ Δθαξκνγήο (Main) ................................................ 57

4.7. Τινπνίεζε ............................................................................................................... 58

4.7.1. Δηζαγσγή Γεδνκέλσλ ζηελ PostgreSQL/PostGIS ................................................ 58

4.7.2. Αλάπηπμε εξσηεκάησλ ειέγρσλ ζε SQL .............................................................. 63

4.7.3. Αλάπηπμε ηεο Γηεπαθήο Υξήζηε (GUI) ................................................................ 64

4.7.4. Αλάπηπμε ησλ ιεηηνπξγηψλ εθαξκνγήο ................................................................. 67

4.8. Έιεγρνο θαη αμηνιφγεζε πηινηηθήο εθαξκνγήο ....................................................... 76

4.8.1. Έιεγρνο νξζφηεηαο ιεηηνπξγίαο ............................................................................ 76

4.8.2. Έιεγρνο πνηφηεηαο ιεηηνπξγίαο ............................................................................. 77

5. Η εθαπμογή ............................................................................................................ 80

5.1.1. Γεληθά .................................................................................................................... 80

5.1.2. Απαηηήζεηο ινγηζκηθνχ γηα ηελ εθηέιεζε ηεο εθαξκνγήο ..................................... 80

5.1.3. Πξνεξγαζίεο - Δηζαγσγή δεδνκέλσλ ζηελ PostgreSQL/PostGIS ......................... 80

5.1.4. Λεηηνπξγηθφηεηα Δθαξκνγήο ................................................................................ 83

6. ςμπεπάζμαηα - Πποηάζειρ για μελλονηικέρ επεκηάζειρ ................................... 89

Βιβλιογπαθία .................................................................................................................... 91

Ιζηοζελίδερ ........................................................................................................................ 91

Παξάξηεκα Η ....................................................................................................................... 93

Παξάξηεκα ΗΗ ..................................................................................................................... 99

Παξάξηεκα ΗΗΗ .................................................................................................................. 131

Αλάπηπμε Πηινηηθήο Δθαξκνγήο γηα ηε δηελέξγεηα πλδπαζηηθώλ Διέγρσλ

κεηαμύ Πεξηγξαθηθώλ θαη Υσξηθώλ Βάζεσλ Κηεκαηνινγίνπ Μάξηηνο 2012

ύληαμε: Γεσξγαθάθε ηαπξνύια 9 /144

Δςπεηήπιο Πινάκυν

Πίλαθαο 1. Παξαδνηέα Υσξηθήο Βάζεο Γεδνκέλσλ Αλάξηεζεο .................................. 21

Πίλαθαο 2. Παξαδνηέα Πεξηγξαθηθήο Βάζεο Γεδνκέλσλ Αλάξηεζεο .......................... 22

Πίλαθαο 3. PROP_ηνηρεία Ιδηνθηεζηώλ ..................................................................... 24

Πίλαθαο 4. PST_ηνηρεία Ιδηνθηεζηώλ ......................................................................... 26

Πίλαθαο 5. Απαηηήζεηο πνηόηεηαο ζπζρεηηζκνύ Υσξηθώλ-Πεξηγξαθηθώλ ηνηρείσλ.... 28

Πίλαθαο 6. Βαζηθά πζηαηηθά Αληηθείκελα ελόο .NET Data Provider ......................... 41

Πίλαθαο 7. DOC_BEN_RIGHT_ ηνηρεία δηθαηνύρσλ, εγγξάθσλ θαη δηθαησκάησλ .. 47

Πίλαθαο 8. Πίλαθαο ζπκβαηόηεηαο Data Types (Access to PostgreSQL) .................... 51

Πίλαθαο 9. Κσδηθνί θαη Πεξηγξαθέο Διέγρσλ πξνο πινπνίεζε ................................... 55

Αλάπηπμε Πηινηηθήο Δθαξκνγήο γηα ηε δηελέξγεηα πλδπαζηηθώλ Διέγρσλ

κεηαμύ Πεξηγξαθηθώλ θαη Υσξηθώλ Βάζεσλ Κηεκαηνινγίνπ Μάξηηνο 2012

ύληαμε: Γεσξγαθάθε ηαπξνύια 10 /144

Δςπεηήπιο Δικόνυν

Δηθόλα 1. Παξάκεηξνη εληνιώλ psql γηα ην πεξηβάιινλ command prompt .................. 33

Δηθόλα 2. Παξάκεηξνη κεηα-εληνιώλ θειύθνπο psql .................................................... 34

Δηθόλα 3. Δληνιέο θαη παξάκεηξνη γηα ρξήζε ηνπ κεηαηξνπέα shp2pgsql .................... 37

Δηθόλα 4. Δληνιέο θαη παξάκεηξνη γηα ρξήζε ηνπ κεηαηξνπέα pgsql2shp .................... 38

Δηθόλα 5. Βαζηθά πζηαηηθά Αληηθείκελα ελόο .NET Data Provider ........................... 41

Δηθόλα 6. Γεκηνπξγία ΒΓ ζηελ PostgreSQL κέζσ psql ................................................ 58

Δηθόλα 7. Δηζαγσγή δεδνκέλσλ πεξηγξαθηθήο βάζεο κέζσ psql .................................. 61

Δηθόλα 8. Δηζαγσγή δεδνκέλσλ πίλαθα access ρσξηθήο βάζεο κέζσ psql .................. 61

Δηθόλα 9. Δηζαγσγή ρσξηθώλ δεδνκέλσλ κέζσ shp2pgsql θαη psql ............................ 62

Δηθόλα 10. Δληνιέο εηζαγσγήο ρσξηθήο βάζεο (shp2pgsql θαη psql) ........................... 63

Δηθόλα 11. Γεκηνπξγία Views Διέγρσλ κέζσ psql ....................................................... 64

Δηθόλα 12. Γεκηνπξγία Tables Διέγρσλ κέζσ psql ...................................................... 64

Δηθόλα 13. Φόξκα ηνηρείσλ ύλδεζεο κε Γηαθνκηζηή ................................................ 65

Δηθόλα 14. Φόξκα Δπηινγήο Βάζεο Γεδνκέλσλ ........................................................... 65

Δηθόλα 15. Φόξκα Βαζηθώλ Λεηηνπξγηώλ Δθαξκνγήο (Main)...................................... 67

Δηθόλα 16. Λίζηα Διέγρσλ θαη κόλν Απνηειέζκαηα ζε Πίλαθα .................................... 74

Δηθόλα 17. Λίζηα Διέγρσλ θαη κόλν Απνηειέζκαηα ζε Υάξηε ...................................... 74

Δηθόλα 18. Δμαγσγή Απνηειεζκάησλ ζε Πίλαθα γηα απνζήθεπζε ζε αξρείν excel ...... 75

Δηθόλα 19. Δμαγσγή Απνηειεζκάησλ ζε Υάξηε θαη Απνζήθεπζε ζε shapefile ............. 76

Δηθόλα 20. Γξαθηθό Πεξηβάιινλ Υξήζηε (GUI) θαηά ηελ εθθίλεζε ηεο εθαξκνγήο .... 83

Δηθόλα 21. Δπηινγή Βάζεο Γεδνκέλσλ πξνο Έιεγρν .................................................... 83

Δηθόλα 22. Αιιαγή ηνηρείσλ ύλδεζεο ή Αιιαγή Βάζεο Γεδνκέλσλ ......................... 84

Δηθόλα 23. Δπηινγή ηαηηζηηθά Διέγρσλ ...................................................................... 85

Δηθόλα 24.Απνηειέζκαηα Διέγρνπ ζε Πίλαθα θαη ζε Υάξηε ......................................... 85

Δηθόλα 25.Δκθάληζε /Απόθξπςε θσδηθώλ κε ζπκκνξθνύκελσλ νληνηήησλ ............... 86

Δηθόλα 26. Πξνβνιή απνηειεζκάησλ κόλν ζε Υάξηε ................................................... 87

Δηθόλα 27. Πξνβνιή κόλν Λίζηα Διέγρσλ θαη Απνηειέζκαη ζε Πίλαθα ...................... 88

Αλάπηπμε Πηινηηθήο Δθαξκνγήο γηα ηε δηελέξγεηα πλδπαζηηθώλ Διέγρσλ

κεηαμύ Πεξηγξαθηθώλ θαη Υσξηθώλ Βάζεσλ Κηεκαηνινγίνπ Μάξηηνο 2012

ύληαμε: Γεσξγαθάθε ηαπξνύια 11 /144

Πεπίλητη

Αληηθείκελν ηεο παξνχζαο εξγαζίαο ήηαλ ε αλάπηπμε κηαο πηινηηθήο εθαξκνγήο γηα

ηε δηελέξγεηα ζπλδπαζηηθψλ ειέγρσλ κεηαμχ πεξηγξαθηθψλ θαη ρσξηθψλ βάζεσλ

θηεκαηνινγίνπ. Γηα ηελ πινπνίεζε ηεο εθαξκνγήο ρξεζηκνπνηήζεθε ην

αληηθεηκελνζρεζηαθφ ΓΒΓ PostgreSQL ζε ζπλδπαζκφ κε ηελ επέθηαζε PostGIS -

γηα ηελ ππνζηήξημε ρσξηθψλ δεδνκέλσλ, ελψ ε αλάπηπμε έγηλε ζε γιψζζα

πξνγξακκαηηζκνχ VB.NET. Σν ηειηθφ πξντφλ απνηέιεζε έλα ιεηηνπξγηθφ εξγαιείν

γηα ηελ εθηέιεζε ησλ αλσηέξσ ειέγρσλ, φπσο θαη γηα ηελ νπηηθνπνίεζε θαη

απνζήθεπζε ησλ απνηειεζκάησλ ηνπο κέζα απφ έλα θηιηθφ πεξηβάιινλ ρξήζηε.

Λέμεηο Κιεηδηά: Βάζεηο Γεδνκέλσλ, Έιεγρνη Πνηόηεηαο, Κηεκαηνιόγην, PostgreSQL,

PostGIS, VB.NET

Abstract

The purpose of this study was to develop a pilot application to perform combinational

control checks between descriptive and spatial cadastral databases. The means used

for implementing the application were the object-relational DBMS PostgreSQL in

conjunction with the extension PostGIS - to support spatial data, while the

development was done in VB.NET programming language. The final output was a

functional tool for conducting such checks, as for the visualization and storage of the

results through a user-friendly interface.

Λέμεηο Κιεηδηά: Database, Quality controls, Cadastre, PostgreSQL, PostGIS,

VB.NET

Αλάπηπμε Πηινηηθήο Δθαξκνγήο γηα ηε δηελέξγεηα πλδπαζηηθώλ Διέγρσλ

κεηαμύ Πεξηγξαθηθώλ θαη Υσξηθώλ Βάζεσλ Κηεκαηνινγίνπ Μάξηηνο 2012

ύληαμε: Γεσξγαθάθε ηαπξνύια 12 /144

Ππόλογορ

«Η δηαρείξηζε θαη ε αλάιπζε γεσγξαθηθώλ δεδνκέλσλ απνηειεί έλα εξεπλεηηθό πεδίν

κείδνλνο ζεκαζίαο ζηελ επνρή καο. Τπνινγίδεηαη όηη ην 80% ησλ νηθνλνκηθώλ θαη

πνιηηηθώλ απνθάζεσλ ζε παγθόζκην επίπεδν εκπιέθνπλ άκεζα ή έκκεζα γεσγξαθηθέο

πιεξνθνξίεο. Σα πζηήκαηα Γεσγξαθηθώλ Πιεξνθνξηώλ (ΓΠ) απνηεινύλ ηελ

απάληεζε ηεο ηερλνινγίαο ζηηο επείγνπζεο απαηηήζεηο ρξεζηώλ θαη εθαξκνγώλ»

(ηεθαλάθεο, Δ., 2010)

Σν Δζληθφ Κηεκαηνιφγην είλαη έλα εληαίν, ζπζηεκαηηθφ θαη δηαξθψο ελεκεξσκέλν

χζηεκα Πιεξνθνξηψλ1 ην νπνίν ζπιιέγεη, θαηαγξάθεη, δηαρεηξίδεηαη θαη ζπληεξεί

ηελ πιεξνθνξία ζρεηηθά κε ην ηδηνθηεζηαθφ θαζεζηψο (πεξηγξαθηθή πιεξνθνξία) θαη

ηε γεσκεηξηθή πεξηγξαθή / γεσγξαθηθή ππφζηαζε (ρσξηθή πιεξνθνξία) θάζε

ηκήκαηνο γεο, κε ηελ επζχλε θαη ηελ εγγχεζε ηνπ Γεκνζίνπ.

Ζ θηεκαηνθεληξηθή δνκή ηεο «Κηεκαηνινγηθήο Βάζεο» θαζηζηά ην Δζληθφ

Κηεκαηνιφγην έλα ηζρπξφ εξγαιείν γηα ηνλ νξζνινγηθφ ζρεδηαζκφ ησλ ρξήζεσλ ηνπ

ρψξνπ θαη ηε βέιηηζηε αμηνπνίεζε ησλ θνηλσληθψλ θαη νηθνλνκηθψλ πφξσλ ηεο

ρψξαο. πλεπψο, κε δεδνκέλε ηελ αμία θαη ην ζεκαληηθφ αλαπηπμηαθφ ραξαθηήξα ηνπ

έξγνπ, ε αλάγθε γηα πιεξφηεηα, νξζφηεηα θαη πνηφηεηα ησλ ηεξνχκελσλ

πιεξνθνξηψλ ζηελ Κηεκαηνινγηθή Βάζε θξίλεηαη επηηαθηηθή.

Ζ δηαζθάιηζε ησλ αλαθεξφκελσλ παξακέηξσλ επηηπγράλεηαη κέζα απφ έλα

θαηάιιεια ζρεδηαζκέλν κεραληζκφ ειέγρνπ ησλ δεδνκέλσλ, ν νπνίνο εθηειείηαη

ηφζν θαηά ηε δεκηνπξγία ηεο βάζεο φζν θαη θαηά ηελ ελεκέξσζε ηεο.

Ζ παξνχζα εξγαζία πξαγκαηεχεηαη ην ζρεδηαζκφ θαη ηελ αλάπηπμε πηινηηθήο

εθαξκνγήο ειέγρνπ, σο ηκήκα ηνπ αλσηέξσ ειεγθηηθνχ κεραληζκνχ, κε αληηθείκελν

ηε ζχγθξηζε ησλ πεξηγξαθηθψλ θαη ρσξηθψλ βάζεσλ Κηεκαηνγξάθεζεο2

αμηνπνηψληαο ηηο δπλαηφηεηεο ηεο ζχγρξνλεο ηερλνινγίαο.

1 ζπληζηά ηελ «Κηεκαηνινγηθή Βάζε»

2 αθνξά ηε θάζε δεκηνπξγίαο Δζληθνχ Κηεκαηνινγίνπ

Αλάπηπμε Πηινηηθήο Δθαξκνγήο γηα ηε δηελέξγεηα πλδπαζηηθώλ Διέγρσλ

κεηαμύ Πεξηγξαθηθώλ θαη Υσξηθώλ Βάζεσλ Κηεκαηνινγίνπ Μάξηηνο 2012

ύληαμε: Γεσξγαθάθε ηαπξνύια 13 /144

Ζ εξγαζία νξγαλψλεηαη ζε 6 επηκέξνπο ελφηεηεο νη νπνίεο ζπλνπηηθά πεξηιακβάλνπλ:

Κεθάιαην 1 - Δηζαγσγή: χληνκε πεξηγξαθή ηνπ αληηθεηκέλνπ θαη ησλ ζηφρσλ ηεο

εξγαζίαο, κε αλαθνξά ζηα δεδνκέλα πνπ ρξεζηκνπνηήζεθαλ θαη ηελ ρξεζηκφηεηα ηνπ

απνηειέζκαηνο.

Κεθάιαην 2 - Κηεκαηνιόγην θαη Βάζεηο Γεδνκέλσλ Κηεκαηνινγίνπ: Παξάζεζε

βαζηθψλ ελλνηψλ ηνπ Κηεκαηνινγίνπ, αλαιπηηθή πεξηγξαθή δεδνκέλσλ

Κηεκαηνινγίνπ θαη κνξθφηππνπ απηψλ, θαζψο θαη ηεθκεξίσζε αλαγθαηφηεηαο

ειέγρσλ πνηφηεηαο.

Κεθάιαην 3 - Μέζα Τινπνίεζεο: Δπηζθφπεζε ησλ επηιερζέλησλ εξγαιείσλ θαη

ινγηζκηθψλ πνπ ρξεζηκνπνηήζεθαλ γηα ηελ πιήξσζε ηνπ ζθνπνχ ηεο εξγαζίαο.

Κεθάιαην 4 - ηάδηα αλάπηπμεο ηεο εθαξκνγήο: Αλαιπηηθή παξάζεζε ησλ ζηαδίσλ

αλάπηπμεο ηεο εθαξκνγήο κε αλαθνξά ζε πξνβιήκαηα πνπ αληηκεησπίζηεθαλ θαη ηηο

ιχζεηο πνπ δφζεθαλ.

Κεθάιαην 5 - Η εθαξκνγή: Παξνπζίαζε ηεο πηινηηθήο εθαξκνγήο κέζα απφ ζχληνκν

νδεγφ ρξήζεο απηήο.

Κεθάιαην 6 - πκπεξάζκαηα - Πξνηάζεηο γηα κειινληηθέο επεθηάζεηο: Αμηνιφγεζε ηνπ

ηειηθνχ πξντφληνο, εμαγσγή ζπκπεξαζκάησλ θαη πξνηάζεηο γηα κειινληηθέο

επεθηάζεηο απηνχ.

Αλάπηπμε Πηινηηθήο Δθαξκνγήο γηα ηε δηελέξγεηα πλδπαζηηθώλ Διέγρσλ

κεηαμύ Πεξηγξαθηθώλ θαη Υσξηθώλ Βάζεσλ Κηεκαηνινγίνπ Μάξηηνο 2012

ύληαμε: Γεσξγαθάθε ηαπξνύια 14 /144

Αλάπηπμε Πηινηηθήο Δθαξκνγήο γηα ηε δηελέξγεηα πλδπαζηηθώλ Διέγρσλ

κεηαμύ Πεξηγξαθηθώλ θαη Υσξηθώλ Βάζεσλ Κηεκαηνινγίνπ Μάξηηνο 2012

ύληαμε: Γεσξγαθάθε ηαπξνύια 15 /144

1. Διζαγυγή

1.1. Ανηικείμενο - ηόσοι ηηρ επγαζίαρ

ην πιαίζην ηεο παξνχζαο δηπισκαηηθήο εξγαζίαο έγηλε κηα πξνζπάζεηα πινπνίεζεο

πηινηηθήο εθαξκνγήο γηα ην ζπλδπαζηηθφ έιεγρν ησλ πεξηγξαθηθψλ θαη ρσξηθψλ

βάζεσλ δεδνκέλσλ ηνπ Δζληθνχ Κηεκαηνινγίνπ.

Πξφθεηηαη γηα δεδνκέλα ηα νπνία αθνξνχλ ζηηο ππφ Κηεκαηνγξάθεζε πεξηνρέο ηεο

ρψξαο θαη δεκηνπξγνχληαη απφ ηνπο Αλαδφρνπο ησλ αληίζηνηρσλ κειεηψλ

Κηεκαηνγξάθεζεο γηα ηε Γεκηνπξγία Δζληθνχ Κηεκαηνινγίνπ κε αλαζέηνπζα αξρή

ηελ Κηεκαηνιφγην Α.Δ.

Σα δεδνκέλα εηζφδνπ ηεο εθαξκνγήο πεξηιακβάλνληαη ζηηο Φεθηαθέο

Κηεκαηνινγηθέο Βάζεηο Γεδνκέλσλ (ΦΚΒΓ) θαη δηαθξίλνληαη ζε πεξηγξαθηθά

δεδνκέλα (ΦΚΒΠΓ) θαη ρσξηθά δεδνκέλα (ΦΚΒΥΓ). Ζ κνξθή / δνκή ησλ

δεδνκέλσλ νξίδεηαη απζηεξά απφ ηηο Σερληθέο Πξνδηαγξαθέο ηνπ Έξγνπ (Ο.Κ.Υ.Δ.,

«Δζληθό Κηεκαηνιόγην, Σερληθέο Πξνδηαγξαθέο Μειεηώλ Κηεκαηνγξάθεζεο γηα ηε

Γεκηνπξγία Δζληθνύ Κηεκαηνινγίνπ» ΦΔΚ η. Β΄, 1156/ 24-06-2008, Ο.Κ.Υ.Δ.,

«Αλαζεώξεζε ηερληθώλ πξνδηαγξαθώλ ησλ κειεηώλ θηεκαηνγξάθεζεο γηα ηε

δεκηνπξγία ηνπ Δζληθνύ Κηεκαηνινγίνπ», ΦΔΚ η.Β΄, 710 / 29-04-2011).

Πην ζπγθεθξηκέλα, ηα πεξηγξαθηθά δεδνκέλα είλαη ηεο κνξθήο .mdb (MsAccess), ελψ

ηα ρσξηθά δεδνκέλα είλαη ηεο κνξθήο .shp (ESRI shapefiles). Σα δεδνκέλα απηά -

πεξηγξαθηθά θαη ρσξηθά - ζρεηίδνληαη κεηαμχ ηνπο κε ηε βνήζεηα ζπγθεθξηκέλσλ

«πεδίσλ / θιεηδηψλ» θαη νθείινπλ λα είλαη «αιιεινζπκπιεξνχκελα».

ηφρνο ηεο εξγαζίαο ήηαλ ν ζρεδηαζκφο θαη ε αλάπηπμε κηαο πηινηηθήο εθαξκνγήο ζε

γιψζζα πξνγξακκαηηζκνχ VB.NET, κέζα απφ ηελ νπνία λα δίλεηαη ζην ρξήζηε ε

δπλαηφηεηα πξφζβαζεο ζηα πξναλαθεξζέληα δεδνκέλα, ηα νπνία ζα έρνπλ πξν-

απνζεθεπηεί ζην αληηθεηκελν-ζρεζηαθφ χζηεκα Γηαρείξηζεο Βάζεσλ Γεδνκέλσλ

Postgres/PostGIS, θαη εθηέιεζεο κηαο ζεηξάο ειέγρσλ ζχγθξηζεο - κε ηε βνήζεηα

εξσηεκάησλ SQL - γηα ηελ πηζηνπνίεζε ηεο πνηφηεηαο ησλ δεδνκέλσλ σο πξνο ηελ

Αλάπηπμε Πηινηηθήο Δθαξκνγήο γηα ηε δηελέξγεηα πλδπαζηηθώλ Διέγρσλ

κεηαμύ Πεξηγξαθηθώλ θαη Υσξηθώλ Βάζεσλ Κηεκαηνινγίνπ Μάξηηνο 2012

ύληαμε: Γεσξγαθάθε ηαπξνύια 16 /144

πιήξσζε ησλ απαηηήζεσλ ησλ Σερληθψλ Πξνδηαγξαθψλ Κηεκαηνγξάθεζεο. ε

πεξίπησζε εληνπηζκνχ κε ζπκκνξθψζεσλ απφ ηνπο ειέγρνπο, δίλεηαη ε δπλαηφηεηα

νπηηθνπνίεζεο ησλ απνηειεζκάησλ ηφζν ζε επίπεδν ράξηε φζν θαη ζε επίπεδν

πίλαθα, ελψ αληίζηνηρα, γηα ηελ θαιχηεξε δηαρείξηζε θαη εμάιεηςή ηνπο, έρεη

πξνβιεθζεί θαη ε επηινγή εμαγσγήο θαη απνζήθεπζήο ηνπο ζε αξρεία excel (πίλαθαο)

θαη ζε αξρεία shapefiles (ράξηεο). Όιεο νη παξαπάλσ ελέξγεηεο γίλνληαη κέζα απφ

επηινγέο ηεο εθαξκνγήο πνπ είλαη ζηε δηάζεζε ηνπ εθάζηνηε ρξήζηε γηα κεξηθή ή

ζπλνιηθή πινπνίεζε.

Σν ηειηθφ πξντνλ ηεο εξγαζίαο είλαη κηα πηινηηθή εθαξκνγή πνπ δίλεη ηε δπλαηφηεηα,

κέζα απφ έλα θηιηθφ θαη εχρξεζην πεξηβάιινλ γηα ην ρξήζηε, λα έρεη κηα επνπηηθή

εηθφλα γηα ηελ πιήξσζε ησλ «αιιεινζπζρεηίζεσλ» πνπ νθείινπλ λα έρνπλ ηα

δεδνκέλα Κηεκαηνγξάθεζεο (πεξηγξαθηθά θαη ρσξηθά) βάζεη ησλ αληίζηνηρσλ

Σερληθψλ Πξνδηαγξαθψλ ηνπ Έξγνπ.

Ζ εθαξκνγή απηή κπνξεί λα αμηνπνηεζεί ηφζν απφ ηελ ίδηα ηελ αλαζέηνπζα αξρή -

Κηεκαηνιφγην Α.Δ. - γηα ηνλ έιεγρν ησλ παξαδνηέσλ αξρείσλ, φζν θαη απφ ηνπο

Αλαδφρνπο ησλ κειεηψλ Κηεκαηνγξάθεζεο γηα ηνλ έιεγρν ηεο πνηφηεηαο ησλ

παξαγφκελσλ πξντφλησλ (εζσηεξηθνί έιεγρνη) θαη ηελ εμαζθάιηζε ηεο ζπκκφξθσζήο

ηνπο κε ηηο αληίζηνηρεο πξνδηαγξαθέο.

Γηα ηηο αλάγθεο ηεο εξγαζίαο, σο δεδνκέλα εηζφδνπ θαη δνθηκψλ ηεο εθαξκνγήο,

ρξεζηκνπνηήζεθαλ πξαγκαηηθά δεδνκέλα Μειεηψλ Κηεκαηνινγίνπ, πνπ βξίζθνληαη

ζηε θάζε ηεο Κηεκαηνγξάθεζεο γηα ηε Γεκηνπξγία Δζληθνχ Κηεκαηνινγίνπ.

Αλάπηπμε Πηινηηθήο Δθαξκνγήο γηα ηε δηελέξγεηα πλδπαζηηθώλ Διέγρσλ

κεηαμύ Πεξηγξαθηθώλ θαη Υσξηθώλ Βάζεσλ Κηεκαηνινγίνπ Μάξηηνο 2012

ύληαμε: Γεσξγαθάθε ηαπξνύια 17 /144

2. Κηημαηολόγιο και Βάζειρ Γεδομένυν Κηημαηολογίος

2.1. Οπιζμοί Βαζικών Δννοιών Κηημαηολογίος

Αθνινπζνχλ νη νξηζκνί θάπνησλ βαζηθψλ ελλνηψλ ηνπ Κηεκαηνινγίνπ φπσο

πξνθχπηνπλ απφ ηελ αληίζηνηρε βηβιηνγξαθία:

2.1.1. Δζληθφ Κηεκαηνιφγην

Σν Δζληθφ Κηεκαηνιφγην είλαη έλα εληαίν θαη δηαξθψο ελεκεξσκέλν ζχζηεκα

πιεξνθνξηψλ πνπ θαηαγξάθεη ηηο λνκηθέο, ηερληθέο θαη άιιεο πξφζζεηεο πιεξνθνξίεο

γηα ηα αθίλεηα θαη ηα δηθαηψκαηα πάλσ ζ΄απηά, κε ηελ επζχλε θαη ηελ εγγχεζε ηνπ

Γεκνζίνπ. Ζ ζχληαμε ηνπ απνζθνπεί ζηε δεκηνπξγία ενόρ ζύγσπονος, πλήπυρ

αςηομαηοποιημένος απσείος ακίνηηηρ ιδιοκηηζίαρ, φια ηα ζηνηρεία ηνπ νπνίνπ

έρνπλ απνδεηθηηθφ ραξαθηήξα, εμαζθαιίδνληαο ηε κεγαιχηεξε δπλαηή δεκνζηφηεηα

θαη αζθάιεηα ησλ ζπλαιιαγψλ.

Πξφθεηηαη γηα έλα ζχζηεκα πνιχ πην ζχγρξνλν θαη νινθιεξσκέλν απφ ην παιαηφ

ζχζηεκα ησλ Τπνζεθψλ θαη Μεηαγξαθψλ πνπ ππνζηεξίδνπλ ηα Τπνζεθνθπιαθεία.

πγθεθξηκέλα, ην Δζληθφ Κηεκαηνιφγην:

Καηαγξάθεη κε βάζε ην αθίλεην φιεο ηηο πξάμεηο πνπ δεκηνπξγνχλ,

κεηαβηβάδνπλ, αιινηψλνπλ ή θαηαξγνχλ δηθαηψκαηα ζε αθίλεηα. Παξέρεη

ζπλεπψο πιεξνθνξία άκεζα, εχθνια θαη αμηφπηζηα γηα ην ζχλνιν ησλ

δηθαησκάησλ πνπ ππάξρνπλ ζε θάζε αθίλεην κε απιή θαη μεθάζαξε δηαδηθαζία.

Δγγπάηαη ηηο λνκηθέο πιεξνθνξίεο πνπ θαηαγξάθεη, θαζψο ε θαηαρψξηζε θάζε

πξάμεο γίλεηαη κφλν κεηά απφ νπζηαζηηθφ έιεγρν λνκηκφηεηαο, δειαδή θακία

πξάμε δελ θαηαρσξίδεηαη αλ ν κεηαβηβάδσλ δελ είλαη ν θεξφκελνο ζην

θηεκαηνιφγην σο δηθαηνχρνο.

Καηαγξάθεη θαη ηελ γεσγξαθηθή πεξηγξαθή (κνξθή, ζέζε θαη κέγεζνο) ηνπ

αθηλήηνπ.

Απνθαιχπηεη θαη θαηαγξάθεη ζπζηεκαηηθά ηε Γεκφζηα αθίλεηε πεξηνπζία, γηα

πξψηε θνξά ζηε ζχγρξνλε Διιάδα.

Αλάπηπμε Πηινηηθήο Δθαξκνγήο γηα ηε δηελέξγεηα πλδπαζηηθώλ Διέγρσλ

κεηαμύ Πεξηγξαθηθώλ θαη Υσξηθώλ Βάζεσλ Κηεκαηνινγίνπ Μάξηηνο 2012

ύληαμε: Γεσξγαθάθε ηαπξνύια 18 /144

Καηαγξάθεη ηα δηθαηψκαηα απφ ρξεζηθηεζία ε νπνία, ηδίσο ζηελ επαξρία,

απνηειεί ηνλ ζπλεζέζηεξν ίζσο ηξφπν θηήζεο θπξηφηεηαο ιφγσ ηνπ άηππνπ ησλ

κεηαβηβάζεσλ.

2.1.2. χληαμε Κηεκαηνινγίνπ (Κηεκαηνγξάθεζε)

Ζ ζχληαμε ηνπ θηεκαηνινγίνπ ("θηεκαηνγξάθεζε") κηαο πεξηνρήο νξίδεηαη σο ε

δηαδηθαζία θαηαγξαθήο ησλ εκπξάγκαησλ ή άιισλ εγγξαπηέσλ δηθαησκάησλ (γηα

παξάδεηγκα, πιήξεο ή ςηιή θπξηφηεηα, επηθαξπία, πξνζεκείσζε ή άιιν εκπξάγκαην

βάξνο, θνθ) πνπ έρνπλ ηα θπζηθά ή λνκηθά πξφζσπα ζε αθίλεηα κηαο ζπγθεθξηκέλεο

πεξηνρήο ηεο ρψξαο θαη ε ζχλδεζε ησλ δηθαησκάησλ απηψλ κε ζπγθεθξηκέλν(-α)

αθίλεην(-α), φπσο απηά νξίδνληαη θαη απεηθνλίδνληαη θαηφπηλ δηαδηθαζηψλ ειέγρνπ

θαη ηερληθήο επεμεξγαζίαο ζηα θηεκαηνινγηθά δηαγξάκκαηα.

Καηά ηελ θαηαγξαθή ελφο εκπξάγκαηνπ δηθαηψκαηνο θαηαγξάθνληαη επίζεο θαη κηα

ζεηξά λνκηθψλ πιεξνθνξηψλ (ιεμηαξρηθά ζηνηρεία θαη ζηνηρεία ηαπηφηεηαο ηνπ

δηθαηνχρνπ, ηξφπνο απφθηεζεο ηνπ δηθαηψκαηνο, ζηνηρεία ηεο πξάμεο κε ηελ νπνία

έρεη απνθηεζεί ην δηθαίσκα θ.ιπ.). Δπηπξνζζέησο, ηα γεσηεκάρηα απεηθνλίδνληαη ζηα

θηεκαηνινγηθά δηαγξάκκαηα θαηά απφιπην ηξφπν κε ζπγθεθξηκέλεο ζπληεηαγκέλεο

θνξπθψλ ζην Δζληθφ Γεσδαηηηθφ χζηεκα Αλαθνξάο (ΔΓΑ 87), νξηνγξακκέο θαη

εκβαδά.

ςνεπώρ, η διαδικαζία κηημαηογπάθηζηρ αποζκοπεί αθενόρ ζηη ζςλλογή,

επεξεπγαζία και καηαγπαθή ηυν εμππάγμαηυν και άλλυν εγγπαπηέυν

δικαιυμάηυν ανά ακίνηηο και αθεηέπος, ζηη ζςλλογή και επεξεπγαζία

ζηοισείυν πος θα επιηπέτοςν ηην καηά ηο δςναηόν ακπιβέζηεπη απεικόνιζη ηυν

γευηεμασίυν ζηο κηημαηολογικό διάγπαμμα.

2.1.3. Κηεκαηνινγηθή βάζε

Χο θηεκαηνινγηθή βάζε νξίδεηαη ε ςεθηαθή βάζε δεδνκέλσλ πνπ ηεξείηαη απφ ηνλ

αλάδνρν ηεο εθάζηνηε κειέηεο θηεκαηνγξάθεζεο θαη πεξηιακβάλεη ην ζχλνιν ηεο

πιεξνθνξίαο φπσο απηή πξνθχπηεη απφ ηε ζπλερή επεμεξγαζία ησλ ζπιιεγνκέλσλ

ζηνηρείσλ/νληνηήησλ (πεξηγξαθηθψλ θαη ρσξηθψλ) θαζ’ φιε ηε δηάξθεηα ηεο

θηεκαηνγξάθεζεο. Σα ζηνηρεία ηεο θηεκαηνινγηθήο βάζεο νξγαλψλνληαη ζε ινγηθέο

ελφηεηεο αλάινγα κε ηνλ ηχπν ησλ ραξαθηεξηζηηθψλ πνπ πεξηγξάθνπλ:

Αλάπηπμε Πηινηηθήο Δθαξκνγήο γηα ηε δηελέξγεηα πλδπαζηηθώλ Διέγρσλ

κεηαμύ Πεξηγξαθηθώλ θαη Υσξηθώλ Βάζεσλ Κηεκαηνινγίνπ Μάξηηνο 2012

ύληαμε: Γεσξγαθάθε ηαπξνύια 19 /144

Φεθηαθή βάζε πεξηγξαθηθψλ ζηνηρείσλ πνπ πεξηέρεη ην ζχλνιν ηεο

πιεξνθνξίαο γηα ηα ζηνηρεία ηδηνθηεζηψλ, επηθαλεηψλ, θηηξίσλ θαη ινηπψλ

ρψξσλ, δηθαηνχρσλ θαη πάζεο θχζεσο ζπλαιιαζζνκέλσλ, εηζεξρνκέλσλ

δειψζεσλ, εγγξαπηέσλ δηθαησκάησλ, ζπιιερζέλησλ εγγξάθσλ, θ.ιπ.

Φεθηαθή βάζε ρσξηθψλ ζηνηρείσλ πνπ πεξηέρεη ηηο δηνηθεηηθέο θαη

θηεκαηνινγηθέο ππνδηαηξέζεηο (φξηα δήκνπ/Σνπηθνχ δηακεξίζκαηνο/θνηλφηεηαο,

φξηα θηεκαηνινγηθνχ ηνκέα, φξηα θηεκαηνινγηθήο ελφηεηαο), ηα γεσηεκάρηα,

ηηο δψλεο πνπ νξίδνληαη κέζα ζηα γεσηεκάρηα (απνθιεηζηηθήο ρξήζεο

δηεξεκέλσλ ηδηνθηεζηψλ, δνπιείαο), ηα κεηαιιεία, ηα θηίξηα/θηίζκαηα, ηα φξηα

αζηηθήο θαη αγξνηηθήο πεξηνρήο, ηηο επηγξαθέο, ηνπο άμνλεο ηνπ νδηθνχ δηθηχνπ

θ.ιπ.

2.1.4. Κσδηθφο Αξηζκφο Δζληθνχ Κηεκαηνινγίνπ (ΚΑΔΚ)

Ο Kσδηθφο Aξηζκφο Eζληθνχ Kηεκαηνινγίνπ (KAEK), είλαη ν απνθιεηζηηθφο γηα

θάζε γεσηεκάρην θσδηθφο αξηζκφο. Ο ΚΑΔΚ έρεη σο βάζε ηε δηνηθεηηθή δηαίξεζε ηεο

ρψξαο θαη απνηειείηαη απφ δψδεθα ςεθία. Σα δχν πξψηα ςεθία αληηζηνηρνχλ ζην

λνκφ, ηα ηξία επφκελα είηε ζην δήκν είηε ζην Σνπηθφ δηακέξηζκα είηε ζηελ θνηλφηεηα,

ηα δχν επφκελα ζηνλ θηεκαηνινγηθφ ηνκέα, ηα δχν επφκελα ζηελ θηεκαηνινγηθή

ελφηεηα ελψ ηα ηξία ηειεπηαία αληηζηνηρνχλ ζηνλ αχμνληα αξηζκφ ηνπ γεσηεκαρίνπ

εληφο ηεο ελφηεηαο.

2.2. Γεδομένα Διζόδος Δθαπμογήρ - ύνδεζη με Σεσνικέρ Πποδιαγπαθέρ

Χο δεδνκέλα εηζφδνπ ηεο εθαξκνγήο επηιέρζεθαλ νη ςεθηαθέο θηεκαηνινγηθέο

βάζεηο δεδνκέλσλ (πεξηγξαθηθέο θαη ρσξηθέο) πνπ απνηεινχλ κέξνο ησλ παξαδνηέσλ

Αλάξηεζεο ησλ Μειεηψλ Κηεκαηνγξάθεζεο γηα ηε Γεκηνπξγία Δζληθνχ

Κηεκαηνινγίνπ.

χκθσλα κε ην Παξάξηεκα Α ησλ Σερληθψλ Πξνδηαγξαθψλ Κηεκαηνγξάθεζεο, ηα

ραξαθηεξηζηηθά ησλ ζηνηρείσλ ηνπ Δζληθνχ Κηεκαηνινγίνπ νξγαλψλνληαη ζε ινγηθέο

ελφηεηεο αλάινγα κε ην είδνο ησλ θηεκαηνινγηθψλ ραξαθηεξηζηηθψλ πνπ

πεξηγξάθνπλ. Οη ελφηεηεο απηέο νκαδνπνηνχληαη ζε δχν βαζηθέο θαηεγνξίεο νη νπνίεο

πεξηιακβάλνπλ ηα ρσξηθά θαη ηα πεξηγξαθηθά ζηνηρεία ηνπ θηεκαηνινγίνπ.

Αλάπηπμε Πηινηηθήο Δθαξκνγήο γηα ηε δηελέξγεηα πλδπαζηηθώλ Διέγρσλ

κεηαμύ Πεξηγξαθηθώλ θαη Υσξηθώλ Βάζεσλ Κηεκαηνινγίνπ Μάξηηνο 2012

ύληαμε: Γεσξγαθάθε ηαπξνύια 20 /144

2.2.1. Υσξηθά ηνηρεία Κηεκαηνινγίνπ

Σα Υσξηθά Κηεκαηνινγηθά ηνηρεία ηαμηλνκνχληαη ζηηο αθφινπζεο ελφηεηεο:

Όξηα ησλ δηνηθεηηθψλ δηαηξέζεσλ (Γήκνο, Σνπηθφ Γηακέξηζκα, Κνηλφηεηα)

Κηεκαηνινγηθνί ηνκείο

Κηεκαηνινγηθέο ελφηεηεο

Γεσηεκάρηα

Όξηα νξηνζεηεκέλσλ νηθηζκψλ / νηθηζκψλ πξν ηνπ 1923

Όξηα ζρεδίνπ πφιεο

Όξηα δηνηθεηηθψλ πξάμεσλ

Όξηα δηεθδηθνχκελσλ εθηάζεσλ απφ Γαζηθέο Τπεξεζίεο

Όξηα αζηηθψλ πεξηνρψλ

Κηίξηα θαη θηίζκαηα

Υψξνη (πεξηνρέο) απνθιεηζηηθήο ρξήζεο ησλ δηεξεκέλσλ ηδηνθηεζηψλ

Εψλεο Γνπιείαο

Μεηαιιεία

Δπηγξαθέο (ηνπσλχκηα θιπ)

ηνηρεία κεζνπαξαιιήισλ δξφκσλ

ηνηρεία ζεκείσλ νηθνδνκηθψλ ηεηξαγψλσλ

Όξηα λνκήο απφ αλαδαζκφ

Ζ παξαδνηέα Φεθηαθή Κηεκαηνινγηθή Βάζε Γεδνκέλσλ Υσξηθψλ ηνηρείσλ

(ΦΚΒΓΥ) ηεο ΑΝΑΡΣΖΖ νξγαλψλεηαη θαη παξαδίδεηαη ανά ΟΣΑ (Οξγαληζκφ

Σνπηθήο Απηνδηνίθεζεο) ζε 18 αξρεία κνξθήο .shp (shape files - ESRI) θαη έλα

αξρείν .mdb (ACCESS).

ηνλ «Πίνακαρ 1. Παξαδνηέα Υσξηθήο Βάζεο Γεδνκέλσλ Αλάξηεζεο» παξαηίζεληαη

επνπηηθά ηα αλσηέξσ ζηνηρεία παξέρνληαο ηαπηφρξνλα ηελ πιεξνθνξία ζρεηηθά κε:

ην φλνκα ηνπ θάζε ζεκαηηθνχ επηπέδνπ,

ηνλ ηχπν ηνπ θάζε αξρείνπ,

ηελ πεξηγξαθή ησλ ζηνηρείσλ πνπ αλαπαξηζηά, θαη

ην αλ απνηειεί παξαδνηέν ηεο Αλάξηεζεο ή φρη.

Αλάπηπμε Πηινηηθήο Δθαξκνγήο γηα ηε δηελέξγεηα πλδπαζηηθώλ Διέγρσλ

κεηαμύ Πεξηγξαθηθώλ θαη Υσξηθώλ Βάζεσλ Κηεκαηνινγίνπ Μάξηηνο 2012

ύληαμε: Γεσξγαθάθε ηαπξνύια 21 /144

Πίνακαρ 1. Παξαδνηέα Υσξηθήο Βάζεο Γεδνκέλσλ Αλάξηεζεο

2.2.2. Πεξηγξαθηθά ηνηρεία Κηεκαηνινγίνπ

Καηά αληηζηνηρία κε ηα ρσξηθά, ηα Πεξηγξαθηθά Κηεκαηνινγηθά ηνηρεία

νκαδνπνηνχληαη ζηηο αθφινπζεο ελφηεηεο:

ηνηρεία ηδηνθηεζηψλ θαη επηθαλεηψλ

ηνηρεία θηηξίσλ, θηηζκάησλ θαη ινηπψλ ρψξσλ.

ηνηρεία δηθαηνχρσλ θαη πάζεο θχζεσο ζπλαιιαζζφκελσλ

ηνηρεία εηζεξρφκελσλ δειψζεσλ

ηνηρεία εγγξαπηέσλ δηθαησκάησλ

ηνηρεία ζπιιερζέλησλ εγγξάθσλ

ηνηρεία εθδνχζαο αξρήο ησλ εγγξάθσλ

Ζ παξαδνηέα Φεθηαθή Κηεκαηνινγηθή Βάζε Γεδνκέλσλ Πεξηγξαθηθψλ ηνηρείσλ

(ΦΚΒΓΠ) ηεο ΑΝΑΡΣΖΖ νξγαλψλεηαη θαη παξαδίδεηαη ανά ΟΣΑ ζε βάζε

δεδνκέλσλ MsACCESS (αξρείν .mdb) θαη απνηειείηαη απφ 47 πίλαθεο ηα ζηνηρεία

ησλ νπνίσλ πξνθχπηνπλ επνπηηθά απφ ηνλ «Πίνακαρ 2. Παξαδνηέα Πεξηγξαθηθήο

Βάζεο Γεδνκέλσλ Αλάξηεζεο» πνπ αθνινπζεί.

ΟΝΟΜΑ ΤΥΡΟΣ ΑΧΕΙΟΥ ΡΕΙΓΑΦΗ ΡΕΙΕΧΟΜΕΝΟΥ

ΡΑΑΔΟΤΕΟ

ΑΝΑΤΗΣΗΣ

PST SHP (πολφγωνα) Στοιχεία γεωτεμαχίων ΝΑΙ

ASTOTA SHP (πολφγωνα) Στοιχεία πολυγϊνου Διμου / Τοπικοφ διαμερίςματοσ / Κοινότθτασ ΝΑΙ

ASTTOM SHP (πολφγωνα) Στοιχεία πολυγϊνου κτθματολογικοφ τομζα ΝΑΙ

ASTENOT SHP (πολφγωνα) Στοιχεία πολυγϊνου κτθματολογικισ ενότθτασ ΝΑΙ

MRT SHP (πολφγωνα) Στοιχεία πολυγϊνου μεταλλείου ΝΑΙ

BLOCK_PNT SHP (ςθμεία) Στοιχεία ςθμείων Οικοδομικϊν Τετραγϊνων ανά ΟΤΑ ΝΑΙ

VST SHP (πολφγωνα) Στοιχεία πολυγϊνου χϊρου αποκλειςτικισ χριςθσ ΝΑΙ

EAS SHP (πολφγωνα) Στοιχεία πολυγϊνου ηϊνθσ δουλείασ ΝΑΙ

VSTEAS_REL MDB (πίνακασ)

Ρίνακασ ςυςχετίςεων Χϊρων Αποκλειςτικι χριςθσ και Δουλειϊν με

τισ ιδιοκτθςίεσ ΝΑΙ

BLD SHP (ςθμεία) Στοιχεία ςθμείου κτιρίου, κτίςματοσ, λοιποφ χϊρου ΝΑΙ

ASTIK SHP (πολφγωνα) Στοιχεία πολυγϊνου αςτικισ ζκταςθσ ΝΑΙ

EIA SHP (πολφγωνα)

Στοιχεία πολυγωνικϊν αυτοτελϊν Ειδικϊν Ιδιοκτθςιακϊν

Αντικειμζνων τα οποία κείτονται άνωκεν ι κάτωκεν άλλων ΝΑΙ

EIA_PNT SHP (ςθμεία)

Στοιχεία ςθμειακϊν αυτοτελϊν Ειδικϊν Ιδιοκτθςιακϊν

Αντικειμζνων ΝΑΙ

ROADS SHP (γραμμζσ) Στοιχεία μεςοπαραλλιλων των δρόμων ΝΑΙ

CHANGE_AREA MDB (πίνακασ) Ρίνακασ Αλλαγϊν εμβαδϊν ΟΧΙ

OIK SHP (πολφγωνα) Πρια των οριοκετθμζνων οικιςμϊν / οικιςμϊν προ του 1923 ΝΑΙ

CBOUND SHP (πολφγωνα) Πρια του ςχεδίου πόλεωσ ΝΑΙ

DBOUND SHP (πολφγωνα) Πρια των Διοικθτικϊν πράξεων ΝΑΙ

FBOUND SHP (πολφγωνα) Πρια των διεκδικοφμενων εκτάςεων από Δαςικζσ Υπθρεςίεσ ΝΑΙ

NOMI SHP (πολφγωνα) Πρια νομισ από αναδαςμό ΝΑΙ

Αλάπηπμε Πηινηηθήο Δθαξκνγήο γηα ηε δηελέξγεηα πλδπαζηηθώλ Διέγρσλ

κεηαμύ Πεξηγξαθηθώλ θαη Υσξηθώλ Βάζεσλ Κηεκαηνινγίνπ Μάξηηνο 2012

ύληαμε: Γεσξγαθάθε ηαπξνύια 22 /144

Πίνακαρ 2. Παξαδνηέα Πεξηγξαθηθήο Βάζεο Γεδνκέλσλ Αλάξηεζεο

ΡΙΝΑΚΑΣΡΑΑΔΟΤΕΟ

ΑΝΑΤΗΣΗΣΡΕΙΓΑΦΗ ΡΕΙΕΧΟΜΕΝΩΝ ΣΧΟΛΙΑ

ADRS ΝΑΙ Στοιχεία διευκφνςεων ιδιοκτθςιϊν

BEN ΝΑΙ Στοιχεία Δικαιοφχων

BEN_PARENT ΝΑΙ Στοιχεία ςυςχετιςμοφ δικαιοφχων α και β φάςθσμζςω αυτοφ του πίνακα γίνονται και

οι ταυτοποιιςεισ προςϊπων

BEN_STANDARD_COMMENTS ΝΑΙ Τυποποιθμζνα Σχόλια Στοιχείων Δικαιοφχων

BEN_TYPE_LUT LookUpTable κωδικοποίηςη γζνουσ και είδουσ δικαιοφχων

BLD ΝΑΙ Στοιχεία Κτιρίων / Κτιςμάτων / Λοιπϊν Χϊρων

BLD_STANDARD_COMMENTS ΝΑΙ Τυποποιθμζνα Σχόλια Κτιρίων/Κτιςμάτων/Λοιπϊν Χϊρων

BLD_TYPE_LUT LookUpTable κωδικοποίηςη είδουσ κτιρίου/ κτίςματοσ/ λοιπών χώρων

COUNTRY_LUT LookUpTable κωδικοποίηςη Χωρών

CURRENCY_LUT LookUpTable κωδικοποίηςη Νομιςμάτων

DECL_AREAS ΝΑΙ Πίνακασ δηλωθζντων εμβαδών

περιλαμβάνει και τα αποτελζςματα

ελζγχων ςυμβατότθτασ που ζχει

κάνει ο Ανάδοχοσ

DOC ΝΑΙ Στοιχεία Εγγράφων

DOC_BEN_RIGHT ΝΑΙ Στοιχεία δικαιοφχων, εγγράφων και δικαιωμάτων

DOC_ISSUER ΝΑΙ Στοιχεία τησ εκδοφςασ αρχήσ

DOC_PARENT ΝΑΙ Στοιχεία ςυςχετιςμοφ ταυτοποιημζνων εγγράφων

DOC_STANDARD_COMMENTS ΝΑΙ Τυποποιθμζνα Σχόλια Στοιχείων Εγγράφων

DOC_TYPE_LUT LookUpTable κωδικοποίηςη ειδών εγγράφων

ENTOS_SXEDIOU_LUT LookUpTable κωδικοποίηςη ζνδειξησ εντόσ ή εκτόσ ςχεδίου πόλησ

ID_ISSUER_TYPE_LUT LookUpTable κωδικοποίηςη εκδοτών δελτίων ταυτότητασ

ISSUER_TYPE_LUT LookUpTable κωδικοποίηςη εκδοτών εγγράφων

LAND_USE_LUT LookUpTable κωδικοποίηςη χρήςεων γησ

MAJOR_PROP_TYPE_LUT LookUpTable κωδικοποίηςη κατηγορίασ χρζωςησ του ακινήτουπ.χ. κφριοσ χϊροσ, βοθκθτικόσ χϊροσ,

κλπ

MODIFICATION OBJECT_LUT ΟΧΙκωδικοποίηςη ςυςτατικών δικαιώματοσ ςτα οποία ζχουν

γίνει αλλαγζσ

για αλλαγζσ που λαμβάνουν χϊρα

μετά τθν Ανάρτθςθ

MODIFICATION_REASON_LUT ΟΧΙ κωδικοποίηςη αιτιών μεταβολήσ ενόσ δικαιώματοσ για αλλαγζσ που λαμβάνουν χϊρα

μετά τθν Ανάρτθςθ

MODIFICATION_TYPE_LUT ΟΧΙκωδικοποίηςη είδουσ μεταβολήσ που μπορεί να ςυμβεί ςε

ζνα δικαίωμα

για αλλαγζσ που λαμβάνουν χϊρα

μετά τθν Ανάρτθςθ

ORIGIN_LUT LookUpTable κωδικοποίηςη για την προζλευςη τησ πληροφορίασπ.χ. από διλωςθ, από περίλθψθ, από

τίτλο διλωςθσ εταίρου, κλπ

OTA (LUT) LookUpTableκωδικοποίηςη Νομών και ΟΤΑ (προκαποδιςτριακών), όπωσ

ζχουν κωδικοποιηθεί από τον ΟΚΧΕ.

PROP ΝΑΙ Στοιχεία Ιδιοκτθςιϊν

PROP_ADRS ΝΑΙ Στοιχεία ιδιοκτθςιϊν και διευκφνςεων

PROP_BLD ΝΑΙ Στοιχεία ςυςχζτιςθσ κτιρίων και ιδιοκτθςιϊν

PROP_CHANGE_LUT ΟΧΙ κωδικοποίηςη αλλαγήσ ιδιοκτηςίασγια αλλαγζσ που λαμβάνουν χϊρα

μετά τθν Ανάρτθςθ

PROP_PARENT ΟΧΙ Στοιχεία ςυςχετιςμοφ ιδιοκτθςιϊν διαδοχικϊν παραδόςεων

PROP_STANDARD_COMMENTS ΝΑΙ Τυποποιθμζνα Σχόλια Στοιχείων Ιδιοκτθςιϊν

PROPERTY_TYPE_LUT LookUpTable κωδικοποίηςη είδουσ ιδιοκτηςίασ

RIGHT ΝΑΙ Στοιχεία εγγραπτζων δικαιωμάτων

RIGHT_ORIGIN ΝΑΙ Στοιχεία ςυςχετιςμοφ δικαιωμάτων α’ και β’ φάςθσ

περιλαμβάνει και τθν πλθροφορία

προζλευςθσ του δικαιϊματοσ κακϊσ

και κατάςταςθσ αυτοφ

RIGHT_PARENT ΟΧΙΣτοιχεία ςυςχετιςμοφ δικαιωμάτων ανάρτθςθσ και πρϊτων

εγγραφϊν

RIGHT_ROLE_LUT LookUpTable κωδικοποίηςη ρόλων δικαιοφχων δικαιοφχοσ ι βεβαρυμζνοσ

RIGHT_STANDARD_COMMENTS ΝΑΙ Τυποποιθμζνα Σχόλια Στοιχείων Δικαιωμάτων

RIGHT_STATUS_LUT LookUpTable κωδικοποίηςη τρζχουςασ κατάςταςησ δικαιώματοσπ.χ. ενεργό, ανενεργό, άκυρο,

ανακλθκζν, απορριφκζν, κλπ

RIGHT_TYPE_LUT LookUpTable κωδικοποίηςη είδουσ δικαιώματοσ

STANDARD_COMMENTS (LUT) LookUpTable κωδικοποίηςη τυποποιημζνων ςχολίων

TOPOGRAFIKO_LUT LookUpTable κωδικοποίηςη ζνδειξησ προςκόμιςησ τοπογραφικοφ

UNIT_LUT LookUpTable κωδικοποίηςη μονάδασ μζτρηςησ εμβαδοφ

VERTREL ΝΑΙ Στοιχεία ςυςχζτιςθσ ιδιοκτθςιϊν κακ' φψοσαφορά ςε Ειδικά Ιδιοκτθςιακά

Αντικείμενα

WAYOWN_LUT LookUpTable κωδικοποίηςη αιτιών κτήςησ

Αλάπηπμε Πηινηηθήο Δθαξκνγήο γηα ηε δηελέξγεηα πλδπαζηηθώλ Διέγρσλ

κεηαμύ Πεξηγξαθηθώλ θαη Υσξηθώλ Βάζεσλ Κηεκαηνινγίνπ Μάξηηνο 2012

ύληαμε: Γεσξγαθάθε ηαπξνύια 23 /144

2.2.3. Γνκή Παξαδνηέσλ Αξρείσλ

Δθηφο απφ ηνπο ηχπνπο ησλ παξαδνηέσλ βάζεσλ δεδνκέλσλ Αλάξηεζεο, κέζα απφ

ηηο Σερληθέο Πξνδηαγξαθέο (Σ.Πξ.) ηεο Κηεκαηνγξάθεζεο (Παξάξηεκα Α’)

πξνζδηνξίδεηαη ζαθψο θαη ε δνκή ησλ παξαδνηέσλ αξρείσλ (γηα παξάδεηγκα αξηζκφο

θαη είδνο πεδίσλ, ηχπνη θαη πιάηε πεδίσλ, πξσηεχνληα θαη μέλα θιεηδηά, πεξηνξηζκνί

κνλαδηθφηεηαο θαη αθεξαηφηεηαο ηηκψλ, εχξνο ηηκψλ ζε πεδία πνπ ζπκπιεξψλνληαη

κε βάζε πίλαθεο ζπγθεθξηκέλσλ ηηκψλ (Look Up Tables - LUT), ππνρξεσηηθά-

πξναηξεηηθά πεδία, θνθ), ην πεξηερφκελν, νη ζπζρεηίζεηο θαη νη αιιειεμαξηήζεηο

απηψλ κεηαμχ ηνπο.

Γηα ηελ θαιχηεξε θαηαλφεζε ησλ παξαπάλσ, παξαηίζεληαη απνζπάζκαηα ηνπ

Παξαξηήκαηνο Α’ ησλ Σ.Πξ. θαη ζχληνκε πεξηγξαθή ηεο απνξξένπζαο πιεξνθνξίαο.

Πην ζπγθεθξηκέλα παξαηίζεηαη:

έλαο πίλαθαο ηεο πεξηγξαθηθήο θηεκαηνινγηθήο βάζεο: PROP_ηνηρεία

Ηδηνθηεζηψλ (βιέπε Πίνακαρ 3. PROP_ηνηρεία Ιδηνθηεζηώλ)

έλαο πίλαθαο ηεο ρσξηθήο θηεκαηνινγηθήο βάζεο: PST_ηνηρεία Ηδηνθηεζηψλ

(βιέπε Πίνακαρ 4. PST_ηνηρεία Ιδηνθηεζηώλ)

Γηα ηνλ πίλαθα PROP (πεξηγξαθηθή βάζε) πξνθχπηεη φηη:

Σν πεδίν PROP_ID απνηειεί ην πξσηεχσλ θιεηδί ηνπ πίλαθα, αληηζηνηρεί ζην

«κνλαδηθό θσδηθό αλαγλώξηζεο ηδηνθηεζίαο», ν ηχπνο ηνπ πεδίνπ είλαη numeric

κε πιάηνο 12 θαη πξφθεηηαη γηα ππνρξεσηηθφ πεδίν.

Αληίρηνηρα,

Σα πεδία KAEK, PROP_VERT, PROP_HOR, PROP_TYPE_CODE είλαη

ππνρξεσηηθά πεδία

Σα πεδία APT_NAME, UNIT, IS_GROSS είλαη πξναηξεηηθά πεδία

Σα πεδία LAND_USE_CODE, NOMOS, OTA, HAS_TOPO απνηεινχλ μέλα

θιεηδηά θαη παίξλνπλ ηηκέο απφ αληίζηνηρν πίλαθα LUT3 δεδνκέλσλ ηηκψλ

Ο ζπλδπαζκφο KAEK, PROP_VERT, PROP_HOR απνηειεί ελειιαθηηθφ

θιεηδί ηνπ πίλαθα θαη νθείιεη λα είλαη κνλαδηθφο

θ.ν.θ.

3 Look Up Table

Αλάπηπμε Πηινηηθήο Δθαξκνγήο γηα ηε δηελέξγεηα πλδπαζηηθώλ Διέγρσλ

κεηαμύ Πεξηγξαθηθώλ θαη Υσξηθώλ Βάζεσλ Κηεκαηνινγίνπ Μάξηηνο 2012

ύληαμε: Γεσξγαθάθε ηαπξνύια 24 /144

Πίνακαρ 3. PROP_ηνηρεία Ιδηνθηεζηώλ

Αλάπηπμε Πηινηηθήο Δθαξκνγήο γηα ηε δηελέξγεηα πλδπαζηηθώλ Διέγρσλ

κεηαμύ Πεξηγξαθηθώλ θαη Υσξηθώλ Βάζεσλ Κηεκαηνινγίνπ Μάξηηνο 2012

ύληαμε: Γεσξγαθάθε ηαπξνύια 25 /144

Γηα ηνλ πίλαθα PST πξνθχπηεη φηη:

Σν πεδίν ΚΑΔΚ απνηειεί πξσηεχνλ θιεηδί ηνπ πίλαθα, ε ζπκπιήξσζε ηνπ είλαη

ππνρξεσηηθή, έρεη ηχπν character θαη πιάηνο 12 θαη αληηζηνηρεί ζηνλ Κσδηθφ

Αξηζκφ Δζληθνχ Κηεκαηνινγίνπ (φπσο θαη ην αληίζηνηρν πεδίν ηνπ PROP)

Σν πεδίν PROP_TYPE δελ είλαη πξσηεχνλ θιεηδί, ε ζπκπιήξσζε ηνπ είλαη

ππνρξεσηηθή, έρεη ηχπν char θαη πιάηνο 4, ελψ αλαθέξεηαη ζην είδνο

γεσηεκαρίνπ φπσο θαη ην αληίζηνηρν πεδίν ηνπ PROP (PROP_TYPE_CODE)

ην νπνίν αλαθέξεηαη ζην είδνο ηδηνθηεζηαθνχ αληηθεηκέλνπ (άξα θαη

γεσηεκαρίνπ ζε πεξίπησζε πνπ ε ελ ιφγσ ηδηνθηεζία είλαη γεσηεκάρην)

Σν πεδίν AREA δελ απνηειεί πξσηεχνλ θιεηδί, ε ζπκπιήξσζε ηνπ είλαη

ππνρξεσηηθή, έρεη ηχπν number θαη πιάηνο double, ελψ ε πιεξνθνξία πνπ

πεξηέρεη αλαθέξεηαη «ζην θαηακεηξεζέλ εκβαδφλ γεσηεκαρίνπ ζε κ2 φπσο

πξνθχπηεη απφ ην Γεσγξαθηθφ χζηεκα Πιεξνθνξηψλ ηνπ Αλαδφρνπ».

Αληίζηνηρν πεδίν πεξηιακβάλεηαη θαη ζηνλ πίλαθα PROP (πεδίν

AREA_MEAS) ηεο πεξηγξαθηθήο Κηεκαηνινγηθήο βάζεο ην νπνίν βάζεη

νξηζκνχ πεξηιακβάλεη ηελ ίδηα πιεξνθνξία.

θ.ν.θ.

Απφ ηελ ζπλνπηηθή αλάιπζε πνπ πξνεγήζεθε ζρεηηθά κε ηελ πιεξνθνξία πνπ

απνξξέεη απφ ηνλ νξηζκφ ηνπ κνληέινπ δεδνκέλσλ Κηεκαηνγξάθεζεο, εχθνια

πξνθχπηεη φηη παξά ην γεγνλφο ηεο νξγάλσζεο ησλ παξαδνηέσλ θηεκαηνινγηθψλ

ζηνηρείσλ ζε μερσξηζηέο βάζεηο δεδνκέλσλ (δηαρσξηζκφο πεξηγξαθηθψλ απφ ρσξηθά

ζηνηρεία), ηα ζηνηρεία απηά είλαη ζπζρεηηδφκελα, αιιειεμαξηψκελα θαη

αιιεινζπκπιεξνχκελα.

Σα ζηνηρεία κηαο ηδηνθηεζίαο γηα παξάδεηγκα, σο πξνο ηελ πεξηγξαθηθή ηνπο

πιεξνθνξία (εκβαδφλ δήισζεο, πνζνζηά ζπγθπξηφηεηαο, ρξήζε, θηι)

πεξηιακβάλνληαη ζηνλ πίλαθα PROP ηεο πεξηγξαθηθήο βάζεο, ελψ ε πιεξνθνξία

ζρεηηθά κε ηε γεσκεηξία/γεσγξαθία (ζρήκα, πεξίκεηξνο, εκβαδφλ, ζέζε, ζχζηεκα

αλαθνξάο) ηεο θάζε ηδηνθηεζίαο πξνθχπηεη απφ ηνλ πίλαθα PST ηεο ρσξηθήο βάζεο.

Δπηπιένλ, πιεξνθνξίεο πνπ αθνξνχλ - γηα παξάδεηγκα - ην κνλαδηθφ θσδηθφ

αλαγλψξηζεο γεσηεκαρίνπ (ζην νπνίν βξίζθεηαη ε θάζε ηδηνθηεζία), ην είδνο

ηδηνθηεζηαθνχ αληηθεηκέλνπ θαη ην θαηακεηξεζέλ εκβαδφλ πεξηιακβάλνληαη ηφζν

Αλάπηπμε Πηινηηθήο Δθαξκνγήο γηα ηε δηελέξγεηα πλδπαζηηθώλ Διέγρσλ

κεηαμύ Πεξηγξαθηθώλ θαη Υσξηθώλ Βάζεσλ Κηεκαηνινγίνπ Μάξηηνο 2012

ύληαμε: Γεσξγαθάθε ηαπξνύια 26 /144

ζηελ πεξηγξαθηθή βάζε φζν θαη ζηελ ρσξηθή βάζε, ηεθκεξηψλνληαο έηζη ην

ζπζρεηηδφκελν θαη αιιεινζπκπιεξνχκελν ραξαθηήξα ησλ δεδνκέλσλ.

Πίνακαρ 4. PST_ηνηρεία Ιδηνθηεζηώλ

Σα πεξηνξηζκέλα - ζε εχξνο - παξαδείγκαηα πνπ δφζεθαλ γηα ηνπο πίλαθεο PROP θαη

PST, επεθηείλνληαη ζην ζχλνιν ησλ πηλάθσλ ησλ Κηεκαηνινγηθψλ Βάζεσλ, φπνπ κε

αλάινγν ηξφπν ζπζρεηίδνληαη ηα ρσξηθά θαη ηα πεξηγξαθηθά ζηνηρεία ηεο

Κηεκαηνγξάθεζεο.

5.5.2        Στοιχεία γεωτεμαχίων - Πίνακας PST

Μορφή δεδομζνων: Shapefile - πολφγωνα

Ο πίνακασ αυτόσ περιζχει τα ςτοιχεία όλων των γεωτεμαχίων τθσ υπό κτθματογράφθςθ περιοχισ.

Καταχωρείται το πολφγωνο που ορίηει το γεωτεμάχιο.

Οι τίτλοι Κ,Υ αναφζρονται αντίςτοιχα ςε Κλειδί, Υποχρεωτικό πεδίο και παίρνουν τιμζσ (Ο,Ν) που ςθμαίνουν αντίςτοιχα (Πχι, Ναι).

Πνομα Κ Υ Τφποσ Ρλάτοσ Ρεριγραφι Εφροσ τιμϊν -παρατθριςεισ

FID Ο Ν NUMBER LONG INTEGERΜοναδικόσ αρικμόσ που δίδεται

αυτόματα από το ςφςτθμα

ΚΑΕΚ Ν Ν CHAR 12

Κωδικόσ Αρικμόσ Εκνικοφ

Κτθματολογίου. Μοναδικόσ αφξων

αρικμόσ εντόσ ενότθτασ ξεκινϊντασ

από το 001.

Συμπλθρϊνεται με βάςθ τον Ρίνακα 2-1

PROP_TYPE O N CHAR 4 Είδοσ γεωτεμαχίου

Ραίρνει τιμζσ ςφμφωνα με τον Ρίνακα 2-1 και

Ρίνακα 2-2 όταν πρόκειται για αυτοτελι ειδικά

ιδιοκτθςιακά αντικείμενα τα οποία δεν

βρίςκονται πάνω ι κάτω από άλλα γεωτεμάχια

Ραίρνει τιμζσ με βάςθ τα παρακάτω:

1: Κτθματογράφθςθ

2: Ρράξθ εφαρμογισ

3: Αναδαςμόσ

4: Διανομι

5: Ρράξθ Κακοριςμοφ αιγιαλοφ

6: Απαλλοτρίωςθ

ORI_CODE O Ο CHAR 100Κωδικόσ του γεωτεμαχίου ςτθ

Διοικθτικι Ρράξθ.

Συμπλθρϊνεται ςτθν περίπτωςθ που θ τιμι του

ORI_TYPE είναι διάφορθ του 1.

DEC_ID O Ο CHAR 254

Συμπλθρϊνεται ο αφξων αρικμόσ

(FID) που προκφπτει από τον Ρίνακα

DBOUND και αφορά ςτο όριο τθσ

διοικθτικισ πράξθσ ςτθν οποία ανικει

το γεωτεμάχιο.

Συμπλθρϊνεται ςτθν περίπτωςθ που θ τιμι του

ORI_TYPE είναι διάφορθ του 1.

ADDRESS O N CHAR 254

Τρζχουςα διεφκυνςθ κφριασ οδοφ

μπροςτά από το γεωτεμάχιο.

Ακολουκεί τουσ κανόνεσ

ονοματολογίασ που αναφζρονται

ςτθν παρ. 1.2.3.

Στθν περίπτωςθ που το γεωτεμάχιο ζχει

πρόςωπο ςε παραπάνω από ζναν δρόμουσ,

ςυμπλθρϊνεται θ διεφκυνςθ με τθν οποία ζχει

τθν μεγαλφτερθ επαφι.

NUM O N CHAR 9

Τρζχουςα αρίκμθςθ κφριασ οδοφ

μπροςτά από το γεωτεμάχιο. Σε

περίπτωςθ μθ αρικμϊν γίνεται χριςθ

κεφαλαίων Ελλθνικϊν χαρακτιρων.

Στθν περίπτωςθ που θ αρίκμθςθ

επεκτείνεται ςε παραπάνω από ζναν

αρικμοφσ αναγράφεται το εφροσ

χωριηόμενο με παφλα (π.χ. 32-34)

Στθν περίπτωςθ που το γεωτεμάχιο ζχει

πρόςωπο ςε παραπάνω από ζναν δρόμουσ,

ςυμπλθρϊνεται ο αρικμόσ τθσ οδοφ με τθν

οποία ζχει τθν μεγαλφτερθ επαφι.

AREA Ο Ν NUMBER DOUBLEΚαταμετρθκζν εμβαδόν γεωτεμαχίου

ςε μ2

Ππωσ προκφπτει από το Γεωγραφικό Σφςτθμα

Ρλθροφοριϊν του αναδόχου.

SHAPE Ο Ν BINARY Γεωμετρία

LEN Ο Ν NUMBER DOUBLE Ρερίμετροσ ςε μ

ORI_TYPE O N NUMBER SHORT INTEGER Είδοσ Ρροζλευςθσ του γεωτεμαχίου.

Αλάπηπμε Πηινηηθήο Δθαξκνγήο γηα ηε δηελέξγεηα πλδπαζηηθώλ Διέγρσλ

κεηαμύ Πεξηγξαθηθώλ θαη Υσξηθώλ Βάζεσλ Κηεκαηνινγίνπ Μάξηηνο 2012

ύληαμε: Γεσξγαθάθε ηαπξνύια 27 /144

Γηα ηελ πιεξφηεηα ηεο παξνπζίαζεο ηνπ κνληέινπ δεδνκέλσλ Κηεκαηνγξάθεζεο

παξαηίζεηαη - ζην Παξάξηεκα Η ηεο παξνχζαο - απφζπαζκα ησλ Σερληθψλ

Πξνδηαγξαθψλ Κηεκαηνγξάθεζεο (Παξάξηεκα Α’, Κεθάιαην 7) κε ηα δηαγξάκκαηα

«νληνηήησλ – ζπζρεηίζεσλ» ησλ πεξηγξαθηθψλ θαη ρσξηθψλ δεδνκέλσλ.

2.3. Απαιηήζειρ Ποιόηηηαρ Κηημαηολογικών Γεδομένυν

Με δεδνκέλε ηε βαξχηεηα ηνπ Έξγνπ ηεο Κηεκαηνγξάθεζεο γηα ηε Γεκηνπξγία

Δζληθνχ Κηεκαηνινγίνπ θαη ηε ζχληαμε αλαιπηηθψλ Σερληθψλ Πξνδηαγξαθψλ γηα ηηο

παξακέηξνπο πινπνίεζεο ηνπ, αλακθηζβήηεηα γελληέηαη ε αλάγθε ζρεδηαζκνχ θαη

δηελέξγεηαο κηαο ζεηξάο ειέγρσλ γηα ηελ αμηνιφγεζε ησλ παξαγφκελσλ πξντφλησλ

θαη ηελ ηεθκεξίσζε ηεο πιήξσζεο ησλ αληίζηνηρσλ απαηηήζεσλ πνηφηεηαο, ηφζν απφ

πιεπξάο ησλ Αλαδφρσλ ηνπ Έξγνπ φζν θαη απφ ηελ πιεπξά ηεο Κηεκαηνιφγην Α.Δ.,

σο αλαζέηνπζα αξρή.

2.3.1. Έιεγρνη πνηφηεηαο παξαδνηέσλ Κηεκαηνιφγην Α.Δ.

χκθσλα κε ηηο Σερληθέο Πξνδηαγξαθέο Κηεκαηνγξάθεζεηο (Παξάξηεκα Β,

Κεθάιαην 8): «Ο έιεγρνο πνηόηεηαο ησλ παξαδνηέσλ ζπλίζηαηαη ζηνλ εθηεηακέλν θαη

δηεμνδηθό έιεγρν ηεο νξζόηεηαο θαη πιεξόηεηαο ηνπο, ώζηε λα δηαζθαιηζηεί όηη ηα

ζηνηρεία πνπ ππνβάιινληαη πξνο έιεγρν, είλαη ζύκθσλα κε ηηο Σερληθέο Πξνδηαγξαθέο

όπσο θαζνξίδεηαη ζην Σεύρνο θαη ζηα Παξαξηήκαηα πνπ ην ζπλνδεύνπλ. Δπίζεο

ειέγρεηαη ε νξζή επεμεξγαζία, από λνκηθήο άπνςεο, ησλ ππνβιεζέλησλ ηίηισλ,

δειώζεσλ θαη ινηπώλ εγγξάθσλ, θαη ε νξζή θαηαρώξηζε ησλ δεδνκέλσλ πνπ

πξνθύπηνπλ από απηά θαζώο θαη ε εθαξκνγή ηνπ άξζξνπ 3α ηνπ Ν2308/95 (όπσο

ηζρύεη) ζρεηηθά κε ηελ ππνρξέσζε ηνπ αλαδόρνπ λα πξαγκαηνπνηεί ειέγρνπο

λνκηκόηεηαο ησλ ζπιιερζέλησλ ζηνηρείσλ.....Σα παξαδνηέα ειέγρνληαη από ηελ

ΚΣΗΜΑΣΟΛΟΓΙΟ Α.Δ. αλά ζύκβαζε εθηόο εάλ νξίδεηαη δηαθνξεηηθά ζηα θξηηήξηα

ζπκκόξθσζεο. Ο έιεγρνο δηελεξγείηαη είηε ζην ζύλνιν ηνπο, είηε κε δεηγκαηνιεπηηθή

επαιήζεπζε ή κε ζπλδπαζκό ηνπο»

πλεπαθφινπζα, θαη φπσο πξνθχπηεη απφ ηελ ίδηα πεγή, αλάινγα κε ηηο απαηηήζεηο

ηνπ θάζε ηαδίνπ / Φάζεο ηνπ Έξγνπ, έρεη γίλεη ζαθήο θαη εθηελήο θαηαγξαθή ησλ

θξηηεξίσλ ζπκκφξθσζεο βάζεη ησλ νπνίσλ πξνζδηνξίδεηαη ε απνδνρή ή φρη ηνπ θάζε

παξαδνηένπ.

Αλάπηπμε Πηινηηθήο Δθαξκνγήο γηα ηε δηελέξγεηα πλδπαζηηθώλ Διέγρσλ

κεηαμύ Πεξηγξαθηθώλ θαη Υσξηθώλ Βάζεσλ Κηεκαηνινγίνπ Μάξηηνο 2012

ύληαμε: Γεσξγαθάθε ηαπξνύια 28 /144

Γηα ηηο αλάγθεο ηεο παξνχζαο εξγαζίαο ζα εμεηαζηνχλ νη απαηηήζεηο πνηφηεηαο γηα

ηελ απνδνρή ησλ παξαδνηέσλ ηεο Αλάξηεζεο θαη πην ζπγθεθξηκέλα νη ζρεηηθέο κε ηηο

Φεθηαθέο Κηεκαηνινγηθέο Βάζεηο Υσξηθψλ θαη Πεξηγξαθηθψλ Γεδνκέλσλ θαη ηελ

αιιεινζπζρέηηζε απηψλ.

2.3.2. Έιεγρνη ζπζρέηηζεο Υσξηθήο θαη Πεξηγξαθηθήο Βάζεο Κηεκαηνινγίνπ

Ο Πίνακαρ 5. Απαηηήζεηο πνηόηεηαο ζπζρεηηζκνύ Υσξηθώλ-Πεξηγξαθηθώλ ηνηρείσλ

πνπ αθνινπζεί απνηειεί απφζπαζκα ησλ Σερληθψλ Πξνδηαγξαθψλ

Κηεκαηνγξάθεζεο (Παξάξηεκα Β’, Κεθάιαην 8, Πίλαθαο 8.2.2) θαη πεξηιακβάλεη ηηο

απαηηήζεηο πνηφηεηαο γηα ηελ νξζή ζπζρέηηζε ησλ ρσξηθψλ θαη πεξηγξαθηθψλ

ζηνηρείσλ Κηεκαηνινγίνπ.

Πίνακαρ 5. Απαηηήζεηο πνηόηεηαο ζπζρεηηζκνύ Υσξηθώλ-Πεξηγξαθηθώλ ηνηρείσλ

Πην αλαιπηηθά, ηα ελ ιφγσ παξαδνηέα ζα πξέπεη - κεηαμχ άιισλ απαηηήζεσλ

πνηφηεηαο - λα πιεξνχλ θαη ηηο παξαθάησ πεξηγξαθφκελεο ζπλζήθεο ψζηε λα

ηεθκεξηψλεηαη ε επηθαινχκελε πνηφηεηα ησλ ηειηθψλ πξντφλησλ:

πζρέηηζε θσδηθνπνηεκέλσλ ζηνηρείσλ

Σα ζπζρεηηζκέλα ζηνηρεία ζα πξέπεη λα αιιεινζπζρεηίδνληαη νξζά. Γηα παξάδεηγκα,

νπνηνδήπνηε γεσηεκάρην ζηελ ςεθηαθή βάζε δεδνκέλσλ ησλ ρσξηθψλ

θηεκαηνινγηθψλ ζηνηρείσλ, πξέπεη λα έρεη πιήξε αληηζηνηρία σο πξνο ηηο ηδηφηεηεο

ηνπ (ΚΑΔΚ θαη εκβαδφλ) κε ηελ αληίζηνηρε εγγξαθή ζηελ βάζε ησλ πεξηγξαθηθψλ

θηεκαηνινγηθψλ ζηνηρείσλ.

Πιεξφηεηα ςεθηαθήο βάζεο δεδνκέλσλ ησλ ρσξηθψλ θηεκαηνινγηθψλ

ζηνηρείσλ

3

α/α Δίδορ Δλέγσος Απαιηούμενο αποηέλεζμα

Γηα ην ζχλνιν ησλ θαηαρσξηζκέλσλ εγγξαθψλ ζηελ βάζε

δεδνκέλσλ ησλ πεξηγξαθηθψλ θηεκαηνινγηθψλ ζηνηρείσλ

πθίζηαηαη αληίζηνηρε εγγξαθή ζηελ βάζε δεδνκέλσλ ησλ

ρσξηθψλ θηεκαηνινγηθψλ ζηνηρείσλ θαη αληίζηξνθα.

Σα γεσηεκάρηα αιιεινζρεηίδνληαη πιήξσο (κε βάζε ηνλ

ΚΑΔΚ) σο πξνο ην εκβαδφ.

Αθνξά ηηο εγγξαθέο γηα ηηο νπνίεο απαηηείηαη ζπζρέηηζε

(γεσηεκάρηα θαη νη αληίζηνηρεο ηδηφηεηέο ηνπο, Κηίξηα θ.α.)

3.1.

Σαπηνπνίεζε ςεθηαθήο βάζεο

δεδνκέλσλ ησλ ρσξηθψλ θαη

πεξηγξαθηθψλ θηεκαηνινγηθψλ

ζηνηρείσλ

ςζσέηιζη ηυν συπικών με ηα πεπιγπαθικά κηημαηολογικά ζηοισεία

Αλάπηπμε Πηινηηθήο Δθαξκνγήο γηα ηε δηελέξγεηα πλδπαζηηθώλ Διέγρσλ

κεηαμύ Πεξηγξαθηθώλ θαη Υσξηθώλ Βάζεσλ Κηεκαηνινγίνπ Μάξηηνο 2012

ύληαμε: Γεσξγαθάθε ηαπξνύια 29 /144

Γηα ην ζχλνιν ησλ θαηαρσξηζκέλσλ εγγξαθψλ ζηελ βάζε δεδνκέλσλ ησλ ρσξηθψλ

θηεκαηνινγηθψλ ζηνηρείσλ ζα πξέπεη λα πθίζηαηαη αληίζηνηρε εγγξαθή ζηελ βάζε

δεδνκέλσλ ησλ πεξηγξαθηθψλ θηεκαηνινγηθψλ ζηνηρείσλ (Αθνξά ηηο εγγξαθέο γηα ηηο

νπνίεο απαηηείηαη ζπζρέηηζε)

Πιεξφηεηα ςεθηαθήο βάζεο δεδνκέλσλ ησλ πεξηγξαθηθψλ θηεκαηνινγηθψλ

ζηνηρείσλ

Γηα ην ζχλνιν ησλ θαηαρσξηζκέλσλ εγγξαθψλ ζηελ βάζε δεδνκέλσλ ησλ

πεξηγξαθηθψλ θηεκαηνινγηθψλ ζηνηρείσλ ζα πξέπεη λα πθίζηαηαη αληίζηνηρε εγγξαθή

ζηελ βάζε δεδνκέλσλ ησλ ρσξηθψλ θηεκαηνινγηθψλ ζηνηρείσλ (Αθνξά ηηο εγγξαθέο

γηα ηηο νπνίεο απαηηείηαη ζπζρέηηζε)

Οξζφηεηα αληηζηνίρηζεο εκβαδνχ

Σα αλαγξαθφκελα ζηε βάζε δεδνκέλσλ ησλ πεξηγξαθηθψλ θηεκαηνινγηθψλ

ζηνηρείσλ εκβαδά ζα πξέπεη λα είλαη ζε πιήξε αληηζηνηρία κε ηα εκβαδά πνπ

πξνθχπηνπλ απφ ηελ βάζε δεδνκέλσλ ησλ ρσξηθψλ θηεκαηνινγηθψλ ζηνηρείσλ.

Ζ ζπγθεθξηκέλε θαηεγνξία ειέγρσλ δηελεξγείηαη ήδε απφ ηελ Κηεκαηνιφγην Α.Δ. ζε

πνιχ βαζηθή κνξθή κέζσ απιήο desktop εθαξκνγήο ε νπνία εμάγεη ηα απνηειέζκαηα

12 εξσηεκάησλ ειέγρσλ ζε αξρείν txt. (Η εθαξκνγή ειέγρνπ ηεο ΚηΑΔ δελ έρεη

δεκνζηνπνηεζεί ώζηε λα είλαη γλσζηά πεξηζζόηεξα ζηνηρεία).

ε επφκελα θεθάιαηα ηεο παξνχζαο εξγαζίαο ζα γίλεη εθηελέζηεξε αλαθνξά ηφζν

ζηηο απαηηήζεηο πνηφηεηαο πνπ απνξξένπλ απφ ηελ αλάγθε ζπζρέηηζεο ησλ ρσξηθψλ

θαη πεξηγξαθηθψλ ζηνηρείσλ θηεκαηνγξάθεζεο θαη ηνπο ειέγρνπο πνπ ζρεδηάζηεθαλ

θαη πινπνηήζεθαλ ζην πιαίζην ηεο ππφ αλάπηπμε εθαξκνγήο, φζν θαη ζηηο επηπιένλ

δπλαηφηεηεο πνπ απνζθνπεί λα πξνζζέζεη σο επέθηαζε ηεο ήδε ππάξρνπζαο

δηαδηθαζίαο ειέγρνπ.

Αλάπηπμε Πηινηηθήο Δθαξκνγήο γηα ηε δηελέξγεηα πλδπαζηηθώλ Διέγρσλ

κεηαμύ Πεξηγξαθηθώλ θαη Υσξηθώλ Βάζεσλ Κηεκαηνινγίνπ Μάξηηνο 2012

ύληαμε: Γεσξγαθάθε ηαπξνύια 30 /144

3. Μέζα Τλοποίηζηρ

Γηα ηηο αλάγθεο ηεο ππφ αλάπηπμε εθαξκνγήο ρξεζηκνπνηήζεθαλ:

σο χζηεκα Γηαρείξηζεο Βάζεσλ Γεδνκέλσλ ε PostgreSQL κε ηελ επέθηαζε

PostGIS (γηα ηελ ππνζηήξημε ησλ ρσξηθψλ/γεσγξαθηθψλ δεδνκέλσλ ηεο

Κηεκαηνινγηθήο Βάζεο), ζε ζπλδπαζκφ κε ηηο βνεζεηηθέο εθαξκνγέο

PostgreSQL Interactive Terminal (psql, PostGIS Loader (shp2pgsql θαη

PostGIS Dumper (pgsql2shp γηα ηελ «απνκαθξπζκέλε» δηαρείξηζε ησλ

δεδνκέλσλ πνπ θηινμελνχληαη απφ ην ζχζηεκα PostgreSQL / PostGIS..

σο γιψζζα πξνγξακκαηηζκνχ γηα ηελ αλάπηπμε ηεο δηεπαθήο ρξήζηε (GUI-

Graphical User Interface) θαη ησλ ιεηηνπξγηψλ ηεο εθαξκνγήο (θφξησζε

δεδνκέλσλ πξνο έιεγρν, εθηέιεζε εξσηεκάησλ ειέγρσλ, εμαγσγή θαη

απνζήθεπζε αλαθνξψλ ειέγρσλ, θ.ν.θ.) επηιέρζεθε ε Visual Basic ζε πιαίζην

.NET (VB.NET - .NET Framework), ζε ζπλδπαζκφ κε ηηο βηβιηνζήθεο ηνπ

DotSpatial γηα ηελ νπηηθνπνίεζε ησλ απνηειεζκάησλ ειέγρσλ ζε κνξθή

ράξηε.

γηα ηελ επηθνηλσλία ηεο εθαξκνγήο κε ηo ΓΒΓ PostgreSQL/PostGIS - ψζηε

λα θαηαζηεί δπλαηή ε δηαρείξηζε θαη αλάθηεζε ησλ δεδνκέλσλ - επηιέρζεθε ν

πάξνρνο Npgsql Data Provider.

σο γιψζζα νξηζκνχ / ρεηξηζκνχ ησλ δεδνκέλσλ (γηα ηε ζχληαμε νξηζκάησλ

πξνο ηηο βάζεηο θαη εξσηεκάησλ ειέγρσλ) ρξεζηκνπνηήζεθε ε SQL

(Structured Query Language).

Αθνινπζεί ζχληνκε επηζθφπεζε ησλ επηιερζέλησλ κέζσλ πινπνίεζεο:

3.1. ύζηημα Γιασείπιζηρ Βάζηρ Γεδομένυν

ύζηεκα Γηαρείξηζεο Βάζεο Γεδνκέλσλ (ΓΒΓ) θαιείηαη κηα ζπιινγή απφ

πξνγξάκκαηα πνπ επηηξέπνπλ ζηνπο ρξήζηεο λα δεκηνπξγήζνπλ, λα ζπληεξήζνπλ θαη

λα αλαθηήζνπλ δεδνκέλα απφ κηα βάζε δεδνκέλσλ.

Αλάπηπμε Πηινηηθήο Δθαξκνγήο γηα ηε δηελέξγεηα πλδπαζηηθώλ Διέγρσλ

κεηαμύ Πεξηγξαθηθώλ θαη Υσξηθώλ Βάζεσλ Κηεκαηνινγίνπ Μάξηηνο 2012

ύληαμε: Γεσξγαθάθε ηαπξνύια 31 /144

Πην ζπγθεθξηκέλα, ην πζηήκα Γηαρείξηζεο Βάζεσλ Γεδνκέλσλ είλαη έλα γεληθήο

ρξήζεο ζχζηεκα ινγηζκηθνχ πνπ δηεπθνιχλεη ηηο δηαδηθαζίεο νξηζκνχ, θαηαζθεπήο

θαη ρεηξηζκνχ βάζεσλ δεδνκέλσλ γηα δηάθνξεο εθαξκνγέο. Ο νξηζκόο αθνξά ζηελ

πξνδηαγξαθή ησλ ηχπσλ, δνκψλ θαη πεξηνξηζκψλ πνπ ζα απνζεθεπηνχλ ζηε βάζε, ε

θαηαζθεπή αθνξά ζηελ απνζήθεπζε ησλ δεδνκέλσλ ζε έλα κέζν απνζήθεπζεο πνπ

ειέγρεηαη απφ ην ΓΒΓ, ελψ ν ρεηξηζκόο αθνξά ζηελ ππνβνιή εξσηεκάησλ γηα

αλάθηεζε δεδνκέλσλ απφ ηε βάζε, ελεκέξσζε ησλ δεδνκέλσλ ηεο βάζεο, ή/θαη

παξαγσγή αλαθνξψλ γηα ηα δεδνκέλα ηεο βάζεο.

3.1.1. PostgreSQL

Ζ PostgreSQL απνηειεί έλα αλνηρηνχ θψδηθα, αληηθεηκελν-ζρεζηαθφ ΓΒΓ κε

πιεζψξα εθαξκνγψλ θαη ππεξεζηψλ. Ζ αλάπηπμε ηνπ ήδε δηαξθεί πάλσ απφ 20

ρξφληα θαη βαζίδεηαη ζε κηα απνδεδεηγκέλα θαιή αξρηηεθηνληθή, ε νπνία έρεη

δεκηνπξγήζεη κηα ηζρπξή αληίιεςε ησλ ρξεζηψλ ηεο γχξσ απφ ηελ αμηνπηζηία, ηελ

αθεξαηφηεηα δεδνκέλσλ θαη ηελ νξζή ιεηηνπξγία. Ζ PostgreSQL ηξέρεη ζε φια ηα

βαζηθά ιεηηνπξγηθά ζπζηήκαηα, πεξηιακβάλνληαο Linux, UNIX (AIX, BSD, HP-UX,

SGI IRIX, Mac OS X, Solaris, Tru64) θαη Windows. Δίλαη ACID ζπκβαηή (ACID

compliant) ελψ έρεη νινθιεξσκέλε ππνζηήξημε γηα foreign keys, joins, views,

triggers, θαη stored procedures (ζε δηάθνξεο γιψζζεο πξνγξακκαηηζκνχ).

3.1.2. Γεληθά ραξαθηεξηζηηθά - πκβαηφηεηα κε πξνδηαγξαθέο

Ζ PostgreSQL είλαη ζπλεπήο κε ηηο πξνδηαγξαθέο . Ζ πινπνίεζή ηεο εηλαη απνιχησο

ζχκθσλε κε ηηο πξνδηαγξαθέο ANSI-SQL 92/99. Δρεη νινθιεξσκέλε ππνζηήξημε γηα

subqueries (ζπκπεξηιακβαλνκέλσλ subselects κέζα απν ην FROM), read-committed

θαη serializable transaction isolation levels. Ζ PostgreSQL απνηειεί έλα πιήξεο

ζρεζηαθφ ζχζηεκα πνπ ππνζηεξίδεη πνιιαπιά ζρήκαηα αλά ΒΓ4, o θαηάινγνο

(πιεξνθνξίεο ζρεηηθά κε ηνπο πίλαθεο, ζηήιεο, views, θα) είλαη δηαζέζηκνο δηακέζνπ

ηνπ Information Schema φπσο νξίδεηαη ζην πξφηππν SQL5.

4 Βάζε Γεδνκέλσλ

5 Structured Query Language

Αλάπηπμε Πηινηηθήο Δθαξκνγήο γηα ηε δηελέξγεηα πλδπαζηηθώλ Διέγρσλ

κεηαμύ Πεξηγξαθηθώλ θαη Υσξηθώλ Βάζεσλ Κηεκαηνινγίνπ Μάξηηνο 2012

ύληαμε: Γεσξγαθάθε ηαπξνύια 32 /144

ηα ραξαθηεξηζηηθά αθεξαηφηεηαο δεδνκέλσλ ζπκπεξηιακβάλνληαη: primary keys,

foreign keys κε ππνζηήξημε restricting θαη cascading updates/deletes, check

constraints, unique constraints, θαη not null constraints.

Ζ PostgreSQL έρεη αξθεηά πξνεγκέλα ραξαθηεξηζηηθά φπσο: auto-increment

columns κέζσ sequences θαη LIMIT/OFFSET, πνπ επηηξέπνπλ ηελ επηζηξνθή

επηκέξνπο απνηειεζκάησλ. Όζνλ αθνξά ηα επξεηήξηα ππνζηεξίδεη compound,

unique, partial, θαη functional indexes ηα νπνία κπνξνχλ λα ρξεζηκνπνηήζνπλ

νπνηνλδήπνηε απν ηνπο B-tree, R-tree, hash, ή GiST αιγνξίζκνπο.

Ζ δνκή επξεηεξίνπ GiST (Generalized Search Tree) απνηειεί έλα πξνεγκέλν

ζχζηεκα ην νπνίν ζπλδπάδεη έλα κεγάιν εχξνο απφ δηαθνξεηηθθνχο αιγφξηζκνπο

ηαμηλφκεζεο θαη αλαδήηεζεο φπσο B-tree, B+-tree, R-tree, partial sum trees, ranked

B+-trees θαη αξθεηνχο αθφκα. Δπίζεο δηαζέηεη interface ην νπνίν επηηξέπεη ηφζν ηελ

δεκηνπξγία custom data types φζν θαη επεθηάζηκνπο ηξφπνπο εξσηήζεσλ (query) γηα

ηελ αλαδήηεζε ηνπο. Σν GiST πξνζθέξεη ηελ επειημία ζηνλ πξνζδηνξηζκφ ηνπ ηη θαη

κε πνην ηξνπν ζα απνζεθεπηεί, θαη ηελ δπλαηφηεηα νξηζκνχ λέσλ ηξφπσλ

αλαδήηεζεο. Πάλσ ζην GiST θαη ηελ postgreSQL έρνπλ ζεκειησζεί πνιιά projects

φπσο ηα OpenFTS θαη PostGIS.

Άιια πξνεγκέλα ραξαθηεξηζηηθά ηεο PostgreSQL είλαη: table inheritance, rules

systems θαη database events. Σν Table inheritance (θιεξνλνκηθφηεηα πηλάθσλ)

πξνζζέηεη κηα αληηθεηκελνζηξαθή δηάζηαζε ζηελ δεκηνπξγία πηλάθσλ, επηηξέπνληαο

ζηνπο ζρεδηαζηέο ΒΓ λα δεκηνπξγνχλ λένπο πίλαθεο απφ άιινπο πίλαθεο

ρξεζηκνπνηψληαο ηνπο σο βάζε. Δπηπιένλ, ε PostgreSQL ππνζηεξίδεη θαη κνλή θαη

πνιιαπιή θιεξνλνκηθφηεηα κε ηνλ δηθφ ηεο ηξφπν.

3.1.3. PostgreSQL Interactive Terminal (psql)

Ζ Psql απνηειεί κία γξακκή εληνιψλ (ηεξκαηηθφ) ηεο PostgreSQL, ε νπνία

εγθαζίζηαηαη απηφκαηα θαηά ηελ εγθαηάζηαζε ηεο PostgreSQL (θάθεινο bin).

Παξέρεη ηε δπλαηφηεηα δηαδξαζηηθήο ζχληαμεο εληνιψλ SQL, απνζηνιήο

αηηεκάησλ ζηελ PostgreSQL θαη εκθάληζεο ησλ απνηειεζκάησλ. Δλαιιαθηηθά, ηα

δεδνκέλα εηζφδνπ κπνξνχλ λα πξνέξρνληαη απφ αξρείν. Δπηπιένλ, παξέρεη έλαλ

Αλάπηπμε Πηινηηθήο Δθαξκνγήο γηα ηε δηελέξγεηα πλδπαζηηθώλ Διέγρσλ

κεηαμύ Πεξηγξαθηθώλ θαη Υσξηθώλ Βάζεσλ Κηεκαηνινγίνπ Μάξηηνο 2012

ύληαμε: Γεσξγαθάθε ηαπξνύια 33 /144

αξηζκφ απφ κεηα-εληνιέο6 θαη δηάθνξα «θειπθνεηδή» ραξαθηεξηζηηθά γηα ηελ

επθνιφηεξε ζχληαμε εληνιψλ θαη ηελ απηνκαηνπνίεζε κεγάινπ εχξνπο εξγαζηψλ.

Μέζα απφ command prompt θαη ηελ εληνιή «psql --help» (αθνχ έρεη πξνεγεζεί ε

κεηάβαζε ζην θάθειν bin ηεο PostgreSQL πνπ πεξηιακβάλεη ην αξρείν: psql.exe)

εκθαλίδνληαη νη παξάκεηξνη γηα ηε ρξήζε ηνπ psql (κέζα ζην πεξηβάιινλ command

prompt) φπσο θαίλεηαη ζηελ εηθφλα πνπ αθνινπζεί:

Δικόνα 1. Παξάκεηξνη εληνιώλ psql γηα ην πεξηβάιινλ command prompt

Αληίζηνηρα γηα ρξήζε κέζα απφ ην θέιπθνο psql (start>psql) θαη κε ηελ εληνιή «\?»

εκθαλίδνληαη νη παξάκεηξνη ζχληαμεο κεηα-εληνιψλ (βιέπε Δηθόλα 2. Παξάκεηξνη

κεηα-εληνιώλ θειύθνπο psql)

6 Κάζε εληνιή ζην θέιπθνο psql πνπ μεθηλάεη κε αλάζηξνθν θάζεην (backslash) νξίδεηαη σο «κεηα-

εληνιή»

Αλάπηπμε Πηινηηθήο Δθαξκνγήο γηα ηε δηελέξγεηα πλδπαζηηθώλ Διέγρσλ

κεηαμύ Πεξηγξαθηθώλ θαη Υσξηθώλ Βάζεσλ Κηεκαηνινγίνπ Μάξηηνο 2012

ύληαμε: Γεσξγαθάθε ηαπξνύια 34 /144

Δικόνα 2. Παξάκεηξνη κεηα-εληνιώλ θειύθνπο psql

3.1.4. PostGIS

Σν ινγηζκηθφ PostGIS απνηειεί κηα επέθηαζε ηεο PostgreSQL ε νπνία επηηξέπεη ηελ

απνζήθεπζε θαη ππνζηεξίδεη ηε δηαρείξηζε γεσγξαθηθψλ / ρσξηθψλ δεδνκέλσλ,

ζχκθσλα κε ην πξφηππν ηνπ OGC (Open Geospatial Consortium)7. Έρεη αλαπηπρζεί

απφ ηελ Refractions Research Inc σο εξεπλεηηθφ αληηθείκελν ζην πιαίζην ηεο

ηερλνινγίαο ρσξηθψλ βάζεσλ δεδνκέλσλ θαη είλαη επίζεο έλα αλνηρηφ ινγηζκηθφ.

Παξέρεη εηδηθνχο ηειεζηέο γηα ηε ζχληαμε ρσξηθψλ εξσηεκάησλ, ιεηηνπξγίεο

ζπλάζξνηζεο ζε ρσξηθά δεδνκέλα, θαζψο θαη ρσξηθέο ζπλαξηήζεηο. Δπηηξέπεη επίζεο

ηελ αλάζεζε πξνβνιηθψλ ζπζηεκάησλ ζηα ρσξηθά δεδνκέλα. Σέινο, παξέρεη ηε

δπλαηφηεηα νπηηθνπνίεζεο ησλ ρσξηθψλ δεδνκέλσλ είηε κέζσ εηδηθψλ αλνηθηψλ

7 OGC (Open Geospatial Consortium): είλαη έλαο δηεζλήο, εζεινληηθήο ζπλαίλεζεο, νξγαληζκφο

πξνηχπσλ πνπ δεκηνπξγήζεθε ην 1994. ηνλ OGC, πεξηζζφηεξνη απφ 370 εκπνξηθνί, θπβεξλεηηθνί,

κε-θεξδνζθνπηθνί θαη εξεπλεηηθνί νξγαληζκνί παγθνζκίσο, ζπλεξγάδνληαη ζε κηα αλνηθηή δηαδηθαζία

ζπλαίλεζεο, ψζηε λα ελζαξξχλνπλ ηελ αλάπηπμε θαη πινπνίεζε πξνηχπσλ γηα γεσρσξηθφ πεξηερφκελν

θαη ππεξεζίεο, επεμεξγαζία GIS δεδνκέλσλ θαη δηακνίξαζε δεδνκέλσλ.

Αλάπηπμε Πηινηηθήο Δθαξκνγήο γηα ηε δηελέξγεηα πλδπαζηηθώλ Διέγρσλ

κεηαμύ Πεξηγξαθηθώλ θαη Υσξηθώλ Βάζεσλ Κηεκαηνινγίνπ Μάξηηνο 2012

ύληαμε: Γεσξγαθάθε ηαπξνύια 35 /144

εθαξκνγψλ, φπσο γηα παξάδεηγκα ηα QuantumGIS, Udig, MapServer είηε

πξνγξακκαηηζηηθά.

Σν κνληέιν PostGIS είλαη έλα ππεξζχλνιν ηνπ κνληέινπ «Simple Features» πνπ

νξίδεη ην OGC. Δπνκέλσο, ηκήκα απηνχ είλαη πιήξσο ζπκβαηφ κε ηηο ηππνπνηήζεηο

δηαρείξηζεο γεσγξαθηθψλ δεδνκέλσλ πνπ νξίδεη ην OGC.

ε ζπκθσλία κε ην OGC ινηπφλ, ε PostGIS αθνινπζεί δχν βαζηθνχο ηξφπνπο

έθθξαζεο ησλ ρσξηθψλ αληηθεηκέλσλ:

ε κνξθή θεηκέλνπ (Well-Known Text – WKT form)

ε δπαδηθή κνξθή (Well-Known Binary – WKB form)

Καη νη δχν ηξφπνη έθθξαζεο πεξηιακβάλνπλ πιεξνθνξίεο γηα ηνλ ηχπν ηνπ

αληηθεηκέλνπ θαη ηηο ζπληεηαγκέλεο πνπ ην πεξηγξάθνπλ.

Αθνινπζνχλ νξηζκέλα παξαδείγκαηα ηεο κνξθήο WKT (γηα ηνπο ηχπνπο ησλ

ρσξηθψλ δεδνκέλσλ πνπ ππνζηεξίδνληαη):

Κάζε ρσξηθφ αληηθείκελν ζπλνδεχεηαη απφ έλαλ θσδηθφ ηνπ ζπζηήκαηνο αλαθνξάο

ζπληεηαγκέλσλ (spatial referencing system identifier - SRID). Οη κνξθέο εηζφδνπ / εμφδνπ

ππνζηεξίδνληαη απφ ηηο αθφινπζεο ζπλαξηήζεηο (δηεπαθέο):

Ζ PostGIS ππνζηεξίδεη κηα ζεηξά απφ γεσκεηξηθνχο ηειεζηέο, φπσο γηα παξάδεηγκα:

&& ειέγρεη αλ ηα ειάρηζηα πεξηβάιινληα παξαιιειφγξακκα (ΔΠΠ) δχν

γεσκεηξηψλ επηθαιχπηνληαη

~= ειέγρεη αλ δχν γεσκεηξίεο ηαπηίδνληαη

POINT(0 0) ηχπνο «ζεκείν»

LINESTRING(0 0,1 1,1 2) ηχπνο «πνιπγσληθή γξακκή»

POLYGON((0 0,4 0,4 4,0 4,0 0),(1 1, 2 1, 2 2, 1 2,1 1)) ηχπνο «πνιχγσλν»

MULTIPOINT(0 0,1 2) ηχπνο «ζχλνιν ζεκείσλ»

MULTILINESTRING((0 0,1 1,1 2),(2 3,3 2,5 4)) ηχπνο «ζχλνιν πνιπγσληθψλ γξακκψλ»

MULTIPOLYGON(((0 0,4 0,4 4,0 4,0 0),(1 1,2 1,2 2,1 2,1 1)), ((-1 -1,-1 -2,-2 -2,-2 -1,-1 -1))) ηχπνο «ζχλνιν πνιπγψλσλ»

GEOMETRYCOLLECTION(POINT(2 3),LINESTRING(2 3,3 4)) ηχπνο «ζχλζεηε γεσκεηξία»

bytea WKB = ST_AsBinary(geometry);

text WKT = ST_AsText(geometry);

geometry = ST_GeomFromWKB(bytea WKB, SRID);

geometry = ST_GeometryFromText(text WKT, SRID);

Αλάπηπμε Πηινηηθήο Δθαξκνγήο γηα ηε δηελέξγεηα πλδπαζηηθώλ Διέγρσλ

κεηαμύ Πεξηγξαθηθώλ θαη Υσξηθώλ Βάζεσλ Κηεκαηνινγίνπ Μάξηηνο 2012

ύληαμε: Γεσξγαθάθε ηαπξνύια 36 /144

=: ειέγρεη αλ ηα ηα ειάρηζηα πεξηβάιινληα παξαιιειφγξακκα (ΔΠΠ) δχν

γεσκεηξηψλ ηαπηίδνληαη

Δπίπιένλ, ππνζηεξίδεη κηα πινχζηα ζπιινγή απφ ζπλαξηήζεηο γηα ηελ επεμεξγαζία

γεσρσξηθψλ νληνηήησλ, νη πεξηζζφηεξεο ησλ νπνίσλ είλαη ζπκβαηέο κε ηηο

ηππνπνηήζεηο ηνπ OGC:

Γηαρείξηζεο (AddGeometryColumn, DropGeometryColumn, θα)

Γεσκεηξηθήο Καηαζθεπήο (ST_GeomFromText, ST_LineFromText, θα)

Γεσκεηξηθήο πλέξγηαο (ST_Boundary, ST_IsClosed, ST_SRID, θα)

Γεσκεηξηθήο χληαμεο (ST_AddPoint, ST_Rotate, ST_Scale, θα)

Δμαγσγήο Γεσκεηξηψλ (ST_AsGML, ST_AsKML, ST_AsText, θα)

Υσξηθψλ ρέζεσλ θαη Μεηξήζεσλ (ST_Area, ST_Distance, ST_Contains, θα)

Γεσκεηξηθήο Δπεμεξγαζίαο (ST_Difference, ST_Polygonize, ST_Union, θα)

Γξακκηθήο πζρέηηζεο (ST_Line_Locate_Point, ST_Locate_Along_Measure, θα)

Τπνζηήξημεο καθξφζπξησλ ζπλαιιαγψλ (EnableLongTransactions, LockRow)

Υσξηθήο Αλάιπζεο (ST_Xmin, ST_Xmin, θα)

Δμεηδηθεπκέλεο πλαξηήζεηο (PostGIS_AddBBox, PostGIS_DropBBox, θα)

Καηά ηελ εγθαηάζηαζε ηεο επέθηαζεο PostGIS δεκηνπξγείηαη ζηελ PostgreSQL κηα

ΒΓ κε φλνκα «template_postgis». Οπνηαδήπνηε ΒΓ δεκηνπξγεζεί ρξεζηκνπνηψληαο

σο template ην «template_postgis» θαζίζηαηαη ρσξηθά ελεξγνπνηεκέλε

θιεξνλνκψληαο ηα αληίζηνηρα ραξαθηεξηζηηθά απφ ηελ PostGIS (πίλαθεο

κεηαδεδνκέλσλ, ηειεζηέο, ζπλαξηήζεηο, θιπ). ηε ζπλέρεηα δίλεηαη ε δπλαηφηεηα

δεκηνπξγίαο ρσξηθά ελεξγνπνηεκέλσλ πηλάθσλ (κε ζηήιε γεσκεηξίαο) κε SQL

εληνιέο θαη ρξήζε ηε ζπλάξηεζεο :

AddGeometryColumn (<schema>, <table>, <column>, <srid>, <geometry>, <dimension>)

φπνπ: <schema> ην φλνκα ηνπ ζρήκαηνο πνπ ζα θηινμελήζεη ην λέν πίλαθα, <table>

ην φλνκα ηνπ λένπ πίλαθα, <column> ην φλνκα ηεο ζηήιεο πνπ ζα θηινμελήζεη ηε

γεσκεηξία, <srid> ην ζχζηεκα αλαθνξάο ζπληεηαγκέλσλ, <geometry> ν ηχπνο ηεο

γεσκεηξίαο, <dimension> ν αξηζκφο ησλ δηαζηάζεσλ ηνπ ρψξνπ

Καηά ηε δεκηνπξγία ηνπ πίλαθα κε ηελ παξαπάλσ δηαδηθαζία εηζάγεηαη λέα εγγξαθή

ζηνλ πίλαθα κεηαδεδνκέλσλ GEOMETRY_COLUMNS πνπ πεξηιακβάλεη ηε

γεσκεηξηθή/γεσγξαθηθή πιεξνθνξία ηνπ λένπ πίλαθα, ελψ παξάιιεια ειέγρεηαη ε

Αλάπηπμε Πηινηηθήο Δθαξκνγήο γηα ηε δηελέξγεηα πλδπαζηηθώλ Διέγρσλ

κεηαμύ Πεξηγξαθηθώλ θαη Υσξηθώλ Βάζεσλ Κηεκαηνινγίνπ Μάξηηνο 2012

ύληαμε: Γεσξγαθάθε ηαπξνύια 37 /144

χπαξμε ηνπ επηιεγκέλνπ SRID κέζα ζην δεχηεξν πίλαθα κεηαδεδνκέλσλ

SPATIAL_REF_SYS8.

Ζ PostGIS επίζεο ππνζηεξίδεη ηηο δνκέο επξεηεξίσλ Β-Γέλδξα, R-Γέλδξα θαη GiST-

Γέλδξα γηα ηελ επηηάρπλζε ησλ ιεηηνπξγηψλ αλάθηεζεο δεδνκέλσλ απφ ηε βάζε.

Σέινο, δηαζέηεη δχν ρξήζηκα πξνγξάκκαηα γηα ηελ εηζαγσγή θη εμαγσγή δεδνκέλσλ

απφ θαη πξνο αξρεία κνξθήο shapefile (ESRI), ηα νπνία εγθαζίζηαληαη ζην θάθειν

bin ηεο postgreSQL θαηά ηελ εγθαηάζηαζε ηεο PostGIS. Σα πξνγξάκκαηα απηά

θαινχληαη shp2pgsql θαη pgsql2shp θαη πεξηγξάθνληαη ζηηο επφκελεο παξαγξάθνπο.

3.1.5. PostGIS Loader (shp2pgsql)

Σν shp2pgsql είλαη έλα πξφγξακκα πνπ ιεηηνπξγεί ζε πεξηβάιινλ γξακκήο εληνιψλ

θαη κεηαηξέπεη αξρεία κνξθήο shapefile ηεο ESRI ζε θείκελν SQL θαηάιιειν γηα ηελ

ελζσκάησζε ηεο πιεξνθνξίαο ηνπ αξρείνπ ζηε ΒΓ PostgreSQL/PostGIS. Οη

παξάκεηξνη θφξησζεο ησλ δεδνκέλσλ κέζσ ηνπ κεηαηξνπέα νξίδνληαη κέζα απφ

θαηάιιειε ζεηξά εληνιψλ φπσο θαίλνληαη ζηελ εηθφλα πνπ αθνινπζεί:

Δικόνα 3. Δληνιέο θαη παξάκεηξνη γηα ρξήζε ηνπ κεηαηξνπέα shp2pgsql

8 Οη δχν πίλαθεο κεηαδεδνκέλσλ πξνζηίζεληαη by default ζην ζρήκα public ηεο εθάζηνηε ΒΓ πνπ

δεκηνπξγείηαη κε template ηε βάζε «template_postgis»

Αλάπηπμε Πηινηηθήο Δθαξκνγήο γηα ηε δηελέξγεηα πλδπαζηηθώλ Διέγρσλ

κεηαμύ Πεξηγξαθηθώλ θαη Υσξηθώλ Βάζεσλ Κηεκαηνινγίνπ Μάξηηνο 2012

ύληαμε: Γεσξγαθάθε ηαπξνύια 38 /144

3.1.6. PostGIS Dumper (pgsql2shp)

Σν pgsql2shp είλαη επίζεο έλα πξφγξακκα πνπ ιεηηνπξγεί ζε πεξηβάιινλ γξακκήο

εληνιψλ θαη έρεη αληίζηξνθε ιεηηνπξγηθφηεηα απφ ην πξνπεξηγξθφκελν. Γέρεηαη σο

δεδνκέλα εηζφδνπ «ρσξηθά ελεξγνπνηεκέλνπο» πίλαθεο ησλ ΒΓ PostgreSQL/PostGIS

θαη ηνπο κεηαζρεκαηίδεη ζε κνξθή shapefile ηεο ESRI. Οη παξάκεηξνη αλάθηεζεο ησλ

δεδνκέλσλ κέζσ ηνπ κεηαηξνπέα νξίδνληαη κέζα απφ ζεηξά θαηάιιεισλ εληνιψλ

πνπ εκθαλίδνληαη ζηελ εηθφλα πνπ αθνινπζεί:

Δικόνα 4. Δληνιέο θαη παξάκεηξνη γηα ρξήζε ηνπ κεηαηξνπέα pgsql2shp

3.2. Πλαίζιο - Γλώζζα ππογπαμμαηιζμού για ηην ανάπηςξη ηηρ διεπαθήρ

3.2.1. .NET Framework

Σν πιαίζην .NET (Microsoft .NET Framework) απνηειεί έλα πιαίζην

πξνγξακκαηηζκνχ πνπ «ηξέρεη» θαηά θχξην ιφγν ζηελ πιαηθφξκα ησλ Microsoft

Windows. Πεξηιακβάλεη ηεξάζηηα βηβιηνζήθε θιάζεσλ θαη ππνζηεξίδεη πνιιέο

γιψζζεο πξνγξακκαηηζκνχ, παξέρνληαο έηζη ηε δπλαηφηεηα ηεο δηαιεηηνπξγηθφηεηαο

(θάζε γιψζζα πξνγξακκαηηζκνχ κπνξεί λα ρξεζηκνπνηήζεη θψδηθα πνπ έρεη γξαθηεί

ζε άιιεο γιψζζεο).

Πξνγξάκκαηα πνπ έρνπλ γξαθηεί γηα ην πιαίζην .NET εθηεινχληαη ζε έλα

πεξηβάιινλ ινγηζκηθνχ γλσζηφ σο Common Language Runtime (CLR), κηα

Αλάπηπμε Πηινηηθήο Δθαξκνγήο γηα ηε δηελέξγεηα πλδπαζηηθώλ Διέγρσλ

κεηαμύ Πεξηγξαθηθώλ θαη Υσξηθώλ Βάζεσλ Κηεκαηνινγίνπ Μάξηηνο 2012

ύληαμε: Γεσξγαθάθε ηαπξνύια 39 /144

εθαξκνγή εηθνληθήο κεραλήο πνπ παξέρεη ζεκαληηθέο ππεξεζίεο φπσο αζθάιεηα,

δηαρείξηζε κλήκεο θαη ρεηξηζκφ «αδπλακηψλ» (exception handling). Ζ βηβιηνζήθε

θιάζεσλ καδί κε ην CLR ζπληζηνχλ ην πιαίζην .NET.

Ζ βαζηθή βηβιηνζήθε θιάζεσλ ηνπ πιαηζίνπ .NET παξέρεη δηεπαθή ρξήζηε,

πξφζβαζε ζε δεδνκέλα, ζπλδεζηκφηεηα βάζεσλ δεδνκέλσλ, θξππηνγξάθεζε,

αλάπηπμε εθαξκνγψλ δηαδηθηχνπ, αξηζκεηηθνχο αιγνξίζκνπο θαη δηαδηθηπαθή

επηθνηλσλία. Γίλεη ηε δπλαηφηεηα ζηνπο πξνγξακκαηηζηέο λα δεκηνπξγνχλ ινγηζκηθφ

ζπλδπάδνληαο ην δηθφ ηνπο πεγαίν θψδηθα, ηφζν κε απηφ ηνπ .NET Framework φζν

θαη κε άιιεο βηβιηνζήθεο. Δπηπιένλ, παξέρεηαη απφ ηε Microsoft έλα νινθιεξσκέλν

πεξηβάιινλ γηα ηελ αλάπηπμε ινγηζκηθνχ ζε .NET, ην Visual Studio.

3.2.2. VB.NET

Ζ Visual Basic .NET (VB.NET), είλαη κηα αληηθεηκελνζηξαθήο γιψζζα

πξνγξακκαηηζκνχ ε νπνία κπνξεί λα ραξαθηεξηζζεί σο ε εμέιημε ηεο θιαζζηθήο

Visual Basic (VB) θαη εθηειείηαη ζην πιαίζην .NET.

Ζ Visual Basic είλαη ζήκεξα ε πην δεκνθηιήο θαζνδεγνχκελε απφ ζπκβάληα γιψζζα

(event driven language) νπηηθνχ πξνγξακκαηηζκνχ θαη ζπλδπάδεη ηα ραξαθηεξηζηηθά

ηεο γλσζηήο γιψζζαο πξνγξακκαηηζκνχ Basic, γηα εχθνιε εθκάζεζε, θαζψο επίζεο

θαη πιεζψξα εληνιψλ θαη ζπλαξηήζεσλ. Δπηηξέπεη ηελ ηαρεία αλάπηπμε εθαξκνγψλ

κε Γξαθηθφ Πεξηβάιινλ Υξήζηε (GUI), πξφζβαζε ζε βάζεηο δεδνκέλσλ

ρξεζηκνπνηψληαο αληηθείκελα (Data Access Objects, Remote Data Objects, ή ActiveX

Data Objects) θαη ηε δεκηνπξγία ζηνηρείσλ ειέγρνπ ActiveX θαη αληηθεηκέλσλ.

Οη εθαξκνγέο ζε γξαθηθφ πεξηβάιινλ απνηεινχληαη απφ κηα ή πεξηζζφηεξεο θφξκεο

κε αληηθείκελα (objects), φπσο πιήθηξα εληνιψλ, ιίζηεο, πιαίζηα θεηκέλνπ, θ.ν.θ., ηα

νπνία ελεξγνπνηνχληαη απφ θάπνην ζπκβάλ, φπσο είλαη ην πάηεκα ελφο πιήθηξνπ απφ

ην πιεθηξνιφγην ή απφ ην πνληίθη.

Ο θψδηθαο ζηε Visual Basic απαξηίδεηαη απφ έλα ζχλνιν απφ ππνπξνγξάκκαηα

(ππνξνπηίλεο), φπνπ ην θαζέλα απ' απηά αληαπνθξίλεηαη ζε θάπνηα ελέξγεηα ηνπ

ρξήζηε.

Αλάπηπμε Πηινηηθήο Δθαξκνγήο γηα ηε δηελέξγεηα πλδπαζηηθώλ Διέγρσλ

κεηαμύ Πεξηγξαθηθώλ θαη Υσξηθώλ Βάζεσλ Κηεκαηνινγίνπ Μάξηηνο 2012

ύληαμε: Γεσξγαθάθε ηαπξνύια 40 /144

3.2.3. DotSpatial

Σν project Dot Spatial αλαπηχζζεηαη απφ κέιε ηεο open source νκάδαο MapWindow

GIS θαη ηελ επξχηεξε θνηλφηεηα αλάπηπμεο OSGeo .NET. ηφρνο ηνπ είλαη λα

παξέρεη κηα ειεχζεξε, αλνηρηνχ θψδηθα, ζπλεπή θαη αμηφπηζηε ζεηξά βηβιηνζεθψλ γηα

.NET, Silverlight θαη Mono, επηηξέπνληαο ζηνπο πξνγξακκαηηζηέο λα ελζσκαηψλνπλ

κε εχθνιν ηξφπν ζηηο εθαξκνγέο ηνπο ρσξηθά δεδνκέλα, δεδνκέλα ρσξηθήο αλάιπζεο

θαη δεδνκέλα ραξηνγξαθίαο, δίλνληαο έηζη πξφζβαζε ζηε ρξήζε ησλ ηεξάζηησλ

δπλαηνηήησλ ησλ ΓΠ κε έλαλ κε πεξηνξηζηηθφ ηξφπν.

3.3. Δπικοινυνία ΒΓ

Ζ ζχλδεζε βάζεσλ δεδνκέλσλ είλαη κηα δπλαηφηεηα ζηελ πιεξνθνξηθή πνπ επηηξέπεη

ζην ινγηζκηθφ πειαηψλ λα επηθνηλσλεί κε ην ινγηζκηθφ δηαθνκηζηή βάζεσλ

δεδνκέλσλ, είηε ζηελ ίδηα κεραλή είηε φρη. Ζ ζχλδεζε είλαη απαξαίηεηε σο κέζν γηα

ηελ απνζηνιή ησλ εληνιψλ θαη ηε ιήςε ησλ απαληήζεσλ.

Μηα ζχλδεζε δεκηνπξγείηαη εθνδηάδνληαο ηνλ αληίζηνηρν νδεγφ (driver) ή πάξνρν

(provider) κε κηα «εληνιή ζχλδεζεο» (connection string) θαη κπνξεί λα

ρξεζηκνπνηεζεί είηε γηα ην «θάιεζκα» ζπγθεθξηκέλεο ΒΓ ή εμππεξεηεηή ΒΓ, είηε γηα

ηελ πηζηνπνίεζε ησλ ζηνηρείσλ ηνπ ρξήζηε (ζε ζπηήκαηα κε ειεγρφκελε πξφζβαζε).

Απφ ηε ζηηγκή πνπ κηα ζχλδεζε έρεη δεκηνπξγεζεί, ηφηε κπνξεί λα «αλνίγεη» θαη λα

«θιείλεη» θαηά βνχιεζε - αλάινγα κε ηηο αλάγθεο ηεο εθαξκνγήο πνπ ηελ αμηνπνηεί -

θαζψο θαη λα ξπζκηζηνχλ δηάθνξεο ηδηφηεηεο ηεο (φπσο κέγηζηνο ρξφλνο ζχλδεζεο ή

κέγηζηνο ρξφλνο αηηήκαηνο, θα). Ζ «εληνιή ζχλδεζεο» ζπληίζεηαη απφ κηα ζεηξά

δεπγψλ «θιεηδηνχ: ηηκήο» (key: value) φπσο απηή νξίδεηαη απφ ην εθάζηνηε

πεξηβάιινλ θαη ηνλ πάξνρν δεδνκέλσλ (data provider).

3.3.1. .NET Framework Data Providers (ADO.NET9)

Έλαο πάξνρνο δεδνκέλσλ (data provider) ηνπ πιαηζίνπ .NET ρξεζηκνπνηείηαη γηα ηε

ζχλδεζε κε κηα ΒΓ, ηελ εθηέιεζε εληνιψλ θαη ηελ αλάθηεζε απνηειεζκάησλ. Σα

απνηειέζκαηα απηά κπνξνχλ είηε λα ηεζνχλ άκεζα πξνο επεμεξγαζία ζε ζπλδπαζκφ

9 ActiveX Data Objects for .NET

Αλάπηπμε Πηινηηθήο Δθαξκνγήο γηα ηε δηελέξγεηα πλδπαζηηθώλ Διέγρσλ

κεηαμύ Πεξηγξαθηθώλ θαη Υσξηθώλ Βάζεσλ Κηεκαηνινγίνπ Μάξηηνο 2012

ύληαμε: Γεσξγαθάθε ηαπξνύια 41 /144

κε δεδνκέλα απφ άιιεο πεγέο - κε ηελ απνζήθεπζε ηνπο ζε έλα Dataset10

ψζηε λα

είλαη εχθνια πξνζβάζηκα απφ ην ρξήζηε - είηε λα κεηαθεξζνχλ κεηαμχ

απνκαθξπζκέλσλ ζηαζκψλ. Οη πάξνρνη δεδνκέλσλ ηνπ πιαηζίνπ .NET (.NET

Framework data providers) δεκηνπξγνχλ έλα «ιεπηφ ζηξψκα» κεηαμχ ηνπ θψδηθα θαη

ηεο ζπιινγήο δεδνκέλσλ θαη απμάλνπλ ηελ επίδνζε ρσξίο λα ζπζηάδνπλ ηε

ιεηηνπξγηθφηεηα.

Παξαθάησ παξνπζηάδνληαη - ζρεκαηηθά θαη ζε κνξθή πίλαθα - ηα βαζηθά ζπζηαηηθά

αληηθείκελα πνπ ζπλζέηνπλ έλα πάξνρν δεδνκέλσλ ηνπ πιαηζίνπ .NET:

Δικόνα 5. Βαζηθά πζηαηηθά Αληηθείκελα ελόο .NET Data Provider

Πίνακαρ 6. Βαζηθά πζηαηηθά Αληηθείκελα ελόο .NET Data Provider

Δληνχηνηο, επεηδή νη δηαθνξεηηθέο ηερλνινγίεο απνζήθεπζεο δεδνκέλσλ

ζπλεπάγνληαη θαη δηαθνξεηηθέο ηδηφηεηεο, θάζε πάξνρνο ADO.NET δελ είλαη

ζπκβαηφο κε θάζε δηεπαθή ηνπ πξνηχπνπ ADO.NET.

Ζ Microsoft πεξηγξάθεη ηε δηαζεζηκφηεηα θάζε δηεπαθήο σο «provider-specific», κε

ην δεδνκέλν φηη κπνξεί λα κελ είλαη εθηθηή, εθφζνλ εμαξηάηαη θαη απφ ηελ

εκπιεθφκελε ηερλνινγία απνζήθεπζεο δεδνκέλσλ.

10

Dataset: Μηα ζπιινγή δεδνκέλσλ ζπλήζσο ζε κνξθή πίλαθα

Ανηικείμενο Πεπιγπαθή

Connection Ηδξχεη κηα ζχλδεζε κε ζπγθεθξηκέλε πεγή δεδνκέλσλ (Data Source)

Command Δθηειεί εληνιέο κέζα ζηελ πεγή δεδνκέλσλ (Data Source)

DataReader Γηαβάδεη δεδνκέλα απφ ηελ πεγή δεδνκέλσλ (Data Source)

DataAdapterΓεκίδεη κηα ζπιινγή δεδνκέλσλ (Dataset) θαη δηεθπαηξεψλεη

ελεκεξψζεηο (updates) κε ηελ πεγή δεδνκέλσλ (Data Source)

Αλάπηπμε Πηινηηθήο Δθαξκνγήο γηα ηε δηελέξγεηα πλδπαζηηθώλ Διέγρσλ

κεηαμύ Πεξηγξαθηθώλ θαη Υσξηθώλ Βάζεσλ Κηεκαηνινγίνπ Μάξηηνο 2012

ύληαμε: Γεσξγαθάθε ηαπξνύια 42 /144

3.3.2. Npgsql Data Provider

Ο Npgsql είλαη έλαο πάξνρνο δεδνκέλσλ (data provider) ηνπ πιαηζίνπ .Net γηα ηελ

PostgreSQL. Παξέρεη ζε θάζε «πειαηεηαθή εθαξκνγή» (client application) ηνπ

πιαηζίνπ .NET ηε δπλαηφηεηα πξφζβαζεο ζηνλ εμππεξεηεηή θαη απνζηνιήο /

αλάθηεζεο δεδνκέλσλ κέζσ απηνχ.

3.3.3. SQL (Structured Query Language)

Ζ γιψζζα SQL (Standard Query Language) είλαη ε πην δεκνθηιήο γιψζζα ησλ

ζρεζηαθψλ βάζεσλ δεδνκέλσλ (ΓΒΓ). Αξρηθά αλαπηχρζεθε απφ ηελ IBM γηα ηα

πξνγξάκκαηα System-R θαη SEQUEL-XRM (1974-77). ηε ζπλέρεηα νη

ANSI11

/ISO12

νξγαληζκνί φξηζαλ ηελ ηππνπνηεκέλε κνξθή ηεο SQL (SQL θαη

SQL2), ε νπνία ζήκεξα θηινμελείηαη ζε φια ηα, εκπνξηθά θαη κε, ρεζηαθά ΓΒΓ

(MS-Access, Oracle, Informix, PostgreSQL, θ.α.). Ζ γιψζζα SQL βαζίδεηαη ζηε

ζρεζηαθή άιγεβξα θαη είλαη κηα δεισηηθή γιψζζα (κε δηαδηθαζηηθή), ζηελ νπνία ν

ρξήζηεο πεξηγξάθεη ηί ζέιεη θαη φρη πψο απηφ ζα αλαθηεζεί απφ ηε βάζε δεδνκέλσλ.

Σν ηειεπηαίν απνηειεί έξγν ηνπ ινγηζκηθνχ ηνπ ΓΒΓ.

11

American National Standards Institute 12

International Organization for Standardization

Αλάπηπμε Πηινηηθήο Δθαξκνγήο γηα ηε δηελέξγεηα πλδπαζηηθώλ Διέγρσλ

κεηαμύ Πεξηγξαθηθώλ θαη Υσξηθώλ Βάζεσλ Κηεκαηνινγίνπ Μάξηηνο 2012

ύληαμε: Γεσξγαθάθε ηαπξνύια 43 /144

4. ηάδια ανάπηςξηρ ηηρ εθαπμογήρ

Σα ζηάδηα πνπ αθνινπζήζεθαλ γηα ηελ αλάπηπμε ηεο πηινηηθήο εθαξκνγήο, ε νπνία

απνηειεί θαη αληηθείκελν ηεο παξνχζαο εξγαζίαο, παξαηίζεληαη παξαθάησ

επηγξακκαηηθά, θαη αλαπηχζζνληαη πεξηζζφηεξν ζηηο επφκελεο παξαγξάθνπο.

Με ην δεδνκέλν φηη ε ε ππφ αλάπηπμε εθαξκνγή απνηειεί νπζηαζηηθά έλα χζηεκα

Βάζεο Γεδνκέλσλ (ΒΓ) ε ξνή εξγαζηψλ πνπ πεξηγξάθεηαη έρεη ζηεξηρηεί ζηνπο

γεληθφηεξνπο θαλφλεο ζρεδίαζεο θαη αλάπηπμεο ελφο ΒΓ.

πιινγή θαη Αλάιπζε Απαηηήζεσλ Δθαξκνγήο

Δλλνηνινγηθφο ρεδηαζκφο

Δπηινγή ΓΒΓ θαη Λνγηζκηθνχ

Λνγηθφο θαη Φπζηθφο ρεδηαζκφο

ρεδηαζκφο ιεηηνπξγηψλ ειέγρνπ θαη δνζνιεςηψλ

ρεδηαζκφο ηεο Γηεπαθήο Υξήζηε (GUI)

Τινπνίεζε

Έιεγρνο θαη αμηνιφγεζε πηινηηθήο εθαξκνγήο

4.1. ςλλογή και Ανάλςζη Απαιηήζευν Δθαπμογήρ

ην πιαίζην ζπιινγήο θαη αλάιπζεο ησλ απαηηήζεσλ ηεο εθαξκνγήο εμεηάζηεθε ν

ζθνπφο πνπ θαινχηαλ λα εμππεξεηήζεη, πξνζδηνξίζηεθαλ νη απνξξένπζεο αλάγθεο

θαη έγηλε θαηαγξαθή ησλ απαηηήζεσλ γηα ηελ εμππεξέηεζε ηνπ ζθνπνχ.

4.1.1. Πξνζδηνξηζκφο Αλαγθψλ

θνπφο ηεο ππφ αλάπηπμε εθαξκνγήο ήηαλ ε δεκηνπξγία ελφο εχρξεζηνπ θαη

ιεηηνπξγηθνχ εξγαιείνπ γηα ηνλ έιεγρν ησλ παξαδνηέσλ (απφ ηνπο Αλαδφρνπο

Κηεκαηνινγίνπ) Βάζεσλ Κηεκαηνγξάθεζεο θαη ηελ εμαγσγή ζπκπεξαζκάησλ σο

πξνο ηε ζπκκφξθσζε ηνπο κε ηηο Σερληθέο Πξνδηαγξαθέο ηνπ Έξγνπ.

Αλάπηπμε Πηινηηθήο Δθαξκνγήο γηα ηε δηελέξγεηα πλδπαζηηθώλ Διέγρσλ

κεηαμύ Πεξηγξαθηθώλ θαη Υσξηθώλ Βάζεσλ Κηεκαηνινγίνπ Μάξηηνο 2012

ύληαμε: Γεσξγαθάθε ηαπξνύια 44 /144

Σν πεξηερφκελν ηνπ αλσηέξσ ειέγρνπ αθνξνχζε ζηελ πηζηνπνίεζε ηεο πιήξνπο θαη

νξζήο ζπζρέηηζεο ησλ Πεξηγξαθηθψλ (Πεξηγξαθηθή Βάζε) κε ηα Υσξηθά (Υσξηθή

Βάζε) ηνηρεία Κηεκαηνινγίνπ.

Οη δπλαηφηεηεο πνπ θξίζεθε ζθφπηκν λα παξέρνληαη ζην ρξήζηε κέζα απφ ηε

δηεπαθή ηεο εθαξκνγήο ήηαλ:

Πξφζβαζε ζηα ππφ έιεγρν Γεδνκέλα

Δθηέιεζε Διέγρσλ

Δκθάληζε Απνηειεζκάησλ

Δμαγσγή Απνηειεζκάησλ Διέγρσλ (απνζήθεπζε ζην δίζθν ηεο κεραλήο - ζε

επηιεγκέλε απφ ην ρξήζηε ηνπνζεζία - γηα κεηαγελέζηεξε επεμεξγαζία)

Ο ρξήζηεο ζηνπο νπνίνπο απεπζχλεηαη ε εθαξκνγή είλαη ηφζν νη Αλάδνρνη ησλ

κειεηψλ Κηεκαηνγξάθεζεο γηα ηνλ έιεγρν ησλ παξαδνηέσλ πξντφλησλ πξηλ ηελ

ππνβνιή ηνπο, φζν θαη ε ίδηα ε αλαζέηνπζα αξρή - Κηεκαηνιφγην ΑΔ - γηα ηελ

αμηνιφγεζε ηνπ θάζε παξαδνηένπ πξηλ ηελ παξαιαβή απηνχ.

4.1.2. Καηαγξαθή απαηηήζεσλ

Γηα ηελ ηθαλνπνίεζε ησλ αλσηέξσ έπξεπε λα πινπνηεζεί κηα πειαηεηαθή εθαξκνγή

(client application) ε νπνία λα κπνξεί λα «ηξέρεη» ζε νπνηαδήπνηε κεραλή ρσξίο

εμεδεηεκέλεο ηερληθέο απαηηήζεηο.

Γηα ηελ αλάπηπμε ηεο δηεπαθήο θαη ησλ ιεηηνπξγηψλ ηεο εθαξκνγήο έπξεπε λα

επηιεγεί ε γιψζζα πξνγξακκαηηζκνχ πνπ ζα ρξεζηκνπνηεζεί θαζψο θαη νη

αληίζηνηρεο βηβιηνζήθεο εξγαιείσλ.

Οη ιεηηνπξγίεο, πνπ θξίζεθε ζθφπηκν λα εθηεινχληαη απφ ηε δηεπαθή, πξνυπφζεηαλ

ηελ επηινγή θαηάιιεινπ ΓΒΓ γηα ηελ ζπλνιηθή απνζήθεπζε, ηελ αλάιπζε θαη ηε

δηαρείξηζε ησλ δεδνκέλσλ.

Σέινο, ήηαλ απαξαίηεηε ε επηινγή θαηάιιεινπ ινγηζκηθνχ (παξφρνπ) πνπ ζα

εμαζθάιηδε ηελ επηθνηλσλία ηεο δηεπαθήο ρξήζηε κε ην επηιερζέλ ΓΒΓ, ψζηε λα

είλαη δπλαηή ε απνζηνιή αηηεκάησλ πξνο απηφ θαη ε αλάθηεζε δεδνκέλσλ απφ απηφ.

Αλάπηπμε Πηινηηθήο Δθαξκνγήο γηα ηε δηελέξγεηα πλδπαζηηθώλ Διέγρσλ

κεηαμύ Πεξηγξαθηθώλ θαη Υσξηθώλ Βάζεσλ Κηεκαηνινγίνπ Μάξηηνο 2012

ύληαμε: Γεσξγαθάθε ηαπξνύια 45 /144

4.2. Δννοιολογικόρ σεδιαζμόρ

Καηά ηνλ ελλνηνινγηθφ ζρεδηαζκφ ελφο ΒΓ επηδηψθεηαη ε πιήξεο θαηαλφεζε ησλ

δεδνκέλσλ πνπ ζα θηινμελεζνχλ απφ ηε βάζε, ε ζεκαζηνινγία ηνπο θαη νη

ελδερφκελνη πεξηνξηζκνί.

ηελ πεξίπησζε ηεο παξνχζαο εξγαζίαο, ηα δεδνκέλα εηζφδνπ ηεο εθαξκνγήο

(πεξηγξαθηθά θαη ρσξηθά ζηνηρεία θηεκαηνγξάθεζεο) ήηαλ ήδε νξγαλσκέλα ζε

αληίζηνηρεο ζπιινγέο ζηνηρείσλ / βάζεηο δεδνκέλσλ, αθνινπζψληαο ην

πξνθαζνξηζκέλν κνληέιν νληνηήησλ ζπζρεηίζεσλ (Ο-) πνπ απνξξέεη απφ ηηο

Σερληθέο Πξνδηαγξαθέο ηνπ Έξγνπ (βιέπε θαη Παξάξηεκα Η γηα ζρεκαηηθή

παξνπζίαζε ησλ δηαγξακκάησλ «νληνηήησλ - ζπζρεηίζεσλ» ησλ πεξηγξαθηθψλ θαη

ρσξηθψλ δεδνκέλσλ Κηεκαηνγξάθεζεο).

Δπνκέλσο, ην ζηάδην ηνπ ελλνηνινγηθνχ ζρεδηαζκνχ ζπλνςίζηεθε ζηελ αλάιπζε,

αμηνιφγεζε θαη θαηαγξαθή ησλ δεδνκέλσλ θαη ησλ ραξαθηεξηζηηθψλ ηνπο.

Σα αληηθείκελα ηεο αλάιπζεο θαη αμηνιφγεζεο ήηαλ:

i. ηα Γεδνκέλα Δηζφδνπ (ζπγθέληξσζε θαη θαηαγξαθή format, κνξθήο, δνκήο,

πεξηερφκελεο πιεξνθνξίαο)

ii. ηα Γεδνκέλα Δμφδνπ (ζρεδηαζκφο θαη ιήςε απνθάζεσλ γηα ην είδνο θαη ηα

ραξαθηεξηζηηθά ησλ exports ηεο εθαξκνγήο)

4.2.1. Αλάιπζε θαη Αμηνιφγεζε Γεδνκέλσλ Δηζφδνπ

Σα δεδνκέλα εηζφδνπ ηεο εθαξκνγήο σο πξνο ην format, ηε κνξθή / δνκή ηνπο θαη

ηελ πεξηερφκελε πιεξνθνξία ηνπο πεξηγξάθεθαλ εθηελψο ζε πξνεγνχκελε

παξάγξαθν ηεο παξνχζαο (βιέπε §2.2 Γεδνκέλα Δηζόδνπ Δθαξκνγήο - ύλδεζε κε

Σερληθέο Πξνδηαγξαθέο).

χκθσλα θαη κε ηα φζα πξναλαθέξζεθαλ ην ελλνηνινγηθφ ζρήκα ησλ δεδνκέλσλ

ήηαλ ήδε γλσζηφ θαη κέζα απφ αλαζθφπεζε ησλ ζρεηηθψλ Πξνδηαγξαθψλ

πξνέθππηαλ ζαθψο νη εκπιεθφκελνη ηχπνη νληνηήησλ θαη ηα γλσξίζκαηα ηνπο, ηα

Αλάπηπμε Πηινηηθήο Δθαξκνγήο γηα ηε δηελέξγεηα πλδπαζηηθώλ Διέγρσλ

κεηαμύ Πεξηγξαθηθώλ θαη Υσξηθώλ Βάζεσλ Κηεκαηνινγίνπ Μάξηηνο 2012

ύληαμε: Γεσξγαθάθε ηαπξνύια 46 /144

γλσξίζκαηα θιεηδηά ησλ νληνηήησλ, νη ζπζρεηίζεηο ηνπο, νη ηχπνη ζπζρεηίζεσλ

(βαζκφο13

, ιφγνο πιεζηθφηεηαο14

, πεξηνξηζκφο ζπκκεηνρήο15

), θ.ν.θ.

Γηα λα γίλνπλ πην ζαθή ηα παξαπάλσ αθνινπζεί έλα παξάδεηγκα κε βάζε ηνλ πίλαθα

DOC_BEN_RIGHT ηεο πεξηγξαθηθήο βάζεο θηεκαηνγξάθεζεο (βιέπε Πίλαθαο 7.

DOC_BEN_RIGHT_ ηνηρεία δηθαηνύρσλ, εγγξάθσλ θαη δηθαησκάησλ).

Γηα ηνλ ελ ιφγσ πίλαθα πξνθχπηνπλ ηα εμήο:

Ο DOC_BEN_RIGHT (ηνηρεία δηθαηνύρσλ, εγγξάθσλ θαη δηθαησκάησλ) είλαη

έλαο ηχπνο ζπζρεηίζεσλ βαζκνχ 3, πνπ ζπζρεηίδεη ηνπο ηχπνπο νληνηήησλ DOC

(ηνηρεία Δγγξάθσλ), BEN (ηνηρεία Πξνζώπσλ) θαη RIGHT (ηνηρεία

Γηθαησκάησλ)

πζρεηίδεη ηνπο ηξεηο ηχπνπο νληνηήησλ κε ιφγν πιεζηθφηεηαο K:Μ:N. Γειαδή

θαη νη ηξεηο ηχπνη νληνηήησλ έρνπλ κεηαμχ ηνπο ιφγν «πνιιά πξνο πνιιά». Πην

αλαιπηηθά απηφ ζεκαίλεη φηη, έλα έγγξαθν κπνξεί λα απνηειεί ηίηιν θηήζεο

ελφο ή πεξηζζφηεξσλ δηθαησκάησλ - γηα έλα ή πεξηζζφηεξα πξφζσπα. Δπίζεο,

έλα πξφζσπν κπνξεί λα έρεη έλα ή πεξηζζφηεξα δηθαηψκαηα θαη λα ηα έρεη

απνθηήζεη κε έλα ή πεξηζζφηεξα έγγξαθα. Σέινο, έλα δηθαίσκα κπνξεί λα

αλήθεη ζε έλα ή πεξηζζφηεξα πξφζσπα (κε δηαθνξεηηθφ πνζνζηφ ζηνλ θαζέλα)

θαη λα έρεη απνθηεζεί κε έλα ή πεξηζζφηεξα έγγξαθα.

Πεξηιακβάλεη ηα γλσξίζκαηα θιεηδηά ησλ ηχπσλ νληνηήησλ πνπ ζπζρεηίδεη

(DOC_ID, BEN_ID, RIGHT_ID), αιιά παξάιιεια πεξηέρεη θαη δηθά ηνπ

γλσξίζκαηα (WAY_OWN_ID, OWN_RIGHT_NUMER, OWN_RIGHT_DENOM,

θνθ) θαζψο θαη δηθφ ηνπ γλψξηζκα-θιεηδί (DBR_ID)

θ.ν.θ.

Με αλάινγν ηξφπν έγηλε πιήξεο θαηαγξαθή ηεο πιεξνθνξίαο ηνπ ζρήκαηνο ησλ ΒΓ

Κηεκαηνγξάθεζεο, φπσο ηα νλφκαηα πηλάθσλ/πεδίσλ, ηχπν/πιάηνο πεδίσλ,

πξσηεχνληα θιεηδηά (primary keys), πηζαλή χπαξμε πεξηνξηζκψλ (constraints) θαη

επξεηεξίσλ (indexes) κε ζθνπφ λα ρξεζηκνπνηεζεί ζε επφκελα ζηάδηα σο template

γηα ηε ζρεδίαζε θαη ηε δεκηνπξγία ηεο ΒΓ ηνπ ππφ αλάπηπμε ΒΓ.

13

Σν πιήζνο ησλ ηχπσλ νληνηήησλ πνπ ζπκκεηέρνπλ ζηνλ ηχπν ζπζρέηηζεο 14

Πξνζδηνξίδεη ην πιήζνο ησλ ζηηγκηνηχπσλ (ησλ εγγξαθψλ ζε πεξίπησζε πίλαθα) ελφο ηχπνπ

ζπζρεηίζεσλ ζηα νπνία κπνξεί λα ζπκκεηέρεη θάζε νληφηεηα ησλ επηκέξνπο ηχπσλ νληνηήησλ 15

Οξίδεη αλ ε χπαξμε κηαο νληφηεηαο εμαξηάηαη απφ ηε ζπζρέηηζε ηεο κε κηα άιιε νληφηεηα κέζσ

ελφο ηχπνπ ζπζρεηίζεσλ

Αλάπηπμε Πηινηηθήο Δθαξκνγήο γηα ηε δηελέξγεηα πλδπαζηηθώλ Διέγρσλ

κεηαμύ Πεξηγξαθηθώλ θαη Υσξηθώλ Βάζεσλ Κηεκαηνινγίνπ Μάξηηνο 2012

ύληαμε: Γεσξγαθάθε ηαπξνύια 47 /144

Πίνακαρ 7. DOC_BEN_RIGHT_ ηνηρεία δηθαηνύρσλ, εγγξάθσλ θαη δηθαησκάησλ

4.2.2. Αλάιπζε θαη Αμηνιφγεζε Γεδνκέλσλ Δμφδνπ

Ζ ζπγθεθξηκέλε εξγαζία πεξηειάκβαλε ην ζρεδηαζκφ θαη ηε ιήςε απνθάζεσλ

ζρεηηθά κε ην είδνο θαη ηα ραξαθηεξηζηηθά ησλ exports ηεο εθαξκνγήο.

Δθφζνλ ην βαζηθφ αληηθείκελν ηεο εξγαζίαο ήηαλ ε δηελέξγεηα ειέγρσλ, θξίζεθε

ζθφπηκν λα πξνβιεθζεί θαη ε κνξθή αλάθηεζεο θαη απνζήθεπζεο ησλ

απνηειεζκάησλ ηνπο, σο ηειηθφ παξαγφκελν πξντφλ. Απνθαζίζηεθε ε εμαγσγή

αλαθνξψλ (reports) ζε κνξθή .xls (MsExcel) γηα φινπο ηνπο δηελεξγνχκελνπο

ειέγρνπο, ελψ κφλν γηα ηνπο ειέγρνπο πνπ ην απνηέιεζκα ηνπο ζα πεξηειάκβαλε

ρσξηθή πιεξνθνξία ην αληίζηνηρν εμαγφκελν ζα ήηαλ θαη αξρεία κνξθήο .shp (ESRI).

4.7.3. Στοιχεία δικαιοφχων, εγγράφων και δικαιωμάτων – Ρίνακασ DOC _BEN_RIGHT

Πνομα PK FK Ρεριγραφι Τφποσ/μικοσ Validation πεδίου

DBR_ID YES NO Μοναδικόσ κωδικόσ αναγνϊριςθσ NUMERIC Υποχρεωτικό πεδίο.

RIGHT_ID NO YES Κωδικόσ αναγνϊριςθσ δικαιϊματοσ NUMERIC Υποχρεωτικό πεδίο.

DOC_ID NO YES Κωδικόσ αναγνϊριςθσ εγγράφου NUMERIC(12) Υποχρεωτικό πεδίο.

BEN_ID NO YES

Κωδικόσ Αναγνϊριςθσ Ωφελουμζνου

ι Βαρυνομζνου ςυναλλαςςομζνου NUMERIC(12) Υποχρεωτικό πεδίο.

WAYOWN_ID NO YES Αιτία κτιςθσ NUMERIC(2)

Ρροαιρετικό πεδίο. Οι αιτίεσ κτιςεωσ που

απαρτίηουν τθ λίςτα, ςυμπλθρϊνονται βάςει των

τιμϊν του πίνακα αιτιϊν κτιςεωσ των

κωδικοποιιςεων

BEN_ROLE NO NO Είδοσ ςυναλλαςςομζνου NUMERIC(1) Υποχρεωτικό πεδίο

OWN_RIGHT_NUMER NO NO

Αρικμθτισ ποςοςτοφ απόκτθςθσ

δικαιϊματοσ NUMERIC(13,5)

Ρροαιρετικό πεδίο. Συμπλθρϊνεται για κυριότθτα,

μεταλλειοκτθςία νομι από αναδαςμό, προςωπικζσ

δουλείεσ και μεταφορά ςυντελεςτι δομιςθσ

OWN_RIGHT_DENOM NO NO

Ραρονομαςτισ ποςοςτοφ απόκτθςθσ

δικαιϊματοσ NUMERIC(10)

Ρροαιρετικό πεδίο. Συμπλθρϊνεται για κυριότθτα,

μεταλλειοκτθςία νομι από αναδαςμό, προςωπικζσ

δουλείεσ και μεταφορά ςυντελεςτι δομιςθσ

DOC_RIGHT_NUMER NO NO

Αρικμθτισ ποςοςτοφ κτιςθσ

δικαιϊματοσ του ςυγκεκριμζνου

δικαιϊματοσ ςτο αντίςτοιχο ζγγραφο. NUMERIC(13,5)

Ρροαιρετικό πεδίο. Συμπλθρϊνεται για κυριότθτα,

μεταλλειοκτθςία νομι από αναδαςμό, προςωπικζσ

δουλείεσ και μεταφορά ςυντελεςτι δομιςθσ

DOC_ RIGHT_DENOM NO NO

Ραρονομαςτισ ποςοςτοφ κτιςθσ

δικαιϊματοσ του ςυγκεκριμζνου

δικαιϊματοσ ςτο αντίςτοιχο ζγγραφο. NUMERIC(10)

Ρροαιρετικό πεδίο. Συμπλθρϊνεται για κυριότθτα,

μεταλλειοκτθςία νομι από αναδαςμό, προςωπικζσ

δουλείεσ και μεταφορά ςυντελεςτι δομιςθσ.

COMMENTS NO NO Ραρατθριςεισ

CHARACTER

VARYING (2000) Ρροαιρετικό πεδίο

Συςχετίηει το ςυνδυαςμό του ςυναλλαςςόμενου (ωφελοφμενου ι βαρυνόμενου) και δικαιϊματοσ με το ζγγραφο βάςει του οποίου το

τεκμθρίωςε. Συνδυάηει το δικαίωμα με ζναν ι περιςςότερουσ ςυναλλαςςόμενουσ. Το πεδίο BEN_ROLE προςδιορίηει αν ο ςυναλλαςςόμενοσ

είναι ο ωφελοφμενοσ ι ο βαρυνόμενοσ.

ΡΕΔΙΑ ΕΙΔΟΣ ΡΑΑΤΗΗΣΗ

DBR_ID

Ρρωτεφον

κλειδί πίνακα Μοναδικόσ αρικμόσ ανά εγγραφι

RIGHT_ID Ξζνο κλειδί Αναφζρεται ςτο πρωτεφον κλειδί του πίνακα RIGHT

DOC_ID Ξζνο κλειδί Αναφζρεται ςτο πρωτεφον κλειδί του πίνακα DOC

BEN_ID Ξζνο κλειδί Αναφζρεται ςτο πρωτεφον κλειδί του πίνακα BEN

WAYOWN_ID Ξζνο κλειδί Αναφζρεται ςτο πρωτεφον κλειδί του πίνακα WAYOWN_LUT

Ρίνακασ 4‑10. Ρεριοριςμοί ακεραιότθτασ πίνακα DOC_BEN_RIGHT

Αλάπηπμε Πηινηηθήο Δθαξκνγήο γηα ηε δηελέξγεηα πλδπαζηηθώλ Διέγρσλ

κεηαμύ Πεξηγξαθηθώλ θαη Υσξηθώλ Βάζεσλ Κηεκαηνινγίνπ Μάξηηνο 2012

ύληαμε: Γεσξγαθάθε ηαπξνύια 48 /144

4.3. Δπιλογή ΓΒΓ και Λογιζμικού

4.3.1. Δπηινγή ΓΒΓ

Όπσο πξναλαθέξζεθε ζηελ παξάγξαθν 4.1.2 ηεο παξνχζαο, ε πινπνίεζε ηνπ ππφ

αλάπηπμε ΒΓ16

πξναπαηηνχζε ηελ επηινγή θαηάιιεινπ ΓΒΓ17

γηα ηελ ζπλνιηθή

απνζήθεπζε, ηελ αλάιπζε θαη ηε δηαρείξηζε ησλ δεδνκέλσλ.

Ζ επηινγή ηνπ θαηάιιεινπ ΓΒΓ ήηαλ ζεκαληηθή ηφζν γηα ην ζρεδηαζκφ θαη ηελ

πινπνίεζε ησλ επφκελσλ ζηαδίσλ αλάπηπμεο φζν θαη γηα ηελ πνηφηεηα θαη

αμηνπηζηία ηνπ ηειηθνχ πξντφληνο. Με βάζε ηνπο ηχπνπο θαη ηα κνληέια ησλ

δεδνκέλσλ, φπσο εθηεηακέλα πεξηγξάθεθαλ ζε πξνεγνχκελεο παξαγξάθνπο,

επηιέρζεθε ε PostgreSQL σο ην πην δηαδεδνκέλν αλνηθηφ/ειεχζεξν αληηθεηκελν-

ζρεζηαθφ ΓΒΓ, κε καθξνρξφληα παξνπζία ζην ρψξν θαη απνδεδεηγκέλα θαιή

αξρηηεθηνληθή, αμηνπηζηία θαη νξζή ιεηηνπξγία. ε ζπλδπαζκφ κε ηελ επέθηαζε

PostGIS, γηα ηελ ππνζηήξημε ηεο απνηειεζκαηηθήο δηαρείξηζεο γεσγξαθηθψλ

δεδνκέλσλ, ην χζηεκα PostgreSQL/PostGIS απνηέιεζε ηελ ηδαληθή ιχζε γηα ηηο

αλάγθεο ηεο εξγαζίαο, εθφζνλ βαζηθή παξάκεηξνο γηα ηελ πινπνίεζή ηεο ήηαλ ε

εληαία «θηινμελεία» (ζε θνηλφ πεξηβάιινλ) θαη επεμεξγαζία ησλ πεξηγξαθηθψλ θαη

ησλ ρσξηθψλ / γεσγξαθηθψλ θηεκαηνινγηθψλ δεδνκέλσλ.

4.3.2. Τπνζηεξηθηηθφ Λνγηζκηθφ

Πέξα απφ ην θχξην ζπζηαηηθφ πινπνίεζεο ηνπ ζπζηήκαηνο, πνπ ήηαλ ην ΓΒΓ,

έπξεπε παξάιιεια, θαηά ην ζρεδηαζκφ ησλ εθαξκνγψλ πνπ ζα ππνζηήξηδε ην

ζχζηεκα, λα ιεθζνχλ απνθάζεηο σο πξνο ην ινγηζκηθφ πνπ ήηαλ απαξαίηεην γηα ηελ

πινπνίεζε ηνπο.

Γηα ηε θφξησζε / αλάθηεζε δεδνκέλσλ πξνο θαη απφ ην ΓΒΓ επηιέρζεθαλ νη

βνεζεηηθέο εθαξκνγέο PostgreSQL Interactive Terminal (psql) (ηεο PostgreSQL),

PostGIS Loader (shp2pgsql) θαη PostGIS Dumper (pgsql2shp) (ηεο PostGIS) ηφζν γηα

ρξήζε κέζα απφ πεξηβάιινλ γξακκήο εληνιψλ (Command Prompt) φζν θαη γηα ηελ

ππνζηήξημε απηνκαηνπνηεκέλσλ ιεηηνπξγηψλ ηνπ ζπζηήκαηνο.

16

χζηεκα Βάζεο Γεδνκέλσλ 17

χζηεκα Γηαρείξηζεο Βάζεο Γεδνκέλσλ

Αλάπηπμε Πηινηηθήο Δθαξκνγήο γηα ηε δηελέξγεηα πλδπαζηηθώλ Διέγρσλ

κεηαμύ Πεξηγξαθηθώλ θαη Υσξηθώλ Βάζεσλ Κηεκαηνινγίνπ Μάξηηνο 2012

ύληαμε: Γεσξγαθάθε ηαπξνύια 49 /144

Γηα ηελ αλάπηπμε ηεο δηεπαθήο θαη ησλ ιεηηνπξγηψλ ηεο εθαξκνγήο επηιέρζεθε ε

γιψζζα πξνγξακκαηηζκνχ VB.NET κε ηελ ππνζηήξημε ησλ βηβιηνζεθψλ εξγαιείσλ

DotSpatial, γηα ηελ εκθάληζε θαη απνζήθεπζε ησλ ρσξηθψλ δεδνκέλσλ / ραξηψλ.

Σέινο, γηα ηελ απαξαίηεηε επηθνηλσλία θαη αιιειεπίδξαζε ηνπ ζπζηήκαηνο κε ην

ΓΒΓ, επηιέρζεθε ν πάξνρνο Npgsql Data Provider σο ν πάξνρνο δεδνκέλσλ (data

provider) ηνπ πιαηζίνπ .Net γηα ηελ PostgreSQL.

4.4. Λογικόρ και Φςζικόρ σεδιαζμόρ

Καηά ηε ζρεδίαζε ηνπ ινγηθνχ ζρήκαηνο, απεηθνλίδεηαη ην ελλνηνινγηθφ ζρήκα ζε

έλα «ινγηθφ» ζρήκα ην νπνίν κπνξεί λα πινπνηεζεί άκεζα ζην επηιεγκέλν ΓΒΓ,

ελψ παξάιιεια απνθξχπηεη ηηο ιεπηνκέξεηεο ηεο θπζηθήο απνζήθεπζεο ησλ

δεδνκέλσλ. Απφ ηελ άιιε πιεπξά, ε ζρεδίαζε ηνπ θπζηθνχ ζρήκαηνο απνηειεί ην

ηειεπηαίν ζηάδην πινπνίεζεο ελφο ΒΓ, θαηά ην νπνίν ζρεδηάδνληαη φιεο νη δνκέο

απνζήθεπζεο ησλ δεδνκέλσλ ζηα αξρεία ηεο βάζεο θαη ηα κνλνπάηηα πξνζπέιαζεο

ζε απηά. ηφρνο ηεο ζρεδίαζεο ζην ζηάδην απηφ είλαη ε ηθαλνπνίεζε ησλ

ιεηηνπξγηθψλ απαηηήζεσλ ησλ ρξεζηψλ θαη εθαξκνγψλ, φζνλ αθνξά ηνπο

πεξηνξηζκνχο απφδνζεο πνπ ζέηνπλ.

ην πιαίζην ηεο παξνχζαο εξγαζίαο, θαη κε δεδνκέλν φηη, φπσο θαη ζηελ πεξίπησζε

ηνπ ελλνηνινγθνχ ζρήκαηνο, ην ινγηθφ ζρήκα ησλ δεδνκέλσλ εηζφδνπ ήηαλ ήδε

γλσζηφ θαη νξηζκέλν απφ ηηο Σερληθέο Πξνδηαγξαθέο Κηεκαηνγξάθεζεο, νη εξγαζίεο

ηνπ ζηαδίνπ πεξηνξίζηεθαλ ζηελ ζρεδίαζε ηνπ ζρήκαηνο ηεο ΒΓ εληφο ηνπ ΓΒΓ

πνπ ζα ππνδερφηαλ ηα δεδνκέλα. Χο πξνο ην θπζηθφ ζρεδηαζκφ, νη εξγαζίεο

πεξηνξίζηεθαλ ζηελ πινπνίεζε κνλνπαηηψλ πξνζπέιαζεο (επξεηεξίσλ) γηα ηελ

επθνιφηεξε αλαδήηεζε θαηά ηε δηαρείξηζε ησλ δεδνκέλσλ.

4.4.1. Λνγηθφ ρήκα ΒΓ PostgreSQL/PostGIS

Μηα βάζε δεδνκέλσλ ζηελ PostgreSQL κπνξεί λα πεξηέρεη έλα ή πεξηζζφηεξα

ζρήκαηα, ηα νπνία πεξηέρνπλ κε ηε ζεηξά ηνπο πίλαθεο. Σα ζρήκαηα πεξηέρνπλ επίζεο

θαη άιια είδε αληηθεηκέλσλ, φπσο ηχπνπο δεδνκέλσλ, ζπλαξηήζεηο, ηειεζηέο, θ.α. ε

αληίζεζε κε ηηο ΒΓ, ηα ζρήκαηα δελ είλαη απζηεξά δηαρσξηζκέλα / αλεμάξηεηα

κεηαμχ ηνπο: έλαο ρξήζηεο κπνξεί λα έρεη πξφζβαζε ζηα αληηθείκελα νπνηνπδήπνηε

απφ ηα ζρήκαηα πνπ πεξηέρνληαη ζηε ΒΓ κε ηελ νπνία ζπλδέεηαη.

Αλάπηπμε Πηινηηθήο Δθαξκνγήο γηα ηε δηελέξγεηα πλδπαζηηθώλ Διέγρσλ

κεηαμύ Πεξηγξαθηθώλ θαη Υσξηθώλ Βάζεσλ Κηεκαηνινγίνπ Μάξηηνο 2012

ύληαμε: Γεσξγαθάθε ηαπξνύια 50 /144

Τπάξρνπλ δηάθνξα νθέιε απφ ηε ρξήζε πνιιαπιψλ ζρεκάησλ φπσο:

Ζ δπλαηφηεηα ηαπηφρξνλεο αιιά θαη ειεγρφκελεο πξφζβαζεο πνιιψλ ρξεζηψλ

ζηελ ίδηα ΒΓ.

Ζ νξγάλσζε ησλ αληηθεηκέλσλ ηεο ΒΓ ζε ινγηθέο νκάδεο γηα επθνιφηεξε

δηαρείξηζε απηψλ.

Αληηθείκελα κε ην ίδην φλνκα κπνξνχλ λα ρξεζηκνπνηεζνχλ κέζα απφ

δηαθνξεηηθά ζρήκαηα παξέρνληαο ηε δπλαηφηεηα αιιειεπίδξαζεο κεηαμχ ηνπο.

Με ιίγα ιφγηα, ηα ζρήκαηα είλαη θάηη αλάινγν κε ηνπο θαηαιφγνπο ζε επίπεδν

ιεηηνπξγηθψλ ζπζηεκάησλ, εθηφο απφ ην φηη ηα ζρήκαηα δελ κπνξνχλ λα

«θσιηαζηνχλ».

ηελ πεξίπησζε ηεο παξνχζαο εξγαζίαο, θαηά ηε ζρεδίαζε ηνπ ινγηθνχ ζρήκαηνο ηεο

ΒΓ πνπ ζα θηινμελνχζε ηα πξνο έιεγρν ζηνηρεία, απνθαζίζηεθε ε πτνζέηεζε ηξηψλ

«ππν-ζρεκάησλ» εληφο ηεο ίδηαο βάζεο: ζρήκα «public», ζρήκα «spatial», ζρήκα

«viewtables».

Ζ επηινγή απηή έγηλε γηα δχν θπξίσο ιφγνπο:

(i) Γηα ηελ θαιχηεξε νξγάλσζε - ζε ινγηθέο ζεκαηηθέο ελφηεηεο - θαη επθνιφηεξε

δηαρείξηζε ησλ απνζεθεπκέλσλ ζηνηρείσλ

(ii) Γηαηί θαηά ηε θάζε αλάιπζεο ησλ δεδνκέλσλ εηζφδνπ δηαπηζηψζεθε φηη ππήξραλ

νληφηεηεο ζηελ πεξηγξαθηθή θαη ζηε ρσξηθή βάζε Κηεκαηνγξάθεζεο κε ην ίδην

φλνκα (πίλαθαο ηεο access «BLD» θαη shapefile «BLD»), νη νπνίεο κάιηζηα

έπξεπε λα εμεηαζηνχλ ζπγθξηηηθά κεηαμχ ηνπο. εκεηώλεηαη όηη, γηα ηελ απνθπγή

ηεο ζύγρπζεο, αξρηθά εμεηάζηεθε ην ελδερόκελν κεηνλνκαζίαο ηεο κηαο από ηηο δύν

νληόηεηεο, επηινγή πνπ ζα νδεγνύζε όκσο ζε αιινίσζε ηεο θύζεο ησλ αξρηθώλ

δεδνκέλσλ θαη απνξξίθζεθε, εθόζνλ ε θηινμελία ησλ δεδνκέλσλ ζε δύν

δηαθνξεηηθά ζρήκαηα έδηλε κηα πην απνηειεζκαηηθή θαη ιεηηνπξγηθή ιύζε.

Δπηπιένλ, ε ρξήζε πνιιαπιψλ ζρεκάησλ δελ ήηαλ πεξηνξηζηηθή σο πξνο ηελ

αμηνπνίεζε ησλ ππνζηεξηθηηθψλ ιεηηνπξγηψλ ηεο PostGIS (πίλαθεο κεηαδεδνκέλσλ,

ηειεζηέο, ζπλαξηήζεηο, ηχπνη, θιπ), πνπ εγθαζίζηαληαη ζην ζρήκα public θαηά ηελ

δεκηνπξγία «ρσξηθά ελεξγνπνηεκέλεο» ΒΓ, εθφζνλ ηα αληηθείκελα ηνπ θάζε

ζρήκαηνο είλαη πξνζβάζηκα απφ ηα αληηθείκελα φισλ ησλ ζρεκάησλ ηεο ίδηαο ΒΓ.

Αλάπηπμε Πηινηηθήο Δθαξκνγήο γηα ηε δηελέξγεηα πλδπαζηηθώλ Διέγρσλ

κεηαμύ Πεξηγξαθηθώλ θαη Υσξηθώλ Βάζεσλ Κηεκαηνινγίνπ Μάξηηνο 2012

ύληαμε: Γεσξγαθάθε ηαπξνύια 51 /144

Παξαθάησ πεξηγξάθνληαη ηα δεδνκέλα πνπ πξνβιέθζεθε λα απνζεθεπηνχλ ζε θάζε

έλα απφ ηα 3 παξαπάλσ ζρήκαηα:

1. Σσήμα «public»: Απνηειεί ην default ζρήκα ηεο PostgreSQL πνπ δεκηνπξγείηαη

πάληα θαηά ηε δεκηνπξγία κηαο βάζεο. ην ζρήκα απηφ απνθαζίζηεθε λα

απνζεθεπηεί ε πιεξνθνξία ηεο πεξηγξαθηθήο βάζεο Κηεκαηνγξάθεζεο (πξνέξρεηαη

απφ .mdb αξρεία). Σν ινγηθφ ζρήκα ησλ δεδνκέλσλ νξίζηεθε ζχκθσλα κε απηφ ησλ

δεδνκέλσλ Κηεκαηνγξάθεζεο, ηα νπνία - φπσο έρεη πξναλαθεξζεί - είλαη

νξγαλσκέλα κε βάζε ην ζρεζηαθφ κνληέιν. Ζ πιεξνθνξία πνπ παξείρε ην «γλσζηφ»

ζρήκα αθνξνχζε ζε νλφκαηα πηλάθσλ θαη πεδίσλ, ηχπνπο θαη κήθε πεδίσλ,

ππνρξεσηηθά πεδία, πξσηεχνληα θαη μέλα θιεηδηά, πεξηνξηζκνχο αθεξαηφηεηαο θαη

κνλαδηθφηεηαο ηηκψλ, validation rules, θ.α.

Καηά ηελ «αληηγξαθή» ηνπ γλσζηνχ ζρήκαηνο ρξεηάζηεθε λα δνζεί ηδηαίηεξε

πξνζνρή ζηε δηαθνξεηηθή πεξηγξαθή ησλ ηχπσλ δεδνκέλσλ κεηαμχ ησλ δχν ΒΓ,

πξνέιεπζεο θαη πξννξηζκνχ (MSAccess θαη PostgreSQL), γηα ηνλ νξζφ νξηζκφ ησλ

ηχπσλ πεδίσλ (βιέπε Πίνακαρ 8. Πίλαθαο ζπκβαηόηεηαο Data Types (Access to

PostgreSQL)), θαζψο θαη ζηα validation rules ηεο Access ηα νπνία κεηαθξάδνληαη ζε

constraints ζηελ PostgreSQL.

Πίνακαρ 8. Πίλαθαο ζπκβαηόηεηαο Data Types (Access to PostgreSQL)

Σέινο αλαθέξεηαη φηη, ε πιεξνθνξία ζρεηηθά κε ηα μέλα θιεηδηά αγλνήζεθε ιφγσ ηνπ

φηη αθνξνχζαλ κφλν ζε εζσηεξηθέο ζρέζεηο ησλ νληνηήησλ ηεο πεξηγξαθηθήο βάζεο

θαη επνκέλσο δελ απνηεινχζαλ αληηθείκελν ησλ ππφ αλάπηπμε ειέγρσλ.

Δθηφο απφ ηα πεξηγξαθηθά δεδνκέλα Κηεκαηνγξάθεζεο, ην ζρήκα public,

πξνβιέθζεθε λα πεξηιακβάλεη θαη ηα εξσηήκαηα ησλ ειέγρσλ ζε views, ηα νπνία ζα

Αλάπηπμε Πηινηηθήο Δθαξκνγήο γηα ηε δηελέξγεηα πλδπαζηηθώλ Διέγρσλ

κεηαμύ Πεξηγξαθηθώλ θαη Υσξηθώλ Βάζεσλ Κηεκαηνινγίνπ Μάξηηνο 2012

ύληαμε: Γεσξγαθάθε ηαπξνύια 52 /144

"θαινχληαη" απφ ηελ εθαξκνγή γηα ηελ πξνβνιή ησλ απνηειεζκάησλ ζε πίλαθα θαη

ηελ εμαγσγή ησλ αληίζηνηρσλ αλαθνξψλ ζε excel.

2. Σσήμα «spatial»: ην δεχηεξν ζρήκα ζρεδηάζηεθε λα «θηινμελεζνχλ» ηα ρσξηθά

δεδνκέλα (πξνέξρνληαη απφ .shp αξρεία) ελψ ε αλάγθε απνζήθεπζήο ηνπο ζε

μερσξηζηφ ζρήκα πξνέθπςε αθελφο γηα ιφγνπο «ηάμεο» θαη αθεηέξνπ ιφγσ χπαξμεο

πίλαθα ηεο access θαη shapefile κε ην ίδην φλνκα (BLD), φπσο αλαθέξζεθε λσξίηεξα.

3. Σσήμα «viewtables»: Σν ηξίην θαη ηειεπηαίν ζρήκα ζρεδηάζηεθε κε ζθνπφ λα

πεξηιακβάλεη ηα ίδηα εξσηήκαηα (κέξνο απηψλ) κε ηα views ηνπ ζρήκαηνο "public"

(θαη κε ηα ίδηα νλφκαηα) αιιά ζε κνξθή πηλάθσλ, ψζηε λα εκπεξηέρνπλ θαη ζηήιε

γεσκεηξίαο θαη λα "θαινχληαη" απφ ηελ εθαξκνγή γηα ηελ νπηηθνπνίεζε (ζε κνξθή

ράξηε) ησλ απνηειεζκάησλ ησλ ειέγρσλ θαη ηελ απνζήθεπζή ηνπο ζε shapefiles.

Ζ δηάθξηζε κεηαμχ views (ζρήκα public) θαη tables (ζρήκα viewtables) γηα ηα

εξσηήκαηα/ειέγρνπο πνπ ζα εθηεινχληαη απφ ηελ εθαξκνγή έγηλε γηα 3 ιφγνπο:

1νο ιόγνο - απάληεζε ζην: "Γηαηί όρη όινη νη έιεγρνη ζε views": Όπσο αλαθέξζεθε θαη

ζηελ παξάγξαθν 3.1.4 (ζειίδα 28) φηαλ κηα ΒΓ είλαη ρσξηθά ελεξγνπνηεκέλε (έρεη

δεκηνπξγεζεί κε βάζε ην template_postgis) παξέρεη ηε δπλαηφηεηα δεκηνπξγίαο

ρσξηθά ελεξγνπνηεκέλσλ πηλάθσλ αληίζηνηρα, κέζα απφ SQL εληνιέο θαη ρξήζε ηε

ζπλάξηεζεο AddGeometryColumn18

. Ζ ζπγθεθξηκέλε SQL εληνιή φκσο δε κπνξεί λα

εθαξκνζηεί ζε Views, γηα ηα νπνία απαηηείηαη δεχηεξε ελέξγεηα (ε νπνία πξέπεη λα

έπεηαη ηεο δεκηνπξγίαο ηνπο) γηα ηελ θαηαρψξηζε εγγξαθήο ζηνλ πίλαθα

κεηαδεδνκέλσλ AddGeometryColumn ηεο PostGIS, κε ρξήζε λέαο εληνιήο SQL:

"INSERT INTO geometry_columns VALUES ('', 'schema', 'name_of_my_view',

'name_of_geometry_column', 'dimensions', 'srid', 'geometry');". Δπνκέλσο, ε απνζήθεπζε

ησλ απνηειεζκάησλ ειέγρσλ θαη ζε πίλαθεο επηιέρζεθε σο «νηθνλνκηθφηεξε» ιχζε.

2νο ιόγνο - απάληεζε ζην: "Γηαηί όρη όινη νη έιεγρνη ζε tables" : Ζ «πεξηγξαθηθή»

πιεξνθνξία πνπ θξίζεθε απαξαίηεην λα πεξηιακβάλεηαη ζηα απνηειέζκαηα ησλ

ειέγρσλ (ε πιεξνθνξία πνπ ζα πεξηιακβαλφηαλ ζηνπο πίλαθεο απνηειεζκάησλ)

νδεγνχζε ζε δεκηνπξγία «ρσξηθψλ» πηλάθσλ πνπ δε ζα πιεξνχζαλ ηε ζπλζήθε ηεο

κνλαδηθφηεηαο εγγξαθψλ σο πξνο ηε γεσγξαθηθή νληφηεηα ζηελ νπνία ζα

18

Τπελζπκίδεηαη φηη κε ηε ζπλάξηεζε AddGeometryColumn δεκηνπξγείηαη εγγξαθή ζηνλ πίλαθα

κεηαδεδνκέλσλ geometry_columns κε ηε γεσκεηξηθή/γεσγξαθηθή πιεξνθνξία ηνπ λένπ πίλαθα

Αλάπηπμε Πηινηηθήο Δθαξκνγήο γηα ηε δηελέξγεηα πλδπαζηηθώλ Διέγρσλ

κεηαμύ Πεξηγξαθηθώλ θαη Υσξηθώλ Βάζεσλ Κηεκαηνινγίνπ Μάξηηνο 2012

ύληαμε: Γεσξγαθάθε ηαπξνύια 53 /144

εληνπηδφηαλ ην ζθάικα (γηα παξάδεηγκα, έλα ΚΑΔΚ πνπ πεξηιακβάλεηαη ζην

shapefile ησλ πξαγκαηηθψλ δνπιεηψλ αιιά δε ζρεηίδεηαη κε δηθαίσκα πξαγκαηηθήο

δνπιείαο ζηελ πεξηγξαθηθή βάζε, ζα εκθαλίδεηαη ζηνλ πίλαθα ηφζεο θνξέο φζεο θαη

ηα δηαθνξεηηθά δηθαηψκαηα πνπ ζρεηίδνληαη κε απηφ, θάηη πνπ θαηά ηελ

νπηηθνπνίεζε ησλ απνηειεζκάησλ ηνπ ειέγρνπ ζε ράξηε, ζα νδεγνχζε ζηελ

επαλάιεςε ηνπ ίδηνπ πνιπγψλνπ δνπιείαο πνιιέο θνξέο). Θεσξήζεθε ινηπφλ

πξνηηκφηεξν, ην ίδην εξψηεκα/έιεγρνο λα πινπνηεζεί δηαθνξεηηθά γηα ηελ εκθάληζε

ησλ απνηειεζκάησλ ζε πίλαθα - ψζηε λα δηαηεξείηαη φιε ε απαηηνχκελε πεξηγξαθηθή

πιεξνθνξία - θαη δηαθνξεηηθά γηα ηελ εκθάληζε ησλ απνηειεζκάησλ ζε ράξηε -

αληηζηξφθσο αλάινγα, γηα ηελ απνθπγή πεξηηηήο πιεξνθνξίαο - θαη δηαηεξψληαο

κφλν ηε ζηήιε ΚΑΔΚ (distinct) ζηνλ πίλαθα πεξηγξαθηθψλ ζηνηρείσλ ηνπ

παξαγφκελνπ shapefile.

3νο ιόγνο: Μεηαμχ ησλ πξνο πινπνίεζε εξσηεκάησλ ειέγρσλ, ππήξραλ θάπνηα πνπ

δε ζπλδένληαλ κε ρσξηθέο νληφηεηεο (γηα παξάδεηγκα: ΚΑΔΚ πνπ ππάξρνπλ κφλν

ζηελ πεξηγξαθηθή βάζε θαη φρη ζηε ρσξηθή), γηα ηα νπνία ζεσξήζεθε άζθνπε

ελέξγεηα θαη κε νξζή ηαθηηθή ε δεκηνπξγία πίλαθα (θαηάιεςε ρψξνπ κλήκεο).

4.4.2. Μνλνπάηηα Αλαδήηεζεο (Δπξεηήξηα)

Ζ δεκηνπξγία επξεηεξίσλ είλαη έλαο θνηλφο ηξφπνο γηα λα εληζρπζεί ε απφδνζε ησλ

βάζεσλ δεδνκέλσλ. Έλα επξεηήξην επηηξέπεη ζην δηαρεηξηζηή βάζεσλ δεδνκέλσλ λα

βξεη θαη λα αλαθηήζεη ζπγθεθξηκέλεο εγγξαθέο ηαρχηεξα απφ φηη ρσξίο ηελ χπαξμε

επξεηεξίνπ. Απφ ηελ άιιε πιεπξά, ηα επξεηήξηα ελδέρεηαη λα πξνθαιέζνπλ επηπιένλ

θφξην ζην ζχζηεκα δηαρείξηζεο βάζεσλ δεδνκέλσλ ζπλνιηθά, θαη γη’απηφ ην ιφγν

ζπλίζηαηαη λα απνθεχγεηαη ε ππεξβνιή ζηε ρξήζε ηνπο.

Γηα ηηο αλάγθεο ηεο εξγαζίαο ε ρξήζε ησλ επξεηεξίσλ ήηαλ πεξηνξηζκέλε. Απφ ην

ζρεδηαζκφ θαη θαηά ηελ πινπνίεζε ηνπ ζπζηήκαηνο, ζπκπεξηιήθζεθαλ κφλν ηα

επξεηήξηα πνπ πξνέθππηαλ απφ ην template ηεο βάζεο πεξηγξαθηθψλ δεδνκέλσλ

(Access), ζε δχν κφλν πίλαθεο (PROP θαη PROP_PARENT), θαζψο θαη ε δεκηνπξγία

επξεηεξίσλ δνκήο GiST γηα ηνπο πίλαθεο ηεο βάζεο ρσξηθψλ δεδνκέλσλ (ζρήκα:

spatial) θαη ηνπο ρσξηθνχο πίλαθεο απνηειεζκάησλ ειέγρσλ (ζρήκα: viewtables).

Αλάπηπμε Πηινηηθήο Δθαξκνγήο γηα ηε δηελέξγεηα πλδπαζηηθώλ Διέγρσλ

κεηαμύ Πεξηγξαθηθώλ θαη Υσξηθώλ Βάζεσλ Κηεκαηνινγίνπ Μάξηηνο 2012

ύληαμε: Γεσξγαθάθε ηαπξνύια 54 /144

4.4.3. Απνηέιεζκα Δξγαζηψλ ηαδίνπ

Όιεο νη εξγαζίεο πνπ πεξηγξάθεθαλ ζηελ παξνχζα παξάγξαθν, είραλ σο απνηέιεζκα

(ηειηθφ πξντφλ) ηε δεκηνπξγία κηαο ζεηξάο SQL εληνιψλ γηα ηελ πινπνίεζε ηνπ

απνξξένληνο ζρήκαηνο ζην ΓΒΓ ηεο εθαξκνγήο ειέγρσλ.

Οη εληνιέο απηέο επηκεξίδνληαη ζε εληνιέο δεκηνπξγίαο (create):

Βάζεο Γεδνκέλσλ,

ρεκάησλ public / spatial / viewtables,

Πηλάθσλ Πεξηγξαθηθήο Βάζεο ηνπ ζρήκαηνο public

Σν ζχλνιν ησλ εληνιψλ απνζεθεχηεθε ζε αξρείν .txt (CreateDB+Schemas.txt), ην

πεξηερφκελν ηνπ νπνίνπ παξαηίζεηαη ζην Παξάξηεκα ΗΗ ηεο παξνχζαο, ψζηε λα

ρξεζηκνπνηεζνχλ ζηε ζπλέρεηα θαηά ην ζηάδην πινπνίεζεο ηεο ΒΓ ζηελ PostgrSQL.

4.5. σεδιαζμόρ λειηοςπγιών ελέγσος και δοζολητιών

4.5.1. ρεδηαζκφο ιεηηνπξγηψλ ειέγρνπ

Ο ζρεδηαζκφο ησλ ιεηηνπξγηψλ ειέγρνπ πξαγκαηνπνηήζεθε ζε δχν θάζεηο εξγαζηψλ:

Ζ πξψηε θάζε πεξηειάκβαλε ηε - ζε βάζνο - κειέηε ησλ Σερληθψλ Πξνδηαγξαθψλ

Κηεκαηνγξάθεζεο βάζεη ησλ νπνίσλ επξφθεηην λα αλαπηπρζνχλ νη έιεγρνη. Ζ

εξγαζία απηή θξίζεθε απαξαίηεηε ψζηε λα εμαρζεί φιε ε ζρεηηθή πιεξνθνξία σο

πξνο ηνλ ηξφπν ζχλδεζεο θαη ζπζρέηηζεο ησλ ρσξηθψλ θαη ησλ πεξηγξαθηθψλ

θηεκαηνινγηθψλ ζηνηρείσλ.

χκθσλα ινηπφλ κε ηα παξαπάλσ, εμεηάζηεθαλ αλαιπηηθά νη εκπιεθφκελεο

νληφηεηεο - κηα πξνο κηα, έγηλε πιήξεο θαηαγξαθή ησλ ζπζρεηίζεσλ θαη ησλ

απαηηήζεσλ πνηφηεηαο ζε επίπεδν πεδίνπ (γλσξίζκαηνο) γηα θάζε κηα απφ απηέο, ελψ

εμαηξέζεθαλ φζεο απφ απηέο αθνξνχζαλ είηε κφλν ζε πεξηγξαθηθά ζηνηρεία είηε κφλν

ζε ρσξηθά θαη επνκέλσο δελ απνηεινχζαλ αληηθείκελν ηνπ ππφ αλάπηπμεο

ζπζηήκαηνο.

Καηά ηε δεχηεξε θάζε θαη σο θπζηθή ζπλέρεηα ηεο πξψηεο, πξαγκαηνπνηήζεθε πην

εηδηθφο ζρεδηαζκφο ησλ ειέγρσλ, ζπλνδεπφκελνο θαη απφ θαηαγξαθή ησλ

πεξηερνκέλσλ απηψλ. Πην ζπγθεθξηκέλα, ειήθζεζαλ νη απνθάζεηο ζρεηηθά κε ην «ηί

ζα ειέγρεηαη θαη πψο», ελψ παξάιιεια έγηλε κηα πξψηε δηαηχπσζε ηεο πεξηγξαθήο /

Αλάπηπμε Πηινηηθήο Δθαξκνγήο γηα ηε δηελέξγεηα πλδπαζηηθώλ Διέγρσλ

κεηαμύ Πεξηγξαθηθώλ θαη Υσξηθώλ Βάζεσλ Κηεκαηνινγίνπ Μάξηηνο 2012

ύληαμε: Γεσξγαθάθε ηαπξνύια 55 /144

πεξηερνκέλσλ ησλ ειέγρσλ θαζψο θαη ε αληηζηνίρηζή ηνπο κε θσδηθνχο γηα ηελ

επθνιφηεξε δηαρείξηζή ηνπο. Ζ θσδηθνπνίεζε έγηλε κε ηέηνην ηξφπν ψζηε λα

παξαπέκπεη έκκεζα ζηνπο εκπιεθφκελνπο πίλαθεο θαη πεδία.

Οη έιεγρνη πνπ πξνέθπςαλ ζηε θάζε απηή θαη πινπνηήζεθαλ ζηε ζπλέρεηα,

εκθαλίδνληαη ζηνλ πίλαθα πνπ αθνινπζεί (επηζεκαίλεηαη φηη ηα πεξηερφκελα ηνπ

πεδίνπ «πίλαθαο» αλαθέξνληαη ζηνλ πίλαθα απφ ηνλ νπνίν «μεθηλάεη ν έιεγρνο»).

Πίνακαρ 9. Κσδηθνί θαη Πεξηγξαθέο Διέγρσλ πξνο πινπνίεζε

θωδηθός πίλαθας περηγραθή ειέγτοσ

1_PROP.KAEK_NOTIN_PST PROP ΚΑΕΚ πνπ ππάξρνπλ ζηνλ πίλαθα PROP θαη δελ ππάξρνπλ ζηνλ PST

2_PST.KAEK_NOTIN_PROP PST Πνιύγωλα ηνπ PST κε ΚΑΕΚ πνπ δελ ππάξρνπλ ζηνλ πίλαθα PROP

3_DIFF_PROP_TYPE PSTΠνιύγωλα ηνπ PST κε PROP_TYPE αζύκβαην κε ην αληίζηνηρν PROP_TYPE_CODE

ηνπ πίλαθα PROP (ίδην ΚΑΕΚ - δηαθνξεηηθό είδνο ηδηνθηεζηαθνύ αληηθεηκέλνπ)

4_DIFF_ADDRESS PSTΕγγξαθέο ηνπ PST κε ηηκή ζην πεδίν ADDRESS δηαθνξεηηθή από ηελ αληίζηνηρε ηηκή

ζην πεδίν STREET ηνπ πίλαθα ADRS (αληηζηνίρηζε κε βάζε ην ΚΑΕΚ)

5_DIFF_AREA_MEAS PSTΕγγξαθέο κε ηηκή ζην πεδίν AREA ηνπ PST δηαθνξεηηθή από ηελ αληίζηνηρε ηηκή ζην

πεδίν AREA_MEAS ηνπ πίλαθα PROP (αληηζηνίρηζε κε βάζε ην ΚΑΕΚ)

6_OEK_KAEK PST Πνιύγωλα πνπ αληηζηνηρνύλ ζε ηδηνθηεζίεο ΟΕΚ (γηα έιεγρν ρωξηθήο αληηκεηώπηζεο)

7_SYNDESI_KAEK_DOC_TYPE-

ORI_TYPEPST

Λίζηα ζύλδεζεο ORI_TYPE κε DOC_TYPE, RIGHT_TYPE, WAYOWN_ID πεξηγξαθηθήο

βάζεο

8_VST.KAEK_NOTIN_PROP VST Πνιύγωλα ηνπ VST κε εθηεηακέλν ΚΑΕΚ πνπ δελ ππάξρεη ζηνλ πίλαθα PROP

9_VST.KAEK_NOT_VERT VSTΠνιύγωλα ηνπ VST κε εθηεηακέλν ΚΑΕΚ πνπ ππάξρεη ζηνλ PROP αιιά πνπ δε

ζπλδέεηαη κε θάζεηε ηδηνθηεζία (PRO P.PRO P_TYPE_C O DE <> 02% A ND <> 04%)

10_EAS.KAEK_NOTIN_PROP EAS (δώλεο δνπιείαο) Πνιύγωλα ηνπ EAS κε ΚΑΕΚ πνπ δελ ππάξρνπλ ζηνλ πίλαθα PROP

11_EAS.KAEK_NOT_DOUL EAS (δώλεο δνπιείαο)Πνιύγωλα ηνπ EAS κε ΚΑΕΚ πνπ ππάξρνπλ ζηνλ PROP αιιά πνπ δε ζπλδένληαη κε

δηθαίωκα πξαγκαηηθήο δνπιείαο (RIGHT.RIGHT_C A T_ID <> 02)

12_VSTEAS.KAEK_NOTIN_PROP VSTEAS_REL (πίλαθαο access)Εγγξαθέο ηνπ πίλαθα VSTEAS_REL κε ηηκή ζην πεδίν PROP_ID πνπ δελ ππάξρεη ζηνλ

πίλαθα PROP

13_VSTEAS.KAEK_NOTIN_VSTEAS VSTEAS_REL (πίλαθαο access)Εγγξαθέο ηνπ πίλαθα VSTEAS_REL κε ηηκή ζην πεδίν POLY_ID πνπ δελ αληηζηνηρεί ζε

πνιύγωλν ηνπ EAS ή ζε πνιύγωλν ηνπ VST

14_VSTEAS.KAEK_NOT_VERT.DOUL VSTEAS_REL (πίλαθαο access)Εγγξαθέο κε ηηκή ζην πεδίν PROP_ID πνπ ππάξρεη ζηνλ πίλαθα PROP αιιά δελ

αληηζηνηρεί ζε θάζεηε ηδηνθηεζία θαη ηαπηόρξνλα δε ζρεηίδεηαη κε δηθαηώκα

πξαγκαηηθήο δνπιείαο

15_SPATIAL.BLD_NOTIN_BLD BLD (spatial) Εγγξαθέο ηνπ BLD (shp) κε ηηκή ζην πεδίν BLD_ID πνπ δελ ππάξρεη ζηνλ πίλαθα BLD

16_BLD_NOTIN_SPATIAL.BLD BLD Εγγξαθέο ηνπ πίλαθα BLD κε ηηκή ζην πεδίν BLD_ID πνπ δελ ππάξρεη ζηνλ BLD (shp)

17_DIFF_BLD_TYPE BLD (spatial)Εγγξαθέο ηνπ BLD (shp) κε ηηκή ζην πεδίν BLD_T_C δηαθνξεηηθή από ηελ αληίζηνηρε

ηηκή ηνπ πεδίνπ BLD_TYPE_CODE ηνπ πίλαθα BLD (ίδην BLD_ID)

18_DIFF_BLD_NUM BLD (spatial)Εγγξαθέο ηνπ BLD (shp) κε ηηκή ζην πεδίν BLD_NUM δηαθνξεηηθή από ηελ αληίζηνηρε

ηηκή ηνπ πεδίνπ BLD_NUM ηνπ πίλαθα BLD

19_PST.KAEK_ENTOS_SXEDIOU CBOUND, PSTΠνιύγωλα (ΚΑΕΚ) ηνπ PST πνπ βξίζθνληαη εληόο πνιπγώλωλ ζρεδίνπ πόιεωο

(CBOUND) θαη έρνπλ ηηκή ζην πεδίν ENTOS_SXEDIOU ηνπ πίλαθα PROP = 0 ή = 2

20_PST.KAEK_ENTOS_SXEDIOU CBOUND, PSTΠνιύγωλα (ΚΑΕΚ) ηνπ PST πνπ βξίζθνληαη εληόο πνιπγώλωλ ζρεδίνπ πόιεωο

(CBOUND) θαη έρνπλδηεύζπλζε (STREETNAME): «ΑΝΩΝΤΜΟ»

21_PST.KAEK_EKTOS_SXEDIOU CBOUNDΠνιύγωλα (ΚΑΕΚ) ηνπ PST πνπ βξίζθνληαη εθηόο πνιπγώλωλ ζρεδίνπ πόιεωο

(CBOUND) θαη έρνπλ ηηκή ζην πεδίν ENTOS_SXEDIOU ηνπ πίλαθα PROP = 1

22_PST.KAEK_NOBLD PST

Πνιύγωλα ηνπ PST πνπ αληηζηνηρίδνληαη κε ρξήζε ΚΑΣΟΙΚΙΑ, ΕΜΠΟΡΙΟ,θιπ

(land_use_code=3100, 32%,4000, 7200) ζηνλ πίλαθα PROP, ρωξίο λα

πεξηιακβάλνπλ θηίζκα (spatial.BLD)

Αλάπηπμε Πηινηηθήο Δθαξκνγήο γηα ηε δηελέξγεηα πλδπαζηηθώλ Διέγρσλ

κεηαμύ Πεξηγξαθηθώλ θαη Υσξηθώλ Βάζεσλ Κηεκαηνινγίνπ Μάξηηνο 2012

ύληαμε: Γεσξγαθάθε ηαπξνύια 56 /144

4.5.2. ρεδηαζκφο δνζνιεςηψλ

ε απηφ ην ζηάδην πξνζδηνξίζηεθαλ πην αλαιπηηθά νη ιεηηνπξγίεο πνπ πξνβιεπφηαλ

λα παξέρεη ε εθαξκνγή ζηνπο ρξήζηεο σο πξνο ηηο δνζνιεςίεο κε ην ΓΒΓ πνπ ζα

θηινμελνχζε ηα πξνο έιεγρν δεδνκέλα.

Με βάζε ην ζρεδηαζκφ θαη ην ζθνπφ πνπ εμππεξεηεί, ε εθαξκνγή ζα έπξεπε λα δίλεη

ζην ρξήζηε ηε δπλαηφηεηα απνζηνιήο αηηεκάησλ θαη επηζηξνθήο «απαληήζεσλ» γηα

ηηο παξαθάησ εληνιέο:

→ Έιεγρνο επηηπρνχο ζχλδεζεο κε ην ΓΒΓ PostgreSQL/PostGIS

→ Δπηινγή θαη ζχλδεζε κε ζπγθεθξηκέλε ΒΓ κέζα ζηε PostgreSQL/PostGIS (κε

ηα απνζεθεπκέλα ζηνηρεία πξνο έιεγρν)

→ Δπηινγή θαη εθηέιεζε ειέγρνπ

→ Δκθάληζε απνηειεζκάησλ ειέγρνπ ζε πίλαθα ή ζε ράξηε

→ Δθηέιεζε φισλ ησλ ειέγρσλ ηαπηφρξνλα

→ Δκθάληζε πιήζνπο απνηειεζκάησλ γηα θάζε έιεγρν

4.6. σεδιαζμόρ ηηρ Γιεπαθήρ Υπήζηη (GUI)

Καηά ην ζρεδηαζκφ ηεο Γηεπαθήο ηνπ Υξήζηε ιήθζεθαλ ππφςε αθελφο νη

ιεηηνπξγίεο δνζνιεςηψλ κε ην ΓΒΓ πνπ απαξηζκήζεθαλ παξαπάλσ θαη αθεηέξνπ ν

ηξφπνο πνπ απηέο ζα παξνπζηάδνληαη θαη ζα δηαηίζεληαη πξνο ρξήζε θαζψο θαη

θάπνηεο άιιεο βαζηθέο ιεηηνπξγίεο πνπ νθείιεη λα πεξηιακβάλεη θάζε εθαξκνγή.

Μεηαμχ ησλ απνθάζεσλ πνπ ειήθζεζαλ ζην πιαίζην ηνπ ζηαδίνπ απηνχ, θξίζεθε

ζθφπηκν ε δηεπαθή λα απαξηίδεηαη απφ ηξεηο μερσξηζηέο «θφξκεο» (παξάζπξα):

4.6.1. Φφξκα ηνηρείσλ χλδεζεο κε Γηαθνκηζηή

Ζ θφξκα απηή πξνβιέθζεθε ψζηε λα παξέρεη ηα πεδία ζηα νπνία, θαηά ηελ έλαξμε

ηεο εθαξκνγήο, ν εθάζηνηε ρξήζηεο ζα ζπκπιήξσλε ηηο παξακέηξνπο ζχλδεζεο κε

ηελ PostgreSQL. Σα ζηνηρεία απηά είλαη ν Γηαθνκηζηήο (Server), ε Θύξα (Port), ν

Υξήζηεο (UserId) θαη ν Κσδηθόο Πξόζβαζεο (Password). Δπίζεο ε θφξκα απηή ζα

ζπκπεξηιάκβαλε ηξεηο επηινγέο (θνπκπηά) γηα ελέξγεηεο απφ ην ρξήζηε: Έιεγρνο

ύλδεζεο, Απνδνρή θαη Αθύξσζε.

Αλάπηπμε Πηινηηθήο Δθαξκνγήο γηα ηε δηελέξγεηα πλδπαζηηθώλ Διέγρσλ

κεηαμύ Πεξηγξαθηθώλ θαη Υσξηθώλ Βάζεσλ Κηεκαηνινγίνπ Μάξηηνο 2012

ύληαμε: Γεσξγαθάθε ηαπξνύια 57 /144

4.6.2. Φφξκα Δπηινγήο Βάζεο Γεδνκέλσλ

Ζ θφξκα γηα ηελ επηινγή ΒΓ πξνο ζχλδεζε ζρεδηάζζεθε κε ην ζθεπηηθφ φηη ζα

κπνξνχζαλ λα ππάξρνπλ πεξηζζφηεξεο απφ κηα βάζεηο δεδνκέλσλ Κηεκαηνγξάθεζεο,

απνζεθεπκέλεο ζην δηαρεηξηζηή PostgreSQL. Γηα παξάδεηγκα ζα κπνξνχζαλ λα έρνπλ

απνζεθεπηεί ηα δεδνκέλα γηα φινπο ηνπο ΟΣΑ κηαο κειέηεο (φπσο αλαθέξζεθε ζηα

εηζαγσγηθά θεθάιαηα ηεο εξγαζίαο, νη Φεθηαθέο Κηεκαηνινγηθέο Βάζεηο Γεδνκέλσλ

νξγαλψλνληαη θαη παξαδίδνληαη αλά ΟΣΑ) θαη ν ρξήζηεο λα επηζπκεί λα «ηξέμεη»

ηνπο ειέγρνπο γηα θάπνηα απφ απηέο ή θαη γηα φιεο δηαδνρηθά. Μέζα απφ ηελ ελ ιφγσ

θφξκα ινηπφλ, θαη πην ζπγθεθξηκέλα κέζα απφ έλα drop down list, πξνβιέθζεθε λα

δίλεηαη ε δπλαηφηεηα επηινγήο ΒΓ πξνο ζχλδεζε, κεηαμχ ησλ απνζεθεπκέλσλ

βάζεσλ ζηελ PostgreSQL.

4.6.3. Φφξκα Βαζηθψλ Λεηηνπξγηψλ Δθαξκνγήο (Main)

Ζ θφξκα απηή ζα απνηεινχζε ηελ θχξηα θφξκα ηνπ ζπζηήκαηνο, κέζα απφ ηελ νπνία

ζα εθηεινχληαλ φιεο νη ιεηηνπξγίεο ηεο εθαξκνγήο πνπ ιακβάλνπλ ρψξα κεηά ηελ

πξαγκαηνπνίεζε ηεο επηηπρνχο ζχλδεζεο κε ηε ΒΓ. Γηα ηελ εμππεξέηεζε ησλ

αλαγθψλ απηψλ, απνθαζίζηεθε λα δηαηξεζεί ζε ηξηα επηκέξνπο ηκήκαηα (panels) εθ

ησλ νπνίσλ:

ην πξψην ζα πεξηειάκβαλε πίλαθα (data grid view) κε ζηήιεο: θσδηθόο,

πεξηγξαθή θαη, απνηειέζκαηα ειέγρνπ, γηα ηελ εκθάληζε ζπλνιηθήο ιίζηαο ησλ

εθηεινχκελσλ ειέγρσλ θαη ηνπ πιήζνπο ησλ απνηειεζκάησλ ηνπο

ην δεχηεξν ζα πεξηειάκβαλε έλα δεχηεξν πίλαθα (data grid view) γηα ηελ

θηινμελία ησλ «απνηειεζκάησλ ζε πίλαθα» ηνπ εθάζηνηε ειέγρνπ πνπ ζα

επέιεγε ν ρξήζηεο λα εκθαλίζεη.

ην ηξίην ζα πεξηειάκβαλε ράξηε (map) γηα ηελ πξνβνιή ησλ «απνηειεζκάησλ ζε

ράξηε» ηνπ εθάζηνηε ειέγρνπ πνπ ζα επέιεγε ν ρξήζηεο λα εκθαλίζεη.

Δπηπξφζζεηα, έπξεπε λα ζρεδηαζηνχλ θαη ηα εξγαιεία (controls) γηα ηε δηαρείξηζε

ησλ ηξηψλ απηψλ βαζηθψλ ρψξσλ εκθάληζεο πιεξνθνξίαο. Έηζη, ζπκπεξηιήθζεθαλ

ζην ζρεδηαζκφ δηάθνξα θνπκπηά, drop down menu, θιπ, γηα ηελ εθηέιεζε ειέγρσλ,

εκθάληζε ζηαηηζηηθψλ, απνζήθεπζε απνηειεζκάησλ, θαζψο θαη εξγαιεία γηα

βνεζεηηθέο ιεηηνπξγίεο φπσο δηαρείξηζε ησλ απνηειεζκάησλ ζε ράξηε (ZoomIn,

Αλάπηπμε Πηινηηθήο Δθαξκνγήο γηα ηε δηελέξγεηα πλδπαζηηθώλ Διέγρσλ

κεηαμύ Πεξηγξαθηθώλ θαη Υσξηθώλ Βάζεσλ Κηεκαηνινγίνπ Μάξηηνο 2012

ύληαμε: Γεσξγαθάθε ηαπξνύια 58 /144

ZoomOut, Pan, Add Data), πξνβνιή κφλν ησλ ειέγρσλ ή πξνβνιή κφλν ησλ

απνηειεζκάησλ, αιιαγή ρξήζηε, αιιαγή βάζεο δεδνκέλσλ, θ.ν.θ.

4.7. Τλοποίηζη

Αθνχ νινθιεξψζεθε ε δηαδηθαζία ζρεδίαζεο ηνπ ΒΓ θαη ειήθζεζαλ νη απνθάζεηο

γηα ηνπο άμνλεο πάλσ ζηνπο νπνίνπο ζα θηλεζνχλ νη εξγαζίεο, αθνινχζεζε ην ζηάδην

ηεο πινπνίεζεο απηψλ. Οη θάζεηο ηνπ ζηαδίνπ πινπνίεζεο πεξηγξάθνληαη ζηηο

παξαγξάθνπο πνπ αθνινπζνχλ.

4.7.1. Δηζαγσγή Γεδνκέλσλ ζηελ PostgreSQL/PostGIS

ε πξψηε θάζε, απηφ πνπ έπξεπε λα γίλεη σο πξνπαξαζθεπαζηηθή εξγαζία, ήηαλ λα

«θαηαζθεπαζηεί» ε ΒΓ πνπ ζα θηινμελνχζε ηα δεδνκέλα ζην ζχζηεκα

PostgreSQL/PostGIS θαη ζηε ζπλέρεηα λα γίλεη ε εηζαγσγή ησλ δεδνκέλσλ πξνο

επεμεξγαζία. Σα παξαπάλσ νξγαλψζεθαλ θαη πξαγκαηνπνηήζεθαλ ζε επηκέξνπο

παθέηα εξγαζηψλ σο εμήο:

1ο Πακέηο Δπγαζιών → Γημιοςπγία ΒΓ

Υξεζηκνπνηψληαο ην αξρείν εληνιψλ SQL CreateDB+Schemas.txt (βιέπε § 4.4.3

Απνηέιεζκα Δξγαζηώλ ηαδίνπ) κέζα απφ ηε γξακκή εληνιψλ Command Prompt θαη

αμηνπνηψληαο ηελ εθαξκνγή psql ηεο PostgreSQL, δεκηνπξγήζεθε ε ΒΓ (Create

Database), ηα ηξία ζρήκαηα πνπ ηελ απαξηίδνπλ (Create Schema), φινη νη πίλαθεο

ηεο πεξηγξαθηθήο βάζεο δεδνκέλσλ (πίλαθεο ηεο MSAccess) θαζψο θαη ν έλαο

πίλαθαο Access πνπ ζπλνδεχεη ηα ρσξηθά δεδνκέλα ηεο θηεκαηνινγηθήο βάζεο

(Create Table), σο αθνινχζσο:

Δικόνα 6. Γεκηνπξγία ΒΓ ζηελ PostgreSQL κέζσ psql

Όπνπ: -h → host, -p → port, -U → username, -d → dbname, -f → filename

Αλάπηπμε Πηινηηθήο Δθαξκνγήο γηα ηε δηελέξγεηα πλδπαζηηθώλ Διέγρσλ

κεηαμύ Πεξηγξαθηθώλ θαη Υσξηθώλ Βάζεσλ Κηεκαηνινγίνπ Μάξηηνο 2012

ύληαμε: Γεσξγαθάθε ηαπξνύια 59 /144

Με ηελ παξαπάλσ εληνιή δεκηνπξγήζεθε κηα βάζε δεδνκέλσλ, ζηε ζπγθεθξηκέλε

πεξίπησζε ε ΚΣ19069, κε 3 ζρήκαηα (public, spatial, viewtables) θαη 49 πίλαθεο ζην

ζρήκα public (νη 2 απφ απηνχο είλαη νη πίλαθεο κεηαδεδνκέλσλ ηεο PostGIS)

«δηαβάδνληαο» ηα ραξαθηεξηζηηθά ηνπο απφ ην αξρείν πνπ δφζεθε κε ηελ εληνιή -f.

εκεηψλεηαη φηη ε ΒΓ δεκηνπξγήζεθε απφ ην ρξήζηε «lina», ν νπνίνο - σο

δεκηνπξγφο ηεο - απηνκάησο γίλεηαη δηθαηνχρνο ηεο βάζεο (owner), πξάγκα πνπ ηνπ

παξέρεη δηθαηνδνζία πξφζβαζεο ζε φια ηα αληηθείκελα πνπ πεξηέρεη εκηόρ από ην

default ζρήκα public θαη ηνπο default πίλαθεο κεηαδεδνκέλσλ ηεο PostGIS -

geometry_columns θαη spatial_ref_sys - νη νπνίνη αλήθνπλ ζην default ρξήζηε

postgres.

Δπεηδή ινηπφλ ε δεκηνπξγία ηεο βάζεο έγηλε απφ ρξήζηε δηαθνξεηηθφ ηνπ postgres, ν

νπνίνο ζηε ζπλέρεηα ζα πξέπεη λα έρεη δηθαηψκαηα read/write ζηνπο πίλαθεο ηνπ

ζρήκαηνο γηα ηελ επεμεξγαζία ησλ δεδνκέλσλ, κεηαμχ ησλ άιισλ εληνιψλ ηνπ

αξρείνπ CreateDB+Schemas.txt ζπκπεξηιήθζεθαλ θαη νη εληνιέο:

ALTER SCHEMA public OWNER TO lina

ALTER TABLE spatial_ref_sys OWNER TO lina

ALTER TABLE geometry_columns OWNER TO lina

Με απηφ ηνλ ηξφπν κεηαθέξζεθαλ ηα «δηθαηψκαηα» ζηα αληηθείκελα Schema θαη

Table, απφ ην ρξήζηε postgres ζην ρξήζηε lina.

Αλάπηπμε Πηινηηθήο Δθαξκνγήο γηα ηε δηελέξγεηα πλδπαζηηθώλ Διέγρσλ

κεηαμύ Πεξηγξαθηθώλ θαη Υσξηθώλ Βάζεσλ Κηεκαηνινγίνπ Μάξηηνο 2012

ύληαμε: Γεσξγαθάθε ηαπξνύια 60 /144

Δπηζεκαίλεηαη όηη, ν ρξήζηεο πνπ ζα ρξεζηκνπνηήζεη ηελ εληνιή ALTER

SCHEMA/TABLE ζα πξέπεη λα είλαη έκκεζν ή άκεζν κέινο ηνπ ξόινπ πνπ γίλεηαη λένο

δηθαηνύρνο θαη επίζεο λα έρεη δηθαίσκα create γηα ηε ζπγθεθξηκέλε βάζε. ηε

ζπγθεθξηκέλε πεξίπησζε ν ρξήζηεο lina είρε ξόιν «superuser» ν νπνίνο εκπεξηέρεη

όιεο ηηο παξαπάλσ δηθαηνδνζίεο.

2ο Πακέηο Δπγαζιών → Διζαγυγή Πεπιγπαθικών Γεδομένυν ζηη νέα ΒΓ

Ζ εηζαγσγή ησλ δεδνκέλσλ ηεο πεξηγξαθηθήο πιεξνθνξίαο (δεδνκέλα απφ access)

ζηε ΒΓ ηεο PostgreSQL έγηλε ζε δχν ζηάδηα. Πξψηα έπξεπε λα εμαρζεί φιε ε

πιεξνθνξία απφ ηνπο πίλαθεο ηεο access θαη λα δνκεζεί ζε νξίζκαηα ηεο γιψζζαο

SQL ψζηε λα εηζαρζνχλ ζηε ζπλέρεηα ζηε λέα ΒΓ.

Γηα ηηο αλάγθεο ηεο εξγαζίαο ρξεζηκνπνηήζεθε έλα module ηεο access ην νπνίν

αλαθηήζεθε απφ ην δηαδίθηπν, ηξνπνπνηήζεθε θαηάιιεια ψζηε λα θαιχπηεη ηηο

απαηηήζεηο ηεο παξνχζαο κεηαθφξησζεο (νλφκαηα πηλάθσλ εληφο εηζαγσγηθψλ γηα

δηαηήξεζε θεθαιαίσλ, ζπκβαηά data types, νξζή δηαηχπσζε primary keys,

constraints, indexes, πξνζζήθε θαηάιιεισλ escapes γηα εηδηθνχο ραξαθηήξεο κέζα ζε

string πεδία, θ.α.) θαη παξαηίζεηαη ζην Παξάξηεκα ΗΗ ζηελ ηειηθή ηνπ κνξθή (βιέπε

Access Module).

Ζ ινγηθή κε ηελ νπνία ιεηηνπξγεί ην module είλαη φηη δηαβάδεη ηηο εγγξαθέο ησλ

πηλάθσλ ηεο Access, κεηαηξέπεη ηηο ηηκέο ησλ πεδίσλ ζε ζπκβαηή κε ηελ PostgreSQL

κνξθή θαη ζηε ζπλέρεηα, δεκηνπξγεί θαη γξάθεη ζε αξρείν .txt ηα SQL νξίζκαηα γηα

ηελ εηζαγσγή ηνπο ζηελ PostgreSQL. Σα ελ ιφγσ νξίζκαηα είλαη ηεο κνξθήο:

INSERT INTO "ADRS" VALUES (4000001, 'ΓΙΑΝΝΙΣΩΝ', '176', NULL, '54628', NULL, NULL, '19', '069')

INSERT INTO "BLD" VALUES (4001322, 1, 'Α13', 4.7, '-1', '02', '7200', NULL, NULL, 0, 1)

INSERT INTO "PROP" VALUES (4008172, '190691901005', 0, 11, '0301', '4', NULL, 62.864, 0, 0, 1, 0, 3.192,

100, NULL, NULL, '4000', NULL, '19', '069', NULL, NULL, 'Κ', NULL)

Σν module ρξεζηκνπνηήζεθε γηα ηνπο πίλαθεο ηεο πεξηγξαθηθήο βάζεο θαη γηα ηνλ

πίλαθα access ηεο ρσξηθήο βάζεο θαη παξήγαγαγε δχν αξρεία (19069_add.txt θαη

19069_VSTEASREL_add.txt αληίζηνηρα) ηα νπνία ζηε ζπλέρεηα κέζσ ηεο εθαξκνγήο

psql ρξεζηκνπνηήζεθαλ γηα ηελ εηζαγσγή ησλ δεδνκέλσλ ζηελ PostgreSQL φπσο

θαίλεηαη ζηηο εηθφλεο πνπ αθνινπζνχλ.

Αλάπηπμε Πηινηηθήο Δθαξκνγήο γηα ηε δηελέξγεηα πλδπαζηηθώλ Διέγρσλ

κεηαμύ Πεξηγξαθηθώλ θαη Υσξηθώλ Βάζεσλ Κηεκαηνινγίνπ Μάξηηνο 2012

ύληαμε: Γεσξγαθάθε ηαπξνύια 61 /144

Δικόνα 7. Δηζαγσγή δεδνκέλσλ πεξηγξαθηθήο βάζεο κέζσ psql

Δικόνα 8. Δηζαγσγή δεδνκέλσλ πίλαθα access ρσξηθήο βάζεο κέζσ psql

Όπνπ: -h → host, -p → port, -U → username, -d → dbname, -f → filename

3ο Πακέηο Δπγαζιών → Διζαγυγή Χυπικών Γεδομένυν ζηη νέα ΒΓ

Σν επφκελν βήκα ήηαλ ε θφξησζε ησλ ρσξηθψλ δεδνκέλσλ ζηε λέα ΒΓ (θαη πην

ζπγθεθξηκέλα ζην ζρήκα «spatial» ηεο βάζεο φπσο είρε πξνβιεθζεί θαηά ηνλ αξρηθφ

ζρεδηαζκφ). Σα δεδνκέλα εηζφδνπ ζε απηή ηελ πεξίπησζε ήηαλ αξρεία shapefiles

(ESRI) φπσο έρεη πξναλαθεξζεί, θαη γηα ηελ εηζαγσγή ηνπο αμηνπνηήζεθαλ νη

εθαξκνγέο shp2pgsql ηεο PostGIS (γηα ηε κεηαηξνπή ηνπο ζε «ρσξηθά ελεξγνχο»

πίλαθεο) ζε ζπλδπαζκφ κε ηελ psql ηεο PostgreSQL (γηα ηε θφξησζή ηνπο ζηε βάζε).

Γηα ην ζθνπφ απηφ πινπνηήζεθε κηα ζεηξά εληνιψλ γηα ηελ εηζαγσγή θάζε shapefile

πνπ απαξηίδεη ηε ρσξηθή θηεκαηνινγηθή βάζε ηεο κνξθήο:

shp2pgsql -s 2100 -c -g "the_geom" -W "ISO8859-7" -I -D -k

C:\Temp\19069.shp\ASTENOT\\"ASTENOT".shp spatial."ASTENOT" | psql KT19069 lina

Όπνπ:

-s → srid, -c → create new table, -g → geocolumn, -W → encoding, -I → create

index, -D → postgresql dump format (SQL inserts), -k → keep identifiers case

Αλάπηπμε Πηινηηθήο Δθαξκνγήο γηα ηε δηελέξγεηα πλδπαζηηθώλ Διέγρσλ

κεηαμύ Πεξηγξαθηθώλ θαη Υσξηθώλ Βάζεσλ Κηεκαηνινγίνπ Μάξηηνο 2012

ύληαμε: Γεσξγαθάθε ηαπξνύια 62 /144

χκθσλα κε ηελ νξηδφκελε ζχληαμε:

Δικόνα 9. Δηζαγσγή ρσξηθώλ δεδνκέλσλ κέζσ shp2pgsql θαη psql

εκεηψλεηαη φηη ε εληνιή απηή δε δέρεηαη ζαλ φξηζκα ηνλ θσδηθφ πξφζβαζεο

(password), κε απνηέιεζκα ν θσδηθφο λα δεηείηαη απφ ην ρξήζηε κέζα απφ ηε

γξακκή εληνιψλ ακέζσο κεηά ηελ ππνβνιή ηνπ αηηήκαηνο, φπσο θαίλεηαη ζηελ

εηθφλα πνπ αθνινπζεί.

Γηα νηθνλνκία ρξφλνπ θαη απνθπγή ηεο επαλάιεςεο ηεο εληνιήο γηα θάζε shapefile

ηεο ρσξηθήο βάζεο, δεκηνπξγήζεθε έλα αξρείν pgpass.conf ζηε δηαδξνκή

C:\Users\lina\AppData\Roaming\postgresql, απφ φπνπ ε PostgreSQL ελεκεξψλεηαη

γηα ηηο παξακέηξνπο ζχλδεζεο νλνκαζκέλσλ ρξεζηψλ (ζχκθσλα κε ηε ζρεηηθή

βηβιηνγξαθία) ζην νπνίν απνζεθεχηεθαλ ηα ζηνηρεία πξφζβαζεο ηνπ ρξήζηε lina ζηε

κνξθή:

host:port:dbname:username:password

Απηή ε ελέξγεηα παξείρε ηε δπλαηφηεηα ζπλνιηθήο θφξησζεο φισλ ησλ shapefiles

ηξνθνδνηψληαο ηε γξακκή εληνιψλ κφλν κηα θνξά κε φια ηα αηηήκαηα ηεο Δηθόλα 10

πνπ αθνινπζεί.

shp2pgsql [options] shapefile [schema.]table | psql dbname username

Αλάπηπμε Πηινηηθήο Δθαξκνγήο γηα ηε δηελέξγεηα πλδπαζηηθώλ Διέγρσλ

κεηαμύ Πεξηγξαθηθώλ θαη Υσξηθώλ Βάζεσλ Κηεκαηνινγίνπ Μάξηηνο 2012

ύληαμε: Γεσξγαθάθε ηαπξνύια 63 /144

Δικόνα 10. Δληνιέο εηζαγσγήο ρσξηθήο βάζεο (shp2pgsql θαη psql)

4.7.2. Αλάπηπμε εξσηεκάησλ ειέγρσλ ζε SQL

ην ζεκείν απηφ, θαη εθφζνλ φια ηα δεδνκέλα είραλ εηζαρζεί επηηπρψο ζην ΓΒΓ,

πξαγκαηνπνηήζεθε ε ζχληαμε ησλ εξσηεκάησλ ειέγρσλ, πνπ είραλ πξνθχςεη θαηά ην

ζρεδηαζκφ ζε επίπεδν πεξηγξαθήο πεξηερνκέλνπ γηα θάζε έιεγρν (βιέπε 4.5.1

ρεδηαζκόο ιεηηνπξγηώλ ειέγρνπ).

Ζ αλάπηπμε εξσηεκάησλ ειέγρσλ ζε SQL, ζαλ εξγαζία, πεξηειάκβαλε ηε ζχληαμε

SQL νξηζκάησλ γηα ηε δεκηνπξγία (Create) ησλ «Views» θαη ησλ «Tables» ειέγρσλ,

πνπ ζχκθσλα κε ηνλ αξρηθφ ζρεδηαζκφ ζα απνζεθεχνληαλ ζηα ζρήκαηα public θαη

viewtables αληίζηνηρα (βιέπε § 4.4.1 Λνγηθό ρήκα ΒΓ PostgreSQL/PostGIS) θαη ζα

θαινχληαλ απφ ηε δηεπαθή ηεο ππφ αλάπηπμε εθαξκνγήο κεηαγελέζηεξα γηα ηελ

εθηέιεζε ησλ ειέγρσλ.

Σα νξίζκαηα πνπ πξνέθπςαλ απφ ηελ παξαπάλσ εξγαζία θαη παξαηίζεληαη ζε πίλαθα

ηνπ Παξαξηήκαηνο ΗΗ ηεο παξνχζαο (Δξσηήκαηα Διέγρσλ (SQL)), νκαδνπνηήζεθαλ

θαη απνζεθεχηεθαλ ζε αξρεία .txt σο εμήο:

Δληνιέο Γεκηνπξγίαο Δξσηεκάησλ Διέγρσλ (views) ηνπ ζρήκαηνο public

(CreateAllViews.txt)

Δληνιέο Γεκηνπξγίαο Πηλάθσλ Διέγρσλ ηνπ ζρήκαηνο viewtables

(CreateAllTables.txt)

Αλάπηπμε Πηινηηθήο Δθαξκνγήο γηα ηε δηελέξγεηα πλδπαζηηθώλ Διέγρσλ

κεηαμύ Πεξηγξαθηθώλ θαη Υσξηθώλ Βάζεσλ Κηεκαηνινγίνπ Μάξηηνο 2012

ύληαμε: Γεσξγαθάθε ηαπξνύια 64 /144

ηε ζπλέρεηα, θαη κέζα απφ ηε γξακκή εληνιψλ command prompt, αμηνπνηψληαο γηα

άιιε κηα θνξά ηελ εθαξκνγή psql ηεο PostgreSQL, πινπνηήζεθαλ ηα Views θαη ηα

Tables ειέγρσλ κέζα ζηα ζρήκαηα public θαη viewtables ηεο βάζεο πνπ είρε ήδε

δεκηνπξγεζεί ζε πξνεγνχκελν ζηάδην:

Δικόνα 11. Γεκηνπξγία Views Διέγρσλ κέζσ psql

Δικόνα 12. Γεκηνπξγία Tables Διέγρσλ κέζσ psql

Όπνπ: -h → host, -p → port, -U → username, -d → dbname, -f → filename

Σέινο, αθνχ νινθιεξψζεθε ε δεκηνπξγία ησλ Views θαη ησλ Tables ειέγρσλ, έγηλαλ

δνθηκέο εληφο ηεο PostgreSQL γηα ηελ επηβεβαίσζε ηεο νξζήο θαη ιεηηνπξγηθήο

δηαηχπσζεο ησλ εξσηεκάησλ, πξαγκαηνπνηήζεθαλαλ νη απαξαίηεηεο ηξνπνπνηήζεηο /

βειηηψζεηο ζηε ζχληαμε ησλ εξσηεκάησλ θαη νξηζηηθνπνηήζεθαλ ηα πεξηερφκελα ησλ

πξναλαθεξζέλησλ αξρείσλ CreateAllViews.txt - CreateAllTables.txt, ηα νπνία θαη

παξαηίζεληαη ζην Παξάξηεκα ΗΗ ηεο παξνχζαο.

4.7.3. Αλάπηπμε ηεο Γηεπαθήο Υξήζηε (GUI)

ην ζηάδην απηφ πινπνηήζεθαλ νη θφξκεο ηεο δηεπαθήο ρξήζηε σο πξνο ηε κνξθή θαη

ηελ εκθάληζε ηεο δηεπαθήο ρξήζηε.

Αλάπηπμε Πηινηηθήο Δθαξκνγήο γηα ηε δηελέξγεηα πλδπαζηηθώλ Διέγρσλ

κεηαμύ Πεξηγξαθηθώλ θαη Υσξηθώλ Βάζεσλ Κηεκαηνινγίνπ Μάξηηνο 2012

ύληαμε: Γεσξγαθάθε ηαπξνύια 65 /144

χκθσλα κε φζα πεξηγξάθεθαλ λσξίηεξα (βιέπε § 4.6 ρεδηαζκόο ηεο Γηεπαθήο

Υξήζηε (GUI)) δεκηνπξγήζεθαλ ηξεηο θφξκεο γηα ηελ εμππεξέηεζε ησλ ιεηηνπξγηψλ

ηεο εθαξκνγήο, φπσο εκθαλίδνληαη ζηηο εηθφλεο πνπ αθνινπζνχλ.

ηε Φόπμα Σηοισείυν Σύνδεζηρ με Γιακομιζηή (Δηθόλα 13) ζπκπεξηιήθζεθαλ

ηέζζεξα text boxes - γηα ηελ θαηαρψξηζε ησλ ζηνηρείσλ ζχλδεζεο απφ ην ρξήζηε -

θαη ηξεηο επηινγέο (θνπκπηά) γηα ηνλ έιεγρν ζύλδεζεο, ηελ αθύξσζε ηεο δηαδηθαζίαο

(θιείζηκν ηεο θφξκαο) θαη ηελ απνδνρή (ελεξγνπνίεζε ζχλδεζεο) αληίζηνηρα.

Δικόνα 13. Φόξκα ηνηρείσλ ύλδεζεο κε Γηαθνκηζηή

ηε Φόπμα Δπιλογήρ Βάζηρ Γεδομένυν (Δηθόλα 14) ζπκπεξηιήθζεθαλ έλα combo

box (drop down list) γηα ηελ εκθάληζε ησλ ΒΓ πνπ είλαη δηαζέζηκεο πξνο επεμεξγαζία

θαη δχν επηινγέο (θνπκπηά) γηα ηελ ηελ αθύξσζε ηεο δηαδηθαζίαο (θιείζηκν ηεο

θφξκαο) θαη ηελ απνδνρή ηεο επηινγήο αληίζηνηρα.

Δικόνα 14. Φόξκα Δπηινγήο Βάζεο Γεδνκέλσλ

ηε Φόξκα Βαζηθώλ Λεηηνπξγηώλ Δθαξκνγήο (Main) (Δηθόλα 15) ζπκπεξηιήθζεθαλ

πνιχ πεξηζζφηεξα αληηθείκελα (controls) εθφζνλ κέζα απφ απηή εθηεινχληαη νη

πεξηζζφηεξεο ιεηηνπξγίεο ηεο εθαξκνγήο.

Σα βαζηθά αληηθείκελα (controls) πνπ ζπλέζεζαλ ηε θφξκα ήηαλ έλα menu strip, έλα

tool strip, ηξία panels (γεληθεπκέλε δηαηχπσζε) θαη έλα status strip.

Αλάπηπμε Πηινηηθήο Δθαξκνγήο γηα ηε δηελέξγεηα πλδπαζηηθώλ Διέγρσλ

κεηαμύ Πεξηγξαθηθώλ θαη Υσξηθώλ Βάζεσλ Κηεκαηνινγίνπ Μάξηηνο 2012

ύληαμε: Γεσξγαθάθε ηαπξνύια 66 /144

To menu strip θηινμέλεζε ηα αληηθείκελα:

Απσείο, κε πξφζβαζε ζηηο επηινγέο Αιιαγή Βάζεο Γεδνκέλσλ, Αιιαγή ηνηρείσλ

ύλδεζεο θαη Έμνδνο γηα άλνηγκα ηεο αληίζηνηρεο θφξκαο θαη έμνδνο απφ ηελ

εθαξκνγή.

Πποβολή, κε πξφζβαζε ζηηο επηινγέο Λίζηα Διέγρσλ, Απνηειέζκαηα ζε Πίλαθα θαη

Απνηειέζκαηα ζε Υάξηε, γηα δηαρείξηζε ηνπ ηξφπνπ πξνβνιήο ησλ δεδνκέλσλ ζην

παξάζπξν ηεο εθαξκνγήο.

Βοήθεια, κε πξφζβαζε ζηελ επηινγή ΚΣ - πλδπαζηηθνί Έιεγρνη, γηα ιήςε

πιεξνθνξηψλ ζρεηηθά κε ηελ εθαξκνγή.

To tool strip θηινμέλεζε ηα αληηθείκελα (θνπκπηά):

Σηαηιζηικά Δλέγσυν, γηα ηελ εθηέιεζε φισλ ησλ ειέγρσλ θαη ηελ εκθάληζε ηνπ

πιήζνπο κε ζπκκνξθψζεσλ αλά έιεγρν ζην panel Λίζηα Διέγρσλ.

Αποηελέζμαηα Μόνο ζε Χάπηη, γηα ηελ εθηέιεζε κεκνλσκέλνπ ειέγρνπ θαη

εκθάληζε ηνπ απνηειέζκαηφο ηνπ ζην panel Απνηειέζκαηα Διέγρνπ ζε Υάξηε.

Αποθήκεςζη Αποηελεζμάηυν ζε Πίνακα, γηα ηελ εμαγσγή θαη απνζήθεπζή ησλ

απνηειεζκάησλ επηιεγκέλνπ ειέγρνπ ζε αξρείν excel.

To ηπία panels απνηέιεζαλ ηα θεληξηθά αληηθείκελα ηεο θφξκαο θαη

ζπκπεξηιήθζεζαλ ζε απηά ηα παξαθάησ πεξηγξαθφκελα:

Λίζηα Δλέγσυν: πίλαθαο (data grid view) κε ζηήιεο Κσδηθόο, Πεξηγξαθή θαη

Απνηειέζκαηα, γηα ηελ εκθάληζε ζπλνιηθήο ιίζηαο ησλ εθηεινχκελσλ ειέγρσλ θαη

ηνπ πιήζνπο ησλ απνηειεζκάησλ ηνπο

Αποηελέζμαηα Δλέγσος ζε Πίνακα: πίλαθαο (data grid view) κε πεξηερφκελν ηα

απνηειέζκαηα (ζε κνξθή πίλαθα) ηνπ εθάζηνηε ειέγρνπ πνπ ζα επηιέγεη ν

ρξήζηεο λα εκθαλίζεη.

Αλάπηπμε Πηινηηθήο Δθαξκνγήο γηα ηε δηελέξγεηα πλδπαζηηθώλ Διέγρσλ

κεηαμύ Πεξηγξαθηθώλ θαη Υσξηθώλ Βάζεσλ Κηεκαηνινγίνπ Μάξηηνο 2012

ύληαμε: Γεσξγαθάθε ηαπξνύια 67 /144

Αποηελέζμαηα Δλέγσος ζε Χάπηη: Map control γηα ηελ πξνβνιή ησλ

«απνηειεζκάησλ ζε ράξηε» ηνπ εθάζηνηε ειέγρνπ πνπ ζα επηιέγεη ν ρξήζηεο λα

εκθαλίζεη, Legend control γηα ηε δηαρείξηζε ησλ εκθαληδφκελσλ ραξηψλ (layers),

Spatial Tool Strip control κε επηινγέο ZoomIn, ZoomOut, Pan, AddData, Δηηθέηεο

(Δκθάληζε / Απφθξπςε), θ.α.

Δικόνα 15. Φόξκα Βαζηθώλ Λεηηνπξγηώλ Δθαξκνγήο (Main)

Σέινο, ην status strip πξνζηέζεθε γηα ηε ηήξεζε ηεο πιεξνθνξίαο ζρεηηθά κε ην

δηαθνκηζηή θαη ηε βάζε δεδνκέλσλ κε ηελ νπνία έρεη γίλεη ζχλδεζε θαη ζηα δεδνκέλα

ηεο νπνίαο εθηεινχληαη νη έιεγρνη.

4.7.4. Αλάπηπμε ησλ ιεηηνπξγηψλ εθαξκνγήο

Ο θψδηθαο γηα ηελ εθηέιεζε ησλ ιεηηνπξγηψλ ηεο εθαξκνγήο επηκεξίδεηαη ζε ηξία

δηαθξηηά ηκήκαηα, αλάινγα κε ην θχζε ηεο θάζε ιεηηνπξγίαο πνπ εμππεξεηνχλ.

Ανάπηςξη Κώδικα για ηη ζύνδεζη με ηο διακομιζηή και ηη ΒΓ

Σν πξψην θνκκάηη ηεο αλάπηπμεο ηνπ θψδηθα αθνξνχζε ηε δεκηνπξγία ηεο ζχλδεζεο

κε ην ΓΒΓ PostgreSQL θαζψο θαη κε ηελ εθάζηνηε ΒΓ πξνο έιεγρν. Οπζηαζηηθά

Αλάπηπμε Πηινηηθήο Δθαξκνγήο γηα ηε δηελέξγεηα πλδπαζηηθώλ Διέγρσλ

κεηαμύ Πεξηγξαθηθώλ θαη Υσξηθώλ Βάζεσλ Κηεκαηνινγίνπ Μάξηηνο 2012

ύληαμε: Γεσξγαθάθε ηαπξνύια 68 /144

επξφθεηην γηα ηνλ πξνζδηνξηζκφ ηνπ ηξφπνπ «αληαπφθξηζεο» ησλ δχν πξψησλ, απφ

ηηο ηξεηο θφξκεο πνπ πεξηγξάθεθαλ παξαπάλσ, ζηα αηηήκαηα ηνπ ρξήζηε.

Ζ ινγηθή πάλσ ζηελ νπνία θηλήζεθε ην «ρηίζηκν» ηνπ θψδηθα γηα ηηο παξαπάλσ

ιεηηνπξγίεο ήηαλ:

Με ηελ εθθίλεζε ηεο εθαξκνγήο λα αλνίγεη ε βαζηθή θφξκα (main) θαη ε θφξκα

ζηνηρείσλ ζχλδεζεο κε ην δηαθνκηζηή θαη, αθνχ ν ρξήζηεο θαηαρσξίζεη ηα

απαηηνχκελα ζηνηρεία, λα ιακβάλνληαη νη ηηκέο ησλ text boxes (Γηαθνκηζηήο, Θχξα,

Υξήζηεο, Κσδηθφο), λα απνζεθεχνληαη πξνζσξηλά ζε αληίζηνηρα properties (γηα φζν

παξακέλεη αλνηρηή ε θχξηα θφξκα ηεο εθαξκνγήο) θαη φηαλ επηιέγεηαη απφ ην ρξήζηε

είηε ν «έιεγρνο ζχλδεζεο» είηε ε «απνδνρή» λα ηξνθνδνηείηαη, κε ηηο ηηκέο απηέο θαη

κε ηελ ηηκή postgres19

(σο φλνκα ΒΓ πξνο ζχλδεζε), ην αληίζηνηρν connection string

θαη λα ειέγρεηαη ε δπλαηφηεηα ζχλδεζεο κε ην δηαθνκηζηή.

connectionString = ("Server={0};Port={1};UserId={2};Password={3};Database={4};", txtServer.Text, txtPort.Text, txtUserId.Text, txtPassword.Text, "postgres")

….. Try

Using conn = New NpgsqlConnection(connectionString)

conn.Open()

…..

ε πεξίπησζε αδπλακίαο ζχλδεζεο λα ελεκεξψλεηαη ν ρξήζηεο κε ζρεηηθφ κήλπκα,

ελψ ζε πεξίπησζε επηηπρνχο ζχλδεζεο, λα εκθαλίδνληαη ζην data grid view ηνπ panel

Λίζηα Διέγρσλ νη θσδηθνί θαη νη πεξηγξαθέο ειέγρσλ πξνο εθηέιεζε θαη λα

ελεκεξψλεηαη ην status strip κε ην φλνκα ηνπ δηαθνκηζηή.

ηε ζπλέρεηα, θαη εθφζνλ έρεη πξνεγεζεί επηηπρήο ζχλδεζε κε ηε βάζε postgres, κε

ηελ SQL εληνιή,

SELECT datname FROM pg_database WHERE datistemplate=false

λα επηιέγνληαη απφ ηνλ πίλαθα postgres > catalogs > pg_catalog > tables >

pg_database (βιέπε εηθφλα πνπ αθνινπζεί) ηα νλφκαηα ησλ ΒΓ (datname) πνπ

ππάξρνπλ απνζεθεπκέλεο ζην ζχζηεκα θαη ηαπηφρξνλα δελ απνηεινχλ template

(datistemplate=false), θαη λα ελεκεξψλεηαη κε απηά ην drop down list ηεο θφξκαο

19

Ζ επηινγή απηή έγηλε γηαηί ε postgres απνηειεί ηελ default βάζε δεδνκέλσλ πνπ δεκηνπξγείηαη

πάληα κε ηελ εγθαηάζηαζε ηεο PostgreSQL θη επνκέλσο ζα πεξηέρεηαη ζε θάζε πεξίπησζε ζην ΓΒΓ.

Αλάπηπμε Πηινηηθήο Δθαξκνγήο γηα ηε δηελέξγεηα πλδπαζηηθώλ Διέγρσλ

κεηαμύ Πεξηγξαθηθώλ θαη Υσξηθώλ Βάζεσλ Κηεκαηνινγίνπ Μάξηηνο 2012

ύληαμε: Γεσξγαθάθε ηαπξνύια 69 /144

Δπηινγή Βάζεο Γεδνκέλσλ αλνίγνληαο παξάιιεια ηε θφξκα ζηελ νζφλε γηα λα

επηιέμεη ν ρξήζηεο ηε ΒΓ ζηελ νπνία επηζπκεί λα εθηειέζεη ηνπο ειέγρνπο.

ηελ εηθφλα πνπ αθνινπζεί εκθαλίδεηαη ε θαηάζηαζε ζηελ νπνία βξίζθεηαη ε

εθαξκνγή κεηά απφ φιεο ηηο «ελέξγεηεο» πνπ πεξηγξάθεθαλ πην πάλσ.

Σέινο, αθνχ ν ρξήζηεο έρεη επηιέμεη ΒΓ απφ ην drop down list ηεο θφξκαο Δπηινγή

Βάζεο Γεδνκέλσλ, λα ελεκεξψλεηαη θαη ην status strip ζην θάησ κέξνο ηεο νζφλεο κε

ην φλνκα ηεο επηιεγκέλεο βάζεο.

Αλάπηπμε Πηινηηθήο Δθαξκνγήο γηα ηε δηελέξγεηα πλδπαζηηθώλ Διέγρσλ

κεηαμύ Πεξηγξαθηθώλ θαη Υσξηθώλ Βάζεσλ Κηεκαηνινγίνπ Μάξηηνο 2012

ύληαμε: Γεσξγαθάθε ηαπξνύια 70 /144

Ανάπηςξη Κώδικα για ηην ςλοποίηζη ηυν λειηοςπγιών ελέγσος (δοζολητιών)

Δπφκελν βήκα ήηαλ ε αλάπηπμε θψδηθα γηα ην ρεηξηζκφ ησλ ιεηηνπξγηψλ ειέγρνπ,

δειαδή γηα ηελ απνζηνιή ησλ αηηεκάησλ ηνπ ρξήζηε πξνο ην ζχζηεκα

PostgreSQL/PostGIS θαη ηελ εκθάληζε ησλ «απνθξίζεσλ» απφ απηφ.

Ζ ινγηθή ήηαλ αληίζηνηρε κε ην πξνεγνχκελν θνκκάηη, σο πξνο ηε ζχλδεζε κε ην

δηαθνκηζηή, κε ηε δηαθνξά φηη ζε απηή ηε θάζε ε ζχλδεζε γηλφηαλ κε ηελ επηιεγκέλε

βάζε (ην connection string άιιαμε σο πξνο ην φλνκα ΒΓ).

ην ζεκείν απηφ πξέπεη λα αλαθεξζεί φηη νη θσδηθνί θαη νη πεξηγξαθέο ησλ «πξνο

εθηέιεζε» ειέγρσλ, είραλ θαηαρσξεζεί, απφ ην πξνεγνχκελν βήκα, ζηα data sources

ηνπ project απφ φπνπ ηα «δηάβαδε» ε εθαξκνγή θαη ηα εκθάληδε ζην panel Λίζηα

Διέγρσλ.

Ο θψδηθαο απηήο ηεο θάζεο εζηηάζηεθε πεξηζζφηεξν ζηελ εθηέιεζε ησλ ειέγρσλ

κέζα απφ ηα δηάθνξα εξγαιεία (controls) ηεο δηεπαθήο θαη ηεο εκθάληζεο ησλ

απνηειεζκάησλ ηνπο. Γηα παξάδεηγκα, γηα ηελ επηινγή ηαηηζηηθά Διέγρσλ, ε ινγηθή

ηνπ θψδηθα πνπ αλαπηχρζεθε ήηαλ λα ελεξγνπνηεί κηα ζχλδεζε κε ηα απνζεθεπκέλα

ζηνηρεία θαη λα ζηέιλεη κηα SQL εληνιή πξνο ηε ΒΓ,

SELECT COUNT(*) FROM viewName

ε νπνία λα εθηειείηαη γηα φινπο ηνπο ειέγρνπο δηαδνρηθά θαη λα επηζηξέθεη ην πιήζνο ησλ κε

ζπκκνξθνχκελσλ εγγξαθψλ ζηε ζηήιε Απνηειέζκαηα ηνπ panel Λίζηα Διέγρσλ φπσο

θαίλεηαη ζηελ εηθφλα πνπ αθνινπζεί.

Αλάπηπμε Πηινηηθήο Δθαξκνγήο γηα ηε δηελέξγεηα πλδπαζηηθώλ Διέγρσλ

κεηαμύ Πεξηγξαθηθώλ θαη Υσξηθώλ Βάζεσλ Κηεκαηνινγίνπ Μάξηηνο 2012

ύληαμε: Γεσξγαθάθε ηαπξνύια 71 /144

Μηα άιιε ιεηηνπξγία πνπ αλαπηχρζεθε ζε απηή ηε θάζε ήηαλ ε δπλαηφηεηα ηνπ

ρξήζηε λα «θαιεί» ηα απνηειέζκαηα κεκνλσκέλνπ ειέγρνπ (ζε πίλαθα θαη ζε ράξηε)

θάλνληαο double-click (event) πάλσ ζην φλνκα ηνπ ειέγρνπ. Δδψ ε ινγηθή ήηαλ λα

αλνίγεη πάιη κηα ζχλδεζε θαη ζηελ κελ πεξίπησζε «εκθάληζεο απνηειεζκάησλ ζε

πίλαθα» λα απνζηέιεηαη αίηεκα SELECT * FROM view (ηνπ επηιεγκέλνπ ειέγρνπ) θαη

λα γεκίδεη ν πίλαθαο ηνπ panel Απνηειέζκαηα Διέγρνπ ζε Πίλαθα κε ηελ απφθξηζε,

ζηε δε πεξίπησζε «εκθάληζεο απνηειεζκάησλ ζε ράξηε» λα αλνίγεη πάιη ε ζχλδεζε

θαη λα δίλνληαη κέζα απφ κεηαβιεηέο,

ην path γηα ηελ εθαξκνγή pgsql2shp.exe (πνπ είλαη ν bin θάθεινο ηεο PostgreSQL)

νη παξάκεηξνη κεηαηξνπήο απφ πίλαθα PostGIS ζε shapefile

ην path γηα ηε δεκηνπξγία ππνθαθέισλ SHAPE/dbname θαη αξρείνπ .shp κε ην

φλνκα ηνπ ειέγρνπ ζην θάθειν MyDocuments ηνπ ρξήζηε

ηε ζπλέρεηα λα εθηειείηαη ε κεηαηξνπή ηνπ πίλαθα PostGIS ζε shapefile γηα ηνλ

επηιεγκέλν έιεγρν, λα απνζεθεχεηαη ζηνλ πξνεπηιεγκέλν θάθειν θαη ηέινο λα

θαιείηαη πξνο εκθάληζε ζην panel Απνηειέζκαηα Διέγρνπ ζε Υάξηε.

Παξαθάησ παξαηίζεηαη απφζπαζκα ηνπ ζρεηηθνχ θψδηθα:

Dim fileName = CreateShapeFile() Map1.AddLayer(fileName) Private Function CreateShapeFile() As String Dim pgsql2shpPath = String.Format("""{0}\PostgreSQL\9.1\bin\pgsql2shp.exe""", My.Computer.FileSystem.SpecialDirectories.ProgramFiles) Dim fileDirectory = IO.Path.Combine(My.Computer.FileSystem.SpecialDirectories. MyDocuments, "SHAPE", ServerConnectionHandler.DatabaseName) My.Computer.FileSystem.CreateDirectory(fileDirectory) Dim fileName As String = String.Format("""{0}\{1}.shp""", fileDirectory, _lastQualityCheck.QCName) Dim args = String.Format("-f {0} -h {1} -p {2} -P {3} -u {4} -g {5} -k {6} viewtables.{7}", _ fileName, _ ServerConnectionHandler.ServerName, _ ServerConnectionHandler.Port, _ ServerConnectionHandler.Password, _ ServerConnectionHandler.UserId, _ "the_geom", _ ServerConnectionHandler.DatabaseName, _lastQualityCheck.QCName) Dim command = String.Format("{0} {1}", pgsql2shpPath, args) Shell(command, AppWinStyle.Hide, True) Return fileName.Replace("""", "") End Function

Αλάπηπμε Πηινηηθήο Δθαξκνγήο γηα ηε δηελέξγεηα πλδπαζηηθώλ Διέγρσλ

κεηαμύ Πεξηγξαθηθώλ θαη Υσξηθώλ Βάζεσλ Κηεκαηνινγίνπ Μάξηηνο 2012

ύληαμε: Γεσξγαθάθε ηαπξνύια 72 /144

Ζ εληνιή γηα ηε κεηαηξνπή απφ πίλαθα PostGIS ζε shapefile κέζσ pgsql2shp, φπσο

ζα δηλφηαλ απφ γξακκή εληνιψλ (κε ηελ πξνυπφζεζε φηη νη θάθεινη SHAPE θαη

KT19069 ππάξρνπλ ήδε) είλαη:

pgsql2shp -f C:\Temp\SHAPE\KT19069\\"4_DIFF_ADDRESS".shp -h localhost -p 5432

-P ultraextrasafe -u lina -g "the_geom" -k KT19069 viewtables."4_DIFF_ADDRESS"

Όπνπ: -f → filename to create, -h → host, -p → port, -P → password, -u →

username, -g → geocolumn, -k → keep PostgreSQL identifiers case

ηελ εηθφλα πνπ αθνινπζεί εκθαλίδεηαη ην απνηέιεζκα ηνπ event double click ζηνλ

έιεγρν «22_PST.KAEK_NOBLD → Πνιύγσλα ηνπ PST πνπ αληηζηνηρίδνληαη κε ρξήζε

ΚΑΣΟΙΚΙΑ, ΔΜΠΟΡΙΟ,θιπ (land_use_code=3100, 32%,4000, 7200) ζηνλ πίλαθα PROP,

ρσξίο λα πεξηιακβάλνπλ θηίζκα (spatial.BLD)»:

εκεηώλεηαη όηη γηα ηελ θαιύηεξε νηπηθνπνίεζε ηνπ απνηειέζκαηνο έρεη πξνζηεζεί σο

ππόβαζξν, ζην panel Απνηειέζκαηα Διέγρνπ ζε Υάξηε, ην shapefile PST κε όια ηα

πνιύγσλα ησλ γεσηεκαρίσλ ηνπ ειεγρόκελνπ ΟΣΑ.

Δπηζεκαίλεηαη επηπιένλ φηη ε επηινγή «Απνηειέζκαηα Μφλν ζε Υάξηε»

δηαρσξίζηεθε απφ ην event «double-click» γηα λα θαιχςεη ηελ πεξίπησζε πνπ

ρξήζηεο ζα ζειήζεη λα έρεη κηα γξήγνξε θαη επνπηηθή εηθφλα ηεο ρσξηθήο θαηαλνκήο

ησλ απνηειεζκάησλ θάπνηνπ κεκνλσκέλνπ ειέγρνπ, ρσξίο λα ρξεηάδεηαη λα πεξηκέλεη

λα «ηξέμεη» ην αληίζηνηρν View ηνπ ειέγρνπ. Απηφ επηηεχρζεθε κε ην φηη, φπσο

αλαθέξζεθε εθηελέζηεξα θαη ζε πξνεγνχκελεο παξαγξάθνπο ηεο παξνχζαο, ηα

Αλάπηπμε Πηινηηθήο Δθαξκνγήο γηα ηε δηελέξγεηα πλδπαζηηθώλ Διέγρσλ

κεηαμύ Πεξηγξαθηθώλ θαη Υσξηθώλ Βάζεσλ Κηεκαηνινγίνπ Μάξηηνο 2012

ύληαμε: Γεσξγαθάθε ηαπξνύια 73 /144

Απνηειέζκαηα ζε Υάξηε πξνθχπηνπλ απφ αληίζηνηρα απνζεθεπκέλα Tables αληίζεηα

κε φηη ζπκβαίλεη γηα ηα Απνηειέζκαηα ζε Πίλαθα γηα ηα νπνία ην αληίζηνηρν View

«ηξέρεη» ηελ ψξα πνπ απνζηέιεηαη ην αίηεκα. ηελ εηθφλα πνπ αθνινπζεί

νπηηθνπνηνχληαη ηα παξαπάλσ, φπνπ εκθαλίδεηαη ην απνηέιεζκα κφλν ζε ράξηε ρσξίο

λα ζπλεπάγεηαη απαξαίηεηα θαη πιεξνθνξία ζην panel Απνηειέζκαηα ζε Πίλαθα (ην

νπνίν έρεη παξακείλεη θελφ).

ηε θάζε απηή, επηπιένλ ησλ βαζηθψλ ιεηηνπξγηψλ ειέγρνπ, αλαπηχρζεθε θαη ν

ζρεηηθφο θψδηθαο γηα φιεο ηηο βνεζεηηθέο ιεηηνπξγίεο ηεο εθαξκνγήο.

Γηα παξάδεηγκα, ε απφθξηζε ηεο εθαξκνγήο φηαλ ν ρξήζηεο επηιέγεη Αξρείν →

Δπηινγή Βάζεο Γεδνκέλσλ ή Αξρείν → Αιιαγή ηνηρείσλ ύλδεζεο, λα αλνίγεη

δειαδή ηηο αληίζηνηρεο θφξκεο Δπηινγή Βάζεο Γεδνκέλσλ θαη ηνηρεία ύλδεζεο

Γηαθνκηζηή, ελεκεξψλνληαο παξάιιεια, κε ηηο λέεο ηηκέο πνπ θαηαρσξεί ν ρξήζηεο,

ην status strip ζην θάησ κέξνο ηεο νζφλεο.

Δπίζεο, αλαπηχρζεθε θψδηθαο γηα ην ρεηξηζκφ ησλ επηινγψλ Πξνβνιή → Λίζηα

Διέγρσλ, Πξνβνιή → Απνηειέζκαηα ζε Πίλαθα, Πξνβνιή → Απνηειέζκαηα ζε Υάξηε,

ψζηε λα δίλεηαη ε δπλαηφηεηα ελαιιαγήο ησλ «ελεξγώλ παξαζύξσλ» ηεο δηεπαθήο

αλάινγα κε ηηο αλάγθεο ηνπ ρξήζηε.

Γηα παξάδεηγκα ε πξνβνιή μόνο ηυν panel Λίζηα Δλέγσυν και Αποηελέζμαηα ζε

Χάπηη (ζε πεξίπησζε πνπ ηα πεξηγξαθηθά ζηνηρεία ηνπ ειέγρνπ δελ απαηηνχληαη ηε

δεδνκέλε ζηηγκή θαη είλαη ζεκαληηθφηεξε ε δηαρείξηζε ησλ ιεηηνπξγηψλ ηνπ ράξηε ζε

Αλάπηπμε Πηινηηθήο Δθαξκνγήο γηα ηε δηελέξγεηα πλδπαζηηθώλ Διέγρσλ

κεηαμύ Πεξηγξαθηθώλ θαη Υσξηθώλ Βάζεσλ Κηεκαηνινγίνπ Μάξηηνο 2012

ύληαμε: Γεσξγαθάθε ηαπξνύια 74 /144

κεγαιχηεξε αλάιπζε) ή μόνο Λίζηα Δλέγσος και Αποηελέζμαηα ζε Πίνακα (ζε

πεξίπησζε πνπ ν ελ ιφγσ έιεγρνο δελ πεξηιακβάλεη ρσξηθή πιεξνθνξία) ή θαη κφλν

έλα panel ελεξγφ ζε φιε ηε θφξκα.

Σα παξαπάλσ πεξηγξαθφκελα γίλνληαη επθνιφηεξα θαηαλνεηά κέζα απφ ηηο εηθφλεο

πνπ αθνινπζνχλ:

Δικόνα 16. Λίζηα Διέγρσλ θαη κόλν Απνηειέζκαηα ζε Πίλαθα

Δικόνα 17. Λίζηα Διέγρσλ θαη κόλν Απνηειέζκαηα ζε Υάξηε

Ανάπηςξη κώδικα για ηην εξαγυγή και αποθήκεςζη αποηελεζμάηυν ελέγσος

ζε πίνακα ή ζε σάπηη

Αλάπηπμε Πηινηηθήο Δθαξκνγήο γηα ηε δηελέξγεηα πλδπαζηηθώλ Διέγρσλ

κεηαμύ Πεξηγξαθηθώλ θαη Υσξηθώλ Βάζεσλ Κηεκαηνινγίνπ Μάξηηνο 2012

ύληαμε: Γεσξγαθάθε ηαπξνύια 75 /144

Σέινο, ζε απηή ηε θάζε, πινπνηήζεθε ν ζρεηηθφο θψδηθαο γηα ηελ εμαγσγή, θαη

απνζήθεπζε ζε αξρείν excel, ησλ απνηειεζκάησλ ζε πίλαθα γηα ηνλ εθάζηνηε έιεγρν

ηεο επηινγήο ηνπ ρξήζηε.

Ζ ινγηθή ηνπ ήηαλ, κεηά ηελ επηινγή απφ ην ρξήζηε Απνζήθεπζε Απνηειεζκάησλ ζε

Πίλαθα, λα ειέγρεη αξρηθά αλ ππάξρεη εγθαηεζηεκέλν excel ζηε κεραλή ηνπ ρξήζηε,

θαη αλ φρη λα ελεκεξψλεηαη απηφο κε ζρεηηθφ κήλπκα, ζηε ζπλέρεηα λα δεκηνπξγεί

έλα αξρείν excel, λα ην νλνκάδεη κε ηνλ θσδηθφ ηνπ ειέγρνπ (θαη λα νλνκάδεη θαη ην

ελεξγφ θχιιν ηνπ excel αληίζηνηρα), λα ην γεκίδεη κε ηελ πιεξνθνξία ηνπ panel

Απνηειέζκαηα ζε Πίλαθα (πξνυπνζέηεη λα έρεη ήδε εθηειεζηεί ν ελ ιφγσ έιεγρνο) θαη

λα εκθαλίδεη ηειηθά έλα dialog box κέζα απφ ην νπνίν λα δίλεηαη ε δπλαηφηεηα ζην

ρξήζηε λα επηιέμεη ηελ ηνπνζεζία απνζήθεπζεο ηνπ παξαγφκελνπ αξρείνπ.

Δικόνα 18. Δμαγσγή Απνηειεζκάησλ ζε Πίλαθα γηα απνζήθεπζε ζε αξρείν excel

Σέινο, σο πξνο ηελ απνζήθεπζε ησλ Απνηειεζκάησλ ζε Υάξηε, αθελφο (φπσο

αλαθέξζεθε θαη λσξίηεξα) θαηά ηελ εθηέιεζε ηνπ ειέγρνπ ην αληίζηνηρν shapefile

πνπ δεκηνπξγείηαη απνζεθεχεηαη ζην θάθειν MyDocuments ηνπ ρξήζηε, αθεηέξνπ

θαη κέζα απφ ην panel Απνηειέζκαηα ζε Υάξηε, επηιέγνληαο κε «δεμί θιηθ» ην

ζεκαηηθφ επίπεδν ηνπ ειέγρνπ δίλεηαη ε δπλαηφηεηα ζην ρξήζηε λα απνζεθεχζεη ην

ελ ιφγσ shapefile ησλ απνηειεζκάησλ ζηελ ηνπνζεζία ηεο πξνηίκεζήο ηνπ, φπσο

θαίλεηαη θαη ζηηο εηθφλεο πνπ αθνινπζνχλ.

Αλάπηπμε Πηινηηθήο Δθαξκνγήο γηα ηε δηελέξγεηα πλδπαζηηθώλ Διέγρσλ

κεηαμύ Πεξηγξαθηθώλ θαη Υσξηθώλ Βάζεσλ Κηεκαηνινγίνπ Μάξηηνο 2012

ύληαμε: Γεσξγαθάθε ηαπξνύια 76 /144

Δικόνα 19. Δμαγσγή Απνηειεζκάησλ ζε Υάξηε θαη Απνζήθεπζε ζε shapefile

4.8. Έλεγσορ και αξιολόγηζη πιλοηικήρ εθαπμογήρ

Σειηθφ ζηάδην ηεο αλάπηπμεο ηεο πηινηηθήο εθαξκνγήο ειέγρσλ απνηέιεζε ε

δηελέξγεηα δνθηκψλ γηα ηνλ έιεγρν θαη ηελ αμηνιφγεζε ηνπ ηειηθνχ πξντφληνο. Οη

εξγαζίεο απηέο απνζθνπνχζαλ ζηελ πηζηνπνίεζε ηεο νξζφηεηαο αιιά θαη ηεο

πνηφηεηαο ιεηηνπξγηψλ πνπ παξείρε ε εθαξκνγή.

4.8.1. Έιεγρνο νξζφηεηαο ιεηηνπξγίαο

ην πιαίζην ηνπ ειέγρνπ νξζφηεηαο ιεηηνπξγίαο ηεο εθαξκνγήο, αληηθείκελν ηνπ

ειέγρνπ απνηέιεζε ην αλ ην παξαγφκελν απνηέιεζκα ήηαλ απηφ γηα ην νπνίν είρε

ζρεδηαζηεί αξρηθά ε εθαξκνγή θαη ην αλ ηειηθά ηθαλνπνηήζεθε ν αξρηθφο ζθνπφο.

Αλάπηπμε Πηινηηθήο Δθαξκνγήο γηα ηε δηελέξγεηα πλδπαζηηθώλ Διέγρσλ

κεηαμύ Πεξηγξαθηθώλ θαη Υσξηθώλ Βάζεσλ Κηεκαηνινγίνπ Μάξηηνο 2012

ύληαμε: Γεσξγαθάθε ηαπξνύια 77 /144

Γηα ηελ επαιήζεπζε/επηβεβαίσζε ηνπ απνηειέζκαηνο (validation) επαλαιήθζεθαλ

φια ηα βήκαηα ηεο πινπνίεζεο θαη δνθηκάζηεθε ε εθαξκνγή κε δηαθνξεηηθά

δεδνκέλα εηζφδνπ, δειαδή κε Βάζεηο Γεδνκέλσλ δηαθνξεηηθψλ ΟΣΑ ππφ

θηεκαηνγξάθεζε, ψζηε λα εληνπηζηνχλ ζπζηεκαηηθά ιάζε πνπ πηζαλά ζα νθείινληαλ

ζηε θχζε ησλ αξρηθψλ - δνθηκαζηηθψλ δεδνκέλσλ, λα δηαπηζησζεί ε νκαιή

κεηάβαζε απφ ην έλα βήκα ηεο δηαδηθαζίαο ζην άιιν θαη λα πηζηνπνηεζεί έηζη ε νξζή

ιεηηνπξγία ηεο , αλεμαξηήησο δεδνκέλσλ.

Δπηπιένλ, εμεηάζζεθαλ δεηγκαηνιεπηηθά θάπνηεο απφ ηηο εληνπηδφκελεο - απφ ηνλ

έιεγρν - κε ζπκκνξθψζεηο κέζα απφ ρεηξνθίλεηεο δηαδηθαζίεο θαη κέζα απφ

δηαθνξεηηθά ινγηζκηθά γηα λα δηαπηζησζεί αθελφο φηη ηα ιάζε πνπ εληνπίδνληαλ απφ

ηελ εθαξκνγή ήηαλ «πξαγκαηηθά ιάζε» θαη αθεηέξνπ φηη ε εκθάληζε ησλ

απνηειεζκάησλ (θπξίσο σο πξνο ηα Απνηειέζκαηα ζε Υάξηε) ήηαλ πιήξεο θαη ρσξίο

θελά θαη ειιείςεηο.

Πξάγκαηη, ην απνηέιεζκα ηνπ ειέγρνπ ήηαλ ζεηηθφ θαη επηβεβαηψζεθε ε πιήξσζε

ηνπ αξρηθνχ ζθνπνχ αλάπηπμεο ηεο πηινηηθήο εθαξκνγήο.

Δπηζεκαίλεηαη φηη θαηά ηελ παξαπάλσ δηαδηθαζία (δνθηκψλ ηεο εθαξκνγήο κε

δηαθνξεηηθά δεδνκέλα εηζφδνπ) εληνπίζηεθαλ θάπνηα πξνβιήκαηα ηα νπνία φκσο

απνηεινχλ αληηθείκελν ηνπ ειέγρνπ πνηφηεηαο ιεηηνπξγίαο θαη ζα ζπδεηεζνχλ ζηελ

παξάγξαθν πνπ αθνινπζεί.

4.8.2. Έιεγρνο πνηφηεηαο ιεηηνπξγίαο

ηφρνο ηνπ ειέγρνπ πνηφηεηαο ηεο εθαξκνγήο ήηαλ λα επηβεβαησζεί ε νκαιή

ιεηηνπξγία απηήο θαη λα δηνξζσζνχλ / αληηκεησπηζζνχλ πηζαλά εληνπηδφκελα

πξνβιήκαηα.

Όπσο αλαθέξζεθε θαη ζηελ πξνεγνχκελε παξάγξαθν, έλα «κέζν» ειέγρνπ ήηαλ ε

δνθηκή ηεο εθαξκνγήο κε δηαθνξεηηθά δεδνκέλα απφ απηά πνπ ρξεζηκνπνηήζεθαλ

αξρηθά (πάλσ ζηα νπνία «ρηίζηεθε»).

Απφ απηφ ηνλ έιεγρν εληνπίζηεθαλ δχν «δπζιεηηνπξγίεο» πνπ νθείινληαλ ζηελ

ηαπηόηεηα ησλ δεδνκέλσλ:

Ζ πξψηε πεξίπησζε πξνέθπςε απφ ην γεγνλφο φηη ε ρσξηθή βάζε ηνπ θάζε ΟΣΑ δελ

απαξηίδεηαη πάληα απφ ηνλ ίδην αξηζκφ shapefiles. Πην ζπγθεθξηκέλα, θαη φπσο

Αλάπηπμε Πηινηηθήο Δθαξκνγήο γηα ηε δηελέξγεηα πλδπαζηηθώλ Διέγρσλ

κεηαμύ Πεξηγξαθηθώλ θαη Υσξηθώλ Βάζεσλ Κηεκαηνινγίνπ Μάξηηνο 2012

ύληαμε: Γεσξγαθάθε ηαπξνύια 78 /144

πξνθχπηεη θαη απφ ηελ πεξηγξαθή ησλ δεδνκέλσλ εηζφδνπ (βιέπε § 2.2.1 Υσξηθά

ηνηρεία Κηεκαηνινγίνπ), ελδέρεηαη θάπνηνο ΟΣΑ λα κελ έρεη ρέδην Πφιεο

(CBOUND.shp) ή λα κελ έρεη νξηνζεηεκέλνπο νηθηζκνχο (OIK.shp), θ.ν.θ., κε

απνηέιεζκα ηα αληίζηνηρα shapefiles λα κελ πεξηιακβάλνληαη ζηα παξαδνηέα αξρεία.

Καη’ επέθηαζε, φηαλ θάπνηα απφ ηα παξαπάλσ shapefiles ζπκκεηείραλ ζηνπο

ειέγρνπο ηεο εθαξκνγήο αιιά δελ εληνπίδνληαλ ζηα πεξηερφκελα ηεο ππφ έιεγρν ΒΓ

πνπ είρε απνζεθεπηεί ζηελ PostgreSQL/PostGIS, νη αληίζηνηρνη έιεγρνη έβγαδαλ

κήλπκα ιάζνπο θαη δελ νινθιεξσλφηαλ ε αληίζηνηρε ιεηηνπξγία ειέγρνπ (γηα

παξάδεηγκα ε επηινγή ηαηηζηηθά Διέγρσλ).

Σν πξφβιεκα αληηκεησπίζηεθε κε ηελ ηξνπνπνίεζε ηνπ θψδηθα ψζηε λα εκθαλίδεηαη

κήλπκα ζρεηηθά κε ηελ απνπζία δεδνκέλσλ γηα ηελ εθηέιεζε ηνπ ζπγθεθξηκέλνπ

ειέγρνπ, θαη λα ζπλερίδεηαη ε ιεηηνπξγία γηα ηνπο επφκελνπο ειέγρνπο.

Ζ δεχηεξε πεξίπησζε πξνέθπςε απφ ην γεγνλφο φηη φηαλ δνθηκάζηεθε ε εθαξκνγή κε

«κεγαιχηεξε» ΒΓ απφ ηελ αξρηθή (πεξηζζφηεξα αθίλεηα) θάπνηνη έιεγρνη, πνπ

αμηνπνηνχζαλ ζπλαξηήζεηο γηα ηελ επεμεξγαζία γεσρσξηθψλ νληνηήησλ, απαηηνχζαλ

πεξηζζφηεξν ρξφλν γηα ηελ εθηέιεζή ηνπο, κε απνηέιεζκα λα κελ επαξθεί - γηα ηελ

νινθιήξσζή ηνπο - ν default ρξφλνο πνπ έκελε ε ζχλδεζε αλνηρηή, θαη λα

απνηπγράλνπλ.

Σν πξφβιεκα αληηκεησπίζηεθε κε πξνζζήθε παξακέηξνπ CommandTimeout ζην

connection string ηεο ζχλδεζεο θαη αχμεζε ηνπ αληίζηνηρνπ ρξόλνπ ζύλδεζεο γηα

εθηέιεζε εληνιήο.

Με αλάινγν ηξφπν αληηκεησπίζηεθαλ θαη δηάθνξα άιια - κηθξφηεξεο ζεκαζίαο -

ιεηηνπξγηθά πξνβιήκαηα πνπ εληνπίζηεθαλ ζην πιαίζην ηνπ παξφληνο ειέγρνπ.

ην ζεκείν απηφ, αμίδεη λα αλαθεξζεί φηη θαηά ηε θάζε ησλ δνθηκψλ γηα ηελ

αμηνιφγεζε ηεο εθαξκνγήο, θαη ρσξίο λα απνηειεί αληηθείκελν ηεο παξνχζαο

εξγαζίαο, έγηλε κηα πξνζπάζεηα εθηέιεζεο ηεο εθαξκνγήο απφ κεραλή ζηελ νπνία

δελ ππήξρε εγθαηεζηεκέλε PostgreSQL - κέζσ δηθηχνπ θαη απνκαθξπζκέλεο

ζχλδεζεο κε ην δηαθνκηζηή - γηα λα δνθηκαζηεί ε ιεηηνπξγηθφηεηά ηεο ζε πεξίπησζε

πνπ ν server δε ζα ήηαλ ν localhost.

Απηφ πνπ δηαπηζηψζεθε ήηαλ φηη, εθηφο απφ ηηο ξπζκίζεηο ζηα firewalls ησλ client θαη

server κεραλψλ, έπξεπε - γηα ηελ εθηέιεζε ηεο εθαξκνγήο - λα ππάξρεη ζηνλ client

Αλάπηπμε Πηινηηθήο Δθαξκνγήο γηα ηε δηελέξγεηα πλδπαζηηθώλ Διέγρσλ

κεηαμύ Πεξηγξαθηθώλ θαη Υσξηθώλ Βάζεσλ Κηεκαηνινγίνπ Μάξηηνο 2012

ύληαμε: Γεσξγαθάθε ηαπξνύια 79 /144

εγθαηεζηεκέλε ε εθαξκνγή pgsql2shp (γηα ηε κεηαηξνπή ησλ ρσξηθψλ πηλάθσλ ηεο

PostGIS ζε shapefiles), ε νπνία δελ είλαη αλεμάξηεηε απφ ηελ PostgreSQL θαη θαηά

ηελ εθηέιεζή ηεο ρξεζηκνπνηεί κηα ζεηξά αξρείσλ απηήο, κε απνηέιεζκα λα απαηηεί

αξθεηή επηπιένλ δηεξεχλεζε σο πξνο ηηο ζπλζήθεο θάησ απφ ηηο νπνίεο ζα ήηαλ

εθηθηφ ην παξαπάλσ εγρείξεκα.

Αλάπηπμε Πηινηηθήο Δθαξκνγήο γηα ηε δηελέξγεηα πλδπαζηηθώλ Διέγρσλ

κεηαμύ Πεξηγξαθηθώλ θαη Υσξηθώλ Βάζεσλ Κηεκαηνινγίνπ Μάξηηνο 2012

ύληαμε: Γεσξγαθάθε ηαπξνύια 80 /144

5. Η εθαπμογή

ηηο επφκελεο παξαγξάθνπο αθνινπζεί παξνπζίαζε ησλ ιεηηνπξγηψλ ηεο εθαξκνγήο

κέζα απφ έλα ζχληνκν νδεγφ ρξήζεο απηήο, ζπλνδεπφκελε απφ ρξήζηκα ζρφιηα /

επηζεκάλζεηο ζε φζα ζεκεία θξίζεθε απαξαίηεην.

5.1.1. Γεληθά

Σα δεδνκέλα εηζφδνπ γηα ηα νπνία έρεη ζρεδηαζηεί ε παξνχζα πηινηηθή εθαξκνγή

πξνέξρνληαη απφ ηηο ηξέρνπζεο κειέηεο Κηεκαηνινγίνπ θαη αθνξνχλ ζε δηάθνξνπο

ππφ Κηεκαηνγξάθεζε ΟΣΑ αλά ηελ Διιάδα.

Πην ζπγθεθξηκέλα, δεδνκέλα εηζφδνπ απνηεινχλ ηα ρσξηθά θαη πεξηγξαθηθά ζηνηρεία

πνπ πεξηιακβάλνληαη ζηηο Φεθηαθέο Κηεκαηνινγηθέο Βάζεηο Γεδνκέλσλ Αλάξηεζεο

(ΦΚΒΓΑ), ζπληίζεληαη απφ αξρεία κνξθήο shapefiles (ESRI) θαη mdbs (ACCESS)

αληίζηνηρα θαη έρνπλ δεκηνπξγεζεί ζχκθσλα κε ηηο Σερληθέο Πξνδηαγξαθέο ηνπ

αληίζηνηρνπ έξγνπ (ΦΔΚ η.Β΄, 710 / 29-04-2011).

5.1.2. Απαηηήζεηο ινγηζκηθνχ γηα ηελ εθηέιεζε ηεο εθαξκνγήο

Γηα ηελ εθηέιεζε ηεο πηινηηθήο εθαξκνγήο πξναπαηηείηαη ε εγθαηάζηαζε ηνπ

Microsoft .NET Framework 4, PostgreSQL (v.9.1) θαη PostGIS (v.1.5).

Δπηπιένλ, ζα πξέπεη λα ππάξρνπλ ζην θάθειν ηεο αθφινπζεο δηαδξνκήο C:\\Program

Files\\PostgreSQL\\9.1\\bin, ηα εθηειέζηκα αξρεία psql.exe, shp2pgsql, pgsql2shp.

5.1.3. Πξνεξγαζίεο - Δηζαγσγή δεδνκέλσλ ζηελ PostgreSQL/PostGIS

Γηα ηελ νκαιή θαη νξζή ιεηηνπξγία ηεο εθαξκνγήο ζα πξέπεη λα πξνεγεζνχλ νη

αθφινπζεο πξνπαξαζθεπαζηηθέο εξγαζίεο.

Γημιοςπγία βοηθηηικών απσείυν .txt

Αξρηθά ζα πξέπεη λα δεκηνπξγεζνχλ ηα αθφινπζα αξρεία .txt ηα νπνία ζα

απνζεθεπηνχλ ζην θάθειν c:\Temp ηεο κεραλήο ζηελ νπνία πξφθεηηαη λα εθηειεζηεί

ε εθαξκνγή. Σα πεξηερφκελα ησλ αξρείσλ πεξηιακβάλνληαη ζην Παξάξηεκα ΗΗ ηεο

παξνχζαο (ζηηο νκψλπκεο παξαγξάθνπο απηνχ).

Αλάπηπμε Πηινηηθήο Δθαξκνγήο γηα ηε δηελέξγεηα πλδπαζηηθώλ Διέγρσλ

κεηαμύ Πεξηγξαθηθώλ θαη Υσξηθώλ Βάζεσλ Κηεκαηνινγίνπ Μάξηηνο 2012

ύληαμε: Γεσξγαθάθε ηαπξνύια 81 /144

1. CreateDB+Schemas.txt → ηα πεξηερφκελα ηνπ αξρείνπ ζα πξέπεη λα

ηξνπνπνηεζνχλ σο πξνο ην φλνκα ηεο πξνο δεκηνπξγία βάζεο (γξακκέο 7, 10)

θαη σο πξνο ην φλνκα ρξήζηε (γξακκέο 18,19,20)

2. CreateAll.spatial.Tables.txt → ηα πεξηερφκελα ηνπ αξρείνπ ζα πξέπεη λα

ηξνπνπνηεζνχλ σο πξνο ην φλνκα ηεο πξνο δεκηνπξγία βάζεο θαη σο πξνο ην

φλνκα ρξήζηε (ζηνηρεία κε bold)

3. CreateAllViews.txt

4. CreateAllTables.txt

Γημιοςπγία Βάζηρ Γεδομένυν ζηην PostgreSQL/PostGIS

Μέζα απφ πεξηβάιινλ γξακκήο εληνιψλ (Command Prompt), θαη αθνχ έρεη

πξνεγεζεί πινήγεζε ζην θάθειν πνπ πεξηιακβάλεη ην εθηειέζηκν psql.exe (θάθεινο

bin ηεο PostgreSQL → cd C:\Program Files (x86)\PostgreSQL\9.1\bin), εθηειείηαη ε

αθφινπζε εληνιή:

psql -h host -p 5432 -U username -d postgres -f C:\Temp\CreateDB+Schemas.txt

φπνπ: -h → host, -p → port, -U → username, -d → dbname, -f → filename

Σσόλια/Παπαηηπήζειρ:

1. Σν πξώην ςεθίν ηνπ νλόκαηνο ηεο ΒΓ δελ πξέπεη λα είλαη αξηζκόο.

2. Ο ρξήζηεο ζα πξέπεη λα έρεη ξόιν superuser. Δλαιιαθηηθά, ζα πξέπεη λα έρεη

ηνπιάρηζηνλ πξνλόκην «create database».

3. Σν όλνκα ρξήζηε ζα πξέπεη λα είλαη ην ίδην κε απηό πνπ αλαγξάθεηαη εληόο ηνπ ζρεηηθνύ

αξρείνπ txt.

4. Η παξάκεηξνο -d δελ πξέπεη λα αιιάμεη εδώ (παξακέλεη «postgres»)

5. ε πεξίπησζε πνπ ε ζπγθεθξηκέλε ΒΓ δε δεκηνπξγείηαη γηα πξώηε θνξά ζα πξέπεη λα

πξνεγεζεί ε εληνιή:

psql -h localhost -p port -U username -d postgres -f C:\Temp\DropDB.txt

κε πεξηερόκελν ηνπ αξρείνπ «DropDB.txt»: DROP DATABASE IF EXISTS "dbname";

Διζαγυγή πεπιγπαθικών δεδομένυν κηημαηογπάθηζηρ

ε απηφ ην ζεκείν ζα πξέπεη λα γίλεη ε εηζαγσγή ησλ ζηνηρείσλ ηεο πεξηγξαθηθήο

βάζεο δεδνκέλσλ (NNOOO.mdb) θαη ηνπ πίλαθα ηεο βάζεο VSTEAS_REL.mdb ησλ

ρσξηθψλ δεδνκέλσλ. Γηα ηε κεηαθφξησζε ησλ δεδνκέλσλ απφ MSAccess ζε

PostgreSQL δηαηίζεληαη πνιιά θαη πνθίια ειεχζεξα θαη εκπνξηθά ινγηζκηθά πνπ

Αλάπηπμε Πηινηηθήο Δθαξκνγήο γηα ηε δηελέξγεηα πλδπαζηηθώλ Διέγρσλ

κεηαμύ Πεξηγξαθηθώλ θαη Υσξηθώλ Βάζεσλ Κηεκαηνινγίνπ Μάξηηνο 2012

ύληαμε: Γεσξγαθάθε ηαπξνύια 82 /144

κπνξνχλ λα αλαθηεζνχλ απφ ην δηαδίθηπν (ελδεηθηηθά:

http://wiki.postgresql.org/wiki/Converting_from_other_Databases_to_PostgreSQL#Microsoft_Access)

ην πιαίζην ηνπ παξφληνο νδεγνχ, πξνηείλεηαη ε ρξήζε ηνπ Access Module ηνπ

Παξαξηήκαηνο ΗΗ ηεο παξνχζαο, ην νπνίν ζα πξέπεη λα ρξεζηκνπνηεζεί δχν θνξέο

(κηα γηα θάζε αξρείν .mdb) θαη λα ηξνπνηεζεί ην φλνκα ηνπ παξαγφκελνπ αξρείνπ

(γξακκή: 4 - ζηνηρεία κε bold) σο εμήο:

- ζηελ πεξίπησζε ηεο NNOOO.mdb: NNOOO_add.txt

- ζηελ πεξίπησζε ηεο VSTEAS_REL.mdb: NNOOO_VSTEASREL_add.txt

ηε ζπλέρεηα εθηεινχληαη δηαδνρηθά νη αθφινπζεο δχν εληνιέο ζε command prompt:

(cd C:\Program Files (x86)\PostgreSQL\9.1\bin)

psql -h host -p 5432 -U username -d dbname -f C:\Temp\NNOOO_add.txt

psql -h host -p 5432 -U username -d dbname -f C:\Temp\NNOOO_VSTEASREL_add.txt

Διζαγυγή συπικών δεδομένυν κηημαηογπάθηζηρ

Αθνινπζεί ε εηζαγσγή ησλ shapefiles ηεο ρσξηθήο ΒΓ ζην ζχζηεκα

PostgreSQL/PostGIS. Πξηλ ηελ εθηέιεζε ηεο αληίζηνηρεο εληνιήο ζα πξέπεη λα

αληηγξαθεί ν θάθεινο SHAPE ησλ ρσξηθψλ δεδνκέλσλ ζην θάθειν c:\Temp.

ηε ζπλέρεηα εθηεινχληαη δηαδνρηθά νη εληνιέο ηνπ αξρείνπ

CreateAll.spatial.Tables.txt.

Σσόλια/Παπαηηπήζειρ:

1. Γηα ηελ απνθπγή επαλάιεςεο ηεο εληνιήο 18 θνξέο (όζα είλαη θαη ηα παξαδνηέα

shapefiles) ππάξρεη ε δπλαηόηεηα ζπλνιηθήο εθηέιεζεο ηεο (κε ηαπηόρξνλε αληηγξαθή

όισλ ησλ γξακκώλ ηνπ αληίζηνηρνπ .txt αξρείνπ ζηε γξακκή εληνιώλ) εθόζνλ έρεη

δεκηνπξγεζεί αξρείν κε όλνκα «pgpass.conf» (ζε notepad) θαη πεξηερόκελν ηε γξακκή

«host:port:dbname:username:password» ζην θάθειν ../user/appdata/postgres.

Γημιοςπγία Views και Tables ελέγσυν

Σέινο, εθηεινχληαη δηαδνρηθά νη αθφινπζεο δχν εληνιέο:

psql -h host -p 5432 -U username -d dbname -f C:\Temp\CreateAllViews.txt

psql -h host -p 5432 -U username -d dbname -f C:\Temp\CreateAllTables.txt

Αλάπηπμε Πηινηηθήο Δθαξκνγήο γηα ηε δηελέξγεηα πλδπαζηηθώλ Διέγρσλ

κεηαμύ Πεξηγξαθηθώλ θαη Υσξηθώλ Βάζεσλ Κηεκαηνινγίνπ Μάξηηνο 2012

ύληαμε: Γεσξγαθάθε ηαπξνύια 83 /144

5.1.4. Λεηηνπξγηθφηεηα Δθαξκνγήο

Καηά ηελ εθθίλεζε ηεο εθαξκνγήο αλνίγνπλ ζηελ νζφλε δχν παξάζπξα φπσο

θαίλεηαη ζηελ Δηθόλα 20 πνπ αθνινπζεί:

Δικόνα 20. Γξαθηθό Πεξηβάιινλ Υξήζηε (GUI) θαηά ηελ εθθίλεζε ηεο εθαξκνγήο

ηε ζπλέρεηα θαη κεηά ηελ θαηαρψξηζε ησλ απαηηνχκελσλ ζηνηρείσλ ζχλδεζεο

(Γηαθνκηζηήο, Θχξα, Υξήζηεο, Κσδηθφο), αλνίγεη δεχηεξν παξάζπξν απφ ην νπνίν

δίλεηαη ε δπλαηφηεηα επηινγήο ηεο ΒΓ πξνο έιεγρν.

Δικόνα 21. Δπηινγή Βάζεο Γεδνκέλσλ πξνο Έιεγρν

Αλάπηπμε Πηινηηθήο Δθαξκνγήο γηα ηε δηελέξγεηα πλδπαζηηθώλ Διέγρσλ

κεηαμύ Πεξηγξαθηθώλ θαη Υσξηθώλ Βάζεσλ Κηεκαηνινγίνπ Μάξηηνο 2012

ύληαμε: Γεσξγαθάθε ηαπξνύια 84 /144

Παξάιιεια εκθαλίδεηαη ε ιίζηα ησλ ειέγρσλ πξνο εθηέιεζε κε ηελ πιεξνθνξία

ζρεηηθά κε ηνπο θσδηθνχο θαη ηηο πεξηγξαθέο ηνπο.

ε πεξίπησζε αλάγθεο αιιαγήο ησλ ζηνηρείσλ ζχλδεζεο κε ην δηαθνκηζηή ή

ζχλδεζεο κε δηαθνξεηηθή ΒΓ, κέζα απφ ηηο επηινγέο Αξρείν → Αιιαγή Βάζεο

Γεδνκέλσλ θαη Αξρείν → Αιιαγή ηνηρείσλ ύλδεζεο, επαλέξρνληαη ζηελ νζφλε νη

αληίζηνηρεο θφξκεο γηα ηελ αιιαγή/ηξνπνπνίεζε ησλ ζηνηρείσλ.

Δικόνα 22. Αιιαγή ηνηρείσλ ύλδεζεο ή Αιιαγή Βάζεο Γεδνκέλσλ

Δπηζεκαίλεηαη φηη ζην θάησ κέξνο ηεο νζφλεο αλαγξάθνληαη ηα ζηνηρεία δηαθνκηζηή

θαη ζπλδεδεκέλεο βάζεο ψζηε λα είλαη δηαζέζηκεο νη πιεξνθνξίεο ζην ρξήζηε αλά

πάζα ζηηγκή.

Δθφζνλ έρεη πξαγκαηνπνηεζεί επηηπρψο ε ζχλδεζε κε ην δηαθνκηζηή θαη ηελ

επηιεγκέλε βάζε δεδνκέλσλ κπνξεί λα μεθηλήζεη ε δηαδηθαζία ειέγρνπ κε ηηο

αθφινπζεο ιεηηνπξγίεο.

Με ηελ επηινγή ηαηηζηηθά Διέγρσλ, «ηξέρνπλ» δηαδνρηθά φινη νη έιεγρνη θαη

εκθαλίδεηηαη ζηε ζηήιε Απνηειέζκαηα ηνπ πίλαθα Λίζηα Διέγρσλ ην πιήζνο ησλ κε

ζπκκνξθνχκελσλ εγγξαθψλ αλά έιεγρν (βιέπε Δηθόλα 23).

Με ηελ επηινγή ζπγθεθξηκέλνπ ειέγρνπ απφ ηε Λίζηα Διέγσλ θαη θάλνληαο «δηπιφ-

θιηθ» ζηελ αληίζηνηρε γξακκή, εκθαλίδνληαη ηα απνηειέζκαηα ηνπ ζε κνξθή Πίλαθα

Αλάπηπμε Πηινηηθήο Δθαξκνγήο γηα ηε δηελέξγεηα πλδπαζηηθώλ Διέγρσλ

κεηαμύ Πεξηγξαθηθώλ θαη Υσξηθώλ Βάζεσλ Κηεκαηνινγίνπ Μάξηηνο 2012

ύληαμε: Γεσξγαθάθε ηαπξνύια 85 /144

θαη ζε κνξθή Υάξηε ζηα νκψλπκα panels (Απνηειέζκαηα ζε Πίλαθα, Απνηειέζκαηα ζε

Υάξηε), φπσο θαίλεηαη θαη ζηελ Δηθόλα 24.

Δικόνα 23. Δπηινγή ηαηηζηηθά Διέγρσλ

Δικόνα 24.Απνηειέζκαηα Διέγρνπ ζε Πίλαθα θαη ζε Υάξηε

Μέζα απφ ηελ επηινγή AddData ( ) ηνπ panel Απνηειέζκαηα Διέγρνπ ζε Υάξηε,

κπνξεί λα γίλεη πξνζζήθε επηπιένλ shapefiles απφ ην δίζθν ψζηε λα αμηνινγεζνχλ ηα

απνηειέζκαηα ηνπ ειέγρνπ ζε ζχγθξηζε θαη κε άιιεο νληφηεηεο ηεο ρσξηθήο βάζεο.

Αλάπηπμε Πηινηηθήο Δθαξκνγήο γηα ηε δηελέξγεηα πλδπαζηηθώλ Διέγρσλ

κεηαμύ Πεξηγξαθηθώλ θαη Υσξηθώλ Βάζεσλ Κηεκαηνινγίνπ Μάξηηνο 2012

ύληαμε: Γεσξγαθάθε ηαπξνύια 86 /144

Δπίζεο, αμηνπνηψληαο ηελ επηινγή Δηηθέηεο (Δκθάληζε / Απφθξπςε) δίλεηαη ε

δπλαηφηεηα Δκθάληζεο θαη Απφθξπςεο ησλ θσδηθψλ ησλ κε ζπκκνξθνχκελσλ

νληνηήησλ, φπσο θαίλεηαη ζηελ Δηθόλα 25 πνπ αθνινπζεί.

Δικόνα 25.Δκθάληζε /Απόθξπςε θσδηθώλ κε ζπκκνξθνύκελσλ νληνηήησλ

Δπηπιένλ, κέζα απφ ηηο επηινγέο Πξνβνιή → Λίζηα Διέγρσλ, Πξνβνιή →

Απνηειέζκαηα ζε Πίλαθα θαη Πξνβνιή → Απνηειέζκαηα ζε Υάξηε,

παξέρεηαη ε δπλαηφηεηα επηιεθηηθήο εκθάληζεο ησλ ηξηψλ panel αλάινγα κε ηηο

αλάγθεο επεμεξγαζίαο.

Γηα παξάδεηγκα, γηα δηαρείξηζε ησλ απνηειεζκάησλ ζε κεγαιχηεξν ράξηε, κπνξεί λα

επηιερζεί ε πξνβνιή κφλν ηνπ panel Απνηειέζκαηα ζε Υάξηε.

ηελ Δηθόλα 26 πνπ αθνινπζεί εκθαλίδεηαη ζρεηηθφ παξάδεηγκα γηα ηνλ έιεγρν:

20_PST.KAEK_ENTOS_SXEDIOU → Πνιύγσλα (ΚΑΔΚ) ηνπ PST πνπ βξίζθνληαη εληόο

πνιπγώλσλ ζρεδίνπ πόιεσο (CBOUND) θαη έρνπλ δηεύζπλζε (STREETNAME):

«ΑΝΩΝΤΜΟ»

Αλάπηπμε Πηινηηθήο Δθαξκνγήο γηα ηε δηελέξγεηα πλδπαζηηθώλ Διέγρσλ

κεηαμύ Πεξηγξαθηθώλ θαη Υσξηθώλ Βάζεσλ Κηεκαηνινγίνπ Μάξηηνο 2012

ύληαμε: Γεσξγαθάθε ηαπξνύια 87 /144

Δικόνα 26. Πξνβνιή απνηειεζκάησλ κόλν ζε Υάξηε

Δπηζεκαίλεηαη όηη ζην ζπγθεθξηκέλν panel (Απνηειέζκαηα Διέγρνπ ζε Υάξηε) κε ηηο

επηινγέο ηεο εξγαιεηνζήθεο κπνξνύλ λα εθηειεζηνύλ ιεηηνπξγίεο όπσο ZoomIn,

ZoomOut, ZoomExtents, Pan, AddData, Info, θ.α., ελώ κε «δεμί-θιηθ» ζην όλνκα ηνπ

ζεκαηηθνύ επηπέδνπ κπνξεί λα επηιεγεί ε εκθάληζε ηνπ πίλαθα πεξηγξαθηθώλ

ραξαθηεξηζηηθώλ ηνπ (Attribute Table) θαζώο θαη λα απνζεθεπηεί ην αληίζηνηρν

shapefile ζε επηιεγκέλε ζέζε (θάθειν) από ην ρξήζηε (δεμί-θιηθ ζην όλνκα ηνπ

ζεκαηηθνύ επηπέδνπ > Data > Export Data).

Αληίζηνηρα ζε πεξίπησζε ειέγρνπ πνπ παξάγεη κφλν Απνηειέζκαηα ζε Πίλαθα (κφλν

πεξηγξαθηθά ζηνηρεία) θαη ε νπηηθνπνίεζε ησλ απνηειεζκάησλ ζε ράξηε δελ παξέρεη

θάπνηα ρξεζηκφηεηα, κπνξεί λα επηιεγεί απφ ην ρξήζηε ε εκθάληζε ηεο Δηθόλα 27,

φπνπ εκθαλίδνληαη ηα απνηειέζκαηα ηνπ ειέγρνπ (ζηαηηζηηθνχ):

7_SYNDESI_KAEK_DOC_TYPE-ORI_TYPE → Λίζηα ζύλδεζεο ORI_TYPE κε DOC_TYPE,

RIGHT_TYPE, WAYOWN_ID πεξηγξαθηθήο βάζεο.

Αλάπηπμε Πηινηηθήο Δθαξκνγήο γηα ηε δηελέξγεηα πλδπαζηηθώλ Διέγρσλ

κεηαμύ Πεξηγξαθηθώλ θαη Υσξηθώλ Βάζεσλ Κηεκαηνινγίνπ Μάξηηνο 2012

ύληαμε: Γεσξγαθάθε ηαπξνύια 88 /144

Δικόνα 27. Πξνβνιή κόλν Λίζηα Διέγρσλ θαη Απνηειέζκαη ζε Πίλαθα

Με ηελ επηινγή Απνηειέζκαηα Μόλν ζε Υάξηε δίλεηαη ε δπλαηφηεηα άκεζεο

εκθάληζεο κφλν ησλ απνηειεζκάησλ ζε ράξηε θάηη πνπ εμππεξεηεί ζηελ πεξίπησζε

πνπ ε πεξηγξαθηθή πιεξνθνξία δελ απαηηείηαη δηφηη επηηαρχλεη ηε δηαδηθαζία

νπηηθνπνίεζεο ησλ απνηειεζκάησλ.

εκεηψλεηαη φηη ηφζν θαηά ηελ επηινγή Απνηειέζκαηα Μόλν ζε Υάξηε φζν θαη θαηά

ηελ εθηέιεζε κεκνλσκέλσλ ειέγρσλ (δηπιό θιηθ ζηε γξακκή ηνπ ειέγρνπ)

απνζεθεχεηαη ζην θάθειν MyDocuments ηνπ ρξήζηε ην αληίζηνηρν shapefile κε ηα

απνηειέζκαηα ηνπ ειέγρνπ.

Σέινο, κε ηελ επηινγή Απνζήθεπζε Απνηειεζκάησλ ζε Πίλαθα παξέρεηαη ε

δπλαηφηεηα εμαγσγήο θαη απνζήθεπζεο ησλ απνηειεζκάησλ (ησλ πεξηγξαθηθψλ

ζηνηρείσλ απηψλ) ζε αξρείν excel.

Αλάπηπμε Πηινηηθήο Δθαξκνγήο γηα ηε δηελέξγεηα πλδπαζηηθώλ Διέγρσλ

κεηαμύ Πεξηγξαθηθώλ θαη Υσξηθώλ Βάζεσλ Κηεκαηνινγίνπ Μάξηηνο 2012

ύληαμε: Γεσξγαθάθε ηαπξνύια 89 /144

6. ςμπεπάζμαηα - Πποηάζειρ για μελλονηικέρ επεκηάζειρ

Ζ πηινηηθή εθαξκνγή πνπ αλαπηχρζεθε απνηειεί έλα απινπνηεκέλν ινγηζκηθφ πνπ

πινπνηήζεθε κε ρξήζε βαζηθψλ γλψζεσλ πξνγξακκαηηζκνχ. Χζηφζν παξέρεη ηηο

θχξηεο ιεηηνπξγίεο γηα ηελ επίηεπμε ησλ ζηφρσλ ηεο θαη είλαη αμηφπηζηε γηα απιή

ρξήζε ζην πιαίζην ησλ αλαγθψλ πνπ πεξηγξάθεθαλ ζηα πξνεγνχκελα θεθάιαηα.

Παξάιιεια, απνηειεί κηα πξφηαζε/παξάδεηγκα αμηνπνίεζεο ησλ δπλαηνηήησλ πνπ

παξέρεη ε ηερλνινγία σο πξνο ηελ δηαρείξηζε δεδνκέλσλ ζπζηεκάησλ γεσγξαθηθψλ

πιεξνθνξηψλ, φπσο ην Δζληθφ Κηεκαηνιφγην.

Ζ ηδηαηηεξφηεηα ηεο πξνηεηλφκελεο ιχζεο είλαη ε ζπλχπαξμε γεσγξαθηθψλ

δεδνκέλσλ θαη πεξηγξαθηθψλ ζηνηρείσλ ζε έλα θνηλφ ΓΒΓ (PostgreSQL/PostGIS)

επηηξέπνληαο έηζη ηελ άκεζε ζπζρέηηζε θαη αιιειεπίδξαζε κεηαμχ ηνπο θαη θαη’

επέθηαζε ηελ εληαία δηαρείξηζε θαη αλάιπζε ησλ δεδνκέλσλ.

Με ηελ πξνθχξεμε ησλ λέσλ κειεηψλ Κηεκαηνγξάθεζεο Β’ Φάζεο θαη ην ζαθή

πξνζδηνξηζκφ ησλ απαηηήζεσλ πιεξφηεηαο, νξζφηεηαο θαη πνηφηεηαο ησλ ππφ έληαμε

ζηνηρείσλ (κέζα απφ ηηο Σερληθέο Πξνδηαγξαθέο ηνπ Έξγνπ), ε ζπγθεθξηκέλε

εθαξκνγή απνηειεί έλα ρξήζηκν εξγαιείν ηφζν γηα ηνλ έιεγρν απφ πιεπξάο

Κηεκαηνινγίνπ ησλ κειεηψλ θηεκαηνγξάθεζεο πνπ βξίζθνληαη ζε εμέιημε, φζν θαη

γηα ηνλ πξνέιεγρν ησλ ίδησλ κειεηψλ απφ πιεπξάο Αλαδφρσλ ησλ Έξγσλ πξηλ απφ

ηελ ππνβνιή ηνπο πξνο έγθξηζε.

Δπηπιένλ, ην πεξηβάιινλ (interface) ηεο εθαξκνγήο είλαη δνκεκέλν κε ηέηνην ηξφπν,

ψζηε λα ζπλδπάδεη νπηηθνπνίεζε ρσξηθήο θαη πεξηγξαθηθήο πιεξνθνξίαο θαηά ηελ

εθηέιεζε ησλ ιεηηνπξγηψλ ειέγρνπ πξνζθέξνληαο έηζη ακεζφηεηα θαη πιεξφηεηα ηεο

ζπλνιηθήο εηθφλαο γηα θάζε ειεγρφκελν ΟΣΑ.

Σέινο, ε εμαγσγή ησλ απνηειεζκάησλ - ζε αξρεία excel θαη shapefiles - δίλεη ζηελ

εθαξκνγή ην πιενλέθηεκα ηεο δηαιεηηνπξγηθφηεηαο εθφζνλ ν ρξήζηεο κπνξεί λα

αμηνπνηήζεη ηα εμαγφκελα θαη κέζα απφ άιιεο εθαξκνγέο θαη ινγηζκηθά.

Ζ παξνχζα εθαξκνγή επηδέρεηαη βειηηζηνπνηήζεηο, θάπνηεο απφ ηηο νπνίεο έρνπλ ήδε

εληνπηζηεί, φπσο γηα παξάδεηγκα ε ηξνπνπνίεζε ηνπ θψδηθα έηζη ψζηε ε εθαξκνγή

Αλάπηπμε Πηινηηθήο Δθαξκνγήο γηα ηε δηελέξγεηα πλδπαζηηθώλ Διέγρσλ

κεηαμύ Πεξηγξαθηθώλ θαη Υσξηθώλ Βάζεσλ Κηεκαηνινγίνπ Μάξηηνο 2012

ύληαμε: Γεσξγαθάθε ηαπξνύια 90 /144

λα κελ είλαη «version sensitive», λα κελ απαηηείηαη δειαδή ε ζπγθεθξηκέλε έθδνζε

ηεο PostgreSQL γηα ηελ εθηέιεζή ηεο.

Θα κπνξνχζε επίζεο λα επεθηαζεί σο πξνο ηελ αλεμαξηεζία ηεο απφ ηελ χπαξμε

εγθαηάζηαζεο PostgreSQL / PostGIS ζηε κεραλή ηνπ ρξήζηε, ζπλνδεπφκελε απφ

θαηάιιειν SetUp ην νπνίν λα εγθαζηζηά φια ηα απαξαίηεηα αξρεία γηα ηελ νκαιή

ιεηηνπξγία ηεο.

Δπηπιένλ, ζα κπνξνχζε λα δερζεί πεξαηηέξσ αλάπηπμε ψζηε λα απνθηήζεη

κεγαιχηεξε απηνλνκία. Πην ζπγθεθξηκέλα, φιεο νη εξγαζίεο πνπ απαηηνχληαη γηα ηελ

πξνεηνηκαζία ηνπ ΓΒΓ θαη ηε κνξθνπνίεζε θαη εηζαγσγή ησλ πξσηνγελψλ

δεδνκέλσλ ζε απηφ, λα γίλνληαη κε απηφκαηεο δηαδηθαζίεο, νη νπνίεο λα ειέγρνληαη

απφ ην ρξήζηε κέζα απφ ην πεξηβάιινλ ηεο εθαξκνγήο. Χο επέθηαζε απηνχ ζα

κπνξνχζε ζηε ζπλέρεηα λα εμειηρζεί έηζη ψζηε λα κπνξεί ν ρξήζηεο λα κεηαθνξηψλεη

ηαπηφρξνλα ηα δεδνκέλα γηα πεξηζζφηεξνπο απφ έλαλ ΟΣΑ (πεξηζζφηεξεο απφ κηα

θηεκαηνινγηθέο βάζεηο δεδνκέλσλ), ψζηε λα παξέρεηαη ε δπλαηφηεηα ειέγρνπ αλά

ζχκβαζε Κηεκαηνγξάθεζεο θαη φρη κφλν κεκνλσκέλσλ ΟΣΑ απηήο.

Μηα άιιε κειινληηθή δηάζηαζε ζα κπνξνχζε λα είλαη ε δπλαηφηεηα ηνπ ρξήζηε λα

επεκβαίλεη ζηνπο νξηζκνχο ησλ ειέγρσλ θαη λα κπνξεί αθελφο λα ηνπο ηξνπνπνηεί θαη

αθεηέξνπ λα πξνζζέηεη θαη λα αθαηξεί ειέγρνπο αλάινγα κε ηηο εηδηθέο αλάγθεο πνπ

πηζαλά πξνθχπηνπλ ζε επίπεδν κειέηεο ή θαη ζε επίπεδν ΟΣΑ.

Σέινο, ε εθαξκνγή ζα κπνξνχζε λα εμειηρζεί ζε κηα εθαξκνγή γεληθεπκέλσλ

ειέγρσλ, πνπ λα πεξηιακβάλεη φρη κφλν ηνπο ζπλδπαζηηθνχο ειέγρνπο κεηαμχ ησλ

πεξηγξαθηθψλ θαη ησλ ρσξηθψλ δεδνκέλσλ Κηεκαηνγξάθεζεο, αιιά θαη ηνπο

επηκέξνπο ειέγρνπο πνπ πξαγκαηνπνηνχληαη ηφζν ζηα δεδνκέλα ηεο πεξηγξαθηθήο

βάζεο φζν θαη ζηα δεδνκέλα ηεο ρσξηθήο θαη νη νπνίνη πξνβιέπνληαη απφ ηηο

Σερληθέο Πξνδηαγξαθέο ηνπ Έξγνπ.

Οη έιεγρνη απηνί ζήκεξα δηεμάγνληαη κέζσ κεκνλσκέλσλ εθαξκνγψλ θαη

εθηεινχληαη αλεμάξηεηα. Με ηελ ελζσκάησζε ηνπ ζπλφινπ ησλ πξναλαθεξφκελσλ

ειέγρσλ, ε εθαξκνγή κπνξεί λα εμειηρζεί ζε έλα νινθιεξσκέλν ζχζηεκα ειέγρνπ, ην

νπνίν ζα εμνηθνλνκήζεη πνιχηηκν ρξφλν απφ ηε δηελέξγεηα απηψλ, ζα πξνζθέξεη ηελ

αζθάιεηα φηη δελ παξαιήθζεθε απφ ακέιεηα θάπνηνο έιεγρνο θαη ζα παξέρεη

ζπγθεληξσηηθά ηα ζπλνιηθά απνηειέζκαηα φισλ ησλ ζρεηηθψλ ειέγρσλ.

Αλάπηπμε Πηινηηθήο Δθαξκνγήο γηα ηε δηελέξγεηα πλδπαζηηθώλ Διέγρσλ

κεηαμύ Πεξηγξαθηθώλ θαη Υσξηθώλ Βάζεσλ Κηεκαηνινγίνπ Μάξηηνο 2012

ύληαμε: Γεσξγαθάθε ηαπξνύια 91 /144

Βιβλιογπαθία

Elmasri R. - Navathe S.B. (2004) (επηκέιεηα) Υαηδφπνπινο Μ., Θεκειηώδεηο αξρέο

ζπζηεκάησλ βάζεσλ δεδνκέλσλ ηόκνο Α΄, Αζήλα: Γίαπινο.

Ο.Κ.Υ.Δ., «Δζληθφ Κηεκαηνιφγην, Σερληθέο Πξνδηαγξαθέο Μειεηψλ Κηεκαηνγξάθεζεο γηα

ηελ Γεκηνπξγία Δζληθνχ Κηεκαηνινγίνπ», ΦΔΚ η. Β΄, 1156/ 24-06-2008

Ο.Κ.Υ.Δ., «Σξνπνπνίεζε ηεο ππ’ αξηζκ.404/031/6.2.2007 απφθαζεο ηνπ Γηνηθεηηθνχ

πκβνπιίνπ ηνπ Ο.Κ.Υ.Δ. πεξί έγθξηζεο ηερληθψλ πξνδηαγξαθψλ γηα ηηο κειέηεο

«δεκηνπξγίαο ςεθηαθψλ βάζεσλ δεδνκέλσλ ελεξγψλ ηίηισλ ησλ ππνζεθνθπιαθείσλ ησλ

αζηηθψλ θέληξσλ» (ΦΔΚ η. Β΄, 1156/ 24-06-2008)», ΦΔΚ η.Β΄, 1510/31-07-2008

Ο.Κ.Υ.Δ., «Αλαζεψξεζε ηερληθψλ πξνδηαγξαθψλ ησλ κειεηψλ θηεκαηνγξάθεζεο γηα ηε

δεκηνπξγία ηνπ Δζληθνχ Κηεκαηνινγίνπ», ΦΔΚ η.Β΄, 710 / 29-04-2011

Petroutsos, Ev. (2011), Mastering Microsoft Visual Basic 2010, John Wiley and Sons

ηεθαλάθεο, Δ. (2010), Βάζεηο Γεσγξαθηθψλ Γεδνκέλσλ θαη πζηήκαηα Γεσγξαθηθψλ

Πιεξνθνξηψλ,Αζήλα, Δθδφζεηο Παπαζσηεξίνπ

Ιζηοζελίδερ

.NET_Framework, 2012, http://en.wikipedia.org/wiki/.NET_Framework, Αλαδήηεζε ζηνλ

δηθηπαθφ ηφπν: http://www.google.gr

.NET Framework Conceptual Overview, 2011, http://msdn.microsoft.com/en-

us/library/zw4w595w.aspx, Αλαδήηεζε ζηνλ δηθηπαθφ ηφπν: http://www.google.gr

ADO.NET Data Providers Tutorial, 2011, http://vb.net-informations.com/ado.net-

dataproviders/ado.net-dataproviders-tutorial.htm, Αλαδήηεζε ζηνλ δηθηπαθφ ηφπν:

http://www.google.gr

Converting from other Databases to PostgreSQL, 2011, http://wiki.postgresql.org/wiki/

Converting from_other_Databases_to_PostgreSQL#Microsoft_Access, Αλαδήηεζε ζηνλ

δηθηπαθφ ηφπν: http://www.google.gr

DataSets, DataTables, and DataViews (ADO.NET), 2011, http://msdn.microsoft.com/en-

us/library/ss7fbaez.aspx, Αλαδήηεζε ζηνλ δηθηπαθφ ηφπν: http://www.google.gr

DotSpatial, 2011, http://dotspatial.codeplex.com/, Αλαδήηεζε ζηνλ δηθηπαθφ ηφπν:

http://www.google.gr

DotSpatial, 2012, http://mudnug.wordpress.com/category/dotspatial/, Αλαδήηεζε ζηνλ

δηθηπαθφ ηφπν: http://www.google.gr

Κηεκαηνιφγην Α.Δ., 2011, http://www.ktimatologio.gr/, Αλαδήηεζε ζηνλ δηθηπαθφ ηφπν:

http://www.google.gr

Αλάπηπμε Πηινηηθήο Δθαξκνγήο γηα ηε δηελέξγεηα πλδπαζηηθώλ Διέγρσλ

κεηαμύ Πεξηγξαθηθώλ θαη Υσξηθώλ Βάζεσλ Κηεκαηνινγίνπ Μάξηηνο 2012

ύληαμε: Γεσξγαθάθε ηαπξνύια 92 /144

Npgsql, 2011, http://pgfoundry.org/docman/?group_id=1000140, Αλαδήηεζε ζηνλ

δηθηπαθφ ηφπν: http://www.google.gr

Npgsql, Manual, 2011, http://npgsql.projects.postgresql.org/docs/manual/

UserManual.html, Αλαδήηεζε ζηνλ δηθηπαθφ ηφπν: http://www.google.gr

OGC, Open Geospatial Consortium, 2012. http://www.opengeospatial.org/ogc, Αλαδήηεζε

ζηνλ δηθηπαθφ ηφπν: http://www.google.gr

PostgreSQL, 2011, http://postgresql.gr/, Αλαδήηεζε ζηνλ δηθηπαθφ ηφπν:

http://www.google.gr

PostgreSQL interactive terminal, 2011, http://www.postgresql.org/docs/current/static/app-

psql.html, Αλαδήηεζε ζηνλ δηθηπαθφ ηφπν: http://www.google.gr

PostgreSQL 9.1, Manual, 2011. http://www.postgresql.org/docs/9.1/interactive/index.html,

Αλαδήηεζε ζηνλ δηθηπαθφ ηφπν: http://www.google.gr

PostgreSQL wiki, 2011, http://wiki.postgresql.org/wiki/Main_Page, Αλαδήηεζε ζηνλ

δηθηπαθφ ηφπν: http://www.google.gr

PostgreSQL / PostGIS - Advanced Driver Information, 2012, http://www.gdal.org/ogr/

drv_pg_advanced.html, Αλαδήηεζε ζηνλ δηθηπαθφ ηφπν: http://www.google.gr

PostGIS 1.5, Manual, 2011, http://postgis.refractions.net/documentation/manual-1.5/,

Αλαδήηεζε ζηνλ δηθηπαθφ ηφπν: http://www.google.gr

PostGIS, SHP2PGSQL, 2012, http://postgis.refractions.net/docs/ch04.html#shp2pgsql_usage,

Αλαδήηεζε ζηνλ δηθηπαθφ ηφπν: http://www.google.gr

PostGIS, PGSQL2SHP, 2012, http://postgis.refractions.net/docs/ch04.html#id2627920,

Αλαδήηεζε ζηνλ δηθηπαθφ ηφπν: http://www.google.gr

PostGIS, GiST indexes, 2011, http://postgis.refractions.net/docs/ch04.html#id2628148,

Αλαδήηεζε ζηνλ δηθηπαθφ ηφπν: http://www.google.gr

PostGIS Operators and Functions, 2011. http://postgis.refractions.net/documentation/manual-

1.5/reference.html, Αλαδήηεζε ζηνλ δηθηπαθφ ηφπν: http://www.google.gr

PostGIS wiki, 2011, http://trac.osgeo.org/postgis/wiki/UsersWikiMain, Αλαδήηεζε ζηνλ

δηθηπαθφ ηφπν: http://www.google.gr

VB.NET, 2011, http://www.startvbdotnet.com/, Αλαδήηεζε ζηνλ δηθηπαθφ ηφπν:

http://www.google.gr

VB.NET Tutorial, 2011, http://vb.net-informations.com/, Αλαδήηεζε ζηνλ δηθηπαθφ ηφπν:

http://www.google.gr

Visual Basic .NET, 2011, http://en.wikipedia.org/wiki/ Visual Basic .NET, Αλαδήηεζε ζηνλ

δηθηπαθφ ηφπν: http://www.google.gr

W3schools, Introduction to SQL, 2012. http://www.w3schools.com/sql/sql_intro.asp,

Αλαδήηεζε ζηνλ δηθηπαθφ ηφπν: http://www.google.gr

Αλάπηπμε Πηινηηθήο Δθαξκνγήο γηα ηε δηελέξγεηα πλδπαζηηθώλ Διέγρσλ

κεηαμύ Πεξηγξαθηθώλ θαη Υσξηθώλ Βάζεσλ Κηεκαηνινγίνπ Μάξηηνο 2012

ύληαμε: Γεσξγαθάθε ηαπξνύια 93 /144

Παπάπηημα Ι

ΓΙΑΓΡΑΜΜΑΣΑ ΟΝΣΟΣΗΣΩΝ – ΤΥΔΣΙΔΩΝ ΠΔΡΙΓΡΑΦΙΚΩΝ ΚΑΙ

ΥΩΡΙΚΩΝ ΓΔΓΟΜΔΝΩΝ

Αλάπηπμε Πηινηηθήο Δθαξκνγήο γηα ηε δηελέξγεηα πλδπαζηηθώλ Διέγρσλ

κεηαμύ Πεξηγξαθηθώλ θαη Υσξηθώλ Βάζεσλ Κηεκαηνινγίνπ Μάξηηνο 2012

ύληαμε: Γεσξγαθάθε ηαπξνύια 94 /144

Αλάπηπμε Πηινηηθήο Δθαξκνγήο γηα ηε δηελέξγεηα πλδπαζηηθώλ Διέγρσλ

κεηαμύ Πεξηγξαθηθώλ θαη Υσξηθώλ Βάζεσλ Κηεκαηνινγίνπ Μάξηηνο 2012

ύληαμε: Γεσξγαθάθε ηαπξνύια 95 /144

Γιάγπαμμα ονηοηήηυν – ζςζσεηίζευν συπικών δεδομένυν

ην παξαθάησ δηάγξακκα παξνπζηάδεηαη ην ρσξηθφ κνληέιν ηνπ Δζληθνχ

Κηεκαηνινγίνπ θαζψο θαη νη ηνπνινγηθέο ζρέζεηο πνπ ζπλδένπλ ηνπο πίλαθεο –

νληφηεηεο.

Σν πνιχγσλν ηνπ ΟΣΑ ζα πξέπεη λα ζπληίζεηαη εμνινθιήξνπ απφ ηα πνιχγσλα

ησλ ηνκέσλ.

Σν πνιχγσλν ηνπ ΟΣΑ ζα πξέπεη λα ζπληίζεηαη εμνινθιήξνπ απφ ηα πνιχγσλα

ησλ γεσηεκαρίσλ.

Σν πνιχγσλν ηνπ ΟΣΑ ζα πξέπεη λα ζπληίζεηαη εμνινθιήξνπ απφ ηα πνιχγσλα

ησλ αγξνηηθψλ θαη αζηηθψλ πεξηνρψλ.

Σα πνιχγσλα ησλ ελνηήησλ ζα πξέπεη λα πεξηέρνληαη ζηα πνιχγσλα ησλ

ηνκέσλ.

Σα πνιχγσλα ησλ ρψξσλ απνθιεηζηηθήο ρξήζεο ζα πξέπεη λα πεξηέρνληαη ζηα

πνιχγσλα ησλ γεσηεκαρίσλ.

Σα πνιχγσλα ησλ δνπιεηψλ ζα πξέπεη λα πεξηέρνληαη ζηα πνιχγσλα ησλ

γεσηεκαρίσλ

Σα ζεκεία ησλ θηηξίσλ ζα πξέπεη λα είλαη εληφο ηνπ πνιπγψλνπ ηνπ ΟΣΑ.

Σα πνιχγσλα ησλ κεηαιιείσλ ζα πξέπεη λα πεξηέρνληαη ζην πνιχγσλν ηνπ

ΟΣΑ.

Σα πνιχγσλα ησλ αγξνηηθψλ θαη αζηηθψλ πεξηνρψλ δελ ζα πξέπεη λα ηέκλνληαη

κε ηα φξηα ησλ πνιπγψλσλ ησλ γεσηεκαρίσλ.

Σα εηδηθά ηδηνθηεζηαθά αληηθείκελα ζα πξέπεη λα πεξηέρνληαη εληφο ηνπ

πνιπγψλνπ ηνπ ΟΣΑ.

Γηα φια ηα θηεκαηνινγηθά δεδνκέλα δελ επηηξέπεηαη ε επηθάιπςε ησλ

νληνηήησλ πνπ αλήθνπλ ζηελ ίδηα ζεκαηηθή ελφηεηα.

Δπηζεκαίλεηαη φηη νη ηνπνινγηθέο ζρέζεηο δελ ηζρχνπλ ζηελ πεξίπησζε πνπ έλαο

ΟΣΑ απνηειείηαη απφ 2 ή πεξηζζφηεξα πνιχγσλα (λεζηά). ηελ πεξίπησζε απηή

νη ζρέζεηο ηζρχνπλ γηα θάζε πνιχγσλν ηνπ ΟΣΑ θαη κφλν γηα ηα πνιχγσλα ηα

νπνία πεξηθιείεη.

Αλάπηπμε Πηινηηθήο Δθαξκνγήο γηα ηε δηελέξγεηα πλδπαζηηθώλ Διέγρσλ

κεηαμύ Πεξηγξαθηθώλ θαη Υσξηθώλ Βάζεσλ Κηεκαηνινγίνπ Μάξηηνο 2012

ύληαμε: Γεσξγαθάθε ηαπξνύια 96 /144

Αλάπηπμε Πηινηηθήο Δθαξκνγήο γηα ηε δηελέξγεηα πλδπαζηηθώλ Διέγρσλ

κεηαμύ Πεξηγξαθηθώλ θαη Υσξηθώλ Βάζεσλ Κηεκαηνινγίνπ Μάξηηνο 2012

ύληαμε: Γεσξγαθάθε ηαπξνύια 97 /144

ηνλ πίλαθα πνπ αθνινπζεί, επεμεγνχληαη ηα ζχκβνια ηα νπνία ρξεζηκνπνηνχληαη

γηα λα πεξηγξαθνχλ νη ηνπνινγηθέο ζρέζεηο κεηαμχ ησλ ρσξηθψλ επηπέδσλ. Όπνπ ΠΑ

είλαη ε πεξίκεηξνο ηεο Α νληφηεηαο θαη ΔΑ ε επηθάλεηα ηεο Α νληφηεηαο (ΠΒ θαη ΔΒ

αληίζηνηρα).

Δίδορ γευγπαθικήρ ονηόηηηαρ ύμβολο

Οληφηεηα ζεκείν (π.ρ. ζεκεία ειέγρνπ)

Οληφηεηα πνπ απνηειείηαη απφ κηα γξακκή (π.ρ. γξακκή

δηνηθεηηθήο έθηαζεο)

Οληφηεηα πνπ απνηειείηαη απφ κηα γξακκή ηεο νπνίαο είλαη

γλσζηή ε θνξά (π.ρ. άμνλεο δξφκσλ)

Οληφηεηα πνπ απνηειείηαη απφ έλα εληαίν πνιχγσλν ρσξίο

ηξχπεο (π.ρ. πνιχγσλν ελφηεηαο)

Οληφηεηα πνπ κπνξεί λα απνηειείηαη απφ έλα, δχν ή

πεξηζζφηεξα πνιχγσλα (π.ρ. γεσηεκάρηα OEK)

σέζειρ μεηαξύ ηυν ονηοηήηυν Α και Β ύμβολο

ε Α είλαη αλεμάξηεηε ηεο Β

(ΠΑ ∩ ΠΒ = Ø, ΔΑ ∩ ΔΒ = Ø, ΠΑ ∩ ΔΒ = Ø, ΔΑ ∩ ΠΒ = Ø)

ε Α εθάπηεηαη ηεο Β

(ΠΑ ∩ ΠΒ ≠ Ø, ΔΑ ∩ ΔΒ = Ø, ΠΑ ∩ ΔΒ = Ø, ΔΑ ∩ ΠΒ = Ø)

ε Α επηηίζεηαη ηεο Β

(ΠΑ ∩ ΠΒ ≠ Ø, ΔΑ ∩ ΔΒ ≠ Ø, ΠΑ ∩ ΔΒ ≠ Ø, ΔΑ ∩ ΠΒ ≠ Ø)

ε Α πεξηέρεη ηελ Β

(ΠΑ ∩ ΠΒ = Ø, ΔΑ ∩ ΔΒ ≠ Ø, ΠΑ ∩ ΔΒ = Ø, ΔΑ ∩ ΠΒ ≠ Ø)

ε Α πεξηέρεη ηελ Β θαη ζπγρξφλσο ε Α εθάπηεηαη κε ηελ Β

(ΠΑ ∩ ΠΒ ≠ Ø, ΔΑ ∩ ΔΒ ≠ Ø, ΠΑ ∩ ΔΒ = Ø, ΔΑ ∩ ΠΒ ≠ Ø)

ε Α ηζνχηαη κε ηελ Β

(ΠΑ ∩ ΠΒ ≠ Ø, ΔΑ ∩ ΔΒ ≠ Ø, ΠΑ ∩ ΔΒ = Ø, ΔΑ ∩ ΠΒ = Ø)

Αλάπηπμε Πηινηηθήο Δθαξκνγήο γηα ηε δηελέξγεηα πλδπαζηηθώλ Διέγρσλ

κεηαμύ Πεξηγξαθηθώλ θαη Υσξηθώλ Βάζεσλ Κηεκαηνινγίνπ Μάξηηνο 2012

ύληαμε: Γεσξγαθάθε ηαπξνύια 98 /144

Αλάπηπμε Πηινηηθήο Δθαξκνγήο γηα ηε δηελέξγεηα πλδπαζηηθώλ Διέγρσλ

κεηαμύ Πεξηγξαθηθώλ θαη Υσξηθώλ Βάζεσλ Κηεκαηνινγίνπ Μάξηηνο 2012

ύληαμε: Γεσξγαθάθε ηαπξνύια 99 /144

Παπάπηημα ΙΙ

1. CreateDB+Schemas.txt

2. Access Module

3. CreateAll.spatial.Tables.txt

4. Δπυηήμαηα Δλέγσυν (SQL)

5. CreateAllViews.txt

6. CreateAllTables.txt

Αλάπηπμε Πηινηηθήο Δθαξκνγήο γηα ηε δηελέξγεηα πλδπαζηηθώλ Διέγρσλ

κεηαμύ Πεξηγξαθηθώλ θαη Υσξηθώλ Βάζεσλ Κηεκαηνινγίνπ Μάξηηνο 2012

ύληαμε: Γεσξγαθάθε ηαπξνύια 100 /144

Αλάπηπμε Πηινηηθήο Δθαξκνγήο γηα ηε δηελέξγεηα πλδπαζηηθώλ Διέγρσλ

κεηαμύ Πεξηγξαθηθώλ θαη Υσξηθώλ Βάζεσλ Κηεκαηνινγίνπ Μάξηηνο 2012

ύληαμε: Γεσξγαθάθε ηαπξνύια 101 /144

1. CreateDB+Schemas.txt

SET statement_timeout = 0;

SET client_encoding = 'ISO_8859_7';

SET standard_conforming_strings = on;

SET check_function_bodies = false;

SET client_min_messages = warning;

CREATE DATABASE "KT19069" WITH TEMPLATE = template_postgis ENCODING = 'UTF8'

LC_COLLATE = 'Greek, Greece' LC_CTYPE = 'Greek, Greece';

\connect "KT19069"

SET statement_timeout = 0;

SET client_encoding = 'ISO_8859_7';

SET standard_conforming_strings = on;

SET check_function_bodies = false;

SET client_min_messages = warning;

ALTER SCHEMA public OWNER TO lina;

ALTER TABLE spatial_ref_sys OWNER TO lina;

ALTER TABLE geometry_columns OWNER TO lina;

CREATE SCHEMA spatial;

CREATE SCHEMA viewtables;

CREATE TABLE "ADRS" (

"ADRS_ID" double precision NOT NULL,

"STREET" character varying(80),

"STREET_FROM" character varying(15),

"STREET_TO" character varying(15),

"TK" character varying(11) NOT NULL,

"LOCALITY" character varying(250),

"LOCATION_DESC" character varying(80),

"NOMOS" character varying(2),

"OTA" character varying(150));

CREATE TABLE "BEN" (

"BEN_ID" double precision NOT NULL,

"UNQ_BEN_ID" double precision NOT NULL,

"BEN_CAT_ID" character varying(2) NOT NULL,

"BEN_SUBCAT_ID" character varying(2) NOT NULL,

"AFM" character varying(10),

"SURNAME" character varying(250) NOT NULL,

"NAME" character varying(100),

"LEG_TITLE" character varying(250),

"BIRTH_DATE" date,

Αλάπηπμε Πηινηηθήο Δθαξκνγήο γηα ηε δηελέξγεηα πλδπαζηηθώλ Διέγρσλ

κεηαμύ Πεξηγξαθηθώλ θαη Υσξηθώλ Βάζεσλ Κηεκαηνινγίνπ Μάξηηνο 2012

ύληαμε: Γεσξγαθάθε ηαπξνύια 102 /144

"B_DATE_FLAG" smallint NOT NULL,

"LOCATION" character varying(50),

"STREET" character varying(50),

"STREET_FROM" character varying(7),

"STREET_TO" character varying(7),

"TK" character varying(11),

"OTA" character varying(50),

"NOMOS" character varying(34),

"COUNTRY" character varying(2) NOT NULL,

"PHONE" character varying(50),

"CONTACT_PHONE" character varying(50),

"FAX" character varying(50),

"EMAIL" character varying(50),

"PREFER_EMAIL" smallint,

"F_SURNAME" character varying(250),

"F_NAME" character varying(42),

"M_NAME" character varying(42),

"M_SURNAME" character varying(250),

"S_NAME" character varying(42),

"S_SURNAME" character varying(250),

"ID_NUM" character varying(20),

"ID_DATE" date,

"ID_DATE_FLAG" smallint NOT NULL,

"ID_ISSUER_TYPE" character varying(2),

"ID_ISSUER" character varying(100),

"END_DATE" date,

"CITIZENSHIP" character varying(2),

"BIRTH_PLACE" character varying(100),

"SPOUSE_AFM" smallint NOT NULL,

"COMMENTS" text,

CONSTRAINT "BEN_B_DATE_FLAG_check" CHECK (((("B_DATE_FLAG" = 0) OR ("B_DATE_FLAG"

= 1)) OR ("B_DATE_FLAG" = 2))),

CONSTRAINT "BEN_ID_DATE_FLAG_check" CHECK (((("ID_DATE_FLAG" = 0) OR

("ID_DATE_FLAG" = 1)) OR ("ID_DATE_FLAG" = 2))),

CONSTRAINT "BEN_PREFER_EMAIL_check" CHECK ((("PREFER_EMAIL" = 0) OR

("PREFER_EMAIL" = 1))),

CONSTRAINT "BEN_SPOUSE_AFM_check" CHECK ((("SPOUSE_AFM" = 0) OR ("SPOUSE_AFM" =

1))));

CREATE TABLE "BEN_PARENT" (

"G_BEN_ID" character varying(16) NOT NULL,

"BEN_ID" double precision NOT NULL);

CREATE TABLE "BEN_STANDARD_COMMENTS" (

"STD_CMNT_CODE" integer NOT NULL,

"BEN_ID" double precision NOT NULL);

CREATE TABLE "BEN_TYPE_LUT" (

Αλάπηπμε Πηινηηθήο Δθαξκνγήο γηα ηε δηελέξγεηα πλδπαζηηθώλ Διέγρσλ

κεηαμύ Πεξηγξαθηθώλ θαη Υσξηθώλ Βάζεσλ Κηεκαηνινγίνπ Μάξηηνο 2012

ύληαμε: Γεσξγαθάθε ηαπξνύια 103 /144

"BEN_CAT_ID" character varying(2) NOT NULL,

"BEN_SUBCAT_ID" character varying(2) NOT NULL,

"BEN_CAT_DESCR" character varying(80),

"BEN_SUBCAT_DESCR" character varying(200) NOT NULL);

CREATE TABLE "BLD" (

"BLD_ID" double precision NOT NULL,

"BLD_NUM" integer,

"BLD_NAME_TITLE" character varying(25),

"AREA_DOC" double precision,

"TOT_FLOORS" character varying(4),

"BLD_TYPE_CODE" character varying(2),

"LAND_USE_CODE" character varying(4),

"TYPE_DESC" character varying(50),

"COMMENTS" text,

"IS_LEGAL" smallint,

"KIND" smallint NOT NULL,

CONSTRAINT "BLD_IS_LEGAL_check" CHECK ((("IS_LEGAL" = 0) OR ("IS_LEGAL" = 1))),

CONSTRAINT "BLD_KIND_check" CHECK (((("KIND" = 0) OR ("KIND" = 1)) OR ("KIND" = 2))));

CREATE TABLE "BLD_STANDARD_COMMENTS" (

"STD_CMNT_CODE" integer NOT NULL,

"BLD_ID" double precision NOT NULL);

CREATE TABLE "BLD_TYPE_LUT" (

"BLD_TYPE_CODE" character varying(2) NOT NULL,

"BLD_TYPE_DESCR" character varying(100) NOT NULL);

CREATE TABLE "COUNTRY_LUT" (

"COUNTRY_ID" character varying(2) NOT NULL,

"COUNTRY_DESCR" character varying(50) NOT NULL);

CREATE TABLE "CURRENCY_LUT" (

"CURRENCY_TYPE" character varying(3) NOT NULL,

"CURRENCY_NAME" character varying(100) NOT NULL,

"CUR_REGION" character varying(30) NOT NULL);

CREATE TABLE "DECL_AREAS" (

"G_PROP_ID" character varying(18) NOT NULL,

"AREA_DECL" double precision,

"AREA_DOC" double precision,

"AREA_TOPO" double precision DEFAULT 0,

"CHOSEN_AREA" smallint,

"G_SYM_S" smallint,

"S_SHAPE_C" smallint,

"G_SYM_A" smallint,

"S_AREA_C" smallint,

Αλάπηπμε Πηινηηθήο Δθαξκνγήο γηα ηε δηελέξγεηα πλδπαζηηθώλ Διέγρσλ

κεηαμύ Πεξηγξαθηθώλ θαη Υσξηθώλ Βάζεσλ Κηεκαηνινγίνπ Μάξηηνο 2012

ύληαμε: Γεσξγαθάθε ηαπξνύια 104 /144

"DIAG" integer,

"DIAG_DATE" date,

CONSTRAINT "DECL_AREAS_CHOSEN_AREA_check" CHECK (((("CHOSEN_AREA" = 1) OR

("CHOSEN_AREA" = 2)) OR ("CHOSEN_AREA" = 3))),

CONSTRAINT "DECL_AREAS_DIAG_check" CHECK ((("DIAG" = 1) OR ("DIAG" = 2))),

CONSTRAINT "DECL_AREAS_G_SYM_A_check" CHECK ((("G_SYM_A" = 1) OR ("G_SYM_A" = 2))),

CONSTRAINT "DECL_AREAS_G_SYM_S_check" CHECK ((("G_SYM_S" = 1) OR ("G_SYM_S" = 2))),

CONSTRAINT "DECL_AREAS_S_AREA_C_check" CHECK (((("S_AREA_C" = 1) OR ("S_AREA_C" = 2))

OR ("S_AREA_C" = 3))),

CONSTRAINT "DECL_AREAS_S_SHAPE_C_check" CHECK (((("S_SHAPE_C" = 1) OR ("S_SHAPE_C" =

2)) OR ("S_SHAPE_C" = 3))));

CREATE TABLE "DOC" (

"DOC_ID" double precision NOT NULL,

"DOC_DATE" date NOT NULL,

"DOC_DATE_FLAG" smallint NOT NULL,

"DOC_NUM" character varying(20),

"DOC_TYPE" character varying(2),

"ISSUER_ID" double precision NOT NULL,

"RGST_NAME" character varying(25),

"RGST_DATE" date,

"RGST_DATE_FLAG" smallint NOT NULL,

"RGST_NUM" character varying(20),

"RGST_VOL" character varying(20),

"RGST_SHEET" character varying(6),

"GOVT_GAZ" character varying(70),

"COMMENTS" text,

"G_DOC_ORIGIN_ID" character varying(18) NOT NULL,

"ORIGIN_FLG" smallint NOT NULL,

CONSTRAINT "DOC_DOC_DATE_FLAG_check" CHECK (((("DOC_DATE_FLAG" = 0) OR

("DOC_DATE_FLAG" = 1)) OR ("DOC_DATE_FLAG" = 2))),

CONSTRAINT "DOC_ORIGIN_FLG_check" CHECK ((("ORIGIN_FLG" = 0) OR ("ORIGIN_FLG" = 1))));

CREATE TABLE "DOC_BEN_RIGHT" (

"DBR_ID" double precision NOT NULL,

"RIGHT_ID" double precision NOT NULL,

"DOC_ID" double precision NOT NULL,

"BEN_ID" double precision NOT NULL,

"WAYOWN_ID" integer,

"BEN_ROLE" smallint NOT NULL,

"OWN_RIGHT_NUMER" double precision,

"OWN_RIGHT_DENOM" double precision,

"DOC_RIGHT_NUMER" double precision,

"DOC_RIGHT_DENOM" double precision,

"COMMENTS" text,

CONSTRAINT "DOC_BEN_RIGHT_DOC_RIGHT_DENOM_check" CHECK (("DOC_RIGHT_DENOM" >

(0)::double precision)),

CONSTRAINT "DOC_BEN_RIGHT_OWN_RIGHT_DENOM_check" CHECK (("OWN_RIGHT_DENOM"

> (0)::double precision)));

Αλάπηπμε Πηινηηθήο Δθαξκνγήο γηα ηε δηελέξγεηα πλδπαζηηθώλ Διέγρσλ

κεηαμύ Πεξηγξαθηθώλ θαη Υσξηθώλ Βάζεσλ Κηεκαηνινγίνπ Μάξηηνο 2012

ύληαμε: Γεσξγαθάθε ηαπξνύια 105 /144

CREATE TABLE "DOC_ISSUER" (

"ISSUER_ID" double precision NOT NULL,

"UNQ_ISSUER_ID" bigint,

"ISSUER_TYPE" character varying(4) NOT NULL,

"SEAT" character varying(40),

"IS_LEGAL" smallint NOT NULL,

"SURNAME" character varying(250),

"NAME" character varying(42),

"AM" character varying(5),

"ISSUER_DATE" date,

"LEGAL_NAME" character varying(51),

"COMMENTS" text,

CONSTRAINT "DOC_ISSUER_IS_LEGAL_check" CHECK ((("IS_LEGAL" = 0) OR ("IS_LEGAL" = 1))));

CREATE TABLE "DOC_PARENT" (

"G_DOC_ID" character varying(17) NOT NULL,

"G_DOC_ID_PARENT" character varying(17) NOT NULL);

CREATE TABLE "DOC_STANDARD_COMMENTS" (

"STD_CMNT_CODE" integer NOT NULL,

"DOC_ID" double precision NOT NULL);

CREATE TABLE "DOC_TYPE_LUT" (

"DOC_TYPE" character varying(2) NOT NULL,

"DOC_TYPE_DESCR" character varying(255) NOT NULL,

"IS_LEGAL" smallint,

CONSTRAINT "DOC_TYPE_LUT_IS_LEGAL_check" CHECK ((("IS_LEGAL" = 0) OR ("IS_LEGAL" =

1))));

CREATE TABLE "ENTOS_SXEDIOU_LUT" (

"ENTOS_SXEDIOU_CODE" smallint NOT NULL,

"ENTOS_SXEDIOU_DESCR" character varying(20) NOT NULL);

CREATE TABLE "ID_ISSUER_TYPE_LUT" (

"ID_ISSUER_TYPE" character varying(2) NOT NULL,

"ID_ISSUER_TYPE_DESCR" character varying(50) NOT NULL);

CREATE TABLE "ISSUER_TYPE_LUT" (

"ISSUER_TYPE" character varying(4) NOT NULL,

"ISSUER_CAT_ID" character varying(2) NOT NULL,

"ISSUER_SUBCAT_ID" character varying(2) NOT NULL,

"ISSUER_CAT_DESCR" character varying(80) NOT NULL,

"ISSUER_SUBCAT_DESCR" character varying(200) NOT NULL,

"VALID" smallint NOT NULL);

CREATE TABLE "LAND_USE_LUT" (

"LAND_USE_CODE" character varying(4) NOT NULL,

"LAND_USE_CAT_ID" character varying(2) NOT NULL,

Αλάπηπμε Πηινηηθήο Δθαξκνγήο γηα ηε δηελέξγεηα πλδπαζηηθώλ Διέγρσλ

κεηαμύ Πεξηγξαθηθώλ θαη Υσξηθώλ Βάζεσλ Κηεκαηνινγίνπ Μάξηηνο 2012

ύληαμε: Γεσξγαθάθε ηαπξνύια 106 /144

"LAND_USE_SUBCAT_ID" character varying(2) NOT NULL,

"LAND_USE_CAT_DESCR" character varying(200),

"LAND_USE_SUBCAT_DESCR" character varying(200));

CREATE TABLE "MAJOR_PROP_TYPE_LUT" (

"MAJOR_PROP_TYPE_ID" character varying(1) NOT NULL,

"MAJOR_PROP_TYPE_DESCR" character varying(200) NOT NULL);

CREATE TABLE "MODIFICATION_OBJECT_LUT" (

"MODIFICATION_OBJECT_CODE" integer NOT NULL,

"MODIFICATION_OBJECT_DESC" character varying(50) NOT NULL);

CREATE TABLE "MODIFICATION_REASON_LUT" (

"MODIFICATION_REASON_CODE" integer NOT NULL,

"MODIFICATION_REASON_DESC" character varying(100) NOT NULL);

CREATE TABLE "MODIFICATION_TYPE_LUT" (

"MODIFICATION_TYPE_CODE" integer NOT NULL,

"MODIFICATION_TYPE_DESC" character varying(50) NOT NULL);

CREATE TABLE "ORIGIN_LUT" (

"ORIGIN_ID" character varying(2) NOT NULL,

"ORIGIN_DESCR" character varying(200) NOT NULL);

CREATE TABLE "OTA" (

"NOMOS_CODE" character varying(2) NOT NULL,

"OTA_CODE" character varying(3) NOT NULL,

"NOMOS_LEKTIKO" character varying(25) NOT NULL,

"OTA_LEKTIKO" character varying(50) NOT NULL);

CREATE TABLE "PROP" (

"PROP_ID" double precision NOT NULL,

"KAEK" character varying(12) NOT NULL,

"PROP_VERT" integer NOT NULL,

"PROP_HOR" integer NOT NULL,

"PROP_TYPE_CODE" character varying(4) NOT NULL,

"APT_NAME" character varying(50),

"AREA_MEAS" double precision,

"AREA_DOC" double precision,

"UNIT" smallint,

"IS_GROSS" smallint,

"ENTOS_SXEDIOU" smallint,

"HAS_TOPO" smallint,

"COWN_NUMER" double precision,

"COWN_DENOM" bigint,

"COWN_V_NUMER" double precision,

"COWN_V_DENOM" double precision,

Αλάπηπμε Πηινηηθήο Δθαξκνγήο γηα ηε δηελέξγεηα πλδπαζηηθώλ Διέγρσλ

κεηαμύ Πεξηγξαθηθώλ θαη Υσξηθώλ Βάζεσλ Κηεκαηνινγίνπ Μάξηηνο 2012

ύληαμε: Γεσξγαθάθε ηαπξνύια 107 /144

"LAND_USE_CODE" character varying(4),

"COMMENTS" text,

"NOMOS_CODE" character varying(2) NOT NULL,

"OTA_CODE" character varying(3) NOT NULL,

"X" double precision DEFAULT 0,

"Y" double precision DEFAULT 0,

"MAJOR_PROP_TYPE_ID" character varying(1),

"POINT_ID" double precision);

CREATE TABLE "PROPERTY_TYPE_LUT" (

"PROP_TYPE_CODE" character varying(4) NOT NULL,

"PROP_CAT_ID" character varying(2) NOT NULL,

"PROP_SUBCAT_ID" character varying(2) NOT NULL,

"PROP_CAT_DESCR" character varying(80) NOT NULL,

"PROP_SUCAT_DESCR" character varying(200) NOT NULL);

CREATE TABLE "PROP_ADRS" (

"PROPADRS_ID" double precision NOT NULL,

"PROP_ID" double precision NOT NULL,

"ADRS_ID" double precision NOT NULL,

"IS_LEGACY" smallint NOT NULL,

"IS_DEFAULT" smallint DEFAULT 1 NOT NULL,

CONSTRAINT "PROP_ADRS_IS_DEFAULT_check" CHECK ((("IS_DEFAULT" = 0) OR ("IS_DEFAULT"

= 1))),

CONSTRAINT "PROP_ADRS_IS_LEGACY_check" CHECK ((("IS_LEGACY" = 0) OR ("IS_LEGACY" =

1))));

CREATE TABLE "PROP_BLD" (

"PROP_ID" double precision NOT NULL,

"BLD_ID" double precision NOT NULL,

"ETOS_ADEIAS" integer,

"FLOOR" character varying(60));

CREATE TABLE "PROP_CHANGE_LUT" (

"PROP_CHANGE_CODE" character varying(2) NOT NULL,

"PROP_CHANGE_DESCR" character varying(70) NOT NULL);

CREATE TABLE "PROP_PARENT" (

"PROP_ID" double precision NOT NULL,

"PROP_ID_PARENT" double precision NOT NULL,

"PROP_CHANGE_CODE" character varying(2) NOT NULL);

CREATE TABLE "PROP_STANDARD_COMMENTS" (

"STD_CMNT_CODE" integer NOT NULL,

"PROP_ID" double precision NOT NULL);

CREATE TABLE "RIGHT" (

"RIGHT_ID" double precision NOT NULL,

Αλάπηπμε Πηινηηθήο Δθαξκνγήο γηα ηε δηελέξγεηα πλδπαζηηθώλ Διέγρσλ

κεηαμύ Πεξηγξαθηθώλ θαη Υσξηθώλ Βάζεσλ Κηεκαηνινγίνπ Μάξηηνο 2012

ύληαμε: Γεσξγαθάθε ηαπξνύια 108 /144

"PROP_ID" double precision NOT NULL,

"RIGHT_CAT_ID" character varying(2) NOT NULL,

"RIGHT_SN" integer NOT NULL,

"RIGHT_TYPE" character varying(4) NOT NULL,

"START_DATE" date,

"START_DATE_FLAG" smallint NOT NULL,

"END_DATE" date,

"END_DATE_FLAG" smallint NOT NULL,

"DESCRIPTION" character varying(260),

"DURATION" character varying(10),

"AMNT" double precision DEFAULT 0,

"CURRENCY_TYPE" character varying(3),

"MORG_ORDER" character varying(6),

"INS_AMNT" character varying(50),

"AREA" double precision,

"COMMENTS" text,

"BEN_PROP_ID" double precision,

CONSTRAINT "RIGHT_END_DATE_FLAG_check" CHECK (((("END_DATE_FLAG" = 0) OR

("END_DATE_FLAG" = 1)) OR ("END_DATE_FLAG" = 2))),

CONSTRAINT "RIGHT_START_DATE_FLAG_check" CHECK (((("START_DATE_FLAG" = 0) OR

("START_DATE_FLAG" = 1)) OR ("START_DATE_FLAG" = 2))));

CREATE TABLE "RIGHT_ORIGIN" (

"RIGHT_ORIGIN_ID" double precision NOT NULL,

"G_RIGHT_ID" character varying(17),

"RIGHT_ID" double precision,

"BEN_ID" double precision,

"ORIGIN_ID" character varying(2),

"STATUS" character varying(2),

"APPL_ID" character varying(17),

"G_DOC_ID" character varying(17),

"SUMMARY_ID" character varying(18),

"PRAXI_ID" character varying(17),

"PROP_ID" double precision);

CREATE TABLE "RIGHT_PARENT" (

"RIGHT_PARENT_ID" double precision NOT NULL,

"RIGHT_ID_ANARTISIS" double precision,

"BEN_ID_ANARTISIS" double precision,

"RIGHT_ID_TELIKO" double precision,

"BEN_ID_TELIKO" double precision,

"MODIFICATION_REASON_CODE" integer,

"MODIFICATION_OBJECT_CODE" integer,

"MODIFICATION_TYPE_CODE" integer NOT NULL,

"G_RIGHT_ID" character varying(17),

"APPL_ID" character varying(17),

"G_DOC_ID" character varying(17),

"REQUEST_ID" double precision,

Αλάπηπμε Πηινηηθήο Δθαξκνγήο γηα ηε δηελέξγεηα πλδπαζηηθώλ Διέγρσλ

κεηαμύ Πεξηγξαθηθώλ θαη Υσξηθώλ Βάζεσλ Κηεκαηνινγίνπ Μάξηηνο 2012

ύληαμε: Γεσξγαθάθε ηαπξνύια 109 /144

"PRAXI_ID" character varying(17));

CREATE TABLE "RIGHT_ROLE_LUT" (

"RIGHT_CAT_ID" character varying(2) NOT NULL,

"BEN_ROLE" integer NOT NULL,

"RIGHT_CAT" character varying(1) NOT NULL,

"ROLE_DESCR" character varying(40) NOT NULL);

CREATE TABLE "RIGHT_STANDARD_COMMENTS" (

"STD_CMNT_CODE" integer NOT NULL,

"RIGHT_ID" double precision NOT NULL);

CREATE TABLE "RIGHT_STATUS_LUT" (

"RIGHT_STATUS" character varying(2) NOT NULL,

"RIGHT_ST_DESCR" character varying(200) NOT NULL);

CREATE TABLE "RIGHT_TYPE_LUT" (

"RIGHT_TYPE" character varying(4) NOT NULL,

"RIGHT_CAT_ID" character varying(2) NOT NULL,

"RIGHT_SUBCAT_ID" character varying(2) NOT NULL,

"RIGHT_CAT_DESCR" character varying(80) NOT NULL,

"RIGHT_SUBCAT_DESCR" character varying(200) NOT NULL);

CREATE TABLE "STANDARD_COMMENTS" (

"STD_CMNT_CODE" integer NOT NULL,

"TBL" character varying(20) NOT NULL,

"STD_CMNT_DESCR" text NOT NULL);

CREATE TABLE "TOPOGRAFIKO_LUT" (

"TOPOGRAFIKO_CODE" smallint NOT NULL,

"TOPOGRAFIKO_DESCR" character varying(20) NOT NULL);

CREATE TABLE "UNIT_LUT" (

"UNIT_CODE" smallint NOT NULL,

"UNIT_TYPE" character varying(30) NOT NULL);

CREATE TABLE "VERTREL" (

"PROP_ID_SPECIAL" double precision NOT NULL,

"PROP_ID" double precision NOT NULL,

"REL_TYPE" smallint NOT NULL,

CONSTRAINT "VERTREL_REL_TYPE_check" CHECK (((("REL_TYPE" = 1) OR ("REL_TYPE" = 2)) OR

("REL_TYPE" = 3))));

CREATE TABLE "VSTEAS_REL" (

"POLY_ID" character varying(15) NOT NULL,

"PROP_ID" bigint NOT NULL,

"TYPE" smallint NOT NULL);

Αλάπηπμε Πηινηηθήο Δθαξκνγήο γηα ηε δηελέξγεηα πλδπαζηηθώλ Διέγρσλ

κεηαμύ Πεξηγξαθηθώλ θαη Υσξηθώλ Βάζεσλ Κηεκαηνινγίνπ Μάξηηνο 2012

ύληαμε: Γεσξγαθάθε ηαπξνύια 110 /144

CREATE TABLE "WAYOWN_LUT" (

"WAYOWN_ID" integer NOT NULL,

"WAYOWN_DESCR" character varying(100) NOT NULL);

ALTER TABLE ONLY "ADRS"

ADD CONSTRAINT "ADRS_pkey" PRIMARY KEY ("ADRS_ID");

ALTER TABLE ONLY "BEN_PARENT"

ADD CONSTRAINT "BEN_PARENT_pkey" PRIMARY KEY ("G_BEN_ID", "BEN_ID");

ALTER TABLE ONLY "BEN_STANDARD_COMMENTS"

ADD CONSTRAINT "BEN_STANDARD_COMMENTS_pkey" PRIMARY KEY ("STD_CMNT_CODE",

"BEN_ID");

ALTER TABLE ONLY "BEN_TYPE_LUT"

ADD CONSTRAINT "BEN_TYPE_LUT_pkey" PRIMARY KEY ("BEN_CAT_ID", "BEN_SUBCAT_ID");

ALTER TABLE ONLY "BEN"

ADD CONSTRAINT "BEN_pkey" PRIMARY KEY ("BEN_ID");

ALTER TABLE ONLY "BLD_STANDARD_COMMENTS"

ADD CONSTRAINT "BLD_STANDARD_COMMENTS_pkey" PRIMARY KEY ("STD_CMNT_CODE",

"BLD_ID");

ALTER TABLE ONLY "BLD_TYPE_LUT"

ADD CONSTRAINT "BLD_TYPE_LUT_pkey" PRIMARY KEY ("BLD_TYPE_CODE");

ALTER TABLE ONLY "BLD"

ADD CONSTRAINT "BLD_pkey" PRIMARY KEY ("BLD_ID");

ALTER TABLE ONLY "COUNTRY_LUT"

ADD CONSTRAINT "COUNTRY_LUT_pkey" PRIMARY KEY ("COUNTRY_ID");

ALTER TABLE ONLY "CURRENCY_LUT"

ADD CONSTRAINT "CURRENCY_LUT_pkey" PRIMARY KEY ("CURRENCY_TYPE");

ALTER TABLE ONLY "DECL_AREAS"

ADD CONSTRAINT "DECL_AREAS_pkey" PRIMARY KEY ("G_PROP_ID");

ALTER TABLE ONLY "DOC_BEN_RIGHT"

ADD CONSTRAINT "DOC_BEN_RIGHT_pkey" PRIMARY KEY ("DBR_ID");

ALTER TABLE ONLY "DOC_ISSUER"

ADD CONSTRAINT "DOC_ISSUER_pkey" PRIMARY KEY ("ISSUER_ID");

ALTER TABLE ONLY "DOC_PARENT"

ADD CONSTRAINT "DOC_PARENT_pkey" PRIMARY KEY ("G_DOC_ID", "G_DOC_ID_PARENT");

ALTER TABLE ONLY "DOC_STANDARD_COMMENTS"

ADD CONSTRAINT "DOC_STANDARD_COMMENTS_pkey" PRIMARY KEY ("STD_CMNT_CODE",

"DOC_ID");

ALTER TABLE ONLY "DOC_TYPE_LUT"

ADD CONSTRAINT "DOC_TYPE_LUT_pkey" PRIMARY KEY ("DOC_TYPE");

ALTER TABLE ONLY "DOC"

ADD CONSTRAINT "DOC_pkey" PRIMARY KEY ("DOC_ID");

ALTER TABLE ONLY "ENTOS_SXEDIOU_LUT"

ADD CONSTRAINT "ENTOS_SXEDIOU_LUT_pkey" PRIMARY KEY ("ENTOS_SXEDIOU_CODE");

ALTER TABLE ONLY "ID_ISSUER_TYPE_LUT"

ADD CONSTRAINT "ID_ISSUER_TYPE_LUT_pkey" PRIMARY KEY ("ID_ISSUER_TYPE");

ALTER TABLE ONLY "ISSUER_TYPE_LUT"

ADD CONSTRAINT "ISSUER_TYPE_LUT_pkey" PRIMARY KEY ("ISSUER_TYPE");

ALTER TABLE ONLY "LAND_USE_LUT"

Αλάπηπμε Πηινηηθήο Δθαξκνγήο γηα ηε δηελέξγεηα πλδπαζηηθώλ Διέγρσλ

κεηαμύ Πεξηγξαθηθώλ θαη Υσξηθώλ Βάζεσλ Κηεκαηνινγίνπ Μάξηηνο 2012

ύληαμε: Γεσξγαθάθε ηαπξνύια 111 /144

ADD CONSTRAINT "LAND_USE_LUT_pkey" PRIMARY KEY ("LAND_USE_CODE");

ALTER TABLE ONLY "MAJOR_PROP_TYPE_LUT"

ADD CONSTRAINT "MAJOR_PROP_TYPE_LUT_pkey" PRIMARY KEY ("MAJOR_PROP_TYPE_ID");

ALTER TABLE ONLY "MODIFICATION_OBJECT_LUT"

ADD CONSTRAINT "MODIFICATION_OBJECT_LUT_pkey" PRIMARY KEY

("MODIFICATION_OBJECT_CODE");

ALTER TABLE ONLY "MODIFICATION_REASON_LUT"

ADD CONSTRAINT "MODIFICATION_REASON_LUT_pkey" PRIMARY KEY

("MODIFICATION_REASON_CODE");

ALTER TABLE ONLY "MODIFICATION_TYPE_LUT"

ADD CONSTRAINT "MODIFICATION_TYPE_LUT_pkey" PRIMARY KEY

("MODIFICATION_TYPE_CODE");

ALTER TABLE ONLY "ORIGIN_LUT"

ADD CONSTRAINT "ORIGIN_LUT_pkey" PRIMARY KEY ("ORIGIN_ID");

ALTER TABLE ONLY "OTA"

ADD CONSTRAINT "OTA_pkey" PRIMARY KEY ("NOMOS_CODE", "OTA_CODE");

ALTER TABLE ONLY "PROPERTY_TYPE_LUT"

ADD CONSTRAINT "PROPERTY_TYPE_LUT_pkey" PRIMARY KEY ("PROP_TYPE_CODE");

ALTER TABLE ONLY "PROP_ADRS"

ADD CONSTRAINT "PROP_ADRS_pkey" PRIMARY KEY ("PROPADRS_ID");

ALTER TABLE ONLY "PROP_BLD"

ADD CONSTRAINT "PROP_BLD_pkey" PRIMARY KEY ("PROP_ID", "BLD_ID");

ALTER TABLE ONLY "PROP_CHANGE_LUT"

ADD CONSTRAINT "PROP_CHANGE_LUT_pkey" PRIMARY KEY ("PROP_CHANGE_CODE");

ALTER TABLE ONLY "PROP_PARENT"

ADD CONSTRAINT "PROP_PARENT_pkey" PRIMARY KEY ("PROP_ID", "PROP_ID_PARENT");

ALTER TABLE ONLY "PROP_STANDARD_COMMENTS"

ADD CONSTRAINT "PROP_STANDARD_COMMENTS_pkey" PRIMARY KEY ("STD_CMNT_CODE",

"PROP_ID");

ALTER TABLE ONLY "PROP"

ADD CONSTRAINT "PROP_pkey" PRIMARY KEY ("PROP_ID");

ALTER TABLE ONLY "RIGHT_ORIGIN"

ADD CONSTRAINT "RIGHT_ORIGIN_pkey" PRIMARY KEY ("RIGHT_ORIGIN_ID");

ALTER TABLE ONLY "RIGHT_PARENT"

ADD CONSTRAINT "RIGHT_PARENT_pkey" PRIMARY KEY ("RIGHT_PARENT_ID");

ALTER TABLE ONLY "RIGHT_ROLE_LUT"

ADD CONSTRAINT "RIGHT_ROLE_LUT_pkey" PRIMARY KEY ("RIGHT_CAT_ID", "BEN_ROLE");

ALTER TABLE ONLY "RIGHT_STANDARD_COMMENTS"

ADD CONSTRAINT "RIGHT_STANDARD_COMMENTS_pkey" PRIMARY KEY ("STD_CMNT_CODE",

"RIGHT_ID");

ALTER TABLE ONLY "RIGHT_STATUS_LUT"

ADD CONSTRAINT "RIGHT_STATUS_LUT_pkey" PRIMARY KEY ("RIGHT_STATUS");

ALTER TABLE ONLY "RIGHT_TYPE_LUT"

ADD CONSTRAINT "RIGHT_TYPE_LUT_pkey" PRIMARY KEY ("RIGHT_TYPE");

ALTER TABLE ONLY "RIGHT"

ADD CONSTRAINT "RIGHT_pkey" PRIMARY KEY ("RIGHT_ID");

LTER TABLE ONLY "STANDARD_COMMENTS"

ADD CONSTRAINT "STANDARD_COMMENTS_pkey" PRIMARY KEY ("STD_CMNT_CODE");

ALTER TABLE ONLY "TOPOGRAFIKO_LUT"

Αλάπηπμε Πηινηηθήο Δθαξκνγήο γηα ηε δηελέξγεηα πλδπαζηηθώλ Διέγρσλ

κεηαμύ Πεξηγξαθηθώλ θαη Υσξηθώλ Βάζεσλ Κηεκαηνινγίνπ Μάξηηνο 2012

ύληαμε: Γεσξγαθάθε ηαπξνύια 112 /144

ADD CONSTRAINT "TOPOGRAFIKO_LUT_pkey" PRIMARY KEY ("TOPOGRAFIKO_CODE");

LTER TABLE ONLY "UNIT_LUT"

ADD CONSTRAINT "UNIT_LUT_pkey" PRIMARY KEY ("UNIT_CODE");

ALTER TABLE ONLY "VERTREL"

ADD CONSTRAINT "VERTREL_pkey" PRIMARY KEY ("PROP_ID_SPECIAL", "PROP_ID");

ALTER TABLE ONLY "VSTEAS_REL"

ADD CONSTRAINT "VSTEAS_REL_pkey" PRIMARY KEY ("POLY_ID", "PROP_ID", "TYPE");

ALTER TABLE ONLY "WAYOWN_LUT"

ADD CONSTRAINT "WAYOWN_LUT_pkey" PRIMARY KEY ("WAYOWN_ID");

CREATE UNIQUE INDEX "PROP_KAEK_PROP_VERT_PROP_HOR_idx" ON "PROP" USING btree

("KAEK", "PROP_VERT", "PROP_HOR");

CREATE UNIQUE INDEX "PROP_PARENT_PROP_ID_idx" ON "PROP_PARENT" USING btree

("PROP_ID");

Αλάπηπμε Πηινηηθήο Δθαξκνγήο γηα ηε δηελέξγεηα πλδπαζηηθώλ Διέγρσλ

κεηαμύ Πεξηγξαθηθώλ θαη Υσξηθώλ Βάζεσλ Κηεκαηνινγίνπ Μάξηηνο 2012

ύληαμε: Γεσξγαθάθε ηαπξνύια 113 /144

2. Access Module

Option Compare Database Option Explicit On Private Const ADD_SQL_FILE As String = "c:\temp\19069_VSTEASREL_add.txt" Private Const LINE_BREAK As String = "" Private Const COMMENTS As Boolean = True Private Const DATE_AS_STR As Boolean = True Private warnings As String Private COMMENT_PREFIX As String Private QUERY_SEPARATOR As String ' Primary Export Function Sub exportSQL() On Error GoTo exportSQL_error Dim cdb As Database Dim ctableix As Integer, ctablename As String If COMMENTS Then COMMENT_PREFIX = "--" QUERY_SEPARATOR = ";" End If cdb = CurrentDb() If ADD_SQL_FILE <> "" Then Open ADD_SQL_FILE For Output As #1 DoCmd.Hourglass(True) 'Go through the table definitions For ctableix = 0 To cdb.TableDefs.Count - 1 Dim cfieldix As Integer, cfieldname As String Dim fieldlst As String, sqlcode As String Dim crs As Recordset ' Let's take only the visible tables If (((cdb.TableDefs(ctableix).Attributes And DB_SYSTEMOBJECT) Or _ (cdb.TableDefs(ctableix).Attributes And DB_HIDDENOBJECT))) = 0 Then ctablename = Chr(34) & cdb.TableDefs(ctableix).Name & Chr(34) warnings = "" fieldlst = "" ' INSERT clause crs = cdb.OpenRecordset(cdb.TableDefs(ctableix).Name) If crs.RecordCount <> 0 Then ' loop thorugh each record in the table crs.MoveFirst() Do Until crs.EOF ' start paragraphing sqlcode = "INSERT INTO " & ctablename & " VALUES ("

Αλάπηπμε Πηινηηθήο Δθαξκνγήο γηα ηε δηελέξγεηα πλδπαζηηθώλ Διέγρσλ

κεηαμύ Πεξηγξαθηθώλ θαη Υσξηθώλ Βάζεσλ Κηεκαηνινγίνπ Μάξηηνο 2012

ύληαμε: Γεσξγαθάθε ηαπξνύια 114 /144

' loop through each field in each record For cfieldix = 0 To crs.Fields.Count - 1 ' based on type, prepare the field value If IsNull(crs.Fields(cfieldix).Value) Or crs.Fields(cfieldix).Value = "" Then sqlcode = sqlcode & "NULL" Else Select Case crs.Fields(cfieldix).Type Case dbBoolean sqlcode = sqlcode & IIf(crs.Fields(cfieldix).Value = True, "'t'", "'f'") Case dbChar, dbText, dbMemo sqlcode = sqlcode & "'" & conv_str(crs.Fields(cfieldix).Value) & "'" Case dbDate, dbTimeStamp If DATE_AS_STR Then sqlcode = sqlcode & "'" & Format(crs.Fields(cfieldix).Value, "YYYY-MM-DD") & "'" Else 'print in Access internal format: IEEE 64-bit (8-byte) FP sqlcode = sqlcode & "'" & Format(crs.Fields(cfieldix).Value, "#.#########") & "'" End If Case dbTime If DATE_AS_STR Then sqlcode = sqlcode & "'" & Format(crs.Fields(cfieldix).Value, "HH:MM:SS") & "'" Else 'print in Access internal format: IEEE 64-bit (8-byte) FP sqlcode = sqlcode & "'" & Format(crs.Fields(cfieldix).Value, "#.#########") & "'" End If Case dbBinary, dbLongBinary, dbVarBinary sqlcode = sqlcode & "'" & conv_bin(crs.Fields(cfieldix).Value) & "'" Case dbCurrency, dbDecimal, dbDouble, dbFloat, dbNumeric, dbSingle sqlcode = sqlcode & conv_float(crs.Fields(cfieldix).Value) Case Else sqlcode = sqlcode & conv_str(crs.Fields(cfieldix).Value) End Select End If ' paragraph separators If cfieldix < crs.Fields.Count - 1 Then sqlcode = sqlcode & ", " End If Next cfieldix ' print out result and any warnings sqlcode = sqlcode & ")" & QUERY_SEPARATOR Print #1, sqlcode If COMMENTS And warnings <> "" Then Print #1, warnings

Αλάπηπμε Πηινηηθήο Δθαξκνγήο γηα ηε δηελέξγεηα πλδπαζηηθώλ Διέγρσλ

κεηαμύ Πεξηγξαθηθώλ θαη Υσξηθώλ Βάζεσλ Κηεκαηνινγίνπ Μάξηηνο 2012

ύληαμε: Γεσξγαθάθε ηαπξνύια 115 /144

warnings = "" End If crs.MoveNext() Loop Else ' if there is no data on the table If COMMENTS Then Print #1, COMMENT_PREFIX & " Table " & ctablename & " has no data" End If crs.Close() crs = Nothing End If 'print only unhidden tables Next ctableix exportSQL_exit: Close #1 cdb.Close() cdb = Nothing DoCmd.Hourglass(False) Exit Sub exportSQL_error: MsgBox(Err.Description) Resume exportSQL_exit End Sub Private Function conv_str(ByVal str As String) As String Dim i As Integer, nlstr As String, rstr As Object nlstr = "" rstr = Null i = 1 While i <= Len(str) Select Case Mid$(str, i, 1) Case Chr$(0) ' ASCII NULL nlstr = "" rstr = "\0" Case Chr$(8) ' backspace nlstr = "" rstr = "\b" Case Chr$(9) ' tab nlstr = "" rstr = "\t" Case "'" nlstr = "" rstr = "''" Case """" nlstr = "" rstr = "\""" Case "\"

Αλάπηπμε Πηινηηθήο Δθαξκνγήο γηα ηε δηελέξγεηα πλδπαζηηθώλ Διέγρσλ

κεηαμύ Πεξηγξαθηθώλ θαη Υσξηθώλ Βάζεσλ Κηεκαηνινγίνπ Μάξηηνο 2012

ύληαμε: Γεσξγαθάθε ηαπξνύια 116 /144

nlstr = "" rstr = "\\" Case Chr$(10), Chr$(13) ' line feed and carriage return If nlstr <> "" And nlstr <> Mid$(str, i, 1) Then ' there was a previous newline and this is its pair: eat it rstr = "" nlstr = "" Else ' this is a fresh newline rstr = LINE_BREAK nlstr = Mid$(str, i, 1) End If Case Else nlstr = "" End Select If Not IsNull(rstr) Then str = Left$(str, i - 1) & rstr & Right$(str, Len(str) - i) i = i + Len(rstr) rstr = Null Else i = i + 1 End If End While conv_str = str End Function Private Function conv_bin(ByVal str As String) As String Dim i As Integer, rstr As String rstr = "" i = 1 While i <= Len(str) Select Case Mid$(str, i, 1) Case Chr$(0) ' ASCII NUL rstr = "\0" Case Chr$(8) ' backspace rstr = "\b" Case Chr$(9) ' tab rstr = "\t" Case "'" rstr = "''" Case """" rstr = "\""" Case "\" rstr = "\\" Case Chr$(10) ' line feed rstr = "\n" Case Chr$(13) ' carriage return rstr = "\r" End Select If rstr <> "" Then str = Left$(str, i - 1) & rstr & Right$(str, Len(str) - i) i = i + Len(rstr) rstr = "" Else i = i + 1 End If End While conv_bin = str End Function

Αλάπηπμε Πηινηηθήο Δθαξκνγήο γηα ηε δηελέξγεηα πλδπαζηηθώλ Διέγρσλ

κεηαμύ Πεξηγξαθηθώλ θαη Υσξηθώλ Βάζεσλ Κηεκαηνινγίνπ Μάξηηνο 2012

ύληαμε: Γεσξγαθάθε ηαπξνύια 117 /144

' This function is used to convert local setting of decimal , to . Private Function conv_float(ByVal str As String) As String Dim i As Integer i = 1 While i <= Len(str) If Mid$(str, i, 1) = "," Then str = Left$(str, i - 1) & "." & Right$(str, Len(str) - i) End If i = i + 1 End While conv_float = str End Function

Αλάπηπμε Πηινηηθήο Δθαξκνγήο γηα ηε δηελέξγεηα πλδπαζηηθώλ Διέγρσλ

κεηαμύ Πεξηγξαθηθώλ θαη Υσξηθώλ Βάζεσλ Κηεκαηνινγίνπ Μάξηηνο 2012

ύληαμε: Γεσξγαθάθε ηαπξνύια 118 /144

3. CreateAll.spatial.Tables.txt

shp2pgsql -s 2100 -c -g "the_geom" -W "ISO8859-7" -I -D -k C:\Temp\SHAPE\ASTENOT\\"ASTENOT".shp

spatial."ASTENOT" | psql KT19069 lina

shp2pgsql -s 2100 -c -g "the_geom" -W "ISO8859-7" -I -D -k C:\Temp\SHAPE\ASTIK\\"ASTIK".shp

spatial."ASTIK" | psql KT19069 lina

shp2pgsql -s 2100 -c -g "the_geom" -W "ISO8859-7" -I -D -k C:\Temp\SHAPE\ASTOTA\\"ASTOTA".shp

spatial."ASTOTA" | psql KT19069 lina

shp2pgsql -s 2100 -c -g "the_geom" -W "ISO8859-7" -I -D -k C:\Temp\SHAPE\ASTTOM\\"ASTTOM".shp

spatial."ASTTOM" | psql KT19069 lina

shp2pgsql -s 2100 -c -g "the_geom" -W "ISO8859-7" -I -D -k C:\Temp\SHAPE\BLD\\"BLD".shp spatial."BLD" |

psql KT19069 lina

shp2pgsql -s 2100 -c -g "the_geom" -W "ISO8859-7" -I -D -k

C:\Temp\SHAPE\BLOCK_PNT\\"BLOCK_PNT".shp spatial."BLOCK_PNT" | psql KT19069 lina

shp2pgsql -s 2100 -c -g "the_geom" -W "ISO8859-7" -I -D -k C:\Temp\SHAPE\CBOUND\\"CBOUND".shp

spatial."CBOUND" | psql KT19069 lina

shp2pgsql -s 2100 -c -g "the_geom" -W "ISO8859-7" -I -D -k C:\Temp\SHAPE\DBOUND\\"DBOUND".shp

spatial."DBOUND" | psql KT19069 lina

shp2pgsql -s 2100 -c -g "the_geom" -W "ISO8859-7" -I -D -k C:\Temp\SHAPE\EAS\\"EAS".shp spatial."EAS" |

psql KT19069 lina

shp2pgsql -s 2100 -c -g "the_geom" -W "ISO8859-7" -I -D -k C:\Temp\SHAPE\EIA\\"EIA".shp spatial."EIA" |

psql KT19069 lina

shp2pgsql -s 2100 -c -g "the_geom" -W "ISO8859-7" -I -D -k C:\Temp\SHAPE\EIA_PNT\\"EIA_PNT".shp

spatial."EIA_PNT" | psql KT19069 lina

shp2pgsql -s 2100 -c -g "the_geom" -W "ISO8859-7" -I -D -k C:\Temp\SHAPE\FBOUND\\"FBOUND".shp

spatial."FBOUND" | psql KT19069 lina

shp2pgsql -s 2100 -c -g "the_geom" -W "ISO8859-7" -I -D -k C:\Temp\SHAPE\MRT\\"MRT".shp spatial."MRT"

| psql KT19069 lina

shp2pgsql -s 2100 -c -g "the_geom" -W "ISO8859-7" -I -D -k C:\Temp\SHAPE\NOMI\\"NOMI".shp

spatial."NOMI" | psql KT19069 lina

shp2pgsql -s 2100 -c -g "the_geom" -W "ISO8859-7" -I -D -k C:\Temp\SHAPE\OIK\\"OIK".shp spatial."OIK" |

psql KT19069 lina

shp2pgsql -s 2100 -c -g "the_geom" -W "ISO8859-7" -I -D -k C:\Temp\SHAPE\PST\\"PST".shp spatial."PST" |

psql KT19069 lina

shp2pgsql -s 2100 -c -g "the_geom" -W "ISO8859-7" -I -D -k C:\Temp\SHAPE\ROADS\\"ROADS".shp

spatial."ROADS" | psql KT19069 lina

shp2pgsql -s 2100 -c -g "the_geom" -W "ISO8859-7" -I -D -k C:\Temp\SHAPE\VST\\"VST".shp spatial."VST" |

psql KT19069 lina

Αλάπηπμε Πηινηηθήο Δθαξκνγήο γηα ηε δηελέξγεηα πλδπαζηηθώλ Διέγρσλ

κεηαμύ Πεξηγξαθηθώλ θαη Υσξηθώλ Βάζεσλ Κηεκαηνινγίνπ Μάξηηνο 2012

ύληαμε: Γεσξγαθάθε ηαπξνύια 119 /144

4. Δπυηήμαηα Δλέγσυν (SQL)

σλδσαζηηθοί Έιεγτοη Υωρηθής Βάζες θαη Περηγραθηθής Βάζες Αλάρηεζες (Β' Φάζε Κηεκαηογράθεζες)

θωδηθός πίλαθας περηγραθή ειέγτοσ SQL γηα "CreateView" SQL γηα "CreateTable" (κε ζηήιε γεωκεηξίαο)

1_PROP.KAEK_NOTIN_PST PROP

ΚΑΕΚ ποσ σπάρτοσλ ζηολ

πίλαθα PROP θαη δελ σπάρτοσλ ζηολ PST

CREATE VIEW "1_PROP.KAEK_NOTIN_PST" AS SELECT m."KAEK" AS "PROP.KAEK" FROM "PROP" m,

spatial."PST" n WHERE NOT (m."KAEK" IN ( SELECT "PST"."KAEK" FROM spatial."PST")) ORDER BY n."KAEK";

ΜΟΝΟ VIEW --> Εθόζνλ ηα ΚΑΕΚ δελ ππάξρνπλ ζηνλ PST, δελ ππάξρεη θαη

πνιύγωλν πνπ λα αληηζηνηρεί ζε απηά

2_PST.KAEK_NOTIN_PROP PST Ποιύγωλα ηοσ PST κε ΚΑΕΚ ποσ δελ σπάρτοσλ ζηολ πίλαθα PROP

CREATE VIEW "2_PST.KAEK_NOTIN_PROP" AS SELECT

n."KAEK" AS "PST.KAEK" FROM "PROP" m, spatial."PST" n WHERE NOT (n."KAEK" IN ( SELECT "PROP"."KAEK"

FROM "PROP")) ORDER BY n."KAEK";

CREATE TABLE viewtables."2_PST.KAEK_NOTIN_PROP"(gid serial PRIMARY KEY, "KAEK" character varying(12));

SELECT AddGeometryColumn('viewtables','2_PST.KAEK_NOTIN_PROP', 'the_geom','2100','MULTIPOLYGON',2); INSERT INTO viewtables."2_PST.KAEK_NOTIN_PROP" (gid, the_geom, "KAEK")

SELECT DISTINCT n.gid, n.the_geom, n."KAEK" FROM "PROP" m, spatial."VST" n WHERE NOT (n."KAEK" IN ( SELECT "PROP"."KAEK" FROM "PROP"));

3_DIFF_PROP_TYPE PST

Ποιύγωλα ηοσ PST κε

PROP_TYPE αζύκβαηο κε ηο αληίζηοητο PROP_TYPE_CODE ηοσ

πίλαθα PROP (ίδην ΚΑΕΚ - δηαθνξεηηθό είδνο

ηδηνθηεζηαθνύ αληηθεηκέλνπ)

CREATE VIEW "3_DIFF_PROP_TYPE" AS SELECT

n."KAEK" AS "PST.KAEK", n."PROP_TYPE" AS "PST.PROP_TYPE", m."PROP_TYPE_CODE" AS "PROP.PROP_TYPE" FROM spatial."PST" n, "PROP" m

WHERE n."KAEK" = m."KAEK" AND m."PROP_VERT" = 0 AND m."PROP_HOR" = 0 AND n."PROP_TYPE"::text <>

m."PROP_TYPE_CODE"::text ORDER BY n."KAEK";

CREATE TABLE viewtables."3_DIFF_PROP_TYPE"(gid serial PRIMARY KEY, "KAEK" character varying(12));

SELECT AddGeometryColumn('viewtables','3_DIFF_PROP_TYPE', 'the_geom','2100','MULTIPOLYGON',2);

INSERT INTO viewtables."3_DIFF_PROP_TYPE" (gid, the_geom, "KAEK") SELECT n.gid, n.the_geom, n."KAEK" FROM spatial."PST" n, "PROP" m WHERE n."KAEK" = m."KAEK" AND m."PROP_VERT" = 0 AND m."PROP_HOR" = 0

AND n."PROP_TYPE"::text <> m."PROP_TYPE_CODE"::text;

4_DIFF_ADDRESS PST

Εγγραθές ηοσ PST κε ηηκή

ζηο πεδίο ADDRESS δηαθορεηηθή από ηελ αληίζηοητε ηηκή ζηο πεδίο

STREET ηοσ πίλαθα ADRS (αληηζηνίρηζε κε βάζε ην

ΚΑΕΚ)

CREATE VIEW "4_DIFF_ADDRESS" AS SELECT

"PROP"."KAEK" AS "PROP.KAEK", "ADRS"."STREET" || ' ' || coalesce("ADRS"."STREET_FROM",'') || coalesce('-'||"ADRS"."STREET_TO",'') AS "PROP.ADRS",

n."KAEK" AS "PST.KAEK", n."ADDRESS" || ' ' || coalesce(n."NUM", '') AS "PST.ADRS"

FROM spatial."PST" n, "PROP" JOIN ("ADRS" JOIN "PROP_ADRS" ON "ADRS"."ADRS_ID" = "PROP_ADRS"."ADRS_ID") ON "PROP"."PROP_ID" =

"PROP_ADRS"."PROP_ID" WHERE "PROP"."PROP_VERT" = 0 AND

"PROP"."PROP_HOR" = 0 AND "PROP_ADRS"."IS_DEFAULT" = 1 AND "PROP"."KAEK"= n."KAEK" AND ("ADRS"."STREET" || ' ' ||

coalesce("ADRS"."STREET_FROM",'') || coalesce('-'||"ADRS"."STREET_TO",'')) <> (n."ADDRESS" || ' ' ||

coalesce(n."NUM", '')) ORDER BY "PROP"."KAEK";

CREATE TABLE viewtables."4_DIFF_ADDRESS"(gid serial PRIMARY KEY, "KAEK" character varying(12));

SELECT AddGeometryColumn('viewtables','4_DIFF_ADDRESS', 'the_geom','2100','MULTIPOLYGON',2);

INSERT INTO viewtables."4_DIFF_ADDRESS" (gid, the_geom, "KAEK") SELECT n.gid, n.the_geom, "PROP"."KAEK" FROM spatial."PST" n, "PROP" JOIN ("ADRS" JOIN "PROP_ADRS" ON

"ADRS"."ADRS_ID" = "PROP_ADRS"."ADRS_ID") ON "PROP"."PROP_ID" = "PROP_ADRS"."PROP_ID"

WHERE "PROP"."PROP_VERT" = 0 AND "PROP"."PROP_HOR" = 0 AND "PROP_ADRS"."IS_DEFAULT" = 1 AND "PROP"."KAEK"::text = n."KAEK"::text AND ("ADRS"."STREET" || ' ' || coalesce("ADRS"."STREET_FROM",'') || coalesce('-

'||"ADRS"."STREET_TO",'')) <> (n."ADDRESS" || ' ' || coalesce(n."NUM", ''));

Αλάπηπμε Πηινηηθήο Δθαξκνγήο γηα ηε δηελέξγεηα πλδπαζηηθώλ Διέγρσλ

κεηαμύ Πεξηγξαθηθώλ θαη Υσξηθώλ Βάζεσλ Κηεκαηνινγίνπ Μάξηηνο 2012

ύληαμε: Γεσξγαθάθε ηαπξνύια 120 /144

σλδσαζηηθοί Έιεγτοη Υωρηθής Βάζες θαη Περηγραθηθής Βάζες Αλάρηεζες (Β' Φάζε Κηεκαηογράθεζες)

θωδηθός πίλαθας περηγραθή ειέγτοσ SQL γηα "CreateView" SQL γηα "CreateTable" (κε ζηήιε γεωκεηξίαο)

5_DIFF_AREA_MEAS PST

Εγγραθές κε ηηκή ζηο πεδίο AREA ηοσ PST δηαθορεηηθή από ηελ

αληίζηοητε ηηκή ζηο πεδίο AREA_MEAS ηοσ πίλαθα

PROP (αληηζηνίρηζε κε βάζε ην ΚΑΕΚ)

CREATE VIEW "5_DIFF_AREA_MEAS" AS

SELECT m."KAEK" AS "PROP.KAEK", m."AREA_MEAS" AS "PROP.AREA", n."AREA" AS "PST.AREA",

area(n.the_geom) AS "AREA_NEW_MEAS" FROM "PROP" m, spatial."PST" n WHERE m."PROP_VERT" = 0 AND m."PROP_HOR" = 0

AND m."KAEK" = n."KAEK" AND m."AREA_MEAS" <> n."AREA"::double precision ORDER BY m."KAEK";

CREATE TABLE viewtables."5_DIFF_AREA_MEAS"

(gid serial PRIMARY KEY, "KAEK" character varying(12)); SELECT AddGeometryColumn('viewtables','5_DIFF_AREA_MEAS',

'the_geom','2100','MULTIPOLYGON',2); INSERT INTO viewtables."5_DIFF_AREA_MEAS" (gid, the_geom, "KAEK") SELECT n.gid, n.the_geom, m."KAEK" FROM "PROP" m, spatial."PST" n

WHERE m."PROP_VERT" = 0 AND m."PROP_HOR" = 0 AND m."KAEK" = n."KAEK" AND (m."AREA_MEAS" <> n."AREA"::double precision);

6_OEK_KAEK PST

Ποιύγωλα ποσ αληηζηοητούλ ζε

ηδηοθηεζίες ΟΕΚ (γηα έιεγρν ρωξηθήο αληηκεηώπηζεο)

CREATE VIEW "6_OEK_KAEK" AS SELECT DISTINCT

"PROP"."KAEK", "PROP"."PROP_TYPE_CODE", "BEN"."AFM", "BEN"."SURNAME"FROM spatial."PST" AS

n,("PROP" INNER JOIN "RIGHT" ON "PROP"."PROP_ID" = "RIGHT"."PROP_ID") INNER JOIN ("BEN" INNER JOIN "DOC_BEN_RIGHT" ON "BEN"."BEN_ID" =

"DOC_BEN_RIGHT"."BEN_ID") ON "RIGHT"."RIGHT_ID" = "DOC_BEN_RIGHT"."RIGHT_ID"WHERE

(("BEN"."SURNAME"='ΟΡΓΑΝΙΜΟ ΕΡΓΑΣΙΚΗ ΚΑΣΟΙΚΙΑ') AND ("PROP"."PROP_TYPE_CODE"='0101') AND ("PROP"."KAEK" = n."KAEK"))ORDER BY

"PROP"."KAEK";

CREATE TABLE viewtables."6_OEK_KAEK"(gid serial PRIMARY KEY, "KAEK" character varying(12));SELECT AddGeometryColumn('viewtables','6_OEK_KAEK',

'the_geom','2100','MULTIPOLYGON',2);INSERT INTO viewtables."6_OEK_KAEK" (gid, the_geom, "KAEK")SELECT DISTINCT n.gid, n.the_geom, "PROP"."KAEK"FROM spatial."PST" n, "PROP" JOIN "RIGHT" ON "PROP"."PROP_ID"

= "RIGHT"."PROP_ID" JOIN ("BEN" JOIN "DOC_BEN_RIGHT" ON "BEN"."BEN_ID" = "DOC_BEN_RIGHT"."BEN_ID") ON "RIGHT"."RIGHT_ID" =

"DOC_BEN_RIGHT"."RIGHT_ID"WHERE "BEN"."SURNAME" = 'ΟΡΓΑΝΙΜΟ ΕΡΓΑΣΙΚΗ ΚΑΣΟΙΚΙΑ' AND "PROP"."PROP_TYPE_CODE" = '0101' AND "PROP"."KAEK" = n."KAEK";

7_SYNDESI_KAEK_DOC_TYPE-

ORI_TYPE PST

Λίζηα ζύλδεζες ORI_TYPE κε DOC_TYPE, RIGHT_TYPE,

WAYOWN_ID περηγραθηθής βάζες

CREATE VIEW "7_SYNDESI_KAEK_DOC_TYPE-

ORI_TYPE" AS SELECT "PROP"."KAEK", "DOC_TYPE_LUT"."DOC_TYPE_DESCR",

"WAYOWN_LUT"."WAYOWN_DESCR", n."ORI_TYPE" FROM spatial."PST" n, "WAYOWN_LUT" INNER JOIN ("DOC_TYPE_LUT" INNER JOIN (("PROP" INNER JOIN

"RIGHT" ON "PROP"."PROP_ID" = "RIGHT"."PROP_ID") INNER JOIN ("DOC" INNER JOIN "DOC_BEN_RIGHT" ON

"DOC"."DOC_ID" = "DOC_BEN_RIGHT"."DOC_ID") ON "RIGHT"."RIGHT_ID" = "DOC_BEN_RIGHT"."RIGHT_ID") ON "DOC_TYPE_LUT"."DOC_TYPE" =

"DOC"."DOC_TYPE") ON "WAYOWN_LUT"."WAYOWN_ID" =

"DOC_BEN_RIGHT"."WAYOWN_ID" WHERE "PROP"."KAEK" = n."KAEK" ORDER BY "PROP"."KAEK";

ΜΟΝΟ VIEW --> Σν OUTPUT ζα είλαη κόλν ιίζηα (θαη όρη πίλαθαο κε ζηήιε γεωκεηξίαο) γηαηί δεκηνπξγνύληαη δηπιόηππα, εμαηηίαο ηνπ όηη ην ίδην γεωηεκάρην

κπνξεί λα ππάξμνπλ πνιιά έγγξαθα (πνιιά DOC_TYPE) ή πνιιέο αηηίεο θηήζεο (πνιιά WAY_OWN_ID)

8_VST.KAEK_NOTIN_PROP VST

Ποιύγωλα ηοσ VST κε

εθηεηακέλο ΚΑΕΚ ποσ δελ σπάρτεη ζηολ πίλαθα PROP

CREATE VIEW "8_VST.KAEK_NOTIN_PROP" AS SELECT DISTINCT n."KAEK" || n."VSTAA" AS "VST.KAEK" FROM "PROP" m, spatial."VST" n

WHERE NOT (n."KAEK" || n."VSTAA" ::text IN ( SELECT "PROP"."KAEK" || "PROP"."PROP_VERT" FROM "PROP"))

ORDER BY n."KAEK" || n."VSTAA";

CREATE TABLE viewtables."8_VST.KAEK_NOTIN_PROP"(gid serial PRIMARY KEY, "KAEK" character varying(15));

SELECT AddGeometryColumn('viewtables','8_VST.KAEK_NOTIN_PROP', 'the_geom','2100','MULTIPOLYGON',2);

INSERT INTO viewtables."8_VST.KAEK_NOTIN_PROP" (gid, the_geom, "KAEK") SELECT DISTINCT n.gid, n.the_geom, n."KAEK" || n."VSTAA" FROM "PROP" m, spatial."VST" n

WHERE NOT (n."KAEK" || n."VSTAA" IN ( SELECT "PROP"."KAEK" || "PROP"."PROP_VERT" FROM "PROP"));

Αλάπηπμε Πηινηηθήο Δθαξκνγήο γηα ηε δηελέξγεηα πλδπαζηηθώλ Διέγρσλ

κεηαμύ Πεξηγξαθηθώλ θαη Υσξηθώλ Βάζεσλ Κηεκαηνινγίνπ Μάξηηνο 2012

ύληαμε: Γεσξγαθάθε ηαπξνύια 121 /144

σλδσαζηηθοί Έιεγτοη Υωρηθής Βάζες θαη Περηγραθηθής Βάζες Αλάρηεζες (Β' Φάζε Κηεκαηογράθεζες)

θωδηθός πίλαθας περηγραθή ειέγτοσ SQL γηα "CreateView" SQL γηα "CreateTable" (κε ζηήιε γεωκεηξίαο)

9_VST.KAEK_NOT_VERT VST

Ποιύγωλα ηοσ VST κε

εθηεηακέλο ΚΑΕΚ ποσ σπάρτεη ζηολ PROP αιιά ποσ δε ζσλδέεηαη κε

θάζεηε ηδηοθηεζία (PROP.PROP_TYPE_CODE <>

02% AND <> 04%)

CREATE VIEW "9_VST.KAEK_NOT_VERT" AS SELECT DISTINCT n."KAEK" || n."VSTAA" AS "VST.KAEK", m."PROP_TYPE_CODE" AS "PROP.PROP_TYPE"

FROM "PROP" m, spatial."VST" n WHERE (n."KAEK" || n."VSTAA")::text = (m."KAEK" ||

m."PROP_VERT")::text AND LEFT (m."PROP_TYPE_CODE",2) <> '02' AND LEFT (m."PROP_TYPE_CODE",2) <> '04'

ORDER BY n."KAEK" || n."VSTAA", m."PROP_TYPE_CODE";

CREATE TABLE viewtables."9_VST.KAEK_NOT_VERT"(gid serial PRIMARY KEY, "KAEK" character varying(15)); SELECT AddGeometryColumn('viewtables','9_VST.KAEK_NOT_VERT',

'the_geom','2100','MULTIPOLYGON',2); INSERT INTO viewtables."9_VST.KAEK_NOT_VERT" (gid, the_geom, "KAEK")

SELECT DISTINCT n.gid, n.the_geom, n."KAEK" || n."VSTAA" FROM "PROP" m, spatial."VST" n WHERE (n."KAEK" || n."VSTAA")::text = (m."KAEK" || m."PROP_VERT")::text

AND LEFT (m."PROP_TYPE_CODE",2) <> '02' AND LEFT (m."PROP_TYPE_CODE",2) <> '04';

10_EAS.KAEK_NOTIN_PROP EAS (δώλεο δνπιείαο)

Ποιύγωλα ηοσ EAS κε ΚΑΕΚ ποσ δελ σπάρτοσλ

ζηολ πίλαθα PROP

CREATE VIEW "10_EAS.KAEK_NOTIN_PROP" AS

SELECT DISTINCT n."KAEK" AS "EAS.KAEK"FROM "PROP" m, spatial."EAS" nWHERE NOT (n."KAEK"::text IN

(SELECT "PROP"."KAEK" FROM "PROP"))ORDER BY n."KAEK";

CREATE TABLE viewtables."10_EAS.KAEK_NOTIN_PROP"(gid serial PRIMARY KEY, "KAEK" character varying(12));SELECT

AddGeometryColumn('viewtables','10_EAS.KAEK_NOTIN_PROP','the_geom','2100','MULTIPOLYGON',2);INSERT INTO viewtables."10_EAS.KAEK_NOTIN_PROP" (gid,

the_geom, "KAEK")SELECT DISTINCT n.gid, n.the_geom, n."KAEK" FROM "PROP" m, spatial."EAS" nWHERE NOT (n."KAEK" IN ( SELECT "PROP"."KAEK" FROM "PROP"));

11_EAS.KAEK_NOT_DOUL EAS (δώλεο δνπιείαο)

Ποιύγωλα ηοσ EAS κε

ΚΑΕΚ ποσ σπάρτοσλ ζηολ PROP αιιά ποσ δε

ζσλδέοληαη κε δηθαίωκα πραγκαηηθής δοσιείας

(RIGHT.RIGHT_CAT_ID <> 02)

CREATE VIEW "11_EAS.KAEK_NOT_DOUL" AS SELECT DISTINCT n."KAEK" AS "EAS.KAEK"

FROM spatial."EAS" n, "PROP" WHERE (n."KAEK" = "PROP"."KAEK")

AND (n."KAEK" NOT IN(SELECT "PROP"."KAEK" FROM "PROP" INNER JOIN "RIGHT"

ON "PROP"."PROP_ID" = "RIGHT"."PROP_ID" WHERE ("RIGHT"."RIGHT_CAT_ID")='02')) ORDER BY n."KAEK";

CREATE TABLE viewtables."11_EAS.KAEK_NOT_DOUL"(gid serial PRIMARY KEY, "KAEK" character varying(12));

SELECT AddGeometryColumn('viewtables','11_EAS.KAEK_NOT_DOUL', 'the_geom','2100','MULTIPOLYGON',2);

INSERT INTO viewtables."11_EAS.KAEK_NOT_DOUL" (gid, the_geom, "KAEK") SELECT DISTINCT n.gid, n.the_geom, n."KAEK" FROM spatial."EAS" n, "PROP" WHERE (n."KAEK" = "PROP"."KAEK") AND

(n."KAEK" NOT IN (SELECT "PROP"."KAEK" FROM "PROP" INNER JOIN "RIGHT" ON "PROP"."PROP_ID" = "RIGHT"."PROP_ID" WHERE

("RIGHT"."RIGHT_CAT_ID")='02'));

12_VSTEAS.KAEK_NOTIN_PROP

VSTEAS_REL (πίλαθαο access πνπ απνηειεί

παξαδνηέν ηεο ρωξηθήο βάζεο

δεδνκέλωλ)

Εγγραθές ηοσ πίλαθα VSTEAS_REL κε ηηκή ζηο

πεδίο PROP_ID ποσ δελ σπάρτεη ζηολ πίλαθα PROP

CREATE VIEW "12_VSTEAS.KAEK_NOTIN_PROP" AS

SELECT m."POLY_ID" AS "VSTEAS.KAEK",m."PROP_ID" AS "VSTEAS.PROP_ID" FROM "VSTEAS_REL" m, "PROP"

WHERE (m."PROP_ID"::double precision NOT IN (SELECT "PROP_ID" FROM "PROP"))

ORDER BY m."POLY_ID";

CREATE TABLE viewtables."12_VSTEAS.KAEK_NOTIN_PROP"(gid serial PRIMARY KEY, "KAEK" character varying(12)); SELECT AddGeometryColumn('viewtables','12_VSTEAS.KAEK_NOTIN_PROP',

'the_geom','2100','MULTIPOLYGON',2); INSERT INTO viewtables."12_VSTEAS.KAEK_NOTIN_PROP" (gid, the_geom,

"KAEK") SELECT n.gid, n.the_geom, LEFT(m."POLY_ID",12) FROM "VSTEAS_REL" m, spatial."PST" n

WHERE LEFT(m."POLY_ID",12) = n."KAEK" AND (m."PROP_ID"::double precision NOT IN (SELECT "PROP_ID" FROM "PROP"));

Αλάπηπμε Πηινηηθήο Δθαξκνγήο γηα ηε δηελέξγεηα πλδπαζηηθώλ Διέγρσλ

κεηαμύ Πεξηγξαθηθώλ θαη Υσξηθώλ Βάζεσλ Κηεκαηνινγίνπ Μάξηηνο 2012

ύληαμε: Γεσξγαθάθε ηαπξνύια 122 /144

σλδσαζηηθοί Έιεγτοη Υωρηθής Βάζες θαη Περηγραθηθής Βάζες Αλάρηεζες (Β' Φάζε Κηεκαηογράθεζες)

θωδηθός πίλαθας περηγραθή ειέγτοσ SQL γηα "CreateView" SQL γηα "CreateTable" (κε ζηήιε γεωκεηξίαο)

13_VSTEAS.KAEK_NOTIN_VST-EAS

VSTEAS_REL (πίλαθαο access πνπ απνηειεί

παξαδνηέν ηεο ρωξηθήο βάζεο

δεδνκέλωλ)

Εγγραθές ηοσ πίλαθα VSTEAS_REL κε ηηκή ζηο

πεδίο POLY_ID ποσ δελ αληηζηοητεί ζε ποιύγωλο ηοσ EAS ή ζε ποιύγωλο

ηοσ VST

CREATE VIEW "13_VSTEAS.KAEK_NOTIN_VST-EAS" AS SELECT DISTINCT m."POLY_ID" AS "VSTEAS.KAEK" FROM "VSTEAS_REL" m, spatial."VST" n, spatial."EAS" k

WHERE (m."POLY_ID" NOT IN (SELECT "POLY_ID" FROM spatial."VST")) AND (m."POLY_ID" NOT IN (SELECT

"POLY_ID" FROM spatial."EAS")) ORDER BY m."POLY_ID";

ΜΟΝΟ VIEW --> Εθόζνλ νη εγγξαθέο δελ αληηζηνηρίδνληαη κε πνιύγωλα ηωλ VST

ή EAS…δελ κπνξεί λα ππάξμεη ρωξηθή απεηθόληζε ηωλ κε ζπκκνξθνύκελωλ εγγξαθώλ!

14_VSTEAS.KAEK_NOT_VERT.DOUL

VSTEAS_REL (πίλαθαο access πνπ απνηειεί

παξαδνηέν ηεο ρωξηθήο βάζεο

δεδνκέλωλ)

Εγγραθές κε ηηκή ζηο πεδίο PROP_ID ποσ

σπάρτεη ζηολ πίλαθα PROP αιιά δελ αληηζηοητεί ζε θάζεηε ηδηοθηεζία θαη

ηασηότρολα δε ζτεηίδεηαη κε δηθαηώκα πραγκαηηθής

δοσιείας

CREATE VIEW "14_VSTEAS.KAEK_NOT_VERT.DOUL" AS

SELECT DISTINCT m."POLY_ID" AS "VSTEAS.KAEK", m."PROP_ID" AS "VSTEAS.PROP_ID" FROM "VSTEAS_REL" m, "PROP"

WHERE m."PROP_ID"::double precision NOT IN (SELECT "PROP"."PROP_ID" FROM "PROP" INNER JOIN "RIGHT"

ON "PROP"."PROP_ID" = "RIGHT"."PROP_ID" WHERE ((("RIGHT"."RIGHT_CAT_ID")='02')) OR (((Left("PROP"."PROP_TYPE_CODE",2))='02')) OR

(((Left("PROP"."PROP_TYPE_CODE",2))='04'))) ORDER BY m."POLY_ID";

CREATE TABLE viewtables."14_VSTEAS.KAEK_NOT_VERT.DOUL"

(gid serial PRIMARY KEY, "KAEK" character varying(12)); SELECT AddGeometryColumn('viewtables','14_VSTEAS.KAEK_NOT_VERT.DOUL',

'the_geom','2100','MULTIPOLYGON',2); INSERT INTO viewtables."14_VSTEAS.KAEK_NOT_VERT.DOUL" (gid, the_geom, "KAEK")

SELECT DISTINCT n.gid, n.the_geom, LEFT(m."POLY_ID",12) FROM "VSTEAS_REL" m, spatial."PST" n

WHERE LEFT(m."POLY_ID",12) = n."KAEK" AND (m."PROP_ID"::double precision NOT IN (SELECT "PROP"."PROP_ID" FROM "PROP" INNER JOIN "RIGHT"

ON "PROP"."PROP_ID" = "RIGHT"."PROP_ID" WHERE ((("RIGHT"."RIGHT_CAT_ID")='02')) OR

(((Left("PROP"."PROP_TYPE_CODE",2))='02')) OR (((Left("PROP"."PROP_TYPE_CODE",2))='04'))));

15_SPATIAL.BLD_NOTIN_BLD BLD (spatial)

Εγγραθές ηοσ BLD (shp)

κε ηηκή ζηο πεδίο BLD_ID ποσ δελ σπάρτεη ζηολ

πίλαθα BLD

CREATE VIEW "15_SPATIAL.BLD_NOTIN_BLD" AS

SELECT "BLD_ID" AS "spatial.BLD_ID"FROM spatial."BLD" nWHERE n."BLD_ID" NOT IN (SELECT

"BLD_ID"FROM "BLD")ORDER BY n."BLD_ID";

CREATE TABLE viewtables."15_SPATIAL.BLD_NOTIN_BLD" (gid serial PRIMARY KEY, "spatial.BLD_ID" integer);SELECT

AddGeometryColumn('viewtables','15_SPATIAL.BLD_NOTIN_BLD','the_geom','2100','POINT',2);INSERT INTO viewtables."15_SPATIAL.BLD_NOTIN_BLD" (gid,

the_geom, "spatial.BLD_ID")SELECT n.gid, n.the_geom, n."BLD_ID" FROM spatial."BLD" n WHERE n."BLD_ID" NOT IN (SELECT "BLD_ID" FROM "BLD");

16_BLD_NOTIN_SPATIAL.BLD BLD (spatial)

Εγγραθές ηοσ πίλαθα BLD

κε ηηκή ζηο πεδίο BLD_ID ποσ δελ σπάρτεη ζηολ BLD

(shp)

CREATE VIEW "16_BLD_NOTIN_SPATIAL.BLD" AS

SELECT "BLD_ID" FROM "BLD" WHERE ("BLD_ID" NOT IN (SELECT "BLD_ID" FROM spatial."BLD"))

ORDER BY "BLD_ID";

ΜΟΝΟ VIEW --> Εθόζνλ νη εγγξαθέο δελ ππάξρνπλ ζηνλ spatial.BLD, δελ ππάξρεη θαη πνιύγωλν πνπ λα αληηζηνηρεί ζε απηέο

17_DIFF_BLD_TYPE BLD (spatial)

Εγγραθές ηοσ BLD (shp)

κε ηηκή ζηο πεδίο BLD_T_C δηαθορεηηθή από ηελ

αληίζηοητε ηηκή ηοσ πεδίοσ BLD_TYPE_CODE ηοσ πίλαθα BLD (ίδην BLD_ID)

CREATE VIEW "17_DIFF_BLD_TYPE" AS SELECT

n."BLD_ID" AS "spatial.BLD_ID", '0'||n."BLD_T_C" AS "spatial.BLD_TYPE", m."BLD_TYPE_CODE" AS "BLD_TYPE" FROM spatial."BLD" n, "BLD" m WHERE

n."BLD_ID"::double precision = m."BLD_ID" AND n."BLD_T_C"::text <> right(m."BLD_TYPE_CODE",1)

ORDER BY n."BLD_ID";

CREATE TABLE viewtables."17_DIFF_BLD_TYPE"(gid serial PRIMARY KEY, "spatial.BLD_ID" integer); SELECT AddGeometryColumn

('viewtables','17_DIFF_BLD_TYPE','the_geom','2100','POINT',2); INSERT INTO viewtables."17_DIFF_BLD_TYPE" (gid, the_geom,

"spatial.BLD_ID") SELECT n.gid, n.the_geom, n."BLD_ID" FROM spatial."BLD" n, "BLD" m WHERE n."BLD_ID"::double precision = m."BLD_ID"

AND n."BLD_T_C"::text <> right(m."BLD_TYPE_CODE",1);

Αλάπηπμε Πηινηηθήο Δθαξκνγήο γηα ηε δηελέξγεηα πλδπαζηηθώλ Διέγρσλ

κεηαμύ Πεξηγξαθηθώλ θαη Υσξηθώλ Βάζεσλ Κηεκαηνινγίνπ Μάξηηνο 2012

ύληαμε: Γεσξγαθάθε ηαπξνύια 123 /144

σλδσαζηηθοί Έιεγτοη Υωρηθής Βάζες θαη Περηγραθηθής Βάζες Αλάρηεζες (Β' Φάζε Κηεκαηογράθεζες)

θωδηθός πίλαθας περηγραθή ειέγτοσ SQL γηα "CreateView" SQL γηα "CreateTable" (κε ζηήιε γεωκεηξίαο)

18_DIFF_BLD_NUM BLD (spatial)

Εγγραθές ηοσ BLD (shp) κε ηηκή ζηο πεδίο BLD_NUM δηαθορεηηθή

από ηελ αληίζηοητε ηηκή ηοσ πεδίοσ BLD_NUM ηοσ

πίλαθα BLD

CREATE VIEW "18_DIFF_BLD_NUM" AS SELECT

n."BLD_ID" AS "spatial.BLD_ID", n."BLD_NUM" AS "spatial.BLD_NUM", m."BLD_NUM" AS "BLD_NUM" FROM

spatial."BLD" n, "BLD" m WHERE n."BLD_ID"::double precision = m."BLD_ID" n."BLD_NUM" <> m."BLD_NUM"

ORDER BY n."BLD_ID";

CREATE TABLE viewtables."18_DIFF_BLD_NUM"(gid serial PRIMARY KEY,

"spatial.BLD_ID" integer); SELECT AddGeometryColumn ('viewtables','18_DIFF_BLD_NUM','the_geom','2100','POINT',2); INSERT INTO viewtables."18_DIFF_BLD_NUM"

(gid, the_geom, "spatial.BLD_ID") SELECT n.gid, n.the_geom, n."BLD_ID" FROM spatial."BLD" n, "BLD" m

WHERE n."BLD_ID"::double precision = m."BLD_ID" AND n."BLD_NUM" <> m."BLD_NUM";

19_PST.KAEK_ENTOS_SXEDIOU CBOUND, PST

Ποιύγωλα (ΚΑΕΚ) ηοσ PST ποσ βρίζθοληαη εληός

ποισγώλωλ ζτεδίοσ πόιεως (CBOUND) θαη

έτοσλ ηηκή ζηο πεδίο ENTOS_SXEDIOU ηοσ πίλαθα PROP = 0 ή = 2

CREATE VIEW "19_PST.KAEK_ENTOS_SXEDIOU" AS SELECT DISTINCT n."KAEK" AS "PST.KAEK", m."ENTOS_SXEDIOU"

FROM spatial."PST" n, spatial."CBOUND" k, "PROP" m WHERE n."KAEK" = m."KAEK" AND contains

(k.the_geom, n.the_geom) AND m."PROP_VERT"=0 AND m."PROP_HOR"=0 AND (m."ENTOS_SXEDIOU"=0 OR m."ENTOS_SXEDIOU"=2)

ORDER BY n."KAEK";

CREATE TABLE viewtables."19_PST.KAEK_ENTOS_SXEDIOU"

(gid serial PRIMARY KEY, "KAEK" character varying (12)); SELECT AddGeometryColumn('viewtables','19_PST.KAEK_ENTOS_SXEDIOU',

'the_geom','2100','MULTIPOLYGON',2); INSERT INTO viewtables."19_PST.KAEK_ENTOS_SXEDIOU" (gid, the_geom, "KAEK") SELECT DISTINCT n.gid, n.the_geom, n."KAEK"

FROM spatial."PST" n, spatial."CBOUND" k, "PROP" m WHERE n."KAEK" = m."KAEK" AND contains (k.the_geom, n.the_geom) AND

m."PROP_VERT"=0 AND m."PROP_HOR"=0 AND (m."ENTOS_SXEDIOU"=0 OR m."ENTOS_SXEDIOU"=2);

20_PST.KAEK_ENTOS_SXEDIOU CBOUND, PST

Ποιύγωλα (ΚΑΕΚ) ηοσ PST ποσ βρίζθοληαη εληός

ποισγώλωλ ζτεδίοσ πόιεως (CBOUND) θαη

έτοσλδηεύζσλζε (STREETNAME): «ΑΝΩΝΤΜΟ»

CREATE VIEW "20_PST.KAEK_ENTOS_SXEDIOU" AS SELECT DISTINCT n."KAEK" AS "PST.KAEK",

"ADRS"."STREET" AS "STREET_NAME" FROM spatial."PST" n, spatial."CBOUND" k, "PROP" JOIN ("ADRS" JOIN "PROP_ADRS" ON "ADRS"."ADRS_ID" =

"PROP_ADRS"."ADRS_ID") ON "PROP"."PROP_ID" = "PROP_ADRS"."PROP_ID"

WHERE n."KAEK" = "PROP"."KAEK" AND contains (k.the_geom, n.the_geom) AND "PROP"."PROP_VERT"=0 AND "PROP"."PROP_HOR"=0

AND "PROP_ADRS"."IS_DEFAULT" = 1 AND "ADRS"."STREET" = 'ΑΝΩΝΤΜΟ'

ORDER BY n."KAEK";

CREATE TABLE viewtables."20_PST.KAEK_ENTOS_SXEDIOU" (gid serial PRIMARY KEY, "KAEK" character varying (12));

SELECT AddGeometryColumn('viewtables','20_PST.KAEK_ENTOS_SXEDIOU', 'the_geom','2100','MULTIPOLYGON',2);

INSERT INTO viewtables."20_PST.KAEK_ENTOS_SXEDIOU" (gid, the_geom, "KAEK") SELECT DISTINCT n.gid, n.the_geom, n."KAEK" FROM spatial."PST" n, spatial."CBOUND" k, "PROP" JOIN ("ADRS" JOIN

"PROP_ADRS" ON "ADRS"."ADRS_ID" = "PROP_ADRS"."ADRS_ID") ON "PROP"."PROP_ID" = "PROP_ADRS"."PROP_ID" WHERE n."KAEK" =

"PROP"."KAEK" AND contains (k.the_geom, n.the_geom) AND "PROP"."PROP_VERT"=0 AND "PROP"."PROP_HOR"=0 AND "PROP_ADRS"."IS_DEFAULT" = 1 AND "ADRS"."STREET" = 'ΑΝΩΝΤΜΟ';

21_PST.KAEK_EKTOS_SXEDIOU CBOUND

Ποιύγωλα (ΚΑΕΚ) ηοσ PST ποσ βρίζθοληαη εθηός

ποισγώλωλ ζτεδίοσ πόιεως (CBOUND) θαη έτοσλ ηηκή ζηο πεδίο

ENTOS_SXEDIOU ηοσ πίλαθα PROP = 1

CREATE VIEW "21_PST.KAEK_EKTOS_SXEDIOU" AS

SELECT DISTINCT n."KAEK" AS "PST.KAEK", m."ENTOS_SXEDIOU" FROM spatial."PST" n, spatial."CBOUND" k, "PROP" m WHERE m."KAEK" =

n."KAEK" AND m."PROP_VERT"=0 AND m."PROP_HOR"=0 AND m."ENTOS_SXEDIOU"=1EXCEPT

(SELECT DISTINCT n."KAEK", m."ENTOS_SXEDIOU" FROM spatial."PST" n, spatial."CBOUND" k, "PROP" m WHERE intersects (k.the_geom, n.the_geom)AND

m."KAEK" = n."KAEK") ORDER BY "PST.KAEK";

CREATE TABLE viewtables."21_PST.KAEK_EKTOS_SXEDIOU" (gid serial PRIMARY

KEY, "KAEK" character varying (12));SELECT AddGeometryColumn('viewtables','21_PST.KAEK_EKTOS_SXEDIOU','the_geom','2100','MULTIPOLYGON',2);INSERT INTO

viewtables."21_PST.KAEK_EKTOS_SXEDIOU" (gid, the_geom, "KAEK") SELECT DISTINCT n.gid, n.the_geom, n."KAEK"FROM spatial."PST" n, spatial."CBOUND" k,

"PROP" mWHERE m."KAEK" = n."KAEK" AND m."PROP_VERT"=0 AND m."PROP_HOR"=0 AND m."ENTOS_SXEDIOU"=1EXCEPT (SELECT DISTINCT n.gid, n.the_geom, n."KAEK"FROM spatial."PST" n, spatial."CBOUND" k, "PROP" m

WHERE intersects(k.the_geom, n.the_geom) AND m."KAEK" = n."KAEK");

Αλάπηπμε Πηινηηθήο Δθαξκνγήο γηα ηε δηελέξγεηα πλδπαζηηθώλ Διέγρσλ

κεηαμύ Πεξηγξαθηθώλ θαη Υσξηθώλ Βάζεσλ Κηεκαηνινγίνπ Μάξηηνο 2012

ύληαμε: Γεσξγαθάθε ηαπξνύια 124 /144

σλδσαζηηθοί Έιεγτοη Υωρηθής Βάζες θαη Περηγραθηθής Βάζες Αλάρηεζες (Β' Φάζε Κηεκαηογράθεζες)

θωδηθός πίλαθας περηγραθή ειέγτοσ SQL γηα "CreateView" SQL γηα "CreateTable" (κε ζηήιε γεωκεηξίαο)

22_PST.KAEK_NOBLD PST

Ποιύγωλα ηοσ PST ποσ αληηζηοητίδοληαη κε τρήζε

ΚΑΣΟΙΚΙΑ, ΕΜΠΟΡΙΟ,θιπ (land_use_code=3100, 32%,4000, 7200) ζηολ

πίλαθα PROP, τωρίς λα περηιακβάλοσλ θηίζκα

(spatial.BLD)

CREATE VIEW "22_PST.KAEK_NOBLD" AS SELECT

DISTINCT n."KAEK" AS "PST.KAEK", "LAND_USE_LUT"."LAND_USE_SUBCAT_DESCR"

FROM spatial."PST" n, spatial."BLD" k, "LAND_USE_LUT" INNER JOIN "PROP" ON

"LAND_USE_LUT"."LAND_USE_CODE" = "PROP"."LAND_USE_CODE" WHERE "PROP"."LAND_USE_CODE" IS NOT NULL AND n."KAEK"

= "PROP"."KAEK" AND "PROP"."PROP_VERT" = 0 AND "PROP"."PROP_HOR" = 0 AND

("PROP"."LAND_USE_CODE" = '3100' OR "left"("PROP"."LAND_USE_CODE", 2) = '32' OR "PROP"."LAND_USE_CODE" = '4000' OR

"PROP"."LAND_USE_CODE" = '7200') AND n."KAEK" NOT IN

(SELECT DISTINCT n."KAEK" FROM spatial."PST" n, spatial."BLD" k, "PROP" WHERE n."KAEK" = "PROP"."KAEK" AND contains (n.the_geom, k.the_geom))

ORDER BY n."KAEK";

CREATE TABLE viewtables."22_PST.KAEK_NOBLD" (gid serial PRIMARY KEY, "KAEK" character varying (12));

SELECT AddGeometryColumn('viewtables','22_PST.KAEK_NOBLD', 'the_geom','2100','MULTIPOLYGON',2);

INSERT INTO viewtables."22_PST.KAEK_NOBLD" (gid, the_geom, "KAEK") SELECT DISTINCT n.gid, n.the_geom, n."KAEK" FROM spatial."PST" n, spatial."BLD" k, "LAND_USE_LUT"

INNER JOIN "PROP" ON "LAND_USE_LUT"."LAND_USE_CODE" = "PROP"."LAND_USE_CODE"

WHERE "PROP"."LAND_USE_CODE" IS NOT NULL AND n."KAEK" = "PROP"."KAEK" AND "PROP"."PROP_VERT" = 0 AND "PROP"."PROP_HOR" = 0 AND ("PROP"."LAND_USE_CODE" = '3100' OR "left"("PROP"."LAND_USE_CODE", 2) =

'32' OR "PROP"."LAND_USE_CODE" = '4000' OR "PROP"."LAND_USE_CODE" = '7200')

AND n."KAEK" NOT IN (SELECT DISTINCT n."KAEK" FROM spatial."PST" n, spatial."BLD" k, "PROP" WHERE n."KAEK" = "PROP"."KAEK" AND contains (n.the_geom, k.the_geom));

Αλάπηπμε Πηινηηθήο Δθαξκνγήο γηα ηε δηελέξγεηα πλδπαζηηθώλ Διέγρσλ

κεηαμύ Πεξηγξαθηθώλ θαη Υσξηθώλ Βάζεσλ Κηεκαηνινγίνπ Μάξηηνο 2012

ύληαμε: Γεσξγαθάθε ηαπξνύια 125 /144

5. CreateAllViews.txt

CREATE OR REPLACE VIEW "1_PROP.KAEK_NOTIN_PST" AS SELECT m."KAEK" AS "PROP.KAEK"

FROM "PROP" m, spatial."PST" n WHERE NOT (m."KAEK" IN ( SELECT "PST"."KAEK" FROM

spatial."PST")) ORDER BY n."KAEK";

CREATE OR REPLACE VIEW "2_PST.KAEK_NOTIN_PROP" AS SELECT n."KAEK" AS "PST.KAEK"

FROM "PROP" m, spatial."PST" n WHERE NOT (n."KAEK" IN ( SELECT "PROP"."KAEK" FROM "PROP"))

ORDER BY n."KAEK";

CREATE OR REPLACE VIEW "3_DIFF_PROP_TYPE" AS SELECT n."KAEK" AS "PST.KAEK",

n."PROP_TYPE" AS "PST.PROP_TYPE", m."PROP_TYPE_CODE" AS "PROP.PROP_TYPE" FROM

spatial."PST" n, "PROP" m WHERE n."KAEK" = m."KAEK" AND m."PROP_VERT" = 0 AND

m."PROP_HOR" = 0 AND n."PROP_TYPE"::text <> m."PROP_TYPE_CODE"::text ORDER BY n."KAEK";

CREATE OR REPLACE VIEW "4_DIFF_ADDRESS" AS SELECT "PROP"."KAEK" AS "PROP.KAEK",

"ADRS"."STREET" || ' ' || coalesce("ADRS"."STREET_FROM",'') || coalesce('-'||"ADRS"."STREET_TO",'') AS

"PROP.ADRS", n."KAEK" AS "PST.KAEK", n."ADDRESS" || ' ' || coalesce(n."NUM", '') AS "PST.ADRS"

FROM spatial."PST" n, "PROP" JOIN ("ADRS" JOIN "PROP_ADRS" ON "ADRS"."ADRS_ID" =

"PROP_ADRS"."ADRS_ID") ON "PROP"."PROP_ID" = "PROP_ADRS"."PROP_ID" WHERE

"PROP"."PROP_VERT" = 0 AND "PROP"."PROP_HOR" = 0 AND "PROP_ADRS"."IS_DEFAULT" = 1 AND

"PROP"."KAEK"= n."KAEK" AND ("ADRS"."STREET" || ' ' || coalesce("ADRS"."STREET_FROM",'') ||

coalesce('-'||"ADRS"."STREET_TO",'')) <> (n."ADDRESS" || ' ' || coalesce(n."NUM", '')) ORDER BY

"PROP"."KAEK";

CREATE OR REPLACE VIEW "5_DIFF_AREA_MEAS" AS SELECT m."KAEK" AS "PROP.KAEK",

m."AREA_MEAS" AS "PROP.AREA", n."AREA" AS "PST.AREA", area(n.the_geom) AS

"AREA_NEW_MEAS" FROM "PROP" m, spatial."PST" n WHERE m."PROP_VERT" = 0 AND

m."PROP_HOR" = 0 AND m."KAEK" = n."KAEK" AND m."AREA_MEAS" <> n."AREA"::double precision

ORDER BY m."KAEK";

CREATE OR REPLACE VIEW "6_OEK_KAEK" AS SELECT DISTINCT "PROP"."KAEK",

"PROP"."PROP_TYPE_CODE", "BEN"."AFM", "BEN"."SURNAME" FROM spatial."PST" AS n,("PROP"

INNER JOIN "RIGHT" ON "PROP"."PROP_ID" = "RIGHT"."PROP_ID") INNER JOIN ("BEN" INNER JOIN

"DOC_BEN_RIGHT" ON "BEN"."BEN_ID" = "DOC_BEN_RIGHT"."BEN_ID") ON "RIGHT"."RIGHT_ID" =

"DOC_BEN_RIGHT"."RIGHT_ID" WHERE (("BEN"."SURNAME"='ΟΡΓΑΝΗΜΟ ΔΡΓΑΣΗΚΖ

ΚΑΣΟΗΚΗΑ') AND ("PROP"."PROP_TYPE_CODE"='0101') AND ("PROP"."KAEK" = n."KAEK")) ORDER

BY "PROP"."KAEK";

CREATE OR REPLACE VIEW "7_SYNDESI_KAEK_DOC_TYPE-ORI_TYPE" AS SELECT

"PROP"."KAEK", "DOC_TYPE_LUT"."DOC_TYPE_DESCR", "WAYOWN_LUT"."WAYOWN_DESCR",

n."ORI_TYPE" FROM spatial."PST" n, "WAYOWN_LUT" INNER JOIN ("DOC_TYPE_LUT" INNER JOIN

(("PROP" INNER JOIN "RIGHT" ON "PROP"."PROP_ID" = "RIGHT"."PROP_ID") INNER JOIN ("DOC"

INNER JOIN "DOC_BEN_RIGHT" ON "DOC"."DOC_ID" = "DOC_BEN_RIGHT"."DOC_ID") ON

"RIGHT"."RIGHT_ID" = "DOC_BEN_RIGHT"."RIGHT_ID") ON "DOC_TYPE_LUT"."DOC_TYPE" =

"DOC"."DOC_TYPE") ON "WAYOWN_LUT"."WAYOWN_ID" = "DOC_BEN_RIGHT"."WAYOWN_ID"

WHERE "PROP"."KAEK" = n."KAEK" ORDER BY "PROP"."KAEK";

CREATE OR REPLACE VIEW "8_VST.KAEK_NOTIN_PROP" AS SELECT DISTINCT n."KAEK" ||

n."VSTAA" AS "VST.KAEK" FROM "PROP" m, spatial."VST" n WHERE NOT (n."KAEK" || n."VSTAA" ::text

IN ( SELECT "PROP"."KAEK" || "PROP"."PROP_VERT" FROM "PROP")) ORDER BY n."KAEK" ||

n."VSTAA";

CREATE OR REPLACE VIEW "9_VST.KAEK_NOT_VERT" AS SELECT DISTINCT n."KAEK" ||

n."VSTAA" AS "VST.KAEK", m."PROP_TYPE_CODE" AS "PROP.PROP_TYPE" FROM "PROP" m,

spatial."VST" n WHERE (n."KAEK" || n."VSTAA")::text = (m."KAEK" || m."PROP_VERT")::text AND LEFT

(m."PROP_TYPE_CODE",2) <> '02' AND LEFT (m."PROP_TYPE_CODE",2) <> '04' ORDER BY n."KAEK" ||

n."VSTAA", m."PROP_TYPE_CODE";

CREATE OR REPLACE VIEW "10_EAS.KAEK_NOTIN_PROP" AS SELECT DISTINCT n."KAEK" AS

"EAS.KAEK" FROM "PROP" m, spatial."EAS" n WHERE NOT (n."KAEK"::text IN ( SELECT

"PROP"."KAEK" FROM "PROP")) ORDER BY n."KAEK";

CREATE OR REPLACE VIEW "11_EAS.KAEK_NOT_DOUL" AS SELECT DISTINCT n."KAEK" AS

"EAS.KAEK" FROM spatial."EAS" n, "PROP" WHERE (n."KAEK" = "PROP"."KAEK") AND (n."KAEK" NOT

IN(SELECT "PROP"."KAEK" FROM "PROP" INNER JOIN "RIGHT" ON "PROP"."PROP_ID" =

"RIGHT"."PROP_ID" WHERE ("RIGHT"."RIGHT_CAT_ID")='02')) ORDER BY n."KAEK";

Αλάπηπμε Πηινηηθήο Δθαξκνγήο γηα ηε δηελέξγεηα πλδπαζηηθώλ Διέγρσλ

κεηαμύ Πεξηγξαθηθώλ θαη Υσξηθώλ Βάζεσλ Κηεκαηνινγίνπ Μάξηηνο 2012

ύληαμε: Γεσξγαθάθε ηαπξνύια 126 /144

CREATE OR REPLACE VIEW "12_VSTEAS.KAEK_NOTIN_PROP" AS SELECT m."POLY_ID" AS

"VSTEAS.KAEK",m."PROP_ID" AS "VSTEAS.PROP_ID" FROM "VSTEAS_REL" m, "PROP" WHERE

(m."PROP_ID"::double precision NOT IN (SELECT "PROP_ID" FROM "PROP")) ORDER BY m."POLY_ID";

CREATE OR REPLACE VIEW "13_VSTEAS.KAEK_NOTIN_VST-EAS" AS SELECT DISTINCT

m."POLY_ID" AS "VSTEAS.KAEK" FROM "VSTEAS_REL" m, spatial."VST" n, spatial."EAS" k WHERE

(m."POLY_ID" NOT IN (SELECT "POLY_ID" FROM spatial."VST")) AND (m."POLY_ID" NOT IN (SELECT

"POLY_ID" FROM spatial."EAS")) ORDER BY m."POLY_ID";

CREATE OR REPLACE VIEW "14_VSTEAS.KAEK_NOT_VERT.DOUL" AS SELECT DISTINCT

m."POLY_ID" AS "VSTEAS.KAEK", m."PROP_ID" AS "VSTEAS.PROP_ID" FROM "VSTEAS_REL" m,

"PROP" WHERE m."PROP_ID"::double precision NOT IN (SELECT "PROP"."PROP_ID" FROM "PROP"

INNER JOIN "RIGHT" ON "PROP"."PROP_ID" = "RIGHT"."PROP_ID" WHERE

((("RIGHT"."RIGHT_CAT_ID")='02')) OR (((Left("PROP"."PROP_TYPE_CODE",2))='02')) OR

(((Left("PROP"."PROP_TYPE_CODE",2))='04'))) ORDER BY m."POLY_ID";

CREATE OR REPLACE VIEW "15_SPATIAL.BLD_NOTIN_BLD" AS SELECT "BLD_ID" AS

"spatial.BLD_ID" FROM spatial."BLD" n WHERE n."BLD_ID" NOT IN (SELECT "BLD_ID" FROM "BLD")

ORDER BY n."BLD_ID";

CREATE OR REPLACE VIEW "16_BLD_NOTIN_SPATIAL.BLD" AS SELECT "BLD_ID" FROM "BLD"

WHERE ("BLD_ID" NOT IN (SELECT "BLD_ID" FROM spatial."BLD")) ORDER BY "BLD_ID";

CREATE OR REPLACE VIEW "17_DIFF_BLD_TYPE" AS SELECT n."BLD_ID" AS "spatial.BLD_ID",

'0'||n."BLD_T_C" AS "spatial.BLD_TYPE", m."BLD_TYPE_CODE" AS "BLD_TYPE" FROM spatial."BLD" n,

"BLD" m WHERE n."BLD_ID"::double precision = m."BLD_ID" AND n."BLD_T_C"::text <>

right(m."BLD_TYPE_CODE",1) ORDER BY n."BLD_ID";

CREATE OR REPLACE VIEW "18_DIFF_BLD_NUM" AS SELECT n."BLD_ID" AS "spatial.BLD_ID",

n."BLD_NUM" AS "spatial.BLD_NUM", m."BLD_NUM" AS "BLD_NUM" FROM spatial."BLD" n, "BLD" m

WHERE n."BLD_ID"::double precision = m."BLD_ID" AND n."BLD_NUM" <> m."BLD_NUM" ORDER BY

n."BLD_ID";

CREATE OR REPLACE VIEW "19_PST.KAEK_ENTOS_SXEDIOU" AS SELECT DISTINCT n."KAEK" AS

"PST.KAEK", m."ENTOS_SXEDIOU" FROM spatial."PST" n, spatial."CBOUND" k, "PROP" m WHERE

n."KAEK" = m."KAEK" AND contains (k.the_geom, n.the_geom) AND m."PROP_VERT"=0 AND

m."PROP_HOR"=0 AND (m."ENTOS_SXEDIOU"=0 OR m."ENTOS_SXEDIOU"=2) ORDER BY n."KAEK";

CREATE OR REPLACE VIEW "20_PST.KAEK_ENTOS_SXEDIOU" AS SELECT DISTINCT n."KAEK" AS

"PST.KAEK", "ADRS"."STREET" AS "STREET_NAME" FROM spatial."PST" n, spatial."CBOUND" k,

"PROP" JOIN ("ADRS" JOIN "PROP_ADRS" ON "ADRS"."ADRS_ID" = "PROP_ADRS"."ADRS_ID") ON

"PROP"."PROP_ID" = "PROP_ADRS"."PROP_ID" WHERE n."KAEK" = "PROP"."KAEK" AND contains

(k.the_geom, n.the_geom) AND "PROP"."PROP_VERT"=0 AND "PROP"."PROP_HOR"=0 AND

"PROP_ADRS"."IS_DEFAULT" = 1 AND "ADRS"."STREET" = 'ΑΝΧΝΤΜΟ' ORDER BY n."KAEK";

CREATE OR REPLACE VIEW "21_PST.KAEK_EKTOS_SXEDIOU" AS SELECT DISTINCT n."KAEK" AS

"PST.KAEK", m."ENTOS_SXEDIOU" FROM spatial."PST" n, spatial."CBOUND" k, "PROP" m WHERE

m."KAEK" = n."KAEK" AND m."PROP_VERT"=0 AND m."PROP_HOR"=0 AND m."ENTOS_SXEDIOU"=1

EXCEPT (SELECT DISTINCT n."KAEK", m."ENTOS_SXEDIOU" FROM spatial."PST" n, spatial."CBOUND"

k, "PROP" m WHERE intersects (k.the_geom, n.the_geom) AND m."KAEK" = n."KAEK") ORDER BY

"PST.KAEK";

CREATE OR REPLACE VIEW "22_PST.KAEK_NOBLD" AS SELECT DISTINCT n."KAEK" AS

"PST.KAEK", "LAND_USE_LUT"."LAND_USE_SUBCAT_DESCR" FROM spatial."PST" n, spatial."BLD" k,

"LAND_USE_LUT" INNER JOIN "PROP" ON "LAND_USE_LUT"."LAND_USE_CODE" =

"PROP"."LAND_USE_CODE" WHERE "PROP"."LAND_USE_CODE" IS NOT NULL AND n."KAEK" =

"PROP"."KAEK" AND "PROP"."PROP_VERT" = 0 AND "PROP"."PROP_HOR" = 0 AND

("PROP"."LAND_USE_CODE" = '3100' OR "left"("PROP"."LAND_USE_CODE", 2) = '32' OR

"PROP"."LAND_USE_CODE" = '4000' OR "PROP"."LAND_USE_CODE" = '7200') AND n."KAEK" NOT IN

(SELECT DISTINCT n."KAEK" FROM spatial."PST" n, spatial."BLD" k, "PROP" WHERE n."KAEK" =

"PROP"."KAEK" AND contains (n.the_geom, k.the_geom)) ORDER BY n."KAEK";

Αλάπηπμε Πηινηηθήο Δθαξκνγήο γηα ηε δηελέξγεηα πλδπαζηηθώλ Διέγρσλ

κεηαμύ Πεξηγξαθηθώλ θαη Υσξηθώλ Βάζεσλ Κηεκαηνινγίνπ Μάξηηνο 2012

ύληαμε: Γεσξγαθάθε ηαπξνύια 127 /144

6. CreateAllTables.txt

CREATE TABLE viewtables."2_PST.KAEK_NOTIN_PROP"(gid serial PRIMARY KEY,

"KAEK" character varying(12));

SELECT AddGeometryColumn('viewtables','2_PST.KAEK_NOTIN_PROP',

'the_geom','2100','MULTIPOLYGON',2);

INSERT INTO viewtables."2_PST.KAEK_NOTIN_PROP" (gid, the_geom, "KAEK")

SELECT DISTINCT n.gid, n.the_geom, n."KAEK" FROM "PROP" m, spatial."VST" n

WHERE NOT (n."KAEK" IN ( SELECT "PROP"."KAEK" FROM "PROP"));

CREATE TABLE viewtables."3_DIFF_PROP_TYPE"(gid serial PRIMARY KEY,

"KAEK" character varying(12));

SELECT AddGeometryColumn('viewtables','3_DIFF_PROP_TYPE',

'the_geom','2100','MULTIPOLYGON',2);

INSERT INTO viewtables."3_DIFF_PROP_TYPE" (gid, the_geom, "KAEK")

SELECT n.gid, n.the_geom, n."KAEK"

FROM spatial."PST" n, "PROP" m

WHERE n."KAEK" = m."KAEK" AND m."PROP_VERT" = 0 AND m."PROP_HOR" = 0 AND

n."PROP_TYPE"::text <> m."PROP_TYPE_CODE"::text;

CREATE TABLE viewtables."4_DIFF_ADDRESS"(gid serial PRIMARY KEY, "KAEK" character varying(12));

SELECT AddGeometryColumn('viewtables','4_DIFF_ADDRESS',

'the_geom','2100','MULTIPOLYGON',2);

INSERT INTO viewtables."4_DIFF_ADDRESS" (gid, the_geom, "KAEK")

SELECT n.gid, n.the_geom, "PROP"."KAEK"

FROM spatial."PST" n, "PROP" JOIN ("ADRS" JOIN "PROP_ADRS" ON "ADRS"."ADRS_ID" =

"PROP_ADRS"."ADRS_ID") ON "PROP"."PROP_ID" = "PROP_ADRS"."PROP_ID"

WHERE "PROP"."PROP_VERT" = 0 AND "PROP"."PROP_HOR" = 0 AND "PROP_ADRS"."IS_DEFAULT" =

1 AND "PROP"."KAEK"::text = n."KAEK"::text

AND ("ADRS"."STREET" || ' ' || coalesce("ADRS"."STREET_FROM",'') || coalesce('-

'||"ADRS"."STREET_TO",'')) <> (n."ADDRESS" || ' ' || coalesce(n."NUM", ''));

CREATE TABLE viewtables."5_DIFF_AREA_MEAS"

(gid serial PRIMARY KEY, "KAEK" character varying(12));

SELECT AddGeometryColumn('viewtables','5_DIFF_AREA_MEAS',

'the_geom','2100','MULTIPOLYGON',2);

INSERT INTO viewtables."5_DIFF_AREA_MEAS" (gid, the_geom, "KAEK")

SELECT n.gid, n.the_geom, m."KAEK"

FROM "PROP" m, spatial."PST" n

WHERE m."PROP_VERT" = 0 AND m."PROP_HOR" = 0 AND m."KAEK" = n."KAEK"

AND (m."AREA_MEAS" <> n."AREA"::double precision);

CREATE TABLE viewtables."6_OEK_KAEK"(gid serial PRIMARY KEY, "KAEK" character varying(12));

SELECT AddGeometryColumn('viewtables','6_OEK_KAEK', 'the_geom','2100','MULTIPOLYGON',2);

INSERT INTO viewtables."6_OEK_KAEK" (gid, the_geom, "KAEK")

SELECT DISTINCT n.gid, n.the_geom, "PROP"."KAEK"

FROM spatial."PST" n, "PROP" JOIN "RIGHT" ON "PROP"."PROP_ID" = "RIGHT"."PROP_ID" JOIN ("BEN"

JOIN "DOC_BEN_RIGHT" ON "BEN"."BEN_ID" = "DOC_BEN_RIGHT"."BEN_ID") ON

"RIGHT"."RIGHT_ID" = "DOC_BEN_RIGHT"."RIGHT_ID"

WHERE "BEN"."SURNAME" = 'ΟΡΓΑΝΗΜΟ ΔΡΓΑΣΗΚΖ ΚΑΣΟΗΚΗΑ' AND

"PROP"."PROP_TYPE_CODE" = '0101' AND "PROP"."KAEK" = n."KAEK";

CREATE TABLE viewtables."8_VST.KAEK_NOTIN_PROP"(gid serial PRIMARY KEY,

"KAEK" character varying(15));

SELECT AddGeometryColumn('viewtables','8_VST.KAEK_NOTIN_PROP',

'the_geom','2100','MULTIPOLYGON',2);

INSERT INTO viewtables."8_VST.KAEK_NOTIN_PROP" (gid, the_geom, "KAEK")

SELECT DISTINCT n.gid, n.the_geom, n."KAEK" || n."VSTAA"

FROM "PROP" m, spatial."VST" n

WHERE NOT (n."KAEK" || n."VSTAA" IN ( SELECT "PROP"."KAEK" || "PROP"."PROP_VERT" FROM

"PROP"));

CREATE TABLE viewtables."9_VST.KAEK_NOT_VERT"(gid serial PRIMARY KEY,

"KAEK" character varying(15));

SELECT AddGeometryColumn('viewtables','9_VST.KAEK_NOT_VERT',

'the_geom','2100','MULTIPOLYGON',2);

INSERT INTO viewtables."9_VST.KAEK_NOT_VERT"

Αλάπηπμε Πηινηηθήο Δθαξκνγήο γηα ηε δηελέξγεηα πλδπαζηηθώλ Διέγρσλ

κεηαμύ Πεξηγξαθηθώλ θαη Υσξηθώλ Βάζεσλ Κηεκαηνινγίνπ Μάξηηνο 2012

ύληαμε: Γεσξγαθάθε ηαπξνύια 128 /144

(gid, the_geom, "KAEK")

SELECT DISTINCT n.gid, n.the_geom, n."KAEK" || n."VSTAA"

FROM "PROP" m, spatial."VST" n

WHERE (n."KAEK" || n."VSTAA")::text = (m."KAEK" || m."PROP_VERT")::text

AND LEFT (m."PROP_TYPE_CODE",2) <> '02' AND LEFT (m."PROP_TYPE_CODE",2) <> '04';

CREATE TABLE viewtables."10_EAS.KAEK_NOTIN_PROP"(gid serial PRIMARY KEY,

"KAEK" character varying(12));

SELECT AddGeometryColumn('viewtables','10_EAS.KAEK_NOTIN_PROP',

'the_geom','2100','MULTIPOLYGON',2);

INSERT INTO viewtables."10_EAS.KAEK_NOTIN_PROP" (gid, the_geom, "KAEK")

SELECT DISTINCT n.gid, n.the_geom, n."KAEK"

FROM "PROP" m, spatial."EAS" n

WHERE NOT (n."KAEK" IN ( SELECT "PROP"."KAEK" FROM "PROP"));

CREATE TABLE viewtables."11_EAS.KAEK_NOT_DOUL"(gid serial PRIMARY KEY,

"KAEK" character varying(12));

SELECT AddGeometryColumn('viewtables','11_EAS.KAEK_NOT_DOUL',

'the_geom','2100','MULTIPOLYGON',2);

INSERT INTO viewtables."11_EAS.KAEK_NOT_DOUL" (gid, the_geom, "KAEK")

SELECT DISTINCT n.gid, n.the_geom, n."KAEK"

FROM spatial."EAS" n, "PROP" WHERE (n."KAEK" = "PROP"."KAEK")

AND (n."KAEK" NOT IN (SELECT "PROP"."KAEK" FROM "PROP" INNER JOIN "RIGHT"

ON "PROP"."PROP_ID" = "RIGHT"."PROP_ID" WHERE ("RIGHT"."RIGHT_CAT_ID")='02'));

CREATE TABLE viewtables."12_VSTEAS.KAEK_NOTIN_PROP"(gid serial PRIMARY KEY, "KAEK"

character varying(12));

SELECT AddGeometryColumn('viewtables','12_VSTEAS.KAEK_NOTIN_PROP',

'the_geom','2100','MULTIPOLYGON',2);

INSERT INTO viewtables."12_VSTEAS.KAEK_NOTIN_PROP" (gid, the_geom, "KAEK")

SELECT n.gid, n.the_geom, LEFT(m."POLY_ID",12)

FROM "VSTEAS_REL" m, spatial."PST" n

WHERE LEFT(m."POLY_ID",12) = n."KAEK" AND (m."PROP_ID"::double precision NOT IN (SELECT

"PROP_ID" FROM "PROP"));

CREATE TABLE viewtables."14_VSTEAS.KAEK_NOT_VERT.DOUL"

(gid serial PRIMARY KEY, "KAEK" character varying(12));

SELECT AddGeometryColumn('viewtables','14_VSTEAS.KAEK_NOT_VERT.DOUL',

'the_geom','2100','MULTIPOLYGON',2);

INSERT INTO viewtables."14_VSTEAS.KAEK_NOT_VERT.DOUL" (gid, the_geom, "KAEK")

SELECT DISTINCT n.gid, n.the_geom, LEFT(m."POLY_ID",12)

FROM "VSTEAS_REL" m, spatial."PST" n

WHERE LEFT(m."POLY_ID",12) = n."KAEK" AND (m."PROP_ID"::double precision NOT IN

(SELECT "PROP"."PROP_ID" FROM "PROP" INNER JOIN "RIGHT"

ON "PROP"."PROP_ID" = "RIGHT"."PROP_ID" WHERE ((("RIGHT"."RIGHT_CAT_ID")='02'))

OR (((Left("PROP"."PROP_TYPE_CODE",2))='02')) OR (((Left("PROP"."PROP_TYPE_CODE",2))='04'))));

CREATE TABLE viewtables."15_SPATIAL.BLD_NOTIN_BLD"

(gid serial PRIMARY KEY, "spatial.BLD_ID" integer);

SELECT AddGeometryColumn('viewtables','15_SPATIAL.BLD_NOTIN_BLD',

'the_geom','2100','POINT',2);

INSERT INTO viewtables."15_SPATIAL.BLD_NOTIN_BLD" (gid, the_geom, "spatial.BLD_ID")

SELECT n.gid, n.the_geom, n."BLD_ID" FROM spatial."BLD" n

WHERE n."BLD_ID" NOT IN (SELECT "BLD_ID" FROM "BLD");

CREATE TABLE viewtables."17_DIFF_BLD_TYPE"(gid serial PRIMARY KEY,

"spatial.BLD_ID" integer);

SELECT AddGeometryColumn('viewtables','17_DIFF_BLD_TYPE','the_geom','2100','POINT',2);

INSERT INTO viewtables."17_DIFF_BLD_TYPE" (gid, the_geom, "spatial.BLD_ID")

SELECT n.gid, n.the_geom, n."BLD_ID"

FROM spatial."BLD" n, "BLD" m

WHERE n."BLD_ID"::double precision = m."BLD_ID"

AND n."BLD_T_C"::text <> right(m."BLD_TYPE_CODE",1);

CREATE TABLE viewtables."18_DIFF_BLD_NUM"(gid serial PRIMARY KEY,

"spatial.BLD_ID" integer);

SELECT AddGeometryColumn('viewtables','18_DIFF_BLD_NUM','the_geom','2100','POINT',2);

Αλάπηπμε Πηινηηθήο Δθαξκνγήο γηα ηε δηελέξγεηα πλδπαζηηθώλ Διέγρσλ

κεηαμύ Πεξηγξαθηθώλ θαη Υσξηθώλ Βάζεσλ Κηεκαηνινγίνπ Μάξηηνο 2012

ύληαμε: Γεσξγαθάθε ηαπξνύια 129 /144

INSERT INTO viewtables."18_DIFF_BLD_NUM"

(gid, the_geom, "spatial.BLD_ID")

SELECT n.gid, n.the_geom, n."BLD_ID" FROM spatial."BLD" n, "BLD" m

WHERE n."BLD_ID"::double precision = m."BLD_ID" AND n."BLD_NUM" <> m."BLD_NUM";

CREATE TABLE viewtables."19_PST.KAEK_ENTOS_SXEDIOU"

(gid serial PRIMARY KEY, "KAEK" character varying (12));

SELECT AddGeometryColumn('viewtables','19_PST.KAEK_ENTOS_SXEDIOU',

'the_geom','2100','MULTIPOLYGON',2);

INSERT INTO viewtables."19_PST.KAEK_ENTOS_SXEDIOU" (gid, the_geom, "KAEK")

SELECT DISTINCT n.gid, n.the_geom, n."KAEK"

FROM spatial."PST" n, spatial."CBOUND" k, "PROP" m

WHERE n."KAEK" = m."KAEK" AND contains (k.the_geom, n.the_geom) AND m."PROP_VERT"=0 AND

m."PROP_HOR"=0

AND (m."ENTOS_SXEDIOU"=0 OR m."ENTOS_SXEDIOU"=2);

CREATE TABLE viewtables."20_PST.KAEK_ENTOS_SXEDIOU" (gid serial PRIMARY KEY, "KAEK"

character varying (12));

SELECT AddGeometryColumn('viewtables','20_PST.KAEK_ENTOS_SXEDIOU',

'the_geom','2100','MULTIPOLYGON',2);

INSERT INTO viewtables."20_PST.KAEK_ENTOS_SXEDIOU" (gid, the_geom, "KAEK")

SELECT DISTINCT n.gid, n.the_geom, n."KAEK"

FROM spatial."PST" n, spatial."CBOUND" k, "PROP" JOIN ("ADRS" JOIN "PROP_ADRS"

ON "ADRS"."ADRS_ID" = "PROP_ADRS"."ADRS_ID") ON "PROP"."PROP_ID" =

"PROP_ADRS"."PROP_ID"

WHERE n."KAEK" = "PROP"."KAEK" AND contains (k.the_geom, n.the_geom) AND

"PROP"."PROP_VERT"=0 AND "PROP"."PROP_HOR"=0

AND "PROP_ADRS"."IS_DEFAULT" = 1 AND "ADRS"."STREET" = 'ΑΝΧΝΤΜΟ';

CREATE TABLE viewtables."21_PST.KAEK_EKTOS_SXEDIOU" (gid serial PRIMARY KEY, "KAEK"

character varying (12));

SELECT AddGeometryColumn('viewtables','21_PST.KAEK_EKTOS_SXEDIOU',

'the_geom','2100','MULTIPOLYGON',2);

INSERT INTO viewtables."21_PST.KAEK_EKTOS_SXEDIOU" (gid, the_geom, "KAEK")

SELECT DISTINCT n.gid, n.the_geom, n."KAEK"

FROM spatial."PST" n, spatial."CBOUND" k, "PROP" m

WHERE m."KAEK" = n."KAEK" AND m."PROP_VERT"=0 AND m."PROP_HOR"=0 AND

m."ENTOS_SXEDIOU"=1

EXCEPT (SELECT DISTINCT n.gid, n.the_geom, n."KAEK"

FROM spatial."PST" n, spatial."CBOUND" k, "PROP" m

WHERE intersects(k.the_geom, n.the_geom) AND m."KAEK" = n."KAEK");

CREATE TABLE viewtables."22_PST.KAEK_NOBLD" (gid serial PRIMARY KEY, "KAEK" character varying

(12));

SELECT AddGeometryColumn('viewtables','22_PST.KAEK_NOBLD',

'the_geom','2100','MULTIPOLYGON',2);

INSERT INTO viewtables."22_PST.KAEK_NOBLD" (gid, the_geom, "KAEK")

SELECT DISTINCT n.gid, n.the_geom, n."KAEK"

FROM spatial."PST" n, spatial."BLD" k, "LAND_USE_LUT"

INNER JOIN "PROP" ON "LAND_USE_LUT"."LAND_USE_CODE" = "PROP"."LAND_USE_CODE"

WHERE "PROP"."LAND_USE_CODE" IS NOT NULL AND n."KAEK" = "PROP"."KAEK" AND

"PROP"."PROP_VERT" = 0 AND "PROP"."PROP_HOR" = 0

AND ("PROP"."LAND_USE_CODE" = '3100' OR "left"("PROP"."LAND_USE_CODE", 2) = '32' OR

"PROP"."LAND_USE_CODE" = '4000' OR "PROP"."LAND_USE_CODE" = '7200')

AND n."KAEK" NOT IN

(SELECT DISTINCT n."KAEK" FROM spatial."PST" n, spatial."BLD" k, "PROP" WHERE n."KAEK" =

"PROP"."KAEK" AND contains (n.the_geom, k.the_geom));

Αλάπηπμε Πηινηηθήο Δθαξκνγήο γηα ηε δηελέξγεηα πλδπαζηηθώλ Διέγρσλ

κεηαμύ Πεξηγξαθηθώλ θαη Υσξηθώλ Βάζεσλ Κηεκαηνινγίνπ Μάξηηνο 2012

ύληαμε: Γεσξγαθάθε ηαπξνύια 130 /144

Αλάπηπμε Πηινηηθήο Δθαξκνγήο γηα ηε δηελέξγεηα πλδπαζηηθώλ Διέγρσλ

κεηαμύ Πεξηγξαθηθώλ θαη Υσξηθώλ Βάζεσλ Κηεκαηνινγίνπ Μάξηηνο 2012

ύληαμε: Γεσξγαθάθε ηαπξνύια 131 /144

Παπάπηημα ΙΙΙ

Πηγαίορ Κώδικαρ Δθαπμογήρ

1. Κλάζη (θόπμα) ServerConnection

2. Κλάζη (θόπμα) DatabaseConnection

3. Κλάζη (θόπμα) Main

4. Κλάζη ServerConnectionHandler

5. Κλάζη QCproxy

6. Module Utils

Αλάπηπμε Πηινηηθήο Δθαξκνγήο γηα ηε δηελέξγεηα πλδπαζηηθώλ Διέγρσλ

κεηαμύ Πεξηγξαθηθώλ θαη Υσξηθώλ Βάζεσλ Κηεκαηνινγίνπ Μάξηηνο 2012

ύληαμε: Γεσξγαθάθε ηαπξνύια 132 /144

Αλάπηπμε Πηινηηθήο Δθαξκνγήο γηα ηε δηελέξγεηα πλδπαζηηθώλ Διέγρσλ

κεηαμύ Πεξηγξαθηθώλ θαη Υσξηθώλ Βάζεσλ Κηεκαηνινγίνπ Μάξηηνο 2012

ύληαμε: Γεσξγαθάθε ηαπξνύια 133 /144

1. Κλάζη (θόπμα) ServerConnection Imports Npgsql Public Class ServerConnection Private Function ValidateInput() As Boolean Dim hasErrors As Boolean ErrorProvider1.Clear() hasErrors = hasErrors Or Not ValidateServer() hasErrors = hasErrors Or Not ValidatePort() hasErrors = hasErrors Or Not ValidateUserId() hasErrors = hasErrors Or Not ValidatePassword() Return Not hasErrors End Function Private Function ValidateServer() As Boolean If String.IsNullOrWhiteSpace(txtServer.Text) Then ErrorProvider1.SetError(txtServer, "Η τιμή δεν είναι έγκυρη!") Return False Else ErrorProvider1.SetError(txtServer, Nothing) Return True End If End Function Private Function ValidatePort() As Boolean If If(String.IsNullOrWhiteSpace(txtPort.Text), True, Not IsNumeric(txtPort.Text)) Then ErrorProvider1.SetError(txtPort, "Η τιμή δεν είναι έγκυρη!") Return False Else ErrorProvider1.SetError(txtPort, Nothing) Return True End If End Function Private Function ValidateUserId() As Boolean If String.IsNullOrWhiteSpace(txtUserId.Text) Then ErrorProvider1.SetError(txtUserId, "Η τιμή δεν είναι έγκυρη!") Return False Else ErrorProvider1.SetError(txtUserId, Nothing) Return True End If End Function Private Function ValidatePassword() As Boolean If String.IsNullOrWhiteSpace(txtPassword.Text) Then ErrorProvider1.SetError(txtPassword, "Η τιμή δεν είναι έγκυρη!") Return False Else ErrorProvider1.SetError(txtPassword, Nothing) Return True End If End Function Private Sub LoadServerConnectionSettings() txtServer.Text = ServerConnectionHandler.ServerName txtPassword.Text = ServerConnectionHandler.Password txtPort.Text = ServerConnectionHandler.Port txtUserId.Text = ServerConnectionHandler.UserId

Αλάπηπμε Πηινηηθήο Δθαξκνγήο γηα ηε δηελέξγεηα πλδπαζηηθώλ Διέγρσλ

κεηαμύ Πεξηγξαθηθώλ θαη Υσξηθώλ Βάζεσλ Κηεκαηνινγίνπ Μάξηηνο 2012

ύληαμε: Γεσξγαθάθε ηαπξνύια 134 /144

End Sub Private Sub SaveServerConnectionSettings() ServerConnectionHandler.ServerName = txtServer.Text ServerConnectionHandler.UserId = txtUserId.Text ServerConnectionHandler.Port = txtPort.Text ServerConnectionHandler.Password = txtPassword.Text End Sub Private Function TestConnectionSettings(ByVal quiet As Boolean) As Boolean If Not ValidateInput() Then Return False If ServerConnectionHandler.TestConnection(ServerConnectionHandler.GetConnectionString(txtServer.Text, txtPort.Text, txtUserId.Text, txtPassword.Text, "postgres")) Then If Not quiet Then MessageBox.Show("Η ςύνδεςη με τον διακομιςτή ολοκληρώθηκε με επιτυχία!", "Επιτυχήσ Σύνδεςησ", MessageBoxButtons.OK, MessageBoxIcon.Information) Return True Else MessageBox.Show("Η ςύνδεςη με τον διακομιςτή απέτυχε!", "Σφάλμα Σύνδεςησ", MessageBoxButtons.OK, MessageBoxIcon.Error) Return False End If End Function Private Sub cmdOK_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdOK.Click Try Cursor = Cursors.WaitCursor If TestConnectionSettings(True) Then SaveServerConnectionSettings() DialogResult = DialogResult.OK Close() End If Finally Cursor = Cursors.Default End Try End Sub Private Sub cmdTest_Click(sender As System.Object, e As System.EventArgs) Handles cmdTest.Click Try Cursor = Cursors.WaitCursor TestConnectionSettings(False) Finally Cursor = Cursors.Default End Try End Sub Private Sub ServerConnection_Load(sender As Object, e As System.EventArgs) Handles Me.Load LoadServerConnectionSettings() End Sub End Class

2. Κλάζη (θόπμα) DatabaseConnection

Public Class DatabaseConnection Public ReadOnly Property Database As String

Αλάπηπμε Πηινηηθήο Δθαξκνγήο γηα ηε δηελέξγεηα πλδπαζηηθώλ Διέγρσλ

κεηαμύ Πεξηγξαθηθώλ θαη Υσξηθώλ Βάζεσλ Κηεκαηνινγίνπ Μάξηηνο 2012

ύληαμε: Γεσξγαθάθε ηαπξνύια 135 /144

Get Return cmbDatabases.Text End Get End Property Private Sub LoadDatabases() cmbDatabases.Items.Clear() cmbDatabases.Items.AddRange(ServerConnectionHandler.GetDatabases) End Sub Private Sub DatabaseConnection_Load(sender As Object, e As System.EventArgs) Handles Me.Load LoadDatabases() End Sub Private Sub cmdOK_Click(sender As System.Object, e As System.EventArgs) Handles cmdOK.Click If cmbDatabases.SelectedIndex >= 0 Then DialogResult = DialogResult.OK Close() Else : MessageBox.Show("Παρακαλώ επιλέξτε πρώτα μια βάςη δεδομένων απο τη λίςτα!", "Εςφαλμένη Ενέργεια", MessageBoxButtons.OK, MessageBoxIcon.Error) End If End Sub Private Sub cmdCancel_Click(sender As System.Object, e As System.EventArgs) Handles cmdCancel.Click Close() End Sub

End Class

3. Κλάζη (θόπμα) Main Imports DotSpatial.Controls Imports DotSpatial.Symbology Public Class Main Private _lastQualityCheck As QCproxy Private ReadOnly _noQClist As New List(Of String)() Private Sub Initialize() ServerConnectionHandler.ChangeServerSettings() If ServerConnectionHandler.ServerConnectionEstablished Then SwitchDatabase() UpdateConnectionIndicators() UpdateServerOptions(ServerConnectionHandler.ServerConnectionEstablished) End If LoadQualityChecks() InitializeMapToolbar() InitializeQClistWithNoMap() End Sub Private Sub InitializeQClistWithNoMap() _noQClist.Add("1_PROP.KAEK_NOTIN_PST") _noQClist.Add("7_SYNDESI_KAEK_DOC_TYPE-ORI_TYPE") _noQClist.Add("13_VSTEAS.KAEK_NOTIN_VST-EAS") _noQClist.Add("16_BLD_NOTIN_SPATIAL.BLD") End Sub Private Sub DatabaseChanged() UpdateDatabaseOptions(ServerConnectionHandler.DatabaseName IsNot Nothing)

Αλάπηπμε Πηινηηθήο Δθαξκνγήο γηα ηε δηελέξγεηα πλδπαζηηθώλ Διέγρσλ

κεηαμύ Πεξηγξαθηθώλ θαη Υσξηθώλ Βάζεσλ Κηεκαηνινγίνπ Μάξηηνο 2012

ύληαμε: Γεσξγαθάθε ηαπξνύια 136 /144

UpdateConnectionIndicators() End Sub Private Sub ServerConnectionStatusChanged() UpdateServerOptions(ServerConnectionHandler.ServerConnectionEstablished) UpdateConnectionIndicators() End Sub Private Sub UpdateDatabaseOptions(ByVal enable As Boolean) tlRunAllChecks.Enabled = enable tlCreateShapeFiles.Enabled = enable End Sub Private Sub UpdateServerOptions(ByVal enable As Boolean) tlSwitchDatabase.Enabled = enable End Sub Private Sub UpdateConnectionIndicators() tlServerName.Text = String.Format("Διακομιςτήσ: {0}", ServerConnectionHandler.ServerName) tlDatabaseName.Text = String.Format("Βάςη Δεδομένων: {0}", ServerConnectionHandler.DatabaseName) End Sub Private Sub LoadQualityChecks() BindingSource1.Clear() BindingSource1.Add(QCproxy.GetQCProxy(My.Resources.QC1)) BindingSource1.Add(QCproxy.GetQCProxy(My.Resources.QC2)) BindingSource1.Add(QCproxy.GetQCProxy(My.Resources.QC3)) BindingSource1.Add(QCproxy.GetQCProxy(My.Resources.QC4)) BindingSource1.Add(QCproxy.GetQCProxy(My.Resources.QC5)) BindingSource1.Add(QCproxy.GetQCProxy(My.Resources.QC6)) BindingSource1.Add(QCproxy.GetQCProxy(My.Resources.QC7)) BindingSource1.Add(QCproxy.GetQCProxy(My.Resources.QC8)) BindingSource1.Add(QCproxy.GetQCProxy(My.Resources.QC9)) BindingSource1.Add(QCproxy.GetQCProxy(My.Resources.QC10)) BindingSource1.Add(QCproxy.GetQCProxy(My.Resources.QC11)) BindingSource1.Add(QCproxy.GetQCProxy(My.Resources.QC12)) BindingSource1.Add(QCproxy.GetQCProxy(My.Resources.QC13)) BindingSource1.Add(QCproxy.GetQCProxy(My.Resources.QC14)) BindingSource1.Add(QCproxy.GetQCProxy(My.Resources.QC15)) BindingSource1.Add(QCproxy.GetQCProxy(My.Resources.QC16)) BindingSource1.Add(QCproxy.GetQCProxy(My.Resources.QC17)) BindingSource1.Add(QCproxy.GetQCProxy(My.Resources.QC18)) BindingSource1.Add(QCproxy.GetQCProxy(My.Resources.QC19)) BindingSource1.Add(QCproxy.GetQCProxy(My.Resources.QC20)) BindingSource1.Add(QCproxy.GetQCProxy(My.Resources.QC21)) BindingSource1.Add(QCproxy.GetQCProxy(My.Resources.QC22)) End Sub Private Sub RunSelectedQC() Map1.Layers.Clear() DataGridView1.DataSource = Nothing Try Dim proxy = CType(BindingSource1.Current, QCproxy) Dim dt = ServerConnectionHandler.ExecuteSelectCommand(proxy.QCName) DataGridView1.DataSource = dt proxy.QCResults = dt.Rows.Count BindingSource1.ResetCurrentItem() tlExport.Enabled = dt.Rows.Count _lastQualityCheck = proxy If proxy.QCResults > 0 Then

Αλάπηπμε Πηινηηθήο Δθαξκνγήο γηα ηε δηελέξγεηα πλδπαζηηθώλ Διέγρσλ

κεηαμύ Πεξηγξαθηθώλ θαη Υσξηθώλ Βάζεσλ Κηεκαηνινγίνπ Μάξηηνο 2012

ύληαμε: Γεσξγαθάθε ηαπξνύια 137 /144

If _noQClist.Contains(proxy.QCName) Then MsgBox(String.Format("Μόνο Αποτελέςματα ςε Πίνακα - Από τον έλεγχο '{0}' δεν προκύπτει χωρική πληροφορία.", proxy.QCName), MsgBoxStyle.Information, "ΚΤ - Συνδυαςτικοί Έλεγχοι") Else ShowMap() End If Else MsgBox(String.Format("Δεν υπάρχουν ευρήματα για τον έλεγχο '{0}'", proxy.QCName), MsgBoxStyle.Information, "ΚΤ - Συνδυαςτικοί Έλεγχοι") End If Catch ex As Npgsql.NpgsqlException If ex.Code = "42P01" Then MsgBox(String.Format("Ο έλεγχοσ δεν μπόρεςε να εκτελεςτεί - Παρακαλώ επιβεβαιώςτε ότι έχετε ειςάγει όλα τα ςχετικά shapefiles τησ χωρικήσ βάςησ"), MsgBoxStyle.Exclamation, "ΚΤ - Συνδυαςτικοί Έλεγχοι") ElseIf ex.BaseMessage = "A timeout has occured. If you were establishing a connection, increase Timeout value in ConnectionString. If you were executing a command, increase the CommandTimeout value in ConnectionString or in your NpgsqlCommand object." Then MsgBox(String.Format("Υπέρβαςη μέγιςτου χρόνου αιτήματοσ"), MsgBoxStyle.Exclamation, "ΚΤ - Συνδυαςτικοί Έλεγχοι") Else MessageBox.Show(ex.Message, "Σφάλμα", MessageBoxButtons.OK, MessageBoxIcon.Error) End If End Try End Sub Private Sub RunAllQCs() ClearResults() BindingSource1.MoveFirst() While True Dim proxy = CType(BindingSource1.Current, QCproxy) Try proxy.QCResults = ServerConnectionHandler.ExecuteScalar(proxy.QCName) BindingSource1.ResetBindings(False) Catch ex As Npgsql.NpgsqlException If ex.Code = "42P01" Then MsgBox(String.Format("Ο έλεγχοσ δεν μπόρεςε να εκτελεςτεί - Παρακαλώ επιβεβαιώςτε ότι έχετε ειςάγει όλα τα ςχετικά shapefiles τησ χωρικήσ βάςησ"), MsgBoxStyle.Exclamation, "ΚΤ - Συνδυαςτικοί Έλεγχοι") ElseIf ex.BaseMessage = "A timeout has occured. If you were establishing a connection, increase Timeout value in ConnectionString. If you were executing a command, increase the CommandTimeout value in ConnectionString or in your NpgsqlCommand object." Then MsgBox(String.Format("Υπέρβαςη μέγιςτου χρόνου αιτήματοσ"), MsgBoxStyle.Exclamation, "ΚΤ - Συνδυαςτικοί Έλεγχοι") Else MessageBox.Show(ex.Message, "Σφάλμα", MessageBoxButtons.OK, MessageBoxIcon.Error) End If End Try If BindingSource1.Position < BindingSource1.Count - 1 Then BindingSource1.MoveNext() Else : Exit While End If Application.DoEvents() End While End Sub

Αλάπηπμε Πηινηηθήο Δθαξκνγήο γηα ηε δηελέξγεηα πλδπαζηηθώλ Διέγρσλ

κεηαμύ Πεξηγξαθηθώλ θαη Υσξηθώλ Βάζεσλ Κηεκαηνινγίνπ Μάξηηνο 2012

ύληαμε: Γεσξγαθάθε ηαπξνύια 138 /144

Private Sub ClearResults() For Each proxy As QCproxy In BindingSource1 proxy.QCResults = 0 Next BindingSource1.ResetBindings(False) End Sub Private Sub ExportToExcel() Dim excelApp = New Microsoft.Office.Interop.Excel.Application() With {.Visible = False} Dim workbook As Microsoft.Office.Interop.Excel.Workbook = excelApp.Workbooks.Add(Type.Missing) Dim worksheet As Microsoft.Office.Interop.Excel.Worksheet = workbook.ActiveSheet worksheet.Name = _lastQualityCheck.QCName For columnIndex = 0 To DataGridView1.Columns.Count - 1 worksheet.Cells(1, columnIndex + 1) = DataGridView1.Columns(columnIndex).HeaderText For rowIndex = 0 To DataGridView1.Rows.Count - 1 worksheet.Cells(rowIndex + 2, columnIndex + 1) = DataGridView1.Rows(rowIndex).Cells(columnIndex).Value Next Next Dim result = excelApp.GetSaveAsFilename(InitialFilename:=ServerConnectionHandler.DatabaseName & "_" & _lastQualityCheck.QCName, FileFilter:="Template (*.xls; *.xlsx), *.xls; *.xlsx") If TypeOf result Is String Then workbook.SaveAs(result, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Microsoft.Office.Interop.Excel.XlSaveAsAccessMode.xlExclusive, Type.Missing, Type.Missing, Type.Missing, Type.Missing) workbook.Close(False) excelApp.Quit() End Sub Private Function CreateShapeFile() As String Dim pgsql2shpPath = String.Format("""{0}\PostgreSQL\9.1\bin\pgsql2shp.exe""", My.Computer.FileSystem.SpecialDirectories.ProgramFiles) Dim fileDirectory = IO.Path.Combine(My.Computer.FileSystem.SpecialDirectories.MyDocuments, "SHAPE", ServerConnectionHandler.DatabaseName) My.Computer.FileSystem.CreateDirectory(fileDirectory) Dim fileName As String = String.Format("""{0}\{1}.shp""", fileDirectory, _lastQualityCheck.QCName) Dim args = String.Format("-f {0} -h {1} -p {2} -P {3} -u {4} -g {5} -k {6} viewtables.{7}", _ fileName, _ ServerConnectionHandler.ServerName, _ ServerConnectionHandler.Port, _ ServerConnectionHandler.Password, _ ServerConnectionHandler.UserId, _ "the_geom", _ ServerConnectionHandler.DatabaseName, _lastQualityCheck.QCName) Dim command = String.Format("{0} {1}", pgsql2shpPath, args) Shell(command, AppWinStyle.Hide, True) Return fileName.Replace("""", "") End Function Private Sub AddLayer(ByVal fileName As String) Map1.AddLayer(fileName)

Αλάπηπμε Πηινηηθήο Δθαξκνγήο γηα ηε δηελέξγεηα πλδπαζηηθώλ Διέγρσλ

κεηαμύ Πεξηγξαθηθώλ θαη Υσξηθώλ Βάζεσλ Κηεκαηνινγίνπ Μάξηηνο 2012

ύληαμε: Γεσξγαθάθε ηαπξνύια 139 /144

tlLabels.Enabled = True tlLabels_OFF.Enabled = False End Sub Private Sub ShowMap() Map1.Layers.Clear() AddLayer(CreateShapeFile) End Sub Private Sub Main_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing e.Cancel = MessageBox.Show("Πρόκειται να τερματίςετε την εφαρμογή! Είςτε ςίγουροσ;", "Επιβεβαίωςη", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button1) = DialogResult.No End Sub Private Sub Main_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load AddHandler ServerConnectionHandler.DatabaseChanged, AddressOf OnDatabaseChanged AddHandler ServerConnectionHandler.ServerConnectionStatusChanged, AddressOf OnServerConnectionStatusChanged Initialize() End Sub Private Sub OnDatabaseChanged(ByVal sender As Object, ByVal e As EventArgs) Try Cursor = Cursors.WaitCursor DatabaseChanged() Catch ex As Exception Finally Cursor = Cursors.Default End Try End Sub Private Sub OnServerConnectionStatusChanged(ByVal sender As Object, ByVal e As EventArgs) Try Cursor = Cursors.WaitCursor ServerConnectionStatusChanged() Catch ex As Exception Finally Cursor = Cursors.Default End Try End Sub Private Sub DataGridView2_CellDoubleClick(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles DataGridView2.CellDoubleClick tlLabels.Enabled = False Try Cursor = Cursors.WaitCursor If ServerConnectionHandler.ServerConnectionEstablished And Not String.IsNullOrEmpty(ServerConnectionHandler.DatabaseName) Then RunSelectedQC() Else : MsgBox("Δεν έχετε ορίςει τα ςτοιχεία ςύνδεςησ!", MsgBoxStyle.Critical, "Εςφαλμένη Ενέργεια") End If Catch ex As Exception MessageBox.Show(ex.Message, "Σφάλμα", MessageBoxButtons.OK, MessageBoxIcon.Error) Finally

Αλάπηπμε Πηινηηθήο Δθαξκνγήο γηα ηε δηελέξγεηα πλδπαζηηθώλ Διέγρσλ

κεηαμύ Πεξηγξαθηθώλ θαη Υσξηθώλ Βάζεσλ Κηεκαηνινγίνπ Μάξηηνο 2012

ύληαμε: Γεσξγαθάθε ηαπξνύια 140 /144

Cursor = Cursors.Default End Try End Sub Private Sub tlSwitchDatabase_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles tlSwitchDatabase.Click SwitchDatabase() End Sub Private Sub tlServer_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles tlServer.Click If ShowServerConnectionSettings() Then UpdateConnectionIndicators() UpdateServerOptions(True) SwitchDatabase() End If End Sub Private Sub tlExit_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles tlExit.Click Close() End Sub Private Sub tlShowQualityChecks_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles tlShowQualityChecks.CheckedChanged MainContainer.Panel1Collapsed = Not tlShowQualityChecks.Checked End Sub Private Sub tlShowCheckResults_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles tlShowCheckResults.CheckedChanged SubContainer.Panel1Collapsed = Not tlShowCheckResults.Checked If Not tlShowCheckResults.Checked And Not tlShowShapeFiles.Checked Then tlShowShapeFiles.Checked = True End Sub Private Sub tlShowShapeFiles_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles tlShowShapeFiles.CheckedChanged SubContainer.Panel2Collapsed = Not tlShowShapeFiles.Checked If Not tlShowCheckResults.Checked And Not tlShowShapeFiles.Checked Then tlShowCheckResults.Checked = True End Sub Private Sub tlRunAllChecks_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles tlRunAllChecks.Click Map1.Layers.Clear() DataGridView1.DataSource = Nothing Try Cursor = Cursors.WaitCursor RunAllQCs() Catch ex As Exception MessageBox.Show(ex.Message, "Σφάλμα", MessageBoxButtons.OK, MessageBoxIcon.Error) Finally Cursor = Cursors.Default End Try End Sub Private Sub tlExport_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles tlExport.Click Try

Αλάπηπμε Πηινηηθήο Δθαξκνγήο γηα ηε δηελέξγεηα πλδπαζηηθώλ Διέγρσλ

κεηαμύ Πεξηγξαθηθώλ θαη Υσξηθώλ Βάζεσλ Κηεκαηνινγίνπ Μάξηηνο 2012

ύληαμε: Γεσξγαθάθε ηαπξνύια 141 /144

Cursor = Cursors.WaitCursor ExportToExcel() Catch ex As Exception MessageBox.Show(ex.Message, "Σφάλμα", MessageBoxButtons.OK, MessageBoxIcon.Error) Finally Cursor = Cursors.Default End Try End Sub Private Sub tlLabels_ON_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles tlLabels_ON.Click Try Cursor = Cursors.WaitCursor Dim polyLayer = CType(Map1.Layers(0), MapPolygonLayer) Map1.AddLabels(polyLayer, "[KAEK]", New Font("Tahoma", 7.0), Color.Black) tlLabels_OFF.Enabled = True tlLabels_ON.Enabled = False Catch ex As Exception If ex.Message = "Unable to cast object of type 'DotSpatial.Controls.MapPointLayer' to type 'DotSpatial.Controls.MapPolygonLayer'." Then Dim pointLayer = CType(Map1.Layers(0), MapPointLayer) Map1.AddLabels(pointLayer, "[spatial.BL]", New Font("Tahoma", 7.0), Color.Black) tlLabels_OFF.Enabled = True tlLabels_ON.Enabled = False Else MessageBox.Show(ex.Message, "Σφάλμα", MessageBoxButtons.OK, MessageBoxIcon.Error) End If Finally Cursor = Cursors.Default End Try End Sub Private Sub tlLabels_OFF_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles tlLabels_OFF.Click Try Cursor = Cursors.WaitCursor Map1.ClearLabels(Map1.Layers(0)) tlLabels_ON.Enabled = True tlLabels_OFF.Enabled = False Catch ex As Exception MessageBox.Show(ex.Message, "Σφάλμα", MessageBoxButtons.OK, MessageBoxIcon.Error) Finally Cursor = Cursors.Default End Try End Sub Private Sub tlCreateShapeFiles_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles tlCreateShapeFiles.Click Map1.Layers.Clear() DataGridView1.DataSource = Nothing Dim proxy = CType(BindingSource1.Current, QCproxy) _lastQualityCheck = proxy Try Cursor = Cursors.WaitCursor If My.Computer.FileSystem.FileExists(CreateShapeFile) Then ShowMap()

Αλάπηπμε Πηινηηθήο Δθαξκνγήο γηα ηε δηελέξγεηα πλδπαζηηθώλ Διέγρσλ

κεηαμύ Πεξηγξαθηθώλ θαη Υσξηθώλ Βάζεσλ Κηεκαηνινγίνπ Μάξηηνο 2012

ύληαμε: Γεσξγαθάθε ηαπξνύια 142 /144

Else MsgBox(String.Format("Δεν υπάρχουν ευρήματα για τον έλεγχο '{0}'", proxy.QCName), MsgBoxStyle.Exclamation, "ΚΤ - Συνδυαςτικοί Έλεγχοι") tlLabels.Enabled = False End If Catch ex As Exception MessageBox.Show(ex.Message, "Σφάλμα", MessageBoxButtons.OK, MessageBoxIcon.Error) tlLabels.Enabled = False Finally Cursor = Cursors.Default End Try End Sub Private Sub tlAbout_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles tlAbout.Click Using dlg As New AboutBox1 dlg.ShowDialog() End Using End Sub End Class

4. Κλάζη ServerConnectionHandler Imports Npgsql Public Class ServerConnectionHandler Public Shared Event ServerConnectionStatusChanged As EventHandler Public Shared Event DatabaseChanged As EventHandler Public Shared Property ServerName As String = "localhost" Public Shared Property UserId As String Public Shared Property Port As Integer Public Shared Property Password As String Private Shared _databaseName As String Public Shared Property DatabaseName As String Get Return _databaseName End Get Set(ByVal value As String) If _databaseName <> value Then _databaseName = value RaiseEvent DatabaseChanged(Nothing, New EventArgs) End If End Set End Property Public Shared Property ServerConnectionEstablished As Boolean Public Overloads Shared Sub ConnectToServer(database As String) ConnectToServer(ServerName, Port, UserId, Password, database) End Sub Public Overloads Shared Sub ConnectToServer(ByVal server As String, ByVal port As Integer, ByVal userId As String, ByVal password As String, database As String) ServerConnectionEstablished = TestConnection(GetConnectionString(server, port, userId, password, database)) End Sub Public Shared Sub ChangeServerSettings()

Αλάπηπμε Πηινηηθήο Δθαξκνγήο γηα ηε δηελέξγεηα πλδπαζηηθώλ Διέγρσλ

κεηαμύ Πεξηγξαθηθώλ θαη Υσξηθώλ Βάζεσλ Κηεκαηνινγίνπ Μάξηηνο 2012

ύληαμε: Γεσξγαθάθε ηαπξνύια 143 /144

If ShowServerConnectionSettings() Then ServerConnectionEstablished = True End Sub Public Overloads Shared Function GetConnectionString() As String Return GetConnectionString(ServerName, Port, UserId, Password, "postgres") End Function Public Overloads Shared Function GetConnectionString(server As String, port As Integer, userId As String, password As String, database As String) As String Return String.Format("Server={0};Port={1};User Id={2};Password={3};Database={4};CommandTimeout=300;", server, port, userId, password, database) End Function Public Shared Function TestConnection(connectionString As String) As Boolean Try Using conn = New NpgsqlConnection(connectionString) conn.Open() conn.Close() End Using Return True Catch ex As Exception Return False End Try End Function Public Shared Function GetDatabases() As String() Dim list As New List(Of String) If Not String.IsNullOrEmpty(ServerName) Then Using conn = New NpgsqlConnection(GetConnectionString) conn.Open() Dim cmd As New NpgsqlCommand(My.Resources.Command_GetDatabaseNames, conn) Dim reader = cmd.ExecuteReader While reader.HasRows reader.Read() list.Add(reader.GetString(0)) End While conn.Close() End Using End If Return list.ToArray End Function Public Shared Function ExecuteSelectCommand(viewName As String) As DataTable Dim dt As New DataTable Using conn = New NpgsqlConnection(GetConnectionString(ServerName, Port, UserId, Password, DatabaseName)) Dim da As New NpgsqlDataAdapter(String.Format("SELECT * FROM ""{0}""", viewName), conn) da.Fill(dt) End Using Return dt End Function Public Shared Function ExecuteScalar(viewName As String) As Integer Dim results As Integer

Αλάπηπμε Πηινηηθήο Δθαξκνγήο γηα ηε δηελέξγεηα πλδπαζηηθώλ Διέγρσλ

κεηαμύ Πεξηγξαθηθώλ θαη Υσξηθώλ Βάζεσλ Κηεκαηνινγίνπ Μάξηηνο 2012

ύληαμε: Γεσξγαθάθε ηαπξνύια 144 /144

Using conn = New NpgsqlConnection(GetConnectionString(ServerName, Port, UserId, Password, DatabaseName)) Dim cmd As New NpgsqlCommand(String.Format("SELECT COUNT(*) FROM ""{0}""", viewName), conn) conn.Open() results = CInt(cmd.ExecuteScalar()) conn.Close() End Using Return results End Function End Class

5. Κλάζη QCproxy Public Class QCproxy Public Property QCName As String Public Property QCDescription As String Public Property QCResults As Integer Public Shared Function GetQCProxy(text As String) Dim vals = text.Split("=") If vals.Length Then Return New QCproxy With {.QCName = vals(0), .QCDescription = vals(1)} Else : Return New QCproxy End If End Function End Class

6. Module Utils Module Utils Friend Function ShowServerConnectionSettings() As Boolean Using dlg As New ServerConnection Return dlg.ShowDialog() = DialogResult.OK End Using End Function Friend Sub SwitchDatabase() Using dlg As New DatabaseConnection If dlg.ShowDialog() = DialogResult.OK Then ServerConnectionHandler.DatabaseName = dlg.Database ServerConnectionHandler.ConnectToServer(ServerConnectionHandler.DatabaseName) End If End Using End Sub End Module