Varios NF en la base de datos (significado de forma normal)

definición

1NF (primera forma normal): cada atributo es atómico, es decir, no se puede descomponer más. Es decir, cada atributo no puede contener valores múltiples o valores combinados duplicados.

2NF (segunda forma normal): sobre la base de satisfacer 1NF, el atributo no primario debe depender completamente de la clave candidata en lugar de solo una parte de la clave candidata. Es decir, cada atributo no clave en el esquema relacional debe tener una relación directa con la clave candidata y no puede derivarse a través de otros atributos no clave.

3NF (Tercera Forma Normal): Sobre la base de satisfacer 2NF, cualquier atributo no principal no puede depender de otros atributos no principales. Es decir, cada atributo no clave debería depender directamente de la clave candidata en lugar de depender de otros atributos no clave.

BCNF (forma normal de Bass-Kord): sobre la base de satisfacer 3NF, si hay dependencias funcionales redundantes en el esquema relacional, entonces el esquema relacional debe descomponerse aún más para eliminar estas dependencias redundantes. Es decir, cada atributo no clave debe depender directamente de la clave candidata, no de una combinación de otros atributos no clave o claves candidatas.

Por ejemplo

Suponga que existe un modelo de relación de "pedido", que contiene los siguientes atributos: número de pedido, ID de cliente, nombre de cliente, número de teléfono del cliente, fecha de pedido, ID de producto, nombre de producto, precio unitario del producto, cantidad de producto e importe del pedido.

En este esquema relacional, la combinación de número de pedido e ID de cliente puede identificar de forma única cada pedido, por lo que son una de las claves candidatas. Además, la identificación del producto también se puede usar como uno de los códigos candidatos, ya que cada producto tiene una identificación única. Aquí, usamos el número de pedido y la identificación del cliente como claves candidatas.

1NF: Primero, se debe satisfacer 1NF, es decir, cada atributo es atómico. En este ejemplo, todas las propiedades ya son atómicas y no es necesario descomponerlas.

2NF: sobre la base de satisfacer 1NF, es necesario asegurarse de que los atributos que no son clave dependan completamente de las claves candidatas. En este ejemplo, el nombre del cliente, el número de teléfono del cliente, el nombre del producto, el precio unitario del producto y la cantidad del producto dependen del ID del producto y no tienen nada que ver con el número de pedido y el ID del cliente. Por lo tanto, estos atributos deben eliminarse del esquema de relación de pedido y debe crearse un nuevo esquema de relación de artículo que solo contenga ID de artículo, nombre de artículo, precio unitario de artículo y atributos de cantidad de artículos, para satisfacer 2NF.

3NF: Sobre la base de satisfacer 2NF, es necesario asegurarse de que cada atributo no principal no pueda depender de otros atributos no principales. En este ejemplo, el atributo de cantidad del pedido depende directamente del precio unitario del producto y los atributos de cantidad del producto, y no tiene nada que ver con el número de pedido, la identificación del cliente y la información del cliente. Por lo tanto, el monto del pedido debe eliminarse del esquema relacional del pedido y colocarse en el nuevo esquema relacional de detalle del pedido, de modo que solo contenga los atributos de número de pedido, ID del artículo, precio unitario del artículo y cantidad del artículo, para satisfacer 3NF .

BCNF: Sobre la base de satisfacer 3NF, es necesario eliminar aún más las dependencias funcionales redundantes. En este ejemplo, dado que los atributos de precio unitario del producto y cantidad del producto en el modelo de relación de detalles del pedido dependen del ID del producto y no tienen nada que ver con el número de pedido, deben eliminarse del modelo de relación de detalles del pedido y crear un nuevo detalles del producto. Modo de relación, de modo que solo contenga la identificación del producto, el precio unitario del producto y los atributos de cantidad del producto, para satisfacer BCNF.

Por ejemplo, X2

Supongamos que existe un esquema de relación "libro", que contiene los siguientes atributos: ISBN, título, autor, editorial, fecha de publicación, precio.

En este esquema relacional, la combinación de número de libro y título de libro puede identificar de manera única cada libro, por lo que son una de las claves candidatas. Además, el número de libro también se puede utilizar como uno de los códigos candidatos, ya que cada libro tiene un número de libro único. Aquí, usamos el número de libro y el título del libro como códigos candidatos.

1NF: Primero, se debe satisfacer 1NF, es decir, cada atributo es atómico. En este ejemplo, todas las propiedades ya son atómicas y no es necesario descomponerlas.

2NF: sobre la base de satisfacer 1NF, es necesario asegurarse de que los atributos que no son clave dependan completamente de las claves candidatas. En este ejemplo, el autor, el editor, la fecha de publicación y el precio dependen del ISBN, no del título. Por lo tanto, estos atributos deben eliminarse del esquema relacional del libro, y debe crearse un nuevo esquema relacional de "información de publicación" que solo contenga los atributos ISBN, Editor, Fecha de publicación y Precio, satisfaciendo así 2NF.

3NF: Sobre la base de satisfacer 2NF, es necesario asegurarse de que cada atributo no principal no pueda depender de otros atributos no principales. En este ejemplo, el atributo de fecha de publicación depende directamente de la editorial, no del número de libro ni del precio. Por lo tanto, la fecha de publicación debe eliminarse del esquema relacional "Información de la publicación" y debe crearse un nuevo esquema relacional "Información del editor" para que solo contenga los atributos del editor y la fecha de publicación, satisfaciendo así 3NF.

BCNF: Sobre la base de satisfacer 3NF, es necesario eliminar aún más las dependencias funcionales redundantes. En este ejemplo, dado que la relación entre el título del libro y el autor no es única, no se puede usar como clave candidata o clave principal. En este punto, el esquema relacional del "libro" no puede satisfacer BCNF. Podemos descomponer aún más el esquema relacional "Libros", creando un nuevo esquema relacional "Información del libro" que contiene solo los atributos ISBN y Título, y un nuevo esquema relacional "Información del autor" que contiene solo las propiedades ISBN y Autor, satisfaciendo así el BCNF.

Por ejemplo, X3

Suponga que hay un modelo de relación de "empresa", que contiene los siguientes atributos: número de empleado, nombre del empleado, departamento, jefe de departamento, fecha de entrada, salario, nombre del proyecto, líder del proyecto, fecha de inicio del proyecto, fecha de finalización del proyecto y beneficios del proyecto. .

En este modo de relación, la combinación de número de empleado y nombre del proyecto puede identificar de manera única la información de cada empleado en cada proyecto, por lo que son uno de los códigos candidatos. Además, el número de empleado también se puede utilizar como uno de los códigos candidatos, ya que cada empleado tiene un número de empleado único. Aquí, usamos el número de empleado y el nombre del proyecto como clave candidata.

1NF: Primero, se debe satisfacer 1NF, es decir, cada atributo es atómico. En este ejemplo, todas las propiedades ya son atómicas y no es necesario descomponerlas.

2NF: sobre la base de satisfacer 1NF, es necesario asegurarse de que los atributos que no son clave dependan completamente de las claves candidatas. En este ejemplo, el nombre del empleado, el departamento, el jefe de departamento, la fecha de entrada y el salario dependen del número de empleado, pero no del nombre del proyecto, el líder del proyecto, la fecha de inicio del proyecto, la fecha de finalización del proyecto y el beneficio del proyecto. Por lo tanto, estos atributos deben eliminarse del esquema relacional "Empresa" y debe crearse un nuevo esquema relacional "Información del empleado" para que contenga solo los atributos Identificación del empleado, Nombre del empleado, Departamento, Jefe de departamento, Fecha de ingreso y Salario, por lo tanto Satisfacer 2NF.

3NF: Sobre la base de satisfacer 2NF, es necesario asegurarse de que cada atributo no principal no pueda depender de otros atributos no principales. En este ejemplo, el atributo del líder del proyecto depende directamente del nombre del proyecto y no tiene nada que ver con el número de empleado, la información del empleado y el tiempo y los beneficios del proyecto. Por lo tanto, el líder del proyecto debe eliminarse del esquema relacional "Empresa" y debe crearse un nuevo esquema relacional "Información del proyecto" de modo que solo contenga los atributos de nombre del proyecto, líder del proyecto, fecha de inicio del proyecto y fecha de finalización del proyecto, satisfaciendo así 3NF.

BCNF: Sobre la base de satisfacer 3NF, es necesario eliminar aún más las dependencias funcionales redundantes. En este ejemplo, el atributo de beneficio del proyecto depende directamente de la combinación del número de empleado y el nombre del proyecto y no tiene nada que ver con la información del proyecto. Por lo tanto, el beneficio del artículo debe eliminarse del esquema relacional "compañía" y debe crearse un nuevo esquema relacional "información del artículo del empleado" para que solo contenga el número de empleado, el nombre del artículo y los atributos de beneficio del artículo, satisfaciendo así el BCNF.

Por ejemplo, X4

Suponga que existe un modelo de relación de "selección de curso del estudiante", que contiene los siguientes atributos: número de estudiante, nombre del estudiante, número de curso, nombre del curso, profesor, créditos y calificaciones.

1NF: Toda propiedad debe ser atómica. En este ejemplo, todas las propiedades ya son atómicas.

2NF: satisface 1NF, y los atributos que no son clave dependen completamente de la clave candidata. En este ejemplo, la combinación de número de estudiante y número de selección de curso puede identificar de manera única cada registro de selección de curso, por lo que estos dos atributos son claves candidatas. El nombre del estudiante, el nombre del curso, el profesor, los créditos y la calificación están todos relacionados con el número de estudiante y el número de curso, pero no con otros atributos, por lo que se cumple 2NF.

3NF: satisface 2NF, y cada atributo no clave no depende de otros atributos no clave. En este ejemplo, el atributo del profesor depende directamente del nombre del curso, pero no tiene nada que ver con el número de alumno, el nombre del alumno, el número de curso, los créditos y las calificaciones. Por lo tanto, se debe eliminar al maestro docente del modelo relacional de "selección de estudiantes" y se debe crear un nuevo modelo relacional de "información del curso", que solo contiene el número del curso, el nombre del curso y los atributos del maestro, para satisfacer 3NF.

BCNF: Satisface 3NF sin dependencias funcionales redundantes. En este ejemplo, suponiendo que cada estudiante solo puede tomar un curso, la combinación de número de estudiante y número de curso es única. En este punto, el modelo relacional de "los estudiantes eligen cursos" ya satisface BCNF. Sin embargo, si un estudiante puede elegir varios cursos, el número de estudiante no puede ser la clave principal del modo de relación "selección de curso de estudiante", porque el número de estudiante de un estudiante puede corresponder a varios registros de selección de curso. En este momento, el modelo de relación de "selección de estudiantes" debe descomponerse aún más, y debe crearse un nuevo modelo de relación de "información de estudiantes" y un nuevo modelo de relación de "información de selección de cursos", para que contengan respectivamente la información básica. de estudiantes y la información básica de selección de cursos, y luego crear un nuevo modelo relacional de "registro de selección de cursos" conecta la información de los estudiantes y la información de selección de cursos a través de la relación entre el número de estudiante y el número de selección de cursos, satisfaciendo así BCNF.

Supongo que te gusta

Origin blog.csdn.net/g030603/article/details/129814420
Recomendado
Clasificación