Microsoft SQL Server

Der MS SQL Server 6.5 kombiniert die Vorzüge der traditionellen Datenverarbeitung auf dem Großrechner, zentrale Datensicherheit, Datenintegrität und Kontrolle, mit den Vorteilen des heutigen PC: Einfach zu benutzen, ansprechende Benutzeroberflächen und eine große Auswahl an Standardsoftware. Er ermöglicht den Informationsaustausch zwischen verschiedenen Anwendungen und versetzt damit den Entwickler in die Lage, das beste Werkzeug für seine jeweilige Aufgabe auszuwählen. Der SQL Server arbeitet sehr effizient in Netzwerken, da alle Datenbankabfragen auf einem zentralen Server ablaufen; der Datenverkehr im Netzwerk ist reduziert.

MS SQL Server vereinigt eine ganze Reihe von erstklassigen Eigenschaften für verteilte Client/Server-Systeme.

Die Anwender des SQL Server sehen die Vorteile besonders auf folgenden Gebieten:

  • Zuverlässige Verteilung der Daten und Transaktionen
  • Zentrale Kontrolle verteilter Server
  • Sehr hohe Geschwindigkeit und Skalierbarkeit
  • Verarbeitung sehr großer Datenbanken
  • Volle Programmierbarkeit und Unterstützung von Standards
  • Gute Desktop-Integration
  • Offene Interoperabilität

Der SQL Enterprise Manager ist ein visuelles Windows-basiertes Werkzeug, mit dem der Administrator alle SQL Server einer Firma von einem zentralen Punkt unter Windows NT® oder Windows 95 aus kontrollieren kann. Er vereinfacht komplexe Aufgaben des Administrators, wie die Bereitstellung von Speicherplatz, und erlaubt die Datenbankverwaltung mittels einer grafischen, Windows-basierten Benutzeroberfläche. Der SQL Enterprise Manager erlaubt das grafische Management von Datenbankobjekten, wie Tabellen, Views, gespeicherten Prozeduren und Triggern. Mit Hilfe einer Visual Basic-basierten Scriptsprache können diese Fähigkeiten auch um die Möglichkeit erweitert werden, Remote-Operationen zu automatisieren. Andere grafische Hilfsmittel erlauben das Management der Datensicherheit und der Konfiguration der Clients.

Die Administration des SQL Servers basiert auf einer offenen Automation Architektur, SQL Distributed Management Objects (SQL-DMO) genannt. Dadurch wird sie erweiterbar mit Hilfe einer breitgefächerten Anzahl von Werkzeugen, die Automation Server kontrollieren können.

Anders als Datenbankserver, die nur auf einem einzelnen Betriebssystem laufen oder nur bestimmte Netzwerkprotokolle unterstützen, ist der SQL Server netzwerkunabhängig. Da der SQL Server auf offenen Industriestandards aufsetzt, kann er auf den meisten verbreiteten Netzwerken eingesetzt werden, darunter der IBM LAN Server, der MS LAN Manager, Novell NetWare, Banyan VINES, DEC PATHWORKS, Apple® AppleTalk und Windows NT Server-basierten Netzwerken.

Die Transact SQL-Sprache des SQL Server ist kompatibel mit dem Industriestandard Data Access Language. Transact SQL enthält wichtige Erweiterungen, die notwendig sind, unternehmenskritische Applikationen zu unterstützen, z. B. gespeicherte Prozeduren oder Trigger. Die Cursor-Unterstützung des SQL Server vereinfacht die Entwicklung der Anzeige umfangreicher Daten durch Vorwärts- und Rückwärts blättern und flexible Transaktionskontrolle.

Die Konsistenz und Wiederherstellbarkeit einer Datenbank sind auch im Falle eines Systemabsturzes garantiert, sogar wenn Systemabstürze passieren, während mehrere Anwender ihre Änderungen speichern. Der SQL Server behandelt alle Änderungen an der Datenbank innerhalb einer Transaktion als eine Arbeitseinheit. Präziser: Entweder eine Transaktion wird vollständig in der Datenbank gespeichert und alle daraus resultierenden Änderungen stehen in der Datenbank, oder die gesamte Transaktion und alle Änderungen in der Datenbank werden rückgängig gemacht.

Transaktionsverarbeitung ist eine wichtige Anforderung an ein System, das für unternehmenskritische Applikationen, z. B. Buchhaltung, Lagerverwaltung und Auftragserfassung, entwickelt wurde. Mit Hilfe eines Zwei-Phasen-Protokolls unterstützt der SQL Server sogar synchronisierte Transaktionen, die auf mehrere Server zugreifen. Damit wird gewährleistet, daß sich alle Server eines Netzwerks in einem konsistenten Zustand befinden.

Ein anderer Punkt der SQL Server-Transaktionsverarbeitung sind die Sperren. SQL Server sperrt dynamisch, eine Methode, bei der verschiedene Anwender sich nicht gegenseitig stören, wenn sie Abfragen und Änderungen der Daten vornehmen. Sperren auf Blockebene sind die Voreinstellung; seit der Version 6.5 kann aber auch satzweise gesperrt werden.

Sperren sind beim SQL Server implizit; der Programmierer braucht sich darum keine Gedanken zu machen. Der Prozeß, einen Datensatz zu sperren, ist außergewöhnlich schnell; es handelt sich hier um Mikrosekunden, bis die Information in einer speicherresidenten Tabelle gespeichert ist. Es gibt mehrere Grade der Sperren; der SQL Server nimmt jeweils den niedrigsten Grad, der noch ausreicht, die Operation zu unterstützen.

Der SQL Server gewährleistet die Datenintegrität von der Server-Seite her, und komplexe Geschäftsregeln können in der Datenbank zentral gespeichert werden, so daß sie allen Applikationen einheitlich zur Verfügung stehen. Der SQL Server 6.5 bietet referentielle Integrität gemäß dem American National Standards Institute (ANSI-Standard) und darüber hinaus erweiterte Möglichkeiten, mit denen sich die Datenintegrität gewährleisten läßt, z. B. Geschäftsregeln, Vorbelegungen von Feldern mit Werten, gespeicherte Prozeduren, Trigger und durch den Benutzer definierte Datentypen.

Der SQL Server ermöglicht vorkompilierte SQL-Routinen, die in der Datenbank gespeichert werden. Dieses Vorgehen bringt in manchen Fällen Geschwindigkeitsvorteile von bis zu 80 Prozent bei der Ausführung von Abfragen. Gespeicherte Prozeduren können auch dazu dienen, Teile der Anwendungslogik in der Datenbank zu zentralisieren. Dadurch kann der Entwickler komplexe Abfragen oder Manipulationen der Daten in einfachen Prozeduraufrufen verpacken. Da den gespeicherten Prozeduren auch Parameter übergeben werden können, kann ihr Verhalten sehr flexibel gestaltet werden. Gespeicherte Prozeduren können in einer Datenbank entwickelt und in einer anderen wieder eingesetzt werden. Dadurch wird die Anwendungsentwicklung sehr erleichtert.

Die gespeicherten Prozeduren des SQL Servers können Routinen aus externen DLLs aufrufen, die in C entwickelt wurden. Die Version 6.5 führt gespeicherte OLE-Automation-Funktionen ein, die es dem Entwickler ermöglichen, den SQL Server mit jeder OLE-Automation-kompatiblen Entwicklungsumgebung zu erweitern.

Trigger verhindern unkorrekte, unautorisierte und nicht-konsistente Änderungen der Daten. Trigger sind eine spezielle Form der gespeicherten Prozeduren, die automatisch vom SQL Server gestartet werden, wenn versucht wird, die dazugehörigen Daten zu ändern. Trigger sind unglaublich mächtig. Sie erlauben dem Entwickler, die Integrität der Daten zu gewährleisten und Geschäftsregeln auf dem Server zu zentralisieren. Daher braucht diese Logik nicht in den einzelnen Applikationen, die auf die Datenbank zugreifen, implementiert zu werden. Einige Beispiele:

  • Es werden keine neuen Bestellungen eines Kunden akzeptiert, wenn er noch Rechnungen offen hat
  • Automatische Anpassung der Kosten eines Produkts, wenn sich der Preis einer Komponente des Produkts ändert
  • Abweisung einer Eingabe, wenn dabei ein Kreditlimit um mehr als 25 Prozent überschritten wird

Trigger sind ein wichtiges Feature in einem Datenbank-Management-System (DBMS); der SQL Server ist ein gutes Beispiel, wie die Trigger als zentrales Werkzeug verstanden werden können.

Regeln sind ein anderes wichtiges Werkzeug des SQL Servers, mit dem die Gültigkeit von Daten auf Feldebene sichergestellt wird. In Regeln kann festgelegt werden, daß der Eingabewert in einen bestimmten Bereich liegt, in einer Liste enthalten ist oder auch einem String entspricht. Eine Datenbank, die als Beispiel die Mitglieder eines Seniorenclubs enthält, könnte die Regel haben, daß das Alter der Mitglieder zwischen 65 und 120 Jahren liegen muß.

Mit Hilfe von Vorgabewerten füllt der SQL Server Felder mit bestimmten Standardwerten auf, wenn der Anwender dies nicht tut. Das Feld "Ort" könnte z. B. automatisch mit "Essen" aufgefüllt werden, wenn eine Firma ihre Geschäfte hauptsächlich in Essen tätigt.

Der SQL Server erlaubt es Entwicklern, ihre eigenen Datentypen zu erstellen, um die Datentypen des SQL Servers zu ergänzen. Der Vorteil von anwenderdefinierten Datentypen besteht darin, daß Regeln und Vorgabewerte mit ihnen verbunden werden können, so daß sie in verschiedenen Tabellen genutzt werden oder an spezielle Anforderungen angepaßt werden können. Zum Beispiel kann der Datentyp Vorwahl als sechs Zeichen lang definiert sein und erfordern, daß die Eingabe in einer Liste sämtlicher Vorwahlen enthalten ist. Dieses Vorgehen wird automatisch immer angewendet, wenn der Datentyp "vorwahl" in irgendeiner Tabelle eingesetzt wird.

Der SQL Server enthält eine Datenreplikation, die eine zuverlässige, sehr schnelle unternehmensweite Verteilung der Daten unter Beachtung der Transaktionen gewährleistet. Mit einer Drag-and-Drop-Benutzerschnittstelle ist die Datenreplikation einfacher und flexibler als bei anderen Datenbanksystemen zu bedienen. Durch die Unterstützung log-basierter Replikation und Point-in-Time-Synchronisation bietet der SQL Server eine Auswahl verschiedener Replikations-Strategien. Der SQL Server bietet in Windows NT integrierte verteilte Sicherheitsfunktionen mit einer zentralen Paßwortkontrolle auf Domain-Ebene und neuen Verschlüsselungstechniken für Anmeldungen. Auch replizierte Daten können verschlüsselt über das Netz verschickt werden.

Der SQL Server 6.5 verfügt über neue Online Analytical Processing (OLAP) Abfrage-Operatoren, CUBE und ROLLUP, die ein mehrdimensionales Ergebnis auf eine einzelne Abfrage liefern und damit die Wiedergewinnung von Informationen für analytische Aufgaben erleichtern. Eine neue Data Pipe-Funktionalität ermöglicht es INSERT ... EXEC-Kommandos dem SQL Server, Daten von anderen SQL Servern zu sammeln und Datenquellen zur Weiterverwendung in einem Data Warehouse zusammenzuziehen.

Der MS SQL Server bietet eine hohe Geschwindigkeit in einem Client/Server-DBMS. Herkömmliche Datenbank-Managementsysteme (DBMS) verwalten Zugriffe von Anwendern, die gleichzeitig auf das System zugreifen, auf zwei grundlegende Arten: Erstellung eines eigenen Prozesses für jeden Anwender oder durch die Verwendung eines einzigen Prozesses für alle Abfragen der Anwender. Im zweiten Fall werden die Abfragen hintereinander statt parallel abgearbeitet. Der SQL Server ist für Windows NT optimiert und benutzt mehrere Threads in einem einzelnen Prozeß, um die Abfragen der Anwender zu verwalten. Dadurch können die Abfragen parallel abgearbeitet werden, ohne dafür zusätzlichen Arbeitsspeicher zu reservieren. Diese Architektur ist sehr effizient; der SQL Server benötigt lediglich 40 KB Arbeitsspeicher je zusätzlichen Anwender, verglichen mit 400 KB oder mehr, die andere Datenbankserver benötigen. Der hauptsächliche Vorteil des Multithread-Designs des SQL Servers ist der hohe Datendurchsatz. Der SQL Server wird nicht langsam, wenn viele Anwender an das Netzwerk angemeldet sind.

Der SQL Server verhindert kostenträchtige Arbeitsunterbrechungen, die durch Verwaltungsaufgaben wie die Datensicherung entstehen. Nichts widerspricht der Produktivität mehr als häufige Nichtverfügbarkeit der Netzwerkressourcen. Das dynamische Backup des SQL Servers ermöglicht es dem Administrator, eine Datensicherung vorzunehmen, während Anwender aktiv mit der Datenbank arbeiten; ein fundamentales Erfordernis für unternehmenskritische Anwendungen.

Im Falle eines Systemausfalls (Absturz des Betriebssystems, Stromausfall usw.) stellt der SQL Server die Konsistenz der Datenbanken automatisch wieder her, ohne daß der Administrator eingreifen muß.

Die ständige Verfügbarkeit des SQL Server ermöglicht es dem Administrator, Änderungen am Datenbankdesign vorzunehmen oder Diagnoseprogramme laufen zu lassen, während das System online ist. Neue Features im SQL Server 6.5 ermöglichen das Backup und das Zurückschreiben einzelner Tabellen, erleichtern die Wiederherstellung nach Systemausfällen, und Point-in-Time-Recovery ermöglicht die Wiederherstellung der Datenbank in den Zustand, in dem sie sich zu einem bestimmten Zeitpunkt befunden hat. Außerdem unterstützt der SQL Server 6.5 auch den Online Recovery Server von Compaq.

Die Plattenspiegelung des SQL Servers stellt eine fehlertolerante Operation dar, die die Erfordernisse unternehmenskritischer Applikationen erfüllt. Durch das Design des SQL Servers, das ständige Verfügbarkeit bietet, kann jedes Laufwerk während des Betriebs der Datenbank gespiegelt oder zurückgeschrieben werden, und im Falle eines Laufwerkschadens wird mit einem anderen Laufwerk weitergearbeitet. Die Plattenspiegelung des SQL Servers erlaubt es dem Administrator, eine fein abgestufte, fehlertolerante Umgebung (z. B. nur Spiegelung der Transaktionen) zu schaffen. Der MS SQL Server unterstützt auch Windows NT Server RAID 5 und hardwaremäßige Spiegelung.

Der SQL Server unterstützt den Schutz sensibler Daten. Er regelt weitestgehend die Zugriffsrechte der Anwender auf Tabellen, Views, gespeicherte Prozeduren und SQL-Kommandos. Außerdem unterstützt er Sicherheitsfunktionen auf Feldebene. Da Zugriffsrechte nicht nur an Anwender, sondern auch an Gruppen vergeben werden können, sind Sicherheitsfunktionen einfach einzurichten und zu verwalten. Da die Sicherheitsfunktionen zentral auf dem SQL Server verwaltet werden, brauchen sie nicht in den Client-Applikationen implementiert zu werden.

Der SQL Server ist auch in die Sicherheitsfunktionen von Windows NT integriert und ermöglicht so ein einmaliges Einloggen sowohl in das Netzwerk als auch in die Datenbank. Neue Verschlüsselungstechniken ermöglichen einen verschlüsselten Datenverkehr zwischen Clients und Server; dadurch wird ein hohes Sicherheitsniveau erreicht.

Der SQL Server bietet offene (dokumentierte und veröffentlichte) Application Programming Interfaces (APIs), DB Library und ODBC; dadurch kann jeder Softwareentwickler Clients-Applikationen für den SQL Server erstellen. Hunderte von verfügbaren Applikationen, Werkzeugen und Branchenlösungen arbeiten bereits mit dem SQL Server zusammen. Microsoft wird sich auch in Zukunft bemühen, die Schnittstellen weiter zu verbessern, um die Bedürfnisse seiner Kunden zu befriedigen.

Der SQL Server unterstützt die Datentypen TEXT und IMAGE, mit einer Größenbeschränkung auf 2 GB pro Feld. Das macht den SQL Server zu einer idealen Plattform für das Dokumenten- und Bildmanagement. Diese Felder sind auch gut für die Aufnahme von Web-Inhalten einsetzbar. Das verteilte Datenmanagement des SQL Servers ermöglicht es Workstations, auf verschiedene SQL Server gleichzeitig zuzugreifen und dort Transaktionen auszuführen. Der SQL Server erlaubt die Erstellung einer einzelnen verteilten Transaktion, die Daten auf verschiedenen Servern ändert und dabei die Datenintegrität und -konsistenz gewährleistet. Sollte die Workstation oder ein Server während der Transaktion ausfallen, wird die Transaktion auf den anderen Servern zurückgefahren.

Durch den Distributed Transaction Coordinator (DTC), eine neue Komponente des SQL Server 6.5, wird dieser Prozeß für die Applikation transparent. DTC unterstützt verbreitete Programmier-Schnittstellen wie ODBC, DB Library, Transact SQL, Extended Architecture (XA) und OLE-Transaktionen.

Eine andere wichtige Komponente des SQL Server ist der Technische Support. Microsoft bietet Supportverträge mit unlimitierter Rund-um-die-Uhr-Unterstützung. Support für unternehmenskritische Anwendungen beinhaltet: Sofortige Reaktion, wenn der Server nicht läuft; Ferndiagnosen; Bugfixes und Service-Packs; detaillierte Buglisten und Online-Service.