SQL Server 2005Übersicht für Entwickler
Sebastian WeberMicrosoft Deutschland GmbH
[email protected]://blogs.msdn.com/sebweber
2
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
3
Grobarchitektur des Systems
Kunden
Eigenes Management
SQL Server
XML Daten Importer
Web Service Zugang
Berichte & Auswertunge
n
BestellungenVerlag
e
4
Warum erfinden
wir das Rad
ständig neu?
5
SQL Server 2005 Plattform
6
Agenda
• Die Services im Überblick
• Erweiterungen der Datenbank• T-SQL Erweiterungen• .NET Framework Integration• XML & Web Service Unterstützung
7
Integration Services
• ETL-Platform
• “Best in Class”-
Usability
• Workflow Designer
• Erweiterbar
8
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
9
Analysis Services
• Business Intelligence
• Unified Dimensional
Model
• Real-time
• Web Services
10
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
11
Reporting Services
• Berichte erstellen,
verwalten und verteilen
• Office Integration
• Verschiedene
Datenquellen
• Verschiedene
Ausgabeformate
Reporting Services
13
Mehr zu Reporting Services
• Vortrag „Reporting Services“Ruprecht Dröge, Dienstag 20.9., 14:15h - 15:30h
14
Notification Services
• Plattform für Benachrichtigungsanw
• Deklaratives Programmiermodell
• Effizienter und skalierende Ausführungsdienst
• Entwickler schreibt Benachrichtigungsanw
15
Replication Services
• Standort-übergreifende Datenverteilung
• Peer-to-Peer Verteilung
• Verteilung von Volltextindizes
• Web-Synchronisation
• Monitoring
AA BB
CC
16
Service Broker
AA BBKommunikationKommunikation
CC
TransportTransport
DD
TransportTransport
TransportTransport
• Plattform für asynchrone
Datenbankanwendungen
• T-SQL Integration
• Transaktionen
• Zuverlässige Übermittlung
17
Mehr zu Service Broker
• Vortrag „SQL Server Service Broker“Marcel Gnoth, Dienstag 20.9., 12:00h – 13:15h
18
SQL Server 2005 Plattform
19
Agenda
• Die Services im Überblick
• Erweiterungen der Datenbank• T-SQL Erweiterungen
• .NET Framework Integration
• XML & Web Service Unterstützung
20
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
21
Snapshot Isolation Level
Record 1„Kopie“
SQL Server 2005 Zugriff auf vorherigen Wert möglich!
Record 1schreibt
möchte lesen
Sql Server 2000 Max. Dirty-Read
22
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
23
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
24
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 …
25
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!
Rekursive CTE
27
Zusammengefasst: T-SQL
• varchar(max), nvarchar(max), varbinary(max)
• CTE
• EXCEPT/INTERSECT
• SELECT Row_Number() OVER …
28
Mehr zu T-SQL
• Vortrag „Neue T-SQL Features“Jörg Neumann, Dienstag 20.9., 14:15h – 15:30h
29
Agenda
• Die Services im Überblick
• Erweiterungen der Datenbank• T-SQL Erweiterungen
• .NET Framework Integration
• XML & Web Service Unterstützung
30
Was bietet die Integration?
• Serverseitige Routinen in C#, VB.NET, …
• Stored Procedures, Functions, Triggers, Data
Types & Aggregates
• Erweitertes Sicherheitsmodell
• Einheitliche Entwicklungsumgebung
• Performancevorteile
31
So geht‘s!
SQL Abfragen: SELECT GetOrderCount(region) FROM order
SQL Abfragen: SELECT GetOrderCount(region) FROM order
VS .NET
Projekt
VS .NET
Projekt
VB,C#,C++ Build
SQL Serve
r
SQL Definitionen: create assembly … create function … create procedure … create trigger …create type …
SQL Definitionen: create assembly … create function … create procedure … create trigger …create type …
Assembly
32
ImplementierungImplementierungServercode
Statische Methoden mit „[Attribut]“
• Stored Procedures, Functions & Triggers
• Aggregates Implementierung als Struct mit Attribut [SqlUserDefinedAggregate]
• Types Implementierung als Klasse oder Struct mit Attribut
So geht’s im Detail!
34
.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
35
Mehr zu .NET Integration
• Vortrag „SQL Server CLR Integration“Sebastian Weber, Dienstag 20.9., 12h – 13:15h
36
Agenda
• Die Services im Überblick
• Erweiterungen der Datenbank• T-SQL Erweiterungen
• .NET Framework Integration
• XML & Web Service Unterstützung
37
<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
38
XML-Datentyp verwenden
• Indexierung nur möglich, wenn dem Xml ein Schema zugewiesen wurde („typisiert“)
• Volltext-Indexierung wird ebenfalls unterstützt!• Natürlich auch per Management Studio …
CREATE TABLE XmlTabelle {ID int,MeinXml XML ('MeinSchema.xsd')
}
CREATE INDEX idx_MeinXml ON XmlTabelle (MeinXml);
39
Die große Liebe: SQL + XML
SELECT ID, MeinXml.value('/Mein/XQuery‘, ‘string‘) AS Wert FROM XmlTabelle
SELECT ID, MeinXml.value('/Mein/XQuery‘, ‘string‘) AS Wert FROM XmlTabelle
40
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
41
Mehr zu XML
• Vortrag „XML im SQL Server“Ruprecht Dröge, Dienstag 20.9., 17:30h – 18:45h
42
• Zahlreiche Zugriffsoptionen vorhanden
• Aber 1: trotzdem nicht für jeden erreichbar
• Aber 2: weit weg vom Server
Zugang zum SQL Server 2000
TDS/TDS/TCPTCP
NamedNamedPipesPipes
TDS/TDS/TCPTCP
NamedNamedPipesPipes
ODBC, ODBC, OLE OLE DB, DB,
Ado.NeAdo.Nett
ODBC, ODBC, OLE OLE DB, DB,
Ado.NeAdo.Nett
SQL SQL SERVERSERVER
SQL SQL SERVERSERVERSQLXMSQLXM
LLIISIIS
SQLXMSQLXMLL
IISIIS
43
Zugang zum SQL Server 2005
TDS/TDS/TCPTCP
NamedNamedPipesPipes
TDS/TDS/TCPTCP
NamedNamedPipesPipes
ODBC, ODBC, OLE OLE DB, DB,
Ado.NeAdo.Nett
ODBC, ODBC, OLE OLE DB, DB,
Ado.NeAdo.Nett SQL SQL
SERVERSERVER
SQL SQL SERVERSERVER
SOAP/SOAP/HTTPHTTP
SOAP/SOAP/HTTPHTTP
SQLXMSQLXMLL
IISIIS
SQLXMSQLXMLL
IISIIS
(Unix) Client(Unix) Client(Unix) Client(Unix) Client
44
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
45
Mehr zu Web Services
• Vortrag „SQL Server Web Services“Jörg Neumann, Dienstag 20.9., 17:30h – 18:45h
46
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
47
Agenda
• Die Services im Überblick• Erweiterungen der Datenbank
• T-SQL Erweiterungen
• .NET Framework Integration
• XML & Web Service Unterstützung
48
SQL Server
XML Daten Importer
Web Service Zugang
Berichte & Auswertungen
Bestellungen
Warum das Rad neu erfinden?
SQL Web Services !
SQL Reporting Services !
XML !
IntegrationServices !
CLR !
Volltext-recherche !
49
Fragen und Antworten
Vielen Dank!Sebastian Weber
http://blogs.msdn.com/sebweber
50
© 2005 Microsoft Corporation. All rights reserved.This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.