Sie sind auf Seite 1von 82

Spatial Databases

Transformasi spatial database

Gutings1 definition of a spatial


database
(1) A spatial database system is a
database system
(2) It offers spatial data types in its data
model and query language
(3) It supports spatial data types in its
implementation, providing at least spatial
indexing and efficient algorithms for
spatial join2.

Spatial Join(*)
A spatial join associates two tables based on a
spatial relationship, rather than an the classic
non-spatial relational attribute. A spatial join
operation is used to combine two or more dataset
with respect to a spatial predicate or spatial
operation. Predicates can be a combination of
directional, distance, and topological spatial
relations (e.g. overlap, contains). In case of nonspatial join, the joining attributes must of the
same type, but for spatial join they can be of
different types.

Spatial Join Example(*)

Query: For all the rivers listed in the River table, find the
countries through which they pass.
SELECT R.Name, C.Name
FROM River R, Country C
WHERE Cross(R.Shape,C.Shape)=1
The spatial predicate Cross is used to join River and
Country tables.

Spatial Joins(*)
In practice, spatial join operations are
divided into a filter step and a refinement
step to efficiently process complex spatial
data types such as point collections in a
row instance. In the filter step, the spatial
objects are represented by simpler
approximations such as their Minimum
Bounding Rectangle or Box (MBR or
MBB).

Spatial Joins Example 2


A spatial join associate two tables based
on a spatial relationship, rather than an
attribute relationship. For example the
query:
Summarize the 2001 provincial
election results by
municipality.
Could be answered using the following
SQL:

select
m.name,
sum(v.ndp) as ndp,
sum(v.lib) as liberal,
sum(v.gp) as green,
sum(v.upbc) as unity,
sum(v.vtotal) as total
from bc_voting_areas v, bc_municipality
m,
where
v.the_geom && m.the_geom
and
intersects(v.the_geom, m.the_geom)
group by m.name
order by m.name;

Why use a database for GIS?


GIS are not database systems, they can be

connected to a DBMS.
A GIS cannot efficiently manage large quantities
of non-spatial data (e.g. at government
department level).
They lack ad hoc querying capability (they
provide a restricted form of predefined queries)
They lack indexing structures for fast external
data access (they use in memory techniques).
They lack a 'logic' (e.g. first order logic of the
relational calculus)

Why use a database for GIS?


Databases offer the following functions:
Reliability
Integrity: enforces
consistency
Security
User views
User interface
Querying
Updating
Mathematical basis

Data independence
Data Abstraction
Self-describing
Concurrency
Distributed capabilities
High performance
Supports spatial data
types using ADTs.
Alternative: files

Why use a database for GIS?


Data Abstraction- allows users to ignore
unimportant details
View Level a way of presenting data to a
particular group of users
Logical Level how data is interpreted when
writing queries
Physical Level how data is manipulated at
storage level by a computer. Most users are
not interested in the physical level.

Databases use high level


declarative languages (SQL)
Data Definition Language (DDL)
Create, alter and delete data
CREATE TABLE, CREATE INDEX

Data Manipulation Language (DML)


Retrieve and manipulate data
SELECT, UPDATE, DELETE, INSERT

Data Control Languages (DCL)


Control security of data
GRANT, CREATE USER, DROP USER

Spatial Types OGC Simple


Features for SQL

Composed

Geometry

SpatialReferenceSystem

Sub Type
Relationship

Point

Curve

Surface

LineString

Polygon

Line

LinearRing

GeometryCollection

MultiSurface

MultiCurve

MultiPolygon

MultiLineString

MultiPoint

Spatial Types OGC Simple


Features for SQL (*)

Operations OGC Simple Feature Types

OGC Simple Features for SQL1(*)


The OGC SF (roughly AKA ISO 19125-1)
describes 2-D geometry with linear
interpolation between vertices. The simple
feature model consists of a root class
Geometry and its subclasses Point,
Curve, Surface, GeometryCollection. The
class Geometry collection has the
subclasses Multipoint, Multicurve,
MultiSurface.

OGC Simple Features for SQL1 (*)


The OGC does not include complexes, a third

dimension, non-linear curves, `networking or


topology (i.e. connectivity information).
Because of it relative simplicity and its support in
both the commercial & open source community
SFSQL is widely used in DBMS and is
supported in many Web applications.
It is expected that newer more sophisticated
standards such as ISO-19107 will gradually
replace OGC SF.

OGC Simple Features for SQL (*)


Brief description
A simple feature is defined to have both spatial
and non-spatial attributes. Spatial attributes are
geometry valued, and simple features are based
on 2D geometry with linear interpolation
between vertices. Each feature is stored as a
row in a database table. This course covers the
OGC: GEOMETRY type with subtypes such as
POINT, LINE, POLYLINE, POLYGON, and
collections of these.

OGC Simple Features for SQL (*)


Functionality can be described under the
1.
2.
3.
4.

following headings.
Basic Methods on Geometry
Methods for testing Spatial Relations
between geometric objects
Methods that support Spatial Analysis
Geometry Collection

OGC Simple Features for SQL (*)

Basic Methods on Geometry


Describes the dimensions and reference system (SRID) of the geometry.
Operations include Dimension, GeometryType, , conversions AsText, AsBinary, tests on geometry
include IsEmpty, IsSimple. Operations that return geometry Boundary, Envelope returns
bounding box
Methods for testing Spatial Relations between geometric objects
These polymorphic methods check relations on the generic or super class GEOMETRY and
usually return a Boolean. Main methods Equals, Disjoint, Intersects, Touches, Crosses, Within,
Contains, Overlaps, Relate( testing for intersections between the Interior, Boundary and Exterior
of the two geometries)
Methods that support Spatial Analysis
A set of geometric and metric methods. Methods calculate distances and areas with respect to
the spatial reference system of this Geometry. Methods include Distance, Buffer, ConvexHull,
Intersection, Union, Difference, SymDifference.
Geometry Collection
A GeometryCollection is a geometry that is a collection of 1 or more geometries. All the elements
in a GeometryCollection must be in the same Spatial Reference. Subclasses of
GeometryCollection may restrict membership based on dimension and may also place other
constraints on the degree of spatial overlap between elements. Methods
NumGeometries( ):IntegerReturns the number of geometries in this GeometryCollection.
GeometryN(N:integer):GeometryReturns the Nth

OGC Spatial Relations

Equals same geometries


Disjoint geometries share common point
Intersects geometries intersect
Touches geometries intersect at common boundary
Crosses geometries overlap
Within geometry within
Contains geometry completely contains
Overlaps geometries of same dimension overlap
Relate intersection between interior, boundary or
exterior

Contains Relation
Does the base geometry (small circles) contain the comparison geometry
(big circles)?

For the base geometry to contain the comparison geometry it must be a


superset of that geometry.
Geographic Information Systems and Science, ,Longley,Goodchild,Maguire,Rhind

Geographic Information Systems and Science , Longley,,Goodchild,,Maguire,Rhind

Touches Relation
Does the base geometry (small circles) touch the comparison geometry
(big circles) ?

Two geometries touch when their boundaries intersect. Raise deep


mathematical issues e.g. what is the boundary of a point?, what about
tolerance + or - a metre?

Spatial Methods

Distance shortest distance


Buffer geometric buffer
ConvexHull smallest convex polygon geometry
Intersection points common to two geometries
Union all points in geometries
Difference points different between two
geometries
SymDifference points in either, but not both of
input geometries

Convex Hull
The convex hull of a set of points is the intersection of all convex sets which
contain the points. A set of points is convex if and only if for every pair of
points p,q in S, the line segment pq is completely contained in S.

Left is convex set and right non-convex set


Convex hulls constructed around
objects.

Operations on themes (*)


Theme projection1: selecting some attributes

from the countries theme. Get the Population


and Geometry of European countries
Theme selection: Name and population of
European countries with a population of 50
million or more.
Theme union : European countries with
population less than 10 million joined with those
over 10 million.
Theme overlay: See example
Theme merge : See example

Operations on themes (*)


Theme overlay1: Generates a new theme and
new geometry from the overlaid themes. We get
the geometric intersection of spatial objects with
the required themes. See European language
example.
Theme merge : The merge operation performs
the geometric union of the spatial part of n
geographic objects that belong to the same
theme under a constraint condition supplied by
the user. See East/West Germany example.

Projection on Theme (*)

Find the countries of western Europe with population greater than 50


million. This is a projection on the attribute population. Unlike a
conventional database query we often want the query result and the
original context, in this case Europe.

Theme Merge (*)

Merging two geographic objects in a selected theme (say country)


into a single object.

Theme Overlay (*)

Latin languages
Anglo-Saxon

The lower map represents the overlay of European


countries and languages.

Indexing
Indexing is used to speed up queries and locate
rows quickly
Traditional RDBMS use 1-d indexing (B-tree)
Spatial DBMS need 2-d, hierarchical indexing

Grid
Quadtree
R-tree
Others

Multi-level queries often used for performance


(MBR)

R-tree

Examples of R Tree Index


of polygons

Minimum Bounding Rectangles

Minimum
Bounding
Rectangle

Study
Area

Spatial enabled DB Summary


Database an integrated set of data on a
particular subject. Can include spatial and nonspatial and possible temporal.
Databases offer many advantages over files
Relational databases dominate for non-spatial
use, object-relational databases (ORDBMS)
often used for spatial data.
Databases address some limitations for GIS

Choice database for GIS?


Choice of DBMS:
Commercial (Oracle, DB2) or
Open source (PostgreSQL, MySQL) .

We will PostgreSQL with PostGIS spatial


extensions.
PostgreSQL is an Object Relational
Database System (ORDBMS).

Database Architecture for GIS(*)


Pure Relational Approach
Spatial data can be stored in a pure RDBMS. The coordinates for the spatial
data can be stored in tables. Uses existing technologies, requires no
additional software (for the pure DBMS perspective).
Drawbacks

It is difficult to represent and query complex spatial structures (such as a polygon


with holes) or topological relationships ( network connectivity, polygon
adjacency). No ordered lists.
Violates independence principle, user must know about data storage. Change of
geometric representation requires deep reorganization of the database and query
formulation.
Poor performance, requires a lot of processing of the relational tuples that
represent the spatial information.
Lack of user friendliness because users have to manipulate tables of points.
Difficulty of defining new spatial types.
The impossibility of expressing geometric computations such as adjacency tests,
point query, or window query.

Database Architecture for GIS(*)


Loosely Coupled
Many current commercial such as ArcInfo use this

approach.
Uses a RDBMS to store 'attribute' or descriptive
information e.g. the name of a road not its geometry.
A specific module for spatial data management.
Drawbacks
The coexistence of heterogeneous data models, which
implies difficulties in modeling use and integration.
A partial loss of DBMS techniques e.g. recovery,
querying, optimization.

Database Architecture for GIS(*)


Loosely Coupled Architecture
Application Programs
Relational DBMS

Geometric Processing
(GIS)

Database

Files

Database Architecture for GIS(*)


Integrated
DBMS extensibility address many of the problems inherent in
the RM and LC approaches.
Most commercial databases that offer facilities to handle spatial
data (PostgreSQL, Oracle, DB2) take this approach. The basic
idea is to add new types and operations to the RM as follows:
The query language is extended to manipulate spatial data as
well as descriptive data. New spatial types (point, line, and
polygon) are handled as basic types by the DBMS.
Many other DBMS functions such as query optimization, are
adapted in order to handle geo-spatial data efficiently.
Drawback: Does not provide full GIS functionality (cartography).
We must use additional software such as Geoserver to make
(or render) an attractive map from the raw vectors stored in the
DBMS.

What can PostGIS do?


Many PostGIS functions available via SQL
Compliant with OGC1 Simple Features Specification
Coordinate
transformation
Identify
Buffer
Touches
Crosses
Within
Overlaps
Contains

Crosses
Within
Overlaps
Contains
Area
Length
Point on surface
Return geometry
as SVG

What can PostGIS do?

PostGIS supports a geometry type which is


compliant with the OGC standard for Simple
Features.
POINT( 50 100 )
LINESTRING ( 10 10, 20 20 )
POLYGON ( ( 0 0, 5 5, 5 0, 0 0 ) )
MULTIPOINT ( ( 1 1 ), ( 0 0 ) )
MULTILINESTRING ( )
MULTIPOLYGON ( )

Spatial Database Features


MySQL

PostGIS

Spatial Functions
OpenGIS
Coord Transform
Spatial Aggregates

Informix

DB2
Oracle
Spatial Objects
R-Tree Index

HOW Spatial Databases Fit into


GIS
LAN

Internet

Editing
Loading
Analysis

Mapping
Database

Features

GIS

Image from Paul Ramsey Refractions Research

GIS
Web
Client
Other

ProstgreSQL
PostgreSQL itself provides the main

features of a RDBMS. Includes other


advanced features such as:

Inheritance
Functions
Constraints
Triggers
Rules
Transactional integrity

Permits an OO like style of programming

PostgreSQL/PostGIS
The data is stored in a relatively simple format with
the attributes and geometry stored in a single
table.
Spatial

reference Data type Coordinates


number

Attribute Data

name
Brio Refining
Crystal Chemical
North Cavalcade
Dixie Oil Processors
Federated Metals

city
Friendswood
Houston
Houston
Friendswood
Houston

hrs
50.38
60.9
37.08
34.21
21.28

status
active
active
active
active
active

st_fed

the_geom

Fed

SRID=32140;POINT(968024.87474318
4198600.9516049)

Fed

SRID=32140;POINT(932279.183664999
4213955.37498466)

Fed

SRID=32140;POINT(952855.717021537
4223859.84524946)

Fed

SRID=32140;POINT(967568.655313907
4198112.19404211)

State

SRID=32140;POINT(961131.619598681
4220206.32109146)

How does it work?


Spatial data is stored using the coordinate

system of a particular projection.


That projection is referenced with a Spatial
Reference Identification Number (SRID)
This number relates to another table
(spatial_ref_sys) which holds all of the
spatial reference systems available.
This allows the database to know what
projection each table is in, and if need be, reproject from those tables for calculations or
joining with other tables.

Coordinate Projection
SRID=3005;MULTILINESTRING((1004687.04355194594291.
053764096,1004729.74799931 594258.821943696))

SRID=4326;MULTILINESTRING((125.934150.364070000000
1,-125.9335 50.36378))
Coordinates of one table can be converted to those of another table. This
permits the geometry in each table to match. Relatively easy to do in PostGIS

Spatial Database Components


The Geometry metadata table
table
schema

table name

geometry
column

coord
dim

brazos

texas_counties

the_geom

32139

MULTIPOLYGON

brazos

texas_rivers

the_geom

32139

MULTILINESTRING

brazos

texas_roads

the_geom

32139

MULTILINESTRING

brazos

tx_maj_aquifers

the_geom

32139

MULTIPOLYGON

brazos

tx_min_aquifers

the_geom

32139

MULTIPOLYGON

brazos

txzip_codes

the_geom

32139

MULTIPOLYGON

brazos

bz_landmarks

the_geom

32139

POINT

srid

type

spatial_ref_sys
postgis=# \d spatial_ref_sys
Table "public.spatial_ref_sys"
Column
|
Type
| Modifiers
-----------+-------------------------+----------srid
| integer
| not null
auth_name | character varying(256) |
auth_srid | integer
|
srtext
| character varying(2048) |
proj4text | character varying(2048) |
Indexes:
"spatial_ref_sys_pkey" PRIMARY KEY, btree (srid)

geometry_columns
postgis=# \d geometry_columns
Table "public.geometry_columns"
Column
|
Type
| Modifiers
-------------------+------------------------+----------f_table_catalog
| character varying(256) | not null
f_table_schema
| character varying(256) | not null
f_table_name
| character varying(256) | not null
f_geometry_column | character varying(256) | not null
coord_dimension
| integer
| not null
srid
| integer
| not null
type
| character varying(30) | not null
Indexes:
"geometry_columns_pk" PRIMARY KEY, btree
(f_table_catalog, f_table_schema, f
_table_name, f_geometry_column)

Database Rules
Rules help prevent human error when
modifying a data set
Rules are user defined
Rules are such things as;
A fire hydrant must be located on a water
line
Rivers should flow down hill.

Constraints
Constraints are similar to rules, but are
less assertive.
Constraints are provided by the DBMS
and are applied by the user
A Constraint would be Parcel_ID Not Null
- meaning a number ID has to be
provided when a parcel is created.

Constraints
Constraint

GIS examples
Two spatial objects cannot exist at the same point

Uniqueness
Non-Null

All Address points must have co-ordinates

Range

All heights in Ireland must be in range -100 to 2000 metres

Relationship

Every river must be connected to the sea, a lake or other


river (Can rivers cross/)

Cardinality

Each side of a triangle has a 1:2 relation with the others

Inclusion

All counties are polygons

Covering

A boundary may be a townland and/or a barony.

Disjointedness

All roads must be only a primary or a secondary or a


regional

Referential Integrity

A county border must be represented by a ground feature

Geometrical

Triangles must have three sides

Orientation

Roads are usually to the front of houses

Topological

Inner walls must be "inside" buildings

General

Complex rules built from above constraints

Constraints
How can we define in front of?

Data integrity

Valid

Invalid

select count(*) from bc_voting_areas


where not isvalid(the_geom);

Dynamic and Static Data


Static non-spatial data is usually maintained in

the table with the geometry (e.g. county name).


In this case the geometry is considered
immutable.
Dynamic non-spatial data is usually maintained
in a separate table.
There can be more than one dynamic table for a
geometry table.
Dynamic spatial can include moving objects or a
changing world (temporal requires different
treatment)

Joins(*)
Dynamic tables can be joined with the
geometry tables for querying purposes
A primary key is used to relate the 2 tables
together
A primary key is a unique identifier for
each row in a table
Primary Key
ID
1
2
3
4
5

rainfall 10/7/2003 temp Hi 10/7/2003 temp Lo 10/7/2003 ID


0.5
78
68
0
80
65
1.02
76
66
0.23
81
68
0.18
80
67

1
2
3
4
5

the_geom
SRID=32140;POINT(968024.87474318 4198600.9516049)
SRID=32140;POINT(932279.183664999 4213955.37498466)
SRID=32140;POINT(952855.717021537 4223859.84524946)
SRID=32140;POINT(967568.655313907 4198112.19404211)
SRID=32140;POINT(961131.619598681 4220206.32109146)

Spatial Join

A typical example of spatial join is Find all pair


of rivers and cities that intersect. The result of
join between the set of rivers {R1, R2} and cities
{C1, C2, C3, C4, C5} is { (R1, C1), (R2, C5)}.

Temporal Queries
Find where (x,y) and when(t) will it snow :
Clouds(X, Y, T, humidity)
Region(X, Y, T, temperature)
(SELECT x, y, t
FROM
Clouds
WHERE humidity >= 80)
INTERSECT
(SELECT x, y, t
FROM
Region
WHERE temperature <= 32)

Temporal Example: roads, buildings,


and regions

Consider a line. From the properties of metric spaces it has a length.

Temporal Example: roads, buildings,


and regions

Lets call it a road. From graph theory we have a path

Temporal Example: roads, buildings,


and regions

A
F1
B
Purple line segment
represents both a road
and a fence.

Lets add a field (F1) with an area and a topology.

Example: roads, buildings, and regions

A
F1
B

Lets add an administrative region (outer red rectangle) and some houses

Example: roads, buildings, and regions

A
F2

F3
B

Lets divide the field in two by inserting a new fence.


We need to delete the old area and add two new areas.
What about adjacency relation between fields?

Example: roads, buildings, and regions


Time1

Time2

A
F1

F2 F3
B

Imagine a picture of the world at Time1 and Time2.


Not only have some objects changed but some spatial
relationships have changed.
An addition can induce a deletion and a deletion can induce
an insertion.

Example of temporal queries


Is there a route from A to B? (now is

assumed)
Was there a route from A to B in Time1?
Does the route in query 1 pass through
the administrative region?
Does the route in query 1 pass touch the
administrative region ?
What fields were adjacent to F2 in
Time2?

Raster Image Data Not Covered

References

http://www.spatial.cs.umn.edu/Book/

Spatial Databases:
With Application to GIS
Rigaux, Scholl, Voisard

Geography Mark-Up
Language:
Foundation for the
Geo-Web

GIS: A Computing Perspective


Michael Worboys, Matt Duckham
http://www.pragprog.com/titles/sdgis/gis-for-web-developers

References

Lloyd: Spatial Data Analysis

Applied Spatial Data Analysis with R


Bivand, Pebesma, Gmez-Rubio

Theories of geographic concepts:


ontological approaches to semantic
integration By Marinos Kavouras, Margarita
Kokla

Das könnte Ihnen auch gefallen