Función de la cardinalidad N a N en el diagrama ER

Autor: | Última modificación: 8 de abril de 2024 | Tiempo de Lectura: 3 minutos
Temas en este post:

Algunos de nuestros reconocimientos:

Premios KeepCoding

La función de la cardinalidad N a N (muchos a muchos) es interesante porque representa una relación donde múltiples registros de una entidad pueden estar asociados con múltiples registros de otra entidad. Por ejemplo, si estamos construyendo un sitio web para una librería online, un cliente puede comprar varios libros y un libro puede ser comprado por varios clientes. Esta es una relación N a N.

En este post vamos a embarcarnos en un viaje a través de los diagramas ER y uno de sus conceptos clave: la función de la cardinalidad N a N.

¿Qué es un diagrama ER?

Para que puedas entender la función de la cardinalidad N a N, primero necesitas saber qué es un diagrama ER (Entidad-Relación). Básicamente, es una forma de representar cómo se estructuran y relacionan los datos en una base de datos.

Por ejemplo, en una escuela de programación como KeepCoding podríamos tener entidades como «Estudiantes», «Cursos» y «Profesores». Cada una de estas entidades tendrá atributos, como el ID del estudiante, el nombre del curso o el email del profesor. Estas entidades no viven aisladas, sino que interactúan entre sí. Aquí es donde entra en juego la cardinalidad.

Función de la cardinalidad N a N

La función de la cardinalidad N a N es la forma en la que definimos las relaciones entre las entidades. En el caso de N a N (muchos a muchos), se da cuando una entidad puede estar relacionada con múltiples instancias de otra entidad y viceversa.

Por ejemplo, en nuestra escuela de programación, un estudiante (entidad 1) puede inscribirse en múltiples cursos (entidad 2). Pero, al mismo tiempo, un curso puede tener matriculados a múltiples estudiantes. ¡Eso es una relación N a N!

Resolviendo N a N con una tabla intermedia

Para representar la función de la cardinalidad N a N en el diagrama ER, primero imagina que tienes una tabla «Estudiantes» y otra tabla «Cursos». Para resolver la relación N a N, crearemos una tercera tabla que podríamos llamar «Estudiantes_Cursos». En ella, guardaremos pares de ID de estudiante e ID de curso. Esta tabla intermedia nos permitirá ver fácilmente qué estudiantes están tomando qué cursos y viceversa.

Es como si tuviéramos un botón navlink que conecta a los estudiantes con los cursos y nos permite ver de manera clara cómo están relacionados.

Cuidado con las claves primarias

Cuando trabajes con la función de la cardinalidad N a N debes tener en cuenta las claves primarias. En nuestra tabla intermedia «Estudiantes_Cursos», cada par de ID de estudiante e ID de curso es único. Eso significa que no podemos tener duplicados. La combinación de estas dos ID formará la clave primaria de la tabla intermedia.

Pero ¿qué pasaría si intentáramos introducir una combinación de ID de estudiante e ID de curso que ya existe? Nuestro sistema de gestión de bases de datos no lo permitirá. Nos dará un error diciendo algo como «Error de clave primaria: esa ya está repetida». Eso es bueno, porque garantiza la integridad de nuestros datos.

Otras cardinalidades

Antes de terminar, es importante mencionar que N a N no es la única cardinalidad que existe. Por ejemplo, también podríamos tener una relación 1 a N (uno a muchos), donde una entidad puede estar relacionada con múltiples instancias de otra entidad, pero no al revés.

Por ejemplo, un estudiante puede tener múltiples números de teléfono, pero un número de teléfono solo puede pertenecer a un estudiante. Eso sería una relación 1 a N.

Sigue aprendiendo

Ahora que has logrado desentrañar la función de la cardinalidad N a N en el diagrama ER esperamos que ya no lo veas como un enigma, sino como una herramienta útil para modelar y entender las relaciones entre datos. Como aún queda mucho más por aprender te invitamos a nuestro Desarrollo Web Full Stack Bootcamp, donde podrás practicar con ejemplos reales para afianzar la teoría. ¡Pide información ahora y atrévete a dar el paso que te cambiará la vida!

Artículos ms leídos

¡CONVOCATORIA ABIERTA!

Desarrollo Web

Full Stack Bootcamp

Clases en Directo | Profesores en Activo | Temario 100% actualizado