Во всех СУБД (системах управления базами данных) Hay varios tipos de relaciones entre tablas. Entre ellos se encuentran las relaciones uno a uno, uno a muchos, muchos a uno (algunos tienden a identificar estos dos tipos en uno) y las relaciones de muchos a muchos. En este artículo se considerará un ejemplo de esto último, su explicación y aplicación en varios DBMS, como Access o SQL.
Una relación de muchos a muchos se define comocorrespondencia a cualquiera de las instancias de una de las entidades de todas las instancias de la otra. En otras palabras, cada campo de la primera (segunda) tabla está asociado con todos los campos de la segunda (primera).
El esquema presentado refleja claramente la esencia de esta relación.
Un ejemplo de comunicación de muchos a muchos es el estudiantegrupo y grupo de profesores. Cada estudiante aprende de varios profesores a la vez, quienes, a su vez, dan conferencias a varios estudiantes. La imagen muestra la diferencia entre las relaciones uno a muchos y muchos a muchos.
Las relaciones de muchos a muchos a menudo se necesitan cuandoCuando se compilan bases de datos a gran escala, los ejemplos ilustrativos pequeños generalmente se usan solo con fines educativos, pero en la práctica real resulta que cuantas más entidades en la base de datos y más relaciones entre ellas, es más probable que acceda a la relación de muchos a muchos con frecuencia.
Los ejemplos de la relación en cuestión seguirán siendoagregado en el curso del artículo, sin embargo, es importante no solo entender qué es, sino también cómo se puede implementar. Los detalles de este proceso dependen directamente del DBMS elegido para la operación, mientras que el principio sigue siendo el mismo para todos.
Software de Microsoft Officeconocido en el mercado del software desde hace bastante tiempo. Viene con un editor de texto Worfd, un procesador de hojas de cálculo Excel y otros en la línea de la oficina. Puede comprar Access (leído como "acceso", la traducción literal es "acceso") y por separado de sus "colegas". Se recomienda comprar, por supuesto, software con licencia, pero no es ningún secreto para nadie cuántos reempaques pirateados se pueden encontrar en la Web, en forma de archivos ordinarios o distribución de torrents. Microsoft Access está disponible incluso en una versión portátil. Esto, que no requiere instalación y habilidades especiales de PC, es mejor para elegir si el software no se utilizará durante mucho tiempo y con frecuencia.
Está claro por el contexto que Microsoft Access essistema de gestión de bases de datos. Y uno de los más populares. Es relacional, lo que significa que se basa en un modelo de datos lógico que, en el curso de su trabajo, se convierte en teoría de conjuntos y lógica de primer orden. La relación de muchos a muchos en Access (se darán ejemplos en el curso de la explicación) es muy, muy simple. Considérala.
Para no tener nada nuevo, tomaremosindicado para aclarar la relación de muchos a muchos, un ejemplo sobre los estudiantes. Es necesario crear la tabla "Estudiantes" y la tabla "Profesores". Tanto el primero como el segundo tienen claves principales. Para unir instancias de estas dos entidades, también se requiere una tabla más, cuyos campos son las claves de la primera y segunda tabla.
Si miras otro ejemplo:por ejemplo, jugadores y equipos (dado que al menos uno de los jugadores jugó para diferentes equipos y cada equipo tiene once jugadores), la esencia de construir una conexión no cambiará. También se necesitarán tres mesas. De estos, "Futbolistas" y "Equipos" como los principales, y uno intermedio.
Relaciones entre tablas en el DBMS de Microsoft Accessimplementado usando la pestaña "Esquema de datos". Todas las entidades necesarias se agregan al panel que aparece (en nuestro caso, las tres tablas). La creación de una relación de muchos a muchos ocurrirá usando dos relaciones de uno a muchos entre los principales (Estudiantes y Maestros) y la tabla intermedia. Para esto, es necesario interconectar las claves primarias correspondientes.
La ilustración de arriba muestra cómo se ve la pestaña Relaciones. El número de tablas agregadas al panel es ilimitado. La ubicación es totalmente ajustable por el usuario.
Проектирование баз данных на SQL - задача más difícil que en "Acceso". Si el producto de Microsoft está totalmente adaptado para el entorno de la oficina, tiene una gran cantidad y, con cada lanzamiento y actualización, todo es extensible, funcional, pero al mismo tiempo conveniente para la interfaz de usuario simple, entonces SQL es un lenguaje de programación no procesal que se puede usar en diferentes plataformas Puedes trabajar con bases de datos. Software conocido para esta tarea: Oracle MySQL y DB2 (popular, pero no único). A pesar de que cada uno de ellos tiene sus propias sutilezas y matices, el lenguaje SQL "los une". Después de haber aprendido a trabajar con al menos uno de ellos, será mucho más fácil tratar con el otro.
Crear, completar y dirigir acciones.sobre una base de datos existente en SQL, necesita a través de códigos especiales o scripts. Sin embargo, aquellos que ya han llegado a la sección "Comunicaciones de muchos a muchos", un ejemplo del cual en este lenguaje de programación se proporcionará a continuación, deben conocer al menos los comandos y principios básicos del uso del lenguaje SQL.
Una larga introducción podría ser algo confusa y"deja que la niebla", pero de hecho el principio de comunicación es el mismo. Para que el tipo de relación de muchos a muchos se ponga en práctica, no solo en Access, sino también en SQL, inicialmente es necesario crear dos tablas base y una tabla intermedia. La situación es similar con las teclas: las entidades principales tienen campos principales, cada uno de los cuales se escribe en la tabla de enlaces. Lo que significa que la conexión SQL de muchos a muchos no es fundamentalmente diferente de "Acceso".
Para implementar comunicaciones de muchos a muchos en scriptsSQL utiliza claves foráneas (FOREIGN KEY) similares a las claves de origen en las tablas principales. Se registran junto con todos los campos cuando se crean y / o editan.
Generalmente relaciones entre entidades en bases de datosutilizado para la integridad de la información almacenada en ellos. Solo una base de datos bien diseñada con todas las conexiones necesarias garantiza la seguridad del almacenamiento, la facilidad de uso y es una estructura resistente a las influencias y cambios externos. Por lo general, si la base de datos contiene datos sobre toda la organización, empresa o empresa, contiene muchas entidades con diferentes instancias.
Y esto significa que al compilar un esquema de datos (en"Acceso") o secuencias de comandos (en "Oracle" o "DiBiTu") habrá al menos una relación de muchos a muchos. Un ejemplo de SQl, a menudo utilizado en la enseñanza del curso "Organización de la base de datos" - King Database.
Esta base de datos de capacitación proporciona información sobre King Corporation. Entre las mesas:
Las tablas pequeñas que no tienen más de dos o tres campos están asociadas con un máximo de una tabla en una relación de uno a uno o de uno a muchos.
Tablas de escala como "empleados"las empresas "," empresas-compradores "," contratos de venta "y" actos de ventas "están asociados con varias entidades a la vez, y con algunas, con la ayuda de relaciones intermedias" muchos a muchos ". La tabla" empresas-compradores "en sí es un intermediario como tal, porque tiene muchos campos prestados de otras tablas y son claves externas. Además, la escala y la relación de la base de datos de King Corporation es tal que todas las relaciones están inextricablemente correlacionadas entre sí y se afectan entre sí. uno de ellos implicará q integridad struction de toda la base de datos.
Al implementar comunicaciones de muchos a muchos, fueradependiendo de qué DBMS se use, es muy importante determinar correctamente las claves con las que se compilará la relación. Una conexión implementada incorrectamente no cumplirá su propósito principal, es decir, garantizar la integridad de la tabla y, como resultado, en lugar de la comodidad esperada, el usuario, por el contrario, tendrá inconvenientes y problemas adicionales, especialmente al completar las tablas y editar los datos en ellas.