Directorio de artículos
Diseño de base de datos
Relación entre varias tablas
-
Clasificación de relaciones
-
Doce y cincuenta y nueve de la noche
Como personas y tarjetas de identificación. Una persona tiene solo una identificación
-
Uno a muchos
Como estudiantes y departamentos. Un estudiante pertenece a un departamento y un departamento tiene muchos estudiantes
-
Muchos a muchos
Como estudiantes y cursos. Un estudiante puede elegir varios cursos, y varios estudiantes también pueden seleccionar un curso
-
-
Relación de realización
-
Uno a muchos
En el lado más, cree un campo de clave externa para apuntar a la clave principal en un lado. Por ejemplo, cree un campo de clave externa dep_id en la tabla de estudiantes, apuntando al ID de clave principal en la tabla de departamentos
-
Muchos a muchos
Cree una tabla intermedia, la tabla intermedia contiene al menos dos campos, estos dos campos apuntan respectivamente a la clave principal de las dos tablas relacionadas. Estos dos campos juntos, como la clave principal conjunta de la tabla intermedia
-
Doce y cincuenta y nueve de la noche
Agregue un campo de clave externa en cualquier lado (el campo de clave externa debe tener una restricción única) y apunte a la clave principal del otro lado.
-
Tres paradigmas
concepto
Al diseñar tablas de bases de datos, se deben seguir algunas especificaciones.
Al diseñar bases de datos relacionales, siga diferentes especificaciones, diseñe bases de datos relacionales razonables, estas especificaciones se denominan paradigma, el paradigma en una variedad de tiempos de entrega norma , cuanto mayor es el paradigma, menor redundancia de la base de datos. La especificación secuencial se refiere a los siguientes requisitos del paradigma, incluidos los requisitos del paradigma anterior. Es decir, si desea seguir 2NF, primero debe seguir 1NF.
clasificación
Actualmente, existen 6 paradigmas para las bases de datos relacionales: Primera forma normal (1NF), Segunda forma normal (2NF), Tercera forma normal (3NF), Forma normal de cordón de baño (BCNF), Cuarta forma normal (4NF), Quinta forma normal Paradigma (5NF, también conocido como paradigma perfecto)
Primera forma normal (1NF)
Cada columna es un elemento de datos atómicos indivisible
Segunda forma normal (2NF)
Sobre la base de 1NF, los atributos que no son de código deben ser completamente dependientes de los códigos candidatos (sobre la base de 1NF, se elimina la dependencia funcional parcial de los atributos no primarios en el código principal)
Algunas explicaciones conceptuales:
-
Dependencia funcional
A-->B
, Si el valor del atributo B se puede determinar unívocamente a través del atributo A (grupo de atributos), entonces B depende de A.Por ejemplo
学号-->姓名
,(学号,课程名称) --> 分数
-
Dependencia completamente funcional
A-->B
Si A es un grupo de atributos, la determinación del atributo B debe depender de todos los atributos del grupo de atributos A. Por ejemplo,(学号,课程名称)
ser分数
completamente dependiente de -
Dependencia funcional parcial
A-->B
Si A es un grupo de atributos, la determinación del atributo B solo necesita basarse en algunos atributos del grupo de atributos A.(学号,课程名称) --> 姓名
. Solo se requiere学号
un atributo para la confirmación del nombre -
Dependencia de la función de transferencia
A-->B
,B-->C
Si se utiliza el valor del atributo A (grupo de atributos), el valor del atributo B se puede determinar de forma unívoca, y luego el valor del atributo C se puede determinar de forma única mediante el valor del atributo B.学号 --> 院系
,院系 --> 教授名
Entonces la教授名
transferencia depende de学号
-
código
Si en una tabla, un atributo o grupo de atributos depende de todos los demás atributos, este atributo o grupo de atributos se llama el código de esta tabla.
- Atributo principal: todos los atributos del grupo de atributos de código
- Atributos no primarios: otros atributos
Tercera forma normal (3NF)
Sobre la base de 2NF, cualquier atributo no primario no depende de otros atributos no primarios (sobre la base de 2NF, se elimina la dependencia transitiva)
Caso
Identificación del Estudiante | Nombre | Facultad | curso | fracción |
---|---|---|---|---|
1000 | Ari | Departamento de rendimiento-Johnson | Número alto | 90 |
1001 | Lux | Departamento de radiodifusión-Robin | Inglés | 99 |
1002 | Akali | Departamento de Educación Física-Tom | Número alto | 89 |
1003 | Robo | Departamento de Educación Física-Tom | Inglés | 120 |
1000 | Ari | Departamento de rendimiento-Johnson | computadora | 20 |
La tabla de la base de datos anterior, la columna del departamento, contiene el nombre del departamento y el profesor del departamento, que obviamente es un elemento de datos separable y no satisface el primer formulario normal. Los cambios son los siguientes.
Identificación del Estudiante | Nombre | Facultad | profesor | curso | fracción |
---|---|---|---|---|---|
1000 | Ari | Departamento de Performance | Johnson | Número alto | 90 |
1001 | Lux | Departamento de Radiodifusión | Robin | Inglés | 99 |
1002 | Akali | Departamento de educación física | Tom | Número alto | 89 |
1003 | Robo | Departamento de educación física | Tom | Inglés | 120 |
1000 | Ari | Departamento de Performance | Johnson | computadora | 20 |
Pero aun hay problemas
-
Los datos son redundantes (duplicación de datos), como la identificación del estudiante, el nombre, el departamento, el profesor, etc.
-
Hay un problema al agregar datos. Si desea abrir un nuevo departamento, pero el departamento no ha comenzado a inscribir estudiantes, no puede agregar
-
La eliminación de datos también es problemática: si un estudiante se gradúa y elimina sus datos, se eliminará la información del departamento.
Según la segunda forma normal, desmonte la mesa.
Mesa de estudiantes
Identificación del Estudiante | Nombre | Facultad | profesor |
---|---|---|---|
1000 | Ari | Departamento de Performance | Johnson |
1001 | Lux | Departamento de Radiodifusión | Robin |
1002 | Akali | Departamento de educación física | Tom |
1003 | Robo | Departamento de educación física | Tom |
Horario de clases
Identificación del Estudiante | Título del curso | fracción |
---|---|---|
1000 | Número alto | 90 |
1001 | Inglés | 99 |
1002 | Número alto | 89 |
1003 | Inglés | 120 |
1000 | computadora | 20 |
Después de desmontar la tabla, el código de la tabla de estudiantes es el número de estudiante y otros atributos dependen completamente del número de estudiante; el código de la tabla de cursos es (número de estudiante, nombre de curso) y otros atributos dependen completamente de la código. (Se elimina la dependencia parcial de los atributos no primarios de los atributos primarios)
Se solucionó la redundancia de datos , pero aún existen problemas para agregar y eliminar datos. Por ejemplo, agregue un nuevo departamento o elimine el registro de un compañero de clase después de la graduación.
Mirando la tabla de estudiantes, el profesor depende del departamento, el departamento depende del número de estudiante y la relación entre el profesor y el número de estudiante es transitiva. Según el tercer paradigma, la tabla de estudiantes se divide para eliminar la dependencia transitiva. Divida la tabla de estudiantes en la tabla de estudiantes y la tabla de departamentos
Mesa de estudiantes
Identificación del Estudiante | Nombre | Facultad |
---|---|---|
1000 | Ari | Departamento de Performance |
1001 | Lux | Departamento de Radiodifusión |
1002 | Akali | Departamento de educación física |
1003 | Robo | Departamento de educación física |
Lista de profesores
Facultad | profesor |
---|---|
Departamento de Performance | Johnson |
Departamento de Radiodifusión | Robin |
Departamento de educación física | Tom |
如此以来,就遵循了第三范式。可以新增新开设的院系和教授,学生毕业后,直接删除学生记录,不会清除掉院系的信息。数据冗余,添加数据,删除数据这三个问题都解决了。