SQL Server 2005 Eine umfassende Einführung
E-Mail: petkovic@fh-rosenheim.de Lektorat: Barbara Lauer, Bonn Copy-Editing: Sandra Gottmann, Münster Satz: Just in Print, Bonn Herstellung: Birgit Bäuerlein Umschlaggestaltung: Helmut Kraus, www.exclam.de Druck und Bindung: Koninklijke Wöhrmann B.V., Zutphen, Niederlande Bibliografische Information Der Deutschen Bibliothek Die Deutsche Bibliothek verzeichnet diese Publikation in der Deutschen Nationalbibliografie; detaillierte bibliografische Daten sind im Internet über <http://dnb.ddb.de> abrufbar. ISBN 3-89864-367-0 1. Auflage 2006 Copyright 2006 dpunkt.verlag GmbH Ringstraße 19B D-69115 Heidelberg Die vorliegende Publikation ist urheberrechtlich geschützt. Alle Rechte vorbehalten. Die Verwendung der Texte und Abbildungen, auch auszugsweise, ist ohne die schriftliche Zustimmung des Verlags urheberrechtswidrig und daher strafbar. Dies gilt insbesondere für die Vervielfältigung, Übersetzung oder die Verwendung in elektronischen Systemen. Es wird darauf hingewiesen, dass die im Buch verwendeten Soft- und Hardware-Bezeichnungen sowie Markennamen und Produktbezeichnungen der jeweiligen Firmen im Allgemeinen warenzeichen-, marken- oder patentrechtlichem Schutz unterliegen. Alle Angaben und Programme in diesem Buch wurden mit größter Sorgfalt kontrolliert. Weder Autor noch Verlag können jedoch für Schäden haftbar gemacht werden, die in Zusammenhang mit der Verwendung dieses Buches stehen. 5 4 3 2 1 0
v Vorwort Relationale Datenbanksysteme sind seit Jahren mit Abstand die wichtigsten Datenbanksysteme. Die Gründe dafür sind mannigfaltig: die hohe Portierbarkeit der Anwendungen, die Verwendung der Standarddatenbanksprache SQL usw. Eines der herausragendsten relationalen Datenbanksysteme heutzutage stellt SQL Server der Firma Microsoft dar. Das SQL Server-System gilt als am weitesten entwickeltes relationales Datenbanksystem in Bezug auf mindestens drei Bereiche: die benutzerfreundlichen grafischen Schnittstellen die optimale Unterstützung der Rechner mit eng gekoppelten Prozessoren die Unterstützung von sehr großen Datenbanken Dieses Buch führt den Leser in das komplette SQL Server 2005-System ein. Im Unterschied zu der SQL Server-Onlinedokumentation, die sehr umfangreich und dadurch für den Benutzer manchmal unübersichtlich ist, versucht dieses Buch dem Leser sowohl beim Erlernen der verschiedenen SQL Server-Komponenten behilflich zu sein als auch die Zusammenhänge zwischen diesen Komponenten verständlich zu machen. Folgende Komponenten des SQL Server 2005-Systems werden in diesem Buch ausführlich beschrieben: der relationale Datenbankserver (im Hauptteil des Buches) Analysis Services (in den Kapiteln 26 und 27) Reporting Services (in Kapitel 28) die XML-Komponente (in den Kapiteln 29 und 30) der Volltextsuchdienst (in Kapitel 31) In Bezug auf den relationalen Datenbankserver berücksichtigt das Buch auch, dass es zwei unterschiedliche Gruppen von Benutzern gibt: auf der einen Seite Endbenutzer und Datenbankprogrammierer, auf der anderen die Systemadministratoren. Dementsprechend ist das Buch, das insgesamt aus 31 Kapiteln besteht, in fünf Teile untergliedert. Der erste Teil Kapitel 1 und 2 erläutert die Grundbegriffe des Systems, bietet eine allgemeine Einführung in Datenbanken und SQL und ist für alle
vi Vorwort Benutzer des relationalen Datenbankservers gedacht. Zusätzlich enthält dieser Teil auch eine Einführung in die wichtigste grafische Komponente des Systems namens SQL Server Management Studio. Der zweite Teil Kapitel 3 bis 15 ist den Endbenutzern und den Datenbankprogrammierern gewidmet. Hier wird, in insgesamt vier Unterteilen, die Transact-SQL-Sprache erörtert. Kapitel 3 beschreibt deren Grundelemente, die Kapitel 4 bis 8 alle Datendefinitions- und Datenmanipulationsanweisungen sowie die prozeduralen Erweiterungen von Transact-SQL. Kapitel 9 bis 14 enthalten allgemeine Datenbankkonzepte: Kapitel 9 Indizes, Kapitel 10 Sichten, Kapitel 11 den Systemkatalog, Kapitel 12 die Datensicherheit, Kapitel 13 Trigger und Kapitel 14 Transaktionen. Schließlich beinhaltet Kapitel 15 die Beschreibung der Systemumgebung des relationalen Datenbankservers. Der dritte Teil Kapitel 16 bis 25 erläutert alle Aufgaben, die ein Systemadministrator des relationalen Datenbanksystems durchzuführen hat. Kapitel 16 stellt eine Einführung in diesen Teil des Buches dar, während die nachfolgenden Kapitel folgende Themen behandeln: Systeminstallation (Kapitel 17) Verwalten der Systemressourcen (Kapitel 18) Benutzerverwaltung (Kapitel 19) Archivierung und Wiederherstellung von Datenbanken (Kapitel 20) automatische Ausführung der Administrationsaufgaben (Kapitel 21) Performance und Tuning des Systems (Kapitel 22) Tabellenpartitionierung (Kapitel 23) Datenreplikation (Kapitel 24) Der vorletzte Teil des Buches Kapitel 25 bis 28 erläutert die Business Intelligence-Komponenten des Systems. Nach einer allgemeinen Einführung zu Data Warehousing in Kapitel 25 wird die wichtigste Business Intelligence-Komponente des Systems, MS Analysis Services, in Kapitel 26 beschrieben. Die nachfolgenden beiden Kapitel erläutern zwei verschiedene Möglichkeiten, wie auf Daten eines BI-Systems zugegriffen werden kann: mit Hilfe von Datenanalyse und Berichten. Dementsprechend behandelt Kapitel 27 SQL/OLAP und Kapitel 28 die Reporting Services-Komponente. Der letzte Teil des Buches beschreibt die Unterstützung von XML (Kapitel 29 und 30) und die Volltextindizierung mit Hilfe des MS Search-Dienstes (Kapitel 31). Das Buch wendet sich an Endbenutzer, Datenbankprogrammierer und Systemadministratoren des SQL Server-Systems sowie an alle, die dieses System erlernen wollen. Vom Leser werden keine tieferen EDV-Kenntnisse erwartet. Kenntnisse einer Programmiersprache sind nicht Voraussetzung, können aber hilfreich sein.
SQL Server 2005: Neue Funktionen vii Gedacht ist es als praktisches Lehrbuch. Diesem Ziel dienen zahlreiche Beispiele, die alle auf einer sehr kleinen Beispieldatenbank basieren. Dem Leser wird empfohlen, die Beispieldatenbank mit dem zur Verfügung stehenden SQL Server- System zu erstellen und alle angegebenen Beispiele nachzuvollziehen. Dasselbe gilt für die Übungsaufgaben, die sich am Ende fast jedes Kapitels befinden. Die zip-datei, die alle Beispiele des Buches, die Datei für die Erstellung der Beispieldatenbank sowie Lösungen der Übungsaufgaben enthält, befindet sich auf meiner Internet-Seite: www.fh-rosenheim.de/~petkovic. SQL Server 2005: Neue Funktionen Für die Leser, die das SQL Server 2000-System kennen und deswegen nur die Neuerungen im System in Bezug auf SQL Server 2005 kennen lernen wollen, geben wir eine Übersicht über alle SQL Server 2005 spezifischen Themen, die in diesem Buch ausführlich beschrieben sind. Die folgende Tabelle zeigt alle Kapitel, die signifikante Neuerungen in Bezug auf SQL Server 2005 enthalten. Neben diesen signifikanten Erweiterungen enthält praktisch jedes Kapitel die Beschreibung vieler kleineren Neuerungen und Änderungen der neuen SQL Server-Version. Kapitel 2 Kapitel 6 Kapitel 8 Kapitel 11 Kapitel 12 Kapitel 13 Dieses Kapitel beschreibt ausführlich die wichtigste grafische Komponente des Systems: SQL Server Management Studio. (Diese Komponente ersetzt zwei andere Komponenten von SQL Server 2000: Enterprise Manager und Query Analyzer.) Eine der wichtigsten Erweiterungen der Transact-SQL-Sprache, die Common Table Expressions (CTE), wird in Abschnitt 6.5 dargestellt. Die früheren Versionen des Systems erlauben den Benutzern nur die Transact- SQL-Sprache für die Implementierung von gespeicherten Prozeduren und benutzerdefinierten Funktionen zu verwenden. SQL Server 2005 unterstützt Common Language Runtime (CLR), welche die Implementierung von o.g. Datenbankobjekten mit Hilfe von C# und Visual Basic ermöglicht. Abschnitt 8.2.3 behandelt gespeicherte Prozeduren und CLR, während Abschnitt 8.3.2 benutzerdefinierte Funktionen und CLR erläutert. Eine weitere wichtige Neuerung Ausnahmebehandlung ist in Abschnitt 8.1.6 ausführlich beschrieben. SQL Server 2005 erlaubt den Benutzern ausschließlich Sichten für den Zugriff auf den Systemkatalog zu benutzen. Diese Sichten werden in Abschnitt 11.2 (Katalogsichten) und Abschnitt 11.3.1 (Kompatibilitätssichten) behandelt. Das Sicherheitskonzept von SQL Server 2005 unterscheidet sich von dem der vorherigen Versionen. Alles, was in Zusammenhang mit dem neuen Sicherheitskonzept steht, ist in diesem Kapitel beschrieben. Dieses Kapitel erläutert die Implementierung von Triggern mit Hilfe von CLR- Sprachen (Abschnitt 13.3) und DDL-Triggern (Abschnitt 13.2.5).
viii Vorwort Kapitel 14 Kapitel 15 Kapitel 17 Kapitel 20 Kapitel 22 Kapitel 23 Kapitel 26 Kapitel 27 Kapitel 28 Kapitel 29 Kapitel 30 SQL Server 2005 unterstützt zwei weitere Isolierungsstufen, die in Abschnitt 14.3.5 dargestellt werden. Änderungen bezüglich des bcp-kommandos sind in Abschnitt 15.3.2 zu finden. Die neuen Installationskomponenten, wie Upgrade Advisor, werden in diesem Kapitel dargestellt. Abschnitt 20.3.6 enthält u.a. die Beschreibung von Datenbankspiegelung. Die neue Tuning-Komponente namens Optimierungsratgeber wird in Abschnitt 22.6.2 behandelt. Das Kapitel stellt dar, wie die Tabellenpartitionierung von SQL Server 2005 unterstützt wird. Eine weitere sehr wichtige grafische Komponente namens SQL Server Business Intelligence Development Studio wird in diesem Kapitel beschrieben. SQL/OLAP enthält viele neue Erweiterungen, die in diesem Kapitel behandelt werden. Die wichtigsten sind Aggregat- und Rangfunktionen (siehe Abschnitt 27.1.3) und der PIVOT-Operator (Abschnitt 27.1.5). Microsoft Reporting Services sind Gegenstand dieses Kapitels. Eine ausführliche Einführung in das Thema XML liefert dieses Kapitel. Der neue Datentyp namens XML wird in diesem Kapitel erläutert. Microsoft hat bezüglich SQL Server 2005 einige neue Begriffe eingeführt. Die Bezeichnung»SQL Server-System«kennzeichnet jetzt nicht nur den relationalen Datenbankserver, sondern auch Analysis Services, Reporting Services, Integration Services und Notifications Services. Aus diesem Grund wird das relationale Datenbanksystem von Microsoft jetzt»datenbankmodul«(in Deutsch) bzw.»relational Database Engine«(in Englisch) genannt. In diesem Buch wird gewöhnlich von dem relationalen Datenbankserver gesprochen, wenn es sich um»relational Database Engine«handelt.