Die MSDE (MicroSoft Data Engine)

Armin Kast

Eine kurze Vorstellung der MSDE

Die MSDE

Die MSDE ( MicroSoft Data Engine ) ist eine Serverkomponente des SQL Servers welche im wesentlichen die relationale SQL Engine sowie die Speicher-Engine beinhaltet. Die MSDE bringt keine visuellen Werkzeuge mit. Es wird erwartet, dass Objekte mit visuellen Werkzeugen aus Produkten wie Visual Studio 6 oder der Office Premium bzw. des Office Developer Kit erstellt und verwaltet werden. Es kann jedoch der Client des SQL-Servers installiert werden um so nachträglich die visuellen Werkzeuge zu ergänzen. Die MSDE ist begrenzt auf Datenbanken von max. 2 GByte und kann max. 5 Verbindungen/Anwender bedienen. Alle diejenigen, welche eines der nachfolgenden Produkte erworben haben:

  • Visual Studio 6.0
    Professional oder Enterprise Edition
  • Visual Basic® 6.0
    Professional oder Enterprise Edition
  • Visual C++® 6.0
    Professional oder Enterprise Edition
  • Visual InterDev 6.0
    Professional Edition
  • Visual J++ 6.0
    Professional Edition
  • Visual FoxPro 6.0
    Professional Edition

können die MSDE kostenfrei an Endkunden weitergeben. Dies bietet dem VFP Programmierer ungeahnte Möglichkeiten. Somit ist es möglich einem Kunden die komplette Funktionalität ( mit den zuvor genannten Einschränkungen ) des SQL-Servers 7 unter Windows® 95, 98, NT4(ab ServicePack4) oder 2000 zu bieten.

Die Installation

Die Installation ist recht einfach da die gelieferte MSDE-Version per "Unattended-Setup" durchgeführt wird. Wer Einfluß auf die Installation nehmen will, muß die entpackte Setupdatei im Tempverzeichnis abfangen und in eine neues Verzeichnis kopieren um dort die "ISS" Datei zu ändern in welcher die Installationsparameter stehen.

Wichtige Sektionen sind:

    [SetupTypeSQL-0]
    szDir= C:\MSSQL7
    szDataDir= C:\MSSQL7
    Hier werden die Zielpfade für die Engine (szDir) sowie der Daten (szDataDir) festgelegt.
    [DlgCpSortUnicode-0]
    SortId=52
    LCID=1033
    CompStyle=196609
    Result=1
    Mit SortId=52 wird die Sortierreihenfolge Codepage 1252  eingestellt .

Nach der Installation steht der Dienstmanager der MSDE zur Verfügung welcher in der Taskleiste den Status der SQL Engine anzeigt. Mittels des Dienstmanagers werden folgende Dienste gesteuert:

  • MSSQLServer
  • Distributed Transaction Coordinator
  • SQLServerAgent

Die MSDE wird, wenn keine visuellen Werkzeuge zur Verfügung stehen, mit dem Dienstprogramm OSQL gesteuert. OSQL ermöglicht es Transact-SQL-Anweisungen zu verarbeiten. Dieses Dienstprogramm verwendet ODBC um Daten mit der MSDE auszutauschen. Hierüber können einfache bis zu komplexen SQL-Konstrukte an die MSDE gesendet werden.

Anlegen einer Datenbank

Im nachfolgenden Beispiel legen wir eine Datenbank mit dem Namen TESTDB an. Hierzu verwenden wir einen beliebigen Editor um eine Textdatei "CREATEDB.SQL" mit unten aufgeführtem Inhalt zu erstellen.

Diese Datei wird dann mittels OSQL an die MSDE gesandt.

OSQL -E -i createdb.sql -o ergebnis.txt

Nachdem OSQL die Befehle verarbeitet hat kann in der Datei ergebnis.txt das Rückgabeergebnis eingesehen werden. An dieser Stelle möchte ich auf die Artikel über C/S-Entwicklung ( 03-02, 03-03, 03-04, 03-05 sowie 03-06 ) von Arturo Devigus aus der FoxX Professional Erstausgabe verweisen, in welchen Begriffe wie die Datenmodellierung, Constraints, Rules, Trigger sowie Transaktionen hinreichend beschrieben sind. Hier soll die MSDE ein wenig durchleuchtet werden und nicht gute Artikel nochmals aufgewärmt werden. In gleicher Weise wie die Datenbank erstellt wurde können auch Scripte zur Erstellung von Tabellen zum SQL Server gesandt werden. Auch kann nach dem erstellen der Datenbank der "Upsizewizard" von VFP verwendet werden um eine vorhandene Datenbank zum SQL Server zu portieren.

Syntax von OSQL:

OSQL -U Benutzername [-e] [-E] [-p] [-n] [-d Datenbanknamen verwenden] [-Q "Befehlszeilenabfrage" und beenden] [-q "Befehlszeilenabfrage"][-c Befehlsende] [-h Header] [-w Spaltenbreite] [-s Spaltentrennzeichen] [-t Abfragetimeout] [-m Fehlerebene] [-I] [-L] [-?] [-r {0 | 1}] [-H Hostname] [-P Kennwort] [-R] [-S Server] [-i Eingabedatei] [-o Ausgabedatei] [-u] [-a Paketgröße] [-b] [-O] [-l Anmeldungstimeout]

Testen der Installation OSQL -E -q "SELECT @@VERSION" -o ergebnis.txt

Das Ergebnis steht in der Ausgabedatei. Je nach installiertem SQL- Servicepack und verwendetem Betriebssystem erscheint die nachstehende Meldung:

Microsoft SQL Server 7.00 - 7.00.961 (Intel X86)

    Oct 24 2000 18:39:12
    Copyright (c) 1988-1998 Microsoft Corporation
    MSDE on Windows NT 5.0 (Build 2195: Service Pack 1)

SQL-Datei CREATEDB.SQL

USE MASTER

GO

 

CREATE DATABASE testdb                                                 Anlegen der Datenbank TESTDB

ON                                                                        

( NAME = test_data,                                                               Im Verzeichnis C:\MSSQL7\DATA wird die Datendatei test_data.mdf

  FILENAME=C:\MSSQL7\DATA\test_data.mdf',                     mit einer Basisgröße von 2 MByte angelegt. Diese Datei vergrößert sich

  SIZE = 2MB,                                                                        automatisch um 1 MByte insofern der Speicherplatz in der Datei nicht mehr

  MAXSIZE = 10MB,                                                                    ausreichen sollte. Die Datendatei kann eine maximale Größe von 10 MByte

  FILEGROWTH = 1MB )                                                     erreichen.

LOG ON

( NAME = test_log,                                                                Im Verzeichnis C:\MSSQL7\DATA wird die Logdatei test_log.ldf

  FILENAME = 'C:\MSSSQL7\DATA\test_log.ldf',                           mit einer Basisgröße von 2 MByte angelegt. Diese Datei vergrößert sich

  SIZE = 1MB,                                                                        automatisch um 1 MByte insofern der Speicherplatz in der Datei nicht mehr

  MAXSIZE = 2MB,                                                                              ausreichen sollte. Die Datendatei kann eine maximale Größe von 10 MByte

  FILEGROWTH = 1MB )                                                     erreichen. GO

WINDOWS Betriebsysteme

Es gibt wesentliche Unterschiede in den einzelnen Windows Betriebssystemen zu beachten. So läuft die MSDE unter Windows® NT4 (SP4 und höher) und Windows® 2000 als Dienst und kann mittels "vertrauten Verbindungen" als auch "Server-Login" angesprochen werden, wogegen die MSDE unter Windows® 95 und 98 als Applikation läuft und nur die Verbindungsart "Standard- Login" unterstützt.

Unter Microsoft Windows NT® wird Microsoft® SQL Server™ als Dienst mit dem Namen MSSQLServer ausgeführt.

Unter Microsoft Windows® 95/98 wird SQL Server nicht als Dienst ausgeführt, da das Betriebssystem keine Dienste unterstützt. Statt dessen simuliert SQL Server die Dienste MSSQLServer und SQLServerAgent. Für diese simulierten Dienste brauchen keine Benutzerkonten erstellt zu werden.

Dies hat eine große Bedeutung für die ODBC-Verbindung zum SQL Server ( MSDE ) da auf die Verbindungsart, bei den unterschiedlichen Betriebssystemen, geachtet werden muß. Bei den vertrauten Verbindungen wird mit den Konteninformationen der Windows NT/2000 Anmeldung des Benutzers zum SQL-Server verbunden. Dieser braucht keine weiteren Eingaben zu tätigen, da der SQL- Server die Authentifizierung selbst vornimmt. Beim Server-Login hingegen muss der Benutzer sich mittels Anmeldenamen und Benutzerpaßwort am SQL Server authentifizieren. Der Entwickler sollte sich im Vorfeld einer Programmierung schon seine Gedanken über diese Tatsachen machen.

ServicePacks

Alle vorhandenen Servicepacks, bisher gibt es drei, für SQL Server 7 gelten auch für die MSDE. Natürlich muß nicht jedes Servicepack installiert werden, sondern immer nur das aktuellste da dieses die vorangegangenen beinhaltet.

Funktionalität

Die Funktionalität der MSDE ist die gleiche wie die des großen Bruders SQL-Server 7 da die MSDE im wesentlichen die relationale SQL Engine sowie die Speicher-Engine beinhaltet. Auf die Einschränkungen wurde zuvor schon eingegangen. Die MSDE kann mit den geeigneten visuellen Werkzeugen in gleicher Weise wie der SQL-Server 7 administriert werden. Geeignete Onlinehandbücher findet man z.B. in diversen Büchern der MS-Press Reihe ( siehe Literatur / Buchempfehlungen ) die über den SQL Server 7 veröffentlicht wurden. Bei den meisten ist auch eine 120 Tage Testversion beigefügt, welche auch den geeigneten Client enthält.

Visuelle Werkzeuge

Empfehlenswert und auch kostenlos ist ein Werkzeug Namens "WinSQL" welches unter http://www.indus-soft.com/winsql downgeloaded werden kann. Hiermit ist man in der Lage via ODBC-Datenquellen in die verschiedensten SQL-Servern hinein zu schnuppern und sich die Informationen wie Tabellenstrukturen, Views, etc. Anzeigen zu lassen. Diese Gratissoftware mit Syntax-colorierung im SQL-Abfrageteil eignet sich hevorragend zum Testen von SQL-Abfragen. Ebenso lassen sich hiermit Tabellen designen und auf dem SQL-Server anlegen.

Literatur

Inside Microsoft SQL Server 7.0 , ISBN3-86063-476-3
Microsoft SQL Server 7.0 Systemverwaltung ISBN3-86063-264-7
Microsoft SQL Server 7.0 Datenbankimplementierung ISBN3-86063-271-X
Transact-SQL Sprachverzeichnis ISBN3-86063-904-8