Constraint

Constraint

Mit Constraints (deutsch „Zwangsbedingungen“) werden in diversen Programmiersprachen Bedingungen definiert, die zwingend vom Wert einer Variablen erfüllt werden müssen, damit der Wert ins System übernommen werden kann. In Datenbanksystemen finden Constraints rege Anwendung um den Wertebereich (Domain) eines Skalars bereits im Vorfeld zu überprüfen. In der Programmanalyse verwendet man Constraints bei der Analyse funktionaler Programme.

Inhaltsverzeichnis

Constraints in Programmiersprachen

Constraints helfen dem Compiler und der Laufzeitumgebung, Programmierfehler einfacher zu erkennen. Nehmen wir eine Variable Anzahl_der_Personen_im_Aufzug an, hier ist anschaulich klar, dass diese Variable keinen negativen Wert haben darf und nicht über einem Maximalwert liegen darf.

In der Programmiersprache Ada kann das so aussehen:

type Kapazitaet is range 0..13;
Anzahl_der_Personen_im_Aufzug : Kapazitaet := 15;

Hier kann der Compiler sofort erkennen, dass der Wert 15 außerhalb der zuvor spezifizierten Bedingung range liegt. Wäre die Variable nicht eingeschränkt müsste der Programmierer diese Bedingung bei jeder Änderung selbst überprüfen.

Constraints in Datenbanksystemen

In Datenbanksystemen funktionieren Constraints prinzipiell gleich. Constraints definieren Bedingungen die beim Einfügen, Ändern und Löschen von Datensätzen in der Datenbank erfüllt werden müssen.

Viele Datenbanksysteme kennen zusätzlich zu den Constraints noch Transaktionen. Die Kombination dieser beiden Konzepte ist sehr mächtig, da spätestens am Ende einer Transaktion alle Constraints überprüft werden. Wenn dabei ein Constraint fehlschlägt, werden sämtliche Änderungen an den Daten, die in dieser Transaktion durchgeführt wurden, zurückgenommen, als seien sie nie durchgeführt worden.

Constraints werden in Datenbanksystemem durch Integritätsbedingungen definiert.

Auflistung möglicher Constraints in Datenbanksystemen:

  • NOT NULL → der Skalar kann nicht NULL sein
  • PRIMARY KEY → der Skalar muss einzigartig sein und kann nicht NULL sein
  • FOREIGN KEY → der Skalar muss auf Referentielle Integrität geprüft werden
  • UNIQUE → der Skalar muss innerhalb des Attributes einzigartig sein
  • CHECK() → explizite Überprüfungsanweisung an das DBMS; auf was geprüft werden muss, wird als Option dieser Anweisung definiert [1]

Des Weiteren gibt es verschiedene Typen von Constraints:

  • Attribut Constraints, beziehen sich auf eine einzelne Spalte
  • Relationen Constraints, beziehen sich auf mehrere Attribute (Spalten)
  • Benannte Constraints, können anhand des Namens manipuliert werden
  • Unbenannte Constraints, erhalten einen vom System generierten Namen

Beispiel: Attribut Constraint

Im nachfolgenden Beispiel handelt es sich bei PRIMARY KEY um einen unbenannten Constraint und bei CONSTRAINT persons_fp um einen benannten Constraint.

CREATE TABLE person(
    id          PRIMARY KEY,
    fingerprint BYTEA CONSTRAINT persons_fp UNIQUE);

Beispiel: Relationen Constraint

Im nachfolgenden Beispiel handelt es sich bei CONSTRAINT person_prime um einen benannten Constraint und bei UNIQUE() um einen unbenannten Constraint.

CREATE TABLE person(
    id      SERIAL,
    name    VARCHAR,
    dob     DATE,
    born_in VARCHAR,
    CONSTRAINT person_prime PRIMARY KEY(id),    UNIQUE(name, dob, born_in));

Constraints in der Logistik

Ein Constraint wird auch in diesem Fall als Einschränkung für eine durchgeführte Aktion verwendet. Es wird nach Anforderungen oder Requirements und Constraints unterschieden. Bei der Versorgung mit Gütern und Dienstleistungen in der Logistik geben die Constraints z.B. die Einschränkungen an, die bei Zuladung im Bereich Volumen oder Gewicht für bestimmte Lkw gelten.

Constraints in der theoretischen Informatik

In der theoretischen Informatik und speziell in der KI-Forschung werden relationale Aussagen, die freie Variablen enthalten, oft als Constraint bezeichnet. Dann wird eine Variablenbelegung oder Interpretation gesucht, die zu einer gegebenen Menge von Constraints passt, folglich diese simultan erfüllt.

Ein Beispiel: x ist oberhalb von y, y ist oberhalb von z, z ist oberhalb von x (diese Constraintmenge ist nicht erfüllbar).

Eine Belegung, die alle Constraints erfüllt, wird oft als „Modell“ bezeichnet.

Constraints in Und-Oder-Bäumen

In Und-Oder-Bäumen finden sich Constraints an den Und-Knoten, hier müssen mehrere Teilziele konjunktiv erfüllt werden, um das Hauptziel zu erfüllen.

Siehe auch

Weblinks

Einzelnachweise

  1. Kapitel 5. Datendefinition - 5.4. Constraints. In: PostgreSQL: Das Offizielle Handbuch. PostgreSQL Global Development Group, abgerufen am 3. November 2011 (englisch: http://www.postgresql.org/docs/current/static/ddl-constraints.html).

Wikimedia Foundation.

Игры ⚽ Нужен реферат?

Schlagen Sie auch in anderen Wörterbüchern nach:

  • Constraint — is an element factor or a subsystem that works as a bottleneck. It restricts an entity, project, or system (such as a manufacturing or decision making process) from achieving its potential (or higher level of output) with reference to its goal.… …   Wikipedia

  • Constraint — Con*straint , n. [OF. constrainte, F. constrainte.] The act of constraining, or the state of being constrained; that which compels to, or restrains from, action; compulsion; restraint; necessity. [1913 Webster] Long imprisonment and hard… …   The Collaborative International Dictionary of English

  • constraint — UK US /kənˈstreɪnt/ noun [C] ► something that controls what you can do by keeping you within particular limits: »The constraint of distribution costs remains the severest of all. budget/financial, etc. constraints »This growth in revenue may… …   Financial and business terms

  • constraint — [n1] force a must*, coercion, compulsion, driving, duress, goad, hang up*, impelling, impulsion, monkey*, motive, necessity, no no*, pressure, repression, restraint, spring, spur, suppression, violence; concepts 14,121 constraint [n2] shyness… …   New thesaurus

  • constraint — late 14c., distress, oppression, from O.Fr. constreinte binding, constraint, compulsion (Mod.Fr. contrainte), fem. noun from constreint, pp. of constreindre, from V.L. *constrinctus, from L. constrictus (see CONSTRAIN (Cf. constrain)). Meaning… …   Etymology dictionary

  • Constraint — Constraint. См. Реакция связи. (Источник: «Металлы и сплавы. Справочник.» Под редакцией Ю.П. Солнцева; НПО Профессионал , НПО Мир и семья ; Санкт Петербург, 2003 г.) …   Словарь металлургических терминов

  • constraint — I (imprisonment) noun act of keeping in, apprehension, arrest, bondage, bonds, bounds, captivity, care, charge, commitment, confinement, containment, control, custodianship, custody, detainment, detention, encincture, enclosure, enthrallment,… …   Law dictionary

  • constraint — compulsion, coercion, duress, restraint, *force, violence Analogous words: suppression, repression (see corresponding verbs at SUPPRESS): impelling or impulsion, driving or drive (see corresponding verbs at MOVE): goad, spur, *motive, spring:… …   New Dictionary of Synonyms

  • constraint — ► NOUN 1) a limitation or restriction. 2) stiffness of manner and inhibition …   English terms dictionary

  • constraint — [kən strānt′] n. [ME constreinte < OFr: see CONSTRAIN] 1. a constraining or being constrained; specif., a) confinement or restriction b) compulsion or coercion 2. a) repression of natural feelings or behavior …   English World dictionary

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”