Yukon: Geballte Ladung

In gut einem Jahr wird Microsoft unter dem Codenamen «Yukon» eine generalüberholte Version ihres Datenbankservers auf den Markt werfen.

Artikel erschienen in Swiss IT Magazine 2004/02

     

Wenn Microsoft Anfang 2005 ihren neuen Datenbankserver vom Stapel lässt, wird eines der grössten Updates in ihrer Firmengeschichte ausgeliefert. Yukon bringt eine ganze Flut von Neuerungen und nebenbei auch gewichtige Konzeptänderungen im Bereich Entwicklung und Business Intelligence mit. Eine Migration auf Yukon wird gute Planung und einiges an Vorbereitung erfordern, insbesondere dann, wenn man zumindest einige der Vorzüge des kommenden Datenbankservers ausreizen möchte. Grund genug, Yukon bereits heute genauer unter die Lupe zu nehmen.


.Net inside

Eine der spektakulärsten Neuerungen ist die Integration der .Net CLR (Common Language Runtime) in die Datenbank-Engine. Damit wird es künftig möglich sein, Stored Procedures, Funktionen (UDFs) oder Triggers nicht nur im SQL-Dialekt T-SQL, sondern auch mit den .Net-Sprachen Visual Basic.Net oder C# zu schreiben. Entwickler erhalten dadurch nicht nur die Möglichkeit, auf die Vorzüge einer objektorientierten Hochsprache - wie etwa Vererbung, Interfaces oder Ereignismanagement - zurückzugreifen, sondern werden künftig in der Lage sein, sowohl Datenbank- als auch Applikations-Komponenten in derselben Sprache zu schreiben. Allerdings soll T-SQL durch die .Net-Sprachen nicht ersetzt, sondern ergänzt werden. Während T-SQL für Datenmanipulationen nach wie vor erste Wahl bleibt, spielen die .Net-Sprachen ihre Vorteile bei rechenintensivem Code aus. Architekten erhalten damit die Option, CPU-hungrige Funktionen vom Business- in den Datenbank-Layer zu verlagern.




Auf Basis der CLR geschriebene Yukon-Komponenten liegen als kompilierte .Net-Objekte (Assemblies) vor und können dadurch nicht nur von einer höheren Performance, sondern auch von den wesentlich besseren Security-Mechanismen der verwalteten .Net-Umgebung profitieren.


T-SQL lebt

Dass Microsoft T-SQL nicht zugunsten von C# und Visual Basic.Net sterben lassen wird, beweist die üppige Anzahl an Erweiterungen, die der Abfragesprache verpasst wurden. Dazu zählt etwa der neue Query-Typ für rekursive Abfragen, der auf den Schlüsselwörtern WITH und RECURSIVE des ANSI-SQL3-Standards basiert. Neu wird auch strukturiertes Exception Handling mit einem TRY/CATCH -Block geboten, der innerhalb von Transaktionen genutzt werden kann. Ausserdem lassen sich nun Arrays als Parameter übergeben, um mehrere Datensätze gleichzeitig einfügen oder aktualisieren zu können. Zu den weiteren Verbesserungen von T-SQL zählen etwa der PIVOT-Operator zum Rotieren (Spalten in Zeilen umwandeln) von Tabellen oder der effizientere Umgang mit Sub-Queries.
Die Datenbank-Engine unterstützt neue Datentypen, wie etwa einen von der Lokalität abhängigen Datum/Zeit-Typ (utcdatetime) oder separate Typen für Datum (date) und Zeit (time). Ausserdem kann jetzt die Grösse von variablen Datentypen (varchar, varbinary etc.) mit dem Schlüsselwort MAX gesteuert werden. Wem die eingebauten Datentypen nicht ausreichen, wird künftig dank CLR-Integration auch eigene Datentypen mit C# und Visual Basic entwerfen können.


Native XML und Web Services

Stark verbessert wurde auch der Umgang mit XML-Daten. So verfügt Yukon jetzt über einen Datentyp, der die Speicherung von XML-Dokumenten und -Fragmenten im Originalformat ermöglicht. Der XML-Datentyp verfügt über eigene Methoden, über die sich gespeicherte Daten einfacher als bisher manipulieren oder gegen ein XML-Schema validieren lassen. Zudem bietet Yukon nun auch Support für die beiden XML-Abfragesprachen XPath und XQuery. Beide lassen sich direkt aus T-SQL nutzen.




In Yukon wird man Stored Procedures und User Defined Functions (UDFs) direkt als Web Services publizieren können. Yukon stellt dazu einen HTTP-Stack zur Verfügung, wodurch der Umweg von SOAP-Messages über den IIS künftig entfallen kann. Der Vorteil: weniger Administrationsaufwand - Web Services können direkt innerhalb des SQL-Servers konfiguriert werden - und eine bessere Performance.


Hauseigenes Message Queuing

Mit dem SQL Service Broker erhält der SQL Server eine eigene Architektur für asynchrones Message Routing. Damit können Prozesse, die auf unterschiedlichen Datenbankservern abgearbeitet werden, über ein Messaging-System miteinander kommunizieren. Zu diesem Zweck werden ein- und ausgehende Nachrichten wie bei den Message Queuing Services in einer Warteschlange zwischengespeichert.



Ein praktisches Feature ist die Query Notification, die Anwendungen darüber informieren kann, wenn bestimmte Datenbestände aktualisiert wurden. Dies ist etwa dann von Nutzen, wenn Daten, die nur selten geändert werden, von einer Applikation im Cache abgelegt werden. Query Notification kann diese Anwendung nach erfolgtem Daten-Update explizit anweisen, den Cache zu aktualisieren.




Mit den Query Notifications nicht zu verwechseln sind die Notification Services. Diese sind für die Implementation von Abonnementsdiensten gedacht, die den Benutzer über das Eintreten eines bestimmten Ereignisses informieren. Ein Anwendungsbeispiel dafür ist eine Alarmfunktion, die den User automatisch darüber in Kenntnis setzt, wenn ein Aktienkurs einen vorgegebenen Wert unterschreitet.
Ein interessantes Feature ist auch das neue Concurrency-Verfahren mit der Bezeichnung Snapshot Isolation, das eine Alternative zur aktuell verwendeten Read-Commit-Methode zur Verfügung stellt. Bei Snapshot Isolation werden Datensätze bei einer Bearbeitung nicht komplett gesperrt, sondern bleiben für Lesezugriffe zugänglich. Solange die Bearbeitung nicht abgeschlossen ist, wird der lesenden Anwendung einfach der "alte" Datensatz geliefert. Mit Read Commit musste bislang stets auf den Abschluss der Bearbeitung gewartet werden, um wieder Lesezugriff auf den Datensatz zu erhalten.


SQL-Werkbank

Sowohl für Entwickler als auch für Datenbank-Administratoren ist die SQL Server Workbench gedacht, die die bisherigen Werkzeuge Enterprise Manager und Query Analyzer in einer gemeinsamen Umgebung vereint. Die Workbench sieht nicht nur aus wie Visual Studio.Net, sondern bietet auch nahtlose Integration mit der .Net-Entwicklungsumgebung. Für die Datenbankentwicklungsaufgaben müssen VS.Net-Entwickler ihre gewohnte Umgebung künftig nur noch selten verlassen. So können beispielsweise Stored Procedures direkt mit dem VS.Net-Debugger untersucht werden, wobei der Übergang zwischen Anwendungscode und Stored Procedure nahtlos vonstatten geht. Auch aus VS.Net bekannte Hilfen wie IntelliSense für T-SQL oder Control-Toolboxen wurden in die Workbench eingebaut. Praktisch ist zudem der XQuery-Designer, mit dem sich per Drag&Drop XML-Knoten in die Abfrage übernehmen lassen.


Höhere Verfügbarkeit

Yukon hat aber nicht nur Entwicklern, sondern auch Administratoren viele nützliche Verbesserungen zu bieten. Punkto Verfügbarkeit hat Microsoft das vorhandene Fail-over-Clustering erweitert. Neu sind alle Services inklusive Notification- und Analysis-Services Cluster-fähig und damit in eine ausfallsichere Fail-over-Lösung einbindbar. Als Alternative zum Fail-over-Clustering wurde Yukon um Database Mirroring ergänzt. Damit können zwei SQL Server auf Basis des Transaktions-Protokolls miteinander synchronisiert werden. Alle Vorgänge auf dem Originalserver werden Schritt für Schritt auf dem Backup-Server nachgeahmt. Anders als bei einem Fail-over-Cluster kann der Backup-Server im Fehlerfall die Aufgaben des Originalservers innert weniger Sekunden unter voller Last übernehmen. Der Grund: Dank der Eins-zu-eins-Abbildung verfügt der Backup-Server über exakt denselben Status - inklusive Daten-Cache - wie das Original.
Die Daten-Replikation wurde neu um ein Peer-to-Peer-Modell erweitert und kann jetzt auch via HTTP erfolgen. Letzteres ist vor allem für Szenarios mit Datenbanken auf mobilen Geräten interessant, da sich die Daten nun damit sehr einfach via Internet synchronisieren lassen. Zudem wird auch die direkte Synchronisation mit Oracle-Datenbanken unterstützt werden.




Ein weiteres Feature, das die Verfügbarkeit erhöht, ist die Online-Index-Funktion, bei der die Daten bei der Erstellung oder Aktualisierung von Indizes nicht mehr gesperrt werden. In eine ähnliche Kerbe schlägt Online-Backup, dass nur noch über jenen Teil der Daten ein Locking verhängt, der gerade zurückgespielt wird. Eine weitere Verbesserung ist die Spiegelung von Backup-Medien, um im Falle eines defekten Datenträgers sofort auf eine identische Kopie zurückgreifen zu können.


Mehr Intelligenz fürs Business

Auch im Bereich Business Intelligence (BI) wird Yukon seinem Vorgänger stark überlegen sein. So wird Microsofts nächster Datenserver nicht nur neue BI-Komponenten wie die Reporting Services oder eine BI-Entwicklungsumgebung bieten, sondern teils komplett neu konzipierte Versionen bisheriger Module beinhalten. Dazu zählen etwa die Data Transformation Services (DTS), die von Grund auf neu designt und von Microsoft jetzt als ETL-Plattform (Extract, Transformation und Loading) positioniert werden. Kurz, ETL fasst eine Reihe von Technologien zusammen, um Daten in Echtzeit oder zu einem bestimmten Zeitpunkt transformieren und wenn nötig mit eigener Business-Logik bearbeiten zu können.




DTS wurde vor allem für die Verarbeitung von grossen Datenmengen fit gemacht und wird künftig besser programmier- und erweiterbar sein. Control- und Data-Flow werden in den DTS Packages voneinander getrennt sein. Dies soll Design und Lesbarkeit von Packages erheblich vereinfachen. Neu werden DTS-Pakete in einem XML-Format gespeichert und lassen sich dadurch besser in Projektfiles und Versionsmanagement einbinden.


Überarbeitete Analyse-Services

Eine der interessantesten Neuerungen in den Analysis Services ist das Unified Dimensional Model (UDM), das die besten Aspekte von relationalen Datenbanken und mehrdimensionalen OLAP-Modellen kombinieren soll. OLAP-Datenbanken konnten bislang zwar durch eine hohe Abfrage-Performance und ausgezeichnete analytische Funktionen glänzen, versagten aber, wenn es um das Abbilden von komplexen Strukturen mit Many-to-Many-Relationen oder detailliertem Reporting ging. Mit UDM können nun ein einheitliches Schema für relationales Reporting und OLAP-Analyse definiert und so die Vorteile beider Welten unter einen Hut gebracht werden.



Die MDX-Scripts ersetzen die bisherigen Multidimensional Expressions, die zwar mächtig, für viele User aber zu kompliziert waren. Mit MDX Scripts steht nun eine einfachere Syntax zur Definition von Kalkulationen zur Verfügung. Zudem dient MDX auch als Abfragesprache für die Analyse und wird von Query-Werkzeugen wie etwa den Excel-Pivot-Tabellen genutzt.




Eine weitere Neuerung bei den Analysis Services sind die Key Performance Indicators (KPI), mit denen sich Messwerte serverseitig anhand von MDX-Ausdrücken definieren lassen. So können mit KPIs Trends, Status und Ziele wichtiger Unternehmenswerte wie Umsatz, Kundenzufriedenheit oder Lagerbestände in Echtzeit überwacht und mit Hilfe von Reports oder Portalen zu den Entscheidungsträgern geliefert werden. Für die Darstellung der KPIs gibt's eine ganze Palette von aussagekräftigen Controls wie etwa Ampel, Tacho, Fortschrittsbalken oder Trendpfeilen, die für einen besseren Überblick bei einer grösseren Zahl von Messwerten sorgen.


BI-Entwicklungstool

Mit der BI Development Workbench verfügt Yukon über eine Entwicklungsumgebung, die für den Bau von Business-Intelligence-Applikationen gedacht ist. Wie die SQL Server Workbench lehnt sich auch das BI-Werkzeug stark an Visual Studio.Net an und bietet Features wie visuelles Debugging, Projektfile-Management oder Integration mit Visual Source Safe. Die BI Workbench bietet viel Komfort und visuelle Hilfen für die Erstellung von Komponenten wie DTS Packages, Reports oder OLAP Cubes. So wird es etwa grafische Designer geben, mit deren Hilfe sich die Workflows der DTS-Packages per Drag&Drop zusammenstellen lassen.


Serverbasierter Reportgenerator

Interessant sind auch die Reporting Services, die nicht nur in Yukon integriert sein werden, sondern im 1. Quartal 2004 für den SQL Server 2000 releast werden. Microsofts Datenbankserver erhalten so eine Reporting Engine, die dynamische Berichte in verschiedenen Datenformaten (HTML, Excel, PDF, XML) generieren kann. Reports lassen sich auch mit interaktiven Features wie Querverbindungen zu anderen Bereichen oder Drill-Down-Funktionen ausstatten, mit denen man sich über Links immer tiefer zu weiteren Details durchklicken kann. Berichte können mit einem Scheduler automatisch generiert und per E-Mail verschickt oder via SharePoint Portal Server verteilt werden. Reports lassen sich direkt in VS.Net oder der BI Workbench per Drag&Drop designen. Für die Einbindung der Reports in eigene Anwendungen steht ein Reporting Control zur Verfügung. Für die Berichterzeugung können auch andere Datenquellen via Oracle-Datenbankserver, Web Services oder beliebige ODBC- oder OLE-DB-Datasources angezapft werden. Mit dem Reporting Services stellt Microsoft Crystal Reports 9, die bis heute zum Standardumfang von Visual Studio.Net gehören, einen ernsthaften Konkurrenten entgegen.


Fazit

Wird Microsoft mit Yukon den Datenbankserver liefern, der Oracle 9i und IBM DB2 8.1 punkto Feature-Set und Performance das Wasser reichen wird? Da die Beta 1 noch nicht über alle Funktionen verfügt, ist es für solche Schlüsse noch zu früh. Bis zum Release wird Microsoft mit Sicherheit noch einiges an Feature-Feinschliff und Performance-Tuning vornehmen. Viele der Neuerungen klingen aber sehr vielversprechend und schrauben die Erwartungen in die Höhe. Auch wenn IBM und Oracle ebenfalls nicht untätig sein werden, steckt in Yukon derart viel Potential, dass es eine Überraschung wäre, wenn Microsoft ihre Position im Datenbankmarkt nicht weiter ausbauen könnte. Bleibt zu hoffen, dass nebst all den neuen Funktionen auch die Security nicht zu kurz kommt. Immerhin ist Yukon Microsofts erster Datenbankserver, der nach den Vorgaben der Trustworthy-Initiative konzipiert wurde.




Artikel kommentieren
Kommentare werden vor der Freischaltung durch die Redaktion geprüft.

Anti-Spam-Frage: Wie hiess im Märchen die Schwester von Hänsel?
GOLD SPONSOREN
SPONSOREN & PARTNER