Tabla de contenido
1. ¿Cuáles son los tres paradigmas principales de bases de datos?
1.1 Primera forma normal (1NF)
1.2 Segunda forma normal (2NF)
1.3 Tercera forma normal (3NF)
2. ¿Por qué deberíamos utilizar los tres paradigmas principales y sus funciones?
1. ¿Qué es el diseño antiparadigma?
1. Tres grandes paradigmas
1. ¿Cuáles son los tres paradigmas principales de bases de datos?
Los tres paradigmas principales de la base de datos se refieren a los principios de estandarización en el diseño de bases de datos . Son la primera forma normal (1NF) , la segunda forma normal (2NF) y la tercera forma normal (3NF) . Por supuesto, la base de datos Mysql tiene más Además de los tres paradigmas principales , los paradigmas incluyen la forma normal de código bus (BCNF) , la cuarta forma normal (4NF) y la quinta forma normal (5NF, también conocida como "paradigma perfecto") . Hoy hablaremos de los tres grandes paradigmas.
- La Primera Forma Normal (1NF) requiere que cada columna de una tabla de base de datos sea un valor atómico irreducible, es decir, cada columna no puede contener múltiples valores o una lista de valores.
- La segunda forma normal (2NF) requiere que las columnas de clave no primaria en una tabla de base de datos dependan completamente de todas las claves primarias en lugar de parte de ellas. En otras palabras, cada columna de clave no principal debe estar relacionada con la clave principal completa, no solo con una parte de la clave principal.
- La tercera forma normal (3NF) requiere que no pueda haber dependencias transitivas entre columnas de clave no principal en las tablas de la base de datos. En otras palabras, las columnas que no son de clave principal no pueden depender entre sí, sino que deben depender directamente de la clave principal.
En términos generales, se puede entender así:
- Las columnas no se pueden dividir: para responder a cambios en la demanda
- Restricciones de clave primaria: evitar la inconsistencia de los datos
- Restricciones de clave externa: para mantenimiento posterior
1.1 Primera forma normal (1NF)
No satisface la primera forma normal
Identificación del Estudiante | Nombre | género | Informacion de la Escuela |
---|---|---|---|
001 | Zhang San | masculino | Licenciatura, tercer año |
002 | Juan Pérez | femenino | Estudiante de investigación, Kenji |
La información de la escuela no cumple con los requisitos de atomicidad, por lo que no cumple con la primera forma normal Después de la modificación
satisfacer la primera forma normal
Identificación del Estudiante | Nombre | género | Preparación académica | calificación |
---|---|---|---|---|
001 | Zhang San | masculino | De licenciatura | Daisan |
002 | Juan Pérez | femenino | Postgrado | Kenji |
La columna ajustada no se puede dividir más, por lo que satisface la primera forma normal.
1.2 Segunda forma normal (2NF)
No satisface la segunda forma normal
Identificación del Estudiante | Nombre | edad | Título del curso | puntaje |
---|---|---|---|---|
001 | Zhang San | 28 | Chino | 90 |
001 | Zhang San | 28 | matemáticas | 90 |
002 | Xiao Huang | 25 | Chino | 90 |
002 | Xiao Huang | 25 | matemáticas | 90 |
Después de la modificación
satisfacer la segunda forma normal
Identificación del Estudiante | Nombre | edad |
---|---|---|
001 | Zhang San | 28 |
001 | Zhang San | 28 |
002 | Xiao Huang | 25 |
002 | Xiao Huang | 25 |
Número de curso | Título del curso |
---|---|
01 | Chino |
02 | matemáticas |
Tabla de calificaciones: el número de estudiante y el número de curso se denominan claves primarias conjuntas
Identificación del Estudiante | Número de curso | puntaje |
---|---|---|
001 | 01 | 90 |
001 | 02 | 90 |
002 | 01 | 90 |
002 | 02 | 90 |
De esta manera seguimos la segunda forma normal.
1.3 Tercera forma normal (3NF)
Tomemos este ejemplo que no satisface la segunda forma normal.
Identificación del Estudiante | Nombre | edad | Título del curso | puntaje |
---|---|---|---|---|
001 | Zhang San | 28 | Chino | 90 |
001 | Zhang San | 28 | matemáticas | 90 |
002 | Xiao Huang | 25 | Chino | 90 |
002 | Xiao Huang | 25 | matemáticas | 90 |
Lo modificamos para ajustarlo a la tercera forma normal.
Identificación del Estudiante | Nombre | edad | Título del curso |
---|---|---|---|
001 | Zhang San | 28 | Chino |
001 | Zhang San | 28 | matemáticas |
002 | Xiao Huang | 25 | Inglés |
002 | Xiao Huang | 25 | Químico |
Título del curso | puntaje |
---|---|
Chino | 90 |
matemáticas | 90 |
Inglés | 90 |
Químico | 90 |
Por supuesto que mi escritura no es perfecta, pero este es el significado.
2. ¿Por qué deberíamos utilizar los tres paradigmas principales y sus funciones?
- El almacenamiento y la actualización de datos son más eficientes : al estandarizar el diseño de la base de datos, se puede reducir el almacenamiento de datos redundantes y se puede ahorrar espacio de almacenamiento. Al actualizar los datos, solo es necesario actualizar las tablas relevantes sin causar inconsistencia en los datos.
- Mayor coherencia y precisión de los datos : al seguir los tres paradigmas principales, se pueden evitar datos redundantes e inconsistentes, lo que garantiza la coherencia y precisión de los datos.
- La consulta y el análisis son más convenientes : el diseño de base de datos estandarizado puede reducir la redundancia de datos, simplificar las operaciones de consulta y análisis de la base de datos y mejorar el rendimiento de las consultas y la eficiencia del procesamiento de datos.
- La estructura de datos es más clara, más fácil de entender y mantener : Los tres paradigmas principales enfatizan la división de datos en tablas relacionales más pequeñas, cada tabla solo contiene datos relacionados con ella, lo que hace que la estructura de la base de datos sea más clara y fácil de entender. Esto facilita que los desarrolladores de bases de datos comprendan y mantengan la estructura de la base de datos y reduce las dificultades de desarrollo y mantenimiento.
La función de los tres paradigmas es garantizar que la base de datos tenga una estructura razonable, alta coherencia y precisión de los datos, y mejorar el rendimiento, la eficiencia del almacenamiento, el rendimiento de las consultas y la capacidad de mantenimiento de la base de datos , para satisfacer mejor las necesidades de los usuarios.
2. Diseño antiparadigma
1. ¿Qué es el diseño antiparadigma?
反范式设计是一种与传统规范化设计相对的数据库设计方法,它允许在数据库中引入冗余数据以提高查询性能或简化查询操作。反范式设计的主要思想是通过增加冗余数据来消除关系型数据库中的连接操作,从而提高查询性能。
2、特点
反范式设计在某些特定场景下可以提供较高的性能和简化查询操作,例如大型数据仓库、报表生成和实时大数据处理等情况。然而,需要注意的是,反范式设计也带来了数据冗余和更新复杂性的问题,需要在权衡性能和数据一致性之间进行合理的选择。
- 冗余数据:反范式设计容许在数据库中存储冗余数据,即将数据冗余地存储在多个地方。这可以避免进行复杂的连接操作,减少查询时的表关联数量,从而提高查询性能。
- 数据冗余的更新:由于反范式设计引入了冗余数据,对于数据的更新可能需要在多个位置进行操作,以保持数据的一致性。这对于维护数据的完整性和正确性提出了一定的挑战。
- 查询简化:通过消除连接操作,反范式设计可以简化查询的编写和理解,使得查询操作更加直观和简便。
在实际应用中,需要根据具体的业务需求和性能要求来判断是否采用反范式设计,以及何时采用反范式设计。同时,反范式设计应慎重使用,并且需要进行适当的维护和管理,以确保数据的一致性和正确性。
3、运用场景
- 高频读取、低频更新的情况:当数据被频繁读取而较少更新时,可以通过引入冗余数据来提高读取的性能。因为读取操作的频率远远超过更新操作,而且避免连接操作可以加快读取速度。
- 复杂查询和分析需求:如果业务需要进行复杂的查询和分析操作,而传统的规范化设计会导致繁琐的连接操作,影响查询性能和可读性,那么反范式设计可以简化查询操作,提高查询效率。
- 数据仓库和报表生成:在数据仓库和报表生成场景中,通常需要处理大量的历史数据和统计数据。通过反范式设计,可以将常用的聚合数据冗余存储,加速复杂的报表生成过程。
- 高并发和低延迟要求:对于需要高并发性能和低延迟的应用,如实时大数据处理和高并发系统,通过反范式设计消除连接操作的复杂性,可以提高系统的响应速度和吞吐量。
- 特定优化需求:在某些特定的业务需求下,如针对某类查询或特定数据的查询进行优化,反范式设计可以针对这些特定的优化需求进行设计。
【注意】反范式设计并非适用于所有情况,而且使用反范式设计可能会带来数据冗余和更新复杂性的问题。在应用反范式设计时,需要仔细评估具体的业务需求、性能要求和数据一致性需求,并根据实际情况做出合理的设计决策。
4、总结
总结就是一句话,为什么要使用反范式设计:为了方便自己的效率而不遵循三大范式,使用反范式设计