View
114
Download
2
Category
Preview:
Citation preview
SQL Server 2008{ FileStream und Geodaten }Daniel Walzenbach
Developer EvangelistMicrosoft Deutschland GmbH
Agenda
Unstrukturierten DatenGeodatenHierarchische Daten
Speichern unstrukturierter Daten Herausforderungen
Moderne Anwendungen speichern zunehmend unstrukturierte Daten
BilderVideosDokumente…
Datenmenge wächst jährlich um ca. 35%
Davon 85% unstrukturierte DatenWie können diese Daten gespeichert werden?
Derzeitige Lösungsansätze BLOB in der DB speichern (varbinary(max))
Transaktional konsistente DatenEinfaches Sichern/Wiederherstellen der DatenEinheitliches Programmiermodell und Berechtigungskonzept
Große DatenbankenSchlechte StreamingperformanceBeschränkung der Dateigröße auf 2GBVergleichsweise teuer
Derzeitige Lösungsansätze BLOB im Dateisystem, Verweis in DB
Kleine DatenbankenGute StreamingperformanceDateigröße nur durch Dateisystem begrenztVergleichsweise günstig
Transaktional inkonsistente DatenUnterschiedliche BerechtigungssystemeSichern/Wiederherstellen der Daten nicht trivial
Die Lösung: FileStream Vorteile beider Welten kombinieren
Transaktional konsistente DatenEinfaches Sichern/Wiederherstellen der Daten (integriert in SQL Backup)Einheitliches BerechtigungskonzeptGute StreamingperformanceDateigröße nur durch Dateisystem begrenztVergleichsweise günstig
FileStream Wie funktioniert FileStream?
BLOBs (varbinary(max)) werden von SQL Server im Dateisystem verwaltet
BLOBs werden in eigenem Verzeichnis gespeichert (erfordert NTFS)
Verzeichnisse sind durch ACLs geschütztZwei Programmiermodelle
T-SQLWin32 Stream-API mit T-SQL Transaktionskontext
FileStream Konfiguration
FileStream auf Server aktivierenNur T-SQLLokaler DateisystemzugriffLokaler und Remote Dateisystemzugriff
Ablageort in CREATE DATABASE festlegenFILEGROUP FileStreamGroup1
CONTAINS FILESTREAM(NAME = FSMedia, FILENAME = N‘C:\Demos\FSData‘)
Tabelle muss GUID-Feld enthalten ROWGUIDCOL NOT NULL UNIQUE
FileStream Einschränkungen
Nicht unterstützt werdenDB SnapshotDB MirroringTransparente Verschlüsselung
FileStream Einsatzzweck
Zu speichernde Daten sind im Schnitt größer als 1 MBSchneller, lesender Zugriff ist wichtigFür kleinere Datensätze bietet varbinary(max) (in der Datenbank gespeichert) häufig bessere Performance
varbinary(max), varchar(max) und XML Datentypen werden nach wie vor unterstützt
{ FileStream demo }
Konfiguration des Servers
Zugriff auf FileStream Objekte mit T-SQL und .NET
Demo
Geodaten
Geodaten geben Antworten auf Fragen wie…
Welche Straßen kreuzen ein bestimmtes Gelände?Überlappen sich bestimmte Gebiete?Liste aller italienischen Restaurants im Umkreis von 5km?
Geodaten sind Bestandteil vieler Datenbanken
Adressen zu Kunden?
Spatial Datentypen
Das Open Geospatial Consortium (OGC) definiert eine Hierarchie von Geodatentypen
PointLinestringPolygonMultiPointMultiLinestringMultiPolygonGeomCollectionNicht instanziierbare Klassen auf denen diese Typen aufbauen
OGC Hierarchie von Geodaten
SQL Server 2008 und Geodaten
SQL Server unterstützt zwei Geodatentypen
GEOMETRY – flaches ErdmodellGEOGRAPHY – rundes Erdmodell
Beide Typen unterstützen alle OGC Typen
InstanceOf kann die Typen unterscheidenUnterstützung zweidimensionaler Daten
X und Y oder Längen-/BreitengradZ – Höhenangabe (benutzerdef. Semantik)M – Maßeinheit (benutzerdef. Semantik)
GEOGRAPHY Anforderungen
GEOGRAPHY Typ hat weitere AnforderungenKoordinaten werden in Breiten-/Längengrad eingegeben
Ändert sich zu Längengrad/Breitengrad vor RTM
Koordinaten von außengelegene Polygonringe müssen „gegen den Uhrzeiger“ angegeben werden, innen liegende (Löcher) „mit dem Uhrzeiger“Ein einzelnes Geometrieobjekt kann nicht mehr als eine halbe logische Hemisphäre umfassen
Innen oder außen?
GEMOETRY arbeitet „in der Ebene“Ein Polygon ist unabhängig der Ausrichtung eindeutig definiert
Innen oder außen
Welche Fläche definiert einen Polygonzug um den Äquator?
Innen oder außen?
„Linke Hand“ Regel
Properties und Methods
Geodaten Typen sind SQLCLR UDTs'.' Syntax für Properties'.' Syntax für Instanzmethoden'::' Syntax für statische MethodenMethoden und Properties sind case-sensitive
Methoden und Properties
Jeder Typ unterstützt eine Anzahl von Methoden und Properties, die mit den OGC übereinstimmt
Zusätzliche Erweiterungen für die Typen (MakeValid, Reduce, …)GEOMETRY implementiert alle OGC Properties und MethodenGEOGRAPHY implementiert die meisten OGC Eigenschaften und Properties
Eingabe von Geodaten
Geodaten werden binär gespeichertInstanzen des Typs können NULL seinEingabe als
Well Known binary - ST[Type]FromWKBWell Known text - ST[Type]FromTextGeography Markup Language (GML) - GeomFromGml
Außerdem SQLCLR FunktionenParsePoint
Ausgabe von Geodaten
Geodaten können ausgegeben werden als
Well Known binary - STAsBinaryWell Known text - STAsTextGML - AsGmlText mit Z und M Werten - AsTextZM
SQLCLR Methode ToString – Gibt „Well Known text“ zurückAls SQLCLR Object - SqlGeometry, SqlGeographyAndere nützliche Formate: GeoRSS, KML
Nicht direkt unterstützt
SRID (Spatial Reference Identifier)
Eine SRID pro GeodatensatzSRID legt die Spezifikation fest
4326 – GPS, 4269 – ESRI, …SRID 0 – keine spezielle Referenz. Default für GEOMETRY
Nur Geodaten mit der gleichen SRID können zusammen verarbeitet werden
Rückgabewerde ansonsten NULLSRID muss einen Eintrag von sys.spatial_reference_systems referenzieren
Nützliche Methoden/Properties
BeschreibendSTAreaSTLengthSTCentroid
Beziehungen zwischen zwei InstanzenSTIntersectsSTDistance
CollectionsSTGeometryNSTPointN
SELECT *FROM roads WHERE roads.geom.Intersects(@ms)=1
Beispiel
Welche Straßen kreuzen das Firmengelände von Microsoft?
Extension Methods
SQL Server 2008 erweitert den OGC Standard
MakeValid – Konvertiert zu OGC gültiger InstanzBufferWithTolerence – erlaubt Annäherung und AbweichungReduce – Vereinfacht komplexe Geometrie (GEOMETRY/GEOGRAPHY)GML Unterstützung…
Spatial Indexes GEOMETRY Datentyp
Spatial Indexes GEOGRAPHY Datentyp
{ Spatial demo }
Geodaten im Überblick
Demo
T-SQL VerbesserungenHierarchyID Datentyp
Perfekter Einsatz für Unternehmensorganisation, Stücklisten, etc…
Repräsentiert eine Position in einer HierarchieKompakte/effiziente Speicherung
6*logAn (A = Anzahl Kinder, n = Anzahl Knoten)
Beliebige Datensätze speichern/löschenLeistungsfähige Abfragen
GetRoot, GetLevel, IsDescendant, ReParent, etc.
Hierarchische Daten in SQL 2005
Parent ID <- ChildIDEinfach Daten einzupflegen aber…Aufwändig in der Abfrage
Rekursion
Hierarchische Daten in SQL 2008
Neuer „Built-In“ Datentyp – HierarchyIDSQLCLR basierte System UDT
Kann auch in .NET (VB.NET, C#) verwendet werden (SqlHierarchyId)
Als path enumeration model implementiert (ORDPATH)HierarchyID (SQLCLR Typ) kann erweitert werden
Von dem Typ ableitenUm Methoden und Properties erweitern
HierarchyID erweitern
Da HierarchyID ein SQLCLR Typ istKann von dem Typ abgeleitet werdenErweitern um Methoden und Properties
HierarchyID IndexstrategienDepth-first
Knoten in einem Unterbaum sind benachbart angeordnet
Effizient für Fragen nach Unterbäumen„Suche nach allen Dateien in diesem und den untergeordneten Ordnern“
CREATE UNIQUE INDEX Org_Depth_First ON Organization(EmployeeID)
HierarchyID Indexstrategien Breadth-first
Knoten in einer Ebene sind benachbart angeordnet
Effizient für Fragen nach direkt unterstellten Knoten„Suche nach allen Angestellten eines Managers“
CREATE CLUSTERED INDEX Org_Breadth_First ON Organization(OrgLevel,EmployeeID)
{ HierarchyID demo }
Speichern hierarchischer Daten
Demo
Resources
Learn more about data programmabilityhttp://www.microsoft.com/sql/2008/technologies/dataprogrammability.mspx
Learn more about spatial datahttp://www.microsoft.com/sql/2008/technologies/spatial.mspx
Learn more about SQL Server 2008http://www.microsoft.com/sql/2008/default.mspx
Discover SQL Server 2008: Webcasts, Virtual Labs, and White Papershttp://www.microsoft.com/sql/2008/learning/default.mspx
SQL Server 2008 traininghttp://www.microsoft.com/learning/sql/2008/default.mspx
Download latest SQL Server CTPhttp://www.microsoft.com/sql/2008/prodinfo/download.mspx
Join the SQL PASS communityhttp://www.sqlpass.org
Visual Studio 2008weitere Angebote
Visual Studio Team System Information DayRegelmäßige ganztägige Informationsveranstaltung von MicrosoftPraxisnahe Demos & viel Raum für DiskussionenDetails & Anmeldung: www.event-team.com/events/visualstudio
TeamConf 2008 – Die Visual Studio Team System KonferenzVSTS in der Praxis - 22.-24. April 2008 in MünchenAnwenderberichte (Siemens, ABB, Commerzbank, Datev, Münchener Rück,..)Fach- und TechnologievorträgeVortragsprogramm und Anmeldung: www.teamconf.de
Visual Studio Launch PromotionTauschen Sie Ihre Visual Studio Standard in eine höherwertige Visual Studio Edition Ihrer Wahl Anrechnung in Höhe von 299 € beim Kauf eines anderen VS Produktesvom 19. Februar bis zum 30. April 2008Nur bei den Partnern: PC Ware, SoftExpress, SOS und Zoschke (befinden sich alle in der Ausstellerhalle)
Ask the ExpertsWir freuen uns auf Ihre Fragen: Technische Experten stehen Ihnen während der gesamten Veranstaltung in der Haupthalle zur Verfügung.
© 2007 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries.
The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after
the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
Recommended