Quando se selecionam origens múltiplas, é preciso também especificar como as linhas dessas colunas se associarão na união das tabelas. Pode-se usar o Assistente SQL para definir a união.
É preciso ligar as origens à etapa para poder definir a união.
Para unir tabelas de origem:
Aparece o Assistente SQL.
A coluna passa da lista Colunas disponíveis para a lista Colunas selecionadas.
Clique em >> para incluir todas as colunas na lista Colunas disponíveis na lista Colunas selecionadas.
Se as colunas tiverem tipos de dados compatíveis, aparecerá uma linha de cor cinza conectando as colunas e o botão União estará disponível.
Se as colunas não possuírem tipos de dados compatíveis, uma mensagem de erro será exibida na área de status no final da janela.
O Assistente SQL desenha uma linha vermelha entre as colunas selecionadas, o que indica que as tabelas estão unidas naquela coluna.
Para remover uma união:
O Assistente SQL se fecha.
Dica: | As tabelas de origem têm que existir para que seja possível usar o botão de comando Testar na página Instrução SQL. Se foi especificado que o Centro de Data Warehouse vai criar as tabelas, será preciso promover para o modo de teste as etapas que se ligam a essas tabelas como tabelas de destino para poder criar as tabelas. |
O bloco de notas Propriedade da Etapa se fecha.
Em muitos ambientes de produção, os dados de origem incluem informações codificadas. Pode-se usar códigos, por exemplo, para fazer referência a números de peças dentro de todo o banco de dados. Existe também uma tabela que relaciona os números das peças aos números de série e descrições de cada peça. Nessas situações, deseja-se que as informações contidas no warehouse incluam o nome e a descrição de cada peça. Para isso, é preciso aliar a tabela de decodificação aos dados de origem que contêm os números de peça codificados.
Primeiramente, é preciso definir a tabela de decodificação e a tabela dos números de peça codificados como parte de uma origem do warehouse. Depois, selecione as tabelas como tabelas de origem correspondentes a um etapa. Clique então em Unir na página Uniões do Assistente SQL para unir as tabelas.
Outra estratégia é usar uma instrução CASE para decodificar os dados. Exemplificando: os dados de uma coluna mês estão codificados numericamente e deseja-se transformá-los em cadeias de caracteres que contenha a abreviação do mês. Emita então a seguinte instrução:
CASE TBC.ORDER_HISTORY.ORDERMONTH WHEN 1 THEN 'Jan' WHEN 2 THEN 'Feb' WHEN 3 THEN 'Mar' WHEN 4 THEN 'Apr' WHEN 5 THEN 'May' WHEN 6 THEN 'Jun' WHEN 7 THEN 'Jul' WHEN 8 THEN 'Aug' WHEN 9 THEN 'Sep' WHEN 10 THEN 'Oct' WHEN 11 THEN 'Nov' WHEN 12 THEN 'Dec' END
Por padrão, presume-se que uma união seja uma união interna. Pode-se também solicitar outros tipos de união, clicando para isso em Tipo de União na página Uniões do Assistente SQL. Os seguintes tipos de uniões estão disponíveis:
Se seu banco de dados suporta as palavras-chave OUTER JOIN, união interna pode ser estendida de modo a incluir linhas de uma tabela que não têm linhas correspondentes na outra tabela.
Eis um exemplo: queremos unir duas tabelas para obter o sobrenome do gerente de cada departamento. A primeira tabela é uma tabela Departamento que apresenta o número de empregados de cada gerente de departamento. A segunda tabela é uma tabela Empregado que contém o número e o sobrenome de cada empregado. No entanto, alguns departamentos não têm gerente; nesses casos, o número do empregado do gerente do departamento é nulo. Para incluir todos os departamentos, independentemente de terem ou não gerente e do sobrenome do gerente, se ele existir, gera-se uma união externa esquerda.
A união externa esquerda inclui linhas da primeira tabela que correspondem à segunda tabela ou que são nulas. A instrução SQL resultante é:
SELECT DEPTNO, DEPTNAME, EMPNO, LASTNAME FROM DEPARTMENT LEFT OUTER JOIN EMPLOYEE ON MGRNO = EMPNO
Uma união externa direita é igual a uma e união externa esquerda, só que inclui linhas da segunda tabela que correspondem à primeira tabela ou que são nulas. A união externa completa inclui linhas com correspondência e linhas nulas das duas tabelas.
Exemplo: temos duas tabelas, Tabela 1 e Tabela 2, com os seguintes
dados:
Tabela 1 | |
---|---|
Coluna A | Coluna B |
1 | A |
2 | B |
3 | C |
Tabela 2 | |
---|---|
Coluna C | Coluna D |
2 | X |
4 | 2 |
Especificamos uma condição de união Coluna A = Coluna C. As tabelas resultantes para os diferentes tipos de união são:
Coluna A | Coluna B | Coluna C | Coluna D |
---|---|---|---|
2 | B | 2 | X |
Coluna A | Coluna B | Coluna C | Coluna D |
---|---|---|---|
1 | A | nulo | nulo |
2 | B | 2 | X |
3 | C | nulo | nulo |
Coluna A | Coluna B | Coluna C | Coluna D |
---|---|---|---|
2 | B | 2 | X |
nulo | nulo | 4 | 2 |
Coluna A | Coluna B | Coluna C | Coluna D |
---|---|---|---|
1 | A | nulo | nulo |
2 | B | 2 | X |
3 | C | nulo | nulo |
nulo | nulo | 4 | 2 |
Se especificarmos valor (a,c), obteremos como resultado:
1 |
2 |
3 |
4 |
Você pode gerar uma união estrela, que é uma união de tabelas de origem definidas em um esquema estrela. Esquema estrela é um desenho especializado constituído pelos seguintes tipos de tabela:
Exemplo: no caso de um negócio de venda de livros por reembolso postal, algumas tabelas de dimensão seriam Clientes, Livros, Catálogos e Anos_Fiscais. A tabela dos fatos contêm informações sobre os livros encomendados de cada catálogo por cada cliente ao longo do ano fiscal.
Cada tabela de dimensão contém uma chave primária, que é uma ou mais colunas selecionadas para identificar uma linha na tabela. A tabela dos fatos contém chaves externas que correspondem às chaves primárias da tabela de dimensão. Chave externa é uma coluna de uma tabela cujos valores aceitáveis têm que existir como chave primária de outra tabela.
Quando se solicita uma união estrela, o Centro de Data Warehouse une as chaves primárias das tabelas de dimensão a chaves externas da tabela de fatos. No exemplo dado antes, a tabela Clientes tem uma chave primária do Número do Cliente e cada livro tem uma chave primária de seu número de livro (ISBN). Cada pedido de cada tabela contém chaves externas do Número de Cliente e do Número de Livro. A união estrela alia informações sobre os clientes e livros aos pedidos.
Para saber como definir chaves primárias e externas no Centro de Data Warehouse, consulte o Definindo um destino do warehouse. Para saber como definir um esquema estrela e exportá-lo para o OLAP Integration Server, consulte o Capítulo 13, Criando um esquema em estrela dentro do Centro de Data Warehouse.