Centro de Data Warehouse Guia de Administração


Unindo colunas de origem

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:

  1. Defina uma etapa SQL. (Veja Selecionando e inserindo dados.)
  2. Abra a etapa.
  3. Clique na guia Instrução SQL.
  4. Clique em Construir SQL para ativar a geração automática da SQL. (Ou a pessoa pode digitar sua própria SQL.)

    Aparece o Assistente SQL.

  5. Clique na guia Tabelas e verifique se as origens estão na lista.
  6. Clique na guia Colunas.
    Instrução GEOGRAPHIES SELECT na página Instrução SQL.
  7. Na lista Colunas disponíveis, selecione uma coluna e clique em >.

    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.

  8. Clique na guia Uniões.
  9. Selecione uma coluna em uma das tabelas. As tabelas são exibidas na seqüência em que são mostradas na lista Tabelas selecionadas na página Tabelas.
  10. Selecione uma coluna em outra tabela.

    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.

  11. Clique no botão Tipo de União para criar a união.

    O Assistente SQL desenha uma linha vermelha entre as colunas selecionadas, o que indica que as tabelas estão unidas naquela coluna.


    União gráfica na página Uniões

  12. Para solicitar uniões adicionais, repita as etapas anteriores.

    Para remover uma união:

    1. Selecione as colunas unidas ou navegue para a união a ser removida, clicando em > ou <. Uma linha vermelha indica a união selecionada atualmente. Outras uniões são indicadas pelas linhas azuis.
    2. Clique em Desfazer união. A linha de união é removida.
  13. Clique na guia Rever para exibir a instrução SQL que acabou de ser gerada.
  14. Clique em OK.

    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.

  15. Clique em OK.

    O bloco de notas Propriedade da Etapa se fecha.

Transformando códigos

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
 

Incluindo nulos em uniões

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:

União interna

Coluna A Coluna B Coluna C Coluna D
2 B 2 X

União externa esquerda

Coluna A Coluna B Coluna C Coluna D
1 A nulo nulo
2 B 2 X
3 C nulo nulo

União externa direita

Coluna A Coluna B Coluna C Coluna D
2 B 2 X
nulo nulo 4 2

União externa completa

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

Gerando uniões estrela

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.


[ Início da Página | Página Anterior | Próxima Página | Índice | Índice Remissivo ]