# Normalization

Record: `arch:normalization`
Kind: technique
Layer: [Contracts Core](https://banes-lab.com/records/layer/contracts-core.md)
Severity: contextual
Scope: database, schema, data model
Canonical: https://banes-lab.com/ontology#arch-normalization

## Repair

- Refactored by: Extract Entity, Normalize Table, Add Reference
- Detected by: update anomalies, duplicated facts
- Violated by: uncontrolled duplicated data
- Measured by: redundancy/anomaly count
- Enforced by: schema review, database constraints

## requires

- [Data Semantics](https://banes-lab.com/records/lex/data-semantics.md)

## reinforces

- [Consistency](https://banes-lab.com/records/arch/consistency.md)
- [Do Not Repeat Yourself (DRY)](https://banes-lab.com/records/arch/duplicate-code.md)

## enables

- [Reduced Redundancy](https://banes-lab.com/records/lex/reduced-redundancy.md)

## tensions-with

- [Query Performance](https://banes-lab.com/records/lex/query-performance.md)
- [Denormalized Read Models](https://banes-lab.com/records/lex/denormalized-read-models.md)

## tensions

- [Normalization Query Performance](https://banes-lab.com/records/tension/normalization-query-performance.md)
- [Normalization Denormalized Read Models](https://banes-lab.com/records/tension/denormalized-read-models-normalization.md)

## referenced-by

- [Canonical Data Model](https://banes-lab.com/records/arch/canonical-data-model.md)
