Microsoft SQL Server

Der Microsoft SQL Server ist ein relationales Datenbankmanagementsystem von Microsoft.

Geschichte

Zeittafel Microsoft SQL Server[3]
Versions-IDJahrRelease NameProjektbezeichnung
1.0
(OS/2)
1989SQL Server 1.0
(16bit)
1.1
(OS/2)
1990SQL Server 1.1
(16bit)
1.11
(OS/2)
1991SQL Server 1.1
(16bit)
4.2
(OS/2)
1992SQL Server 4.2
(16bit)
4.21
(WinNT)
1993SQL Server 4.21SQLNT
6.01995SQL Server 6.0SQL95
6.51996SQL Server 6.5Hydra
7.01998SQL Server 7.0Sphinx[4]
1999SQL Server 7.0
OLAP Tools
Plato
8.02000SQL Server 2000Shiloh[5]
8.02003SQL Server 2000
64-bit Edition
Liberty
9.02005SQL Server 2005Yukon
10.02008SQL Server 2008Katmai
10.252010SQL AzureMatrix (aka CloudDB)
10.52010SQL Server 2008 R2Kilimanjaro (aka KJ)
11.02012SQL Server 2012Denali
12.02014SQL Server 2014Hekaton
13.02016SQL Server 2016
14.02017SQL Server 2017SQL Server vNext
15.02019SQL Server 2019

Microsoft SQL Server entstand aus einer Zusammenarbeit der beiden Unternehmen Microsoft und Sybase Ende der 1980er Jahre.[6] 1989 wurde die erste Version für das von Microsoft und IBM entwickelte Betriebssystem OS/2 veröffentlicht. Das Produkt entsprach prinzipiell dem Sybase SQL Server 4.0 für Unix und VMS. 1992 erschien der Microsoft SQL Server 4.2 für OS/2 1.3. Im Anschluss mit der Veröffentlichung von Windows NT im Jahr 1993 erschien schon bald Microsoft SQL Server 4.21, der anstatt auf OS/2 auf Windows NT als Betriebssystem setzte. In dieser Zeit lockerte sich außerdem die Kooperation zwischen Microsoft und Sybase. Im Jahr 1995 erschien mit Microsoft SQL Server 6.0 eine eigenständige Weiterentwicklung der Kooperation, dem 1996 die Version 6.5 folgte. Mit der Version 7.0, die im Jahr 1999 erschien, verabschiedete sich Microsoft von der mit Sybase entwickelten Codebasis und brachte eine vollkommen neue Datenbank-Engine auf den Markt. Diese war auch Basis in den darauffolgenden Versionen ab SQL Server 2000.

Ab der Version SQL Server 2017 wurde der Support für folgende Linux-Systeme ergänzt: Red Hat Enterprise Linux, SUSE Linux Enterprise Server, Ubuntu und Docker.[2]

Eigenschaften

Der SQL Server ist ein relationales Datenbankmanagementsystem, das sich am Standard der aktuellen SQL-Version orientiert. Der Microsoft SQL Server liegt in verschiedenen Editionen vor, die ein vielfältiges Angebot abdecken. Die Editionen unterscheiden sich vor allem im Preis, ihren Funktionen und Hardwareeinschränkungen. Der MSSQL-Server kann auch als Data Warehouse genutzt werden, indem es den Mitarbeitern in einem Unternehmen eine Sicht auf das Geschäft und dessen Daten ermöglicht. Durch seine Business-Intelligence-Plattform bietet er eine skalierbare Infrastruktur, die es der IT ermöglicht, die Nutzung von Business Intelligence im gesamten Unternehmen zu fördern und Business Intelligence dort bereitzustellen, wo Anwender es wünschen.[7] Der SQL Server besteht aus vielen Services, wie z. B. Analysis Services, Reporting Services und Integration Services, und Tools, z. B. den SQL Server Data Tools (SSDT). Für den Zugriff, Entwurf und die Entwicklung unabhängig von einer konkreten Anwendung stellt Microsoft das SQL Server Management Studio kostenlos zur Verfügung.

Microsoft SQL Server verwendet für Datenbankabfragen die SQL-Variante T-SQL (Transact-SQL). T-SQL fügt hauptsächlich zusätzliche Syntax zum Gebrauch in Stored Procedures und Transaktionen hinzu. Weiterhin unterstützt MSSQL OLE DB und ODBC (Open Database Connectivity).

Seit SQL Server 2005 (Codename „Yukon“) werden unter anderem Programmiersprachen, welche auf der .NET CLR laufen, für das Erstellen von Stored Procedures unterstützt. Mit Visual Studio wird seit 2005 auch eine passende IDE mitgeliefert.

In einer Windows-Installation (sowohl auf Servern als auch auf Individualsystemen) können gleichzeitig mehrere (gleiche oder unterschiedliche) MSSQL-Server laufen, die als Instanzen bezeichnet werden. Jede Instanz kann wiederum mehrere Datenbanken enthalten.

Redundanz / Ausfallsicherheit

Microsoft bietet eine Reihe von Techniken an, um Daten redundant zu speichern.

ClusteringReplicationLog ShippingMirroringAlwaysOn
Availability Groups
AlwaysOn
Failover Cluster Instance
EinführungSQL Server 6.5SQL Server 7.0SQL Server 2000SQL Server 2005SQL Server 2012SQL Server 2012
Mindest. LizenzStandard / (Web)Enterprise: Peer-To-Peer
Standard: Snapshot /Transactional / Merge
Standard / (Web)StandardEnterpriseStandard
Max. Anzahl Kopien15unbegrenztunbegrenzt13unbegrenzt
Zusätzliche Infrastrukturgeteilte Netzwerkresource(Distributor Server)Monitoring Server
(Optional)
Witness Server
(Optional)
geteilte Netzwerkresource
Failovermanuell /
automatisch
nur manuellnur manuellmanuell /
automatisch
manuell /
automatisch
manuell /
automatisch
Bezeichnung QuelleNodePublisherPrimaryPrincipalPrimaryNode
Bezeichnung KopieNodeSubscriberSecondaryMirrorSecondaryNode
Sicherung vonServer / InstanzDatenbank(-objekten)DatenbankDatenbankDatenbank(-gruppe)Server / Instanz

Es ist möglich, gewisse Redundanztechnologien gleichzeitig parallel zu betreiben – zum Beispiel die Datenbankreplikation zusammen mit einer AlwaysOn-Availability-Group.[8] Die „Datenbankreplikation“ teilt sich weiterhin in die Untervarianten „Snapshot Replication“, „Transactional Replication“, „Merge Replication“ und „Peer-To-Peer-Replication“.

Versionen

SQL Server 2012

Der unter dem Codenamen Denali entwickelte SQL Server 2012 wurde am 6. März 2012 veröffentlicht. Bei den Editionen ließ Microsoft die erst beim Vorgänger eingeführte Datacenter Edition wieder wegfallen und führte stattdessen eine neue Edition Business Intelligence ein. Die Neuerungen oder Verbesserungen fanden in allen Bereichen des SQL Servers statt, darunter im Datenbankmodul, dem Analyse Service, dem Reporting Service und der Replikation.[9]

Zu den wichtigsten Änderungen bzw. Neuerungen gehören unter anderem Performanceoptimierung für SharePoint, die Hochverfügbarkeitslösung „Always On“, die Cloud-Lösung „Azure“, die Data Quality Services „DQS“, Contained Database und Columnstore Index.

Außerdem wurde die SQL-eigene Programmierschnittstelle T-SQL um weitere Funktionen ergänzt. Auf der anderen Seite wurden einige Funktionen der Vorgängerversionen in SQL Server 2012 entfernt[10] und viele Funktionen als Deprecated gekennzeichnet,[11] was bedeutet, dass diese Funktionen in zukünftigen Versionen wegfallen.

Neue T-SQL Funktionen in SQL Server 2012[12]
  • Konvertierung:
    • PARSE()
    • TRY_CONVERT()
    • TRY_PARSE()
  • Datum und Uhrzeit:
    • DATEFROMPARTS()
    • DATETIME2FROMPARTS()
    • DATETIMEOFFSETFROMPARTS()
    • EOMONTH()
    • SMALLDATETIMEFROMPARTS()
    • TIMEFROMPARTS()
  • Logik:
    • CHOOSE()
    • IIF()
  • Zeichenkette:
    • CONCAT()
    • FORMAT()
  • Analytik:
    • CUME_DIST()
    • FIRST_VALUE()
    • LAG()
    • LAST_VALUE()
    • LEAD()
    • PERCENTILE_CONT()
    • PERCENTILE_DISC()
    • PERCENT_RANK()

SQL Server 2014

Die Version 2014 (Codename Hekaton, freigegeben am 1. April 2014[13]) des SQL Servers wurde in Hinblick auf die performante Verarbeitung großer Datenmengen weiter optimiert, um die Echtzeit-Transaktionsverarbeitung zu verbessern. Hierzu gehören die Fähigkeit, Tabellen oder ganze Datenbanken komplett im Hauptspeicher zu halten (In-Memory-Datenbank) sowie eine verbesserte Handhabung spaltenbasierter Indexe.

Es ist nun auch möglich, SQL-Server-Datendateien in Azure abzulegen und eine SQL-Server-Datenbank auf einem virtuellen Computer in Azure zu hosten.

Verschlüsselung von Sicherungen während des Sicherungsvorganges mittels AES 128, AES 192, AES 256 und Triple DES wurde hinzugefügt.

Die Unterstützung von Failoverclusterinstanzen wurde verbessert.[14]

SQL Server 2017

Die aktuelle Version 2017 wurde am 2. Oktober 2017 freigegeben.[15]

Der SQL Server 2017 kann nun vom mehreren Linux-Distributionen, die auf Docker-Containern ausgeführt werden können, und SQL VM in Azure ausgeführt werden.[16]

Die Unterstützung für Maschinelles Lernen wurde ausgebaut. Es wird als Sprache für die Datenanalyse nun R und Python unterstützt.

Die Engine beinhaltet nun auch eine automatische Datenbankoptimierung. Es gibt Erweiterungen von dynamischen Verwaltungsansichten und -funktionen sowie neue T-SQL-Textfunktionen.[17]

Editionen

Abhängig von der Version des Microsoft SQL Servers gibt es verschiedene Editionen des Produkts. Die Editionen unterscheiden sich entweder in ihrem Funktionsumfang oder der maximalen Hardwareunterstützung. So steht höherwertigen Editionen der Zugriff auf mehr Arbeitsspeicher oder mehr Prozessoren zur Verfügung, wodurch sie mehr Leistung bieten. Der jeweilige Name einer Edition deutet dabei auf seinen angedachten Einsatzort, respektive Einsatzzweck hin. So wird beispielsweise die unter SQL Server 2008 teuerste Version Datacenter-Edition für große Rechenzentren verwendet, während die SQL Server Web Edition speziell für Webhoster oder Websites gedacht ist.

Die folgende Tabelle listet eine Übersicht verschiedener SQL-Server-Versionen und ihrer erhältlichen Editionen:

VersionEnterpriseDatacenterBusiness IntelligenceStandardExpressWorkgroupWebDeveloper
SQL Server 2000[18]janeinneinjaja (MSDE)[19]janeinja
SQL Server 2005[20]janeinneinjajajaneinja
SQL Server 2008 / 2008 R2jajaneinjajajajaja
SQL Server 2012[21]janeinjajajaneinjaja
SQL Server 2014[22]janeinjajajaneinjaja
SQL Server 2016[23]janeinneinjajaneinjaja
SQL Server 2017[24]janeinneinjajaneinjaja

Express Edition

Die Express Edition ist kostenlos erhältlich und besitzt deutliche Einschränkungen, z. B. in Bezug auf Redundanz, Funktionsumfang, maximal verwendbarem Speicher und CPU-Kernen pro Instanz sowie maximalem Speicherplatz je Datenbank. Die Beschränkungen wurden diverse Male erhöht:

VersionCPU-Kerne je InstanzSpeicher je InstanzSpeicherplatz je Datenbank
200811 GB4 GB
2008 R2[25]11 GB10 GB
2012[26], 2014[27]41 GB10 GB
2016+[28]41410 MB10 GB

In Hinblick auf die Kerne ist anzumerken, dass dies bei der Express Edition die Kerne desselben Prozessors („Sockel“) sein müssen. Das System kann mehr CPU-Kerne, CPU-Sockel und Arbeitsspeicher besitzen, diese werden dann nicht von SQL Server Express Edition genutzt.

Auch die Express Edition with Advanced Services ist kostenlos erhältlich und besitzt u. a. eine Volltextsuche.

Datentypen

Nachfolgend sind die von Microsoft SQL unterstützten Datentypen aufgelistet. Jeder der Typen unterstützt neben seinem Wertebereich noch den Nullwert, sofern er nicht NOT NULL definiert ist. Bei der Erstellung von Schlüsselkandidaten (unique key contraints) zählt ein Nullwert in SQL Server wie jeder normale Wert; bei einem nicht zusammengesetzten Schlüsselkandidaten darf somit höchstens ein Nullwert in der Spalte vorkommen.[29]

GruppeUntergruppeNameSpeicherbedarf in ByteWertebereichUnterstützungAuflösung, Bemerkungen
Numerische WerteGanzzahligbit0,125–10 bis 10 oder 1, bis zu 8 Spalten einer Tabelle teilen sich das Byte
tinyint10 bis 255
smallint2−32768 bis 32767
int4−2147483648 bis 2147483647
bigint8−9223372036854775808 bis 9223372036854775807
Festkommasmallmoney4−214748,3648 bis 214748,3647int / 10000
money8−922337203685477,5808 bis 922337203685477,5807bigint / 10000
numeric(1–38,0–38), decimal(1–38,0–38)5, 9, 13 oder 17−10^38 +1 bis 10^38 −11. Parameter: Anzahl Stellen; 2. Parameter: davon Nachkommastellen
Gleit-/Fließkommareal, float(24)4−3,40E+38 bis 3,40E+38IEEE 754, aber ohne −0, ±∞ und NaN
float, float(53)8−1,79E+308 bis 1,79E+308IEEE 754, aber ohne −0, ±∞ und NaN
Datum und Zeitsmalldatetime41900-01-01 00:00 bis 2079-06-06 23:59nur Minute
datetime81753-01-01 00:00:00 bis 9999-12-31 23:59:59.9971/300 s
datetime2(0–7)6–80001-01-01 00:00:00 bis 9999-12-31 23:59:59.9999999ab 2008
datetimeoffset(0–7)8-100001-01-01 00:00:00 bis 9999-12-31 23:59:59.9999999ab 2008mit Zeitzone
date30001-01-01 bis 9999-12-31ab 2008nur Tage
time(0–7)3–500:00:00.0000000 bis 23:59:59.9999999ab 2008100 ns
ZeichenfolgenNicht-Unicodechar(1–8000)1-8000variable CodePage
varchar(1–8000)1-8000variable CodePage
varchar(max)1 Byte–2 GBvariable CodePage
text16 Byte–2 GBVeraltet (ab 2012)[11]Alias: CLOB, variable CodePage
Unicode (UTF16)nchar(1–4000)2–8000[30]CodePage 1200 Unicode
nvarchar(1–4000)2–8000CodePage 1200 Unicode
nvarchar(max)2 Byte–2 GBCodePage 1200 Unicode
ntext16 Byte–2 GBVeraltet (ab 2012)[11]Alias: NCLOB, CodePage 1200 Unicode
Binärbinary(1–8000)1–8000
varbinary(1–8000)1–8000
varbinary(max)1 Byte–2 GB
image16 Byte–2 GBVeraltet (ab 2012)[11]Alias: BLOB
Anderefür Tabellensqlvariantkann alles sein
xmlhat Methoden
uniqueidentifier16GUID
timestamp8auto update, Datensatz Änderungs-Zähler, Bigint binär
geographyab 2008hat Methoden
geometryab 2008Geometriedaten, hat Methoden
hierarchyidab 2008hat Methoden
nur Prozedurencursorvirtuelle Liste
tablevirtuelle Liste

Literatur

SQL Server 2014
SQL Server 2012
  • Kalen Delaney: Microsoft SQL Server 2012 Internals. 2013, ISBN 978-0-7356-5856-1.
  • Itzik Ben-Gan: Microsoft SQL Server 2012 T-SQL Fundamentals. 2012, ISBN 978-0-7356-5814-1.
  • Grant Fritchey: SQL Server 2012 Query Performance Tuning. 3. Auflage. 2012, ISBN 978-1-4302-4203-1.
  • Christian Bolton, Justin Langford, Glenn Berry, Gavin Payne, Amit Banerjee, Rob Farley: Professional SQL Server 2012 Internals and Troubleshooting. 2012, ISBN 978-1-118-17765-5.
  • Jason Brimhall, David Dye, Jonathan Gennick, Andy Roberts, and Wayne Sheffield: SQL Server 2012 T-SQL Recipes. 3. Auflage. 2012, ISBN 978-1-4302-4200-0.
  • Jason Strate, Ted Krueger: Expert Performance Indexing for SQL Server 2012. 2012, ISBN 978-1-4302-3741-9.
SQL Server 2008
Weitere
  • Michael Wagner: SQL/XML:2006 – Evaluierung der Standardkonformität ausgewählter Datenbanksysteme. Diplomica Verlag, 2010, ISBN 3-8366-9609-6.

Weblinks

Commons: Microsoft SQL Server – Sammlung von Bildern, Videos und Audiodateien

Einzelnachweise

  1. Editions and supported features of SQL Server 2019 (15.x). 4. November 2019 (abgerufen am 23. Dezember 2020).
  2. a b Installieren von SQL Server 2017 unter Linux, 21. Dezember 2017, abgerufen am 5. März 2018
  3. SQL Server Version und SP-IDs auf Microsoft SQL Server Version List (abgerufen am 26. April 2018)
  4. SQL Server 7 "Sphinx" auf Winsupersite.com (abgerufen am 13. September 2011)
  5. PRB: Eine Fehlermeldung auf Microsoft.com (abgerufen am 13. September 2011)
  6. MSDN: SQL MythBusters – „SQL Server is really a Sybase product not a Microsoft one.“
  7. http://www.microsoft.com/germany/sql/2008/default.mspx
  8. Microsoft MSDN: Configure Replication for AlwaysOn Availability Groups (SQL Server)
  9. What’s New in SQL Server 2012
  10. Microsoft MSDN: Discontinued Database Engine Functionality in SQL Server 2012
  11. a b c d Microsoft TechNet: Deprecated Database Engine Features in SQL Server 2012
  12. Microsoft MSDN: Programmability Enhancements
  13. SQL Server Blog: SQL Server 2014 now Generally Available
  14. MSDN: Neuigkeiten (Datenbankmodul) – SQL Server 2014
  15. SQL Server Blog: SQL Server 2017 now Generally Available
  16. Microsoft Cloud: SQL Server 2017: What's New in the Database Engine? 19. April 2017, abgerufen am 17. Mai 2019.
  17. Prashanth Jayaram: What’s new in SQL Server 2017. In: sqlshack. Abgerufen am 17. Mai 2019 (englisch).
  18. Microsoft: SQL Server 2000 - Editionen
  19. Microsoft SQL Server 2000 Desktop Engine (MSDE 2000) Version A im Microsoft Download Center, abgerufen am 15. Februar 2013.
  20. Microsoft: SQL Server 2005 – Editionen
  21. Microsoft: SQL Server 2012 – Editionen
  22. MSDN: Editionen und Komponenten von SQL Server 2014
  23. SQL Server Pricing, abgerufen am 8. Juni 2016
  24. SQL Server 2017 SP1 – Editionen | Microsoft. Abgerufen am 14. März 2018 (deutsch).
  25. Features Supported by the Editions of SQL Server 2008 R2
  26. Features Supported by the Editions of SQL Server 2012
  27. Features Supported by the Editions of SQL Server 2014
  28. Editions and supported features of SQL Server 2016
  29. UNIQUE Constraints
  30. http://msdn.microsoft.com/de-de/library/ms186939.aspx