Limpeza e transformação de dados

Documentos relacionados
Limpeza e transformação de dados (SSIS)

NOME SEXO CPF NASCIMENTO SALARIO

Tarefa Orientada 12 Junção Externa, Auto-Junção e União

Um modelo de dados é a colecção de, pelo menos, 3 componentes:

Tarefa Orientada 13 Agrupamento e sumário de dados

Tarefa Orientada 15 Manipulação de dados

Tarefa Orientada 19 Triggers

Tarefa Orientada 16 Vistas

Disciplina de Banco de Dados Parte V

MODELAGEM DE DADOS MODELAGEM DE DADOS. rafaeldiasribeiro.com.br 04/08/2012. Aula 7. Prof. Rafael Dias Ribeiro.

BDII SQL Junção Revisão 8

Bases de Dados 2007/2008. Aula 9

INSTITUTO SUPERIOR TÉCNICO Administração e Optimização de Bases de Dados

SQL comando SELECT. SELECT [DISTINCT] <campos> FROM <tabela> [condição] [ ; ] Paulo Damico - MDK Informática Ltda.

Definida pelo American National Standard Institute (ANSI) em 1986

Tarefa Orientada 10 Obter informação a partir de uma tabela

Programação SQL. Introdução

Esquema da Relação. Modelo Relacional. Instância da Relação. Exemplo. Uma base de dados é uma colecção de uma ou mais relações com nomes distintos

Informática para Ciências e Engenharias 2012/13. Teórica 10

Banco de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri. Banco de Dados Processamento e Otimização de Consultas

PHP INTEGRAÇÃO COM MYSQL PARTE 1

Administração e Optimização de BDs

SQL: Definição de tabelas, Modificações à Base de Dados

SQL (Structured Querie Language) Escola Secundária de Emídio Navarro 2001/2002 Estruturas, Tratamento e Organização de Dados

Desenvolvimento de uma base de dados. Relação. Modelo lógico: SGBD relacional

Bases de Dados. Lab 1: Introdução ao ambiente

Tarefa Orientada 11 Junção Interna

Prof.: Clayton Maciel Costa

Bases de Dados 2007/2008. Aula 1. Referências

a) In Microsoft SQl Server 2005 you make a new query, and execute it.

UNIVERSIDADE FEDERAL DE SANTA MARIA - UFSM COLÉGIO AGRÍCOLA DE FREDERICO WESTPHALEN BANCO DE DADOS II

Integridade dos Dados

SQL Linguagem de Manipulação de Dados. Banco de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri

Triggers. um trigger permite que uma determinada sequência de comandos SQL seja accionada quando um determinado evento ocorre.

Roteiro 9 - SQL Básico: chave estrangeira, operadores de comparação e operadores booleanos

Triggers e Regras. Fernando Lobo. Base de Dados, Universidade do Algarve

Memória de aula Semanas 15 e 16

EXAME DE 1ª ÉPOCA Semestre de Verão 2004/ Junho 2005 duração: 2h30m

Bases de Dados. O ficheiro create-bank.sql contém um conjunto de instruções SQL para criar a base de dados de exemplo ilustrada na figura 1.

Laboratório 4. Base de Dados II 2008/2009

Banco de Dados. Conversão para o Banco de Dados SisMoura

Hugo Pedro Proença, 2007

ENGENHARIA DA COMPUTAÇÃO BANCO DE DADOS I CONTEÚDO 5 ABORDAGEM RELACIONAL

Criação de relações. Joaquim Frias

Os dados no MySQL são armazenado em tabelas. Uma tabela é uma colecção de informação relacionada e consiste em colunas e linhas.

Deverá ser apresentada uma caixa de combinação para auxiliar o utilizador a escolher o distrito de residência do entrevistado.

Ex.: INSERT INTO tmpautor (CDAUTOR, NMAUTOR) VALUES (1, Renato Araújo )

Periféricos e Interfaces Ano lectivo 2003/2004 Docente: Ana Paula Costa. Aula Teórica 11

Sistema de Informação de Licenciamento de Operações de Gestão de Resíduos

Reconhecer alguns dos objectos VBA Automatizar bases de dados recorrendo à programação VBA e scripts SQL

Banco de Dados BrOffice Base

Bases de Dados 1º semestre

A lógica de programação ajuda a facilitar o desenvolvimento dos futuros programas que você desenvolverá.

Banco de Dados I Linguagem SQL Parte 2. Autor: Prof. Cláudio Baptista Adaptado por: Prof. Ricardo Antonello

Introdução ao SQL. Aécio Costa

Programação SQL. Manipulação de Dados. DML Data Manipulation Language

Introdução às Bases de Dados

Ex.: INSERT INTO tmpautor (CDAUTOR, NMAUTOR) VALUES (1, Renato Araújo )

MODELO DE DADOS VS ESQUEMA

Iniciar o Data Adapter Configuration Wizard. Toolbox Data Duplo clique em OleDbDataAdapter. Botão next na caixa de diálogo

Microsoft Access. No Access, existem vários tipos de objectos: Tabelas. Consultas. Formulários Relatórios Macros Módulos

Bases de Dados 2007/2008 Exame

8. Outros tipos de Transação (Modo de Transação de Autoconfirmação e Modo Implícito)

Banco de Dados I Módulo II: Modelagem Entidade- Relacionamento versus Relacional. (Aula 3) Clodis Boscarioli

Programação III / Estruturas de Dados. Enunciado do Trabalho Prático

LINGUAGEM DE BANCO DE DADOS

UNIVERSIDADE FEDERAL FLUMINENSE PÓLO UNIVERSITÁRIO DE RIO DAS OSTRAS FACULDADE FEDERAL DE RIO DAS OSTRAS CURSO DE CIÊNCIA DA COMPUTAÇÃO

Programação 2ºSemestre MEEC /2011. Programação 2º Semestre 2010/2011 Enunciado do projecto

Veja abaixo um exemplo de como os dados são mostrados quando usamos o

Disciplina: Unidade III: Prof.: Período:

Prof. Ronaldo R. Goldschmidt. geocities.yahoo.com.br/ronaldo_goldschmidt

Modelo de Dados Relacional Restrições de um Banco de Dados Relacional

IF685 Gerenciamento de Dados e Informação - Prof. Robson Fidalgo 1

Consultas SQL Parte II

Trabalhando com conexão ao banco de dados MySQL no Lazarus. Prof. Vitor H. Migoto de Gouvêa Colégio IDESA 2011

Nome: n.º WEB Série 2B 2C 2D 2E Barueri, 17/08/2009 2ª Postagem Disciplina: Gerenciamento e Estrutura de Banco de Dados Professor: Márcio

PortugalAves Introdução online de dados de Monitorização de Aves Marinhas e RAM

Banco de Dados. Um momento crucial na organização dos dados é a forma com que cadastramos estes dados, a estrutura de armazenamento que criamos.

Persistência de Classe e Auto- Relacionamento em Tabelas de Banco de Dados

Banco de Dados. Arquitetura e Terminologia. Prof. Walteno Martins Parreira Jr waltenomartins@yahoo.

Tarefa Orientada 14 Subconsultas

Informática para Ciências e Engenharias 2013/14. Teórica 10

Comandos de Manipulação

Bases de Dados. Álgebra Relacional ou Como manipular uma BD SQL. P. Serendero,

Structured Query Language (SQL) SQL é uma linguagem normalizada (ANSI) para consultas e actualizações de bases de dados relacionais.

Roteiro. Modelo de Dados Relacional. Processo de Projeto de Banco de Dados. BCC321 - Banco de Dados I. Ementa. Posicionamento.

Programação de um Robô Industrial

Logado no OracleXE vamos acessar a opção:

Treinamento sobre SQL

MICROSOFT ACCESS MICROSOFT ACCESS. Professor Rafael Vieira Professor Rafael Vieira

Processamento e Otimização de Consultas

CICLO DE VIDA DE UM BD

Profº Aldo Rocha. Banco de Dados

f. Vocês podem selecionar todos os campos indicando-os, ou seja, sem usar * (boa prática) g. Muito relevante na manutenção de BD e de aplicações.

Listando itens em ComboBox e gravando os dados no Banco de Dados MySQL.

Transcrição:

SAD: 4º Projecto DW Limpeza e transformação de dados Suponha a operação de junção aproximada, que pode ser expressa pelo operador Match da framework de limpeza e transformação e dados AJAX. Pretende utilizar esta operação para detectar registos aproximadamente duplicados de clientes. A tabela Clientes tem o seguinte esquema: Clientes(clId, nome) e resultou da integração de duas tabelas Cliente(Id, nome) e Customer(custId, name). A chave clid não pode ser utilizada para detectar duplicados aproximados. Consideram-se duplicados aproximados os registos de Clientes cuja distância de edição entre os seus nomes é inferior ou igual a 2. Considere uma função de distância de edição editdist(s1, s2) que aceita como entradas duas cadeias de caracteres s1, s2 e devolve um número inteiro que representa a distância de edição entre as duas cadeias. a) (1pt) Escreva em SQL uma interrogação que devolve os pares de identificadores de clientes (clid1, clid2) que correspondem a clientes aproximadamente duplicados. b) (3pts) Que problema pode trazer a execução desta interrogação num SGBD Relacional? Escreva o pseudo-código de um algoritmo de execução para esta operação, potencialmente mais eficiente que o escolhido pelo optimizador do SGBDR, que podia ser considerado como equivalente (ou seja, o resultado era o mesmo) ao algoritmo de execução escolhido pelo SGBDR (Nota: use a informação sobre o tamanho das cadeias de caracteres corresponentes aos nomes) 1

Select c1.clid clid1, c2.clid clid2 from Clientes C1, Clientes C2 where editdistance (C1.nome, C2.nome) <= 2 and C1.nome!= C2.nome b) Existe um problema de desempenho: o SGBD executa o produto cartesiano entre as duas tabelas (ou da tabela por ela própria) e aplica a função de distância a cada tuplo do produto cartesiano Pseudo-código de um algoritmo alternativo baseado no tamanho das cadeias de caracteres para filtrar os tuplos de entrada ao produto cartesiano. cl1 ~ cl2 se dist(cl1.nome, cl2.nome) <= 2 A optimização consiste em determinar um mapeamento f() e uma função dist (), tal que: Dist (f(cl1.nome), f(cl2.nome)) <= 2 and Dist (f(cl1.nome), f(cl2.nome)) < = dist (cl1.nome, cl2.nome) Vamos usar: f(string) = len(string) dist (x,y) = x y 2

Input: Π nome (Clientes), editdist, 2 { P cjto de partições de Π nome (Clientes) de acordo com len() Para cada partição p1 P { Para cada partição P2 P tal que P1.len P2.len <= 2 do { para cada s1 P1 do { para cada s2 P2 do { if editdist(s1, s2) < = 2 then output = output (s1, s2) }}}}} SQL Server 2005 Integration Services Siga as cinco lições do tutorial do Integration Services. Após a 5ª lição, terá aprendido como ler registos de um ficheiro (ou mais) de texto, verificar se determinados valores contidos nas linhas desse ficheiro pertencem às tabelas de dimensões DimCurrency e DimTime (operações de lookup) e a carregar as linhas que obedeçam às condições das operações de lookup para a tabela de factos FactCurrencyRate. Terá também aprendido a escrever, numa tabela de log, os registos do ficheiro de entrada que contenham valores errados e que por isso não possam ser processados pelas operações de lookup. a) Assuma um único ficheiro de entrada SampleCurrencyData.txt (como nas lições 1 e 2) e que o ficheiro de entrada é escrito numa tabela cujas colunas correspondem às colunas do ficheiro. Dê a essa tabela o mesmo nome do ficheiro. Escreva em SQL uma interrogação para cada operação de lookup. Suponha que o resultado da primeira operação de lookup é escrito numa tabela intermédia com nome OutLookupCurrency. b) Escreva em SQL o conjunto de instruções SQL que correspondem à sequência: Lookup Currency Key, Lookup Date Key, Sample OLE DB Destination. Assuma a criação de tabelas intermédias para armazenar o resultado de algumas interrogações. c) Como conseguiria modificar uma das interrogações que correspondem às operações de Lookup de modo a escrever os registos de entrada errados para uma tabela de saída, denominada LogTable? d) Como se comporta o SQL quando existe um erro no processamento de uma interrogação, por exemplo quando se tenta executar uma instrução de insert de vários tuplos numa tabela e um dos tuplos viola a restrição de chave primária? O que acontece aos outros tuplos que não violam a restrição de integridade? 3

SampleCurrencyData(AverageRate, CurrencyId, CurrencyDate, EndOfDayRate) DimCurrency(CurrencyKey, CurrencyAlternateKey, CurrencyName) DimTime(TimeKey, FullDateAlternateKey, DayNumberOfWeek, EnglishDayNameOfWeek,... FactCurrencyRate(CurrencyKey, TimeKey, AverageRate, EndOfDayRate) a) e b)select S.AverageRate, S.CurrencyDate, S.EndOfDayRate, D.CurrencyKey into OutLookupCurrency from SampleCurrencyData S, DimCurrency D where S.currencyId = D.CurrencyAlternateKey select C.CurrencyKey, T.TimeKey, C.AverageRate, C.EndOfDayRate into FactCurrencyRate from outlookupcurrency C, DimTime D where C.CurrencyDate = T.FullDateAlternateKey 4

c) A primeira interrogação, por exemplo, tinha que ser acompanhada de outra interrogação: Select * into LogTable From SampleCurrencyDate Where CurrencyId not in (select CurrencyId from OutLookupCurrency) d) A execução da instrução pára assim que é violada a restrição de integridade. Todos os outros tuplos que já foram inseridos não o são porque uma instrução SQL corresponde a uma transacção. 5