Datenbankentwicklung lernen mit SQL Server 2017 - Robert Panther - E-Book

Datenbankentwicklung lernen mit SQL Server 2017 E-Book

Robert Panther

0,0

Beschreibung

SQL Server 2017 und die kostenlose Version SQL Server 2017 Express sind ideal, um in die professionelle Datenbankentwicklung einzusteigen. Sie können mit ihnen komplexe Datenbankprojekte verwirklichen, die die Funktionalität einer Desktop-Datenbank wie Microsoft Access deutlich übersteigen. Wenn Sie tiefer in die Datenbankentwicklung mit einem professionellen Datenbankserver einsteigen wollen, ist dieses Buch genau das Richtige für Sie. Es vermittelt leicht verständlich sowohl die Datenbankgrundlagen als auch das Programmierwissen, das Sie benötigen, um die umfangreichen Möglichkeiten von SQL Server 2017 zu nutzen. Aufgrund des didaktisch durchdachten Konzepts mit vielen Übungen und Praxistipps ermöglicht dieses Buch Ihnen eine fundierte Einarbeitung in die Entwicklung von Datenbanken. Das Buch basiert auf der kostenfrei erhältlichen Version SQL Server 2017 Express, eignet sich aber auch für größere SQL-Server-Editionen. Aus dem Inhalt: - Neuerungen bei SQL Server 2017 - Installation und erste Schritte - Datenbanken, Tabellen und Sichten erstellen, bearbeiten und verwenden - erweiterte SQL-Features (CTEs, Sequenzen, Temporal Tables etc.) - komplexe Datentypen (XML und JSON) - Debugging und Fehlerbehandlung - Sperren, Transaktionen und Deadlocks - gespeicherte Prozeduren, Funktionen, Trigger und Cursor - Datenbankadministration mit SQL; Benutzer, Rollen und Rechte - Daten sichern und bewegen - SQL Server Reporting Services - andere SQL-Editionen (SQL LocalDB etc.) - Datenebenenanwendungen - SQL Server Data Tools - Graphdatenbanken - Integration von R und Python - SQL Server und .NET

Sie lesen das E-Book in den Legimi-Apps auf:

Android
iOS
von Legimi
zertifizierten E-Readern

Seitenzahl: 615

Das E-Book (TTS) können Sie hören im Abo „Legimi Premium” in Legimi-Apps auf:

Android
iOS
Bewertungen
0,0
0
0
0
0
0
Mehr Informationen
Mehr Informationen
Legimi prüft nicht, ob Rezensionen von Nutzern stammen, die den betreffenden Titel tatsächlich gekauft oder gelesen/gehört haben. Wir entfernen aber gefälschte Rezensionen.



Zu diesem Buch – sowie zu vielen weiteren O’Reilly-Büchern – können Sie auch das entsprechende E-Book im PDF-Format herunterladen. Werden Sie dazu einfach Mitglied bei oreilly.plus+:

www.oreilly.plus

Robert Panther

Datenbankentwicklunglernen mit SQL Server 2017

Der praxisorientierte Grundkurs

Robert Panther

Lektorat: Alexandra Follenius

Korrektorat: Sibylle Feldmann, www.richtiger-text.de

Herstellung: Stefanie Weidner

Umschlaggestaltung: Michael Oréal, Foto von Michael Oréal, www.oreal.de

Satz: Gerhard Alfes, www.mediaservice.tv

Bibliografische Information der Deutschen Nationalbibliothek

Die Deutsche Nationalbibliothek verzeichnet diese Publikation in der Deutschen Nationalbibliografie; detaillierte bibliografische Daten sind im Internet über http://dnb.d-nb.de abrufbar.

ISBN:

Print   978-3-96009-086-1

PDF    978-3-96010-222-9

ePub   978-3-96010-223-6

mobi   978-3-96010-224-3

Dieses Buch erscheint in Kooperation mit O’Reilly Media, Inc. unter dem Imprint »O’REILLY«. O’REILLY ist ein Markenzeichen und eine eingetragene Marke von O’Reilly Media, Inc. und wird mit Einwilligung des Eigentümers verwendet.

2. Auflage 2019

Copyright © 2019 dpunkt.verlag GmbH

Wieblinger Weg 17

69123 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-, markenoder patentrechtlichem Schutz unterliegen.

Die Informationen in diesem Buch wurden mit größter Sorgfalt erarbeitet. Dennoch können Fehler nicht vollständig ausgeschlossen werden. Verlag, Autoren und Übersetzer übernehmen keine juristische Verantwortung oder irgendeine Haftung für eventuell verbliebene Fehler und deren Folgen.

5 4 3 2 1 0

Inhalt

Vorwort

Teil IEinführung

1Einleitung

Warum dieses Buch?

Aufbau des Buchs

Die Beispieldatenbank

Schreibweisen

Benötigte Software

Zusammenfassung

2Der Microsoft SQL Server

Historie des Microsoft SQL Server

Neuerungen bei SQL Server 2012

Neuerungen bei SQL Server 2014

Neuerungen bei SQL Server 2016

Neuerungen bei SQL Server 2017

Die verschiedenen SQL Server-Editionen im Vergleich

Übungen zu diesem Kapitel

Zusammenfassung

3Installation und erste Schritte

Systemvoraussetzungen

Installation

Die wichtigsten SQL Server-Tools

Übungen zu diesem Kapitel

Zusammenfassung

Teil IIDatenbankgrundlagen

4Allgemeine Datenbankgrundlagen

Erstellen von Datenbanken und Tabellen

Anzeigen und Ändern von Daten

Bearbeiten von Datenbanken und Tabellen

Primärschlüssel

Indizes

Übungen zu diesem Kapitel

Zusammenfassung

5Eine Tabelle kommt selten allein

Relationen und Fremdschlüssel

Normalisierung

Datenbankdiagramme

Abfragen

Sichten (Views)

Übungen zu diesem Kapitel

Zusammenfassung

6Kleine Einführung in SQL

Was ist eigentlich SQL?

SQL-Anweisungen im Management Studio ausführen

Datenbankabfragen mit SELECT

Daten mit UPDATE, INSERT und DELETE bearbeiten

Erstellen und Verwenden von Sichten

Übungen zu diesem Kapitel

Zusammenfassung

Teil IIIDatenbankentwicklung

7Erweiterte SQL-Programmierung

Komplexe SQL-SELECTs

Komplexe INSERTs, UPDATEs und DELETEs

Daten abgleichen mit dem MERGE-Befehl

Common Table Expressions

Die OFFSET-Klausel

Sequenzen

Temporale Tabellen

Übungen zu diesem Kapitel

Zusammenfassung

8Komplexe Datentypen

XML

JSON

Übungen zu diesem Kapitel

Zusammenfassung

9SQL-Skripte

Arbeiten mit SQL-Skripten

Variablen

Fallunterscheidungen und Schleifen

Debuggen von SQL-Skripten

Fehlerbehandlung in SQL-Skripten

Sperren, Transaktionen und Deadlocks

Übungen zu diesem Kapitel

Zusammenfassung

10Gespeicherte Prozeduren, Funktionen, Trigger und Cursor

Systemprozeduren und -funktionen

Benutzerdefinierte gespeicherte Prozeduren

Benutzerdefinierte Funktionen

Trigger

SQL-Cursor

Übungen zu diesem Kapitel

Zusammenfassung

Teil IVDatenbankadministration

11Datenbankadministration mit SQL

Skriptgenerierung oder »SQL ist überall«

Verwalten von Datenbanken

Verwalten von Datenbankobjekten

DDL-Trigger

Übungen zu diesem Kapitel

Zusammenfassung

12Benutzer, Rollen und Rechte

Das SQL Server-Rechtesystem

Anmeldungen und Authentifizierung

Verwalten von Datenbankbenutzern

Rechte und Rollen

Contained Databases

Verwendung von Schemas

Übungen zu diesem Kapitel

Zusammenfassung

13Daten sichern und bewegen

Sichern von Datenbankdateien

Das Transaktionslog

Sichern und Wiederherstellen von Datenbanken

Import und Export von Daten

Übungen zu diesem Kapitel

Zusammenfassung

Teil VErweiterte Funktionen

14Reporting mit SQL Server Express mit Advanced Services

Überblick über die Reporting Services

Konfiguration der Reporting Services

Erstellen eines Reports mit dem Report-Designer

Übungen zu diesem Kapitel

Zusammenfassung

15Zusammenarbeit mit anderen SQL Server-Instanzen und -Editionen

Verbindung zu anderen Servern

Replikation

Die SQL Server LocalDB

Die SQL Server Compact Edition

Microsoft Azure SQL-Datenbank

Umstieg auf eine größere Edition

Übungen zu diesem Kapitel

Zusammenfassung

16Datenebenenanwendungen

Überblick über Datenebenenanwendungen

Erstellen von Datenebenenanwendungen

Verteilen von Datenebenenanwendungen

Importieren und Exportieren von Datenebenenanwendungen

Übungen zu diesem Kapitel

Zusammenfassung

17Datenbankprojekte und die SQL Server Data Tools

Überblick über die SQL Server Data Tools

Mit Datenbankprojekten arbeiten

Die CLR-Integration von SQL Server

Sonstige nützliche Features

Ausblick

Übungen zu diesem Kapitel

Zusammenfassung

18Komplexe Beziehungen mit Graphdatenbanken abbilden

Knoten und Kanten anlegen

Daten in eine Graphdatenbank einfügen

Daten einer Graphdatenbank abfragen

Daten einer Graphdatenbank ändern

Übungen zu diesem Kapitel

Zusammenfassung

19Integration weiterer Programmiersprachen

Vorbereitung

R

Python

Übungen zu diesem Kapitel

Zusammenfassung

20SQL Server und .NET Framework

Download und Installation von Visual Studio

Schichtentrennung und Applikationsaufbau

Zugriff über ADO.NET

LINQ to SQL

Das ADO.NET Entity Framework

Übungen zu diesem Kapitel

Zusammenfassung

Nachwort

Teil VIAnhänge

Anhang AKleine SQL-Referenz

SELECT

Data Manipulation Language (DML)

Data Definition Language (DDL)

Data Control Language (DCL)

SQL Server-Datentypen

Systemobjekte

Anhang BWeiterführende Infos im Web

Websites von Verlag und Autor

Microsoft-Websites zu SQL Server

Downloads zu SQL Server

Community, Events und Konferenzen

SQL Server-Foren und -Blogs

Anhang CLösungen zu den Übungen

Anhang DGlossar

Index

Vorwort

Während Microsoft seit dem Jahr 2008 (wenn man das sogenannte »BI-Release« SQL Server 2008 R2 mitzählt) alle zwei Jahre eine neue Version des hauseigenen Datenbank-Management-Systems SQL Server auf den Markt brachte, stand nach der 2016er-Version ein Paradigmenwechsel an, denn bereits 2017 kam die nächste Version heraus. Dabei ist es naheliegend, dass das Produkt in der kurzen Zeit nicht komplett neu entworfen, sondern im Kern konsequent weiterentwickelt und um Zusatzkomponenten erweitert wurde. Das galt jedoch bereits für die Vorgängerversionen, sodass das ohnehin schon gute Produkt im Laufe der Jahre und der Versionen immer ausgereifter und stabiler wurde und bereits seit einigen Jahren problemlos mit den Produkten namhafter Konkurrenten mithalten kann. Auch die interne Versionsnummer 14.0 zeigt, dass das Produkt über viele Jahre kontinuierlich gereift ist. Ebenso wichtig ist aber, dass man auch als langjähriger Anwender auf bestehendes Wissen aufbauen und dieses um die Kenntnis der neuen Features erweitern kann.

Genau so, wie SQL Server immer weiterentwickelt wurde, so wird auch dieses Buch ständig weiterentwickelt, das bereits in ähnlicher Form für SQL Server 2008, SQL Server 2008 R2, SQL Server 2012 und SQL Server 2016 verfügbar war. Lediglich SQL Server 2014 wurde ausgelassen, da sich die Neuerungen – zumindest im Bereich der Datenbankentwicklung – in Grenzen hielten. Nun ist SQL Server 2017 erhältlich, das zumindest auf den zweiten Blick erneut eine Vielzahl von Neuerungen für alle Editionen von SQL Server mit sich bringt. Daher erschien es sowohl Verlag als auch Autor sinnvoll, wieder eine erweiterte Neuauflage des Buchs herauszubringen.

Die im Buch beschriebenen Beispiele beziehen sich zwar wiederum auf die Express Edition von Microsoft SQL Server, sind aber allesamt auch auf den größeren Editionen von SQL Server anwendbar, sodass der Text damit als Einstieg für alle Editionen geeignet ist. Auf eine Buch-DVD wurde bewusst verzichtet, da die benötigte Software problemlos in der jeweils aktuellsten Version aus dem Internet heruntergeladen werden kann. Inzwischen sind auch die dafür benötigten Internetbandbreiten nahezu überall verfügbar, sodass man auf den Download nicht mehr allzu lange warten muss.

Damit Sie auch wissen, wer dieses Buch geschrieben hat, möchte ich mich kurz vorstellen:

Ich beschäftige mich seit etwa 1995 mit dem SQL Server (damals noch in der Version 6.0) und habe das Produkt seitdem in seinen vielfältigen Facetten kennengelernt – anfangs in Form von Performanceuntersuchungen für meine Diplomarbeit zum Thema »Optimierung von Datenbankanwendungen«, mit der ich im Jahr 1996 mein Informatikstudium an der FH Darmstadt erfolgreich abschloss, und anschließend aus der Sicht des Datenbankadministrators für ein großes Unternehmen der Reisebranche. Danach wechselte ich in ein mittelständisches Softwarehaus, in dem mich der SQL Server sowohl aus der Sicht eines Administrators als auch aus der eines Anwendungsentwicklers stets begleitete. Seit 2007 bin ich nun als Senior Consultant (mittlerweile Executive Consultant) für das große, international agierende Beratungsunternehmen CGI (bzw. deren Vorgängerunternehmen Unilog Avinci und Logica) tätig und spätestens seit diesem Zeitpunkt völlig auf den SQL Server fokussiert. Sofern es die Projekte zulassen, bin ich auch immer wieder mal als Sprecher auf diversen Fachkonferenzen (z. B. BASTA!, SQLCON, Deutsche SQL Server Konferenz, Frankfurter Datenbanktage/IT-Tage) sowie in der offiziellen SQL Server User Community PASS (Professional Association for SQL Server) aktiv.

Und nach all dieser Zeit fasziniert es mich nach wie vor, dass es immer wieder Neues beim SQL Server zu entdecken gibt. Mittlerweile wird das Produkt aufgrund der vielen Zusatzdienste und -komponenten völlig zu Recht häufig auch als Microsoft-Datenplattform bezeichnet. Mit diesem Buch möchte ich versuchen, Ihnen etwas von der Begeisterung und Faszination zu diesem Produkt weiterzugeben.

Bevor ich aber mit dem eigentlichen Buchtext beginne, will ich noch ein Dankeschön an verschiedene Personen loswerden:

Beginnen möchte ich mit dem O’Reilly Verlag und hier insbesondere Alexandra Follenius erwähnen, die dieses Buch von Verlagsseite aus betreut hat.

Des Weiteren bedanke ich mich natürlich bei allen Kunden, Kollegen und Freunden, die mich immer wieder in Gesprächen oder in Form von Lesermails mit interessanten Ideen und Anregungen für dieses Buch versorgt haben.

Mein letztes Dankeschön geht – wie immer – an meine Frau Birgit, und zwar dafür, dass sie wieder einmal Verständnis dafür aufbringen konnte, dass ich für einen gewissen Zeitraum einen guten Teil meiner Freizeit für die Bearbeitung dieses Buchtexts aufbringen musste.

Robert Panther,Hattersheim, im Juli 2018

Teil I

Einführung

In diesem Teil:

Kapitel 1Einleitung

Kapitel 2Der Microsoft SQL Server

Kapitel 3Installation und erste Schritte

Kapitel 1

Einleitung

In diesem Kapitel lernen Sie

warum und für welche Zielgruppe dieses Buch entstanden ist

wie dieses Buch aufgebaut ist

welche Formatierungen und Symbole im Text verwendet werden

Warum dieses Buch?

Mit SQL Server 2017 Express stellt Microsoft eine kostenfrei erhältliche Version des aktuellen SQL Server zur Verfügung, die bereits einen beachtlichen Funktionsumfang enthält und damit für viele Aufgaben bestens geeignet ist.

Wenn Sie schon mit einer älteren Version von SQL Server gearbeitet haben, werden Sie die vielen interessanten Neuerungen schätzen lernen, mit denen die bereits vielfach bewährten Vorgängerversionen weiter verbessert wurden.

Haben Sie stattdessen bisher mit Microsoft Access oder der MSDB einfache Datenbankanwendungen erstellt, ist SQL Server 2017 Express der nächste logische Schritt, um diese Anwendungen auf eine skalierbare Plattform zu portieren. Denn sollte die Express Edition einmal nicht mehr ausreichen, können Sie die Datenbank problemlos in einer größeren Variante von SQL Server einspielen, ohne den Code der Anwendung ändern zu müssen.

Und auch wenn Sie bisher noch gar keine Erfahrung mit der Entwicklung von Datenbankanwendungen haben, ist SQL Server 2017 Express das ideale Produkt, um in diese Thematik einzusteigen.

Mit diesem Buch erhalten Sie einen strukturierten Einstieg in die Möglichkeiten, die SQL Server 2017 – insbesondere SQL Server 2017 Express – bietet. Selbst wenn Sie mit einer größeren Variante von Microsoft SQL Server arbeiten sollten, können Sie auf dem hier vermittelten Grundwissen aufbauen und müssen sich lediglich die zusätzlichen Features der größeren Versionen aneignen. Somit ist dieses Buch auch als Grundlagenbuch für alle anderen Editionen von SQL Server geeignet.

Aufbau des Buchs

Der Buchtext gliedert sich in fünf größere Abschnitte, die durch einen Anhang ergänzt werden.

Teil I, Einführung

, gibt einen kurzen Überblick über Microsoft SQL Server. Nach einer Beschreibung der Historie werden die Neuerungen der 2017er-Variante vorgestellt, gefolgt von einem Vergleich der verschiedenen Editionen von SQL Server. Danach wird die Installation der Express Edition beschrieben. Abgerundet wird dieser Teil des Buchs durch einen Überblick über die wichtigsten Tools, die SQL Server mitbringt.

Teil II, Datenbankgrundlagen

, vermittelt die wichtigsten Grundlagen, die Sie benötigen, um mit Datenbank-Management-Systemen wie SQL Server 2017 zu arbeiten. Nach ein paar allgemeinen Basisinformationen folgt eine Beschreibung, wie Sie zentrale Datenbankobjekte wie Datenbanken, Tabellen, Sichten und Indizes anlegen und verwalten können. Das letzte Kapitel dieses Abschnitts gibt eine Einführung in die wichtigsten SQL-Anweisungen zum Abfragen, Einfügen, Ändern und Löschen von Daten.

Teil III, Datenbankentwicklung

, befasst sich mit fortgeschritteneren Themen der Datenbankentwicklung. Ein Kapitel widmet sich der erweiterten SQL-Programmierung wie beispielsweise komplexeren SQL-Abfragen, ein weiteres den komplexen Datentypen wie beispielsweise XML und JSON (wobei JSON streng genommen eher ein Datenformat als ein Datentyp ist). Außerdem wird die Programmierung von Triggern, gespeicherten Prozeduren und Funktionen beschrieben. Dazu werden auch die Besonderheiten von SQL-Skripten behandelt, und es wird erläutert, wie man diese debuggen oder gar eine Fehlerbehandlung zur Laufzeit implementieren kann.

Teil IV, Datenbankadministration

, führt Sie in die Nutzung der administrativen Möglichkeiten von SQL Server ein. Dabei wird das Anlegen, Ändern und Löschen von Datenbanken, Tabellen, Indizes etc. sowohl über die Benutzeroberfläche als auch mit der Sprache SQL beschrieben. Aber auch andere wichtige administrative Themen wie die Benutzer- und Rechteverwaltung sowie das Sichern und Wiederherstellen von Daten kommen hier nicht zu kurz.

Teil V, Erweiterte Funktionen

, erklärt die Nutzung von erweiterten Möglichkeiten von SQL Server Express. Im ersten Kapitel dieses Teils werden die Reporting-Features beschrieben, die Sie mit SQL Server Express Advanced Edition nutzen können. Anschließend folgt ein Kapitel, in dem die Möglichkeiten zur Zusammenarbeit mit den größeren (und kleineren) Editionen von SQL Server aufgezeigt werden. So lässt sich SQL Server Express beispielsweise als Client für ein Replikationsszenario verwenden. Aber auch die Compact Edition sowie die mit SQL Server 2012 hinzugekommene SQL Server LocalDB werden behandelt. Die nächsten Kapitel beschreiben die Verwendung von Datenebenenanwendungen sowie die mit SQL Server 2012 eingeführten Datenbankprojekte. Anschließend folgt ein Kapitel, in dem die Implementierung von Graphdatenbanken in SQL Server beschrieben wird, sowie ein weiteres, in dem gezeigt wird, wie sich die mit SQL Server 2016 und 2017 hinzugekommenen Programmiersprachen R und Python nutzen lassen. Im letzten Kapitel schließlich wird ein Ausblick auf das Zusammenspiel mit .NET gegeben, um zur Datenbank auch komfortable Anwendungen entwickeln zu können.

Im

Anhang

finden Sie eine kurze Referenz der wichtigsten SQL-Befehle gefolgt von einem Überblick über weitere Informationsquellen zum Thema im Internet. Ebenfalls im Anhang zu finden sind die Lösungen zu den Übungsaufgaben der einzelnen Kapitel. Abgeschlossen wird der Anhang durch ein Glossar, in dem die wichtigsten Fachbegriffe erklärt sind, sowie das obligatorische Stichwortverzeichnis.

Aufbau der einzelnen Kapitel

Die Kapitel dieses Buchs sind jeweils folgendermaßen aufgebaut:

Lernziele

Sie finden am Anfang jedes Kapitels eine Übersicht zu den Lernzielen und Themen des Kapitels.

Schrittfolgen

Die Anleitungen für das Erstellen der Datenbanken sind als Schrittfolgen dargestellt. Auch wenn Sie die Beispieldatenbanken und -projekte von der Website zum Buch (unter

http://downloads.oreilly.de/9783960090861

) herunterladen können, empfehle ich Ihnen, alle Beispiele selbst zu erstellen, indem Sie Schritt für Schritt den beschriebenen Ablauf nachvollziehen. Sie werden auf diese Weise schneller mit den Oberflächen der diversen SQL Server-Tools sowie der Syntax von T-SQL vertraut.

Übungen

Vor der Zusammenfassung folgt meist noch ein Abschnitt mit Übungen zu dem jeweiligen Kapitel. Manchmal handelt es sich dabei um einfache Fragen, manchmal enthält eine Übung eine Aufgabe, um die im Kapitel durchgeführte Datenbankoperation noch weiter zu verfeinern. Alle Lösungen und Antworten finden Sie in

Anhang C

dieses Buchs. Versuchen Sie, die Übungen selbstständig durchzuführen, und schauen Sie sich erst dann die Lösungen im Anhang an. So werden Sie schneller in der Lage sein, eigene Datenbankprojekte zu realisieren.

Zusammenfassung

Am Ende jedes Kapitels finden Sie eine kurze Zusammenfassung der wichtigsten Lerninhalte, damit Sie sich das gerade Erlernte noch einmal ins Gedächtnis zurückrufen können.

Die Beispieldatenbank

Um einen echten Praxisbezug zu erreichen, wird im gesamten Buch eine einheitliche Beispieldatenbank verwendet, die im Laufe des Texts immer weiterentwickelt wird. Dabei wurde bewusst vermieden, die zweitausendundzweite Adressverwaltung zu entwerfen. Dennoch wurde ein relativ gängiges Anwendungsbeispiel in Form einer Mediendatenbank verwendet, mit der Sie Bücher, Audio-CDs und DVDs verwalten können, damit die Beispiele auch für jeden möglichst gut nachvollziehbar sind. Die Beispieldatenbank können Sie hier herunterladen:

http://downloads.oreilly.de/9783960090861.

Ich selbst kenne die Notwendigkeit einer solchen Datenbank nur zu gut, gehöre ich doch zu den vielen »Jägern und Sammlern«, die über eine recht große Anzahl von CDs und DVDs verfügen. Hin und wieder passiert es dann, dass ich eine interessante CD oder DVD günstig erstehe, um zu Hause dann festzustellen, dass diese bereits in meinem Regal stand. (Zum Glück kommt das nicht allzu oft vor.)

Um derlei Missgeschick künftig völlig auszuschließen, benötigt man also eine Mediendatenbank (möglichst auch in einer Offlinevariante, die man dann beim nächsten Besuch des Elektronikmarkts seines Vertrauens beispielsweise im Mobiltelefon parat hat). Wenn man dann noch eine einfache Suchoberfläche zur Verfügung hat, um mit wenigen Tastendrücken nachzusehen, ob ein Titel schon in der privaten Sammlung enthalten ist, ist das Problem gelöst.

Im Vordergrund der meisten Beispiele in diesem Buch wird allerdings weniger die Benutzeroberfläche der zugehörigen Anwendung als vielmehr die Datenbank selbst stehen.

Schreibweisen

Dieses Buch verwendet einige wenige Konventionen. Wenn Sie mit ihnen vertraut sind, können Sie leichter mit dem Buch arbeiten:

Kursive Schrift

Die kursive Schrift wird für Dateinamen verwendet, bezeichnet Elemente der Benutzeroberfläche (in den meisten Fällen also Elemente des Menüs des SQL Server Management Studio sowie Dialogfelder und auch die Namen der Eigenschaften, wie sie im Management Studio oder in der IDE erscheinen) und wird in seltenen Fällen auch für Hervorhebungen verwendet. Datenbankobjekte wie die Namen von Datenbanken, Tabellen, Feldern etc. werden ebenfalls in kursiver Schrift dargestellt.

Listingschrift

Die Listingschrift wird verwendet, wenn Codefragmente aus dem Beispielcode abgedruckt werden. Im Fließtext werden die Begriffe in Listingschrift gedruckt, die auf Stellen im Quellcode verweisen.

Zusätzlich finden Sie im ganzen Buch verteilt Absätze, die mit den folgenden Symbolen versehen sind und die auf bestimmte hilfreiche Elemente hinweisen:

Wichtig

Absätze mit diesem Icon enthalten wichtige Informationen, auf die Sie unbedingt achten sollten.

Tipp

In den Tipp-Absätzen finden Sie weiterführende Informationen und Hinweise dazu, wie Sie Dinge besonders einfach und zeitsparend durchführen können.

Hintergrundinfo

Mit diesem Symbol markierte Absätze enthalten hilfreiche Hintergrundinformationen. Die Informationen sind nicht erforderlich, um eine bestimmte Schrittfolge durchzuführen, sie vertiefen jedoch Ihr Wissen über die Zusammenhänge, in denen eine bestimmte Aktion steht. Dies beinhaltet auch sogenannte Best Practices, also Beschreibungen zu gängigen Vorgehensweisen, die sich in der Praxis bewährt haben. Links zu Websites im Internet, die mit dem behandelten Thema in Zusammenhang stehen, sind ebenfalls mit diesem Icon gekennzeichnet.

Bei der Wahl von Fachbegriffen aus dem Umfeld von SQL Server wird in der Regel vorrangig die deutschsprachige Bezeichnung verwendet. Zusätzlich wird an vielen Stellen aber auch auf die englischsprachige Variante hingewiesen, da Sie diese in vielen – teilweise selbst deutschsprachigen – Quellen finden und dadurch die Suche nach weiterführenden Informationen zu einem bestimmten Thema im Internet erleichtert wird – Beispiel: Sichten (engl. Views).

Benötigte Software

Da die Updatezyklen immer kürzer werden, dafür aber schnelle Internetverbindungen fast überall zugänglich sind, haben sich Autor und Verlag bewusst gegen eine Buch-DVD entschieden. Stattdessen finden Sie im Buchtext an den entsprechenden Stellen Verweise darauf, wo die benötigte Software in der gerade aktuellsten Version heruntergeladen werden kann. Das betrifft vor allem SQL Server 2017 Express with Advanced Services sowie das SQL Server Management Studio und die SQL Server Data Tools, die für die Beispiele genutzt wurden. Die Installation der Software ist in Kapitel 3, Installation und erste Schritte, ausführlich beschrieben.

Um die Beispiele selbst nachzuvollziehen, benötigen Sie also lediglich einen PC auf Basis von Windows 8 (oder neuer) bzw. Windows Server 2012 (oder neuer). Alles Weitere wird im Verlauf des Buchs installiert. Die detaillierten Hard- und Softwarevoraussetzungen sind ebenfalls in Kapitel 3, Installation und erste Schritte, beschrieben.

Eine Ausnahme bildet das letzte Kapitel, da hier ein Ausblick auf die Entwicklung mit .NET gegeben wird. Wenn Sie die dort gezeigten Beispiele selbst ausprobieren möchten, benötigen Sie die Visual Studio 2017 Community Edition, die ebenfalls per kostenfreien Download bezogen werden kann. Auf die genauen Details dazu wird in Kapitel 20, SQL Server und .NET Framework, eingegangen.

Zusammenfassung

Dieses einführende Kapitel hat Ihnen einen Überblick darüber gegeben, wie dieses Buch aufgebaut ist und welche Schreibweisen darin verwendet werden.

Es wurde selbstverständlich alles unternommen, um die Richtigkeit des Buchinhalts und des Bonusmaterials sicherzustellen. Etwaige Korrekturen (nobody is perfect) und Änderungen finden Sie auf der Verlagswebsite unter folgender Adresse:

http://www.oreilly.de

Wenn Sie Kommentare, Fragen oder Anregungen zum Inhalt dieses Buchs oder des Begleitmaterials bzw. Fragen haben, die Sie auf den oben angegebenen Websites nicht klären konnten, senden Sie eine E-Mail an folgende Adresse:

[email protected]

Alternativ können Sie auch direkt den Autor anschreiben:

[email protected]

So, nun wünsche ich aber viel Vergnügen beim Lesen dieses Buchs und Entdecken der zahlreichen Möglichkeiten von SQL Server 2017 Express.

Robert Panther

Kapitel 2

Der Microsoft SQL Server

In diesem Kapitel lernen Sie

wie SQL Server zu dem geworden ist, was er heute ist

welche Neuerungen in der aktuellen 2017er-Version dazukamen

was sich bei SQL Server 2017 geändert hat

wodurch sich die verschiedenen Editionen des SQL Server voneinander unterscheiden

Historie des Microsoft SQL Server

Microsoft SQL Server kann auf eine bewegte Vergangenheit zurückblicken, die inzwischen über 20 Jahre dauert. Diese lange Zeit belegt natürlich auch, dass es sich bei diesem Datenbank-Management-System um ein sehr ausgereiftes Produkt handelt.

Sybase und die Anfänge des Microsoft SQL Server

Bereits 1988/89 kam die erste Version des SQL Server als Gemeinschaftsproduktion von Ashton-Tate, Sybase und Microsoft auf den Markt, damals noch primär für das Betriebssystem OS/2 gedacht. Der Funktionsumfang entsprach etwa der damaligen Sybase-Version 3.0 für Unix.

Das nächste wesentliche Release – immer noch für OS/2 – erschien vier Jahre später mit der Version 4.2, dicht gefolgt von der Version 4.21 für Windows NT, die zeitgleich mit Windows NT 3.1 erschien. Funktionsumfang und Leistungsfähigkeit waren noch recht beschränkt, doch nicht zuletzt die intuitive Oberfläche machte dieses Produkt zumindest als Datenbank für kleine Abteilungen interessant.

Microsoft SQL Server entsteht

Im Jahr 1994 beendeten Sybase und Microsoft ihre Zusammenarbeit. Microsoft erkämpfte sich die Rechte für alle Versionen für Microsoft-Betriebssysteme, während Sybase das Produkt unter dem Namen Sybase Adaptive Server weiterentwickelte. Ein Jahr später – nachdem große Teile der Datenbank-Engine des SQL Server komplett neu programmiert waren – erschien mit Version 6.0 der erste »richtige« Microsoft SQL Server. Sowohl Leistungsumfang als auch Performance waren stark verbessert, wodurch Microsoft SQL Server eine ernst zu nehmende Alternative für die etablierten Datenbank-Management-Systeme anderer Hersteller wurde, die meist ein Vielfaches kosteten.

Im Jahr 1996 wurde SQL Server 6.0 durch die Version 6.5 abgelöst, die allerdings keine wesentlichen neuen Features brachte, sondern vielmehr jede Menge Detailverbesserungen.

Auch wenn Sybase seit Version 6.0 keinen Einfluss mehr auf die Produktentwicklung hatte, waren bis zur Version 7.0, die 1998 erschien, immer noch Teile des alten Quellcodes darin enthalten. Mit der Version 7.0 allerdings wurde der Kern komplett neu entwickelt. Ein Jahr später kamen die OLAP Tools dazu, mit denen man in Kombination mit den ebenfalls integrierten Data Transformation Services ein Data Warehouse aufbauen konnte, was bis dahin nur wesentlich teureren Softwarelösungen vorbehalten war.

Der SQL Server wird erwachsen

Ab Version 8.0 – die im Jahr 2000 erschien – wurde der offizielle Produktname umgestellt, sodass die Software nun als SQL Server 2000 auf den Markt kam. Intern wurden die Versionsnummern aber auch nach dem alten Konzept weitergeführt, sodass es seitdem eine interne Versionsnummer und eine offizielle Produktbezeichnung gibt.

Die wesentlichen Neuerungen des SQL Server 2000 waren eine deutlich verbesserte Performance, Skalierbarkeit und Zuverlässigkeit, womit das Produkt für den Unternehmenseinsatz interessanter wurde. Parallel dazu wurden zwar auch die Lizenzkosten stark angehoben, sie lagen aber immer noch deutlich unter denen der Konkurrenz. So wundert es nicht, dass SQL Server 2000 ein Jahr nach seinem Erscheinen Oracle von der Spitzenposition der Datenbank-Management-Systeme für Windows verdrängte.

Etwas später kamen dann die Reporting Services als kostenfreies Add-on hinzu, womit SQL Server 2000 alle Komponenten für eine komplette Business-Intelligence-Lösung beinhaltete. Im Jahr 2003 erschien erstmals auch eine 64-Bit-Version von SQL Server (bei den darauffolgenden Versionen wurde diese immer nahezu zeitgleich mit der 32-Bit-Version ausgeliefert).

Der SQL Server bekommt neue Tools

Erst fünf Jahre nach dem Erscheinen von SQL Server 2000 kam mit SQL Server 2005 das nächste große Release auf den Markt und wusste gleich zu Beginn mit einer Fülle an neuen Features zu überzeugen. Neben einer wiederum verbesserten Datenbankperformance wurden komplett neue Clienttools mitgeliefert. So wurde beispielsweise der Enterprise Manager des SQL Server 2000 ab 2005 durch das SQL Server Management Studio abgelöst. Aber auch im Bereich Business Intelligence gab es bahnbrechende Neuerungen: Die alten Data Transformation Services wurden durch die sehr viel leistungsfähigeren SQL Server Integration Services (SSIS) abgelöst. Als Tool für OLAP und Data Mining wurden die SQL Server Analysis Services (SSAS) eingeführt. Konsequenterweise wurden natürlich auch die bereits für den SQL Server 2000 erhältlichen SQL Server Reporting Services (SSRS) in das Produkt integriert. Dazu kamen viele weitere Features wie .NET Framework-Integration, XML-Unterstützung, Service Broker und Notification Services.

Im August 2008 erschien dann der SQL Server 2008. Im Vergleich zur Vorgängerversion aus dem Jahr 2005 stellte SQL Server 2008 eine weitere Evolutionsstufe dar. Die meisten Bestandteile, die sich beim SQL Server 2005 bereits bewährt hatten, wurden beibehalten und konsequent weiterentwickelt. Hinzu kamen neue Datentypen (time, date, geometry, geography, hierarchyid), die Filestream-Technologie zur transaktional konsistenten Speicherung von Dateien im Dateisystem sowie mit dem neuen Merge-Statement und Tabellenwertparametern auch ein paar Erweiterungen von T-SQL.

Für die größeren Editionen von SQL Server wurden mit dem Performance Data Warehouse, den Plan Guides und dem Ressource Governor auch neue Performance-Features hinzugefügt. Außerdem wurden Möglichkeiten zur transparenten Datenbankverschlüsselung sowie zur Kompression von Datenbanken und Datenbanksicherungen eingeführt.

Im April 2010 erschien dann entgegen ursprünglichen Erwartungen nicht der SQL Server 2010, sondern der SQL Server 2008 R2, der auch den inoffiziellen Beinamen »BI Refresh« erhielt, da diese Version im Wesentlichen Erweiterungen im Bereich der Business-Intelligence-Komponenten erhielt. Dass aber auch in anderen Bereichen einiges geändert wurde, zeigt der entsprechende Abschnitt weiter unten in diesem Kapitel. Die Hauptversionsnummer wurde jedoch bewusst beibehalten, da die eigentliche Datenbank-Engine von SQL Server 2008 nahezu unverändert übernommen wurde.

Neue Speichertechnologien

Im März 2012 erschien dann mit dem SQL Server 2012 endlich wieder eine komplett neue Version des Datenbankservers, bei dem es in fast allen Bereichen – vom Kern bis hin zu den Tools – maßgebliche Neuerungen gab. Einen Überblick dazu finden Sie weiter unten in diesem Kapitel. Dieser Version folgte fast genau zwei Jahre später der SQL Server 2014, der vor allem die speicheroptimierten Tabellen einführte. Aber auch bestehende Technologien wie beispielsweise die spaltenbasierten Indizes wurden erweitert. Im Juni 2016 erschien dann SQL Server 2016, bei dem sowohl speicheroptimierte Tabellen als auch die mit SQL Server 2012 eingeführten spaltenbasierten Indizes überarbeitet wurden und nun sogar kombiniert eingesetzt werden konnten.

Nachdem die letzten drei Versionen jeweils im Abstand von etwa zwei Jahren auf den Markt kamen, verkürzte Microsoft die Release-Zyklen weiter und veröffentlichte im Herbst 2017 den SQL Server 2017, der wiederum einige Neuerungen mitbrachte.

Die neuen Features, die für den Einstieg in SQL Server relevant sind, werden in den restlichen Kapiteln des Buchs ausführlicher beschrieben.

Kleiner Überblick über die wichtigsten Versionen und Builds

Insbesondere bevor die jeweiligen SQL Server offiziell auf dem Markt erscheinen, werden sie meist nur mit ihren Codenamen bezeichnet, die von Microsoft schon während der Entwicklung des Produkts vergeben werden (der eigentliche Produktname wird erst später festgelegt). Da diese Codenamen auch in vielen Blogs und Internetforen auftauchen, ist es sinnvoll, sie schon einmal gehört zu haben, um entscheiden zu können, ob sich ein Artikel auch auf die selbst genutzte Version von SQL Server bezieht.

Tabelle 2.1: Die Historie des SQL Server im Überblick

Natürlich gab es zu den meisten oben genannten Versionen diverse Updates und Service Packs, die teilweise auch noch deutlich nach der folgenden Hauptversion erschienen, um dort kritische Fehler zu beheben.1

Leider zeigt ein bereits installierter SQL Server nicht die Nummer des Service Pack, sondern nur die interne Buildnummer an, daher hier eine kleine Übersicht der Service Packs zu den neueren SQL Server-Versionen.

Tabelle 2.2: Zuordnungstabelle der SQL Server-Buildnummern und SQL Server Service Packs

Zusätzlich gibt es noch verschiedene Community Technology Previews, Release Candidates und Cumulative Updates, die hier nicht aufgeführt sind, um die Liste nicht zu unübersichtlich werden zu lassen.

CTPs, RTMs, Service Packs, Hotfixes und kumulative Updates

Bei den Versionsbezeichnungen aktueller Microsoft-Produkte werden verschiedene Begriffe verwendet, die zu Verwirrung führen können. Daher werden Ihnen die Begriffe hier erklärt:

 

Community Technology Preview (CTP) Hierbei handelt es sich um Vorabversionen, die bereits den endgültigen Funktionsumfang beinhalten, aber der Benutzercommunity schon zur Verfügung gestellt werden, noch bevor sie zur eigentlichen Produktion freigegeben sind. In diesem Stadium können noch einzelne Features hinzukommen oder aber wieder wegfallen.

 

Release Candidate (RC) Im Gegensatz zu den Community Technology Previews steht der Umfang der Features beim Release Candidate fest. Ein Release Candidate dient daher nur noch der Behebung von Fehlern. Werden beim Test Fehler gefunden, wird ein weiterer Release Candidate erstellt. Dieser Prozess wird so lange wiederholt, bis der aktuellste Release Candidate fehlerfrei ist.

 

Ready To Manufacturing (RTM) Bei einer RTM-Version handelt es sich bereits um die endgültige Version des Produkts, die auch in derselben Form in Produktion geht.

 

Service Pack (SP) Ein Service Pack ist ein größeres Update eines Produkts, das nicht selten auch wesentliche Erweiterungen des Funktionsumfangs beinhaltet. Ein Service Pack enthält normalerweise alle bis dahin erschienenen Updates sowie vorherige Service Packs.

 

Hotfix Während neue Service Packs nur in relativ großen Zeitabständen verfügbar sind, erstellt Microsoft sehr häufig kleinere Updates, die nicht so umfangreiche Fehler beheben. Insbesondere wenn es sich um sicherheitsrelevante Fehler handelt, erscheinen diese sehr zeitnah nach deren Behebung in Form von Hotfixes.

 

Kumulatives Update (CU) Da sich Hotfixes und andere Updates nach einiger Zeit ansammeln, werden diese von Zeit zu Zeit in kumulativen Updates zusammengefasst, die alle Updates seit dem letzten Service Pack beinhalten. Damit spart man sich die Einzelinstallationen der zahlreichen separaten Updates.

Schauen wir uns nun die wesentlichen Änderungen der letzten SQL Server-Versionen mal etwas genauer an.

Neuerungen bei SQL Server 2012

Nachdem es sich bei SQL 2008 R2 eher um ein Zwischenrelease handelte, das zwar einiges an zusätzlicher Funktionalität bot, die Datenbank-Engine im Kern aber unverändert ließ, kam mit SQL Server 2012 im März 2012 endlich wieder eine vollwertige neue Version auf den Markt.

Dennoch wurden die langfristigen Grundtendenzen von Microsoft für dieses Produkt beibehalten, sodass sich ein Großteil der Änderungen auf die Bereiche Business Intelligence und Hochverfügbarkeit bezieht. Dazu kommt als neuer Kernbereich das Thema Cloud Computing verstärkt hinzu, indem die Integration von SQL Azure weiter vorangetrieben wurde. Microsoft selbst vermarktet das Produkt daher mit drei Slogans, auf die ich im Folgenden näher eingehen werde:

Mission Critical Confidence

Breakthrough Insight

Cloud On Your Terms

Mission Critical Confidence – Sicherheit und Hochverfügbarkeit

Das Thema Hochverfügbarkeit ist bereits seit einigen Jahren einer der wichtigsten Schwerpunkte bei der Weiterentwicklung von SQL Server. Auch wenn das Produkt spätestens seit Version 2005 über zahlreiche Methoden zu Ausfallsicherheit und Datensicherung verfügt, arbeitet Microsoft ständig daran, dies noch weiter zu verbessern. So werden auf der einen Seite die Ausfallzeiten im Fehlerfall weiter verkürzt, auf der anderen Seite wird die Administration der recht komplexen Hochverfügbarkeitstechnologien vereinfacht. Dies geschieht im Wesentlichen durch eine intelligente Verknüpfung der bereits vorher vorhandenen Technologien Datenbankspiegelung (Mirroring) und Log-Shipping unter dem Namen AlwaysOn, mit der man Server zu sogenannten Availability Groups zusammenfassen kann. Dabei können die sekundären Server auch lesend genutzt werden, um den führenden Server zu entlasten.

Auch die Ausfallzeit für geplante Wartungsaktionen wird weiter reduziert. Durch die Unterstützung von Windows Server Core wird der Aufwand zum Patchen des Betriebssystems minimiert, da keine ohnehin nicht benötigten Komponenten aktualisiert werden müssen.

Im Bereich Sicherheit wurde insbesondere das Auditing überarbeitet, das nun für alle Editionen von SQL Server durchgängig verfügbar ist. Neu eingeführt wurden die Contained Databases, mit denen die Zugriffsdaten komplett in der Datenbank enthalten sind, sodass sie einfach in einer anderen Umgebung wiederhergestellt werden können, ohne dort entsprechende Server-Log-ins anlegen zu müssen.

Ein weiteres wichtiges Thema in diesem Bereich ist die allgemeine Datenbankperformance, die durch verschiedene Technologien weiter verbessert wurde. Hier sind insbesondere die neuen spaltenbasierten Indizes (entwickelt unter dem Codenamen Apollo) zu erwähnen, die Datenabfragen im Business-Intelligence-Umfeld bis zu 100-fach beschleunigen. Auch die Volltext-Indizes wurden überarbeitet, um eine nochmals gesteigerte Performance zu bieten.

Für partitionierte Tabellen wurde die maximal mögliche Anzahl von Partitionen nun auf 15.000 erhöht – auf den ersten Blick ein unrealistisch hoher Wert, es gibt jedoch Kunden, die dies bereits erfolgreich einsetzen, um für extrem große Tabellen für jeden Tag eine separate Partition nutzen zu können.

Breakthrough Insight – neue BI-Features

Der zweite Schwerpunkt bei der Weiterentwicklung von SQL Server ist der Bereich Business Intelligence. Hier wurde unter dem Projektnamen Crescent das neue Tool Power View entwickelt, das über eine webbasierte Oberfläche die Analyse von Daten aus verschiedensten Quellen ermöglicht. Ähnlich wie das bereits mit SQL Server 2008 R2 eingeführte PowerPivot bietet dieses Feature den Powerusern (oder wie es inzwischen oft heißt: Information Workern) eine neue Möglichkeit, komplexe Datenauswertungen auf komfortable Weise durchzuführen, ohne dazu die Abfragesprache SQL oder gar MDX nutzen zu müssen.

Ebenfalls seit SQL Server 2008 R2 gibt es die Master Data Services (MDS), mit denen Referenzdaten verwaltet und verteilt werden können. Diese wurden mit SQL Server 2012 um ein Excel-Add-in ergänzt, das die Pflege dieser Masterdaten in Excel erlaubt.

Komplett neu hinzugekommen sind dagegen die SQL Server Data Quality Services (DQS). Mit diesem Tool können existierende Datenbestände analysiert und korrigiert werden. Das umfasst einerseits die Erkennung und Beseitigung von Dubletten, aber auch die Korrektur von inkonsistenten Daten, die mithilfe von Referenzdaten (die auch von Drittanbietern zur Verfügung gestellt werden) validiert werden können. Für die Data Quality Services existiert ein eigenes Frontend, aber auch eine entsprechende Komponente für die SQL Server Integration Services.

Letztere wurden maßgeblich überarbeitet, sodass die SSIS-Projekte nun nicht mehr lediglich eine Sammlung von SSIS-Paketen darstellen, sondern auch paketübergreifende Parameter und Verbindungsmanager bereitstellen. Außerdem verfügen die Integration Services jetzt über einen echten Serverdienst, mit dem Pakete remote gestartet und in einem Dashboard überwacht werden können. Dazu gibt es zahlreiche Detailverbesserungen, wie beispielsweise die im Designer lange vermisste Undo-Funktion, die Generierung von besser lesbarem XML und die Möglichkeit, Pakete auch ohne Verbindung zu den verwendeten Datenquellen offline zu bearbeiten.

Für die SQL Server Analysis Services neu eingeführt wurde das BI Semantic Model, mit dem sich Cubes nun wahlweise – wie bisher – auf Basis eines relationalen Modells aufbauen lassen oder alternativ auf Basis des neuen tabularen Datenmodells, das in der Vorversion bereits bei PowerPivot Verwendung fand.

Cloud On Your Terms – bessere Anbindung an die Cloud

Insgesamt wurde in SQL Server 2012 die Cloud besser angebunden. Das ist auf den ersten Blick gar nicht so auffällig. Bei vielen Tools (wie beispielsweise dem SQL Server Management Studio oder den SQL Server Data Tools) ist jedoch festzustellen, dass hier neben den üblichen Zieldatenbanken (SQL Server 2005/2008/2008 R2/2012) auch SQL Azure angeboten wird. Die Variante des SQL Server in der Cloud wird also in die wesentlichen Tools konsequenter einbezogen.

Dazu wurde SQL Azure entsprechend weiterentwickelt, sodass der Funktionsumfang (insbesondere die nutzbaren Datentypen und T-SQL-Sprachelemente) nun möglichst nahe an dem von SQL Server 2012 ist. Auf diesem Weg wird eine bessere Transparenz und Skalierbarkeit erreicht, da es für eine Anwendung nun fast keine Rolle mehr spielt, ob die Daten auf einem SQL Server 2012 oder aber in der Cloud liegen. Mit SQL Azure DataSync wurde auch das Synchronisieren von Daten zwischen SQL Server 2012 und SQL Azure erleichtert.

Mit dem neuen SQL Azure Reporting ist eine weitere BI-Komponente in der Cloud verfügbar. Damit ist es nun möglich, Berichte zu erstellen, ohne dafür einen eigenen Reporting-Services-Server betreiben zu müssen.

Als weitere Neuerung gibt es den SQL Azure DataMarket, in dem gesammelte Daten vertrieben bzw. konsumiert werden können. (Vielleicht werden ja auch die nächsten Steuersünderdaten künftig auf diesem Weg vertrieben?) Hier gibt es neben zahlreichen kostenpflichtigen auch einige kostenfrei nutzbare Daten wie beispielsweise ein Verzeichnis deutscher Städte, historische Wetterdaten und vieles mehr. Auch die Vereinten Nationen stellen hier umfangreiche Daten mit statistischen Informationen ihrer Mitgliedsländer frei zur Verfügung. Der SQL Azure DataMarket kann von einigen Tools – beispielsweise von Power View sowie den SQL Server Data Quality Services – auch direkt genutzt werden.

Neuerungen bei SQL Server 2012 Express

Auch wenn sich die primär vermarkteten Features eher auf die kostenpflichtigen Editionen von SQL Server beziehen, gibt es ebenso eine ganze Reihe von Änderungen, die auch für die Express Edition relevant sind. Da diese detailliert im Rest des Buchs behandelt werden, möchte ich hier nur die wichtigsten davon stichpunktartig erwähnen:

T-SQL Zahlreiche Spracherweiterungen sowie neue Funktionen.

File Table Möglichkeit, über T-SQL auf Teile des Dateisystems zuzugreifen.

SQL Server Management Studio (SSMS) Überarbeitete Administrationsoberfläche, die mehr an Visual Studio angelehnt ist.

SQL Server Data Tools (SSDT) Neue Entwicklungsumgebung.

SQL Server LocalDB Benutzerinstanz einer SQL-Datenbank.

Änderungen bei der Lizenzierung

Auch bei der Lizenzierung gab es entscheidende Veränderungen. So ist für die große Enterprise Edition nun nicht mehr die Anzahl der Prozessoren ausschlaggebend, sondern die der Prozessorkerne. Für die neue Business Intelligence Edition erfolgt die Lizenzierung anhand eines Pauschalpreises pro Server, für den dann zusätzliche Clientzugriffslizenzen erworben werden müssen. Bei der Standard Edition sind beide Varianten (pro Prozessorkern oder pro Server mit zusätzlichen Clientzugriffslizenzen) möglich.

Der Preis pro Prozessorkern orientiert sich dabei an einem Viertel des alten (für SQL Server 2008 R2 gültigen) Lizenzpreises pro CPU, sodass sich die Lizenzkosten für die meisten Umgebungen in etwa der gleichen Größenordnung wie bisher befinden dürften. Dabei gilt allerdings ein Minimum von vier Kernen, für die Lizenzen zu bezahlen sind, selbst wenn weniger Prozessorkerne im Server vorhanden sind. (Dies ist zumindest insofern konsequent, da man mit den bisherigen SQL Server-Versionen auch keine Viertel-CPU lizenzieren konnte.)

Das Lizenzmodell mit Clientzugriffslizenzen bietet den Vorteil, dass diese Lizenzen sowohl für den Zugriff auf SQL Server 2012 als auch für SQL Azure nutzbar sind.

Für die Express Edition ist all das nicht relevant, da diese ohnehin lizenzkostenfrei nutzbar ist.

Ein Punkt, in dem sich Microsoft mit dem SQL Server nach wie vor angenehm von der Konkurrenz abhebt, ist die Tatsache, dass kleinere Updates und Service Packs auch ohne Wartungsvertrag generell kostenfrei erhältlich sind.

Neuerungen bei SQL Server 2014

Ähnlich wie bereits bei SQL Server 2012 hat Microsoft auch für SQL Server 2014 drei Slogans erdacht, die den wesentlichen Fokus dieser Version hervorheben:

Mission Critical Performance

Faster Insights from any Data

Platform for Hybrid Cloud

Grob betrachtet, geht es also nach wie vor um die Schwerpunkte Enterprise (Mission Critical), Business Intelligence (Insights) und Cloud, allerdings unter leicht veränderten Aspekten.

Mission Critical Performance

Unter dem Aspekt Performance wurde der bereits mit SQL Server 2012 eingeführte Columnstore-Index um eine gruppierte Variante erweitert, deren Daten auch geändert werden können. Der nicht gruppierte Columnstore-Index bleibt dagegen weiterhin readonly.

Die wichtigste Neuerung in diesem Bereich ist allerdings die Einführung der In-Memory-Technologie. Damit können Tabellen in einem speicheroptimierten Format im Hauptspeicher gehalten werden, wodurch auch ein schreibender Zugriff ganz ohne Sperren ermöglicht wird. Während die Columnstore-Technologie primär auf Data-Warehouse-Lösungen abzielt, eignet sich die In-Memory-Technologie damit hervorragend für OLTP-Anwendungen mit vielen parallelen Zugriffen.

Als weitere Performanceneuerung ist es mit SQL Server 2014 auch möglich, Solid State Disks zur Erweiterung des Buffer Pool zu nutzen, wodurch mehr Daten zwischengespeichert werden können.

Auch die Hochverfügbarkeitslösung AlwaysOn wurde erweitert, sodass nun bis zu acht Replikate möglich sind. Diese können teilweise sogar auf Windows Azure-VMs in der Cloud liegen.

Platform for Hybrid Cloud

Insgesamt findet sich an vielen Stellen eine bessere Integration in die Cloud, da man eingesehen hat, dass die meisten Unternehmen nicht ihre gesamten Daten in die Cloud auslagern wollen, dass aber eine Kombination aus auf einem lokalen Server gespeicherten Daten mit Daten in der Cloud durchaus sinnvoll sein kann.

Selbst das Erstellen von Datenbanksicherungen, die in der Cloud gespeichert und aus dieser heraus direkt wiederhergestellt werden können, ist nun möglich.

Faster Insights from any Data

Im Business-Intelligence-Bereich wurden die wesentlichen Komponenten SQL Server Integration Services, Analysis Services und Reporting Services zwar nicht wesentlich weiterentwickelt, dafür wurde aber der Fokus mehr darauf gelegt, Daten aus anderen Quellen besser integrieren zu können. Insbesondere der Zugriff auf unstrukturierte Daten ist nun durch Technologien wie HDInsight möglich.

Neuerungen bei SQL Server 2016

Auch diese Version von SQL Server wurde wieder von drei Leitsätzen geprägt, die in ähnlicher Form schon von den Vorversionen SQL Server 2012 und 2014 bekannt sind:

Mission Critical Performance

Deeper Insights Across Data

Hyperscale Cloud

Die grundsätzlichen Schwerpunkte Enterprise (Mission Critical), Business Intelligence (Insights) und Cloud wurden also erneut beibehalten, die Details variieren dafür wieder etwas.

Mission Critical Performance

Im Bereich Performance sind vor allem die überarbeiteten nicht gruppierten Columnstore-Indizes (jetzt auch auf änderbaren Daten) sowie die verbesserten In-Memory-optimierten Tabellen zu sehen. Beide Technologien haben nun deutlich weniger Einschränkungen als zuvor und sind sogar kombiniert einsetzbar. Bis vor Kurzem waren beide Features der Enterprise Edition von SQL Server vorbehalten. Seit dem Service Pack 1 von SQL Server 2016 sind diese sogar mit der Express Edition nutzbar, allerdings mit deutlichen Einschränkungen hinsichtlich des hierfür nutzbaren Speichers (maximal 256 MB), weshalb der Einsatz nach wie vor speziell mit der Enterprise Edition sinnvoll ist.

Bei AlwaysOn-Hochverfügbarkeitsszenarien sind nun bis zu drei synchrone Kopien sowie eine Lastverteilung unter den sekundären Datenbanken möglich.

Aber auch die Sicherheit der Daten wurde erhöht, indem diese nun sowohl auf dem Datenträger verschlüsselt vorliegen als auch verschlüsselt transportiert werden können. Mit Features wie Row Level Security (Zugriffsrechte auf einzelne Zeilen) und Dynamic Data Masking (automatisches Verschleiern von Daten) können sogar individuellere Sicherheitsanforderungen umgesetzt werden.

Zur einfacheren Überwachung der Performance von Abfragen gibt es auch ein paar Neuerungen. So wurde der Abfragespeicher (Query Data Store) neu eingeführt, über den man Abfragen und ihre Ausführungspläne zur späteren Analyse dauerhaft protokollieren lassen kann. Außerdem gibt es die Möglichkeit, mit den Live Query Statistics den tatsächlichen Ausführungsplan einer Abfrage bereits anzeigen zu lassen, während die Abfrage läuft. Dabei wird stets aktualisiert, wie viele Zeilen (und wie viel Prozent der Zeilen) einen einzelnen Knoten des Plans schon durchlaufen haben, sodass man schnell Schwachstellen im Plan erkennen, die Abfrage aber auch komplett abbrechen kann, wenn der Ausführungsplan zu ungünstig ist.

Faster Insights from any Data

Im Business-Intelligence-Bereich steht nun die Verwendung von verschiedensten Datenquellen im Vordergrund. Hier sind besonders zwei Technologien hervorzuheben: Mit PolyBase ist es möglich, über SQL-Abfragen sowohl auf relationale als auch auf nicht relationale Daten zuzugreifen. Für komplexere Auswertungen und Analysen kann inzwischen auch die bereits etablierte Sprache R genutzt werden.

Aber nicht nur die Datenquellen werden vielfältiger, sondern auch die Frontends. So gibt es unter dem Stichwort Mobile BI native Apps zur Visualisierung von Daten für Windows, iOS und Android.

Auch die BI-Tools wurden überarbeitet. Insbesondere die Master Data Services erfuhren eine Runderneuerung. Bei den Integration Services ist es nun trotz eines projektbasierten Modells wieder möglich, wahlweise auch einzelne SSIS-Pakete zu deployen.

Hyperscale Cloud

Beim Thema Cloud steht in dieser Version von SQL Server die Skalierbarkeit im Vordergrund. Bereits in der Vorgängerversion wurde unterstützt, nur einen Teil der Daten in die Cloud zu verlagern. Dies wurde nun dadurch weiter verfeinert, dass die Stretch-Database-Funktionalität eingeführt wurde, mit der die weniger häufig verwendeten Daten transparent (ohne Änderung an der Anwendung) in die Cloud verschoben werden können. Auch die Migration von Daten zu Microsoft Azure wird jetzt von neuen und verbesserten Tools unterstützt.

Sonstige Neuerungen

Während viele der oben genannten neuen Features vor allem für die größeren Editionen relevant sind, gibt es auch eine ganze Reihe von kleineren Änderungen, die nicht so recht in eine der drei genannten Schwerpunktthemen passen, dafür aber auch für die Express Edition verwendbar sind.

Bei der Installation fällt schon auf, dass die Clienttools nun konsequent von der Installation des SQL Server selbst getrennt sind. So umfasst der eigentliche Installer lediglich die Serverkomponenten, während es sowohl für die SQL Server Data Tools als auch für die übrigen Clienttools (SQL Server Management Studio, SQL Server Profiler etc.) jeweils separate Installer gibt, auf die bei der Serverinstallation lediglich verwiesen wird. In Kombination mit der Tatsache, dass die Clienttools nun besser dafür ausgelegt sind, auch ältere Versionen von SQL Server zu bedienen, gibt dies die Möglichkeit, nur noch das jeweils aktuellste SQL Server Management Studio und die aktuellsten SQL Server Data Tools zu verwenden, auch wenn im Unternehmen unterschiedliche Versionen von SQL Server im Einsatz sind.

Zur Speicherung von nicht einheitlich strukturierten Daten bietet SQL Server jetzt neben XML auch die Alternative, diese im JSON-Format abzulegen und daraus mit entsprechenden Methoden gezielt bestimmte Daten wieder herauszulesen. Mit den neuen Temporal Tables lässt sich eine automatische Versionierung von Daten einer Tabelle erreichen. Über entsprechende Abfragen können dann die Daten einer Tabelle zu einem bestimmten Zeitpunkt abgefragt werden.

Dazu kommen noch ein paar kleinere Erweiterungen des Microsoft SQL-Dialekts T-SQL wie die DROP IF EXISTS-Anweisung und die STRING_SPLIT-Funktion, die zwar nichts bahnbrechend Neues bieten, einige SQL-Skripte aber doch etwas vereinfachen und übersichtlicher werden lassen.

Neuerungen bei SQL Server 2017

Mit SQL Server 2017 wechselt Microsoft auch bei SQL Server zu schnelleren Release-Zyklen, die als Nebeneffekt mit sich bringen, dass die Änderungen zur jeweiligen Vorgängerversion nicht mehr ganz so gravierend sind, wie man es bisher gewohnt war.

Trotzdem sind zahlreiche interessante Neuerungen in verschiedenen Bereichen des Produkts enthalten:

Änderungen an der Datenbank-Engine

Die vielleicht unauffälligsten, aber trotzdem zu den wichtigsten zählenden Neuerungen beziehen sich auf die effektivere Erstellung von Ausführungsplänen für Abfragen. So gibt es nun eine automatische Plankorrektur, die Ausführungspläne unter bestimmten Umständen noch kurz vor der Ausführung anpasst. Hierdurch können Abfragen im Idealfall – ohne dass eine einzige Zeile Code geändert wird – deutlich schneller ausgeführt werden.

Sowohl die spaltenorientierten Indizes als auch die speicheroptimierten Tabellen wurden weiterentwickelt, sodass wieder einige Restriktionen entfallen sind, denen die Technologien bisher unterworfen waren.

T-SQL wurde um ein paar neue Konstrukte erweitert, darunter auch um eine Reihe von neuen Zeichenkettenfunktionen.

Als alternative Variante, Daten und deren Beziehungen untereinander zu speichern, bietet SQL Server nun die Möglichkeit, Graphdatenbanken zu nutzen, in denen die Daten in Knoten (Nodes) und die Beziehungen in Form von Kanten (Edges) gespeichert sind.

Überarbeiteter BI Stack

Bei den SQL Server Integration Services (SSIS) ist es nun möglich, mit dem neuen Scale Out-Feature die Ausführung von SSIS-Paketen auf mehrere Rechner zu verteilen, wobei die Überwachung der Ausführung trotzdem auf einem zentralen Master-Computer stattfindet.

Bei den SQL Server Analysis Services (SSAS) ist das tabulare Datenmodell nun als Standard voreingestellt. Dazu gibt es zahlreiche Detailverbesserungen wie beispielsweise neue Datenquellen, einen IN-Operator für die Abfragesprache DAX und vieles mehr.

Die SQL Server Reporting Services (SSRS) sind jetzt nicht mehr im Installationsprogramm von SQL Server verfügbar, sondern müssen nachträglich separat installiert werden. Dafür können nun Kommentare in Reports untergebracht werden, und auch native DAX-Abfragen auf ein SSAS-tabulares Datenmodell sind in den Reporting Services möglich.

Selbst die Master Data Services (MDS) erfahren mit SQL Server 2017 eine Weiterentwicklung, die sich vor allem auf eine gesteigerte Performance beziehen. Aber auch die MDS-Webanwendung wurde überarbeitet und ermöglicht nun im Explorer die sortierte Anzeige von Entities, Collections und Hierarchies.

Im Bereich Machine Learning wurden die SQL Server R Services umbenannt in SQL Server Machine Learning Services und unterstützen nun neben der Sprache R auch Python, wodurch die Nutzung vieler Open-Source-Bibliotheken ermöglicht wird.

Sonstige Neuerungen

Eine der größten Neuerungen von SQL Server 2017 ist sicherlich, dass das Produkt nun auf weiteren Plattformen wie Linux oder in einem Docker-Container genutzt werden kann.

Die verschiedenen SQL Server-Editionen im Vergleich

Vom Microsoft SQL Server gibt es mittlerweile eine ganze Reihe von unterschiedlichen Editionen, von denen die in diesem Buch hauptsächlich behandelte Express Edition nur eine Variante darstellt. Dazu gibt es vor allem die Haupteditionen Standard (für kleinere und mittlere Unternehmen) und Enterprise (für große Unternehmen mit Bedarf an hoher Ausfallsicherheit). Die mit SQL Server 2012 eingeführte Business Intelligence Edition ist dagegen seit SQL Server 2016 wieder weggefallen, sodass man sich für BI-Szenarien zwischen den beiden verbleibenden Haupteditionen (Standard und Enterprise) entscheiden muss.

Um abzuschätzen, welche Edition für welches Datenbankprojekt am sinnvollsten ist, habe ich hier eine kleine Übersicht zusammengestellt:

Tabelle 2.3: Obergrenzen der verschiedenen SQL Server 2017-Editionen für CPUs, Hauptspeicher und Datenbankgröße

Da sich die Lizenzen inzwischen nicht mehr auf die echten Prozessoren, sondern auf die Anzahl der Prozessorkerne beziehen, wurden auch die Beschränkungen für die Editionen entsprechend angepasst, sodass hier jeweils Obergrenzen für CPUs und Prozessorkerne zu finden sind.

Hardware- und Betriebssystembeschränkungen beachten

Auch dort, wo in der obigen Tabelle »unbegrenzt« angegeben ist, gelten natürlich die Obergrenzen, die vom Betriebssystem und der verwendeten Hardware vorgegeben werden.

SQL Server Compact Edition

Während alle anderen Editionen des SQL Server aufeinander aufbauen (und jeweils alle Features der kleineren Editionen beinhalten), nimmt SQL Server Compact Edition eine Sonderstellung ein. Hierbei handelt es sich nicht um eine Datenbank, die von einem speziellen Datenbankdienst verwaltet wird, sondern eher um ein einfaches Datenbankmodul, das prozessintern verwendet werden kann und für die lokale Speicherung von Daten ausgelegt ist.

Dadurch lässt es sich leicht in Anwendungen einbetten und ist sogar für mobile Geräte auf Basis von Windows Mobile (wie beispielsweise Smartphones) nutzbar. Hier ist auch die Herkunft des Produkts zu sehen, das seine Ursprünge in SQL Server CE bzw. später in SQL Server Mobile hat. Dieses Datenbankformat war jedoch ausschließlich auf mobilen Geräten nutzbar, was das Entwerfen von Datenbanken nicht gerade vereinfachte. Mit der Ablösung von SQL Server Mobile durch die Compact Edition wurde diese Beschränkung aufgehoben, sodass es endlich ein einheitliches Datenformat für mobile Geräte und Desktop-PCs gab.

Komplizierter wurde es allerdings wieder mit der Einführung von Windows Phone. Während mit Windows Phone 7 die SQL Compact Edition für Entwickler gar nicht nutzbar war, wurde dies mit Windows Phone 7.5 (Codename Mango) wieder etwas korrigiert. Allerdings liegen die Datenbanken hier im sogenannten Isolated Storage, der von außen nicht ansprechbar ist. Es ist also nicht mehr möglich, eine SQL Server Compact-Datenbank einfach auf das Smartphone zu kopieren, wie es mit Windows Mobile 6.x noch der Fall war. Der Zugriff aus der Anwendung auf die Daten ist auch ausschließlich per LINQ to SQL möglich und nicht direkt per T-SQL.

SQL Server Compact und Windows Phone

Der Grund dafür, dass SQL Server Compact auf Windows Phone 7 ursprünglich gar nicht und mit Windows Phone 7.5 nur eingeschränkt möglich ist, liegt im Gesamtkonzept von Windows Phone. Dieses sieht vor, dass auf dem Gerät keine größeren Datenmengen gespeichert werden, sondern auf diese bei Bedarf online (beispielsweise aus einer SQL Azure-Datenbank) zugegriffen wird. Für die lokale Speicherung von kleinen Datenmengen – wie beispielsweise Konfigurationsdaten – werden XML-Dateien favorisiert.

Wesentlicher Nachteil bei diesem Produkt ist, dass sich die Compact Edition aufgrund der prozessinternen Nutzung nicht für Mehrbenutzerszenarios eignet. Ideal dagegen ist die Compact Edition für selbst entwickelte Desktop- oder Pocket PC- bzw. Smartphone-Anwendungen, die eine Möglichkeit der internen Datenspeicherung benötigen (beispielsweise für die Speicherung von Konfigurationseinstellungen).

Wie die Express Edition kann auch die Compact Edition kostenlos heruntergeladen, verwendet und zusammen mit eigenen Anwendungen weiterverteilt werden.

SQL Server Compact Edition wird in Kapitel 15 im Abschnitt »Die SQL Server Compact Edition« auf Seite 327 ausführlicher behandelt.

SQL Server Express Edition

Die Express Edition ist ebenfalls kostenfrei erhältlich. Im Gegensatz zur Compact Edition handelt es sich hierbei jedoch um ein vollwertiges Multiuser-Datenbank-Management-System, das auch einen dedizierten Datenbankserverdienst beinhaltet. Obwohl der Schwerpunkt auf die lokale Datenspeicherung gelegt wurde, ist die Express Edition auch für Client-Server-Szenarien nutzbar. Damit bildet SQL Server Express (den es seit der 2005er-Generation des SQL Server gibt) das Nachfolgeprodukt der Microsoft Data Engine (MSDE). Die zugrunde liegende Technik ist jedoch dieselbe wie die der größeren SQL Server-Editionen, wodurch eine einfache Skalierbarkeit gewährleistet wird. Eine existierende Datenbank kann also einfach in eine größere Server-Edition »umgehängt« werden, wenn die Leistung der Express Edition einmal nicht mehr ausreichen sollte.

Aber selbst von der Express Edition gibt es Untervarianten. Die eigentliche Express Edition beinhaltet keine Administrationsoberfläche. SQL Server Express mit Advanced Services enthält einige Zusätze wie beispielsweise die Reporting Services, mit denen sich ansprechende Berichte erstellen und verwalten lassen, die Integration der Programmiersprachen R und Python sowie die weiter unten beschriebene SQL Server LocalDB. Vor SQL Server 2016 gab es noch eine dritte Variante mit der Bezeichnung SQL Server Express mit Tools, die der Grundvariante ergänzt um eine einfache Version des SQL Server Management Studio entsprach. Da das SQL Server Management Studio mittlerweile ohnehin separat installiert werden muss, ist diese Variante überflüssig geworden und weggefallen.

Ab dem Service Pack 1 von SQL Server 2016 (und damit auch mit SQL Server 2017) ging Microsoft dazu über, viele Features, die bis dahin nur den größeren Editionen vorbehalten waren, auch in der Express Edition nutzbar zu machen, damit möglichst jeder diese Features ausprobieren kann und auch T-SQL-Code möglichst für alle Editionen unverändert genutzt werden kann. Der Unterschied zu den größeren Editionen liegt seitdem vor allem in den unterschiedlichen Begrenzungen für Datenbankgrößen sowie die Hauptspeicherund Prozessornutzung (siehe Tabelle zu Beginn dieses Abschnitts).

SQL Server Web Edition

Die SQL Server Web Edition ist – wie der Name schon vermuten lässt – speziell für den Einsatz auf Webservern vorgesehen. In den meisten Punkten entspricht der Leistungsumfang in etwa der Standard Edition. Lediglich bei den Entwicklungstools sowie dem Management Studio (das auch hier nur in der Grundvariante enthalten ist) orientiert sich die Ausstattung an der Express Edition.

Das Alleinstellungsmerkmal im Vergleich zu den anderen Editionen ist aber sicherlich das Lizenzierungsmodell, da bei dieser Edition nicht nach Clients lizenziert wird (was sich beim Webeinsatz auch schwer ermitteln ließe), sondern ein Betrag pro CPU bzw. Prozessorkern und Monat der Nutzung anfällt.

SQL Server Standard Edition

Die SQL Server Standard Edition ist, wie der Name bereits sagt, als Standardlösung für produktive Server gedacht. Im Gegensatz zur größeren Enterprise Edition richtet sich die Standard Edition aber primär an kleine und mittelgroße Unternehmen und beinhaltet alle wesentlichen Features inklusive der Business-Intelligence-Komponenten.

SQL Server Enterprise Edition

Die Enterprise Edition ist vor allem für den Einsatz in großen Unternehmen konzipiert. Selbstverständlich bietet die Enterprise Edition alle verfügbaren Features der kleineren Editionen, wobei vor allem großer Wert auf Ausfallsicherheit und Hochverfügbarkeit gelegt wurde.

Da die Nutzung der Enterprise Edition mit recht hohen Lizenzkosten verbunden ist, gibt es hierzu auch eine Evaluationsversion, mit der man das Produkt 180 Tage lang kostenfrei testen kann. Diese Zeit sollte sicherlich ausreichen, um auch komplexere Testszenarien aufbauen zu können.

Da die Datacenter Edition – die mit SQL Server 2008 R2 eingeführt wurde – bei SQL Server 2012 wieder weggefallen ist, sind damit auch die (ohnehin recht weit gefassten) Beschränkungen zu CPU und Hauptspeicher für die Enterprise Edition wieder aufgehoben worden.

StreamInsight jetzt auch für kleinere Editionen verwendbar

Das bisher der Datacenter Edition und der Parallel Data Warehouse Edition vorbehaltene StreamInsight, mit dem sich eine Echtzeitdatenverarbeitung von komplexen Ereignissen realisieren lässt, ist nun auch für kleinere Editionen nutzbar. So gibt es für SQL Server 2012 Enterprise eine Premium-Edition von StreamInsight, die auch Hochverfügbarkeit unterstützt, während die Standard-Edition von StreamInsight mit SQL Server 2012 sogar für die Standard und Web Edition verwendbar ist.

SQL Server Parallel Data Warehouse Edition

Um die massiv parallele Verarbeitung zu nutzen, können mehrere Server wahlweise als sogenannte Control Nodes oder Compute Nodes miteinander arbeiten. Dazu ist eine Partitionierung von extrem großen Tabellen über mehrere Knoten hinweg (Sharding) möglich.

SQL Server Developer Edition

Die Developer Edition stellt eine Besonderheit dar, da sie alle Features der Enterprise Edition beinhaltet, jedoch mittlerweile kostenlos erhältlich ist.2 Die Ursache dafür erklärt sich daraus, dass die Developer Edition nicht zum produktiven Serverbetrieb lizenziert ist, sondern lediglich zur Entwicklung von Datenbanken bzw. Datenbankanwendungen. Dazu gibt es noch eine weitere Abweichung, die die Developer Edition interessant macht: Während die Enterprise Edition nur auf den Servervarianten von Windows eingesetzt werden kann, lässt sich die Developer Edition auch auf den Arbeitsplatzversionen – wie beispielsweise Windows 7 – installieren und verwenden.

Daher ist es in vielen Entwicklerteams üblich, dass die Entwickler lokal mit einer Developer Edition entwickeln und die größeren Editionen wie beispielsweise Standard oder Enterprise Edition lediglich als Staging- und Testserver zum Einsatz kommen.

SQL Server LocalDB

Bei allen zuvor genannten Editionen – mit Ausnahme von SQL Server Compact – wird seit SQL Server 2012 die SQL Server LocalDB mitgeliefert, die aber auch separat aus dem Internet heruntergeladen werden kann. Dabei handelt es sich um eine Variante von SQL Server Express, die nicht im Kontext eines Serverdiensts läuft, sondern als Benutzerinstanz bei Bedarf gestartet wird. Im Gegensatz zu SQL Server Compact ist sie voll kompatibel zur jeweils passenden Version von SQL Server 2016, sodass diese Komponente zumindest im Desktopbereich die Compact Edition ablösen dürfte.

SQL Azure

Im Zusammenhang mit der neuen Windows Azure Service Platform wird natürlich auch ein entsprechender Datenbankservice angeboten. Dieser war ursprünglich unter dem Namen SQL Data Services geplant, wurde inzwischen aber durch SQL Azure abgelöst. In beiden Fällen handelt es sich aber nicht um ein Produkt, das Sie auf einem lokalen Server installieren können, sondern um einen Service, der in einem Microsoft Data Center gehostet wird.

SQL Azure wird in Kapitel 15 im Abschnitt »Microsoft Azure SQL-Datenbank« auf Seite 330 ausführlicher behandelt.

Übungen zu diesem Kapitel

In diesem Abschnitt finden Sie einige Übungen, mit denen Sie das in diesem Kapitel Erlernte vertiefen können. Die richtigen Antworten und Lösungen finden Sie in Anhang C dieses Buchs.

Übung 2.1

Wozu dienen die mit SQL Server 2012 eingeführten File Tables?

Übung 2.2

Welche Möglichkeit bietet SQL Server neben dem XML-Format noch, um nicht einheitlich strukturierte Daten zu speichern?

Übung 2.3

Welche der beiden verfügbaren Express-Editionen (Express, Express mit Advanced Services) können Sie verwenden, wenn Sie die SQL Server Reporting Services nutzen möchten?

Übung 2.4

Wodurch unterscheiden sich Enterprise und Developer Edition von SQL Server?

Zusammenfassung

Nach einem kurzen Überblick über die Historie des Produkts hat dieses Kapitel Sie mit den Neuerungen der 2017er-Generation des SQL Server vertraut gemacht.3

Änderungen an der Datenbank-Engine:

effektivere Erstellung von Ausführungsplänen für Abfragen

automatische Plankorrektur

weniger Einschränkungen bei spaltenorientierten Indizes

weniger Einschränkungen bei speicheroptimierten Tabellen

T-SQL-Erweiterungen (neue Zeichenkettenfunktionen)

Graphdatenbanken mit Knoten und Kanten

Überarbeiteter BI Stack:

Scale Out-Feature zur verteilten Ausführung von SSIS-Paketen

SQL Server Analysis Services (SSAS)

–  tabulares Datenmodell nun Standard

–  zahlreiche Detailverbesserungen

SQL Server Reporting Services (SSRS)

–  separater Installer

–  Kommentare in Reports

–  native DAX-Abfragen auf ein SSAS-tabulares Datenmodell

Master Data Services (MDS)

–  gesteigerte Performance

–  überarbeitete MDS-Webanwendung

Machine Learning: neben R wird nun auch Python unterstützt

Sonstiges:

SQL Server für Linux

Nutzung von SQL Server in Docker Containern

Anschließend haben Sie einen Überblick über die verschiedenen Editionen des SQL Server bekommen:

SQL Server Compact Edition kostenfreies, prozessintern verwendetes Datenbankmodul, das in Form von Assemblies mit eigenen Anwendungen verteilt werden kann

SQL Server Express Edition kostenfreie Variante des SQL Server, die vor allem für Privatanwender sowie zum Kennenlernen der SQL Server-Produktfamilie geeignet ist

SQL Server Web Edition für den Einsatz auf Webservern optimierte Variante, die nicht pro Client, sondern ausschließlich pro Prozessorkern und Nutzungsmonat lizenziert wird

SQL Server Standard Edition Standardvariante des SQL Server, die für kleinere und mittelgroße Unternehmen konzipiert ist

SQL Server Business Intelligence Edition Edition, die für die Nutzung im BI-Umfeld optimiert ist

SQL Server Enterprise Edition Edition, die für große Unternehmen gedacht und auf Stabilität und optimale Skalierbarkeit ausgelegt ist

SQL Server Developer Edition gleicher Funktionsumfang wie die Enterprise Edition, aber nur zu Entwicklungszwecken lizenziert

SQL Server Parallel Data Warehouse Edition vom Funktionsumfang mit der Enterprise Edition vergleichbar, wird aber als Komplettlösung zusammen mit zertifizierter Hardware angeboten

SQL Azure Cloud-basierte Variante des SQL Server

Nun wird es Zeit, die Express Edition von SQL Server zu installieren, damit Sie das Produkt gleich ausprobieren können.

Kapitel 3

Installation und erste Schritte

In diesem Kapitel lernen Sie

welche Systemvoraussetzungen für die Installation von SQL Server 2017 Express erfüllt sein müssen

wo Sie die Installationsdateien für SQL Server 2017 Express erhalten können

welche Einstellungen bei der Installation vorzunehmen sind

welche die wichtigsten Tools für SQL Server sind und was Sie damit machen können

Systemvoraussetzungen