Relaciones de uno a muchos en una base de datos

Una relación de uno a muchos en una base de datos ocurre cuando cada registro en la Tabla A puede tener muchos registros vinculados en la Tabla B, pero cada registro en la Tabla B puede tener solo un registro correspondiente en la Tabla A.

Una relación de uno a muchos en una base de datos ocurre cuando cada registro en la Tabla A puede tener muchos registros vinculados en la Tabla B, pero cada registro en la Tabla B puede tener solo un registro correspondiente en la Tabla A. Una relación de uno a muchos en Una base de datos es el diseño de base de datos relacional más común y está en el corazón del buen diseño.

Considere la relación entre un maestro y los cursos que imparte. Un maestro puede enseñar múltiples cursos, pero el curso no tendría la misma relación con el maestro. Por lo tanto, para cada registro en una tabla de Maestros, podría haber muchos registros en la tabla Cursos. Esta es una relación de uno a muchos: un maestro para múltiples cursos.

Por qué es importante establecer una relación de uno a muchos

Para representar una relación de uno a muchos, necesita al menos dos tablas. A ver por qué.

Quizás creamos una tabla en la que queríamos registrar el nombre y los cursos impartidos. Podríamos diseñarlo así:

ID del maestro
Nombre del maestro
Curso
Teacher_001 Carmen Biología
Teacher_002 Veronica Matemáticas
Teacher_003 Jorge inglés

¿Qué pasa si Carmen enseña dos o más cursos? Tenemos dos opciones con este diseño. Podríamos agregarlo al registro existente de Carmen, así:

ID del profesor
Profesor _Nombre
Curso
Teacher_001 Carmen Biología, Matemáticas
Teacher_002 Veronica Matemáticas
Teacher_003 Jorge inglés

Sin embargo, el diseño anterior es inflexible y podría ocasionar problemas más adelante al intentar insertar, editar o eliminar datos. Hace que sea difícil buscar datos. Este diseño viola el primer principio de normalización de la base de datos, primer formulario normal (1NF), que establece que cada celda de la tabla debe contener una sola pieza de datos discreta.

Otra alternativa de diseño podría ser simplemente agregar un segundo registro para Carmen:

Profesor _ID
Profesor _Nombre
Curso
Teacher_001 Carmen Biología
Teacher_001 Carmen Matemáticas
Teacher_002 Veronica Matemáticas
Teacher_003 Jorge inglés

Esto se adhiere a 1NF pero sigue siendo un mal diseño de la base de datos porque introduce redundancia y podría hinchar innecesariamente una base de datos muy grande. Más importante aún, los datos podrían volverse inconsistentes. Por ejemplo, ¿qué pasa si cambia el nombre de Carmen? Alguien que trabaje con los datos podría actualizar su nombre en un registro y no actualizarlo en el segundo registro. Este diseño viola la Segunda Forma Normal (2NF), que se adhiere a 1NF y también debe evitar las redundancias de múltiples registros al separar subconjuntos de datos en múltiples tablas y crear una relación entre ellos.

Cómo diseñar una base de datos con relaciones de uno a muchos

Para implementar una relación de uno a muchos en la tabla Maestros y cursos, separamos las tablas en dos y las vinculamos con una clave externa.

Aquí, hemos eliminado la columna Curso en la tabla Maestros:

Profesor _ID
Profesor _Nombre
Teacher_001 Carmen
Teacher_002 Veronica
Teacher_003 Jorge

Y aquí está la tabla de cursos. Tenga en cuenta que su clave foránea, Teacher_ID, vincula un curso a un profesor en la tabla Maestros:

ID del curso
Nombre del curso
ID del profesor
Course_001 Biología Teacher_001
Course_002 Matemáticas Teacher_001
Course_003 inglés Teacher_003

Hemos desarrollado una relación entre los maestros y la tabla de cursos utilizando una clave externa. Esto nos dice que Carmen enseña biología y matemáticas y que Jorge enseña inglés.

Podemos ver cómo este diseño evita posibles redundancias, permite que maestros individuales enseñen múltiples cursos e implementa una relación de uno a muchos.

Las bases de datos también pueden implementar una relación uno a uno y una relación muchos a muchos.

Rate article
labsfabs.com
Add a comment