Datenbankengrundlagen

Eine Datenbank in SQL Server besteht aus einer Auflistung von Tabellen, in der eine bestimmte Menge strukturierter Daten gespeichert ist.Eine Tabelle enthält eine Auflistung von Zeilen, auch als Datensätze oder Tupel bezeichnet, und Spalten, auch als Attribute bezeichnet. Jede Spalte in der Tabelle dient zum Speichern eines bestimmten Informationstyps, z. B. Datumsangaben, Namen, Geldbeträge und Zahlen.

Tabellen verfügen über unterschiedliche Typen von Steuerungsmechanismen, z. B. Einschränkungen, Regeln, Trigger, Standardwerte und angepasste benutzerdefinierte Datentypen, durch die die Gültigkeit der Daten sichergestellt wird. Einschränkungen der deklarativen referenziellen Integrität (DRI) können den Tabellen hinzugefügt werden, um sicherzustellen, dass die Konsistenz miteinander verbundener Daten in unterschiedlichen Tabellen aufrechterhalten wird. Tabellen können über Indizes verfügen, vergleichbar den Indizes in einem Buch, die das schnelle Auffinden bestimmter Zeilen ermöglichen. Eine Datenbank kann auch Prozeduren enthalten, die Transact-SQL- oder .NET-Framework-Programmiercode zum Ausführen von Operationen mit Daten in der Datenbank verwenden. Diese Operationen sind z. B. das Erstellen von Sichten, die angepassten Zugriff auf Tabellendaten bereitstellen, oder einer benutzerdefinierten Funktion, die eine komplexe Berechnung für eine Teilmenge von Zeilen ausführt.

Angenommen, Sie erstellen eine Datenbank mit dem Namen MyCompanyDB, um die Daten in Ihrem Unternehmen zu verwalten. In der MyCompanyDB-Datenbank erstellen Sie eine Tabelle mit dem Namen Employees zum Speichern von Informationen zu jedem einzelnen Mitarbeiter. Die Tabelle enthält auch Spalten mit den Namen EmpId, LastName, FirstName, Dept und Title. Um sicherzustellen, dass kein Wert für EmpId doppelt vergeben wird und dass die Dept-Spalte nur gültige Nummern für die Abteilungen in Ihrem Unternehmen enthält, müssen Sie Einschränkungen zur Tabelle hinzufügen.

Basierend auf der Mitarbeiter-ID oder dem Nachnamen definieren Sie Indizes, weil Sie die Daten für einen bestimmten Angestellten schnell finden möchten. Sie müssen der Employees-Tabelle für jeden einzelnen Mitarbeiter eine Datenzeile hinzufügen, deshalb müssen Sie auch eine gespeicherte Prozedur mit dem Namen AddEmployee erstellen. Diese Prozedur ist so angepasst, dass sie die Datenwerte für einen neuen Mitarbeiter akzeptiert und das Hinzufügen der Zeile zur Employees-Tabelle durchführt. Möglicherweise benötigen Sie eine Zusammenfassung der Mitarbeiter nach Abteilungen. In diesem Fall definieren Sie eine Sicht mit dem Namen DeptEmps, die die Daten aus den Tabellen Departments und Employees kombiniert und die gewünschte Ausgabe erzeugt. Die folgende Abbildung zeigt die Bestandteile der erstellten MyCompanyDB -Datenbank.

Objekte in einer Datenbank

Eine Instanz von SQL Server kann mehrere Datenbanken unterstützen. Die Daten, die in den einzelnen Datenbanken gespeichert werden, können mit den Daten anderer Datenbanken in Beziehung stehen. Eine Instanz von SQL Server kann z. B. eine Datenbank enthalten, in der Personaldaten gespeichert werden, und über eine andere Datenbank verfügen, in der produktbezogene Daten gespeichert werden. Alternativ kann eine Datenbank auch die aktuellen Daten zu Kundenbestellungen speichern, und eine andere verbundene Datenbank kann Daten zu früheren Kundenbestellungen speichern, die zum Erstellen von Jahresberichten verwendet werden.

Wichtiger HinweisWichtig

Sie sollten in der master-Datenbank keine Benutzerobjekte wie z. B. Tabellen, Sichten, gespeicherte Prozeduren oder Trigger zu erstellen. Die master-Datenbank enthält die Informationen auf der Systemebene, die von der Instanz von SQL Server verwendet werden, z. B. Anmeldeinformationen und Einstellungen von Konfigurationsoptionen.

OLTP-Datenbank

Relationale OLTP-Datenbanken (Online Transaction Processing, Onlinetransaktionsverarbeitung) eignen sich optimal für das Verwalten von Daten, die sich ändern. Diese Anwendungen verfügen in der Regel über mehrere Benutzer, die gleichzeitig Transaktionen ausführen, durch die Echtzeitdaten geändert werden. Zwar verweisen einzelne Datenanforderungen von Benutzern üblicherweise nur auf wenige Zeilen, aber viele dieser Anforderungen werden gleichzeitig ausgeführt.

OLTP-Datenbanken sind so konzipiert, dass Transaktionsanwendungen nur die Daten schreiben, die für die schnellstmögliche Verarbeitung einer Transaktion erforderlich sind. Für OLTP-Datenbanken gilt im Allgemeinen Folgendes:

  • Sie unterstützen eine große Anzahl gleichzeitiger Benutzer, die regelmäßig Daten hinzufügen und ändern.

  • Sie stellen den sich ständig ändernden Status einer Organisation dar, speichern jedoch nicht den Verlauf der Statusänderungen.

  • Sie enthalten zahlreiche Daten, einschließlich umfangreicher Daten zum Überprüfen von Transaktionen.

  • Sie weisen komplexe Strukturen auf.

  • Sie werden im Hinblick auf die Reaktion auf Transaktionsaktivitäten optimiert.

  • Sie bieten die technologische Infrastruktur, um die täglichen Operationen in einer Organisation zu unterstützen.

  • Einzelne Transaktionen werden schnell abgeschlossen und greifen auf relativ kleine Datenmengen zu. OLTP-Systeme sind so entworfen und optimiert, dass Hunderte oder Tausende von Transaktionen verarbeitet werden können, die gleichzeitig eingegeben werden.

Die Daten in OLTP-Systemen sind in erster Linie so organisiert, dass Transaktionen unterstützt werden, wie z. B.:

  • Aufzeichnen einer Bestellung, die von einem Point-of Sale-Terminal übermittelt oder über eine Website eingegeben wurde.

  • Platzieren einer Bestellung über weitere Lieferungen, wenn die Bestandsmengen auf ein angegebenes Niveau fallen.

  • Nachverfolgen von Komponenten, die in einer Herstellungsanlage zu einem Endprodukt zusammengesetzt werden.

  • Aufzeichnen von Mitarbeiterdaten.

Data Warehouse

Im Gegensatz zu einer OLTP-Datenbank, in der zahlreiche Datenänderungen und -aktualisierungen aufgezeichnet werden, sollen mit einem Data Warehouse umfangreiche stabile Daten organisiert werden, um das Analysieren und Abrufen zu vereinfachen. Ein Data Warehouse wird häufig als Basis für eine Business Intelligence-Anwendung verwendet.

Es folgt eine Auflistung der Fähigkeiten von Data Warehouses:

  • Kombinieren von Daten aus heterogenen Datenquellen in einer einzigen homogenen Struktur.

  • Organisieren der Daten in vereinfachten Strukturen, um anstelle der Effizienz der Transaktionsverarbeitung die Effizienz analytischer Abfragen zu erhöhen.

  • Speichern transformierter Daten, die für Analysen gültig, konsistent, konsolidiert und formatiert sind.

  • Bereitstellen beständiger Daten, die Geschäftsverläufe darstellen.

  • Regelmäßige Aktualisierung durch zusätzliche Daten anstatt über häufige Transaktionen.

  • Vereinfachen der Sicherheitsanforderungen.

Datenbanksnapshot

Ein Datenbanksnapshot ist eine schreibgeschützte, statische Sicht einer Datenbank, die als Quelldatenbank bezeichnet wird. Ein Datenbanksnapshot ist bezüglich der Transaktionen mit der Quelldatenbank zum Zeitpunkt der Erstellung des Snapshots konsistent. Weitere Informationen finden Sie unter Datenbanksnapshots.