UFCD 787 Administração de base de dados Elsa Marisa S. Almeida 1 Objectivos • Replicação de base de dados • Gestão de transacções • Cópias de segurança • Importação e exportação de dados Elsa Marisa S. Almeida 2 Replicação de base de dados • O que é replicação? Elsa Marisa S. Almeida 3 Replicação de base de dados • Duplicar, fazer múltiplas cópias controladas de dados com objectivo de: – Descentralização de aplicações – Hot-backup de servidores de banco de dados – Balanceamento de carga – Data warehousing Elsa Marisa S. Almeida 4 Replicação de base de dados • Benefícios que um bom modelo de replicação procura proporcionar: – Alta disponibilidade – Alto desempenho – Eliminar o problema de dados inconsistentes decorrentes da integração tardia entre sistemas Elsa Marisa S. Almeida 5 Replicação de base de dados • Problemas existentes em um modelo replicado – Escalabilidade – Inconsistências Elsa Marisa S. Almeida 6 Replicação de base de dados • Topologias (Rede ou Peer-to-Peer) Elsa Marisa S. Almeida 7 Replicação de base de dados • Topologias (Estrela) Elsa Marisa S. Almeida 8 Replicação de base de dados • Topologias (Hierárquica) Elsa Marisa S. Almeida 9 Replicação de base de dados • Softwares de replicação Oracle Replication – Não suporta replicar para outros SGBDs – Não replica sequences e nem alguns tipos de dados: LONG e LONG RAW – Resolução de conflitos: latest timestamp, site priority, customizado, etc. – Necessita controle em triggers para evitar loop • SQLServer Replication • Slony - open source Elsa Marisa S. Almeida 10 Replicação de base de dados • O que replicar? – Tabelas de configuração e de dados auxiliares – Cadastros – Movimentações que precisem ser processadas em um escritório central – Resumos / Resultados / Tabelas sumarizadas • O que não replicar ? – Movimentação que interessa apenas ao site. Exemplo: Pedidos e itens de pedidos, orçamentos, itens de notas fiscais, etc. Elsa Marisa S. Almeida 11 Gestão das transacções MS SQL Ideal para grandes volumes de dados e de transações, com o MS SQL Server você optimiza a gestão de dados e aplicações do seu site. O MS SQL Server é um SGBD que possui uma plataforma de dados confiável, produtiva e inteligente. Permite que executemos as acções mais criticas e mais exigentes, reduza o tempo e o custo de desenvolvimento e torne a gestão da base de dados mais simples. Elsa Marisa S. Almeida 12 MS SQL • Principais recursos do MS SQL – Proteger informações criticas • permite a encriptação de uma bd inteira, arquivos de dados ou arquivos de log, com necessidade de mudanças nas aplicações • Os benefícios dessa encriptação incluem: consultas de dados encriptados usando consultas em série ou associadas, proteger os dados de consultas de usuários não autorizados e encriptação de dados sem requerer qualquer mudança nas aplicações existentes. Elsa Marisa S. Almeida 13 MS SQL – Garante a continuidade dos negócios • “duplicação”/ mirror de base de dados avançado – Reduz a complexidade do mirror da base de dados • permite que tanto as máquinas principais quanto as mirror, recuperem dados de forma transparente de tipos de erros 823/824 do tipo página de dados • proporciona óptimo desempenho e minimiza a largura da banda usada pelo mirror da base de dados Elsa Marisa S. Almeida 14 MS SQL – Resposta previsivel • Fornece uma resposta consistente e previsível aos usuários finais com a introdução do Gestor de Recursos – O Gerenciador de Recursos permite que as empresas definam limites de recursos e prioridades para diferentes cargas de trabalho. • Desempenho de Consulta Previsível: – Permite maior previsibilidade e estabilidade do desempenho de consulta, fornecendo funcionalidade para bloquear os planos de consulta, permitindo que as empresas promovam planos de consultas estáveis na substituição de servidores, actualização de servidores e implantações de produção. Elsa Marisa S. Almeida 15 MS SQL – Compressão de Dados: • Permite que os dados sejam armazenados de forma mais eficiente e reduz os requisitos de armazenamento para os seus dados. • A Compressão de Dados também fornece significantes melhorias de desempenho para grandes cargas de trabalho de I/O (entrada/saída), como o data warehousing. – sistema de computação utilizado para armazenar informações relativas às actividades de uma organização em base de dados, de forma consolidada. Elsa Marisa S. Almeida 16 MS SQL – Inteligente • • • • Compressão de backup Uso de tabelas particionadas Optimizações de consultas Entrega de informações relevantes Elsa Marisa S. Almeida 17 Cópia de seguranças . Em informática, cópia de segurança é a cópia de dados de um dispositivo de armazenamento para outro para que possam ser restaurados em caso da perda dos dados originais, o que pode envolver apagamentos acidentais ou corrupção de dados. Na eventualidade de ocorrência de incidente, os dados devem ser repostos, recorrendo então à informação armazenada na cópia de segurança. A recuperação dos dados deverá ser efectuada rapidamente e de forma eficiente, para que os serviços não se encontrem inactivos por muito tempo. A prioridade da reposição dos dados deve ser estabelecida, conforme as necessidades da organização. Elsa Marisa S. Almeida 18 Importação e exportação de dados em MS SQL O Assistente de Importação e Exportação do SQL Server fornece o método mais simples para criar pacotes básicos e copiar dados entre fontes de dados. Para iniciar o Assistente de Importação e Exportação do SQL Server: .No menu Iniciar, aponte para Todos os Programas, aponte para Microsoft SQL Server 2008 e, em seguida, clique em Importar e Exportar Dados. Caso esteja a usar o MS SQL express a opção referida anteriormente não se encontra disponivel. Elsa Marisa S. Almeida 19 Referências Bibliográficas • Replicacaobd.ppt • http://msdn.microsoft.com • http://pt.wikipedia.org/wiki/Data_Warehous e Elsa Marisa S. Almeida 20 Comandos SQL • Criação de uma tabela • Create Table • Create table (campo1 tipo[(tamanho)] ..... .tipos de dados dos campos: datetime / double / text / Elsa Marisa S. Almeida 21 Comandos SQL Alteração de uma tabela A instrução ALTER TABLE permite alterar a estrutura de uma tabela existente Sintaxe : ALTER TABLE tabela {ADD {column campo tipo } [NOT NULL] Cláusula Constraint Incluida nas instruções CREATE TABLE e ALTER TABLE permite criar e eliminar indices Elsa Marisa S. Almeida 22 Comandos SQL Existem 2 sintaxes diferentes . Uma para criar índices sobre um único campo CONSTRAINT nome {PRIMARY KEY|UNIQUE} REFERENCES tabela externa . Uma para criar índices sobre mais que um campo CONSTRAINT nome {PRIMARY KEY( coluna1) UNIQUE (único1, unico2)} FOREIGN KEY ( Ref1) REFERENCES tabExterna Elsa Marisa S. Almeida 23 Comandos SQL Eliminação de uma tabela da bd: DROP TABLE tabela Eliminação de Indices DROP INDEX Índice ON tabela Elsa Marisa S. Almeida 24 Comandos SQL para consulta à Cláusula SELECT: BD Selecciona linhas de uma ou mais tabelas e apresenta-as em forma de lista SELECT lista_campos FROM lista_tabelas Cláusula FROM Permite especificar o nome das tabelas a partir das quais a instrução SELECT deve seleccionar os dados Elsa Marisa S. Almeida 25 Comandos SQL p/ consulta à Cláusula Where: BD Cláusula Opcional que restringe as linhas retornadas num Select WHERE expressão1 AND / OR expressão2..... Cláusula Order By Permite ordenar as linhas retornadas pela instrução SELECT ORDER BY coluna1 ASC/ DESC, coluna2 ASC/DESC ...... Elsa Marisa S. Almeida 26 Comandos SQL p/ consulta à Predicado ALL BD Retorna todas as linhas que cumpram os critérios requisitados Aparece sempre por defeito não sendo necessário escrevê-lo Predicado DISTINCT Todas as linhas com valores duplicados são eliminados da lista de dados retornada pelo Select Elsa Marisa S. Almeida 27 Comandos SQL p/ actualização Instrução UPDATE Quando necessitamos de alterar muitos registos ou quando esses se encontram em diversas tabelas. UPDATE tabela SET coluna1=expressão1, coluna2=expressão2... Instrução DELETE Permite eliminar registos de uma ou mais tabelas, definidas no FROM DELETE FROM nome tabela Elsa Marisa S. Almeida 28 Comandos SQL p/ actualização Instrução INSERT INTO Permite copiar linhas de uma tabela para outra tabela. INSERT INTO tabela destino SELECT tabelaOrigem. Campo1 FROM tabelaOrigem Elsa Marisa S. Almeida 29 Comandos SQL- agregação de dados Funções de agregação mais usadas: Avg – calcula a média dos valores não nulos Count – conta o número de registos Sum - soma os valores não nulos Min – retorna o menor valor não nulo do conjunto de valores de um campo Max – retorna o maior valor não nulo do conjunto de valores de um campo. Elsa Marisa S. Almeida 30 Comandos SQL- agregação de dados Cláusula GROUP BY Permite agrupar registos com valores idênticos num único registo SELECT .... FROM .... WHERE ...... GROUP BY.... Elsa Marisa S. Almeida 31 Comandos SQL- agregação de dados Cláusula HAVING BY Semelhante à cláusula Where Permite aplicar critérios de selecção sobre o resultado calculado para cada grupo SELECT .... FROM .... WHERE ...... GROUP BY.... HAVING BY expressão1 AND/OR expressão 2 Elsa Marisa S. Almeida 32 Comandos SQL- Junção de dados Operação INNER JOIN Permite extrair informação de 2 ou mais tabelas diferentes FROM tabela1 INNER JOIN tabela2 ON tabela1.campo1 comparação tabela2.campo2 Operação UNION Permite juntar numa única tabela o resultado de várias tabelas Elsa Marisa S. Almeida 33 Comandos SQL- agregação de dados Operações LEFT JOIN e RIGHT JOIN Podem ser incluidas na cláusula FROM LEFT JOIN – faz a junção de 2 tabelas com base na comparação de valores de colunas comuns, mas ao contrário do INNER JOIN coloca na tabela final todas as linhas da tabela que se situa do lado esquerdo. RIGHT JOIN- funciona como a anterior mas relaciona-se com a tabela do lado direito. FROM tabela1 LEFT/RIGHT JOIN tabela2 ON tabela1.campo1 comparação tabela2.campo2 Elsa Marisa S. Almeida 34 Comandos SQL- operações fundamentais Restrição - operação relacional unária porque envolve apenas uma tabela. Efectua uma selecção de linhas da tabela Por exemplo: Apenas mostrar os alunos subordinados à condição Sexo= F Projecção - finalidade é extrair de uma tabela um subconjunto do conjunto de colunas dessa tabela Renomeação – consiste em atribuir um nome diferente a uma tabela ou a uma coluna da tabela Elsa Marisa S. Almeida 35 Comandos SQL- operações fundamentais Produto Cartesiano – operação relacional binária que envolve duas tabelas. O seu resultado é o aparecimento de uma nova tabela União – operação relacional binária entre duas tabelas. As tabelas envolvidas devem possuir o mesmo número de colunas Elsa Marisa S. Almeida 36