Spatial Query Languages Standard Database Query Languages.

Slides:



Advertisements
Similar presentations
Three-Step Database Design
Advertisements

Chapter 3:Spatial Query Languages 3
SQL Rohit Khokher.
The Role of Error Map and attribute data errors are the data producer's responsibility, GIS user must understand error. Accuracy and precision of map and.
TURKISH STATISTICAL INSTITUTE 1 /34 SQL FUNDEMANTALS (Muscat, Oman)
Basic SQL Introduction Presented by: Madhuri Bhogadi.
Concepts of Database Management Sixth Edition
Concepts of Database Management Seventh Edition
Database Systems: Design, Implementation, and Management Tenth Edition
Introduction to Structured Query Language (SQL)
Introduction to Structured Query Language (SQL)
Introduction to Structured Query Language (SQL)
Database Systems: Design, Implementation, and Management Eighth Edition Chapter 7 Introduction to Structured Query Language (SQL)
Concepts of Database Management Sixth Edition
State of Connecticut Core-CT Project Query 4 hrs Updated 1/21/2011.
Midterm 1 Concepts Relational Algebra (DB4) SQL Querying and updating (DB5) Constraints and Triggers (DB11) Unified Modeling Language (DB9) Relational.
DAY 21: MICROSOFT ACCESS – CHAPTER 5 MICROSOFT ACCESS – CHAPTER 6 MICROSOFT ACCESS – CHAPTER 7 Akhila Kondai October 30, 2013.
Advance Computer Programming Java Database Connectivity (JDBC) – In order to connect a Java application to a database, you need to use a JDBC driver. –
Concepts of Database Management, Fifth Edition
Spatial Databases ENVE/CE 424/524. Definitions Database – an integrated set of data on a particular subject Spatial database - database containing geographic.
ASP.NET Programming with C# and SQL Server First Edition
Introduction to Databases Chapter 6: Understanding the SQL Language.
Relational DBs and SQL Designing Your Web Database (Ch. 8) → Creating and Working with a MySQL Database (Ch. 9, 10) 1.
Database A collection of related data. Database Applications Banking: all transactions Airlines: reservations, schedules Universities: registration, grades.
Database Technical Session By: Prof. Adarsh Patel.
HAP 709 – Healthcare Databases SQL Data Manipulation Language (DML) Updated Fall, 2009.
6. Simple Features Specification Background information UML overview Simple features geometry.
CPS120: Introduction to Computer Science Lecture 19 Introduction to SQL.
Concepts of Database Management Seventh Edition
1 Theory, Practice & Methodology of Relational Database Design and Programming Copyright © Ellis Cohen Introduction to Relational Databases &
SQL SQL Server : Overview SQL : Overview Types of SQL Database : Creation Tables : Creation & Manipulation Data : Creation & Manipulation Data : Retrieving.
Concepts of Database Management Seventh Edition
Spatial Query Languages Standard Database Query Languages.
Lecture2: Database Environment Prepared by L. Nouf Almujally 1 Ref. Chapter2 Lecture2.
Nitin Singh/AAO RTI ALLAHABAD 1 SQL Nitin Singh/AAO RTI ALLAHABAD 2 OBJECTIVES §What is SQL? §Types of SQL commands and their function §Query §Index.
Chapter 3:Spatial Query Languages 3.1 Standard Database Query Languages 3.2 Relational Algebra 3.3 Basic SQL Primer 3.4 Extending SQL for Spatial Data.
6 1 Lecture 8: Introduction to Structured Query Language (SQL) J. S. Chou, P.E., Ph.D.
Concepts of Database Management Eighth Edition Chapter 3 The Relational Model 2: SQL.
Database Systems Design, Implementation, and Management Coronel | Morris 11e ©2015 Cengage Learning. All Rights Reserved. May not be scanned, copied or.
PostGIS and Spatial Queries Steve Signell, Instructor Robert Poirier, TA School of Science Rensselaer Polytechnic Institute.
Creating and Maintaining Geographic Databases. Outline Definitions Characteristics of DBMS Types of database Relational model SQL Spatial databases.
DBSQL 5-1 Copyright © Genetic Computer School 2009 Chapter 5 Structured Query Language.
Database Fundamental & Design by A.Surasit Samaisut Copyrights : All Rights Reserved.
AL-MAAREFA COLLEGE FOR SCIENCE AND TECHNOLOGY INFO 232: DATABASE SYSTEMS CHAPTER 7 (Part II) INTRODUCTION TO STRUCTURED QUERY LANGUAGE (SQL) Instructor.
1 Agenda Today Due: topic of your term project Quiz with two questions Spatial query language Next class.
DAY 21: MICROSOFT ACCESS – CHAPTER 5 MICROSOFT ACCESS – CHAPTER 6 MICROSOFT ACCESS – CHAPTER 7 Aliya Farheen October 29,2015.
Lecture 10 Creating and Maintaining Geographic Databases Longley et al., Ch. 10, through section 10.4.
SQL Overview Structured Query Language
NSF DUE ; Wen M. Andrews J. Sargeant Reynolds Community College Richmond, Virginia.
Basics of JDBC Session 14.
SQL. Originally developed by IBM Standardized in 80’s by ANSI and ISO Language to access relational database and English-like non-procedural Predominant.
7 1 Database Systems: Design, Implementation, & Management, 7 th Edition, Rob & Coronel 7.6 Advanced Select Queries SQL provides useful functions that.
CSC314 DAY 8 Introduction to SQL 1. Chapter 6 © 2013 Pearson Education, Inc. Publishing as Prentice Hall SQL OVERVIEW  Structured Query Language  The.
LM 5 Introduction to SQL MISM 4135 Instructor: Dr. Lei Li.
MICROSOFT ACCESS – CHAPTER 5 MICROSOFT ACCESS – CHAPTER 6 MICROSOFT ACCESS – CHAPTER 7 Sravanthi Lakkimsety Mar 14,2016.
 CONACT UC:  Magnific training   
Lecture 3: Spatial Data Management Dr. Taysir Hassan Abdel Hamid Associate Professor, Information Systems Dept., Faculty of Computers and Information.
Concepts of Database Management, Fifth Edition Chapter 3: The Relational Model 2: SQL.
Spatial Query Languages
SQL Query Getting to the data ……..
Spatial Query Languages
Prepared by : Moshira M. Ali CS490 Coordinator Arab Open University
PL/SQL LANGUAGE MULITPLE CHOICE QUESTION SET-1
Tools for Memory: Database Management Systems
SQL 101.
Structured Query Language (SQL) William Klingelsmith
The Relational Model Textbook /7/2018.
Database systems Lecture 3 – SQL + CRUD
Chapter 7 Introduction to Structured Query Language (SQL)
Contents Preface I Introduction Lesson Objectives I-2
Presentation transcript:

Spatial Query Languages Standard Database Query Languages

Outline 1.What is a Query? Query Language? 2.Example Database Tables 3.SQL Overview: 3 Components 4.SELECT statement with 1 table 5.Multi-table SELECT statements 6.Why spatial extensions are needed? 7.1-table spatial queries 8.Multi-table spatial queries 9.Trends

Learning Objectives After this segment, students will be able to Describe purpose of a query Describe purpose of a query language

What is a Query? A query is a “question” posed to a database, expressed in a high-level declarative manner Mouse click on a map symbol Keyword typed in a search engine SELECT S.name FROM Senator S WHERE S.gender = ‘F’

What is a Query Language? Query language expresses interesting questions about data, and restricts the set of possible queries Natural language, e.g., English Computer programming languages, e.g. Java, Structured Query Language (SQL) Graphical interfaces, e.g. web-search, mouse clicks on a map

Outline 1.What is a Query? Query Language? 2.Example Database Tables 3.SQL Overview: 3 Components 4.SELECT statement with 1 table 5.Multi-table SELECT statements 6.Why spatial extensions are needed? 7.1-table spatial queries 8.Multi-table spatial queries 9.Trends

Learning Objectives Upon completion of this module, students will be able to Describe a simple SQL database with 3 tables These will be used to illustrate SQL statements Describe 3 parts of SQL language

Example: World Database Purpose: use an example database to learn query language SQL Conceptual model 3 Entities: country, city, river 2 Relationships: capital-of, originates

World Database Conceptual Model Entity - relationship diagram using Chen’s notation 3 Entities: country, city, river shown as boxes 2 Relationships: capital-of, originates shown as diamonds Attributes shown as ellipses

World Database: Logical Model 3 Relations Country (Name, Cont, Pop, GDP, Life-Exp, Shape) City (Name, Origin, Pop, Capital, Shape) River (Name, Origin, Length, Shape) Keys Primary keys are Country.Name, City.Name, River.Name Foreign keys are River.Origin, City.Country Data for 3 tables Shown on next slide

World Database Data Tables: Country The COUNTRY table has 6 columns: Name, Continent (Cont), population (Pop), Gross domestic product (GDP), Life-expectancy (Life-exp) and Shape, Shape is boundary

World Database Data Tables: City The CITY table has 5 columns, Name, Country, Population (Pop), Capital and Shape, Shape is a point.

World Database Data Tables: River The RIVER table has 4 columns, Name, Origin, Length and Shape, Shape is a line.

Outline 1.What is a Query? Query Language? 2.Example Database Tables 3.SQL Overview: 3 Components 4.SELECT statement with 1 table 5.Multi-table SELECT statements 6.Why spatial extensions are needed? 7.1-table spatial queries 8.Multi-table spatial queries 9.Trends

Learning Objectives Upon completion of this module, students will be able to List 3 components of SQL Create and populate tables using SQL

What is SQL? Is a standard query language for relational databases Supports logical data model concepts Supported by major brands. e.g. IBM DB2, Oracle, MS SQL Server, Sybase, etc. 3 versions: SQL 1(1986), SQL 2(1992), SQL 3(1999) Can express common data intensive queries SQL 1 and SQL 2 are not suitable for recursive queries

SQL and Spatial Data Management ESRI Arc/Info included a custom relational DBMS named Info Other GIS software can interact with DBMS using SQL Using open database connectivity (ODBC) or other protocols. In fact, many software application use SQL to manage data in back-end DMBS And a vast majority of SQL queries are generated by other software Although we will be writing SQL queries manually!

Three components of SQL 1. Data definition language (DDL) Creation and modification of relational schema Schema objects include relations, indexes, etc 2. Data manipulation language (DML) Insert, delete, update rows in tables Query data in tables

Three components of SQL 3. Data control language (DCL) Concurrency control, transactions Administrative tasks, e.g. set up database users, security permissions Focus for now A little bit of table creation (DDL) and population (DML) Primarily Querying (DML)

Creating Tables in SQL Table definition “CREATE TABLE” statement Specifies table name, attributes names and data types Create a table with no rows See an example

Creating Tables in SQL Related statements ALTER TABLE modifies table schema if needed DROP TABLE removes an empty table

Populating Tables in SQL Adding a row to an existing table “INSERT INTO” statement Specifies table name, attributes names and values Example: INSERT INTO River(Name, Origin, Length) VALUES (‘Mississippi’, ‘USA’. 6000)

Populating Tables in SQL Related statements SELECT statement with INTO clause can insert multiple rows in a table Bulk load, import commands also add multiple rows DELETE statement removes rows UPDATE statement can change values within selected rows

Query: Exercise Exercise: Which one of the following operations is NOT in data definition language? a) INSERT b) ALTER c) DROP d) CREATE

Outline 1.What is a Query? Query Language? 2.Example Database Tables 3.SQL Overview: 3 Components 4.SELECT statement with 1 table 5.Multi-table SELECT statements 6.Why spatial extensions are needed? 7.1-table spatial queries 8.Multi-table spatial queries 9.Trends

Learning Objectives Upon completion of this module, students will be able to Determine output of a single-Table SQL query Compose a single-Table SQL query

SQL Data Manipulation Language: SELECT Statement Purpose: Query data from database tables Returns a table as result Features Has many clauses Can refer to many operators and functions Allows nested queries

SQL SELECT Statement: Scope of Our Discussion Learn enough to appreciate spatial aspects Observe example queries Read & compose simple SELECT statement With frequently used clauses e.g., SELECT, FROM, WHERE, … And a few operators and functions

Clauses of SELECT Statement Mandatory Clauses SELECT specifies desired columns FROM specifies relevant tables Optional Clauses WHERE specifies qualifying conditions for results ORDER BY specifies sorting columns for results GROUP BY, HAVING specifies aggregation and statistics

SELECT Statement– operators, functions Arithmetic operators, e.g. +, -, … Comparison operators, e.g. =,, BETWEEN, LIKE, … Logical operators, e.g. AND, OR, NOT, EXISTS, Statistical functions, e.g. SUM, COUNT, … Set operators, e.g. UNION, IN, ALL, ANY,… Many other operators on strings, data, currency, …

Ex. 1: Simplest SELECT query Query: List all the cities with their country. SELECT Name, Country FROM CITY Result 

SELECT with WHERE Clause Commonly 3 clauses (SELECT, FROM, WHERE) are used Query: List the names of the capital cities in the CITY table. SELECT * FROM CITY WHERE CAPITAL=‘Y’ Result 

SELECT with Aliasing Query: List names and Life-expectancy for countries, where the life-expectancy is less than seventy years. SELECT Co.Name, Co.Life-Exp FROM Country Co WHERE Co.Life-Exp < 70 Note: use of alias ‘Co’ for Table ‘Country’ Result

SELECT: Aggregate Queries Query: What is the average population of the capital cities? SELECT AVG(Ci.Pop) FROM City Ci WHERE Ci.Capital = ‘Y’ Query: For each continent, find the average GDP. SELECT Co.Cont, Avg (Co.GDP) AS Continent-GDP FROM Country Co GROUP BY Co.Cont

SELECT: HAVING Clause Query: For each country in which at least two rivers originate, find the length of the smallest river. SELECT R.Origin, MIN (R.length) AS Min-length FROM River GROUP BY R.Origin HAVING COUNT(*) > 1

Outline 1.What is a Query? Query Language? 2.Example Database Tables 3.SQL Overview: 3 Components 4.SELECT statement with 1 table 5.Multi-table SELECT statements 6.Why spatial extensions are needed? 7.1-table spatial queries 8.Multi-table spatial queries 9.Trends

Learning Objectives Upon completion of this module, students will be able to Determine output of a multi-table SQL query Compose a simple multi-table SQL query

Two-Table Query Query: List capital cities and populations of countries whose GDP exceeds one trillion dollars. Q? How do we find capital city for countries?

World Database Data Tables: City The CITY table has 5 columns, Name, Country, Population (Pop), Capital and Shape, Shape is a point.

Two-Table Query Query: List capital cities and populations of countries whose GDP exceeds one trillion dollars. How do we find capital city for countries? Join City table with Country table using City.Country = Country.Name AND (City.Capital=‘Y’)

Two-Table Query Query: List capital cities and populations of countries whose GDP exceeds one trillion dollars. SELECT Ci.Name, Co.Pop FROM City Ci, Country Co WHERE Ci.Country = Co.Name AND Co.GDP > AND Ci.Capital=‘Y’

Composing Multi-table Query Three Meta-Questions A.Which tables are needed? B.How are the tables joined together? C.Do result rows aggregate rows of input tables? Example: What is the name and population of the capital city of the country where the St. Lawrence River originates? A. City, Country, RIver B. (River.Origin = Country.Name) AND (Country.Name = City.Country) C. No.

Multi-table Query Composition Query: What is the name and population of the capital city of the country where the St. Lawrence River originates? SELECT Ci.Name, Ci.Pop FROM City Ci, Country Co, River R WHERE R.Origin = Co.Name AND Co.Name = Ci.Country AND R.Name = ‘St. Lawrence’ AND Ci.Capital = ‘Y’

Nested Multi-Table Queries Query: List the countries whose Gross Domestic Product (GDP) is greater than that of Canada. SELECT Co.Name FROM Country Co WHERE Co.GDP > ANY ( SELECT Co1.GDP FROM Country Co1 WHERE Co1.Name = ‘Canada’)

Outline 1.What is a Query? Query Language? 2.Example Database Tables 3.SQL Overview: 3 Components 4.SELECT statement with 1 table 5.Multi-table SELECT statements 6.Why spatial extensions are needed? 7.1-table spatial queries 8.Multi-table spatial queries 9.Trends

Learning Objectives After this segment, students will able to Explain why spatial extensions were added to SQL Illustrate Semantic Gap between old SQL & Spatial Query Also called Impedance Mismatch

Why Extend SQL for Spatial Data? Original SQL had simple atomic data types Examples: integer, dates, string, currency Not convenient for spatial applications Spatial Data: points, edges, rectangles, … Example Queries: Q1: List all rectangle with point( x = 0, y = 0) as a corner point. Q2: List all rectangle with point( x = 0, y = 0) as an inside point. … P3P2 P4 P1

How old SQL modeled Spatial Data? Recall spatial data had Points, Edges, Rectangles Old Table Design (3rd Normal Form) Point ( Pid, x, y) Edge (Eid, Length) Rectangle (Rid, Rname) Starts_or_Ends ( Eid, Pid ) Boundary ( Rid, Eid ) P3P2 P4 P1

Old Tabular Representation of Unit Square! P3P2 P4 P1 EidPid E1P1 E1P2 E2P2 E2P3 E3P3 E3P4 E4P4 E4P1 Pidxy P100 P201 P311 P410 RidRname R1UnitSq RidEid R1E1 R1E2 R1E3 R1E4 EidLength E11 E21 E31 E41 Rectangle Start_or_Ends Boundary Edge Point

List all rectangles with origin as a corner point. You may be able to compose this SQL query However, joining 5 tables is challenging for average programmer Also, joining 5 tables to retrieve a simple object is costly! SELECT R.Rid, R.Rname FROM Rectangle R, Edge E, Point P, Boundary B, Starts_Or_Ends S WHERE (R.Rid=B.Rid) AND (B.Eid=E.Eid) AND (E.Eid=S.Eid) AND (S.Pid=P.Pid) AND (P.x = 0) AND (P.y = 0) P3P2 P4 P1

List rectangles with origin as an inside point. Steps: A. Gather properties of each rectangle in a row! B. Compare x- and y-coordinates of query point and each rectangle SELECT R.Rid, R.Rname, MIN(P.x), MIN(P.y), MAX(P.x), MAX(P.y) FROM Rectangle R, Edge E, Point P, Boundary B, Starts_Or_Ends S WHERE (R.Rid=B.Rid) AND (B.Eid=E.Eid) AND (E.Eid=S.Eid) AND (S.Pid=P.Pid) GROUP BY R.Rid HAVING (0 BETWEEN MIN(P.x) AND MAX(P.x)) AND (0 BETWEEN MIN(P.y) AND (P.y)) P3P2 P4 P1

Semantic Gap, Impedance Mismatch between Old SQL and Spatial Applications! If you found last query hard to code in SQL, You have just experienced the pain many felt in last century And forced SQL to support user-defined data-types! Simpler code with user-defined spatial data-types SELECT Rid, Rname FROM Rectangle R WHERE within ( Point(0,0), R.Shape_Polygon ) New Table Design Rectangle( Rid, RName, Shape_Polygon ) Point (Pid, x, y) P3P2 P4 P1

Outline 1.What is a Query? Query Language? 2.Example Database Tables 3.SQL Overview: 3 Components 4.SELECT statement with 1 table 5.Multi-table SELECT statements 6.Why spatial extensions are needed? 7.1-table spatial queries 8.Multi-table spatial queries 9.Trends

Learning Objectives After this segment, students will able to Recognize simple spatial data types and operations Recognize concepts from OGIS simple features library Determine output of a simple SQL/OGIS query (without spatial join)

Extending SQL for Spatial Data: New SQL 3 allows user-defined data types and operations Spatial data types and operations can be added Open Geodata Interchange Standard (OGIS) Half a dozen spatial data types Over a dozen spatial operations Supported by major vendors, e.g. ESRI, Intergraph, Oracle, IBM,...

OGIS Spatial Data Model Base-class: – Geometry Four sub-classes: Point Curve, e.g., LineString Surface, e.g., Polygon GeometryCollection PointCollection, PolygonCollection, LineStringCollection

OGIS Spatial Data Model: Operations Three Categories of Operations Apply to all geometry types SpatialReference, Envelope, Export, IsSimple, Boundary Predicates for Topological relationships Equal, Disjoint, Intersect, Touch, Cross, Within, Contains Spatial Data Analysis Distance, Buffer, Union, Intersection, ConvexHull, SymDiff

Spatial Operations: Exercise Which topological operator is needed to report rectangles with(0,0) as an inside point? a) Cross b) Equal c) Contains d) Touch e) Within

Spatial Queries with SQL/OGIS: General Information SQL3 and OGIS are supported by many vendors Syntax differs from vendor to vendor Readers may need to alter SQL/OGIS queries given in slide to make them run on specific products

Where is OGIS used within SQL? SQL Data Definition Language Spatial data-types for columns in CREATE TABLE SQL Data Manipulation Language Spatial operations with SELECT, INSERT, … Scope of our discussion Use of OGIS operations with SELECT statement Via a set of examples

Simple SQL SELECT_FROM_WHERE Examples Spatial analysis operations Unary operator: Area Binary operator: Distance Next Video Spatial-Join using Topological operations Touch, Cross Using both spatial analysis and topological operations Buffer, overlap

Unary Spatial Operation Area() Query: List the name, population, and area of each country listed in the Country table SELECT C.Name, C.Pop, Area(C.Shape) AS "Area" FROM Country C Note: This query uses spatial operation, Area() in place of a column in SELECT clause.

Binary Spatial Operation: Distance() Query: List the GDP and the distance of a country’s capital city to the “Equator” for all countries. SELECT Co.GDP, Distance(Point(0,Ci.Shape.y),Ci.Shape) AS "Distance" FROM Country Co, City Ci WHERE Co.Name = Ci.Country AND Ci.Capital =‘Y’

Spatial Operations: Exercise Which topological operator is needed to list rivers flowing through Argentina? a) Cross b) Equal c) Contains d) Touch

Outline 1.What is a Query? Query Language? 2.Example Database Tables 3.SQL Overview: 3 Components 4.SELECT statement with 1 table 5.Multi-table SELECT statements 6.Why spatial extensions are needed? 7.1-table spatial queries 8.Multi-table spatial queries 9.Trends

Learning Objectives After this segment, students will able to Determine output of a SQL/OGIS query with spatial join Compose a SQL/OGIS query with spatial join

Simple SQL SELECT_FROM_WHERE Examples Last Video: Spatial analysis operations Unary operator: Area Binary operator: Distance This Video Spatial-Join using Topological operations Touch, Cross Using both spatial analysis and topological operations Buffer, within

Spatial Join with Cross() 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 Note: Spatial operation “Cross” is used to join River and Country tables. This query represents a spatial join operation.

Spatial Self-Join with Touch() Query: Find the names of all countries which are neighbors of the United States (USA) in the Country table. SELECT C1.Name AS "Neighbors of USA" FROM Country C1,Country C2 WHERE Touch(C1.Shape,C2.Shape)=1 AND C2.Name =‘USA ’ Note: Spatial operator Touch() is used in WHERE clause to join Country table with itself. This query is an example of spatial self-join operation.

Spatial Join with Within() Query: The St. Lawrence River can supply water to cities that are within 300 km. List the cities that can use water from the St. Lawrence. SELECT Ci.Name FROM City Ci, River R WHERE Within (Ci.Shape, Buffer (R.Shape, 300)) = 1 AND R.Name = ‘St.Lawrence’

Spatial Join & Aggregation Query: List all countries, ordered by number of neighboring countries. SELECT Co.Name, Count (Co1.Name) FROM Country Co, Country Co1 WHERE Touch(Co.Shape,Co1.Shape) GROUP BY Co.Name ORDER BY Count(Co1.Name) Note: This query is difficult to answer in point-and-click GIS software (e.g. Arc/View) without support for programming languages, e.g., SQL.

Spatial Join with Nesting Query: For each river, identify the closest city. SELECT C1.Name, R1.Name FROM City C1, River R1 WHERE Distance (C1.Shape,R1.Shape) <= ALL ( SELECT Distance(C2.Shape, R1.Shape) FROM City C2 WHERE C1.Name <> C2.Name )

Outline 1.What is a Query? Query Language? 2.Example Database Tables 3.SQL Overview: 3 Components 4.SELECT statement with 1 table 5.Multi-table SELECT statements 6.Why spatial extensions are needed? 7.1-table spatial queries 8.Multi-table spatial queries 9.Trends

Learning Objectives After this segment, students will be able to List trends in Spatial Query Languages Facilities for user defined data types in SQL3

Defining Spatial Data Types in SQL3: Libraries Third party libraries implementing OGIS are available Almost all user use these libraries Few users need to define their own data types We will not discuss the detailed syntax of CREATE TYPE

Defining Spatial Data Types in SQL3: Overview CREATE TYPE statements Defines a new data types Attributes and methods are defined Separate statements for interface and implementation Example: CREATE TYPE Point AS OBJECT ( x NUMBER y NUMBER, MEMBER FUNCTION Distance (P2 IN Point) RETURN NUMBER, PRAGMA RESTRICT _REFERENCES (Distance, WWDS));

Summary Queries to databases are posed in high level declarative manner SQL is the “lingua-franca” in the commercial database world Standard SQL operates on relatively simple data types SQL3/OGIS supports several spatial data types and operations Additional spatial data types and operations can be defined CREATE TYPE statement

More Details [1] S. Shekhar, and S. Chawla, Spatial Database: A Tour, Prentice Hall 2003, ISBN (Chapter 3 on Spatial Query Languages). [2] A. Neumann, Open-Source GIS Libraries, Encyclopedia of GIS, Springer, 2008, pp [3] C. Strobl, PostGIS, Encyclopedia of GIS, Springer, 2008, pp pp [4] R. Kothuri and S. Ravada, Oracle Spatial, Geometrics, Encyclopedia of GIS, Springer, 2008, pp