Test

Erste Eindrücke vom Microsoft SQL Server 2008

28.08.2008
Von Christian Bäcker

Entwicklung

Das zentrale Werkzeug für die Entwicklung bleibt weiterhin das Management Studio. Neben den bereits erwähnten neuen Funktionen hat Microsoft die aus Visual Studio bekannte "Intellisense"-Technik integriert, mit der sich Code automatisch vervollständigen lässt. In Visual Studio funktioniert Intellisense sehr gut, im Management Studio ist diese Funktion aber noch nicht ausgereift und arbeitet nicht immer zufrieden stellend. Zum Teil überflüssige Vorschläge sind hier ein Beispiel.

Bei den Erweiterungen der Datentypen und "Transact-SQL" (T-SQL) bringt die Datenbank interessante Neuerungen mit sich, auf die viele Entwickler lange gewartet haben. Besonders bei der Speicherung von Datums- oder Zeitangaben bedurfte es einiger Tricks, da der SQL Server bisher nur die kombinierten Datentypen "datetime" und "smalldatetime" kannte. Hier wollte Microsoft nun alles richtig machen und spendierte dem System die vier neuen Datentypen "Date", "Time", "Datetime2" sowie "Datetimeoffset", so dass sich nun Zeit- und Datumsangaben getrennt abspeichern lassen.

Neue Datentypen

Da immer mehr Anwendungen geografische Informationen verwenden, hat der SQL Server die zwei Datentypen "Geometry" und "Geography" für den Umgang mit Geodaten erhalten. Geometry speichert die Informationen nach dem Standard des Open Geospatial Consortium (OGC), Geography nach Längen- und Breitenangaben, also analog zum GPS-Standard.

Schließlich gibt es noch "HierarchyID" als neuen Datentyp, um hierarchische Beziehungen wie zum Beispiel Organisationsstrukturen speichern zu können. Er wurde als .NET-Datentyp realisiert, die Syntax für seine Benutzung ist allerdings etwas gewöhnungsbedürftig, da sie nicht der üblichen T-SQL-Syntax entspricht und die Groß- und Kleinschreibung beachtet werden muss. Auch Geometry und Geography sind als .NET-Datentypen implementiert. Ihre ursprüngliche Beschränkung von maximal 8 KB wurde auf 2 GB erweitert. Bisher fanden die .NET-Datentypen allerdings nur wenig Beachtung, obwohl das Konzept sehr interessant ist. Da viele Entwickler lieber relationale Strukturen verwenden, anstatt diese in einem benutzerdefinierten .NET-Datentyp zu implementieren, bleibt abzuwarten, ob sich diese durchsetzen werden.

Zur Speicherung unstrukturierter Daten wie Fotos oder Videos bietet der SQL Server die Erweiterung "Filestream" an. Mit dieser Funktion werden die Dateien direkt im Dateisystem gespeichert, aber vollständig durch den SQL Server verwaltet. Daraus ergeben sich eine transaktionale Konsistenz, ein einheitliches Berechtigungskonzept, ein schneller Datenzugriff und ein einheitliches Backup-Konzept. BLOBs (Binary Large Objects) können natürlich weiterhin direkt in der Datenbank gespeichert werden. Microsoft empfiehlt die Nutzung von Filestream, wenn die Daten im Schnitt größer als 1 MB sind und ein schneller Zugriff erfolgen soll.

Stored Procedures

Unter den T-SQL-Erweiterungen bietet der SQL Server 2008 neben kleineren Detailverbesserungen zwei interessante Neuerungen. Bei den Stored Procedures konnten bisher nur skalare Datentypen als Ein- oder Ausgabeparameter (mit Ausnahme von Zeigern) verwendet werden. Nun lassen sich auch ganze Tabellen als Parameter übergeben, was die Entwicklung wesentlich vereinfacht. Die zweite Neuheit ist der "Merge"-Befehl, der die Befehle "Insert", "Update" und "Delete" verbindet und ETL-Transformationen klarer strukturieren und beschleunigen kann.

Mit von der Partie ist auch die Language Integrated Query (LINQ), die .NET 3.5 mitbringt. Dabei handelt es sich um eine Spracherweiterung für C# und VB.NET, mit der unter anderem SQL-Abfragen nicht mehr als einfache Zeichenketten, sondern in einer SQL-ähnlichen Syntax implementiert werden. Die Vorteile liegen dabei in der Überprüfbarkeit der Syntax zur Übersetzungszeit und der einfachen Implementierung. Wenn man also innerhalb der Datenbank Extended Stored Procedures mit .NET implementieren will, dann ist dies mit Hilfe von LINQ schnell möglich.