über 7500 Seminartage im Jahr
über 4500 Anfragen
über 20 Standorte
Daher bieten wir unseren Kunden mehr Service im Internet - bundesweit einmaliges Realtime - Live Support Beratung System.
Fallbeispiele & Referenzen
_________________________
| No events |
Neuerungen SQL Server 2005 |
|
Dieser Artikel bietet einen Überblick über die neuen Features zur Datenbankentwicklung in Microsoft SQL Server 2005 Ein neues Paradigma für die Datenbankentwicklung Mit der Veröffentlichung von Microsoft SQL Server 2005, Beta 2, ändert sich die Welt der Datenbankentwicklung. Ab sofort können Sie als Datenbankentwickler Ihren Code im Hinblick auf seine Funktionalität entsprechend platzieren, auf Daten in systemeigenen Formaten wie XML zugreifen und komplexe Systeme erstellen, die sich die Leistungsstärke des Datenbankservers zunutze machen. Die Datenbankentwicklung weist eine noch nie da gewesene Integration auf, und alle dazu benötigten Tools stehen Ihnen direkt zur Verfügung. Dieser Artikel beschreibt einige der neuen Features von SQL Server 2005, mit denen Sie eine neue Klasse von Datenbankanwendungen erstellen können. .NET Framework-Integration Mit der Veröffentlichung von Microsoft SQL Server 2005, Beta 2, können Datenbankprogrammierer alle Vorteile der Klassenbibliothek von Microsoft .NET Framework und moderner Programmiersprachen nutzen, um die Funktionalität auf dem Server zu implementieren. Mithilfe der CLR-Integration (Common Language Runtime) können Sie Ihre gespeicherten Prozeduren, Funktionen und Trigger in einer .NET Framework-Sprache Ihrer Wahl codieren. Microsoft Visual Basic .NET und die Programmiersprache C# bieten objektorientierte Konstrukte, strukturierte Ausnahmebehandlung, Arrays, Namespaces und Klassen. .NET Framework stellt darüber hinaus Tausende von Klassen und Methoden mit vielen integrierten Funktionen bereit, die sich problemlos auf der Serverseite einsetzen lassen. Viele Aufgaben, die in Transact-SQL umständlich oder schwierig durchzuführen waren, lassen sich durch die Verwendung von verwaltetem Code viel besser ausführen. Außerdem stehen zwei neue Typen von Datenbankobjekten (Aggregate und benutzerdefinierte Typen) zur Verfügung. Jetzt können Sie Ihre bereits erworbenen Kenntnisse und Fertigkeiten besser zum Schreiben von In-Process-Code einsetzen. Kurz gesagt können Sie mit SQL Server 2005, Beta 2, den Datenbankserver so erweitern, dass die entsprechenden Berechnungen und Operationen leichter auf dem Back-End durchgeführt werden können. Diese Integration zwischen SQL Server und der CLR bietet mehrere bedeutende Vorteile: Verbessertes Programmiermodell: Mit dem .NET Framework kompatible Programmiersprachen sind funktionsreicher als Transact-SQL und enthalten Konstrukte sowie Funktionen, die SQL-Entwicklern bisher nicht zur Verfügung standen. Verbesserte Sicherheit: Der verwaltete Code wird in einer CLR-Umgebung ausgeführt, die vom Datenbankmodul gehostet wird. Deshalb sind .NET Framework-Datenbankobjekte sicherer als die erweiterten gespeicherten Prozeduren in früheren Versionen von SQL Server. Benutzerdefinierte Typen und Aggregate: Zwei neue Datenbankobjekte, die die Speicher- und Abfragefunktionen von SQL Server erweitern, werden durch das Hosten der CLR aktiviert. Gemeinsame Entwicklungsumgebung: Die Datenbankentwicklung ist in die Microsoft Visual Studio 2005-Entwicklungsumgebung integriert. Sie können dieselben Tools zum Entwickeln und Debuggen von Datenbankobjekten und Skripts verwenden, die Sie zum Schreiben von .NET Framework-Komponenten und -Diensten der mittleren und der Clientebene verwenden. Leistung und Skalierbarkeit: Da verwalteter Code vor der Ausführung in systemeigenen Code kompiliert wird, lassen sich in einigen Fällen beträchtliche Leistungssteigerungen erzielen. Sie profitieren von der CLR-Integration beim Schreiben von Code, der eine komplexere Logik aufweist und besser für Berechnungsaufgaben geeignet ist, indem Sie Sprachen wie Visual Basic .NET und C# verwenden. Außerdem bieten Visual Basic .NET und C# objektorientierte Funktionen wie Kapselung, Vererbung und Polymorphie. Jetzt können Sie zusammengehörigen Code auf einfache Weise in Klassen und Namespaces organisieren, d. h. Ihre Codeinvestitionen beim Arbeiten mit großen Codemengen lassen sich leichter organisieren und verwalten. Die Möglichkeit, Code logisch und physisch in Assemblys und Namespaces zu organisieren, ist ein enormer Vorteil. Sie können dadurch verschiedene Codeabschnitte in einer großen Datenbankimplementierung leichter finden und verbinden. Verwalteter Code ist beim Verarbeiten von Zahlen und Verwalten von komplizierter Ausführungslogik effizienter als Transact-SQL und bietet umfangreiche Unterstützung für die Verarbeitung von Zeichenfolgen, reguläre Ausdrücke usw. Mithilfe der Funktionalität, die von der .NET Framework-Klassenbibliothek zur Verfügung gestellt wird, erhalten Sie nunmehr auch vollständigen Zugriff auf Tausende von fertigen Klassen und Routinen, die Sie leicht von einer gespeicherten Prozedur, einem Trigger oder einer benutzerdefinierten Funktion aus aufrufen können. In verwalteten gespeicherten Prozeduren, Funktionen, Triggern und Aggregaten haben Sie im Handumdrehen Zugriff auf verbesserte Funktionen für die Verarbeitung von Zeichenfolgen, auf mathematische Funktionen, auf Datumsoperationen, auf Systemressourcen, auf erweiterte Verschlüsselungsalgorithmen, auf Dateizugriffsfunktionen, auf Bildverarbeitung und XML-Datenmanipulation. Einer der Hauptvorteile von verwaltetem Code ist die Typsicherheit. Vor der Ausführung von verwaltetem Code führt die CLR mehrere Überprüfungen durch, um sicherzustellen, dass die Ausführung des Codes sicher ist. So wird der Code beispielsweise darauf überprüft, dass kein Arbeitsspeicher gelesen wird, in den nicht geschrieben wurde. Auswählen zwischen Transact-SQL und verwaltetem Code Beim Schreiben von gespeicherten Prozeduren, Triggern und benutzerdefinierten Funktionen müssen Sie nun entscheiden, ob Sie die herkömmliche Transact-SQL oder eine mit .NET Framework kompatible Programmiersprache wie Visual Basic .NET oder C# verwenden möchten. Ihre Entscheidung kann von Fall zu Fall verschieden sein: In einigen Situationen bietet sich Transact-SQL an, in anderen ist verwalteter Code vorzuziehen. Transact-SQL eignet sich am besten für Situationen, in denen der Code hauptsächlich für den Datenzugriff gedacht ist und nur wenig oder keine Prozedurlogik enthält. Mit dem .NET Framework kompatible Programmiersprachen eignen sich am besten für rechenintensive Funktionen und Prozeduren mit komplexer Logik oder für Situationen, in denen Sie die Vorteile der .NET Framework-Klassenbibliothek nutzen möchten. Die Codepositionierung ist ebenfalls wichtig. Sowohl Transact-SQL als auch verwalteter Code werden auf dem Server ausgeführt. Dadurch werden Funktionalität und Daten eng nebeneinander platziert und Sie können die Verarbeitungsstärke eines Servers voll ausnutzen. Der Vorteil dabei ist, dass der Verkehr zwischen der Daten- und der mittleren Ebene dadurch reduziert wird. Das Durchführen der Berechnungen in der Nähe der Daten ist für E/A-gebundene Systeme besonders vorteilhaft. CLR-Funktionen können auch die Vorteile des SQL Server-Abfrageprozessors nutzen, der die parallele Ausführung ermöglicht und optimiert. Es kann jedoch auch der Fall sein, dass Sie keine prozessorintensiven Aufgaben auf dem Datenbankserver platzieren möchten. Die meisten Clientcomputer sind heutzutage sehr leistungsstark; Sie können diese Verarbeitungsstärke am besten nutzen, indem Sie so viel Code wie möglich auf dem Client platzieren. Es gibt keine allgemeingültige Antwort. Webdienste In SQL Server 2005 können Sie XML-Webdienste in der Datenbankebene entwickeln und SQL Server somit zu einem HTTP-Listener machen. Dadurch erhalten Anwendungen, die um Webdienste zentralisiert sind, einen neuen Typ von Datenzugriffsfunktion. In SQL Server 2005, Beta 2, können Sie mithilfe von HTTP direkt auf SQL Server zugreifen, ohne einen Listener der mittleren Ebene, wie Microsoft Internet Information Services (IIS), verwenden zu müssen. SQL Server legt eine Webdienstschnittstelle offen und ermöglicht dadurch das Ausführen von SQL-Anweisungen und das Aufrufen von Funktionen und Prozeduren. Abfrageergebnisse werden im XML-Format wiedergegeben und können die Webdienstinfrastruktur von Visual Studio nutzen. ADO.NET Die nächste Version von ADO.NET enthält einige neue Funktionen. Von neuer Unterstützung für Abfrageänderungs-Benachrichtigungen bis zu MARS (Multiple Active Result Sets) entwickelt ADO.NET den Zugriff und die Bearbeitung von Datasets weiter. Dadurch wird die Skalierbarkeit und Flexibilität erhöht. ADO.NET-Benachrichtigungsunterstützung SQL Server 2005, Beta 2, führt die Benachrichtigungsunterstützung für SQL Server-Abfragen ein. Damit können Sie einen Befehl an SQL Server senden und anfordern, dass eine Benachrichtigung generiert wird, wenn das erneute Ausführen desselben Befehls ein anderes Ergebnis als zuvor ergibt. Dazu verwenden Sie ein Abhängigkeitsobjekt, das erkennt, wenn sich die zugrunde liegenden Daten ändern. Mithilfe einer der Client-APIs wie ADO.NET, OLE DB, ODBC (Open Database Connectivity), ADO (Microsoft ActiveX Data Objects) oder SOAP an den Server gesendete Befehle enthalten möglicherweise ein Tag, das eine Benachrichtigung erfordert. Für jede im Rahmen der Anforderung ausgeführte Anweisung erstellt der Server eine "Notification Subscription" (ein Benachrichtigungsabonnement), die für jede in der Anforderung enthaltene Anweisung einmal ausgelöst wird. Benachrichtigungen werden über eine SQL Service Broker-Warteschlange zugestellt, die Anwendungen abfragen können. Sie verwenden Aktivierungsdienste oder Blockierungsanweisungen, die zurückgeben, wann die Benachrichtigungen verfügbar sind. Abfragebenachrichtigungen sind nützlich, da sie das Zwischenspeichern von Ergebnissen in Anwendungen wie datenbankgesteuerten Websites ermöglichen. MARS Mit MARS (Multiple Active Result Sets) werden mehrere ausstehende Anforderungen pro Verbindung ermöglicht. Insbesondere kann es mehrere offene Standardresultsets pro Verbindung geben. Standardresultsets sind vorwärts gerichtete, schreibgeschützte Resultsets. Bei Standardresultsets rufen die Clienttreiber die Daten in großen Blöcken (Tabular Data Stream-Blöcke in Puffergröße) transparent ab, sodass die Anwendungsanforderungen ohne Roundtrip zum Server (wie im Falle von Servercursorn) erfüllt werden. Die Anwendung kann ein einfaches Zeile-für-Zeile-Programmiermodell verwenden, ohne dass die Leistung beeinträchtigt wird. Das MARS-Feature hebt die aktuelle Einschränkung auf, bei der ein offenes Standardresultset dem Treiber erst dann erlaubt, Anforderungen an den Server zu senden, wenn das gesamte Resultset verwendet wurde. Unterstützung der Snapshotisolation SQL Server 2005, Beta 2, führt eine neue Snapshot-Isolationsebene ein. Bei der Snapshotisolation handelt es sich um einen Zeilenversionierungsmechanismus, bei dem Versionen von Daten für Datenleser gespeichert werden. Die neue Isolationsebene bietet folgende Vorteile: Erhöhte Verfügbarkeit von Daten für schreibgeschützte Anwendungen. Nicht blockierende Lesevorgänge sind in einer OLTP-Umgebung zugelassen. Automatische obligatorische Konflikterkennung für Schreibtransaktionen. Vereinfachte Migration von Anwendungen von Oracle nach SQL Server. Beispielsweise können Sperren zu Blockierungen zwischen Anwendungen führen, die dieselben Daten gleichzeitig lesen und schreiben. Wenn eine Transaktion eine Zeile ändert, kann eine andere Transaktion diese Zeile erst lesen, wenn der Schreibvorgang einen Commit ausführt. Mit der Snapshotisolation kann der Leser auf den zuletzt übernommenen Wert der Zeile zugreifen. Die Snapshot-Isolationsebene wird von ADO, OLE DB, SQLOLEDB, Shape Provider, SQLODBC, dem OLE DB Managed Provider und dem SQL Managed Provider unterstützt und zur Verfügung gestellt. SQL Management Objects Das SMO-Modell (SQL Management Objects) ist das Verwaltungsobjektmodell für SQL Server 2005. SMO bietet bedeutende Design- und Architekturverbesserungen für das SQL Server-Verwaltungsobjektmodell. SMO ist einfach zu verwenden, stellt jedoch ein vielfältiges Objektmodell dar, das auf dem verwalteten Code des .NET Framework basiert. SMO ist das am häufigsten verwendete Tool zur Entwicklung von Datenbankverwaltungsanwendungen mit .NET Framework. SMO wird von jedem Dialogfeld in SQL Server Management Studio verwendet, und Sie können alle Verwaltungsaktionen, die Sie in SQL Server Management Studio ausführen können, auch mithilfe von SMO ausführen. Das neue SMO-Objektmodell und die Microsoft WMI-APIs (Windows Management Instrumentation) ersetzen SQL-DMO. Als Arbeitserleichterung beinhaltet SMO weitgehend ähnliche Objekte wie SQL-DMO. Sie können SQL-DMO auch mit SQL Server 2005, Beta 2, verwenden, SQL-DMO wird jedoch nicht aktualisiert, um spezifische Features von SQL Server 2005 zu verwalten. SMO und SQL-DMO Das SMO-Objektmodell ist die logische Fortsetzung von SQL-DMO. Die Features von SMO sind mit denen von SQL-DMO kompatibel und enthalten viele gleiche Objekte. Das ursprüngliche SQL-DMO-Design wird nach Möglichkeit beibehalten, SMO weist jedoch eine Reihe von zusätzlichen Features auf. Um für SQL Server 2005 die Bereiche DDL (Data Definition Language) und Verwaltung umfassend abzudecken, fügt SMO über 150 neue Klassen hinzu. Die Hauptvorteile von SMO sind Leistung und Skalierbarkeit. SMO verfügt über ein zwischengespeichertes Objektmodell, mit dem mehrere Eigenschaften eines Objekts geändert werden können, bevor die Änderungen in SQL Server übernommen werden. Dadurch muss SMO weniger Roundtrips zum Server durchführen und die Objekte werden flexibler. SMO weist auch eine optimierte Instanziierung auf, so dass Sie Objekte teilweise oder vollständig instanziieren können. Sie können viele Objekte schnell laden, indem Sie nicht alle Objekteigenschaften instanziieren. SQL-DMO speichert Verweise auf alle erstellten Serverobjekte in einem einzigen Anwendungs-Stammverzeichnis. Im Gegensatz dazu können Sie mit SMO mehrere Stammverzeichnisse verwenden, ohne eine neue Verbindung herstellen zu müssen. SMO unterstützt nicht nur Skripting im SQL-DMO-Stil, sondern implementiert auch erweitertes Skripting in mehreren Phasen. Sie können ein Objekt auch in den Aufzeichnungsmodus versetzen und die für dieses Objekt ausgegebenen DDLs aufzeichnen, ohne Änderungen am Server tatsächlich zu übernehmen. SQL-DMO verfügt auch über ein verwaltetes Computerobjekt, das die Schnittstelle zu WMI vereinfacht, um die WMI-Überwachung und Serverkonfiguration über die SMO-Objektschnittstelle zu unterstützen. XML-Technologien XML ist ein gängiges Format zur Speicherung und Übertragung von Daten; es wird gerne bei Markup-, strukturierten oder halbstrukturierten Informationen verwendet. Beispiele für derartige Daten sind Text (mit Markup für die Dokumentstruktur und Markierungen), verschachtelte Objekte (strukturiert) und heterogene Daten, die ihre Struktur von einer Instanz zur nächsten ändern (halbstrukturiert). XML ist auch ein wichtiger und allgemein anerkannter Standard für den Datenaustausch zwischen verschiedenen Anwendungen über lokale Netzwerke und das Internet. Microsoft SQL Server 2000 unterstützt XML über Microsoft SQLXML. Damit können Sie relationale Daten in ein XML-Format konvertieren und XML-Daten in relationalen Tabellen speichern. Microsoft SQL Server 2005, Beta 2, erweitert diese Funktionalität, indem es XML direkt unterstützt, eine neue Abfragesprache für XML-Dokumente bereitstellt und das Durchführen direkter Änderungen zulässt. Zur besseren Unterstützung von Benutzern, die XML-Daten verwenden, wurde ein neuer XML-Datentyp eingeführt. Dieser Datentyp verfügt über die Methoden query(), exist(), value(), nodes() und modify(), die eine wichtige Teilmenge der XML Query-Spezifikation (XQuery) implementieren, deren Entwicklung sich derzeit in der Endphase befindet. Diese Spezifikation wurde in SQL Server 2005, Beta 2, durch das Hinzufügen von XML-Datenänderungskonstrukten erweitert. Zur Unterstützung der XML-Typisierung wurden Schlüsselwörter zum Registrieren und Verwalten von XML-Schemas hinzugefügt. Es wurden auch Änderungen an FOR XML und OPENXML vorgenommen, zwei in SQL Server 2000 eingeführten Features zum Generieren von XML aus relationalen Daten und umgekehrt. Diese wurden erweitert und unterstützen nun den XML-Datentyp. XML-Datentyp XML kann komplexe Daten modellieren und ist nicht auf die von SQL Server unterstützten skalaren Typen beschränkt. Ein zeichenfolgenbasierter, integrierter Datentyp wie char oder varchar reicht deshalb nicht aus, um die Leistungsstärke und die zahlreichen Vorteile von XML vollständig und effektiv zu nutzen. Wenn XML z. B. als Zeichenfolge gespeichert wird, können Sie ein ganzes Dokument einfügen oder auswählen und auch zusammenhängende Bytes daraus abrufen. Sie können jedoch keine Inhalte des Dokuments abfragen. Durch Bereitstellen des XML-Datentyps ermöglicht Ihnen SQL Server 2005, Teile eines XML-Dokuments abzufragen, zu überprüfen, ob das Dokument einem XML-Schema entspricht, und den Inhalt des XML-Dokuments sogar direkt zu ändern. Außerdem werden herkömmliche, relationale Daten mit Daten in unstrukturierten oder halbstrukturierten XML-Dokumenten auf eine Art integriert, die in SQL Server 2000 nicht möglich war. In SQL Server 2005 werden XML-Daten als BLOBs (Binary Large Objects) in einer internen Darstellung gespeichert, die eine effiziente Neuanalyse und eine gewisse Komprimierung ermöglicht. Eine Auflistung von XML-Schemas kann mit einer Spalte vom Typ XML verknüpft werden. Damit können Einschränkungen, Einfügungen und Aktualisierungen überprüft sowie Werte, die in XML-Daten gespeichert sind, typisiert werden. Außerdem lässt sich dadurch die Speicherung und Abfrageverarbeitung optimieren. SQL Server 2005 verfügt auch über mehrere DDL-Anweisungen zur Verwaltung von Schemata auf dem Server. Abrufen und Schreiben von XML SQL Server 2005, Beta 2, enthält auch verschiedene Erweiterungen für die FOR XML- und OPENXML-Funktionen, die erstmalig in SQL Server 2000 eingeführt wurden. FOR XML Die FOR XML-Klausel in SQL Server 2000 bietet keine Möglichkeit, die XML-Ergebnisse auf dem Server zu verwenden. Sie können die XML-Ergebnisse nicht in einer Tabelle speichern (ohne sie natürlich vorher an den Client zurückzugeben) oder sie einer Variablen zuweisen. SQL Server 2005, Beta 2, erweitert FOR XML durch die Unterstützung für den XML-Datentyp und das Zulassen der XML-Verwendung auf dem Server. Dies wird durch Hinzufügen einer TYPE-Direktive in FOR XML erzielt. Beispielsweise generieren die Ergebnisse der SELECT...FOR XML TYPE-Anweisung eine XML-Datentypinstanz, die einer lokalen XML-Variablen zugewiesen oder in einer nachfolgenden INSERT-Anweisung zum Auffüllen einer Spalte vom Datentyp XML verwendet werden kann. Der PATH-Modus gibt den Pfad in der XML-Struktur an, in dem der Wert einer Spalte angezeigt werden soll. Die TYPE-Option und die PATH-Optionen, die in FOR XML enthalten sind, vereinfachen die Generierung von komplexem XML und sind praktischer als FOR XML EXPLICIT-Abfragen. FOR XML kann auch bei XML-Datentypspalten in SQL Server 2005, Beta 2, verwendet werden. OPENXML SQL Server 2000 behandelte die FOR XML-Klausel und die rowset-Funktion von OPENXML als passende Gegenstücke, d. h. mit FOR XML können Sie relationale Daten als XML abrufen und mit OPENXML können Sie XML in relationale Daten konvertieren, die Sie in SQL-Joins oder Ausführungsabfragen verwenden können. SQL Server 2005, Beta 2, erweitert die Funktionalität von OPENXML. Zusätzlich zum XML-Datentyp unterstützt SQL Server 2005 auch verschiedene neue Datentypen, z. B. für UDTs (User Defined Types, Benutzerdefinierte Typen). Sie können diese in der OPENXML WITH-Klausel verwenden und auch eine XML-Datentypinstanz an sp_preparedocument übergeben. XQuery-Unterstützung Die XML Query Language (oder kurz XQuery) ist eine intelligente und robuste Sprache, die für die Abfrage aller Typen von XML-Daten optimiert ist. Mit XQuery können Sie Abfragen auf die Variablen und Spalten des XML-Datentyps durchführen. Dabei können Sie die diesem Datentyp zugeordneten Methoden verwenden. Wie bei vielen XML-Standards überwacht das World Wide Web Consortium (W3C) die Entwicklung von XQuery. XQuery entwickelte sich aus einer Abfragesprache namens Quilt, die wiederum auf einer Reihe von anderen Abfragesprachen basierte, z. B. der XML Path Language (XPath) Version 1.0, XQL und SQL. XPath 2.0 ist als Teilmenge enthalten. Wenn Sie also über Erfahrung mit XPath 1.0 verfügen, können Sie auf diesen Kenntnissen aufbauen und müssen nicht eine völlig neue Abfragesprache erlernen. Es gibt jedoch wichtige Erweiterungen, die über XPath 1.0 hinausgehen, darunter Typisierung, spezielle Funktionen sowie Unterstützung für bessere Iteration, Sortierung von Ergebnissen und Konstruktion. SQL Server 2005, Beta 2, wird mit umfassenden XQuery-Funktionen ausgeliefert, die die XML-Objektmanipulation in der Datenebene ermöglichen. Es unterstützt eine statisch typisierte Untermenge des Dokuments XQuery 1.0 Working Draft (in Englisch) vom 15. November 2003. DML-Erweiterungen Die XQuery-Spezifikation enthält derzeit die Syntax und Semantik für Abfragen, jedoch nicht für das Ändern von XML-Dokumenten. Die XML Data Modification Language (DML) ist eine Erweiterung der XQuery-Features zur Änderung von Daten. SQL Server 2005, Beta 2, fügt drei Schlüsselwörter hinzu: insert, update und delete. Jedes dieser drei Schlüsselwörter wird in der modify()-Methode des XML-Datentyps verwendet. Neues Anwendungsframework SQL Server 2005 führt ein neues SQL Server-Anwendungsframework ein: Service Broker. Service Broker ist ein verteiltes Anwendungsframework, das zuverlässiges asynchrones Messaging auf der Ebene zwischen Datenbanken bereitstellt. SQL Service Broker In den letzten 10 Jahren ist durch die enorme Zunahme an E-Commerce-Anwendungen die Workflowverwaltung bei Datenbankanwendungen immer wichtiger geworden. Wenn ein Onlinekunde eine Bestellung für ein Buch aufgibt, müssen Transaktionen im Inventar-, Versand- und Kreditkartensystem erfolgreich ausgeführt sowie eine Bestellbestätigung über eine andere Webanwendung gesendet werden. Das Warten auf die erfolgreiche Ausführung der einzelnen Prozesse führt zu einer schlechten Skalierbarkeit. SQL Server 2005 bietet eine neue skalierbare Architektur für die Erstellung von asynchronem Nachrichtenrouting. Aufgrund der Service Broker-Technologie können interne oder externe Prozesse Streams von zuverlässigen, asynchronen Nachrichten mithilfe von Erweiterungen der normalen Transact-SQL-DML (Data Manipulation Language) senden und empfangen. Nachrichten werden an eine Warteschlange in derselben Datenbank, in der auch der Sender ausgeführt wird, an eine andere Datenbank in derselben Instanz von SQL Server oder eine andere Instanz von SQL Server auf demselben Server oder einem Remoteserver gesendet. Reporting Services Mit der Veröffentlichung von SQL Server 2005 erweitert Microsoft eine neue Hauptkomponente der integrierten BI-Plattform (Business Intelligence). SQL Server Reporting Services ergänzt die Microsoft Business Intelligence-Vision, indem sichergestellt wird, dass in jeder Geschäftsumgebung die richtigen Personen die richtigen Informationen erhalten. Reporting Services ist eine vollständige serverbasierte Plattform zur Erstellung, Verwaltung und Zustellung von herkömmlichen und interaktiven Berichten. Sie enthält alles, was Sie zum sofortigen Erstellen, Verteilen und Verwalten von Berichten benötigen. Das modulare Design und die umfassenden APIs (Application Programming Interfaces) von Routing Services ermöglichen es Entwicklern, Datenanbietern und Unternehmen, die Berichterstellung in Legacysysteme oder Anwendungen von Drittanbietern zu integrieren. Reporting Services sind im Lieferumfang von SQL Server 2005 enthalten und umfassen folgende Komponenten: Einen vollständigen Satz von Tools zum Erstellen, Verwalten und Anzeigen von Berichten. Ein Modul zum Hosten und Verarbeiten von Berichten. Eine erweiterbare Architektur und offene Schnittstellen zum Einbetten von Berichten oder Integrieren der Lösung in verschiedenen IT-Umgebungen. Notification Services Microsoft SQL Server Notification Services ist eine Plattform zur Entwicklung und Bereitstellung von Anwendungen, die Benachrichtigungen generieren und an Benutzer senden. Benachrichtigungen sind personalisierte, zeitgerechte Nachrichten, die an eine Vielzahl von Geräten gesendet werden können. Benachrichtigungen geben die Voreinstellungen des Abonnenten wieder. Der Abonnent gibt ein Abonnement ein, um sein Interesse an bestimmten Informationen zu bekunden. Beispiel: "Benachrichtigen Sie mich, wenn der Aktienpreis von Siemens 60,00 € erreicht" oder "Benachrichtigen Sie mich, wenn das Strategiedokument meines Teams aktualisiert wird". Eine Benachrichtigung kann unmittelbar nach dem Eintreten eines auslösenden Ereignisses oder nach einem vom Benutzer festgelegten Zeitplan generiert und an den Benutzer gesendet werden. Das Abonnement des Benutzers gibt an, wann die Benachrichtigung generiert und gesendet werden soll. Benachrichtigungen können an eine Vielzahl von Geräten gesendet werden. So kann eine Benachrichtigung z. B. an ein Mobiltelefon, einen PDA (Personal Digital Assistant), Microsoft Windows Messenger oder das E-Mail-Konto eines Benutzers gesendet werden. Da der Benutzer diese Geräte oft mit sich führt, eignen sich Benachrichtigungen besonders zum Senden von Informationen mit hoher Priorität. SQL Server Mobile Edition Die mit SQL Server 2000 Windows CE Edition ausgelieferte Version von SQL Server 2000 entspricht jetzt SQL Server Mobile Edition, Version 3.0. In SQL Server Mobile Edition gibt es für Entwickler besonders wichtige neue Features: Sie können eine SQL Server Mobile Edition-Datenbank direkt von SQL Server Management Studio aus auf dem Desktop oder Gerät erstellen. Sie können auch das Schema der SQL Server Mobile Edition-Datenbank direkt von Management Studio aus bearbeiten, unabhängig davon, ob die Datenbank auf dem mobilen Gerät oder dem Desktop gespeichert ist. Sie können mit SQL Server Management Studio Abfragen ausführen, die auf einer SQL Server Mobile Edition-Datenbank auf dem Gerät oder dem Desktop basieren. Sie können auch die Vorteile der neuen SQL Server Mobile Edition-Features nutzen, wie z. B. einen XML-Showplan, der in einem GUI-Format dargestellt wird (wie im systemeigenen SQL Server), sowie die Möglichkeit, mithilfe von Abfragehinweisen den Abfrageoptimierer in SQL Server Mobile Edition zu überschreiben. Zum ersten Mal können Sie den Optimierungsplan auf einem Gerät steuern. Sie können nun bei der Codierung des Datenaustauschs auch DTS-Objekte (Data Transformation Services) verwenden. Das neue SqlCeResult-Set leitet sich vom SQLResult-Set aus SQL Server 2005 ab. Dadurch erhält SQL Server Mobile Edition einen völlig bildlauffähigen, aktualisierbaren Cursor. Es wird auch die Bindung an Datenobjekte auf den Geräten ermöglicht. Sie können eine Anwendung so codieren, dass die Hauptanwendung beim Synchronisieren von Daten geöffnet bleibt. Es ist auch möglich, dass zwei separate Anwendungen gleichzeitig auf dieselbe Datenbank auf dem Gerät zugreifen. Sie können Benachrichtigungen erhalten, die Sie in Statusleisten codieren können, die den Status einer Synchronisation angeben. Vorher war es nicht möglich, den Synchronisationsstatus anzugeben und Benutzer wissen zu lassen, dass ein Gerät immer noch reagiert. Sie können die Größe einer Datenbank aufgrund einer viel strengeren Seitenrückforderungsrichtlinie klein halten. Sie können den parametrisierten Abfragecode mit der SQL Server-Syntax gemeinsam nutzen. Spracherweiterungen Transact-SQL-Erweiterungen Transact-SQL bildet seit langem die Grundlage für die gesamte Programmierung von SQL Server. SQL Server 2005, Beta 2, stellt viele neue Sprachfunktionen für die Entwicklung von skalierbaren Datenbankanwendungen bereit. Zu diesen Erweiterungen zählen die Fehlerbehandlung, neue rekursive Abfragefunktionen und Unterstützung für neue SQL Server Database Engine-Funktionen. Mithilfe der Transact-SQL-Erweiterungen in SQL Server 2005, Beta 2, können Sie ausdrucksstarke Abfragen schreiben, die die Leistung Ihres Codes verbessern, sowie Ihre Fehlerverwaltungsfunktionen erweitern. Dass die Erweiterung von Transact-SQL so stark vorangetrieben wird, zeigt deutlich, dass diese Sprache in SQL Server eine bedeutende Rolle spielt. Rekursive Abfragen und CTEs Ein CTE (Common Table Expression) ist ein temporäres, benanntes Resultset, auf das von einer definierenden Anweisung verwiesen werden kann. In seiner einfachen Form können Sie sich ein CTE als eine verbesserte Version einer abgeleiteten Tabelle vorstellen, das einem nicht persistenten Typ von Sichten ähnlich ist. Sie verweisen auf ein CTE in der FROM-Klausel einer Abfrage. Dies entspricht in etwa dem Verweisen auf abgeleitete Tabellen und Sichten. Sie definieren das CTE nur einmal, können jedoch in der Abfrage mehrmals darauf verweisen. In der Definition des CTE können Sie auf Variablen verweisen, die im selben Batch definiert sind. Sie können CTEs sogar in INSERT-, UPDATE-, DELETE- und CREATE VIEW-Anweisungen verwenden, etwa so, wie Sie Sichten verwenden. Die wahre Leistungsstärke von CTEs liegt jedoch in ihren rekursiven Fähigkeiten, wenn CTEs Verweise auf sich selbst enthalten. Sie verwenden abgeleitete Tabellen, wenn Sie auf ein Abfrageergebnis so verweisen möchten, als ob es eine Tabelle wäre, Sie jedoch keine persistente Sicht in der Datenbank erstellen möchten. Abgeleitete Tabellen unterliegen jedoch einer Einschränkung, die von CTEs abgeschwächt wird: Sie können eine abgeleitete Tabelle in Ihrer Abfrage nicht einmal erstellen und mehrere Male verwenden. Stattdessen müssen Sie mehrere abgeleitete Tabellen in derselben Abfrage erstellen. Im Gegensatz dazu können Sie ein CTE in einer Abfrage einmal erstellen und mehrere Male verwenden, ohne es in der Datenbank persistent zu speichern. Nicht rekursive CTEs erhöhen die Ausdrucksstärke. Für jeden Codeabschnitt, der nicht rekursive CTEs verwendet, können Sie jedoch in der Regel längeren Code schreiben, der dieselben Ergebnisse durch Verwendung von anderen Transact-SQL-Konstrukten (z. B. abgeleiteten Tabellen) erzielt. Bei rekursiven CTEs verhält sich der Fall anders. Wenn ein CTE auf sich selbst verweist, wird es als rekursiv erachtet. Rekursive CTEs werden aus mindestens zwei Abfrageteilen (bzw. Elementen oder Members in der Terminologie der rekursiven Abfragen) konstruiert. Ein Teil ist ein nicht rekursiver Abfrageteil, auch als Anchorelement (Anchor Member) bezeichnet. Der andere Teil ist der rekursive Abfrageteil, auch als rekursives Element (Recursive Member) bezeichnet. Die Abfrageteile werden mit einem UNION ALL-Operator zu einem einzelnen CTE verbunden. PIVOT- und UNPIVOT-Operatoren SQL Server 2005, Beta 2, enthält zwei neue relationale Operatoren, die Sie in der FROM-Klausel einer Abfrage verwenden können: PIVOT und UNPIVOT. Diese Operatoren führen Manipulationen an einem Tabellenwert-Eingabeausdruck durch und geben eine Ausgabetabelle als Ergebnis zurück. Der PIVOT-Operator ordnet Zeilen als Spalten an, wobei möglicherweise auch Aggregationen durchgeführt werden. Der Eingabetabellenausdruck wird entsprechend einer bestimmten Pivotspalte erweitert, und es wird eine Ausgabetabelle mit einer Spalte für jeden eindeutigen Wert in der Pivotspalte generiert. Der PIVOT-Operator eignet sich für die Verarbeitung von Szenarios mit offenen Schemas und zur Generierung von Kreuztabellenberichten. In einem Szenario mit offenem Schema werden Entitäten mit Attributsätzen verwaltet, die entweder nicht vorher bekannt oder für jeden Entitätstyp anders sind. Die Benutzer Ihrer Anwendung definieren die Attribute dynamisch. Anstatt viele Spalten vorzudefinieren und viele NULL-Werte in Ihren Tabellen zu speichern, teilen Sie die Attribute auf verschiedene Zeilen auf und speichern nur die relevanten Attribute für jede Entitätsinstanz. Mit PIVOT können Sie Kreuztabellenberichte für Szenarios mit offenen Schemas und andere Szenarios generieren, bei denen Zeilen als Spalten angeordnet und im Zuge dessen möglicherweise Aggregationen berechnet werden. Die Daten werden in nützlicher Form dargestellt. Der UNPIVOT-Operator führt genau die entgegengesetzte Operation zu PIVOT durch und ordnet Spalten als Zeilen an. Der Eingabetabellenausdruck wird entsprechend einer bestimmten Pivotspalte reduziert. Mit dem UNPIVOT-Operator können Sie zuvor pivotierte Daten normalisieren. APPLY-Operator Mit dem APPLY-Operator können Sie in SQL Server 2005, Beta 2, in einer korrelierten Unterabfrage auf eine Tabellenwertfunktion verweisen. Mit dem relationalen APPLY-Operator lässt sich eine angegebene Tabellenwertfunktion für jede Zeile eines äußeren Tabellenausdrucks einmal aufrufen. Sie geben APPLY in der FROM-Klausel einer Abfrage an, etwa so, wie Sie den relationalen JOIN-Operator verwenden. Es gibt zwei Formen von APPLY: CROSS APPLY und OUTER APPLY. CROSS APPLY ruft eine Tabellenwertfunktion für jede Zeile in einem äußeren Tabellenausdruck auf. Sie können auf die Spalten der äußeren Tabelle als Argumente der Tabellenwertfunktion verweisen. CROSS APPLY gibt ein einheitliches Resultset zurück, das aus allen Ergebnissen kompiliert wird, die von den einzelnen Aufrufen der Tabellenwertfunktion zurückgegeben werden. Wenn die Tabellenwertfunktion für eine bestimmte äußere Zeile eine leere Menge zurückgibt, wird diese äußere Zeile nicht im Resultset zurückgegeben. OUTER APPLY ist CROSS APPLY sehr ähnlich, mit dem Unterschied, dass es auch Zeilen der äußeren Tabelle zurückgibt, für die die Tabellenwertfunktion eine leere Menge zurückgegeben hat. NULL-Werte werden als die Spaltenwerte zurückgegeben, die den Spalten der Tabellenwertfunktion entsprechen. Ausnahmebehandlung für Transaktionen In früheren Versionen von SQL Server mussten Sie ähnlich wie in Microsoft Visual Basic 6.0 nach jeder fehlerverdächtigen Anweisung Fehlerbehandlungscode einfügen. Zur Zentralisierung des Fehlerüberprüfungscodes waren Sprungmarken und GOTO-Anweisungen zu verwenden. Außerdem führten Fehler wie z. B. Datentypkonvertierungsfehler dazu, dass der Batch beendet wurde und deshalb diese Fehler mit Transact-SQL nicht aufgefangen werden konnten. SQL Server 2005, Beta 2, behandelt viele dieser Probleme durch Einführung eines einfachen, jedoch leistungsstarken Ausnahmebehandlungsmechanismus in der Form eines TRY/CATCH-Transact-SQL-Konstrukts, ähnlich dem entsprechenden Konstrukt in Visual Basic .NET und C#. Fehler, die zuvor zur Beendigung einer Anweisung, einer Ebene, eines Batch oder einer Transaktion führten, können nun abgefangen und behandelt werden, vorausgesetzt, diese Fehler sind nicht so schwerwiegend, dass sie die Verbindung trennen. Schreiben Sie zum Implementieren der Fehlerbehandlung einfach den Code, den Sie ausführen möchten, in einen BEGIN TRY/END TRY-Block und geben Sie anschließend den Fehlerbehandlungscode in einem BEGIN CATCH /END CATCH-Block an. Beachten Sie, dass ein TRY-Block einen entsprechenden CATCH-Block aufweisen muss, andernfalls erhalten Sie einen Syntaxfehler. DDL-Ereignisbenachrichtigungen Mit SQL Server 2005, Beta 2, können Sie DDL- und Systemereignisse erfassen und eine Ereignisbenachrichtigung an einen Service Broker-Dienst senden. Im Gegensatz zu Triggern, die synchron verarbeitet werden, ist eine Ereignisbenachrichtigung ein Ereignismechanismus, der die asynchrone Verwendung zulässt. Eine Ereignisbenachrichtigung sendet XML-Daten an einen angegebenen Service Broker-Dienst. Ereigniskonsumenten verwenden diese dann asynchron. Ein Ereigniskonsument kann mithilfe von Erweiterungen für die WAITFOR-Klausel der Receive-Anweisung des Service Brokers auf das Eintreffen neuer Daten warten. Erweiterungen für die Volltextsuche SQL Server 2005 bietet Unterstützung für komplexe Volltextanwendungen. Die Katalogisierungsfunktionen wurden verbessert, um größere Flexibilität für die katalogisierten Elemente zu bieten. Die Abfrageleistung und Skalierbarkeit wurden bedeutend verbessert, und neue Verwaltungstools ermöglichen einen besseren Einblick in die Volltextimplementierung. Sicherheitserweiterungen SQL Server 2005 profitiert von der Trustworthy Computing-Initiative, einer Microsoft-Initiative zur Verbesserung in den Bereichen Sicherheit, Datenschutz, Zuverlässigkeit und Geschäftsintegrität. Im Zuge dieser Initiative, die im Januar 2002 unternehmensweit eingeführt wurde, verfolgt Microsoft nun Entwicklungsprozesse, mit denen sichergestellt werden kann, dass unsere Produkte und Produktbereitstellungen Sicherheit im Konzept (Secure by Design), Sicherheit als Standard (Secure by Default) und Sicherheit bei der Bereitstellung (Secure in Deployment) gewährleisten. Das Entwicklungsteam von Microsoft SQL Server hat diese Prozesse in die Entwicklung von SQL Server 2005 integriert. Nach der Bereitstellung unterstützt Microsoft die ständige Kommunikation mit Kunden und Partnern in Sicherheitsfragen. Dies hat zur Folge, dass SQL Server 2005 die umfassendsten Sicherheitsfeatures aller bisher erfolgten SQL Server-Releases aufweist. Diese Features und Verbesserungen umfassen im Wesentlichen die folgenden drei Bereiche: Einschränken des Benutzerzugriffs auf den SQL-Server: Größere Kontrolle beim Zugriff auf SQL Server sowie Investitionen in Mechanismen, mit denen Administratoren den Zugriff auf SQL Server mithilfe von Richtlinien steuern können. Deaktivieren von Diensten und Einschränken der Dienstkonfiguration: Administratoren können den Zugriff auf Ressourcen in SQL Server im gewünschten Umfang mit hoher Granularität einschränken und sicherstellen, dass sich das System leicht verwalten lässt, ohne das Prinzip der geringsten Privilegien zu verletzten. Da in der Standardeinstellung für neue Serverinstallationen bestimmte Dienste deaktiviert sind, können Kunden nun eigenständig entscheiden, welche zusätzlichen Dienste aktiviert werden sollen. Reduzieren der Angriffsfläche für neue Features: Die Angriffsfläche wird schon ab der Installation und dem Setup von SQL Server minimiert. Während des Produktentwicklungszyklus werden neue Features ständig im Hinblick auf ihre Sicherheit überprüft und getestet, um die Angriffsfläche zu reduzieren. Schlussfolgerung Microsoft SQL Server 2005 stellt die Tools bereit, die Entwickler zur Erstellung von neuen Klassen von Datenbankanwendungen benötigen. SQL Server 2005 eröffnet Datenbankentwicklern durch Entfernen der Barrieren hinsichtlich Codeausführung und Speicherort sowie durch die Integration von Standards wie XML eine Welt ungeahnter Möglichkeiten. Dieses Dokument gibt nur einen ersten Einblick in die Möglichkeiten, die sich Ihnen mit SQL Server 2005 bieten. Quelle: Matt Nunn, Microsoft, 23. Januar 2004 http://www.microsoft.com/germany/ms/msdnbiblio/show_all.asp?siteid=600721 |
Analyse, Beratung & Seminare Web Analytics - Wir begleiten unsere Kunden branchenübergreifend und in jeder Phase. Web-Controlling mit NewElements dient der Erfolgsmessung und Steigerung des kommerziellen Erfolges Ihrer Website. Analysieren Sie Ihre Internetdaten so flexible, wie Sie dies von OLAP- und BI-Tools kennen.
NewElements Monitor ermöglicht es Ihnen die Besucher Ihrer Internetseiten kennen zu lernen - in Echtzeit. Damit können Sie sich ein Bild über Ihren Besucher machen und mit ihm in Kontakt treten. weiter >>
NewElements Live Support
Wie ein Verkäufer, der im Geschäft auf den Kunden zugeht und ihm Beratung anbietet, ermöglicht Ihnen der NewElements Communicator eine Online-Kommunikation mit dem Besucher. Offene Fragen können schnell beantwortet und weiterführende Informationen zu Verfügung gestellt werden. weiter >>
NewElemetns Web Analyics
Web-Controlling mit NewElements dient der Erfolgsmessung und Steigerung des kommerziellen Erfolges Ihrer Website. Analysieren Sie Ihre Internetdaten so flexible, wie Sie dies von OLAP- und BI-Tools kennen. weiter >>
Dynamischer Content - Jedem seine Infomations - Kunden erhalten je nach Bewegungsdaten Ihre zielgerichtete Führung