Auf dem Weg zur Daten-Plattform
Artikel erschienen in Swiss IT Magazine 2007/22
Microsofts SQL Server steht vor dem nächsten Release. Die Version 2008 ist derzeit als CTP (Customer Technology Preview) öffentlich verfügbar, als Vorversion mit weitgehend fertiggestellter Funktionalität. Wie bereits der 2005er-Release bietet auch diese Version wieder eine regelrechte Flut an Neuerungen.
Als übergeordnete Vision spricht Microsoft dabei von einer Datenplattform, die den effizienten Umgang mit der exponentiell wachsenden Informationsmenge unterstützt (siehe Diagramm «Microsofts Data-Platform-Vision»). Die immer umfangreicheren Informationen wie Bilder, Audio und Video oder die Datenmengen, die potentiell von RFID-Chips erzeugt werden, sind nur zwei der Treiber für diese steigende Informationsmenge. Mit dem SQL Server 2008 will Microsoft für seine Infrastrukturen eine zentrale Plattform liefern, die unterschiedlichste Arten von Informationen effizient speichern und auf jede erdenkliche Art und Weise auswerten und weiterverarbeiten kann. Dazu zählen einfache Abfragen ebenso wie komplexe BI-Analysen und das Reporting, die Integration von Daten aus verschiedenen Quellen, die Synchronisation zwischen Datenspeichern sowie eine effiziente Suche im Volltext.
Diese von Microsoft postulierte Vision ist keineswegs neu. Auch andere Hersteller im Datenbankbereich sehen diese zentrale Bedeutung der Technologie. Microsoft ist insofern ein Sonderfall, als beispielsweise die Nähe zu den Office-Produkten und den dort erzeugten und genutzten Daten eine wichtige Rolle spielt. Die Sichtweise von Microsoft hat aber für die Entwicklung des SQL Server 2008 einen erheblichen Einfluss gehabt. So geht der Blick über die relationalen Datenstrukturen hinaus. Die Entwicklungsumgebungen und -schnittstellen, vom .NET Framework über Visual Studio bis hin zum BizTalk Server, sind besser integriert, und auch die Analysefunktionen sind weiter ausgebaut worden.
Über die reine Datenbankfunktionalität hinaus gibt es aber noch ein weiteres zentrales Thema: die Sicherheit und Verlässlichkeit der Plattform. Im Datenbankbereich hat diese ganz verschiedene Facetten: Einerseits geht es darum, Informationen vor unberechtigtem Zugriff oder Manipulationen zu schützen, andererseits muss der Verlust von Daten vermieden und deren Verfügbarkeit optimiert werden.
Microsoft hat dazu eine Reihe neuer Funktionen realisiert. Dazu gehört eine transparente Datenverschlüsselung auf der Ebene des SQL Server 2008, die nicht mehr von Anwendungen im Code gesteuert werden muss. Damit können wichtige Informationen beispielsweise aufgrund von Compliance-Regeln geschützt werden. Davon profitieren auch bestehende Anwendungen, weil es sich eben um eine transparente Funktion handelt, für die keine Code-Modifikation erforderlich ist.
Wie bei jedem neuen Release hat sich auch beim Management und der Performance einiges getan. Neben den genannten optimierten Mirroring-Funktionen sind beispielsweise die neuen Performance-Zähler erwähnenswert, mit denen sich das Verhalten von Datenbanken noch genauer analysieren lässt. Ausserdem gibt es einen zentralen Speicher für Performance-Daten und neue Werkzeuge für deren Analyse und Überwachung.
Ein weiteres Highlight des Produkts ist sicherlich das Richtlinien-basierende Management, das auf dem DMF (Declarative Management Framework) basiert. Die DMF-Spezifikationen werden von der SQL Server Engine verarbeitet. Damit können eine oder mehrere Instanzen des SQL Server über Richtlinien, die im SQL Server Management Studio erstellt werden, gesteuert werden. In Richtlinien können beispielsweise administrative Aufgaben automatisiert werden, also unter anderem Vorgaben, die mit Hilfe von DDL-Triggern überprüft, oder Änderungen, die in vorgegebener Weise verarbeitet werden. Die Zielsetzung ist, dass weniger Aufgaben durch manuelle Konfiguration oder Scripts gesteuert werden müssen, sondern mit einem vergleichsweise einfachen deklarativen Ansatz bearbeitet werden können.
Für Entwickler dürfte dagegen vor allem das neue Entity-Datenmodell interessant sein. Eine Entity ist zunächst ein relativ abstraktes Objekt. Die klassische Entwicklung bei Datenbanken arbeitet mit Tabellen und definierten relationalen Datenstrukturen. Mit dem Ansatz der Entities, der vom ADO.NET Entity Framework unterstützt wird, können dagegen Business-Objekte oder Business-Entities definiert werden, also beispielsweise ein Kunde, ein Lieferant oder ein Vertrag. Die Beziehungen zwischen solchen Entities lassen sich modellieren.
Beim Zugriff und der Verarbeitung kann dann direkt mit diesen Entities gearbeitet werden, statt sich beispielsweise mit verschiedenen Tabellen und unterschiedlichen Zeilen und Spalten im klassischen relationalen Modell beschäftigen zu müssen. Man hat also eine zusätzliche Abstraktionsebene oberhalb des klassischen relationalen Modells, mit dem die Erstellung von Business-Anwendungen potentiell deutlich vereinfacht, aber auch grundlegend verändert wird.
Wichtig ist auch die LINQ (Language Integrated Query), mit der innerhalb von Programmiersprachen Abfragen eingesetzt werden können. Mit einem neuen LINQ to SQL Provider können diese Abfragen direkt gegen den Microsoft SQL Server 2008 ausgeführt werden. Auch das ist ein wichtiger Schritt hin zu einer effizienteren Entwicklung von Datenbankanwendungen.
Viel Wert hat Microsoft auch darauf gelegt, unterschiedlichste Arten von Daten zu unterstützen. Das relationale Modell ist unzweifelhaft von grosser Bedeutung, aber keineswegs das einzige Modell. Mit neuen Ansätzen wie der Hierarchie-ID und den Filestream-Datentypen werden nun unter anderem hierarchisch strukturierte Daten und Streaming-Informationen aus Dateien wie Dokumenten und Bildern unterstützt. Der Austausch beispielsweise zwischen dem Dateisystem und einer SQL-Server-Datenbank wird dadurch wesentlich vereinfacht.
Auch geographische Informationen werden mit speziellen Datentypen unterstützt. Dabei setzt Microsoft auf die Standards des OGC (Open Geospatial Consortium). Weitere Neuerungen sind eine optimierte Volltextsuche, die mit der Suche in relationalen Strukturen integriert ist, und die Unterstützung sogenannter «Sparse Columns», also von Spalten, bei denen für Nullwerte kein physischer Speicherplatz benötigt wird. Für eine Reihe von spezifischen Datenmodellen sind diese wichtig, um die Last des Servers zu reduzieren.
Dass Microsoft über diese grundlegenden Veränderungen hinaus auch viel Arbeit in die Optimierung der Analysefunktionen gesteckt hat, kann kaum überraschen. Die Report-Funktionalität wurde ausgebaut und kann nun deutlich besser skalieren. Mit speziellen Read-Only-Analysediensten wird die Skalierbarkeit ebenfalls verbessert, weil dafür ein spezieller Speicher genutzt werden kann, auf dem nur Analysen, aber keine Änderungen durchgeführt werden.
Weiter gibt es viele Verbesserungen im Detail, aber auch überarbeitete Entwicklungswerkzeuge für das Design von Reports und Cubes. Auch die Skalierbarkeit der Backup-Schnittstellen für Cubes wurde deutlich ausgebaut.
Interessant ist auch das Microsoft Sync Framework, mit dem die Synchronisation von Informationen zwischen verschiedenen Systemen optimiert wird. Das ist vor allem für die Anbindung von Devices und lokalen Anwendungen unverzichtbar. Von diesem Framework profitieren vor allem Entwickler, die verteilte Anwendungen mit einer zentralen Datenbank-Komponente und dezentralen Storages für Teile der Informationen entwickeln müssen.
Die vorgestellten Features geben nur einen Überblick zu den wichtigsten Veränderungen. Es gibt aber beispielsweise auch neue Datentypen für Daten und Uhrzeiten, ein einfacheres Management von Abhängigkeiten unterschiedlicher Objekte oder neue Funktionen, um die Synchronisation von Informationen von und zu nur gelegentlich verbundenen Systemen wie mobilen Geräten effizient und in möglichst eindeutiger, von Replikationskonflikten freier Weise realisieren zu können.
In der Summe ist Microsoft mit dem SQL Server 2008 wieder einen wichtigen Schritt vorangekommen. Die wichtigsten Änderungen sind sicherlich die verbesserten Synchronisationsfunktionen, die Unterstützung von mehr Datentypen und dabei eben auch grundlegend anderen Strukturmodellen von Daten als dem relationalen Modell und die Unterstützung des Entity-Konzepts.
Zusammen mit den umfassenden Administrations-, Analyse- und Entwicklungsumgebungen bietet der SQL Server 2008 eine sehr interessante Plattform, um auch sehr komplexe Anforderungen in Unternehmen erfüllen zu können. Dabei gelingt es Microsoft mehr und mehr, nicht nur eine breite Funktionalität zu liefern, sondern in den einzelnen Funktionsbereichen auch tatsächlich durch funktionale Tiefe zu glänzen. Das ist allerdings auch erforderlich, um die Vision einer zentralen Plattform für das Datenmanagement in Zukunft erfüllen zu können. Microsoft ist mit dem SQL Server 2008 auf einem sehr guten Weg dorthin.