Relaciones entre tablas en un modelo de datos

Su explorador no admite vídeo. Instale Microsoft Silverlight, Adobe Flash Player o Internet Explorer 9.
Vídeo: Relaciones en Power View y PowerPivot

Agregue mayor eficacia al análisis de datos creando relaciones entre los datos de tablas diferentes. Una relación es una conexión entre dos tablas de datos, basada en una columna de cada tabla. Para ver por qué son útiles las relaciones, imagine que realiza el seguimiento de los datos de los pedidos de los clientes de su negocio. Podría realizar el seguimiento de todos los datos en una sola tabla que tiene una estructura como la siguiente:

CustomerID

Nombre

Correo electrónico

Descuento

Código de pedido

Fecha

Producto

Cantidad

1

Tercedor

federico.tercedor@contoso.com

0,05

256

01-07-2010

Compact Digital

11

1

Tercedor

federico.tercedor@contoso.com

0,05

255

01-03-2010

SLR Camera

15

2

Alcalá

jorge.alcala@contoso.com

0,10

254

01-03-2010

Budget Movie-Maker

27

Este enfoque puede funcionar, pero implica almacenar muchos datos redundantes, como la dirección de correo electrónico del cliente para cada pedido. El almacenamiento es barato, pero si la dirección de correo cambia, tiene que asegurarse de que actualiza cada fila para ese cliente. Una solución a este problema es dividir los datos en varias tablas y definir relaciones entre esas tablas. Este es el enfoque usado en las bases de datos relacionales como SQL Server. Por ejemplo, una base de datos que importe podría representar los datos de los pedidos usando tres tablas relacionadas:

Clientes

[CustomerID]

Nombre

Correo electrónico

1

Tercedor

federico.tercedor@contoso.com

2

Alcalá

jorge.alcala@contoso.com

Descuentos de cliente

[CustomerID]

Descuento

1

0,05

2

0,10

Orders

[CustomerID]

Código de pedido

Fecha

Producto

Cantidad

1

256

01-07-2010

Compact Digital

11

1

255

01-03-2010

SLR Camera

15

2

254

01-03-2010

Budget Movie-Maker

27

En un modelo de datos existen relaciones que se crean explícitamente o que Excel crea en su nombre al importar varias tablas simultáneamente. También puede usar el complemento Power Pivot para crear o administrar el modelo. Vea Crear un modelo de datos en Excel para obtener más información.

Si usa el complemento de Power Pivot para importar tablas desde la misma base de datos, Power Pivot puede detectar las relaciones entre las tablas en función de las columnas que están entre [corchetes] y puede reproducirlas en un modelo de datos que crea en segundo plano. Para obtener más información, vea Detección automática e inferencia de las relaciones en este artículo. Si importa las tablas de varios orígenes, puede crear manualmente las relaciones según se describe en Crear una relación entre dos tablas.

Principio de página

En este artículo

Claves y columnas

Tipos de relaciones

Relaciones y rendimiento

Varias relaciones entre tablas

Requisitos para las relaciones entre tablas

No compatible en una relación entre tablas

Claves compuestas y columnas de búsqueda

Relaciones varios a varios

Autocombinaciones y bucles

Detección automática e inferencia de relaciones en Power Pivot

Detección automática para los conjuntos con nombre

Inferencia de relaciones

Claves y columnas

Las relaciones se basan en las columnas de cada tabla que contienen los mismos datos. Por ejemplo, las tablas Customer y Orders se pueden estar relacionadas entre sí porque ambas contienen una columna que almacena un identificador de cliente. En el ejemplo, los nombres de columna son los mismos, pero no es obligatorio. Uno podría ser CustomerID y otro CustomerNumber, siempre que todas las filas de la tabla Orders contengan un identificador que también esté almacenado en la tabla Customers.

En una base de datos relacional, hay varios tipos de claves, que normalmente son solo columnas con propiedades especiales. Conocer el propósito de cada clave puede ayudarle a administrar un modelo de datos de varias tablas que proporciona datos para una tabla dinámica, un gráfico dinámico o un informe de Power View.

Las siguientes claves son las más interesantes para nuestros propósitos:

  • Clave principal: identifica de forma exclusiva una fila de una tabla, como CustomerID en la tabla Customer.

  • Clave alternativa (o clave candidata): una columna distinta de la clave principal que es única. Por ejemplo, una tabla Employees podría almacenar un identificador de empleado y un número de la seguridad social, ambos números únicos.

  • Clave externa: una columna que hace referencia a una columna única de otra tabla, por ejemplo, CustomerID en la tabla Orders, que hace referencia a CustomerID en la tabla Customers.

En un modelo de datos, la clave principal o la clave alternativa se conocen como columna relacionada. Si una tabla tiene una clave principal y una clave alternativa, puede usar cualquiera de ellas como base de una relación entre tablas. La clave externa se denomina columna de origen o simplemente columna. En nuestro ejemplo, se definiría una relación entre CustomerID de la tabla Orders (la columna) y CustomerID (la columna de búsqueda) de la tabla Customers. Si importa datos de una base de datos relacional, Excel elige de forma predeterminada la clave externa de una tabla y la clave principal correspondiente de la otra. Sin embargo, puede utilizar cualquier columna que tenga valores únicos como columna de búsqueda.

Tipos de relaciones

La relación entre Customers y Orders es una relación de uno a varios. Cada cliente puede tener varios pedidos, pero un pedido no puede tener varios clientes. Los otros tipos de relaciones son de uno a uno y de varios a varios. La tabla CustomerDiscounts, que define una tarifa reducida única para cada cliente, tiene una relación de uno a uno con la tabla Customers.

En la siguiente tabla se muestran las relaciones entre las tres tablas:

Relación

Tipo

Columna de búsqueda

Columna

Clientes-Descuentos de cliente

uno a uno

Customers.CustomerID

CustomerDiscounts.CustomerID

Customers-Orders

uno a varios

Customers.CustomerID

Orders.CustomerID

Nota:  Las relaciones de varios a varios no se admiten en un modelo de datos. Un ejemplo de relación de varios a varios es una relación directa entre Products y Customers, en la que un cliente puede comprar varios productos y el mismo producto puede ser comprado por varios clientes.

Relaciones y rendimiento

Una vez creada una relación, Excel normalmente debe recalcular las fórmulas en que se usen columnas de las tablas de la relación recién creada. El proceso puede tardar algún tiempo, en función de la cantidad de datos y la complejidad de las relaciones. Vea Recalcular fórmulas para obtener detalles.

Varias relaciones entre tablas

Un modelo de datos puede tener varias relaciones entre dos tablas. Para crear cálculos precisos, Excel necesita una única ruta de una tabla a la tabla siguiente. Por lo tanto, solo una relación entre cada par de tablas está activa a la vez. La otra está inactiva, pero puede especificar una relación inactiva en las fórmulas y las consultas. En la vista Diagrama de la relación activa, es una línea continua y las inactivas son líneas discontinuas. Por ejemplo, en AdventureWorksDW2012, la tabla DimDate contiene una columna DateKey que está relacionada con tres columnas diferentes de la tabla FactInternetSales: OrderDate, DueDate y ShipDate. Si la relación activa es entre DateKey y OrderDate, es la relación predeterminada de las fórmulas, a menos que se especifique otra cosa.

Principio de página

Requisitos para las relaciones entre tablas

Una relación puede crearse cuando se cumplen los requisitos siguientes:

Criterios

Descripción

Identificador único para cada tabla

Cada tabla debe tener una única columna que identifique de forma única cada fila de esa tabla. A menudo se hace referencia a esta columna como la clave principal.

Columnas de búsqueda única

Los valores de datos de la columna de búsqueda deben ser únicos. En otras palabras, la columna no puede contener duplicados. En un modelo de datos, las cadenas NULL y vacías equivalen a un valor en blanco, que es un valor de datos distinto. Esto significa que no puede tener varios valores NULL en la columna de búsqueda.

Tipos de datos compatibles

Los tipos de datos de la columna de origen y de la columna de búsqueda deben ser compatibles. Para obtener más información acerca de los tipos de datos PowerPivot, vea Tipos de datos admitidos enmodelos de datos.

No compatible en una relación entre tablas

En un modelo de datos, no se puede crear una relación entre tablas si la clave es una clave compuesta. También está limitado a crear relaciones uno a uno y uno a varios. No se admiten otros tipos de relaciones.

Claves compuestas y columnas de búsqueda

Una clave compuesta tiene más de una columna. Los modelos de datos no pueden usar claves compuestas; una tabla siempre debe tener exactamente una columna que identifique de forma única cada fila de la tabla. Si importa tablas que tienen una relación existente basada en una clave compuesta, el Asistente para la importación de tablas de Power Pivot omitirá esa relación porque no se puede crear en el modelo.

Para crear una relación entre dos tablas que tienen varias columnas que definen las claves principales y las claves externas, combine primero los valores para crear una columna de clave única antes de crear la relación. Puede hacerlo antes de importar los datos o creando una columna calculada en el modelo de datos mediante el complemento Power Pivot.

Relaciones varios a varios

Un modelo de datos no puede tener relaciones de varios a varios. No puede agregar simplemente tablas de unión en el modelo. Sin embargo, puede usar funciones de DAX para modelar las relaciones de varios a varios.

Autocombinaciones y bucles

Las autocombinaciones no se permiten en un modelo de datos. Una autocombinación es una relación recursiva entre una tabla y ella misma. Las autocombinaciones se usan a menudo para definir las jerarquías de elementos primarios y secundarios. Por ejemplo, podría unir una tabla de empleados a sí misma para generar una jerarquía que muestre la cadena de dirección en un negocio.

Excel no permite crear bucles entre relaciones en un libro. En otras palabras, se prohíbe el conjunto siguiente de relaciones.

  • Tabla 1, columna a   a   Tabla 2, columna f

  • Tabla 2, columna f   a   Tabla 3, columna n

  • Tabla 3, columna n   a   Table 1, columna a

Si intenta crear una relación que crearía un bucle, se generará un error.

Principio de página

Detección automática e inferencia de relaciones en Power Pivot

Una de las ventajas de importar los datos mediante el complemento Power Pivot consiste en que Power Pivot puede detectar relaciones y crear relaciones nuevas en el modelo de datos que crea en Excel.

Al importar varias tablas, Power Pivot detecta automáticamente las relaciones existentes entre ellas. Además, al crear una tabla dinámica, Power Pivot analiza los datos de las tablas. Detecta posibles relaciones que no se han definido y sugiere columnas adecuadas para incluirlas en esas relaciones.

El algoritmo de detección usa datos estadísticos de los valores y metadatos de las columnas para deducir la probabilidad de las relaciones.

  • Los tipos de datos de todas las columnas relacionadas deberían ser compatibles. Para la detección automática, solo se admiten los tipos de datos de texto y números enteros. Para obtener más información acerca de los tipos de datos PowerPivot, vea Tipos de datos admitidos enmodelos de datos.

  • Para que la relación se detecte correctamente, el número de claves únicas de la columna de búsqueda debe ser mayor que los valores de la tabla del lado de "varios". Dicho de otro modo, la columna de clave del lado de "varios" de la relación no debe contener ningún valor que no esté en la columna de clave de la tabla de búsqueda. Por ejemplo, suponga que tiene una tabla de productos con sus identificadores (la tabla de búsqueda) y una tabla de ventas con las ventas de cada producto (el lado de "varios" de la relación). Si los registros de ventas contienen el identificador de un producto que no tiene un identificador correspondiente en la tabla de productos, la relación no se puede crear automáticamente, pero quizás pueda crearla de modo manual. Para que Excel detecte la relación, primero debe actualizar la tabla de búsqueda, la tabla de productos, con los identificadores de producto que falten.

  • Asegúrese de que el nombre de la columna de clave del lado de "varios" es parecido al nombre de la columna de clave de la tabla de búsqueda. No es necesario que nombres sean exactamente iguales. Por ejemplo, en las empresas, suele haber variaciones de los nombres de columnas que contienen prácticamente los mismos datos: Emp ID, EmployeeID, Employee ID, EMP_ID, etc. El algoritmo detecta los nombres parecidos y asigna una probabilidad más alta a las columnas con nombres parecidos o exactamente iguales. Por consiguiente, para aumentar la probabilidad de crear una relación, se puede cambiar el nombre de las columnas de los datos que se importen por nombres parecidos a los de las columnas de las tablas existentes. Si Excel detecta varias relaciones posibles, no crea ninguna.

Esta información podría ayudar a entender por qué no se detectan todas las relaciones, o cómo los cambios realizados en los metadatos (por ejemplo, el nombre de campo y los tipos de datos) podrían mejorar los resultados de la detección automática de relaciones. Para obtener más información, vea Solucionar problemas de relaciones.

Detección automática para los conjuntos con nombre

Las relaciones no se detectan automáticamente entre los campos relacionados y conjuntos con nombre en una tabla dinámica. Puede crear estas relaciones manualmente. Si desea usar la detección automática de relaciones, quite cada conjunto con nombre y agregue directamente los campos individuales del conjunto con nombre a la tabla dinámica.

Inferencia de relaciones

En algunos casos, las relaciones entre las tablas se encadenan automáticamente. Por ejemplo, si crea una relación entre los dos primeros conjuntos de tablas del ejemplo siguiente, se deduce que existe una relación entre las otras dos tablas y se establece una relación automáticamente.

  • Productos y categorías: creadas manualmente

  • Categoría y subcategoría: creadas manualmente

  • Productos y subcategoría: se deduce la relación

Para que las relaciones se encadenen automáticamente, las relaciones deben ir en una dirección, como se mostró antes. Si las relaciones iniciales fueran entre, por ejemplo, ventas y productos, y ventas y clientes, no se deduciría una relación. Esto se debe a que la relación entre los productos y los clientes es una relación de varios a varios.

Principio de página

Ampliar sus conocimientos
Explorar los cursos
Obtener nuevas características primero
Únase a los participantes de Office Insider

¿Le ha sido útil esta información?

¡Gracias por sus comentarios!

Gracias por sus comentarios. Quizá le interese ponerse en contacto con uno de nuestros agentes de soporte de Office.

×