SQL Web Services

Werbung
SQL Server 2005
Übersicht für Entwickler
Sebastian Weber
Microsoft Deutschland GmbH
[email protected]
http://blogs.msdn.com/sebweber
Eine persönliche Fallstudie …
• „Großhandel“ für digitale Medien
• > 15 Mio. Medien
• Verlage haben verschiedene Formate
• > 30 Formate
• Integration der Dienste in Kunden-Intranets
• XML Web Services
1
Grobarchitektur des Systems
Kunden
Verlage
XML Daten
Importer
SQL Server
Bestellungen
Web Service
Zugang
Berichte &
Auswertungen
Eigenes
Management
2
Warum erfinden
wir das Rad
ständig neu?
3
SQL Server 2005 Plattform
4
Agenda
• Die Services im Überblick
• Erweiterungen der Datenbank
• T-SQL Erweiterungen
• .NET Framework Integration
• XML & Web Service Unterstützung
5
Integration Services
• ETL-Platform
• “Best in Class”Usability
• Workflow Designer
• Erweiterbar
6
Mehr zu Integration Services
• Vortrag „Einführung Integration Services“
Willfried Färber, Dienstag 20.9., 16:00h - 17:15h
• Vortrag „Praxisbeispiel Integration
Services“
Willfried Färber, Mittwoch 21.9., 15:45h - 17:00h
7
Analysis Services
• Business Intelligence
• Unified Dimensional
Model
• Real-time
• Web Services
8
Mehr zu Analysis Services
• Vortrag „OLAP für den Massenmarkt?“
Markus Raatz, Mittwoch 21.9., 11:45h - 12:30h
• Vortrag „SQL Server 2005 BI“
Meinrad Weiss, Mittwoch 21.9., 14:00h - 15:15h
9
Reporting Services
• Berichte erstellen,
verwalten und verteilen
• Office Integration
• Verschiedene
Datenquellen
• Verschiedene
Ausgabeformate
10
Reporting Services
Mehr zu Reporting Services
• Vortrag „Reporting Services“
Ruprecht Dröge, Dienstag 20.9., 14:15h - 15:30h
12
Notification Services
• Plattform für
Benachrichtigungsanw
• Deklaratives
Programmiermodell
• Effizienter und
skalierende
Ausführungsdienst
• Entwickler schreibt
Benachrichtigungsanw
13
Replication Services
• Standort-übergreifende
Datenverteilung
B
A
• Peer-to-Peer Verteilung
• Verteilung von
Volltextindizes
C
• Web-Synchronisation
• Monitoring
14
Service Broker
Kommunikation
• Plattform für asynchrone
B
A
Datenbankanwendungen
• T-SQL Integration
• Transaktionen
• Zuverlässige Übermittlung
Transport
C
Transport
D
Transport
15
Mehr zu Service Broker
• Vortrag „SQL Server Service Broker“
Marcel Gnoth, Dienstag 20.9., 12:00h – 13:15h
16
SQL Server 2005 Plattform
17
Agenda
• Die Services im Überblick
• Erweiterungen der Datenbank
• T-SQL Erweiterungen
• .NET Framework Integration
• XML & Web Service Unterstützung
18
Viele neue Helfer …
•
•
•
•
•
•
•
•
Neue Datentypen
DDL Trigger
DML mit Ausgabe
TOP
DRI Erweiterungen
Fehlerbehandlung
CTE
Except und Intersect
• Ranking Funktionalität
• Index Verbesserungen
• Snapshot Isolation
Level
• Recompile Optimierung
• XML Showplan
19
Snapshot Isolation Level
schreibt
Record 1
Record 1
„Kopie“
Sql Server 2000
 Max. Dirty-Read
SQL Server 2005  Zugriff auf
vorherigen Wert möglich!
20
Mehr Speichern mit MAX
• varchar(max) und nvarchar(max)
• Nachfolger von „text“ bzw. „ntext“
• varbinary(max)
• Nachfolger von „image“
 bis 2 GB (2^31 - 1 Bytes)
 .WRITE & SUBSTRING
21
Common Table Expressions
• Common Table Expression (CTE)
• Sind so was wie „ad-hoc views“
• Sind in SQL-99 definiert
• Sind weniger kompliziert als man denkt
• CTEs sind Eintrittskarte zur Rekursion
• Iterativer Ansatz meist deutlich aufwändiger
22
So sieht eine CTE aus!
WITH <CTE-Name> (<Spaltennamen>) AS
(
<Abfrage>
)
SELECT * FROM <CTE-Name>
WITH ProdukteCTE (Name, Kategorie) AS
(
SELECT PName, KName FROM Produkte P
INNER JOIN Kategorien K ON P.KategorieID = K.ID
)
SELECT * FROM ProdukteCTE …
23
Der Traum von der Rekursion
WITH <CTE-Name> (<Spaltennamen>) AS
(
<SELECT … FROM …>
UNION ALL
<SELECT … FROM CTE-Name>
)
SELECT * FROM <CTE-Name>
Rekursion endet, wenn 2. Select kein
Ergenis mehr liefert!
24
Rekursive CTE
Zusammengefasst: T-SQL
•
•
•
•
varchar(max), nvarchar(max), varbinary(max)
CTE
EXCEPT/INTERSECT
SELECT Row_Number() OVER …
26
Mehr zu T-SQL
• Vortrag „Neue T-SQL Features“
Jörg Neumann, Dienstag 20.9., 14:15h – 15:30h
27
Agenda
• Die Services im Überblick
• Erweiterungen der Datenbank
• T-SQL Erweiterungen
• .NET Framework Integration
• XML & Web Service Unterstützung
28
Was bietet die Integration?
•
Serverseitige Routinen in C#, VB.NET, …
•
Stored Procedures, Functions, Triggers, Data
Types & Aggregates
•
Erweitertes Sicherheitsmodell
•
Einheitliche Entwicklungsumgebung
•
Performancevorteile
29
So geht‘s!
Assembly
VB,C#,C++
SQL Abfragen:
SELECT
GetOrderCount(region)
FROM order
VS .NET
Projekt
SQL
Server
Build
SQL Definitionen:
create assembly …
create function …
create procedure …
create trigger …
create type …
30
Implementierung
Servercode
Implementierung
• Stored Procedures,
Functions & Triggers
 Statische Methoden
mit „[Attribut]“
• Aggregates
 Implementierung als
Struct mit Attribut
[SqlUserDefinedAggregate]
• Types
Implementierung als
Klasse oder Struct mit
Attribut
31
So geht’s im Detail!
.NET oder T-SQL?
• Verwenden Sie .NET Routinen …
•
•
•
•
… wenn es mit T-SQL nicht möglich ist
… für aufwendige Rechenoperationen
… um Logik zu implementieren
… wenn auf wenige Daten zugegriffen wird
• Verwenden Sie T-SQL …
• … bei daten-intensiven Abfragen
33
Mehr zu .NET Integration
• Vortrag „SQL Server CLR Integration“
Sebastian Weber, Dienstag 20.9., 12h – 13:15h
34
Agenda
• Die Services im Überblick
• Erweiterungen der Datenbank
• T-SQL Erweiterungen
• .NET Framework Integration
• XML & Web Service Unterstützung
35
<Damals/> & <Heute/>
• XML mit dem Sql Server 2000 (SqlXml)
• Relationale Daten  XML (FOR XML)
• XML  Relationale Strukturen (OPEN XML)
• XML-Dokumente als „Text“ speichern
• SQL Server 2005 bietet aber mehr
•
•
•
•
XML-Datentyp mit XSD-Unterstützung
XQuery/XPath im Sql-Statement nutzbar
Indexierung der XML-Knoten
Verbesserung FOR XML und OPEN XML
36
XML-Datentyp verwenden
CREATE TABLE XmlTabelle {
ID int,
MeinXml XML ('MeinSchema.xsd')
}
CREATE INDEX idx_MeinXml ON XmlTabelle (MeinXml);
• Indexierung nur möglich, wenn dem Xml ein Schema
zugewiesen wurde („typisiert“)
• Volltext-Indexierung wird ebenfalls unterstützt!
• Natürlich auch per Management Studio …
37
Die große Liebe: SQL + XML
SELECT ID, MeinXml.value('/Mein/XQuery‘, ‘string‘)
AS Wert
FROM XmlTabelle
SELECT ID, MeinXml.value('/Mein/XQuery‘, ‘string‘)
FROM XmlTabelle
AS Wert
38
XML Zugriffsmöglichkeiten
• XML Methoden
• query(), value(), exist(), modify(), nodes()
• Komplexe XML-Operationen mit FLWOR
• FLWOR spricht man „Flower“
• Und bedeutet For-Let-Where-Order-Return
• Eigentlich nur FOWR, da „L“et noch nicht
supported
39
Mehr zu XML
• Vortrag „XML im SQL Server“
Ruprecht Dröge, Dienstag 20.9., 17:30h – 18:45h
40
Zugang zum SQL Server 2000
SQLXML
IIS
ODBC,
OLE DB,
Ado.Net
TDS/
TCP
Named
Pipes
SQL
SERVER
• Zahlreiche Zugriffsoptionen vorhanden
• Aber 1: trotzdem nicht für jeden erreichbar
• Aber 2: weit weg vom Server
41
Zugang zum SQL Server 2005
SQLXML
IIS
ODBC,
OLE DB,
Ado.Net
TDS/
TCP
Named
Pipes
SQL
SERVER
SOAP/
HTTP
(Unix) Client
42
SQL Server Web Services
• Interessant hinsichtlich Interoperabilität
• Getestet mit: Jbuilder 9, Axis 1.1, Perl, …
• SOAP/HTTP
• Läuft ohne IIS
• ~%40 schneller als SQLXML
• SQLXML bleibt bestehen
• Updategrams, Bulkload, Query strings in URL
43
Mehr zu Web Services
• Vortrag „SQL Server Web Services“
Jörg Neumann, Dienstag 20.9., 17:30h – 18:45h
44
Zusammengefasst
• XML
• Eigener Datentyp mit XQuery Support
• Indexierung der Knoten möglich
• FOR XML / OPEN XML verbessert
• Web Services
• Flinker SOAP-Layer, ~40% schneller als
SQLXML
• Kompatibilität zu anderen System getestet
45
Agenda
• Die Services im Überblick
• Erweiterungen der Datenbank
• T-SQL Erweiterungen
• .NET Framework Integration
• XML & Web Service Unterstützung
46
Warum das Rad neu erfinden?
CLR !
SQL Web
Services !
Integration
Services !
XML Daten
Importer
Bestellungen
Web Service
Zugang
XML !
SQL Server
Volltextrecherche !
Berichte &
Auswertungen
SQL
Reporting
Services !
47
Fragen und Antworten
Vielen Dank!
Sebastian Weber
[email protected]
http://blogs.msdn.com/sebweber
48
© 2005 Microsoft Corporation. All rights reserved.
This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
49
Herunterladen