Upcoming SlideShare
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Standard text messaging rates apply

Beginning to Spatial Data in SQL Server 2008

1,383

Published on

Beginning to Spatial Data in SQL Server 2008

Beginning to Spatial Data in SQL Server 2008

Published in: Technology
0 Likes
Statistics
Notes
• Full Name
Comment goes here.

Are you sure you want to Yes No
• Be the first to comment

• Be the first to like this

Views
Total Views
1,383
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
0
0
Likes
0
Embeds 0
No embeds

No notes for slide
• Do wymiarowania danych geometrycznych możemy użyć centymetrów, cali, metrów, stóp, pikseli
• Odp: Katmai, czyli co nowego w SQL Server 2008 CTP 10.06.2007 (N) 17:41 … Ilość nowych funkcjonalności jest niewielka (i dobrze, bo nie trzeba się napinać, żeby wszystkie szybko poznać). Jestem zdania, że lepiej dla nas i dla MS będzie, jeżeli w SQL Server 2008 nie pojawi się za wiele nowinek (zwłaszcza tak ciężkich i specyficznych jak spatial data)…
• POINT: A Point is an exact location, and is defined in terms of an X and Y pair of coordinates, as well as optionally by a Z (elevation) and M (measure) coordinate.  It does not have a length or any area associated with it.  Points are used as the fundamental building blocks of more complex spatial types.  Note: Z and M are recognized and maintained by SQL Server 2008 if supplied, but are not used in any calculations).LINESTRING: A line segment is the shortest path between two points.  A LineString, then, is defined as the path between a sequence of points (i.e., a series of connected line segments).  It is considered simple if it does not cross over itself, and is considered a ring if the starting point is the same as the ending point.  A LineString is always considered to be a one dimensional object; it has length, but does not have area (even if it is a ring).POLYGON: A Polygon is a closed two-dimensional shape defined by a ring.  It has both length and area.  A Polygon may also have holes in its interior (a hole is defined by another Polygon).  Area within a hole is considered to be exterior to the Polygon itself. COLLECTIONS: In addition to the single instance types (Point, LineString, and Polygon), there is also a type that can hold a collection of instances.  This is similar to a list or an array in most programming languages.  The most generic type of collection is the GeomCollection, whose members can be of any type.  Deriving from GeomCollection are MultiPolygon, MultiLineString, and MultiPoint.  As their names suggest, the members of these collection types must be of the single instance type (i.e., MultiPoint can only contain Points, etc).
• People with backgrounds in mathematics may be compelled to put commas between each coordinate, but in WKT, a space is used to separate the coordinates of a point, and a comma is used to separate points within a more complex type.  Parentheses are used to group points into a single shape.
• Contactinformation
• TheEnd
• Transcript

• 1. Wprowadzenie do Spatial Data w SQL Server 2008
{GET DATE – 31/05/2009}
{WHERE – CodeCamp 2009 Kraków}
{AUDIENCE TYPE – już trochę wymęczeni…}
• 2. Tobiasz Janusz Koprowski
Data Center OperationSpecialistat
• 3. {get BIO}
• związany z informatyką od połowy lat dziewięćdziesiątych
• 4. kilkuletnie doświadczenie w informatyce bankowej [Zorba, AS/400, ICBS, BTeller]
• 5. kilkuletnie doświadczenie w Centrum Przetwarzania Danych
• 6. na co dzień zajmujący się MOSS, DisasterRecovery, High Availibility, wirtualizacją, bezpieczeństwem fizycznym, tworzeniem procedur bezpieczeństwa
• 7. konsultant i wdrożeniowiec przy projektach audytów licencyjnych, systemów bezpieczeństwa, tworzenia ośrodków przetwarzania danych
• 8. Microsoft Gold Partner Program Administrator
• 9. uczestnik kilku programów Microsoft: Connect, Community LeadershipProgramm,
ITProMomentum, VS2010 Terminology Community, Windows 7 Beta 2 PL
• lider wrocławskiej grupy PLSSUG
• 10. prelegent na spotkaniach społeczności
• 11. Thawte Web Of Trust Notary
• Agenda
Co to jest: Spatial Data [typy danych]
Praca ze Spatial Data
Implementacja
Definiowanie informacji danych w SQL Server 2008
Współpraca z .NET Framework
Tworzenie Spatial Data
Tworzenie danych
Import danych
Przedstawianie Spatial Data
Spatial Data and Management Studio
Analiza
Modyfikacje
Testowanie
Indeksowanie
Materiały dodatkowe
Q & A
• 12. Powtórka z matematyki
W czasach szkoły średniej większość z nas miała lekcje geometrii.
Na płaskim planie, na siatce rysowaliśmy:
punkty,
czasem łącząc je liniami
często łącząc linie w kształty
Trójkąty, kwadraty, romby oparte na siatce bazującej na Kartezjańskim Systemie Koordynatów
Serwer SQL 2008 pozwala nam na przedstawianie danych reprezentowanych przez dwa wymiary, bardzo bliskie geometrycznym rysunkom z czasów szkolnych.
• 13. Powtórka z geografii
Być może nie wszyscy o tym słyszeli, lub nie wszyscy pamiętają, ale…
Jest podobna do piłki !!
Od kiedy ziemia nie jest płaska… nastąpiła zasadnicza zmiana w sposobie jej opisywania.
Dalej używamy płaskich map (w samochodach, na wycieczce) ale musimy zwrócić uwagę na poziom dystorsji, zniekształceń obrazu. …[patrz: Grenlandia/Antarktyka].
SQL Server 2008 pozwala nam przedstawiać dane konkretne miejsce na mapie ziemi uwzględniając jej kulistą budowę.
• 14. Co to jest: Spatial Data [typy danych] 01
SQL Server 2008 wprowadza nowe typy danych umożliwiające gromadzenie, przetwarzanie i analizowanie danych lokalizacyjnych bezpośrednio w serwerze SQL, a co za tym idzie również w aplikacjach do niego podłączonych.
Trzy najważniejsze pojęcia związane z danymi przestrzennymi:
GEOGRAPHY - przechowywanie i przetwarzanie danych przestrzennych opartych na współrzędnych geodezyjnych {round-earthorgeodetic data}. Uwzględniają krzywiznę ziemi i służą do opisywania krajów, kontynentów, dróg, miast.
DECLARE@geoggeography
GEOMETRY - przechowywanie i przetwarzanie danych przestrzennych opartych na współrzędnych płaskich (planarnych) {flat-earth data}. Nie uwzględniają krzywizny ziemi i opisują względnie małe obiekty (np. pomieszczenia i figury).
DECLARE @geomgeometry
SPATIAL INDEX - pozwalający na osiągnięcie wysokiej wydajności przetwarzania danych przestrzennych.
• 15. Co to jest: Spatial Data [typy danych] 02
Standardy: opracowane przezOpenGeospatialConsortium (NGO).
The Open Geospatial Consortium zdefiniowało podstawowe typy danych jakich używamy do opisywania wszystkiego co ma związek z przestrzennymi danymi geograficznymi i geometrycznymi:
Point {punkt}
Linestring {linia}
Polygon {kształt}
MultiPoint {wiele punktów}
MultiLinestring {wiele linii}
MultiPolygon {wiele kształtów}
GeomCollection {kolekcja}
• 16. Praca z danymi przestrzennymi - Implementacja
Typy danych zawarte są w Simple Feature Access, zaś opisane w dwóch dokumentach:
OpenGIS Implementation Specification for Geographic information - Simple feature access - Part 1: Common architecture
OpenGIS Implementation Specification for Geographic information - Simple feature access - Part 2: SQL option
Reprezentacja danych została opracowana przez OGC i dotyczy zarówno danych Geometry jak i Geography, dla Points, Linestrings i innych. SQL Server daje nam:
Well-Known Text (WKT), [Longitude/Latitide]
Well-Known Binary (WKB), [Longitude/Latitide]
Geography Markup Language (GML).  [Latitude/Longitude]
WKT Syntax:
POINT(10 10)
POINT(10 10 10 1) // X Y Z M shown here
LINESTRING(0 0, 10 10)
POLYGON((0 0, 0 10, 10 10, 10 0, 0 0))
POLYGON((0 0, 0 10, 10 10, 10 0, 0 0), (1 1, 4 5, 4 1, 1 1))
• 17. Praca z danymi przestrzennymi - Definiowanie informacji
Common SQL 2008 Datatypes:
• char | dateline | float | int | money | nvarchar
SpatialDatatypesIntroduced SQL 2008:
• geography / geodeticvectorspatial data
• 18. geometry / planarvectorspatial data
Geography and Geometry Datatypes – comparison:
• 19. DEMO 1 – SELECT * FROMsys.spatial_reference_systems
• 20. Praca z danymi przestrzennymi – Współpraca z .NET
Zapis tych samych wartości w różny sposób:
SQL
DECLARE @MyGeometry geometry
SET @MyGeometry = geometry::Point(10, 20, 0)
SELECT @MyGeometry.ToString()
.NET
Imports Microsoft.SqlServer.Types
Module MyModule
Sub Main()
Dim MyGeometry As New SqlGeometry()
MyGeometry = SqlGeometry.Point(10, 20, 0)
Console.Write(MyGeometry.ToString())
End Sub
End Module
C#
using Microsoft.SqlServer.Types
Class MyClass
{
static void Main(string[] args)
{
SqlGeometry MyGeometry = SqlGeometry,Point(10, 20, 0)
System.Console.Write(MyGeometry.ToString());
}
}
WYNIK DLA WSZYSTKICH TRZECH OPCJI:
• 21. Tworzenie Danych Przestrzennych - Geometry
Do tworzenia danych przestrzennych geometrycznych używamy:
^ STGeomFromText, ^ STPointFromText,
^ STLineFromText, ^ STPolyFromText,
^ STMPointFromText, ^ STMLineFromText,
^ STMPolyFromText, ^ STGeomCollFromText,
^ STGeomFromWKB, ^ STPointFromWKB,
^ STLineFromWKB, ^ STPolyFromWKB,
^ STMPointFromWKB, ^ STMLineFromWKB,
^ STMPolyFromWKB, ^ STGeomCollFromWKB
Tylko statyczne dane!!!
• 22. Tworzenie Danych Przestrzennych - Geometry
Do tworzenia danych przestrzennych geometrycznych używamy:
^ STArea ^ STasBinary
^ STAsText ^ STBuffer
^ STDistance ^STDimension
^ STDisjoint ^ STDistance
^ STNumPoints ^ STEndpoint
^STPointN ^ STEquals
^ STGeometryN ^ STSrid
^ STStartPoint ^ STUnion
^ STSysDifference
• 23. Tworzenie Danych Przestrzennych - Geography
Do tworzenia danych przestrzennych geograficznych używamy:
^ STBoundary ^ STInteriorRings
^ STCentroid ^ STIsRing
^ STContains ^STIsSimple
^ STCrossess ^ STIsValid
^ STNConvexNull ^ STNumInteriorRing
^STEnvelope ^ STOverlaps
^ STExteriorRing ^ STPointnSurface
^ STRelate ^ STTouches
^ STWithin ^ STX
^ STY
• 24. Tworzenie danych przestrzennych – Import danych
Dane przestrzenne możemy importować do bazy SQL Server z przygotowanych przez nas plików (również płaskich „txt”)
Dane przestrzenne możemy tez importować ze źródeł internetowych:
US CensusBureauDivision– wysokiej jakości dane, zawierające bardzo dużą ilość informacji geograficznych – (ulice, kody pocztowe, drogi itp.)
The United NationsGeo Data Portal – globalne, narodowe, regionalne, podregionalne dane statystyczne i przestrzenne, zawierające informacje o populacji, zdrowiu, klimacie, katastrofach
The Global AdministrativeAreasDatabase– granice krajów, stanów, prowincji, serwowane przez uniwersytet w Berkely
The US National Geospatial-InteligenceAgency– znajdujące się poza terytorium USA miejsca, lokalizacje, urzędy
The US Government „Geospatial Non Stop” – portal z dużą ilością linków do stron gdzie można pobrać dane o ekologii, zdrowiu, demografii, transporcie.
Polecania przydane przy imporcie:
OPENROWSET, BULK INSERT – import ustrukturyzowanych danych jedna metoda BULK T-SQL
ALTER TABLE – import danych geograficznych lub geometrycznych do nowych kolumn w tabeli
T-SQL UPDATE – używane przede wszystkim do importu kolumn z koordynatami
• 25. DEMO 2 – SELECT * FROM
[eqs7day-M1]
• 26. Przedstawianie danych – Management Studio 1
DEMO 3 – DECLARE@Sometning
• 27. Zagadnienia zaawansowane na następne sesje
Spatial Data Analysys
sprawdzanie, modyfikowanie właściwości pojedynczych obiektów
ModyfyingSpatialObjects
tworzenie nowych obiektów bazujących na istniejących
TestingSpatialRelationship
Metody relacji miedzy obiektami przestrzennymi
SpatialIndexing
Poprawianie wydajności, uwalnianie nieużywanych zasobów,
• 28. Materiały dodatkowe - linki
BeginningSpatialwith SQL Server 2008 &lt;apress – AlastairAitchison&gt;
[http://www.apress.com/book/view/1430218290]
BeginningSpatialwith SQL Server 2008 &lt;przykłady, kody itp..&gt;
[http://www.apress.com/resource/bookfile/4279]
SQL Server 2008 Developer Training Kit
Prezentacje (Spatial); Dema (SQL Server 2008 All-UpSpatial Demo & SpatialTypes Demo); Hands-onLabs (UsingSpatial Data in TSQL & UsingSpatial Data inManagedCode)
T-SQL 2008 (cz. 4) - Przestrzenne typy danych i opcja Filestream &lt;Marcin Szeliga&gt;
[http://wss.pl/Articles/9643.aspx/]
Serwer SQL 2008. Administracja i programowanie &lt;Szeliga, Widera, Mendrala, Potasiński&gt;
[http://helion.pl/ksiazki/ssql28.htm]
SQL Server Spatial Data Technology Center
http://www.microsoft.com/sql/2008/technologies/spatial.mspx
Whitepaper: Delivering Location Intelligence with Spatial Data
http://www.microsoft.com/sql/techinfo/whitepapers/spatialdata.mspx
MSDN Webcast: Building Spatial Applications with SQL Server 2008,
Event ID: 1032353123
Whitepaper: What&apos;s New for XML in SQL Server 2008
http://www.microsoft.com/sql/techinfo/whitepapers/sql_2008_xml.mspx
Whitepaper: Managing Unstructured Data with SQL Server 2008 http://www.microsoft.com/sql/techinfo/whitepapers/sql_2008_unstructured.mspx
• 29. Materiały dodatkowe - linki
Microsoft Spatial Data Portal (j. pol.)
[http://www.microsoft.com/poland/sql/wp-sql-2008-spatial-data.aspx]
Saving Virtual Earth Polygons to SQL Server 2008 (j. ang.)
[http://channel9.msdn.com/posts/keydet/Saving-Virtual-Earth-Polygons-to-SQL-Server-2008/]
Rendering Polygons from SQL Server 2008 on Virtual Earth (j. ang.)
[http://channel9.msdn.com/posts/keydet/Rendering-Polygons-from-SQL-Server-2008-on-Virtual-Earth/]
Spatial Data to Help Car Radios Track the Big Game (j. ang.)
[http://www.eweek.com/article2/0,1759,2246219,00.asp]
Microsoft Readies SQL Server CTP-5 with Spatial Datatype Support (j. ang.)
[http://www.directionsmag.com/article.php?article_id=2614&trv=1]
SQL Server 2008 spatial data brings locations into view (j. ang.)
[http://www.networkworld.com/community/node/21879]
Microsoft Joins OGC (Oct. 23, 2007) (j. ang.)