Administração e Optimização de BDs

Documentos relacionados
Administração e Optimização de BDs 2º semestre

de Bases de Dados Exame 1

de Bases de Dados Exame 1

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

Administração e Optimização de BDs

Administração e Optimização de BDs

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

de Bases de Dados Exame 2

Resolução e Critérios de Correção U.C Sistemas de Gestão de Bases de Dados. 13 de fevereiro de 2014 INSTRUÇÕES

BD II (SI 587) Algoritmos de recuperação Avançado e ARIES. Josenildo Silva.

Sistemas de Bases de Dados 2.º teste (com consulta limitada: 2 folhas identificadas) - Duração: 2 horas

Sistemas de Bases de Dados 2.º teste (com consulta limitada: 2 folhas identificadas) - Duração: 2 horas

Bases de Dados 2013/2014 Gestão de Recuperação. Helena Galhardas. Sumário

U.C Sistemas de Gestão de Bases de Dados Resolução e Critérios de Correção INSTRUÇÕES

Bases de Dados 2006/2007 Exame

Sistemas de Informação e Bases de Dados 2012/2013. Transações. Alberto Sardinha

Resolução e Critérios de Correção U.C Sistemas de Gestão de Bases de Dados. 13 de julho de 2015 INSTRUÇÕES

Bases de Dados. Exame de 1 a Época. Identifique todas as folhas. Exame sem consulta. Duração: 2h30.

Resolução e Critérios de Correção U.C Sistemas de Gestão de Bases de Dados. 19 de fevereiro de 2013 INSTRUÇÕES

Bases de Dados 2007/2008 Exame

BANCO DE DADOS 2 TRANSAÇÃO

SQL (Tópicos) Structured Query Language

Bases de Dados. Exame de 2 a Época. Identifique todas as folhas. Responda a cada grupo nas páginas respectivas do grupo. Exame sem consulta.

Bases de Dados 2013/2014 Transações. Helena Galhardas. Sumário!

Administração e Optimização de BDs

Conceitos. Gestão de Transacções. Transacção. Conceitos e Propriedades. Controlo de Concorrência. Recuperação. Transacções no SGBD Oracle

Introdução 20 Diagramas de fluxos de dados 20 O processo de elaboração de DFD 22 Regras práticas para a elaboração de DFD 24 Dicionário de dados 26

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

Planificação Anual. Departamento Expressões e Tecnologias

Bases de Dados. Exame de 1 a Época. Identifique todas as folhas. Responda a cada grupo nas páginas respectivas do grupo. Exame sem consulta.

Bases de Dados 2008/2009

Administração e Optimização de BDs

- Um "query block" permite a implementação das operações de selecção, projecção e junção da álgebra relacional.

Banco de Dados I 6 Transações e Controle de Concorrência

Técnicas de Recuperação em Banco de Dados

As Instruções DML. As Instruções de manipulação de dados(dml) em SQL são representados por: Modificam o estado do banco de dados:

se a transação falhar entre os 3 passos 4 6, os passos 1 3 ficam sem efeito 4 read(b) Consistência

se a transacção falhar entre os passos 4 6, os passos 1 3 ficam sem efeito

Sistemas de Bases de Dados 1.º teste (com consulta limitada: 2 folhas identificadas) - Duração: 2 horas

IMPLEMENTAÇÃO DE BANCO DE DADOS

ANÁLISE E PROJETO DE BANCO DE DADOS

SGBD. Definição. Funções básicas

Bases de Dados 2015/2016. Enunciado do Projeto Parte 2. O trabalho a desenvolver para a primeira parte do projeto consiste nos seguintes itens:

Transacções. Vitor Vaz da Silva

Fundamentos de Bases de Dados e-fólio C Resolução e Critérios de Correcção

Linguagem de Definição de Dados Estrutura básica Operações com conjuntos Funções de agregação Valores nulos Subconsultas embebidas Relações derivadas

Álgebra Relacional e SQL operações de interesse

BDII SQL TRANSAÇÃO Revisão 2

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

SQL Linguagem de Manipulação de Dados SQL DML SQL DML. Exemplo Modelo Relacional. Exemplo ME-R SQL DML CONTINUAÇÃO...

Exame de Recurso de Base de Dados Universidade do Algarve 03/Fev/2005, (duração: 2 horas)

A U L A 1 0 C R I A N D O V I E W S V I E W S ( V I S Õ E S )

Caderno de Introdução Bases Dados

SGBD. Funções Básicas de um SGBD

UNIVERSIDADE FEDERAL DO MARANHÃO - UFMA. Banco de Dados II. Recuperação. Carlos Eduardo Portela Serra de Castro

BCD29008 Banco de dados

Rápida revisão do Modelo Relacional

Bases de Dados. Exame de 1 a Época. Identifique todas as folhas. Exame sem consulta. Duração: 2h30.

Controle de Transação

Bases de Dados. Apresentação da disciplina. Programa

Introdução ao Banco de Dados. Banco de Dados

Banco de Dados. Maurício Edgar Stivanello

U.C Fundamentos de Bases de Dados Resolução e Critérios de Correção INSTRUÇÕES:

BCD29008 Banco de dados

Licenciatura em Informática

Revisão Banco de Dados

!" # Modelos de dados. 1ª geração. 2ª geração. 3ª geração. Modelo Hierárquico Modelo Rede. Modelo Relacional

Sistemas de Bases de Dados Relacionais Introdução ao SQL. Interrogações diversas sobre a Base de Dados Northwind - Parte II

Oracle Database: Fundamentos de SQL e PL/SQL

Definida pelo American National Standard Institute (ANSI) em 1986

Sharding e replicação com Citus

Resolução e Critérios de Correção U.C Sistemas de Gestão de Bases de Dados. 26 de fevereiro de 2016

Comandos de Manipulação

Bases de Dados. DDL Data Definition Language

trigger insert, delete, update

Consultas SQL. Andre Noel

Informática II Cap. 5-2 Bases de Dados - MsAccess

Instituto Federal de Educação, Ciência e Tecnologia de São Paulo - IFSP

Administração e Optimização de BDs 2º semestre

Sistemas de Gestão de Bases de Dados e-fólio C. Resolução e Critérios de Correção

7 Resultados Experimentais

Adriano Maranhão TRANSAÇÕES

1º Exame de Base de Dados (2015/2016);

MySql. Introdução a MySQL. Andréa Garcia Trindade

Instruções INDIQUE O SEU NOME E NÚMERO EM CADA FOLHA DO EXAME

Resolução e Critérios de Correção U.C Sistemas de Gestão de Bases de Dados. 16 de fevereiro de 2018 INSTRUÇÕES

Introdução ao PostgreSQL

Tecnologias Oracle para DW Visões Materializadas no Oracle

Bases de Dados 2007/2008 Exame

Linguagem de pesquisa declarativa para banco de dados relacional; 1ª Versão - Desenvolvida pela IBM no laboratório de pesquisa de San José;

Tarefa Orientada 17 Scripts

Sistemas de Informação e Bases de Dados 2012/2013. Restrições de Integridade em SQL

Preparação. Linguagem de Manipulação de Dados (DML) Estudo Dirigido 10/12/2013

Transcrição:

Departamento de Engenharia Informática 2010/2011 Administração e Optimização de BDs Mini-Projecto 4 A entregar a 28 de Maio de 2011 2º semestre A resolução deverá ser identificada com o número de grupo e entregue electronicamente no sistema Fénix e na aula. 1 Considere o esquema relacional da figura abaixo para uma base de dados de produtos. A figura mostra (a) o diagrama ER e (b) o esquema relacional correspondente: (a) (b) 1.1 - Para cada um dos seguintes casos, e imaginando que as interrogações correspondentes se executam com muita frequência na base de dados, indique uma possível optimização ao nível do esquema (e.g., adição de novos atributos sobre relações existentes, criação de novas relações, particionamento de relações, etc). a) Encontrar todos os fornecedores de Portugal (tabelas SUPPLIER e NATION) b) Encontrar as facturas com valor superior a 10.000 resultantes da venda de apenas um produto (tabelas LINEITEM e ORDERS) c) Apurar quais os itens (atributos PARTKEY e SUPPKEY) que demoraram mais de um mês a serem enviados (recorrendo aos atributos SHIPDATE e RECEIPTDATE na tabela LINEITEM) 1.2 Para cada um dos casos anteriores, explicite claramente qual o principal benefício obtido através da optimização de esquema sugerida. IST/DEI Pág. 1 de 2

1.3 Para cada um dos casos anteriores, explicite um potencial problema introduzido pela optimização sugerida. 2 Para cada uma das interrogações da Pergunta 1, considerando ainda as optimizações ao nível do esquema sugeridas na resolução da Pergunta 1, indique quais os mecanismos oferecidos pelo SQL Server 2008 que podem ser empregues na sua implementação. Justifique a sua resposta. 3 - Considere o esquema relacional da Pergunta 1 e a seguinte interrogação que obtém o último item facturado de cada encomenda que foi devolvida. SELECT MAX(LINENUMBER) FROM LINEITEM L2 WHERE RETURN = YES GROUP BY ORDER_KEY Indique claramente todos os índices que poderiam ser utilizados (i.e., quais os atributos chave do índice, atributos incluídos, tipo do índice, etc.) para melhorar o desempenho nesta consulta, justificando a sua resposta. Apresente ainda as instruções SQL associadas à criação do(s) índice(s) necessários. 4 Considere que após uma falha num SGBD relacional, o log de recuperação continha a seguinte informação: LSN 0 BEGIN CHECKPOINT 5 END CHECKPOINT 10 T1 UPDATE P1 (mudar valor de P1 de v1 para v2) 15 T1 UPDATE P2 (mudar valor de P2 de v3 para v4) 20 T2 UPDATE P3 (mudar valor de P3 de v5 para v6) 25 T1 COMMIT 30 T2 UPDATE P1 (mudar valor de P1 de v2 to v7) Considere ainda que, aquando do checkpoint, a dirty page table e a active transaction table se encontravam vazias. Execute os passos do algoritmo ARIES, por forma a recuperar da falha do sistema, indicando claramente quais as actualizações que são realizadas a cada passo de execução do algoritmo ARIES (i.e., a cada um dos passos envolvidos na fase de análise, redo e undo). IST/DEI Pág. 2 de 2

Abaixo encontram-se as resoluções para os problemas propostos no mini-projecto 4. Resolução do Problema 1 Pergunta 1.1 a) Encontrar todos os fornecedores de Portugal (tabelas SUPPLIER e NATION) b) Encontrar as facturas com valor superior a 10.000 resultantes da venda de apena um produto (tabelas LINEITEM e ORDER) c) Apurar quais os itens que demoraram mais de um mês a serem enviados (recorrendo aos atributos SHIPDATE e RECEIPTDATE na tabela LINEITEM) 1.1 a) Adicionar o atributo Nation à relação SUPPLIER por forma a evitar o custo associado à operação de junção (i.e., desnormalização por adição de atributo redundante) 1.1 b) Juntar as relações LINEITEM e ORDERS numa única relação, por forma a evitar o custo associado à operação de junção (i.e., desnormalização por colapsar de tabelas) 1.1 c) Particionamento vertical da relação LINEITEM, obtendo-se uma relação com a informação principal e outra com os detalhes referentes às datas. Isto corresponde a uma desnormalização por particionamento vertical de relação. Pergunta 1.2 1.2 a) A optimização 1.1 a) permite evitar o custo associado à operação de junção entre as tabelas envolvidas na interrogação. 1.2 b) Permite evitar o evitar o custo associado à operação de junção entre as tabelas envolvidas na interrogação. 1.2 c) A optimização 1.1 c) permite evitar a leitura de atributos desnecessários, diminuindo-se o número de operações de I/O. Pergunta 1.3 1.3 a) A optimização 1.1 a) envolve a alteração do esquema lógico da base de dados (algumas queries terão de ser alteradas), introduzindo ainda a possibilidade de termos informação redundante e inconsistente na base de dados. IST/DEI Pág. 3 de 2

1.3 b) A optimização 1.1 b) envolve a alteração do esquema lógico da base de dados (algumas queries terão de ser alteradas), embora não se tenham problemas de introdução de informação redundante ou potencialmente inconsistente. Existe ainda o problema de passarmos a ter tuplos maiores, o que leva a que algumas queries passem a ter um custo maior em termos de operações de I/O. 1.3 c) Queries que envolvam apenas a relação LINEITEM terão de ser re-escritas. Resolução do Problema 3 Criação de um indíce clustered sobre order_key para permitir a formação eficiente dos grupos e depois sobre line_number para permitir o cálculo eficiente do operador de agregação MAX. Finalmente deve ter cobertura do atributo return para evitar o acesso à tabela. create clustered index idx_shipmode on lineitem(order_key asc, line_number desc) include (return); Nota: Tendo em conta a errata publicada na página da cadeira, também seria aceite a solução: create clustered index idx_shipmode on lineitem(order_key asc, line_number desc) Resolução do Problema 4 Análize Analizar o log de recuperação passo a passo, com início no LSN 0. LSN 5: Inicializar a tabela XACT e a DPT como vazias. LSN 10: Adicionar (T1, LSN 10) na tabela XACT. Adicionar (P1, LSN 10) na DPT. LSN 15: Colocar LastLSN=15 para a T1 na tabela XACT. Adicionar (P2, LSN 15) na DPT. LSN 20: Adicionar (T2, LSN 20) na tabela XACT. Adicionar (P3, LSN 20) na DPT. LSN 25: Alterar o estado da T1 para "Commit" na tabela XACT LSN 30: Colocar LastLSN=30 para T2 na tabela XACT Redo: Analizar o log de recuperação passo a passo, com início no LSN 10. LSN 10: Ler a página P1 e verificar o PageLSN nela armazenado. Se PageLSN<10, redo LSN 10 (colocar valor a v2) e colocar o PageLSN=10. LSN 15: Ler a página P2 e verificar o PageLSN nela armazenado. Se PageLSN<15, redo LSN 15 (colocar valor a v4) e colocar o PageLSN=15. LSN 20: Ler a página P3 e verificar o PageLSN nela armazenado. Se PageLSN<20, redo LSN IST/DEI Pág. 4 de 2

20 (colocar valor a v6) e colocar o PageLSN=20. LSN 30: Ler a página P1 se a mesma tiver sido flushed e verificar o PageLSN na mesma, o qual será de 10. Fazer redo LSN 30 (colocar o valor a v7) e colocar o PageLSN=30. Undo: A transacção T2 deve ser desfeita. Colocar LSN 30 na lista ToUndo. Escrever um registo de Abort para T2 no log LSN 30: Fazer Undo correspondente a LSN 30 e escrever um registo CLR para P1 com "set P1=v2" e undonextlsn=20. Escrever v2 na página P1. Colocar LSN 20 na lista ToUndo. LSN 20: Fazer Undo correspondente a LSN 20 e escrever um registo CLR para P3 com "set P3=v5" e undonextlsn=null. Escrever v5 na página P3. IST/DEI Pág. 5 de 2