# Integrity Constraints

Detailed description of various types of constraints in a relational database management system (DBMS), including domain constraints, entity constraints, referential constraints, and key constraints. Let's summarize these points:

**1. Domain Constraints (Restricting Attribute Values):**

* Domain constraints restrict the values that can be stored in an attribute of a relation, defining the permissible domain for each attribute.
* These constraints specify data types, ranges, or conditions that attribute values must adhere to.
* For example, you might specify that the "birth year" attribute should only contain values less than 2002.

**2. Entity Constraints (Enforcing Entity Integrity):**

* Entity constraints ensure that every relation (table) has a primary key (PK), and that primary keys are not NULL.
* These constraints enforce entity integrity by guaranteeing unique and non-null identifiers for each record.
* It helps in preventing data duplication and ensures that each record is uniquely identifiable within the table.

**3. Referential Constraints (Maintaining Data Consistency Between Relations):**

* Referential constraints are specified between two relations (tables) and help maintain data consistency between tuples (rows) of these relations.
* These constraints ensure that values in specified attributes of tuples in a referencing relation (with a foreign key) also appear in the specified attributes of tuples in the referenced relation (with a primary key).
* For example, if a foreign key in a referencing table refers to the primary key of a referenced table, it ensures that every value in the foreign key must be either NULL or available in the referenced table.

**4. Key Constraints (Enforcing Data Integrity):**

* Key constraints are used to enforce data integrity by defining rules related to specific attributes or sets of attributes.
* The six types of key constraints mentioned include:
  * NOT NULL: Ensures that attribute values are not NULL.
  * UNIQUE: Enforces that all values in a column are different from each other.
  * DEFAULT: Sets default values for columns when no value is specified.
  * CHECK: Maintains data integrity before and after CRUD operations through specified conditions.
  * PRIMARY KEY: Ensures that each entity in a set is uniquely identifiable, containing unique and non-null values.
  * FOREIGN KEY: Establishes relationships between tables, preventing actions that could result in the loss of connections between them.

These constraints are fundamental in database design and management, as they help maintain data accuracy, consistency, and reliability. They also protect against accidental data corruption and ensure that the database remains a dependable source of information for various applications and decision-making processes.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://codexpress.gitbook.io/welcome-to-datagenesis/relational-model/integrity-constraints.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
