Projeto de Banco de Dados - Pa

32
26/08/2014 1 Escola de Ciência e Tecnologia Curso: Sistemas de Informação Disciplina: Projeto de Banco de Dados - Professor Anderson Nascimento Projeto de Banco de Dados 1 Escola de Ciência e Tecnologia Escola de Ciência e Tecnologia Curso: Sistemas de Informação Disciplina: Projeto de Banco de Dados - Professor Anderson Nascimento Visão geral Objetivo: discutir sobre projetos de bancos de dados em um contexto mais amplo para aplicações que atendam a centenas ou milhares de usuários. Bancos de dados de médio e grande porte -> necessitam de método sistemático para a atividade do projeto de banco de dados. Complexidade do projeto é reflexo do seu esquema Projetos com mais de 30 ou 40 tipos de entidades (grandes bancos de dados) -> metodologia de projeto. 2

description

Projeto de Banco de Dados

Transcript of Projeto de Banco de Dados - Pa

26/08/2014

1

Escola de Ciência e TecnologiaCurso: Sistemas de Informação

Disciplina: Projeto de Banco de Dados - Professor Anderson Nascimento

Projeto de Banco de Dados

1

Escola de Ciência e Tecnologia

Escola de Ciência e TecnologiaCurso: Sistemas de Informação

Disciplina: Projeto de Banco de Dados - Professor Anderson Nascimento

Visão geral • Objetivo: discutir sobre projetos de bancos de

dados em um contexto mais amplo para aplicações que atendam a centenas ou milhares de usuários.

• Bancos de dados de médio e grande porte -> necessitam de método sistemático para a atividade do projeto de banco de dados.

• Complexidade do projeto é reflexo do seu esquema

– Projetos com mais de 30 ou 40 tipos de entidades (grandes bancos de dados) -> metodologia de projeto.

2

26/08/2014

2

Escola de Ciência e TecnologiaCurso: Sistemas de Informação

Disciplina: Projeto de Banco de Dados - Professor Anderson Nascimento

Introdução ao Projeto de Banco de Dados

3

Escola de Ciência e TecnologiaCurso: Sistemas de Informação

Disciplina: Projeto de Banco de Dados - Professor Anderson Nascimento

• Sistemas de processamento de transações

– Grandes taxas e volumes de transações.

– Bancos, hotéis, companhias aéreas, seguradoras, emprestas de utilidades públicas e comunicações.

– Utilizam bancos de dados 24 horas por dia, 7 dias na semana (24 por 7).

4

26/08/2014

3

Escola de Ciência e TecnologiaCurso: Sistemas de Informação

Disciplina: Projeto de Banco de Dados - Professor Anderson Nascimento

O papel dos Sistemas de Informação nas organizações

• Anos 60: sistemas de informações dominados por sistemas de arquivo.

• Anos 70: mudança para sistemas de bancos de dados.

• Conseqüência: criação dos administradores de bancos de dados (DBAs) e departamentos de administração de dados.

5

Escola de Ciência e TecnologiaCurso: Sistemas de Informação

Disciplina: Projeto de Banco de Dados - Professor Anderson Nascimento

• Gestão de recursos de informações -> reconhecida como chave para a gestão dos negócios– Dados são recursos corporativos e são essenciais para o

funcionamento da organização.

– Necessidade de manutenção de grandes volumes de dados atualizados a todo o instante.

– Com o aumento da complexidade dos dados e aplicações, é necessário manter os relacionamentos entre os dados preservados.

– Tendência em consolidar os recursos de informações.

– Redução dos custos com pessoal (comércio eletrônico).

6

26/08/2014

4

Escola de Ciência e TecnologiaCurso: Sistemas de Informação

Disciplina: Projeto de Banco de Dados - Professor Anderson Nascimento

• Sistemas de bancos de dados satisfazem estes requisitos e possuem duas outras características:

• Independência de dados.

• Esquemas externos.

• Anos 70/80: criação de grandes repositórios de dados gerenciados por um único SGBD centralizado.

7

Escola de Ciência e TecnologiaCurso: Sistemas de Informação

Disciplina: Projeto de Banco de Dados - Professor Anderson Nascimento

• A partir de meados dos anos 80: tendência invertida devido aos seguintes fatores:

– Aumento no uso de computadores de uso pessoal e softwares semelhantes a bancos de dados. Prática de criar bancos de dados ganhou popularidade

– Surgimento dos SGBDs distribuídos e cliente-servidor.

– Utilização, pelas organizações, de sistemas de dicionários de dados ou repositórios de informações que gerenciam metadados (dados que descrevem a estrutura, restrições, aplicações e autorizações do banco de dados, ...). São essenciais para o gerenciamento de fontes de informações.

8

26/08/2014

5

Escola de Ciência e TecnologiaCurso: Sistemas de Informação

Disciplina: Projeto de Banco de Dados - Professor Anderson Nascimento

– O desempenho é crítico em sistemas de processamento de transações de alto desempenho:

– Bancos de dados funcionando 24h/dia, sendo acessados por centenas de transações por minuto.

– Desempenho de transações é crucial (número médio de transações por minuto e tempo médio e máximo de resposta de transações).

– Projeto físico meticuloso do banco de dados é necessário.

9

Escola de Ciência e TecnologiaCurso: Sistemas de Informação

Disciplina: Projeto de Banco de Dados - Professor Anderson Nascimento

O projeto de banco de dados no ciclo de vida dos sistemas de

informação.

10

26/08/2014

6

Escola de Ciência e TecnologiaCurso: Sistemas de Informação

Disciplina: Projeto de Banco de Dados - Professor Anderson Nascimento

Ciclo de vida de um Sistema de Informações

• Sistema de banco de dados é parte do sistema de informações.

• Sistema de informações inclui dados, software do SGBD, hardware, pessoal que utiliza e gerencia os dados, programadores de aplicações, ...

• Ciclo de vida de um sistema de informação: ciclo de vida macro.

• Ciclo de vida do sistema de banco de dados: ciclo de vida micro.

11

Escola de Ciência e TecnologiaCurso: Sistemas de Informação

Disciplina: Projeto de Banco de Dados - Professor Anderson Nascimento

• Fases do ciclo de vida macro:

– Análise de viabilidade

• Realizar estudos preliminares sobre custo-benefício.

• Determinar a complexidade dos dados e processos.

– Levantamento e análise de requisitos

• Interação com usuários potenciais e grupos de usuários para identificar suas necessidades.

– Projeto

• Projeto do sistema de banco de dados.

• Projeto dos sistemas da aplicação que utilizam e processam o banco de dados.

12

26/08/2014

7

Escola de Ciência e TecnologiaCurso: Sistemas de Informação

Disciplina: Projeto de Banco de Dados - Professor Anderson Nascimento

– Implementação

• Sistema de informações é implementado.

• Banco de dados é carregado.

– Validação e teste de aceitação

• Validação dos requisitos dos usuários.

• Validação do desempenho do sistema.

– Implantação, operação e manutenção

• Fase operacional se inicia quando as funções do sistema forem validadas.

• Monitoramento do desempenho e manutenção do sistema é importante na fase operacional.

13

Escola de Ciência e TecnologiaCurso: Sistemas de Informação

Disciplina: Projeto de Banco de Dados - Professor Anderson Nascimento

Ciclo de vida de um Sistema de Aplicação de Banco de Dados.

• Fases do ciclo de vida micro:

– Definição de sistemas

• Definição do escopo do sistema, seus usuários, suas aplicações, restrições de tempo de resposta e necessidades de armazenamento e processamento.

– Projeto de banco de dados

• Definição de um projeto completo lógico e físico do sistema de banco de dados.

14

26/08/2014

8

Escola de Ciência e TecnologiaCurso: Sistemas de Informação

Disciplina: Projeto de Banco de Dados - Professor Anderson Nascimento

– Implementação do banco de dados

• Criar arquivos vazios de bancos de dados.

• Implementar as aplicações do software.

– Carregamento ou conversão do banco de dados

• Povoamento do banco de dados por carga direta ou convertendo arquivos existentes para o formato do sistema de banco de dados (se não for um sistema novo).

– Conversão das aplicações de software

• Conversão de aplicações de sistema anterior (se não for um sistema novo).

– Teste e validação

• O sistema é testado e validado.

15

Escola de Ciência e TecnologiaCurso: Sistemas de Informação

Disciplina: Projeto de Banco de Dados - Professor Anderson Nascimento

– Operação

• O sistema de banco de dados e suas aplicações são postos em operação.

– Monitoramento e manutenção

• Durante a fase operacional, o sistema é constantemente monitorado e mantido.

16

26/08/2014

9

Escola de Ciência e TecnologiaCurso: Sistemas de Informação

Disciplina: Projeto de Banco de Dados - Professor Anderson Nascimento

O processo de projeto de bancos de dados

• Tipos de modelos de dados: conceitual, de representação e físico– Alto nível ou modelo de dados conceitual: fornece uma visão mais

próxima do modo como os usuários visualizam os dados realmente.

– Modelo de dados representativo: fornece conceitos que podem ser compreendidos por usuários finais, mas não se encontram muito afastados do modo como os dados estão organizados no computador.

– Baixo nível ou modelo de dados físico: fornece uma visão mais detalhada do modo como os dados estão realmente armazenados no computador.

17

Escola de Ciência e TecnologiaCurso: Sistemas de Informação

Disciplina: Projeto de Banco de Dados - Professor Anderson Nascimento

Fases do projeto de bancos de dados

• Focalizaremos agora as atividades 2 e 3 do ciclo de vida dos sistemas de aplicação de banco de dados, que são o projeto e a implementação.

• Definição: “Projeto lógico e físico da estrutura de um ou mais bancos de dados para acomodar as necessidades de informação dos usuários em uma organização para um conjunto definido de aplicações”.

18

26/08/2014

10

Escola de Ciência e TecnologiaCurso: Sistemas de Informação

Disciplina: Projeto de Banco de Dados - Professor Anderson Nascimento

• Objetivos:

– Satisfazer os requisitos dos usuários.

– Fornecer uma estruturação de informações de fácil compreensão.

– Suportar os requisitos de processamento e desempenho.

19

Escola de Ciência e TecnologiaCurso: Sistemas de Informação

Disciplina: Projeto de Banco de Dados - Professor Anderson Nascimento

• Fases do processo de projeto de bancos de dados:

1. Levantamento e análise de requisitos.

2. Projeto conceitual do banco de dados.

3. Escolha do SGBD.

4. Mapeamento do modelo de dados (projeto lógico).

5. Projeto do banco de dados físico.

6. Implementação e tuning do banco de dados.

20

26/08/2014

11

Escola de Ciência e TecnologiaCurso: Sistemas de Informação

Disciplina: Projeto de Banco de Dados - Professor Anderson Nascimento

• Fase 1: Levantamento e Análise de Requisitos– Objetivo: conhecer e analisar as expectativas dos

usuários e suas intenções de utilização do banco de dados no maior nível de detalhes possível.

– Fazem parte desta fase: identificação dos usuários do BD e quem terá seu trabalho afetado por ele, análise dos tipos de transação e sua frequência, ...

– É uma fase demorada, porém crucial.

– Um erro na definição de requisito é mais caro para corrigir que um erro de implementação.

21

Escola de Ciência e TecnologiaCurso: Sistemas de Informação

Disciplina: Projeto de Banco de Dados - Professor Anderson Nascimento

• Fase 2: Projeto Conceitual de Banco de Dados

– Esta fase envolve duas atividades paralelas:

• Fase 2a: Projeto do Esquema Conceitual

• Fase 2b: Projeto das Transações e das Aplicações

22

26/08/2014

12

Escola de Ciência e TecnologiaCurso: Sistemas de Informação

Disciplina: Projeto de Banco de Dados - Professor Anderson Nascimento

• Fase 2a: Projeto do Esquema Conceitual

– Examina os requisitos de dados resultantes da Fase 1 e produz um esquema conceitual do banco de dados, independente do SGBD.

– Exemplos de modelos conceituais de alto nível:

• Modelo Entidade Relacionamento

• Diagrama de Classe da UML (Unified ModelingLanguage)

23

Escola de Ciência e TecnologiaCurso: Sistemas de Informação

Disciplina: Projeto de Banco de Dados - Professor Anderson Nascimento

– É independente do SGBD porque:

• O objetivo é compreender a estrutura do BD.

• Alterações no SGBD e nas fases posteriores do projeto não resultam em modificações no esquema conceitual.

• É fundamental o seu bom entendimento.

• Serve como veículo de comunicação entre usuários e analistas.

24

26/08/2014

13

Escola de Ciência e TecnologiaCurso: Sistemas de Informação

Disciplina: Projeto de Banco de Dados - Professor Anderson Nascimento

• Fase 2b: Projeto das Transações e das Aplicações

– Examina as aplicações do banco de dados analisadas na Fase 1 e produz especificação de alto nível para estas aplicações.

– Geralmente, somente algumas transações do banco de dados são conhecidas no momento do projeto.

– As transações mais importantes são conhecidas antes da implementação do sistema e obedecem a ‘regra 80-20’, ou seja, 80% do volume de operações são representadas por 20% das transações mais utilizadas.

– Especificando os parâmetros de entrada e saída e o fluxo funcional, os projetistas podem determinar uma transação de modo conceitual e independente do sistema.

25

Escola de Ciência e TecnologiaCurso: Sistemas de Informação

Disciplina: Projeto de Banco de Dados - Professor Anderson Nascimento

– Há três categorias de transações:

• Transações de recuperação;

• Transações de atualização;

• Transações mistas.

26

26/08/2014

14

Escola de Ciência e TecnologiaCurso: Sistemas de Informação

Disciplina: Projeto de Banco de Dados - Professor Anderson Nascimento

• Fase 3: Escolha de um SGBD

– A escolha de um SGBD depende de fatores técnicos, econômicos e outros correspondentes à política da organização.

– Fatores técnicos:

• Tipo do SGBD (relacional, objeto-relacional, objetos...

• Estruturas de armazenamento e caminhos de acesso que o SGBD suporta, ...

• Custos a serem considerados: aquisição do software, manutenção, aquisição do hardware, pessoal, treinamento, ...

27

Escola de Ciência e TecnologiaCurso: Sistemas de Informação

Disciplina: Projeto de Banco de Dados - Professor Anderson Nascimento

• Fatores econômicos e organizacionais que afetam a escolha de um SGBD em relação a outro:

• Adoção de uma certa filosofia na organização

• Familiaridade do pessoal com o sistema

• Disponibilidade de serviços de venda

– Portabilidade do SGBD também deve ser levado em consideração.

28

26/08/2014

15

Escola de Ciência e TecnologiaCurso: Sistemas de Informação

Disciplina: Projeto de Banco de Dados - Professor Anderson Nascimento

• Fase 4: Mapeamento do Modelo de Dados (Projeto Lógico do Banco de Dados)– Esta fase utilizará os esquemas produzidos na Fase 2a

para fazer o mapeamento para o modelo lógico. Este mapeamento acontece em dois estágios:• Mapeamento independente do sistema: não considera

características específicas da implementação do modelo de dados.

• Moldando os esquemas para um SGBD específico: ajuste dos esquemas obtidos no Passo 1 para se adaptarem às características específicas de implementação de um modelo de dados.

• Como resultado desta fase, são geradas declarações da DDL na linguagem do SGBD escolhido.

29

Escola de Ciência e TecnologiaCurso: Sistemas de Informação

Disciplina: Projeto de Banco de Dados - Professor Anderson Nascimento

• Fase 5: Projeto Físico do Banco de Dados

– Objetivo: alcançar melhor desempenho para as aplicações do BD através da escolha adequada de estruturas de armazenamento e caminhos de acesso para os arquivos do banco de dados.

– Critérios importantes: tempo de resposta, utilização de espaço e taxa de processamento de transações.

– O resultado desta fase é uma determinação inicial das estruturas de armazenamento e índices para os arquivos do banco de dados.

– Depois que o sistema foi implementado, quase sempre é necessário modificar este projeto.

30

26/08/2014

16

Escola de Ciência e TecnologiaCurso: Sistemas de Informação

Disciplina: Projeto de Banco de Dados - Professor Anderson Nascimento

• Fase 6: Implementação e Tuning (Sintonia) do Sistema de Banco de Dados– O sistema é implementado depois que os projetos lógico e físico

estão completos.

– Os esquemas do banco de dados são criados através de declarações da DDL.

– O banco de dados pode então ser carregado com os dados.

– Alguns sistemas possuem utilitários de monitoramento para coletar estatísticas de desempenho.

– Quando os requisitos do sistema se alteram, é necessário acrescentar ou retirar tabelas existentes, reorganizar alguns arquivos, alterar índices,...

– O Tuning continua enquanto os problemas de desempenho forem descobertos e enquanto os requisitos continuarem a se modificar.

31

Escola de Ciência e TecnologiaCurso: Sistemas de Informação

Disciplina: Projeto de Banco de Dados - Professor Anderson Nascimento

Introdução à indexação de dados

32

26/08/2014

17

Escola de Ciência e TecnologiaCurso: Sistemas de Informação

Disciplina: Projeto de Banco de Dados - Professor Anderson Nascimento

Definição e objetivos da indexação

• Índices são estruturas de acesso auxiliares utilizadas para acelerar a recuperação de registros em resposta a determinadas condições de pesquisa.

• Possibilitam o acesso eficiente a registros com base nos campos de indexação que são utilizados para construir o índice.

33

Escola de Ciência e TecnologiaCurso: Sistemas de Informação

Disciplina: Projeto de Banco de Dados - Professor Anderson Nascimento

Índices ordenados

• Nos índices ordenados, os valores no índice são ordenados para permitir uma busca binária.

• Há vários tipos de índices ordenados como os índices primários, clustering e secundários.

34

26/08/2014

18

Escola de Ciência e TecnologiaCurso: Sistemas de Informação

Disciplina: Projeto de Banco de Dados - Professor Anderson Nascimento

Índices Primários ou Principais

• Especificados no campo chave de ordenação de um arquivo de registros ordenado.

• O número total de entradas no índice é o mesmo número de blocos de disco do arquivo de dados ordenado.

• É um índice não-denso (esparso) pois possui uma entrada no índice para cada bloco de disco do arquivo de dados ao invés de para cada registro.

35

Escola de Ciência e TecnologiaCurso: Sistemas de Informação

Disciplina: Projeto de Banco de Dados - Professor Anderson Nascimento 36

26/08/2014

19

Escola de Ciência e TecnologiaCurso: Sistemas de Informação

Disciplina: Projeto de Banco de Dados - Professor Anderson Nascimento

Índices Secundários• Especificado em qualquer campo não-

ordenado de um arquivo.

• Podem existir muitos índices secundários para o mesmo arquivo.

• Duas alternativas:

– Índice secundário num campo chave que possui um valor distinto para cada registro.

– Índice secundário em um campo que não é chave.

37

Escola de Ciência e TecnologiaCurso: Sistemas de Informação

Disciplina: Projeto de Banco de Dados - Professor Anderson Nascimento 38

26/08/2014

20

Escola de Ciência e TecnologiaCurso: Sistemas de Informação

Disciplina: Projeto de Banco de Dados - Professor Anderson Nascimento 39

Escola de Ciência e TecnologiaCurso: Sistemas de Informação

Disciplina: Projeto de Banco de Dados - Professor Anderson Nascimento

Índices Compostos

• Um índice pode ser construído sobre um ou muitos atributos.

• Exemplo: índice criado sobre os campos nome e idade de uma tabela de Empregado.

40

26/08/2014

21

Escola de Ciência e TecnologiaCurso: Sistemas de Informação

Disciplina: Projeto de Banco de Dados - Professor Anderson Nascimento

Otimizando o desempenho de um sistema de banco de dados

com índices

41

Escola de Ciência e TecnologiaCurso: Sistemas de Informação

Disciplina: Projeto de Banco de Dados - Professor Anderson Nascimento

Critérios para a criação de índices

• Os atributos cujos valores são requeridos em consultas de igualdade ou intervalo e aqueles que são chaves ou participam de junções precisam de caminhos de acesso. Seletividade é importante!!!

42

26/08/2014

22

Escola de Ciência e TecnologiaCurso: Sistemas de Informação

Disciplina: Projeto de Banco de Dados - Professor Anderson Nascimento

• O desempenho de grandes consultas depende de quais índices existem para agilizar o processamento das seleções e junções. Por outro lado, durante as operações de inserção, remoção ou atualização, a existência de índices adiciona um overhead. Este overhead precisa ser justificado em termos de ganhos de eficiência na agilidade de consultas e transações.

43

Escola de Ciência e TecnologiaCurso: Sistemas de Informação

Disciplina: Projeto de Banco de Dados - Professor Anderson Nascimento

• As decisões do projeto físico caem em uma das seguintes categorias:

1. Quando indexar um atributo: o atributo precisa ser chave ou deve existir alguma consulta que use o atributo numa condição de seleção ou numa junção.

2. Qual atributo ou atributos indexar: um índice pode ser construído sobre um ou muitos atributos. Se atributos múltiplos de uma relação estão envolvidos juntos em muitas consultas, um índice composto é justificado.

44

26/08/2014

23

Escola de Ciência e TecnologiaCurso: Sistemas de Informação

Disciplina: Projeto de Banco de Dados - Professor Anderson Nascimento

Vantagens e desvantagens na utilização de índices

45

Escola de Ciência e TecnologiaCurso: Sistemas de Informação

Disciplina: Projeto de Banco de Dados - Professor Anderson Nascimento 46

• Vantagens

– Acelera a recuperação.

• Desvantagens

– Cada vez que se adiciona um novo registro, uma nova entrada terá de ser acrescentada ao índice.

– Cada vez que se exclui um novo registro, uma nova entrada terá de ser removida ao índice.

– Cada vez que se atualiza um registro, a entrada terá de ser atualizada no índice.

26/08/2014

24

Escola de Ciência e TecnologiaCurso: Sistemas de Informação

Disciplina: Projeto de Banco de Dados - Professor Anderson Nascimento

Definição de índices em SQL•

create index <nomeÍndice> on<nomeRelação> (<listaAtributos>)

Onde: listaAtributos = lista de atributos das relações que formam a chave de procura para o índice.

create unique index <nomeÍndice> on<nomeRelação> (<listaAtributos>)

drop index <nomeÍndice>47

Escola de Ciência e TecnologiaCurso: Sistemas de Informação

Disciplina: Projeto de Banco de Dados - Professor Anderson Nascimento

Transações em sistemas de bancos de dados

48

26/08/2014

25

Escola de Ciência e TecnologiaCurso: Sistemas de Informação

Disciplina: Projeto de Banco de Dados - Professor Anderson Nascimento

Conceito de transação• O conceito de transação fornece um mecanismo

para se descreverem unidades lógicas de processamento de banco de dados.

• Sistemas de processamento de transações: sistemas com grandes bancos de dados e centenas de usuários concorrentes que estejam executando transações do banco de dados. Ex: sistema bancário, sistema de processamento de cartões de crédito, ...

• Exigem alta disponibilidade e tempo rápido de resposta para centenas de usuários concorrentes.

49

Escola de Ciência e TecnologiaCurso: Sistemas de Informação

Disciplina: Projeto de Banco de Dados - Professor Anderson Nascimento

• Uma transação é uma unidade lógica de processamento do banco de dados que inclui uma ou mais operações de acesso ao banco de dados (inclusão, exclusão, modificação, recuperação).

• As operações do banco de dados que formam uma transação podem ser especificadas no programa da aplicação ou em SQL.

• Os limites da transação são especificados através de declarações explícitas de iniciar a transação (begin transaction) e terminar a transação (endtransaction).

• Um programa pode conter mais de uma transação.

50

26/08/2014

26

Escola de Ciência e TecnologiaCurso: Sistemas de Informação

Disciplina: Projeto de Banco de Dados - Professor Anderson Nascimento

• Uma transação somente de leitura é chamada read-onlytransaction.

• Exemplo de uma transação T1 que transfere N reservas de um vôo cujo número de assentos reservados está armazenado no item do banco de dados denominado X para um outro vôo cujo número de assentos reservados está armazenado no item do banco de dados denominado Y.

read_item (X);

X:=X-N;

write_item(X);

read_item(Y);

Y:=Y+N;

write_item(Y);

51

Escola de Ciência e TecnologiaCurso: Sistemas de Informação

Disciplina: Projeto de Banco de Dados - Professor Anderson Nascimento

• Exemplo de uma transação T2 que reserva M assentos no primeiro vôo X referenciado na transação T1.

read_item(X);

X:=X+M;

write_item(X);

52

26/08/2014

27

Escola de Ciência e TecnologiaCurso: Sistemas de Informação

Disciplina: Projeto de Banco de Dados - Professor Anderson Nascimento

• Muitos problemas podem ocorrer quando transações concorrentes são executadas sem controle:

– O problema da perda de atualização• Ocorre quando duas transações que acessam os mesmo itens

do banco de dados têm suas operações entrelaçadas, de modo que torne incorreto o valor de algum item do banco de dados.

– O problema da atualização temporária (ou leitura suja)• Ocorre quando uma transação atualiza um item do banco de

dados e, por algum motivo, a transação falha. O item atualizado é acessado por uma outra transação, antes de ser modificada de volta ao seu valor original.

53

Escola de Ciência e TecnologiaCurso: Sistemas de Informação

Disciplina: Projeto de Banco de Dados - Professor Anderson Nascimento

– O problema de agregação (soma, resumo) incorreta

• Se uma transação estiver calculando uma função de agregação em um número de registros, enquanto outras transações estiverem atualizando alguns desses registros, a função agregada pode calcular alguns valores antes que eles sejam atualizados e outros depois que tenham sido atualizados.

54

26/08/2014

28

Escola de Ciência e TecnologiaCurso: Sistemas de Informação

Disciplina: Projeto de Banco de Dados - Professor Anderson Nascimento

• Sempre que uma transação é submetida a um SGBD para execução, o sistema é responsável por certificar-se de que:

– Todas as operações na transação se completam com sucesso e seu efeito registrado permanentemente no banco de dados

– A transação não tem absolutamente nenhum efeito no banco de dados ou em quaisquer outras transações.

55

Escola de Ciência e TecnologiaCurso: Sistemas de Informação

Disciplina: Projeto de Banco de Dados - Professor Anderson Nascimento

• Tipos de falhas. Falhas são geralmente classificadas como falhas de transação, do sistema e de mídia. Existem diversas razões possíveis para que uma transação falhe no meio da execução:

– Uma falha no computador: um erro de hardware, software ou de rede ocorre no sistema do computador durante a execução da transação.

– Um erro de transação ou de sistema: alguma operação na transação pode fazer com que ela falhe, tal como divisão por zero.

56

26/08/2014

29

Escola de Ciência e TecnologiaCurso: Sistemas de Informação

Disciplina: Projeto de Banco de Dados - Professor Anderson Nascimento

– Erros locais ou condições de exceção detectadas pela transação: durante a execução da transação, podem ocorrer certas condições que necessitem do cancelamento da transação.

– Imposição do controle de concorrência: o método de controle de concorrência pode decidir abortar a transação.

– Falha de disco: alguns blocos de disco podem perder seus dados devido a uma disfunção de leitura ou gravação.

– Problemas físicos e catástrofes: falta de energia, incêndio, ...

57

Escola de Ciência e TecnologiaCurso: Sistemas de Informação

Disciplina: Projeto de Banco de Dados - Professor Anderson Nascimento

Estado das transações

– Uma transação é uma unidade atômica de trabalho que é completada integralmente ou simplesmente não é realizada.

– O sistema precisa acompanhar o momento em que a transação se inicia, termina e é confirmada ou abortada.

– O gerenciador de recuperação acompanha as seguintes operações:• BEGIN_TRANSACTION (iniciar transação): marca o início da

execução da transação.

• READ ou WRITE (ler ou gravar): operações de leitura ou gravação de uma transação

• END_TRANSACTION (finalizar transação): marca o final da execução da transação.

58

26/08/2014

30

Escola de Ciência e TecnologiaCurso: Sistemas de Informação

Disciplina: Projeto de Banco de Dados - Professor Anderson Nascimento

– COMMIT_TRANSACTION (confirmar transação): sinaliza o final bem-sucedido da transação. As alterações que a transação possa ter aplicado ao banco de dados podem ser confirmadas e não serão desfeitas.

– ROLLBACK (ou ABORT) (retornar ou abortar): sinaliza que a transação terminou sem sucesso. As alterações que a transação possa ter aplicado ao banco de dados devem ser desfeitas.

59

Escola de Ciência e TecnologiaCurso: Sistemas de Informação

Disciplina: Projeto de Banco de Dados - Professor Anderson Nascimento

• Propriedades das transações

• As transações devem ter diversas propriedades que são chamadas propriedades ACID e devem ser impostas pelos métodos de controle de concorrência e recuperação do SGBD. As propriedades ACID são as seguintes:

• Atomicidade: uma transação é uma unidade atômica de processamento; é realizada integralmente ou não é realizada de modo algum.

60

26/08/2014

31

Escola de Ciência e TecnologiaCurso: Sistemas de Informação

Disciplina: Projeto de Banco de Dados - Professor Anderson Nascimento

• Preservação de consistência: uma transação é preservadora de consistência se a sua plena execução levar o banco de dados de um estado consistente para outro estado também consistente.

• Isolamento: uma transação deve parecer como se estivesse sendo executada isoladamente de outras transações. Ou seja, a execução de uma transação não deve sofrer interferência de quaisquer outras transações que estejam sendo executadas concorrentemente.

• Durabilidade ou persistência: as alterações aplicadas ao banco de dados por meio de uma transação confirmada devem persistir no banco de dados. Essas alterações não devem ser perdidas por falha alguma.

61

Escola de Ciência e TecnologiaCurso: Sistemas de Informação

Disciplina: Projeto de Banco de Dados - Professor Anderson Nascimento

Definição de transações em SQL

- Uma declaração SQL é sempre considerada atômica, ou seja, completa a execução sem erro ou falha e deixa o banco de dados inalterado;

62

26/08/2014

32

Escola de Ciência e TecnologiaCurso: Sistemas de Informação

Disciplina: Projeto de Banco de Dados - Professor Anderson Nascimento

Ex:

begin transaction tran1

update empregado

set coddepartamento = 10

where codempregado = 1305

commit transaction tran1

begin transaction tran2

update empregado

set coddepartamento = 20

where codempregado = 1305

rollback transaction tran2

63