Was ist eine klare Definition der Datenbankbeschränkung? Warum sind Einschränkungen für eine Datenbank wichtig? Welche Arten von Einschränkungen gibt es?
Was ist eine klare Definition der Datenbankbeschränkung? Warum sind Einschränkungen für eine Datenbank wichtig? Welche Arten von Einschränkungen gibt es?
Antworten:
Einschränkungen sind Teil einer Datenbankschemadefinition.
Eine Einschränkung ist normalerweise einer Tabelle zugeordnet und wird mit einer CREATE CONSTRAINT
oder CREATE ASSERTION
SQL-Anweisung erstellt.
Sie definieren bestimmte Eigenschaften, denen Daten in einer Datenbank entsprechen müssen. Sie können auf eine Spalte, eine ganze Tabelle, mehr als eine Tabelle oder ein ganzes Schema angewendet werden. Ein zuverlässiges Datenbanksystem stellt sicher, dass Einschränkungen jederzeit gültig sind (außer möglicherweise innerhalb einer Transaktion, für sogenannte verzögerte Einschränkungen).
Häufige Arten von Einschränkungen sind:
Um zu verstehen, warum wir Einschränkungen benötigen, müssen Sie zunächst den Wert der Datenintegrität verstehen.
Datenintegrität bezieht sich auf die Gültigkeit von Daten. Sind Ihre Daten gültig? Stellen Ihre Daten das dar, wofür Sie sie entworfen haben?
Welche seltsamen Fragen ich Ihnen stelle, denken Sie vielleicht, aber leider sind Datenbanken allzu oft mit Mülldaten gefüllt, ungültigen Verweisen auf Zeilen in anderen Tabellen, die längst verschwunden sind ... und Werten, die für die Geschäftslogik nichts bedeuten Ihrer Lösung nicht mehr.
All dieser Müll ist nicht allein anfällig für Leistungseinbußen, sondern auch eine Zeitbombe unter Ihrer Anwendungslogik, die schließlich Daten abruft, die nicht verstanden werden sollen.
Einschränkungen sind Regeln, die Sie zur Entwurfszeit erstellen und die Ihre Daten vor Beschädigung schützen. Für das langfristige Überleben Ihres Herzkindes ist eine Datenbanklösung unerlässlich. Ohne Einschränkungen wird Ihre Lösung mit der Zeit und der starken Nutzung definitiv verfallen.
Sie müssen anerkennen, dass das Entwerfen Ihres Datenbankdesigns nur die Geburtsstunde Ihrer Lösung ist. Hier muss es (hoffentlich) lange leben und alle Arten von (seltsamem) Verhalten seiner Endbenutzer (dh Client-Anwendungen) ertragen. Diese Entwicklungsphase in der Entwicklung ist jedoch entscheidend für den langfristigen Erfolg Ihrer Lösung! Respektiere es und schenke ihm die Zeit und Aufmerksamkeit, die es braucht.
Ein weiser Mann sagte einmal: "Daten müssen sich selbst schützen!" . Und genau das tun Einschränkungen. Es sind Regeln, die die Daten in Ihrer Datenbank so gültig wie möglich halten.
Es gibt viele Möglichkeiten, dies zu tun, aber im Grunde laufen sie darauf hinaus:
sys.check_constraints
Ansicht in der AdventureWorks-BeispieldatenbankWie ich hier angedeutet habe, sind einige gründliche Überlegungen erforderlich, um den besten und defensivsten Constraint-Ansatz für Ihr Datenbankdesign zu entwickeln. Sie müssen zunächst die Möglichkeiten und Einschränkungen der verschiedenen oben genannten Einschränkungstypen kennen. Weiterführende Literatur könnte beinhalten:
AUSLÄNDISCHE SCHLÜSSELBESCHRÄNKUNGEN - Microsoft
Fremdschlüsseleinschränkung - w3schools
Viel Glück! ;)
Einschränkungen sind nichts anderes als die Regeln für die Daten. Welche Daten gültig und welche ungültig sind, kann mithilfe von Einschränkungen definiert werden. So kann diese Integrität der Daten aufrechterhalten werden. Im Folgenden sind die weit verbreiteten Einschränkungen aufgeführt:
NOT NULL
. Hier können wir angeben, welche Daten wir für diese bestimmte Spalte eingeben können und was für diese Spalte nicht erwartet wird.Einschränkungen können verwendet werden, um bestimmte Eigenschaften von Daten zu erzwingen. Ein einfaches Beispiel besteht darin, eine int-Spalte auf Werte [0-100000] zu beschränken. Diese Einführung sieht gut aus.
Einschränkungen bestimmen, welche Werte für Daten in der Datenbank gültig sind. Sie können beispielsweise erzwingen, dass ein Wert nicht null ist (eine NOT NULL
Einschränkung) oder dass er als eindeutige Einschränkung in einer anderen Tabelle vorhanden ist (eine FOREIGN KEY
Einschränkung) oder dass er in dieser Tabelle eindeutig ist (eine UNIQUE
Einschränkung oder möglicherweise eine PRIMARY KEY
Einschränkung, abhängig von Ihren Anforderungen) ). Allgemeinere Einschränkungen können mithilfe von CHECK
Einschränkungen implementiert werden .
Die MSDN-Dokumentation für SQL Server 2008-Einschränkungen ist wahrscheinlich der beste Ausgangspunkt.
UNIQUE
Einschränkung (von der eine PRIMARY KEY
Einschränkung eine Variante ist). Überprüft, ob alle Werte eines bestimmten Felds in der Tabelle eindeutig sind. Dies ist eine X
Achsenbeschränkung (Datensätze)
CHECK
Einschränkung (von der eine NOT NULL
Einschränkung eine Variante ist). Überprüft, ob eine bestimmte Bedingung für den Ausdruck über den Feldern desselben Datensatzes gilt. Dies ist eine Y
Achsenbeschränkung (Felder).
FOREIGN KEY
Zwang. Überprüft, ob der Wert eines Felds unter den Werten eines Feldes in einer anderen Tabelle gefunden wird. Dies ist eine Z
Achsenbeschränkung (Tabellen).
CHECK
Einschränkungen geschrieben werden. Warum also als unterschiedlich klassifizieren? dh " Y
-Achse" (was auch immer das bedeutet).
FOREIGN KEY
Verwendung einer CHECK
Einschränkung?
SELECT
Frage. Sie können keine Unterabfragen (oder andere Konstrukte, die auf Werte außerhalb des aktuellen Datensatzes verweisen) in CHECK
Einschränkungen in verwenden SQL Server
.
Eine Datenbank ist die computergestützte logische Darstellung eines konzeptionellen (oder Geschäfts-) Modells, das aus einer Reihe informeller Geschäftsregeln besteht. Diese Regeln sind die vom Benutzer verstandene Bedeutung der Daten. Da Computer nur formale Darstellungen verstehen, können Geschäftsregeln nicht direkt in einer Datenbank dargestellt werden. Sie müssen einer formalen Darstellung zugeordnet werden, einem logischen Modell, das aus einer Reihe von Integritätsbeschränkungen besteht. Diese Einschränkungen - das Datenbankschema - sind die logische Darstellung der Geschäftsregeln in der Datenbank und daher die vom DBMS verstandene Bedeutung der Daten. Daraus folgt, dass das DBMS, wenn es die vollständigen Einschränkungen, die die Geschäftsregeln darstellen, nicht kennt und / oder nicht durchsetzt, ein unvollständiges Verständnis der Bedeutung der Daten hat und daher
Hinweis: Die DBMS-Bedeutung „verstanden“ - Integritätsbeschränkungen - ist nicht identisch mit der vom Benutzer verstandenen Bedeutung - Geschäftsregeln -, aber trotz des Verlusts einer gewissen Bedeutung erhalten wir die Möglichkeit, logische Schlussfolgerungen aus den Daten zu mechanisieren.
"Eine alte Klasse von Fehlern" von Fabian Pascal
Grundsätzlich gibt es in SQL vier Arten von Haupteinschränkungen:
Domänenbeschränkung: Wenn einer der für ein neues Tupel angegebenen Attributwerte nicht der angegebenen Attributdomäne entspricht
Schlüsselbeschränkung: Wenn der Wert eines Schlüsselattributs in einem neuen Tupel bereits in einem anderen Tupel in der Beziehung vorhanden ist
Referenzielle Integrität: Wenn ein Fremdschlüsselwert in einem neuen Tupel auf einen Primärschlüsselwert verweist, der in der referenzierten Beziehung nicht vorhanden ist
Entitätsintegrität: Wenn der Primärschlüsselwert in einem neuen Tupel null ist
Einschränkungen sind Bedingungen, die bestimmte Bedingungen validieren können. Mit der Datenbank verbundene Einschränkungen sind Domänenintegrität, Entitätsintegrität, referenzielle Integrität, benutzerdefinierte Integritätsbeschränkungen usw.