mirror of
https://github.com/robindhole/fundamentals.git
synced 2025-03-15 16:50:10 +00:00
Adds data integrity section.
This commit is contained in:
parent
8ef2c29211
commit
bed40913c2
@ -15,10 +15,8 @@
|
||||
> In a relational database, the schema defines the tables, fields, relationships, views, indexes, packages, procedures, functions, queues, triggers, types, sequences, materialized views, synonyms, database links, directories, XML schemas, and other elements
|
||||
|
||||
### Data Integrity
|
||||
### Entity Integrity
|
||||
### Referential integrity
|
||||
### Domain integrity
|
||||
### User-defined integrity
|
||||
> is the overall accuracy, completeness, and consistency of data
|
||||
> the maintenance of, and the assurance of, data accuracy and consistency over its entire life-cycle
|
||||
### ER Diagrams
|
||||
|
||||
## Schema
|
||||
@ -43,8 +41,42 @@ Following is a schema diagram for the above database. Note that the primary key
|
||||
|
||||
---
|
||||
## Data Integrity
|
||||
Remember when we stored our data in [files](01-database-fundamentals.md#brute-force---files)? That was the simplest way to store data, but it had a lot of issues. One of the major issues was that we can never be sure that our data is consistent with the way we want it to be.
|
||||
|
||||
Some issues that we can encounter are
|
||||
* Duplicate rows - multiple rows with the same data
|
||||
* A string in a field where a number is expected, or vice versa.
|
||||
* Updating or deleting a mentor that has batches assigned to it
|
||||
* Entering 20 digits as a phone number instead of a 10-digit phone number
|
||||
|
||||
This is where DBMS excels. Data integrity is normally enforced in a database system by a series of integrity constraints or rules.
|
||||
Data integrity (or actually logical integrity) can be divided into four main categories:
|
||||
### Entity integrity
|
||||
Each row to be unique within its table. No two rows can be the same. To achieve this, a **primary key** can be defined.
|
||||
|
||||
The primary key field contains a unique identifier – no two rows can contain the same unique identifier.
|
||||
|
||||
> Every table must have a primary key and that the column or columns chosen to be the primary key should be unique and not null
|
||||
|
||||
### Referential integrity
|
||||
> Referential integrity is a property of data stating that all its references are valid.
|
||||
|
||||
|
||||
When a foreign key value is used it must reference a valid, existing primary key in the parent table.
|
||||
For referential integrity to hold in a relational database, any column in a base table that is declared a foreign key can only contain either **null values or values from a parent table's primary key or a candidate key**.
|
||||
|
||||
> For instance, deleting a record that contains a value referred to by a foreign key in another table would break referential integrity.
|
||||
|
||||
### Domain integrity
|
||||
Domain integrity concerns the validity of entries for a given column. Selecting the appropriate data type for a column is the first step in maintaining domain integrity. Other steps could include, setting up appropriate constraints and rules to define the data format and/or restricting the range of possible values.
|
||||
|
||||
### User-defined integrity
|
||||
|
||||
User-defined integrity allows the user to apply business rules to the database that aren’t covered by any of the other three data integrity types.
|
||||
|
||||
---
|
||||
|
||||
|
||||
## ER Diagrams
|
||||
---
|
||||
## References
|
||||
|
Loading…
x
Reference in New Issue
Block a user