Eine Einführung

SQL Server 2005 Express
Kommentare

Dieser Artikel gibt Ihnen eine kurze Einführung zum SQL
Server 2005 Express (SSE).

Die im Laufe der Zeit in zwei Versionen kostenfrei verfügbare MSDE (Microsoft SQL Server Desktop Engine) hat als kleiner Bruder der Microsoft SQL Server-Versionen 7 und 2000 seit Jahren treu und brav ihren Dienst auf zahlreichen Rechnern geleistet. Die MSDE machte den Wechsel von einer ISAM-Datenbank (Indexed Sequential Access Method) wie zum Beispiel dBASE, FoxPro oder ACCESS zu einer in der Client/Server-Architektur implementierten SQL-Datenbank auch für kleine Unternehmen wirtschaftlich. Es mag auch eine Rolle gespielt haben, dass sich die MSDE auch als scharfes Schwert gegen die Open Source-Datenbanken wie MySQL, PostgreSQL und CA-Ingres gebrauchen ließ.

SQL Server 2005 von Andreas Kosch

Dieser Onlineartikel ist ein Auszug aus dem Buch „SQL Server 2005 “ von Andreas Kosch, das bei entwickler.press erschienen ist. Sie können das Buch im Onlineshop von entwickler.press erwerben.

entwickler-press.de

Für einen Hobbyprogrammierer oder gar einem Betreiber einer privaten Homepage (der seine Webseite bei einem Dienstleister hosten lässt) waren die MSDE-Versionen jedoch nur bedingt geeignet, denn das Verhalten der MSDE richtet sich noch zu sehr auf den professionellen Bereich aus. In der Welt der SQL-Datenbanken war es bis vor kurzem noch üblich, dass ein hauptberuflicher Datenbank-Administrator (DBA) beschäftigt wurde, der sich um die Installation, Betrieb und Wartung gekümmert hat. Wie sehr diese „Nebensächlichkeiten“ (neudeutsch auch als Total Cost of Ownership bezeichnet) in der Praxis eine Rolle spielen, zeigt der Verbreitungsgrad des MDB-Datenbankformats. Denn die von der Microsoft JET-Engine (Joint Engine Technology database engine) betriebenen MDB-Datenbanken sind nicht nur im Umfeld der Hobbyentwickler vorzufinden, sondern haben auch Heute noch eine signifikante Verbreitung im professionellen Bereich. Wenn sich daran etwas ändern soll, muss der Nachfolger die Problemstellen adressieren, die bisher einem Wechsel im Weg standen.

Der Beliebtheitsgrad der Microsoft JET-Engine und somit der Access-Datenbanken (*.mdb) hat vor allem mit der Einfachheit des alltäglichen Umgangs zu tun, solange der Zugriff immer nur auf den lokalen Rechner beschränkt bleibt. Allerdings sorgte die Beliebtheit schnell dafür, dass die JET-Engine auch für Mehrbenutzeranwendungen herangezogen wurde, obwohl der Sicherheitsmechanismus (trotz Passwort-Option) sowie das technische Prinzip dafür nicht ausgelegt war. Wenn eine MDB-Datenbankdatei auf einem gemeinsam genutzten Netzlaufwerk abgelegt wird, muss sich jede bei den Benutzern lokal installierte JET-Engine die Daten zur Verarbeitung über das Netzwerk besorgen. Um die sich daraus ergebenden Nebenwirkungen zu beseitigen, nutzt die lokale JET-Engine einen eigenen Cache – was im Worst Case aber dazu führt, dass im Fall eines nicht mehr synchronen Caches die Datenbankdatei auf dem Netzlaufwerk beschädigt wird.

Die SQL Server 2005-Familie

Die neue Microsoft SQL Server 2005-Produktfamilie hat gleich vier Mitglieder, die nach der Größe aufsteigend sortiert die folgende Aufzählung ergeben: Express, Workgroup, Standard und Enterprise. Die Enterprise-Edition hat mit der Developer-Edition einen Zwillingsbruder, der sich auch in den Professional-Versionen von Windows zu Hause fühlt.

Abb. 1: Die Einzelteile des Puzzles (Quelle: SQL Server Summit 2005)

Die Abbildung 1 macht auf eindrucksvolle Art und Weise deutlich, dass sich hinter dem SQL Server 2005 nicht nur eine relationale Datenbank verbirgt. Stattdessen stellt der SQL Server eine ganze Reihe von Dienstleistern bereit, die nur darauf warten, von Entwicklern in die eigene Anwendung eingebunden zu werden.

Allerdings wird es wohl keine Überraschung sein, dass Microsoft in der kostenfrei verfügbaren Express-Edition einige Sachen wieder ausgebaut hat. Die Tabelle 1 stellt die wichtigsten Unterschiede aus dem Blickwinkel des Praktikers gegenüber.

Tabelle 1: Einschränkungen der Express-Version
In SSE verfügbares Feature In SSE nicht nutzbares Feature
  • CLR Integration
  • Nativer XML-Datentyp
  • XQuery Engine
  • Auto-Tuning für die Performance-Optimierung
  • Datenverschlüsselung über einen öffentlichen Schlüssel
  • SQLCMD (Kommandozeilen-Tool)
  • SQL Managemend Objects (SMO)
  • Replication Management Objects (RMO)
  • Service Broker (nur Client, ein SQL Server 2005 wird benötigt, um Nachrichten abzuschicken)
  • Analysis Services
  • Reporting Services
  • Integration Services
  • Notification Services
  • Clustering
  • Mirroring
  • Volltext-Suche
  • Native Web Services (HTTP-Endpoints)
  • SQL Profiler
  • SQL Server Agent
SQL Server 2005 Express Edition

Die Express-Version als kleinstes Mitglied der Familie ist eine abgespeckte Version. Allerdings gibt es da ein Alleinstellungsmerkmal, das diese Beschränkungen mehr als wieder gut macht: Der SQL Server 2005 Express (SSE) ist für jedermann kostenfrei herunterladbar, aber auch Software-Anbieter dürfen nach vorheriger (kostenfreier) Registrierung die Express-Edition zusammen mit der eigenen Anwendung weitergeben. Dazu kommt noch, dass nur in der Express Edition das so genannte XCOPY-Deployment nutzbar ist, bei dem der SQL Server zum einen die verschiedenen auf dem gleichen Rechner ausgeführten Instanzen voneinander abschottet und zum anderen die als Datei kopierte Datenbankdatei automatisch in den Server einhängt. Der Steckbrief der Express-Edition fasst die wesentlichen Merkmale in kompakter Form zusammen:

  • Ist ein für jedermann kostenfrei herunterladbarer SQL Server, der (nach einer Registrierung) auch kostenfrei weitergegeben werden darf.
  • Service Packs und Sicherheits-Updates für die Express-Edition werden zukünftig vom Windows Update-Dienst mit eingearbeitet.
  • Während bei der MSDE eine Leistungsbremse (MSDE Query Governor) bei mehr als 5 gleichzeitigen Benutzern gezogen wurde, gibt es diese Beschränkung bei der Express-Edition nicht mehr, so dass diese unabhängig von der Benutzeranzahl besser skalierbar ist.
  • Unterstützt Datenbanken bis zur Größe von 4 GB (Log-Dateien und die Systemdatenbank tempdb zählen dabei nicht mit), während bei der MSDE das Limit 2 GB galt. Es gibt keine Beschränkung für die Anzahl der Datenbanken, die sich auf einer SQL Server 2005 Express-Instanz installieren lassen.
  • Nutzt immer nur eine CPU im Rechner, kann aber auf Mehrprozessor-Maschinen installiert werden (MSDE: 2 CPUs).
  • Nutzt nur maximal 1 GB vom vorgefundenen Arbeitsspeicher für den Datenbank-Puffer (MSDE: 2 GB RAM).
  • Kann auf einem Rechner als benannte Instanz bis zu 50 Mal installiert werden (MSDE: maximal 16 Instanzen).
  • Nutzt die Common Language Runtime (CLR) des .NET Frameworks, sodass sich der Funktionsumfang aufgrund der erweiterten Programmierbarkeit drastisch erhöht.
  • Unterstützt in der Voreinstellung das automatische Ein- und Aushängen von Benutzer-Datenbanken, so dass auch für die Datenbank- und Log-Datei selbst das XCOPY-Installationsprinzip gilt.
  • Die Benutzer-Datenbanken und der Distributed Transaction Coordinator (DTC) vom Betriebssystem werden beim Start des SQL Server-Dienstes nicht automatisch initialisiert, woraus sich eine verkürzte Startzeit des Servers ergibt.
  • Mit dem separat zu installierenden SQL Server Management Studio Express (SSMSE) steht eine kostenfreie visuelle Benutzeroberfläche für die Verwaltung sowie für das Ausführen von SQL-Anweisungen zur Verfügung.
  • Ist sowohl als lokale Einzelbenutzer-Datenbank als auch im Netzwerk verfügbare Mehrbenutzer-Datenbank konfigurierbar.

Wie die Aufzählung zeigt, hält sich gegenüber der MSDE das Geben und Nehmen ungefähr die Waage. Die Express-Edition speckt bei der nutzbaren Rechnerleistung ab und stellt auch den SQL Server Agent für zeitgesteuerte Aktionen nicht mehr zur Verfügung, um dafür aber an anderer Stelle umso üppiger zuzulegen. Es ist deutlich zu erkennen, dass Microsoft mit dem seit sehr langer Zeit angekündigten Vorhaben, die eigene JET-Engine (und somit das MDB-Datenbankformat) abzulösen, Ernst macht (auch wenn der Microsoft Exchange-Server in diesem Punkt nicht auf dem gleichen Gleis fährt). Wenn der Plan, ein derart weit verbreitetes und somit zwangsläufig beliebtes Datenbankformat zu entsorgen, gelingen soll, muss sowohl den Entwicklern als auch den Anwendern glaubhaft vermittelt werden, dass sich Alles nur zum Guten ändert. An dieser Stelle gibt es drei primäre Anforderungen:

  • Auch weiterhin muss Windows Update auf Wunsch automatisch die neuesten Updates einspielen können. Wenn die Express-Edition zukünftig auf sehr vielen normalen Rechnern installiert ist, darf sich die Story vom SQL Slammer-Wurm nicht wiederholen.
  • Das Hantieren mit der Datenbank muss im Alltag genauso einfach sein wie das bei einer MDB-Datenbankdatei der Fall war. Bisher konnte ein Programm, ein Script oder eine ASP-Anwendung sofort nach dem Kopieren der MDB-Datenbankdatei auf den Dateninhalt zugreifen, solange auf diesem Rechner die Microsoft Data Access Components (MDAC) vollständig (also inklusive der Microsoft JET Engine) installiert waren.
  • Die Datenbank muss im Laufe der Zeit zur Anpassung an die Anforderungen mitwachsen können, ohne dass Änderungen im Quelltext der Client-Programme notwendig werden. Während das MDB-Datenbankformat ein hartes technisches Limit setzt und letztendlich in einer Sackgasse endet, kann eine auf dem SSE gestartete Datenbank bei Bedarf auf der SQL Server 2005 Enterprise Edition betrieben werden.

Zusätzlich spielt bei der Entscheidung, vom MDB-Datenbankformat zu einer SSE-Datenbank zu wechseln, auch die Funktions-Kompatibilität eine Rolle. Aus der Sicht des Anwenders ist es wichtig, dass die bisher lieb gewonnenen Werkzeuge wie Microsoft Access oder Microsoft Excel bei der Abfrage der Daten aus dieser Datenbank funktionstüchtig bleiben müssen. Die ersten Tests in diese Richtung geben aber frühzeitig Entwarnung, sogar Microsoft Access aus dem Office 2000-Paket kann (wenn eine aktuelle MDAC-Version auf dem Rechner installiert ist) über den alten ODBC-Treiber (SQL Server) auf die Express-Datenbank zugreifen. Wenn entweder der SQL Server 2005 Express oder der als einzelnes Setup erhältliche Microsoft SQL Server Native Client installiert wurde, ist sowohl der neue ODBC-Treiber SQL Native Client als auch der angepasste SQL OLE DB-Provider in den Office-Anwendungen nutzbar. Der SQL Server 2005 rüstet in seinem SQL-Sprachschatz zum Beispiel auch die PIVOT-Funktion nach, für die bisher die Microsoft JET Engine zuständig war.

Zwar ist der SQL-Zugriff über Microsoft ACCESS auf eine SSEDatenbank möglich, allerdings steht auch mit Microsoft ACCESS 2003 Service Pack2 im Fall einer SQL Server 2005 Express-Datenbank das ADBProjekt nicht mehr zur Verfügung. Auch schlägt jeder Versuch fehlt, mit den Designern von Microsoft ACCESS eine SSE-Datenbank zu konfigurieren, um zum Beispiele eine neue Tabelle visuell einzurichten. Sie sollten nicht auf ein neues Service Pack für Microsoft ACCESS spekulieren, aufgrund der fundamentalen Veränderungen beim SQL Server 2005 müsste Microsoft ACCESS dazu zu sehr umgebaut werden.

Analog zur Microsoft JET-Engine, die als Bestandteil von MDAC (Microsoft Data Access Components) ab Windows 2000 offiziell zum Betriebssystem gehört, geht Microsoft auch beim .NET Framework 2.0 sowie dem SQL Server 2005 Express davon aus, dass diese Teile nicht zu einer Anwendung, sondern statt dessen global zur Plattform (also quasi zum Betriebssystem) gehören. Das Verhalten hat sich somit gegenüber dem Zugriff auf eine MDB-Datenbank nicht geändert – denn auch früher war dieser Zugriff ja nur erfolgreich, wenn MDAC auf diesem Rechner bereits vollständig installiert war.

Wie der kurze Abgleich mit dem Steckbrief zeigt, erfüllt Microsoft mit der Express Edition beide primären Anforderungen und legt sogar mit der frei verfügbaren visuellen Oberfläche sowie einem öffentlichen Forum noch eins oben drauf. Allerdings gibt es ein Abgrenzungsproblem zur kostenpflichtigen Workgroup-Edition, aus diesem Grund darf es bei der Express-Edition nicht zu bequem zugehen (denn dann würde keiner mehr die Workgroup-Edition kaufen). Dies führt dazu, dass bestimmte Teile nicht im Installationsprogramm vom SQL Server 2005 Express enthalten sind, sondern bei Bedarf separat nachinstalliert werden müssen. Dies betrifft die Hilfedatei, das bereits genannte SQL Server Management Studio Express, das Feature Pack für Microsoft SQL Server 2005 und die noch in diesem Jahr verfügbaren Reporting Services für die Express-Edition.

Werden alle bisherigen Erkenntnisse berücksichtigt, zeichnet sich ab, dass die Express-Edition nicht nur für den Hobby-Anwender/Entwickler sinnvoll ist, sondern dass auch im Firmen-Umfeld die Express-Edition ein idealer lokaler Ablageplatz für die Daten ist, auf die unabhängig von der verfügbaren Netzwerkbandbreite sehr schnell zugegriffen werden muss.

Andreas Kosch ist Buchautor und regelmäßiger Autor im dotnet Magazin. Er ist Speaker der BASTA und der dot.net-Konferenz. Seine Schwerpunkte liegen im Bereich Client/Server- und Three Thier-Anwendungen. Sein Weg führte über Delphi zu .NET, seine bevorzugten Sprachen sind Delphi und C#.
Unsere Redaktion empfiehlt:

Relevante Beiträge

Meinungen zu diesem Beitrag

X
- Gib Deinen Standort ein -
- or -