SlideShare ist ein Scribd-Unternehmen logo
1 von 24
Wprowadzenie do Spatial Data w SQL Server 2008 {GET DATE – 31/05/2009} {WHERE – CodeCamp 2009 Kraków} {AUDIENCE TYPE – już trochę wymęczeni…}
Tobiasz Janusz Koprowski Data Center OperationSpecialistat Asseco Business Solutions SA
{get BIO} ,[object Object]
 kilkuletnie doświadczenie w informatyce bankowej [Zorba, AS/400, ICBS, BTeller]
 kilkuletnie doświadczenie w Centrum Przetwarzania Danych
 na co dzień zajmujący się MOSS, DisasterRecovery, High Availibility, wirtualizacją, 		bezpieczeństwem fizycznym, tworzeniem procedur bezpieczeństwa
 konsultant i wdrożeniowiec przy projektach audytów licencyjnych, systemów bezpieczeństwa, 	tworzenia ośrodków przetwarzania danych
 Microsoft Gold Partner Program Administrator
 uczestnik kilku programów Microsoft: Connect, Community LeadershipProgramm, ITProMomentum, VS2010 Terminology Community, Windows 7 Beta 2 PL ,[object Object]
 prelegent na spotkaniach społeczności
Thawte Web Of Trust Notary,[object Object]
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.
Powtórka z geografii Być może nie wszyscy o tym słyszeli, lub nie wszyscy pamiętają, ale… Obecnie ziemia nie jest płaska! 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ę.
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.
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}
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))
Praca z danymi przestrzennymi - Definiowanie informacji Common SQL 2008 Datatypes: ,[object Object],SpatialDatatypesIntroduced SQL 2008: ,[object Object]
geometry / planarvectorspatial dataGeography and Geometry Datatypes – comparison:
DEMO 1 – SELECT * FROMsys.spatial_reference_systems
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:
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!!!
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
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
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

Weitere ähnliche Inhalte

Andere mochten auch

KoprowskiT_SQLSatMoscow_2AMaDisaterJustBegan
KoprowskiT_SQLSatMoscow_2AMaDisaterJustBeganKoprowskiT_SQLSatMoscow_2AMaDisaterJustBegan
KoprowskiT_SQLSatMoscow_2AMaDisaterJustBeganTobias Koprowski
 
Tomasz Kopacz MTS 2012 Azure - Co i kiedy użyć (IaaS vs paas vshybrid cloud v...
Tomasz Kopacz MTS 2012 Azure - Co i kiedy użyć (IaaS vs paas vshybrid cloud v...Tomasz Kopacz MTS 2012 Azure - Co i kiedy użyć (IaaS vs paas vshybrid cloud v...
Tomasz Kopacz MTS 2012 Azure - Co i kiedy użyć (IaaS vs paas vshybrid cloud v...Tomasz Kopacz
 
Eventuosity For Event Producers and Service Providers
Eventuosity For Event Producers and Service ProvidersEventuosity For Event Producers and Service Providers
Eventuosity For Event Producers and Service ProvidersJustin Panzer
 
Презентация стратегической игры MatriX Urban
Презентация стратегической игры MatriX UrbanПрезентация стратегической игры MatriX Urban
Презентация стратегической игры MatriX UrbanАндрей Донских
 
Virtual Study Beta Exam 71-663 Exchange 2010 Designing And Deploying Messagin...
Virtual Study Beta Exam 71-663 Exchange 2010 Designing And Deploying Messagin...Virtual Study Beta Exam 71-663 Exchange 2010 Designing And Deploying Messagin...
Virtual Study Beta Exam 71-663 Exchange 2010 Designing And Deploying Messagin...Tobias Koprowski
 
Can We Automate Predictive Analytics
Can We Automate Predictive AnalyticsCan We Automate Predictive Analytics
Can We Automate Predictive Analyticsodsc
 
Cabs, Cassandra, and Hailo
Cabs, Cassandra, and HailoCabs, Cassandra, and Hailo
Cabs, Cassandra, and HailoDave Gardner
 
Slideburst #7 - Next Best Action in All Digital Channels
Slideburst #7 - Next Best Action in All Digital ChannelsSlideburst #7 - Next Best Action in All Digital Channels
Slideburst #7 - Next Best Action in All Digital ChannelsPatrik Svensson
 
ERISA Expert Advocates for 401(k) Loan Default Protection
ERISA Expert Advocates for 401(k) Loan Default ProtectionERISA Expert Advocates for 401(k) Loan Default Protection
ERISA Expert Advocates for 401(k) Loan Default ProtectionRetirement Loan Eraser
 

Andere mochten auch (12)

KoprowskiT_SQLSatMoscow_2AMaDisaterJustBegan
KoprowskiT_SQLSatMoscow_2AMaDisaterJustBeganKoprowskiT_SQLSatMoscow_2AMaDisaterJustBegan
KoprowskiT_SQLSatMoscow_2AMaDisaterJustBegan
 
Tomasz Kopacz MTS 2012 Azure - Co i kiedy użyć (IaaS vs paas vshybrid cloud v...
Tomasz Kopacz MTS 2012 Azure - Co i kiedy użyć (IaaS vs paas vshybrid cloud v...Tomasz Kopacz MTS 2012 Azure - Co i kiedy użyć (IaaS vs paas vshybrid cloud v...
Tomasz Kopacz MTS 2012 Azure - Co i kiedy użyć (IaaS vs paas vshybrid cloud v...
 
State of Nation - Feb 2017
State of Nation - Feb 2017State of Nation - Feb 2017
State of Nation - Feb 2017
 
Eventuosity For Event Producers and Service Providers
Eventuosity For Event Producers and Service ProvidersEventuosity For Event Producers and Service Providers
Eventuosity For Event Producers and Service Providers
 
Презентация стратегической игры MatriX Urban
Презентация стратегической игры MatriX UrbanПрезентация стратегической игры MatriX Urban
Презентация стратегической игры MatriX Urban
 
Virtual Study Beta Exam 71-663 Exchange 2010 Designing And Deploying Messagin...
Virtual Study Beta Exam 71-663 Exchange 2010 Designing And Deploying Messagin...Virtual Study Beta Exam 71-663 Exchange 2010 Designing And Deploying Messagin...
Virtual Study Beta Exam 71-663 Exchange 2010 Designing And Deploying Messagin...
 
Can We Automate Predictive Analytics
Can We Automate Predictive AnalyticsCan We Automate Predictive Analytics
Can We Automate Predictive Analytics
 
Cabs, Cassandra, and Hailo
Cabs, Cassandra, and HailoCabs, Cassandra, and Hailo
Cabs, Cassandra, and Hailo
 
Das Next Best Offer-Konzept
Das Next Best Offer-KonzeptDas Next Best Offer-Konzept
Das Next Best Offer-Konzept
 
Slideburst #7 - Next Best Action in All Digital Channels
Slideburst #7 - Next Best Action in All Digital ChannelsSlideburst #7 - Next Best Action in All Digital Channels
Slideburst #7 - Next Best Action in All Digital Channels
 
ERISA Expert Advocates for 401(k) Loan Default Protection
ERISA Expert Advocates for 401(k) Loan Default ProtectionERISA Expert Advocates for 401(k) Loan Default Protection
ERISA Expert Advocates for 401(k) Loan Default Protection
 
Water Filtration and Food Quality: Why You Should Take Water Seriously
Water Filtration and Food Quality: Why You Should Take Water SeriouslyWater Filtration and Food Quality: Why You Should Take Water Seriously
Water Filtration and Food Quality: Why You Should Take Water Seriously
 

Ähnlich wie Beginning to Spatial Data in SQL Server 2008

Dawid Gonzo Kałędowski: R jako osobisty GPS
Dawid Gonzo Kałędowski: R jako osobisty GPSDawid Gonzo Kałędowski: R jako osobisty GPS
Dawid Gonzo Kałędowski: R jako osobisty GPSAnalyticsConf
 
SQLDay 2014 - Change Tracking & Change Data Capture
SQLDay 2014 - Change Tracking & Change Data CaptureSQLDay 2014 - Change Tracking & Change Data Capture
SQLDay 2014 - Change Tracking & Change Data CaptureKamil Nowinski
 
SQLDay2013_PawełPotasiński_GeografiaSQLServer2012
SQLDay2013_PawełPotasiński_GeografiaSQLServer2012SQLDay2013_PawełPotasiński_GeografiaSQLServer2012
SQLDay2013_PawełPotasiński_GeografiaSQLServer2012Polish SQL Server User Group
 
Migracja I Integracja Bazy
Migracja I Integracja BazyMigracja I Integracja Bazy
Migracja I Integracja BazyPrzemysław ...
 
"Administrator z przypadku" - Jak działa SQL Server i jak o niego dbać
"Administrator z przypadku" - Jak działa SQL Server i jak o niego dbać"Administrator z przypadku" - Jak działa SQL Server i jak o niego dbać
"Administrator z przypadku" - Jak działa SQL Server i jak o niego dbaćBartosz Ratajczyk
 
Łukasz Grala - BI w Sql 2008
Łukasz Grala - BI w Sql 2008Łukasz Grala - BI w Sql 2008
Łukasz Grala - BI w Sql 2008nexik
 
Michał Dec - Quality in Clouds
Michał Dec - Quality in CloudsMichał Dec - Quality in Clouds
Michał Dec - Quality in Cloudskraqa
 
Confitura 2018 - Sekretne życie jobów Sparkowych
Confitura 2018 - Sekretne życie jobów SparkowychConfitura 2018 - Sekretne życie jobów Sparkowych
Confitura 2018 - Sekretne życie jobów SparkowychMarcin Jasiński
 
Access 2003 PL. Ćwiczenia praktyczne. Wydanie II
Access 2003 PL. Ćwiczenia praktyczne. Wydanie IIAccess 2003 PL. Ćwiczenia praktyczne. Wydanie II
Access 2003 PL. Ćwiczenia praktyczne. Wydanie IIWydawnictwo Helion
 

Ähnlich wie Beginning to Spatial Data in SQL Server 2008 (14)

Po co mi Temporal Tables?
Po co mi Temporal Tables?Po co mi Temporal Tables?
Po co mi Temporal Tables?
 
Dawid Gonzo Kałędowski: R jako osobisty GPS
Dawid Gonzo Kałędowski: R jako osobisty GPSDawid Gonzo Kałędowski: R jako osobisty GPS
Dawid Gonzo Kałędowski: R jako osobisty GPS
 
Dane przestrzenne w PHP
Dane przestrzenne w PHPDane przestrzenne w PHP
Dane przestrzenne w PHP
 
SQLDay 2014 - Change Tracking & Change Data Capture
SQLDay 2014 - Change Tracking & Change Data CaptureSQLDay 2014 - Change Tracking & Change Data Capture
SQLDay 2014 - Change Tracking & Change Data Capture
 
SQLDay2013_PawełPotasiński_GeografiaSQLServer2012
SQLDay2013_PawełPotasiński_GeografiaSQLServer2012SQLDay2013_PawełPotasiński_GeografiaSQLServer2012
SQLDay2013_PawełPotasiński_GeografiaSQLServer2012
 
Change Tracking
Change TrackingChange Tracking
Change Tracking
 
Migracja I Integracja Bazy
Migracja I Integracja BazyMigracja I Integracja Bazy
Migracja I Integracja Bazy
 
"Administrator z przypadku" - Jak działa SQL Server i jak o niego dbać
"Administrator z przypadku" - Jak działa SQL Server i jak o niego dbać"Administrator z przypadku" - Jak działa SQL Server i jak o niego dbać
"Administrator z przypadku" - Jak działa SQL Server i jak o niego dbać
 
Łukasz Grala - BI w Sql 2008
Łukasz Grala - BI w Sql 2008Łukasz Grala - BI w Sql 2008
Łukasz Grala - BI w Sql 2008
 
Michał Dec - Quality in Clouds
Michał Dec - Quality in CloudsMichał Dec - Quality in Clouds
Michał Dec - Quality in Clouds
 
Confitura 2018 - Sekretne życie jobów Sparkowych
Confitura 2018 - Sekretne życie jobów SparkowychConfitura 2018 - Sekretne życie jobów Sparkowych
Confitura 2018 - Sekretne życie jobów Sparkowych
 
DSL - DYI
DSL - DYIDSL - DYI
DSL - DYI
 
XML w SQL Server w praktyce
XML w SQL Server w praktyceXML w SQL Server w praktyce
XML w SQL Server w praktyce
 
Access 2003 PL. Ćwiczenia praktyczne. Wydanie II
Access 2003 PL. Ćwiczenia praktyczne. Wydanie IIAccess 2003 PL. Ćwiczenia praktyczne. Wydanie II
Access 2003 PL. Ćwiczenia praktyczne. Wydanie II
 

Mehr von Tobias Koprowski

KoprowskiT_2AMaDisasterJustBeganAD2018
KoprowskiT_2AMaDisasterJustBeganAD2018KoprowskiT_2AMaDisasterJustBeganAD2018
KoprowskiT_2AMaDisasterJustBeganAD2018Tobias Koprowski
 
DataMindsConnect2018_SECDEVOPS
DataMindsConnect2018_SECDEVOPSDataMindsConnect2018_SECDEVOPS
DataMindsConnect2018_SECDEVOPSTobias Koprowski
 
KoprowskiT_SQLDay2016_2AMaDisasterJustBegan
KoprowskiT_SQLDay2016_2AMaDisasterJustBeganKoprowskiT_SQLDay2016_2AMaDisasterJustBegan
KoprowskiT_SQLDay2016_2AMaDisasterJustBeganTobias Koprowski
 
KoprowskiT-Difinify2017-SQL_ServerBackup_In_The_Cloud
KoprowskiT-Difinify2017-SQL_ServerBackup_In_The_CloudKoprowskiT-Difinify2017-SQL_ServerBackup_In_The_Cloud
KoprowskiT-Difinify2017-SQL_ServerBackup_In_The_CloudTobias Koprowski
 
KoprowskiT-Difinify2017-SQL_Security_In_The_Cloud
KoprowskiT-Difinify2017-SQL_Security_In_The_CloudKoprowskiT-Difinify2017-SQL_Security_In_The_Cloud
KoprowskiT-Difinify2017-SQL_Security_In_The_CloudTobias Koprowski
 
KoprowskiT_SQLRelayCaerdydd_SQLSecurityInTheClouds
KoprowskiT_SQLRelayCaerdydd_SQLSecurityInTheCloudsKoprowskiT_SQLRelayCaerdydd_SQLSecurityInTheClouds
KoprowskiT_SQLRelayCaerdydd_SQLSecurityInTheCloudsTobias Koprowski
 
KoprowskiT_SQLRelayNottingham_BackupAndRestoreAD2015
KoprowskiT_SQLRelayNottingham_BackupAndRestoreAD2015KoprowskiT_SQLRelayNottingham_BackupAndRestoreAD2015
KoprowskiT_SQLRelayNottingham_BackupAndRestoreAD2015Tobias Koprowski
 
KoprowskiT_SQLSatHolland_SQLServerSecurityInTheCloud
KoprowskiT_SQLSatHolland_SQLServerSecurityInTheCloudKoprowskiT_SQLSatHolland_SQLServerSecurityInTheCloud
KoprowskiT_SQLSatHolland_SQLServerSecurityInTheCloudTobias Koprowski
 
KoprowskiT_SQLSatDenmark_WASDforBeginners
KoprowskiT_SQLSatDenmark_WASDforBeginnersKoprowskiT_SQLSatDenmark_WASDforBeginners
KoprowskiT_SQLSatDenmark_WASDforBeginnersTobias Koprowski
 
KoprowskiT_Session2_SDNEvent_SourceControlForDBA
KoprowskiT_Session2_SDNEvent_SourceControlForDBAKoprowskiT_Session2_SDNEvent_SourceControlForDBA
KoprowskiT_Session2_SDNEvent_SourceControlForDBATobias Koprowski
 
KoprowskiT_session1_SDNEvent_WASDforBeginners
KoprowskiT_session1_SDNEvent_WASDforBeginnersKoprowskiT_session1_SDNEvent_WASDforBeginners
KoprowskiT_session1_SDNEvent_WASDforBeginnersTobias Koprowski
 
KoprowskiT_SQLSaturdayManchester_2AMaDisasterJustbegan
KoprowskiT_SQLSaturdayManchester_2AMaDisasterJustbeganKoprowskiT_SQLSaturdayManchester_2AMaDisasterJustbegan
KoprowskiT_SQLSaturdayManchester_2AMaDisasterJustbeganTobias Koprowski
 
KoprowskiT_SQLSaturday409_MaintenancePlansForBeginners
KoprowskiT_SQLSaturday409_MaintenancePlansForBeginnersKoprowskiT_SQLSaturday409_MaintenancePlansForBeginners
KoprowskiT_SQLSaturday409_MaintenancePlansForBeginnersTobias Koprowski
 
KoprowskiT_SPBizConf_2AMaDisasterJustBegan
KoprowskiT_SPBizConf_2AMaDisasterJustBeganKoprowskiT_SPBizConf_2AMaDisasterJustBegan
KoprowskiT_SPBizConf_2AMaDisasterJustBeganTobias Koprowski
 
KoprowskiT_InfoTRAMS_TrustThePrimer
KoprowskiT_InfoTRAMS_TrustThePrimerKoprowskiT_InfoTRAMS_TrustThePrimer
KoprowskiT_InfoTRAMS_TrustThePrimerTobias Koprowski
 
KoprowskiT_SQLSat419_WADBforBeginners
KoprowskiT_SQLSat419_WADBforBeginnersKoprowskiT_SQLSat419_WADBforBeginners
KoprowskiT_SQLSat419_WADBforBeginnersTobias Koprowski
 
KoprowskiT_SPBizConference_2AMaDisasterJustBegan
KoprowskiT_SPBizConference_2AMaDisasterJustBeganKoprowskiT_SPBizConference_2AMaDisasterJustBegan
KoprowskiT_SPBizConference_2AMaDisasterJustBeganTobias Koprowski
 
KoprowskiT_SQLSat409_MaintenancePlansForBeginners
KoprowskiT_SQLSat409_MaintenancePlansForBeginnersKoprowskiT_SQLSat409_MaintenancePlansForBeginners
KoprowskiT_SQLSat409_MaintenancePlansForBeginnersTobias Koprowski
 
KoprowskiT_ESRM_TrustThePrimer
KoprowskiT_ESRM_TrustThePrimerKoprowskiT_ESRM_TrustThePrimer
KoprowskiT_ESRM_TrustThePrimerTobias Koprowski
 

Mehr von Tobias Koprowski (20)

KoprowskiT_2AMaDisasterJustBeganAD2018
KoprowskiT_2AMaDisasterJustBeganAD2018KoprowskiT_2AMaDisasterJustBeganAD2018
KoprowskiT_2AMaDisasterJustBeganAD2018
 
DataMindsConnect2018_SECDEVOPS
DataMindsConnect2018_SECDEVOPSDataMindsConnect2018_SECDEVOPS
DataMindsConnect2018_SECDEVOPS
 
KoprowskiT_SQLDay2016_2AMaDisasterJustBegan
KoprowskiT_SQLDay2016_2AMaDisasterJustBeganKoprowskiT_SQLDay2016_2AMaDisasterJustBegan
KoprowskiT_SQLDay2016_2AMaDisasterJustBegan
 
KoprowskiT-Difinify2017-SQL_ServerBackup_In_The_Cloud
KoprowskiT-Difinify2017-SQL_ServerBackup_In_The_CloudKoprowskiT-Difinify2017-SQL_ServerBackup_In_The_Cloud
KoprowskiT-Difinify2017-SQL_ServerBackup_In_The_Cloud
 
KoprowskiT-Difinify2017-SQL_Security_In_The_Cloud
KoprowskiT-Difinify2017-SQL_Security_In_The_CloudKoprowskiT-Difinify2017-SQL_Security_In_The_Cloud
KoprowskiT-Difinify2017-SQL_Security_In_The_Cloud
 
KoprowskiT_SQLRelayCaerdydd_SQLSecurityInTheClouds
KoprowskiT_SQLRelayCaerdydd_SQLSecurityInTheCloudsKoprowskiT_SQLRelayCaerdydd_SQLSecurityInTheClouds
KoprowskiT_SQLRelayCaerdydd_SQLSecurityInTheClouds
 
KoprowskiT_SQLRelayNottingham_BackupAndRestoreAD2015
KoprowskiT_SQLRelayNottingham_BackupAndRestoreAD2015KoprowskiT_SQLRelayNottingham_BackupAndRestoreAD2015
KoprowskiT_SQLRelayNottingham_BackupAndRestoreAD2015
 
KoprowskiT_SBIPTI_Keynote
KoprowskiT_SBIPTI_KeynoteKoprowskiT_SBIPTI_Keynote
KoprowskiT_SBIPTI_Keynote
 
KoprowskiT_SQLSatHolland_SQLServerSecurityInTheCloud
KoprowskiT_SQLSatHolland_SQLServerSecurityInTheCloudKoprowskiT_SQLSatHolland_SQLServerSecurityInTheCloud
KoprowskiT_SQLSatHolland_SQLServerSecurityInTheCloud
 
KoprowskiT_SQLSatDenmark_WASDforBeginners
KoprowskiT_SQLSatDenmark_WASDforBeginnersKoprowskiT_SQLSatDenmark_WASDforBeginners
KoprowskiT_SQLSatDenmark_WASDforBeginners
 
KoprowskiT_Session2_SDNEvent_SourceControlForDBA
KoprowskiT_Session2_SDNEvent_SourceControlForDBAKoprowskiT_Session2_SDNEvent_SourceControlForDBA
KoprowskiT_Session2_SDNEvent_SourceControlForDBA
 
KoprowskiT_session1_SDNEvent_WASDforBeginners
KoprowskiT_session1_SDNEvent_WASDforBeginnersKoprowskiT_session1_SDNEvent_WASDforBeginners
KoprowskiT_session1_SDNEvent_WASDforBeginners
 
KoprowskiT_SQLSaturdayManchester_2AMaDisasterJustbegan
KoprowskiT_SQLSaturdayManchester_2AMaDisasterJustbeganKoprowskiT_SQLSaturdayManchester_2AMaDisasterJustbegan
KoprowskiT_SQLSaturdayManchester_2AMaDisasterJustbegan
 
KoprowskiT_SQLSaturday409_MaintenancePlansForBeginners
KoprowskiT_SQLSaturday409_MaintenancePlansForBeginnersKoprowskiT_SQLSaturday409_MaintenancePlansForBeginners
KoprowskiT_SQLSaturday409_MaintenancePlansForBeginners
 
KoprowskiT_SPBizConf_2AMaDisasterJustBegan
KoprowskiT_SPBizConf_2AMaDisasterJustBeganKoprowskiT_SPBizConf_2AMaDisasterJustBegan
KoprowskiT_SPBizConf_2AMaDisasterJustBegan
 
KoprowskiT_InfoTRAMS_TrustThePrimer
KoprowskiT_InfoTRAMS_TrustThePrimerKoprowskiT_InfoTRAMS_TrustThePrimer
KoprowskiT_InfoTRAMS_TrustThePrimer
 
KoprowskiT_SQLSat419_WADBforBeginners
KoprowskiT_SQLSat419_WADBforBeginnersKoprowskiT_SQLSat419_WADBforBeginners
KoprowskiT_SQLSat419_WADBforBeginners
 
KoprowskiT_SPBizConference_2AMaDisasterJustBegan
KoprowskiT_SPBizConference_2AMaDisasterJustBeganKoprowskiT_SPBizConference_2AMaDisasterJustBegan
KoprowskiT_SPBizConference_2AMaDisasterJustBegan
 
KoprowskiT_SQLSat409_MaintenancePlansForBeginners
KoprowskiT_SQLSat409_MaintenancePlansForBeginnersKoprowskiT_SQLSat409_MaintenancePlansForBeginners
KoprowskiT_SQLSat409_MaintenancePlansForBeginners
 
KoprowskiT_ESRM_TrustThePrimer
KoprowskiT_ESRM_TrustThePrimerKoprowskiT_ESRM_TrustThePrimer
KoprowskiT_ESRM_TrustThePrimer
 

Beginning to Spatial Data in SQL Server 2008

  • 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 Asseco Business Solutions SA
  • 3.
  • 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.
  • 10. prelegent na spotkaniach społeczności
  • 11.
  • 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… Obecnie ziemia nie jest płaska! 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.
  • 18. geometry / planarvectorspatial dataGeography 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 [H5N1 Flu & Police Radar]
  • 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 <apress – AlastairAitchison> [http://www.apress.com/book/view/1430218290] BeginningSpatialwith SQL Server 2008 <przykłady, kody itp..> [http://www.apress.com/resource/bookfile/4279] SQL Server 2008 Developer Training Kit [http://www.microsoft.com/downloads/details.aspx?displaylang=en&FamilyID=e9c68e1b-1e0e-4299-b498-6ab3ca72a6d7] 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 <Marcin Szeliga> [http://wss.pl/Articles/9643.aspx/] Serwer SQL 2008. Administracja i programowanie <Szeliga, Widera, Mendrala, Potasiński> [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'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.) [http://home.businesswire.com/portal/site/home/index.jsp?epi-content=NEWS_VIEW_POPUP_TYPE&newsId=20071023006103&ndmHsc=v2*A1193137200000*B1193175376000*DgroupByDate*J1*N1000837&newsLang=en&beanID=202776713&viewID=news_view_popup] Microsoft Shares Details on SQL Server 2008 Spatial Support (j. ang.) [http://www.directionsmag.com/editorials.php?article_id=2477&trv=1]
  • 30. Questions? Answer! Answer? Questions! DZIĘKUJĘ ZA UWAGĘ PROSZĘ O OCENĘ MOJEJ SESJI
  • 31.
  • 33.

Hinweis der Redaktion

  1. Do wymiarowania danych geometrycznych możemy użyć centymetrów, cali, metrów, stóp, pikseli
  2. 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)…
  3. 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).
  4. 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. 
  5. Questions? Answer! Answer?Questions!
  6. Contactinformation
  7. TheEnd