close

Microsoft SQLServer

Zur Navigation gehen Zur Suche gehen
Microsoft SQLServer
Teil eines Verwaltungssystems für relationale Datenbanken
Microsoft SQL Server 1 11 Network Enhancements.png
Allgemeine Information
Programmtyp Verwaltungssystem relationale Datenbank
Entwickler Microsoft
Erstveröffentlichung 24. April 1989
Lizenz Microsoft -EULA
Technische Information
Eingeplant C , C++
lesbare Dateien
bearbeitbare Dateien
Verknüpfungen

Microsoft SQL Server ist ein von Microsoft entwickeltes Verwaltungssystem für relationale Datenbanken .

Die verwendete Entwicklungssprache (per Befehlszeile oder über die grafische Oberfläche von Management Studio) ist Transact-SQL (TSQL), eine Implementierung des ANSI-Standards der SQL-Sprache, die zum Manipulieren und Abrufen von Daten ( DML ), zum Erstellen von Tabellen und zum Definieren verwendet wird Beziehungen zwischen ihnen ( DDL ).

Zu den prominentesten Konkurrenten von SQL Server gehören: Oracle , MariaDB , MySQL , PostgreSQL . SQL Server ist traditionell nur für Microsoft Windows -Betriebssysteme verfügbar , seit 2016 ist er aber auch für GNU/Linux , [ 2 ] [ 3 ]​ und seit 2017 auch für Docker verfügbar . [ 4 ]

Es kann so konfiguriert werden, dass mehrere Instanzen auf demselben physischen Server verwendet werden, die erste Installation trägt normalerweise den Servernamen und die folgenden - spezifische Namen (mit einem Bindestrich zwischen dem Servernamen und dem Installationsnamen).

Versionen

Versionsverlauf [ 5 ]
Ausführung Jahr Versionsname Schlüsselname
1.0
( OS/2 )
1989 SQLServer 1-0 SQL
4.21
( Win NT )
1993 SQLServer 4.21 FOLGE
6.0 Neunzenhundertfünfundneunzig SQLServer 6.0 SQL95
6.5 neunzehn sechsundneunzig SQLServer 6.5 Hydra
7.0 1998 SQL-Server 7.0 [ 6 ] Sphinx
- 1999 SQL Server 7.0
OLAP- Tools
Gericht
8.0 2000 SQL-Server 2000 [ 7 ] Schilo
8.0 2003 SQL Server 2000
64-Bit-Edition
Freiheit
9.0 2005 SQL-Server 2005 [ 8 ] Yukon
10.0 2008 SQL-Server 2008 [ 9 ] Kathmai
10.25 2010 SQL-Azure-DB CloudDatenbank
10.50 2010 SQL-Server 2008 R2 [ 10 ] Kilimandscharo
11.0 2012 SQL-Server 2012 [ 11 ] Denali
12.0 2015 SQL-Server 2014 [ 12 ] SQL14 (früher Hekaton)
13.0 2016 SQL Server 2016 SQL16
14.0 2017 SQL Server 2017 vNext 2017
15.0 2019 SQL Server 2019 Seidelbast

Der ursprüngliche SQL Server -Quellcode , der in Versionen vor Version 7.0 verwendet wurde, wurde von Sybase gekauft , wurde jedoch in den Versionen 7.0 und 2000 aktualisiert und in Version 2005 neu geschrieben. Im Allgemeinen wird alle 2-3 Jahre eine neue Version veröffentlicht und zwischen diesen Releases werden Service Packs mit Verbesserungen und Fehlerbehebungen sowie Hotfixes für dringende Probleme im Sicherheitssystem oder kritische Fehler vorgeschlagen.

Verfügbarkeit

Microsoft SQL Server wird als Lizenz verkauft. Benutzer, die jedoch SQL Server verwenden möchten, da es nur um das Programm geht, wie z. B. das Anfordern und Speichern von Informationen, benötigen eine CAL.

Lizenzmodelle

Microsoft SQL Server verwendet verschiedene Lizenzmodelle, dies sind Server + CAL-Lizenzen und Core-Lizenzen.

Servermodell + CAL

Dieses Lizenzmodell ist eine günstigere Option, es wird mit der Lizenz erworben und es müssen zusätzliche CALs für Benutzer oder Geräte erworben werden.

Lizenzen pro Kern

Durch die Auswahl der Lizenzierung pro Kern lizenzieren Sie mehrere Kerne des physischen Prozessors des Servers. Bei Microsoft SQL Server 2019 müssen immer mindestens 4 Kerne lizenziert werden. Dieses Lizenzmodell wird häufig von großen Unternehmen gewählt.

CALs sind dafür nicht erforderlich.

Client-Zugriffslizenz (CAL)

Eine Clientzugriffslizenz soll Nutzungsrechte bereitstellen, um Benutzern oder Geräten den Zugriff auf die Serversoftware zu ermöglichen. Das bedeutet, dass jeder Computer oder Benutzer, der Zugriff auf die Serversoftware benötigt, eine CAL benötigt.

Benutzer-CALs

Eine Benutzer-CAL gewährt einem Benutzer im Netzwerk Zugriff auf die oben genannte Funktion. Das bedeutet, dass dieser Benutzer auch über andere Geräte auf das Netzwerk des Servers zugreifen kann.

Geräte-CALs

Eine Geräte-CAL gewährt Zugriff auf ein Gerät. Das bedeutet, dass sich alle Benutzer dieses Geräts anmelden können, um auf den Server zuzugreifen. Dies ist oft nur dann von Vorteil, wenn es in einer Organisation mehr Benutzer als Geräte gibt, [ 13 ]

Funktionen

Dieses System enthält eine reduzierte Version namens MSDE mit derselben Datenbank -Engine , die jedoch auf kleinere Projekte ausgerichtet ist und in den Versionen 2005 und 2008 zur SQL Express Edition wird, einer Edition, die kostenlos verteilt wird .

Es ist üblich, komplette Projekte mit Microsoft SQL Server und Microsoft Access über das sogenannte ADP ( Access Data Project ) zu entwickeln. Auf diese Weise wird die Datenbank ( Microsoft SQL Server ) mit der Entwicklungsumgebung ( VBA Access ) durch die Implementierung von zweischichtigen Anwendungen durch die Verwendung von Windows -Formularen vervollständigt .

SQLCMD , osql oder PowerShell werden verwendet, um SQL über Befehlszeilen zu verarbeiten .

Für die Entwicklung komplexerer Anwendungen (drei oder mehr Schichten) enthält Microsoft SQL Server Zugriffsschnittstellen für verschiedene Entwicklungsplattformen, einschließlich .NET , aber der Server ist nur für Betriebssysteme verfügbar .

Der Typ NUMERIC wurde erweitert, um ab Version 2008 R2 als Spaltenkennung verwendet zu werden.

Programmierung

T-SQL

T-SQL (Transact-SQL) ist das Hauptinteraktionsmittel mit dem Server, das es ermöglicht, Schlüsseloperationen in SQL Server auszuführen, einschließlich Erstellen und Ändern von Datenbankschemata, Einfügen und Ändern von Daten in die Datenbank, sowie die Verwaltung von der Server als solcher. Dies geschieht durch Senden von T-SQL-Anweisungen und -Deklarationen, die vom Server verarbeitet werden, und die Ergebnisse (oder Fehler) werden an die Clientanwendung zurückgegeben.

Nativer SQL-Client

SQL Native Client ist die Datenzugriffsbibliothek für Microsoft SQL Server-Clients der Version 2005 und höher. Implementiert nativ Unterstützung für SQL Server-Funktionen, einschließlich tabellarischer Datenstromausführung, Unterstützung für gespiegelte SQL Server-Datenbanken, vollständige Unterstützung für alle von SQL Server unterstützten Datentypen, asynchrone Sätze von Vorgängen, Abfragebenachrichtigungen, Unterstützung für Verschlüsselung sowie Empfang mehrerer Ergebnismengen in einer einzigen Datenbanksitzung. SQL Native Client wird als Erweiterung für SQL Server-Plug-Ins für andere Datenzugriffstechnologien verwendet, einschließlich ADO oder OLE DB. SQL Native Client kann auch direkt verwendet werden, wobei die Datenzugriffsschichten umgangen werden.

Editionen und Dienste

Jede Edition von SQL Server hat verschiedene Versionen mit unterschiedlichen Preisen (für jede Version), die auch von der physischen Konfiguration des Servers abhängen. [ 14 ] Die Hauptversionen werden im Folgenden vorgestellt:

Unternehmen

Sie enthält alle Funktionen (in anderen Editionen deaktiviert) und ist der Versionstyp mit den meisten Privilegien auf dem Markt.

Entwickler

Eine Edition mit den gleichen Eigenschaften wie die Enterprise, um nur in einer Entwicklungsumgebung und nicht in der Produktion installiert zu werden. Wenn es für eine Standard-Edition entwickelt wird, müssen die für diese Version deaktivierten Funktionen berücksichtigt werden.

Standard

Eine eingeschränkte Version, die von der Konfiguration des Servers und seinen Eigenschaften abhängt und für niedrigere Server entwickelt wurde.

Beispiel: In Version 2012 unterstützt die Enterprise Edition eine unbegrenzte Anzahl von Prozessoren und Hot - Adding von Arbeitsspeicher und CPUs ohne Dienst- oder Serverunterbrechung; während die Standard Edition auf 16 Prozessoren beschränkt ist und "Hot Add" nicht unterstützt.

Express

Eine kostenlose Version, die die Erstellung begrenzter Datenbanken mit grundlegenden Funktionen ermöglicht, um Anwendungen zu unterstützen, die eine einfache Lösung zum Speichern einer begrenzten Datenmenge benötigen, oder Benutzer, deren Ressourcen und Anforderungen begrenzt sind.

In der Version 2012 kann diese Edition maximal 1 GB Speicher verwenden und nicht mehr als 10 GB speichern, sie funktioniert auf Servern mit einer maximalen Anzahl von vier Prozessoren. Diese Einschränkungen werden in der Version 2014 beibehalten (4 Kerne, 1 GB RAM und 10 GB pro Datenbank).

SQLAzure

Es handelt sich um eine Version von SQL Server in der Cloud, mit der Sie monatlich für den Dienst bezahlen können, ohne einen physischen Server unterhalten zu müssen (On Premise). Das Unternehmen zahlt nur für den Service, und der Service wird über Serverfarmen an verschiedenen Orten der Welt verwaltet.

Mit SQL Azure muss kein physischer Server installiert, gewartet oder aktualisiert werden; obwohl dieser Dienst von Aspekten im Zusammenhang mit Sicherheitsproblemen bezüglich seiner Präsenz außerhalb des Unternehmens und der Verfügbarkeit einer Internetverbindung abhängt.

Eine Zeit lang wurde der Dienst um die Option erweitert, einen virtuellen Server über das Netzwerk zu erstellen und SQL Server sowie einen der konkurrierenden Dienste zu installieren und den virtuellen Server so zu verwalten, als wäre er ein lokaler physischer Server (obwohl er es ist nicht physisch zugänglich). ); und Sie können zwischen der ursprünglichen Option namens PAAS ( Platform as a Service : Platform as a Service ) und der neuen Option virtueller Server namens IAAS ( Infrastructure as a Service : Infrastructure as a Service ) unterscheiden.

Dieser Dienst wird seit 2009 von Microsoft bereitgestellt und ergänzt ähnliche Dienste von Drittanbietern .

Benutzeroberfläche

SQL Server bietet einige Oberflächen, die sich im Laufe der Jahre geändert haben, von denen die bekanntesten die grafischen Oberflächen sind, die als Standard-Entwicklungstool für Entwickler und Administratoren verwendet werden .

Die grafische Benutzeroberfläche umfasste bis 2005 den Enterprise Manager mit einer Baumansicht der verschiedenen Objekte und der Möglichkeit, sie zu verwalten. und der Abfrageanalysator als Textschnittstelle zum Ausführen von TSQL-Befehlen.

In der Version 2005 wurden die beiden Tools zu einem vereinheitlicht – dem SQL Server Management Studio (SSMS) und ab 2008 die Möglichkeit, mit Visual Studio – der Standard-Microsoft-Entwicklungsoberfläche (zu den verschiedenen Sprachen , BI , etc.) zu arbeiten. Eine weitere optionale Schnittstelle ist die Verwendung der Befehlszeile mit Tools wie SQLCmd, ISQL, OSQL, die die Ausführung von Skripten und Stapelverarbeitung ermöglicht . Seit 2008 kann es mit SQLCmd (SQL-Befehl) über das SSMS entwickelt werden, ohne dass eine Verbindung zur Windows-Textschnittstelle hergestellt werden muss. Eine weitere Option im Bereich der Skripte ist die Verwendung der Skriptsprache Powershell von Microsoft .

Neben den Standardschnittstellen von SQL Server können Sie TSQL-Befehle mit Verbindungstools wie ODBC und OLE-DB ausführen. [ 15 ]

Dienstleistungen

Im Gegensatz zu Datenbanksystemen wie Microsoft Access , die "passiv" sind und eine Datei enthalten, zu der Sie sich verbinden müssen und die Ausführung der Befehle auf dem Client (dem Computer des Benutzers) durchgeführt wird, gibt es in SQL Server eine Reihe von Diensten , Software die vom System im Speicher des Servers ausgeführt werden, und nutzen daher die Fähigkeiten des Servers, der leistungsfähiger ist als die Clients, verhindern Netzwerküberlastung und können Aufgaben planen, die auch dann ausgeführt werden, wenn der Client nicht verbunden ist .

Hauptleistungen:

  • SQL Server – Die „Engine“ des Systems
  • SQL Agent - Ausführung von Aufgaben (Jobs, geplante Skripte) und Versand von Warnungen bei starker und unregelmäßiger Belastung des Systems
  • Full-Text Filter Daemon Launcher - Verwendung der speziellen Indizes der "Volltextsuche" für erweiterte Textsuche
  • SQL Browser – Der „Listener“, der gesendeten Befehlen gewidmet ist und sie an ihr Ziel umleitet
  • SSIS-Server – Der Betrieb von SSIS (dem ETL- Tool )
  • SSAS-Server – Der Betrieb von SSAS (dem OLAP- Tool )
  • SSRS-Server – Der Betrieb von SSRS (dem Berichtstool)

Grundlegende Fähigkeiten und Werkzeuge

Datenbanken

In jeder SQL Server-Installation gibt es 4 Systemdatenbanken und die Möglichkeit, neue Datenbanken durch den Benutzer zu erstellen, in denen Daten in Tabellen gespeichert werden.

Diese von Benutzern erstellten Datenbanken enthalten im Wesentlichen eine Datendatei (mit der Endung mdf) mit den Tabellen und den verschiedenen Objekten auf Datenbankebene; und eine Protokolldatei (mit Suffix ldf) mit offenen Transaktionen und geschlossenen Transaktionen, abhängig vom ausgewählten Wiederherstellungsmodell (alle Datenbankänderungen seit der letzten Sicherung können in der Protokolldatei kumuliert werden). Ein Satz von Datendateien kann zusätzlich zur Hauptdatei (mit dem Suffix ndf) für Effizienzüberlegungen, Workload-Partitionierung zwischen Festplatten usw. erstellt werden.

Systemdatenbanken:

  • master - Alle Prozeduren, Funktionen und Systemtabellen, die von allen Datenbanken verwendet und automatisch installiert werden, sowie solche, die von Systemadministratoren erstellt wurden. Außerdem werden alle Definitionen zur Sicherheit auf Serverebene in dieser Datenbank gespeichert.
  • msdb – Speicherung von Agentenaufgaben, in das System eingebundene CLR -Codes , SSIS-Pakete und mehr.
  • model - Die Datenbankvorlage. Jede neue Datenbank wird als Kopie dieser Datenbank erstellt, sofern nicht explizit etwas anderes definiert wurde.
  • tempdb – Temporäre Datenbank, die bei jedem Neustart des Dienstes neu erstellt wird. Es wird verwendet, um temporäre Tabellen zu speichern, die von Benutzern oder dem System erstellt wurden (z. B. in komplexen Sortierungen).

Feste und temporäre Tabellen

Aus logischer Sicht werden die Daten in Datenbanken in Tabellen gespeichert, was durch sie die Theorie relationaler Datenbanken umsetzt. Die Tabelle ist in Zeilen und Spalten unterteilt (manchmal auch als Datensätze und Felder bezeichnet). Die Tabellen können fest oder temporär sein, während sie im zweiten Fall physisch in der tempdb-Datenbank vorhanden sind und automatisch gelöscht werden, wenn die Sitzung oder die Verbindung zum Server getrennt wird, je nach Typ der temporären Tabelle.

Aus physischer Sicht unterteilt das System die Datenbankdateien in 64-KB-Extents mit jeweils acht 8-KB-Seiten. Im Allgemeinen wird jeder Extent einer Tabelle oder einem Index zugewiesen , außer bei kleinen Tabellen; und jede Seite ist immer einer bestimmten Tabelle zugeordnet. Das System ist dafür verantwortlich, die Dateien gemäß den Einstellungen des Benutzers zu vergrößern und den Tabellen Extents und Seiten zuzuweisen.

Tabellen können indiziert werden. Die Indizes werden neben der Tabelle gespeichert (Non Clustered Index) oder sind die Tabelle selbst (Clustered Index). Indizes helfen dabei, Daten in Tabellen (wie Dateien in Bibliotheken) zu finden, sie zu sortieren und Primärschlüssel zu definieren .

Zwischen den Tabellen kann eine 1:n-Beziehung erstellt werden .

Neben den Benutzertabellen gibt es Tabellen, die Metadaten speichern: Daten über das System selbst, die verschiedenen Objekte, die Rechte, Statistiken über die Leistung des Systems (DMV) usw.

Datentypen

Für jede Spalte in einer Tabelle und jede Variable oder jeden Parameter wird ein Datentyp definiert, der darin gespeichert werden soll, darunter:

  1. Zahlen : Ganzzahlen und Nicht-Ganzzahlen in verschiedenen Größen und mit unterschiedlicher Genauigkeit; und optionales Auto-Inkrement.
  2. Texte : Zeichenfolgen unterschiedlicher Länge und unterschiedlicher Fähigkeiten zur Unterstützung verschiedener Sprachen.
  3. Datumsangaben : Datumsangaben mit unterschiedlichen Genauigkeitsstufen, von ganzen Tagen bis zu Sekundenbruchteilen, unterstützen Datumsangaben vom Beginn des 20. Jahrhunderts oder des gregorianischen Kalenders und die Fähigkeit, zwischen verschiedenen Zeitverwendungen zu unterscheiden.
  4. XML : Textdaten (Strings), die Standarddatensätze darstellen (SGML-Standard).
  5. Binärdaten : Als Binärdaten (Bits und Bytes) gespeicherte Daten, die das Speichern von Grafikdateien usw. ermöglichen.
  6. Geographie : Standarddarstellung geographischer Informationen, wie Staaten, geographische Gebiete, Ortschaften; und Berechnungen als Entfernungen.
  7. Geometrie : Standarddarstellung von Punkten, Linien, Flächen in der Ebene; und die Beziehungen zwischen ihnen.
  8. Hierarchyid : Standarddarstellung von hierarchischen Informationen wie Stücklisten, Berichtsbeziehungen zwischen Mitarbeitern usw.

Ansichten

Ansichten stellen im Allgemeinen Datenextraktionsbefehle dar, die ohne die Daten (die in den Tabellen gespeichert sind) gespeichert werden. Diese Option ermöglicht es uns, komplexe oder Standardextrakte zu erstellen, sie als Ansichten zu speichern und die Ansichten zu verwenden, ohne die Befehle erneut eingeben oder den Code dort lassen zu müssen, wo er erscheint. Darüber hinaus ist es ein sehr wichtiges Mittel, um selektive Leserechte zu gewähren (falls wir einem Benutzer ermöglichen möchten, die Spalten oder Zeilen einer Tabelle teilweise anzuzeigen).

Eine Ansicht kann als virtuelle Tabelle oder gespeicherte Abfrage betrachtet werden. Die Daten, auf die über eine Ansicht zugegriffen werden kann, werden nicht in einem anderen Objekt als der Datenbank gespeichert. Was in der Datenbank gespeichert wird, ist eine SELECT-Anweisung. Das Ergebnis der SELECT-Anweisung bildet die virtuelle Tabelle, die die Ansicht zurückgibt. Der Benutzer kann eine solche virtuelle Tabelle verwenden, indem er in Transact-SQL-Anweisungen auf den Ansichtsnamen verweist, so wie auf Tabellen verwiesen wird. Ansichten werden für einige oder alle dieser Funktionen verwendet:
• Einschränken des Benutzerzugriffs auf bestimmte Zeilen in einer Tabelle. Zum Beispiel, einem Mitarbeiter zu erlauben, nur die Zeilen zu sehen, die seine Arbeit in einer Arbeitsaktivitäts-Verfolgungstabelle speichern.
• Beschränken Sie den Benutzerzugriff auf bestimmte Spalten. Erlauben Sie beispielsweise Mitarbeitern, die nicht in der Gehaltsabrechnungsabteilung arbeiten, die Spalten „Name“, „Büro“, „Telefon“ und „Abteilung“ der Mitarbeitertabelle zu sehen, aber nicht die Spalten mit Gehaltsdaten oder anderen persönlichen Informationen.
• Kombinieren Sie Spalten aus mehreren Tabellen, sodass sie als eine Tabelle angezeigt werden.
• Fügen Sie Informationen hinzu, anstatt die Details zu präsentieren. Beispielsweise die Darstellung der Summe einer Spalte oder des Höchst- oder Mindestwerts einer Spalte.

Ansichten werden erstellt, indem die SELECT-Anweisung definiert wird, die die von der Ansicht präsentierten Daten abruft. Die von der SELECT-Anweisung referenzierten Datentabellen werden als Basistabellen für die Ansicht bezeichnet. Ansichten in allen Versionen von SQL Server sind aktualisierbar (können das Ziel von UPDATE-, DELETE- oder INSERT-Anweisungen sein), solange die Änderung nur eine der Basistabellen der Ansicht betrifft.

Gespeicherte Prozeduren

Prozeduren sind TSQL-Befehlsskripte, die mit verschiedenen Parametern ausgeführt werden können. Zum Beispiel eine Prozedur, die die Jahreszahl als Parameter erhält und eine Verkaufszusammenfassungstabelle mit den Verkäufen der Agenten in diesem Jahr basierend auf der Verkaufsregistrierungstabelle aktualisiert.

Gespeicherte Prozeduren können die Verwaltung Ihrer Datenbank und das Anzeigen von Informationen über Ihre Datenbank und ihre Benutzer erheblich vereinfachen. Gespeicherte Prozeduren sind eine vorkompilierte Sammlung von SQL-Anweisungen und optionalen Anweisungen zur Flusssteuerung, die unter einem einzigen Namen gespeichert und als Einheit verarbeitet werden. Gespeicherte Prozeduren werden in einer Datenbank gespeichert; Sie können innerhalb einer Anwendung ausgeführt werden und ermöglichen vom Benutzer deklarierte Variablen, bedingte Ausführung und andere leistungsstarke Programmierfunktionen. Gespeicherte Prozeduren können Programmablauf, Logik und Datenbankabfragen enthalten. Sie können Parameter akzeptieren, Parameterergebnisse bereitstellen, einzelne oder mehrere Ergebnismengen zurückgeben und Werte zurückgeben.

Die Verwendung gespeicherter Prozeduren in SQL Server anstelle von Transact-SQL-Programmen, die lokal auf Clientcomputern gespeichert sind, hat folgende Vorteile:
• Ermöglicht modulare Programmierung.
Sie können die Prozedur einmal erstellen, in der Datenbank speichern und beliebig oft aus dem Programm aufrufen. Ein Spezialist für Datenbankprogrammierung kann gespeicherte Prozeduren erstellen, die dann unabhängig vom Quellcode des Programms geändert werden können. Sie erleichtern die Wartung.
• Schnellere Ausführung zulassen.
In Situationen, in denen eine große Menge an Transact-SQL-Code benötigt wird oder wenn Vorgänge mehrmals ausgeführt werden, können gespeicherte Prozeduren schneller sein als Transact-SQL-Codebatches. Prozeduren werden zum Zeitpunkt ihrer Erstellung analysiert und optimiert, und es ist möglich, eine Version der Prozedur zu verwenden, die sich nach ihrer ersten Ausführung im Speicher befindet. Transact-SQL-Anweisungen, die bei jeder Ausführung mehrmals vom Client übermittelt werden, müssen bei jeder Ausführung durch SQL Server kompiliert und optimiert werden.
• Sie können den Netzwerkverkehr reduzieren.
Ein Vorgang, der Hunderte von Transact-SQL-Codezeilen erfordert, kann mit einer einzigen Anweisung ausgeführt werden, die den Code in einer Prozedur ausführt, anstatt Hunderte von Codezeilen über das Netzwerk zu senden.
• Sie können als Sicherheitsmechanismus verwendet werden.
Benutzern können Berechtigungen zum Ausführen einer gespeicherten Prozedur erteilt werden, selbst wenn sie nicht berechtigt sind, die Anweisungen der Prozedur direkt auszuführen.

Benutzerdefinierte Funktionen

Funktionen sind ein Objekt, das einige Fähigkeiten von Ansichten mit anderen von Prozeduren kombiniert. Wie Views können sie Daten extrahieren und Berechnungen durchführen und ein Ergebnis an den Benutzer oder das Programm zurückgeben, das sie ausgeführt hat. Neben Prozeduren enthalten sie TSQL-Codes und können mit Parametern ausgeführt werden.

Funktionen geben einen Wert oder eine Menge von Werten zurück.

Benutzerdefinierte Funktionen werden mit der Anweisung erstellt, mit der Anweisung CREATE FUNCTIONgeändert ALTER FUNCTIONund mit der Anweisung entfernt DROP FUNCTION. Alle vom Benutzer definierten vollständig qualifizierten Funktionsnamen (Datenbankname.Eigentümername.Funktionsname) müssen eindeutig sein. Um benutzerdefinierte Funktionen zu erstellen, zu ändern oder zu entfernen, benötigen Sie CREATE FUNCTION. Andere Benutzer als der Besitzer müssen über die EXECUTE-Berechtigung für eine Funktion verfügen, und nur dann können sie sie in einer Transact-SQL-Anweisung verwenden. Um Tabellen mit Verweisen auf benutzerdefinierte Funktionen in der Einschränkung CHECK, Klausel DEFAULToder Definition einer berechneten Spalte zu erstellen oder zu ändern, müssen Sie auch über die Berechtigung REFERENCESfür die Funktionen verfügen. Transact-SQL-Fehler, die dazu führen, dass eine Anweisung abgebrochen und mit der nächsten Anweisung im Modul fortgesetzt wird, wie z. B. Trigger oder gespeicherte Prozeduren, werden innerhalb einer Funktion anders behandelt. In Funktionen führen diese Fehler dazu, dass die Ausführung der Funktion gestoppt wird. Dadurch wird die Funktion, die die Anweisung aufgerufen hat, abgebrochen. Eine benutzerdefinierte Funktion hat null oder mehrere Eingabeparameter und gibt einen Skalarwert oder eine Tabelle zurück. Eine Funktion kann maximal 1024 Eingabeparameter haben. Wenn ein Funktionsparameter einen Standardwert annimmt, muss das Schlüsselwort DEFAULTbeim Aufruf der Funktion angegeben werden, um den Standardwert zu erhalten. Dieses Verhalten unterscheidet sich von Standardwertparametern in gespeicherten Prozeduren, bei denen das Weglassen des Parameters die Angabe des Standardwerts impliziert. Benutzerdefinierte Funktionen unterstützen keine Ausgabeparameter.

Verteilte Abfragen

Verteilte Abfragen greifen auf Daten aus mehreren Quellen zu, die auf einem Computer oder auf verschiedenen Computern gespeichert sein können. Microsoft SQL Server 2000 unterstützt verteilte Abfragen über OLE DB Verteilte Abfragen bieten SQL Server-Benutzern Zugriff auf:
• Verteilte Daten, die über mehrere SQL Server-Instanzen hinweg gespeichert sind.
• Heterogene Daten, die in verschiedenen relationalen und nicht relationalen Datenquellen gespeichert sind, auf die über einen OLE DB-Anbieter zugegriffen wird.
OLE DB-Anbieter machen Daten in tabellarischen Objekten verfügbar, die Rowsets genannt werden. SQL Server 2000 ermöglicht es, dass auf Rowsets von OLE DB-Anbietern in Transact-SQL-Anweisungen verwiesen wird, als wären sie eine SQL Server-Tabelle. Auf Tabellen und Sichten aus externen Datenquellen kann in Transact-SQL-Anweisungen SELECT, INSERT, UPDATE und DELETE direkt verwiesen werden. Da verteilte Abfragen OLE DB als zugrunde liegende Schnittstelle verwenden, greifen sie auf traditionelle relationale DBMS-Systeme mit SQL-Abfrageprozessoren sowie auf Daten zu, die von Datenquellen unterschiedlicher Leistung und Ausgereiftheit verwaltet werden. Solange proprietäre Software die Daten in einem tabellarischen Rowset über den OLE DB-Anbieter verfügbar macht, können die Daten in verteilten Abfragen verwendet werden. Hinweis: Die Verwendung von verteilten Abfragen in SQL Server ähnelt der Funktionalität verknüpfter Tabellen über ODBC, die zuvor von Microsoft Access unterstützt wurde. Diese Funktionalität ist jetzt in SQL Server mit OLE DB als Schnittstelle zu externen Daten integriert.

Transaktionen

Eine Transaktion ist eine Reihe von Befehlen, die vollständig oder gar nicht ausgeführt werden: alles oder nichts. Wenn beispielsweise ein Geldbetrag von einem Bankkonto auf ein anderes verschoben wurde und beide Konten bei Ein- und Auszahlungen aktualisiert werden müssen; Es ist zwingend erforderlich, dass beide Konten zusammen aktualisiert werden, oder keines von beiden (falls eines der Updates fehlschlägt); um widersprüchliche Folgen einer Einzahlung ohne Auszahlung zu vermeiden oder umgekehrt. Daher ist eine Transaktion eine Abfolge von Operationen, die als einzelne logische Arbeitseinheit ausgeführt werden. Eine logische Arbeitseinheit muss vier Eigenschaften aufweisen, die als ACID-Eigenschaften (Atomizität, Konsistenz, Isolation und Dauerhaftigkeit) bezeichnet werden, um als Transaktion zu gelten:

  • Atomizität

Eine Transaktion muss eine atomare Arbeitseinheit sein, unabhängig davon, ob alle ihre Änderungen an den Daten vorgenommen werden oder keine.

  • Kohärenz

Nach Abschluss einer Transaktion müssen alle Daten in einem konsistenten Zustand verbleiben. In einer relationalen Datenbank müssen alle Regeln auf Transaktionsänderungen angewendet werden, um die Integrität aller Daten zu wahren. Alle internen Datenstrukturen wie B-Baum-Indizes oder doppelt verkettete Listen müssen am Ende der Transaktion korrekt sein.

  • Isolation

Änderungen, die durch gleichzeitige Transaktionen vorgenommen werden, müssen von Änderungen isoliert werden, die durch andere gleichzeitige Transaktionen vorgenommen werden. Eine Transaktion sieht die Daten in dem Zustand, in dem sie sich befanden, bevor sie durch eine andere gleichzeitige Transaktion geändert wurden oder nachdem die zweite Transaktion abgeschlossen wurde, aber sie sieht keinen Zwischenzustand. Dies wird als Serialisierung bezeichnet, da das Ergebnis die Möglichkeit ist, die ursprünglichen Daten neu zu laden und eine Reihe von Transaktionen wiederzugeben, um mit den Daten in demselben Zustand zu enden, in dem sie sich befanden, nachdem die ursprünglichen Transaktionen durchgeführt wurden.

  • Haltbarkeit

Sobald eine Transaktion abgeschlossen ist, sind ihre Auswirkungen dauerhaft im System. Änderungen bleiben auch im Falle eines Systemfehlers bestehen.

SQL Server hat eine begrenzte Fähigkeit, Transaktionen zu verschachteln.

Der Optimierer

Der Optimierer ist ein Teil der Software, der "die Entscheidung trifft", wie jeder Befehl ausgeführt wird, damit die Ausführung am effizientesten oder zumindest effizient genug ist (d. h. effizient genug, um zu vermeiden, weiterhin nach einem anderen zu suchen Lösung, die noch effizienter ist, wird der Preis der zusätzlichen Suche mehr "kosten" als die Ressourceneinsparung).

SQL ist eine deklarative Sprache , in der der Entwickler erklärt, dass er extrahieren oder aktualisieren möchte, ohne angeben zu müssen, wie (im Gegensatz zu imperativen Sprachen ), und daher spielt der Optimierer eine führende Rolle, was den Statistiken entspricht, die das System über Datenverteilungen speichert in Tabellen, Indizes und internen Regeln; trifft die entsprechende Entscheidung.

Privilegien und Datensicherheit

Um eine Verbindung zu SQL Server herzustellen, ist eine Anmeldung (Benutzer auf Serverebene) erforderlich. Wenn die Sicherheitsrichtlinie als Windows-Authentifizierung definiert ist und der Server mit den Domänendefinitionen kombiniert wird , werden die Anmeldungen im Active Directory definiert . Wenn die Definition SQL Server-Authentifizierung ist, werden die Anmeldungen (Benutzer und Kennwort) in SQL Server selbst definiert. Folglich müssen Sie sich im ersten Fall nur mit Name und Passwort identifizieren, wenn Sie sich mit dem Netzwerk verbinden, und verbinden sich dann automatisch mit allen Servern, die Windows-Authentifizierung (mit globalem Login) sind; und im zweiten Fall müssen Sie sich beim Verbinden mit jedem SQL Server-Authentifizierungsserver identifizieren (jeweils mit einem lokalen Login).

Auf der Datenbankebene wird der Benutzer als ein Benutzer identifiziert, der im Allgemeinen mit der Anmeldung (die sich auf der Serverebene befindet) verbunden ist, und die Privilegien für den Benutzer existieren nur auf der Datenbankebene (zusätzlich zu den Privilegien für die Anmeldung). Das Gewähren allgemeiner Rechte kann durch Listen von Serverrollen (Rollen auf Serverebene) oder Datenbankrollen (spezifische Rollen auf Datenbankebene) unterstützt werden, die jeweils spezifische Berechtigungen für eine bestimmte Rolle haben; und jeder Benutzer, der einer dieser Rollen zugeordnet ist, erhält die damit verbundenen Privilegien. Außerdem kann der Administrator bestimmte Rechte erteilen und andere Datenbankrollen erstellen (Serverrollen können nicht erstellt werden).

Zu den Berechtigungen auf Serverebene gehört die Möglichkeit, Datenbanken zu erstellen, Jobs zu verwenden, Datenbanksicherungen und -wiederherstellungen zu erstellen, Serverdefinitionen zu ändern und so weiter. Berechtigungen auf Datenbankebene ermöglichen es, Daten zu extrahieren und zu aktualisieren, Objekte wie Prozeduren und Tabellen zu erstellen, diese Objekte zu verwenden und so weiter. Grundsätzlich können Sie Rechte erteilen (Grant), bestehende Privilegien entziehen (Revoke) und noch nicht bestehende Privilegien verweigern (Deny).

Andere Service-Tools

Zusätzlich zu seinen elementaren Fähigkeiten als Managementtool für relationale Datenbanken (Erstellen von Tabellen, Definieren von Beziehungen zwischen ihnen, Verwalten von Transaktionen, Erstellen von Indizes usw.) unterstützt SQL Server eine wachsende Liste anderer Servicetools; abgesehen von Tools von Drittanbietern, die sich ändern oder ergänzen, was vorhanden ist.

Sicherungen und Wiederherstellungen

Neben alternativen Lösungen auf Betriebssystemebene (Sicherung von Datenbankdateien) ist in SQL Server ein Tool eingebaut, das eine vollständige oder differenzielle Sicherung gemäß dem vordefinierten Wiederherstellungsmodell zur Datenbank ermöglicht; und eine vollständige oder Point-in-Time-Wiederherstellung. Abgesehen von einer Datenbanksicherung können Sie diese über ein Skript (mit oder ohne Daten) sichern. Ab 2008 können Sie Sicherungsdateien komprimieren.

Komprimierung

Ab 2008 wurde die Komprimierungsoption hinzugefügt, die es ermöglicht, die physikalische Größe von Tabellen und Indizes zu komprimieren, das Volumen von Festplatten effizienter zu nutzen und IO-Operationen zu reduzieren (was die Belastung der CPU erhöht). Wie bereits erwähnt, können Sie die Sicherungsdateien auch komprimieren.

Replikation, Hochverfügbarkeit und Notfallwiederherstellung

Einige Tools ermöglichen es, teilweise oder vollständige Repliken von Datenbanken zu erstellen, die Verfügbarkeit zu verbessern und nach Katastrophen wiederherzustellen. Abgesehen von der Option zum Sichern und Wiederherstellen der Datenbanken, eine Option, die sehr langsam sein soll.

Die von diesen Tools erstellten Kopien können als sofort verfügbares Backup im Falle eines Systemausfalls sowie als Replikat in einem vom Quellsystem unabhängigen Subsystem zum Lastausgleich verwendet werden. und dass Aktualisierungen auf der Datenbank ausgeführt werden und Wiederherstellungen für Berichte auf der Replik ausgeführt werden.

Unter diesen Tools können wir die Replikation erwähnen , die es ermöglicht, eine synchronisierte Replik der Datenbank zu erstellen, die Spiegelung , die jede auf dem Ursprungsserver ausgeführte Aktualisierung auf dem Spiegelserver ausführt, den Protokollversand, der es ermöglicht, eine synchronisierte Kopie zu speichern durch Protokolldateien (Log) mit allen Updates auf dem Quellserver und Hochverfügbarkeits- und Disaster-Recovery-Tools (HADR, seit 2012), die Spiegelungsprobleme in Bezug auf die Reaktionszeit bei technischen Ausfällen und die Verfügbarkeit von Kopien in Friedenszeiten lösen.

Der Agent und die Aufgabenplanung

Der Agent ist der Dienst, der Aufgaben plant und selbstständig ausführt. Im Allgemeinen führt er Wartungsaufgaben, komplexe ETL- Aufgaben , Backups usw. aus.

Wartung

Um die Leistung des Systems zu verbessern, ist es notwendig, die vom Optimierer verwendeten Statistiken zu verwalten, die physischen Dateien zu organisieren usw.; und für diese Zwecke werden dedizierte Tools verwendet, die regelmäßig von geplanten Tasks und in koordinierter Weise mit den ETL- und Backup-Tasks ausgeführt werden.

Dienstmakler

Eine 2005 hinzugefügte Technologie, die eine serviceorientierte Architektur implementiert und asynchrone Ausführungen ermöglicht: zunächst das Senden von Nachrichten zwischen verschiedenen gleichzeitig laufenden Anwendungen, aber auch das asynchrone Ausführen von Prozeduren in einer Fire-and-Forget- Manier - eine Prozedur die in einer anderen Sitzung läuft als die Sitzung, die sie gestartet hat, und beide Prozeduren laufen unabhängig voneinander weiter.

E-Mails senden

SQL Server kann E- Mails über Code senden . Diese Funktion wird im Allgemeinen verwendet, um Warnungen zu Systemproblemen zu senden (z. B. wenn die CPU-Auslastung auf einen vordefinierten Schwellenwert gestiegen ist oder wenn der ETL -Prozess fehlgeschlagen ist), aber auch, wenn der Prozess erfolgreich abgeschlossen wurde.

Volltextsuche

Ein Tool, das es ermöglicht, Textspalten als Texte und nicht nur als Strings zu indizieren; und je nach Bedeutung des Textes und der Sprache komplexe Suchen durchführen. Zum Beispiel suchen wir nach einem Verb und möchten alle Vorkommen seiner Konjugationen erhalten.

Verfolgen

Zu diesen Tools gehören der Trace, der es ermöglicht, Aktivitäten zu verfolgen, um Lasten und Ausfälle aufrechtzuerhalten, und die Datensicherheit (Datenwiederherstellung ist nicht erlaubt), der Profiler, der es ermöglicht, die ausgeführten Befehle und die auftretenden Ereignisse zu verfolgen des Servers und Extended Events, das 2008 hinzugefügt wurde und den Profiler aufgrund seiner niedrigen Signatur (Ressourcenverbrauch und Einfluss auf die Serverleistung) verändert.

Abgesehen von diesen können 2 Arten von Triggern verwendet werden, um Änderungen und Aktivitäten zu verfolgen: DML-Trigger, die für Tabellen und Ansichten vordefiniert sind und die durch Datenaktualisierungsanweisungen (Auswählen / Aktualisieren / Löschen) initiiert werden, und DDL-Trigger, die durch Änderungen an der initiiert werden Objekte selbst (und nicht die Daten) auf Datenbank- oder Serverebene.

CLR zusammenführen

Ab 2005 können Sie Prozeduren, Funktionen und Aggregatfunktionen, die in der CLR entwickelt wurden, problemlos in SQL Server kombinieren . Sie müssen den Code in einem der .NET -Entwicklungstools entwickeln , eine DLL -Datei erstellen und sie in das System einbinden. Der Vorteil dieser Technologie liegt in ihren Fähigkeiten bei Problemen, die nicht ausschließlich Datenbanken (Datenmanipulation) sind und komplexe Berechnungen oder textuelle Manipulationen von Zeichenfolgen beinhalten.

Business-Intelligence-Tools

Eine typische Installation umfasst auch Business Intelligence ( BI ) - Tools :

SSIS (SQL Server Integration Services)

Ein ETL -Tool , das die Extraktion von Daten aus verschiedenen Quellen (nicht nur SQL Server), die Transformation dieser Daten und das Laden (im Allgemeinen, aber nicht notwendigerweise in ein Data Warehouse ) ermöglicht.

SSAS (SQL Server Analysis Services)

Ein Tool zum Erstellen mehrdimensionaler (nicht relationaler) Datenbanken , die durch Extrahieren von Daten auf verschiedenen Gruppierungsebenen, Drilldown einer Summe auf ihre Details und Verwendung von MDX (einer SQL-ähnlichen Sprache, die an mehrdimensionale Datenbanken angepasst ist) untersucht werden können.

SSRS (SQL Server Reporting Services)

Ein Tool, um Berichte zu erstellen und zu formatieren, ihnen Anzeigerechte zu erteilen und sie zu verteilen. Sie können mit einem Webbrowser angezeigt und nach Excel , PDF usw. exportiert werden. die Daten werden in der Regel aus dem Data Warehouse oder OLAP extrahiert.

Nachteile

  • Seit der Version von SQL Server 2012 sind in T-SQL geschriebene Abfragen nicht abwärtskompatibel mit der Version von SQL Server 2008 oder früher.
  • Auf 32-Bit-Versionen verwendet SQL Server die Address Windowing Extension (AWE) für die Adressierung über 4 GB. Dadurch wird verhindert, dass Sie die dynamische Speicherverwaltung verwenden, und Sie können nur maximal 64 GB gemeinsam genutzten Speicher hosten. Diese Einschränkung gilt ausschließlich für 32-Bit-Betriebssysteme; Auf 64-Bit-Betriebssystemen beträgt der maximal adressierbare Speicher in der Standard Edition 64 GB und in der Enterprise Edition 4 TB

Siehe auch

Referenzen

  1. Guthrie, Scott (7. März 2016). "Ankündigung von SQL Server unter Linux" (html) . Microsoft (auf Englisch) . Archiviert vom Original am 7. März 2016 . Abgerufen am 3. März 2019 .  
  2. ^ a b Domínguez, Andres Zamora (25. Oktober 2017). "Microsoft SQL Server kann jetzt unter Linux GNU ausgeführt werden." (html) . Pandora FMS (auf Englisch) . Archiviert vom Original am 24. November 2018 . Abgerufen am 24. November 2018 . «Am 28. Dezember 2016 – dem Fest der Heiligen Unschuldigen, diesem besonderen Tag, an dem Spanischsprechende den ganzen Tag über Witze machen – wurde der Erwerb einer „Platinum“-Mitgliedschaft durch die Firma Microsoft® in der Linux Foundation und der Start von bekannt gegeben Microsoft SQL-Server®. »  
  3. Lerner, Reuve M. „SQL Server unter Linux“ (html) . Geek Guide (auf Englisch) . Archiviert vom Original am 3. August 2017 . Abgerufen am 24. November 2018 . Aber selbst der skeptischste Open-Source-Fan muss zugeben, dass sich Microsoft in den letzten Jahren verändert hat. Es hat viele Entwicklertools und -bibliotheken als Open Source veröffentlicht und begonnen, Linux als unterstützte Plattform für einen Teil seiner Software aufzunehmen. »  
  4. ^ "Machen Sie sich bereit für SQL Server 2017" (html) . Microsoft (auf Englisch) . Archiviert vom Original am 1. Mai 2017 . Abgerufen am 24. November 2018 . „Bringen Sie die branchenführende Leistung und Sicherheit von SQL Server in Windows-, Linux- und Docker-Container. »  
  5. SQL Server-Entwicklungsgeschichte
  6. Neue Funktionen in Microsoft SQL Server 7
  7. Was ist neu in Microsoft SQL Server 2000
  8. Was ist neu in SQL Server 2005
  9. Neuerungen (SQL Server 2008)
  10. Neue Funktionen in Microsoft SQL Server 2008 R2
  11. Was ist neu in SQL Server 2012
  12. Was ist neu in SQL Server 2014
  13. „Alles, was Sie über SQL Server-Lizenzen und CALs wissen müssen“ . Softtrader (auf Englisch) . 15. September 2021 . Abgerufen am 27. September 2021 . 
  14. Von SQL Server 2014-Editionen unterstützte Funktionen
  15. Verbindungszeichenfolgen


Externe Links