mysql-muchos

 

Planificar bases de datos relacionales
Antes de crear una base de datos relacional mediante el gráfico de relaciones, diseñe la base de datos en papel o en la pantalla. En términos de bases de datos, el plan que desarrolla se denomina diagrama de relaciones de entidades.
Para conocer los pasos generales de diseño de una solución de FileMaker Pro, consulte Crear una solución.
Para planificar una base de datos relacional:
1.Determine las categorías de información que necesitará la base de datos relacional. Estas categorías serán tablas en FileMaker Pro.
Por ejemplo, una base de datos de ventas puede incluir estas tablas: Clientes, que incluye información de clientes; Facturas, que incluye información de pedidos; y Productos, que incluye información de productos.
Tablas Clientes, Facturas y Productos
2.Determine cómo se relacionan entre sí las tablas. Para ello, escriba frases sencillas que describan la forma en la que interactúan las categorías como, por ejemplo, "los clientes realizan pedidos de productos" y "las facturas registran los pedidos de los clientes".
3.Conecte una tabla a otra para indicar una relación entre ellas. Por ejemplo, un cliente puede tener facturas y las facturas pueden tener productos.
Si una tabla no tienen ninguna relación con otra, es probable que sea innecesaria. En este ejemplo, la tabla Empleados no se ajusta a esa base de datos relacional.
Tres tablas que muestran las relaciones entre sí con la tabla Empleados omitida
4.Indique el tipo de relación entre las tablas conectándolas con un símbolo representativo.
En una relación de uno a uno, un registro de la Tabla A se asocia a un registro de la Tabla B.
En una relación de uno a muchos, un registro de la Tabla A se asocia a varios registros de la Tabla B.
En una relación de muchos a muchos, varios registros de la Tabla A se asocian a varios registros de la Tabla B.
Consulte Relaciones.
Tres tablas que muestran las relaciones entre sí
En este ejemplo se muestra que:
Un cliente puede tener muchas facturas.
Un producto puede aparecer en muchas facturas.
Una factura puede tener muchos productos.
5.Tenga en cuenta que hay una relación de muchos a muchos entre Facturas y Productos. No puede configurar directamente una relación de muchos a muchos entre las dos tablas.
Las bases de datos relacionales administran directamente las relaciones de uno a uno y de uno a muchos. Debe resolver la relación de muchos a muchos mediante una tabla intermedia, que divida la relación de muchos a muchos en dos relaciones de uno a muchos. Para solucionar el problema en este ejemplo, añada la tabla intermedia Elementos de línea para almacenar información sobre los productos vendidos.
Relaciones ajustadas con la tabla Elementos de línea como tabla de unión
Tras resolver la relación de muchos a muchos, en este ejemplo se muestra que:
Un cliente puede tener muchas facturas.
Una factura puede tener muchos elementos de línea.
Un producto puede aparecer en muchos elementos de línea.
6.Determine los campos que necesitará cada tabla.
Cada tabla tiene sólo un tema, y todos los campos de esa tabla hacen referencia únicamente a ese tema. Por ejemplo, los campos de un registro de la tabla Clientes almacenan toda la información sobre un cliente.
Por este motivo, debe asignar a cada cliente un número de identificación exclusivo. En la base de datos, esta es la clave principal. No introduciría ningún número de identificación de cliente en la tabla a no ser que tuviera que añadir un cliente nuevo. Por lo tanto, la existencia de un número de cliente determina la existencia de un registro. La tabla Clientes puede también incluir campos para el nombre, la dirección y el número de teléfono del cliente.
La tabla Productos puede incluir campos para el número de identificación del producto, el precio por unidad de cada producto y la cantidad disponible en existencias. La tabla Elementos de línea puede incluir campos para los números de identificación de productos y facturas, así como para el nombre, el precio por unidad, la cantidad y el precio total de cada artículo vendido. La tabla Facturas puede incluir campos para el número de identificación de facturas, la fecha del pedido y el vendedor.
Campos mostrados en cada tabla
7.Determine el campo de clave principal (o campos para una relación de varios criterios) para cada tabla e indique cada uno en su plan. A continuación, indique el campo o los campos de clave externa de cada tabla.
En este ejemplo:
Las claves principales son Clientes::ID de cliente, Facturas::ID de factura, Productos::ID del producto y Elementos de línea::ID de elemento.
Las claves externas son Facturas::ID de cliente y Elementos de línea::ID del producto.
Para mostrar datos de clientes en la tabla Facturas, debe tener un campo común entre las dos tablas a fin de crear una relación. ID de cliente es el campo común. En la tabla Clientes, es la clave principal; en la tabla Facturas, es la clave externa.
En la tabla Elementos de línea, ID del producto es el campo común entre las tablas Elementos de línea y Productos. En la tabla ID del producto, este campo es la clave principal; en la tabla Elementos de línea, es la clave externa.
Estos campos de clave son del tipo de campo de coincidencia. Consulte Relaciones.
Campos de clave resaltados en un círculo en cada tabla
8.En cada una de las tablas, establezca qué campos van a almacenar datos y cuáles se usarán desde otras tablas (relacionadas).
En función del tema de la tabla, puede comprobar en qué ubicación es más lógico almacenar los datos y dónde se deben utilizar los datos de una tabla relacionada. Todos los campos de clave deberían aparecer solo una vez en la base de datos, a excepción de los campos de coincidencia.. Elimine las ocurrencias de los campos que no pertenezcan al tema de la tabla.
Campos no necesarios tachados en las tablas
9.Conecte cada clave principal con su clave externa correspondiente en la tabla relacionada.
Lo que establece una relación entre tablas es que sus campos de clave contienen datos que coinciden con los criterios de la relación.
Relaciones entre campos de clave de las tablas
Este plan indica ahora:
Un cliente puede tener muchas facturas diferentes, pero una factura individual puede tener solo un cliente.
Una factura puede tener muchos elementos de línea, pero solo un elemento de línea individual aparece en una factura.
Un producto puede aparecer en muchos elementos de línea diferentes, pero un elemento de línea individual solo tiene un producto.

    Relación uno a uno

–       Relación uno a muchos

–       Relación muchos a muchos

 

Relaciones de uno a uno

Digamos que usted tiene una tabla para los clientes:

Podemos poner la información de la dirección del cliente en una tabla aparte:

Ahora tenemos una relación entre la tabla Customers y la tabla Addresses. Si cada dirección puede pertenecer a un solo cliente, esta relación es "Uno a uno". Tenga en cuenta que este tipo de relación no es muy común. Nuestra mesa inicial que incluía la dirección junto con el cliente podría haber trabajado bien en la mayoría de los casos.

Observe que ahora hay un campo denominado "address_id" en la tabla Customers, que hace referencia al registro coincidente en la tabla Address. Esto se llama una "clave foranea" y se utiliza para todo tipo de relaciones de base de datos. Abordaremos este tema más adelante en el artículo.

Podemos visualizar la relación entre el cliente y los registros de direcciones de la siguiente manera:

Tenga en cuenta que la existencia de una relación puede ser opcional, como tener un registro de cliente que no tiene registro de dirección relacionada.

Relaciones de uno a muchas y muchas a una

Este es el tipo de relación más comúnmente utilizado. Considere un sitio web de comercio electrónico, con lo siguiente:

  • Los clientes pueden hacer muchos pedidos.
  • Las órdenes pueden contener muchos artículos.
  • Los artículos pueden tener descripciones en varios idiomas.

En estos casos, tendríamos que crear relaciones de "uno a muchos". Aquí hay un ejemplo:

Cada cliente puede tener cero, una o varias órdenes. Pero un pedido puede pertenecer a un solo cliente.

Advertisement

Muchas a muchas relaciones

En algunos casos, es posible que necesite múltiples instancias en ambos lados de la relación. Por ejemplo, cada pedido puede contener varios elementos. Y cada artículo puede también estar en órdenes múltiples.

Para estas relaciones, necesitamos crear una tabla adicional:

La tabla Items_Orders tiene un solo propósito, y es crear una relación "Muchos a muchos" entre los elementos y los pedidos.

Aquí está una manera de visualizar este tipo de relación:

Si desea incluir los registros items_orders en el gráfico, puede verse así:

Relación uno a uno

Una relación uno a uno permite que un solo registro de una tabla se relacione con un único registro de otra tabla.

Podría decirse que esta relación se realiza entre las llaves primarias de dos tablas.

Tipos de relación uno a uno sql server

Este tipo de relación se utiliza comúnmente en casos como el siguiente:

El empleado de una empresa le es asignado un número, este número es único.

Entonces en base de datos se tiene una tabla con los datos del empleado y otra tabla con los números de acceso.

Tablas relacionadas de uno a uno sql

Podría interesarte Crear relaciones entre tablas SQL Server  

Relación uno a muchos

La relación uno a muchos o viceversa permite que un solo registro de una tabla se asocie con uno o varios registros de otra tabla.

Por lo tanto, la llave primaria de una tabla se enlazará a la llave foránea de otra tabla.

Tipos de relación uno a muchos de sql server

Las relaciones de este tipo son las que mas utilizamos, podremos verlo en el siguiente ejemplo:

En una biblioteca un autor puede tener uno o más libros.

Así que en la base de datos tenemos una tabla con los datos de los autores y otra tabla con los datos de los libros.

Tablas relacionadas uno a muchos sql server

Relación muchos a muchos

Las relaciones muchos a muchos permiten que uno o varios registros de una tabla se relacionen con uno o varios registros de otra tabla.

Sin embargo, este tipo de relaciones no posible realizarlo en SQL Server de forma directa entre dos tablas, para realizar es necesario una tercera tabla.

Por lo tanto, las llaves primarias de las dos tablas que se relacionaran se enlazaran a las llaves foráneas de la tercera tabla.

Tipos de relación uno a uno sql server

Las relaciones muchos a muchos las utilizamos en casos como la siguiente:

El ticket de las compras del super, un cliente puede comprar varios productos y al mismo tiempo un producto puede ser comprado por varios clientes.

Tablas relacionales de muchos a muchos sql server

Podría interesarte Crear diagramas de base de datos SQL Server  

 

 

 

Relaciones de uno a muchos

En una relación de uno a muchos, un registro de una tabla se puede asociar a uno o varios registros de otra tabla.. Por ejemplo, cada cliente puede tener varios pedidos de ventas.

Una relación de uno a muchos presenta el siguiente aspecto en el gráfico de relaciones:

Tablas Clientes y Pedidos con una línea de relación de uno a muchos entre ellos

En este ejemplo, el campo de clave principal de la tabla Clientes, ID de cliente, se ha diseñado para contener valores exclusivos. El campo de clave externa de la tabla Pedidos, ID de cliente, se ha diseñado para permitir varias instancias del mismo valor.

Esta relación devuelve registros relacionados cuando el valor del campo ID de cliente de la tabla Pedidos es el mismo que el valor del campo ID de cliente de la tabla Clientes.

Registros de las tablas Clientes y Pedidos que muestran el resultado de una relación de uno a muchos

Como las relaciones son bidireccionales, también hay relaciones de muchos a uno.

 

 

Si bien, las relaciones 1 a muchos dependen de un campo que apunta de una tabla hacia otra, a la que llamamos llave foránea, las relaciones muchos a muchos requieren de otras formas y estrategias. 






============================================================



Relación muchos a muchos

Debes tener claro las llaves primarias y una tabla de unión para que se produzca la relación muchos a muchos ejemplo: 



Num_Ventas se relaciona con productos a través de Ventas.

Esto quiere decir que debe existir una tabla con la que se pueda relacionar entre otras para tener conexión con la tabla principal.


Si bien, las relaciones 1 a muchos dependen de un campo que apunta de una tabla hacia otra, a la que llamamos llave foránea, las relaciones muchos a muchos requieren de otras formas y estrategias.

Piensa por un momento en un ejemplo de una relación muchos a muchos, intenta traer una tú mismo, considera que normalmente leemos una relación de este tipo como que una entidad A tiene muchos elementos de una entidad B, y a su vez, B puede tener muchos elementos de A.

Si te ayuda, te daré un ejemplo, un canal de YouTube puede tener muchos suscriptores, y a su vez cada suscriptor puede estar suscrito a muchos canales de YouTube, y ahí lo tienes, una relación de muchos a muchos.

Si se te ocurrió alguna otra, déjala en los comentarios para ayudar a reforzar el concepto de tus compañeros de clase, voy a estar leyendo los ejemplos que coloquen.

En una base de datos relacional, las relaciones muchos a muchos suelen representarse a través de una tabla asociativa.

 

Una relación de muchos a muchos se produce cuando varios registros de una tabla se asocian a varios registros de otra tabla. Por ejemplo, existe una relación de muchos a muchos entre los clientes y los productos: los clientes pueden comprar varios productos y los productos pueden ser comprados por muchos clientes.

 Por lo general, los sistemas de bases de datos relacionales no permiten implementar una relación directa de muchos a muchos entre dos tablas. Tenga en cuenta el ejemplo de seguimiento de facturas. Si había muchas facturas con el mismo número de factura y uno de sus clientes preguntó acerca de ese número de factura, no sabría a qué número se refería. Este es el motivo por el que se debe asignar un valor exclusivo a cada factura.

 

Para evitar este problema, puede dividir la relación de muchos a muchos en dos relaciones de uno a muchos mediante el uso de una tercera tabla denominada tabla de unión. Cada registro de una tabla de unión incluye un campo de coincidencia que contiene el valor de las claves principales de las dos tablas que se unen. (En la tabla de unión, estos campos de coincidencia son claves externas). Estos campos de clave externa se rellenan con datos, ya que los registros de la tabla de unión se crean desde cualquiera de las tablas que se unen.

Un ejemplo típico de una relación de muchos a muchos es aquella entre los estudiantes y las clases. Un estudiante puede matricularse en muchas clases y una clase puede incluir muchos estudiantes.

En el siguiente ejemplo, se incluye una tabla Alumnos, que contiene un registro para cada estudiante, y una tabla Clases, que contiene un registro para cada clase. Una tabla de unión, Matrículas, crea una relación de uno a muchos, una entre cada una de las dos tablas.

 

 Tablas Alumnos y Clases, cada una con una línea de relación con la tabla de unión Matrículas

 

La clave principal ID de estudiante identifica de forma exclusiva a cada estudiante de la tabla Alumnos. La clave principal ID de clase identifica de forma exclusiva cada clase de la tabla Clases. La tabla Matrículas contiene las claves externas ID de estudiante e ID de clase.

Para configurar una tabla de unión para una relación de muchos a muchos:

1.Mediante el uso del ejemplo, anterior, cree una tabla denominada Matrículas. Esta será la tabla de unión.

2.En la tabla Matrículas, cree un campo ID de estudiante y un campo ID de clase.

Por lo general, las tablas de unión contienen campos que no tienen sentido en otras tablas. Puede añadir campos a la tabla Matrículas, como un campo Fecha para mantener un registro de cuándo alguien inició una clase y un campo Coste para rastrear cuánto pagó un estudiante por realizar una clase.

3.Cree una relación entre los dos campos ID de estudiante de las tablas. A continuación, cree una relación entre los dos campos ID de clase de las tablas.

Mediante este diseño, si un estudiante se matricula en tres clases, ese estudiante tendrá un registro en la tabla Alumnos y tres registros en la tabla Matrículas: un registro para cada clase en la que se ha matriculado el estudiante.

Notas 

Las tablas de unión pueden acceder a los campos y los datos entre tablas sin necesidad de crear una relación diferente. Por ejemplo, para visualizar una lista de todas las clases en las que se ha matriculado un estudiante, cree un portal en una presentación en función de la tabla Alumnos. Diseñe el portal para que muestre registros relacionados de la tabla Clases. A continuación, añada los campos adecuados de Clases al portal. A medida que se desplaza por los registros de la presentación Alumnos, el portal muestra todas las clases en las que se ha matriculado un estudiante específico.

 

 

Problemas y solución para las relaciones Muchos a muchos

Las relaciones Muchos a muchos no son recomendables y debemos tratar de evitarlas utilizando TABLAS INTERMEDIAS en las que se utilizarían relaciones de uno a muchos. Una tarea sencilla como podría ser obtener un listado de todos los profesores que imparten clases en 1ºB se convierte en una verdadera pesadilla si mantenemos esta relación. La solución pasa por crear una TABLA INTERMEDIA que nos permita dividir la relación MUCHOS A MUCHOS en dos relaciones UNO A MUCHOS como puedes ver en la figura 2.34.

 

Comentarios

Entradas populares de este blog

Filtrando por fecha

10 videojuegos gratis para aprender JavaScript en línea

reloj obs---datetime.lua