Você está na página 1de 4

DISCIPLINA: BANCO DE DADOS NOME: LUIZ CARLOS VIEIRA

MATRICULA: 20179116633 POLO: UNIÃO-PI

LISTA DE EXERCÍCIO I – Avaliativa (Entregar até 08/04/2019)

Exercício 1

1. Diferencie Banco de Dados, Sistema de Gerenciamento de Banco de Dados e


Sistema de Banco de Dados?

R.: Banco de Dados (BD) é uma coleção de dados interrelacionados,


representando informações sobre um domínio específico. Já um Sistema
Gerenciador de Banco de Dados (como no Brasil) ou Sistema de
Gerenciamento de Banco de Dados (SGBD) é o conjunto de programas de
computador (softwares) responsáveis pelo gerenciamento de um banco de dados,
o que inclui o armazenamento, o acesso, o controle de concorrência e a
recuperação desses dados. Assim, o principal objetivo de um SGBD é retirar da
aplicação cliente a responsabilidade de gerenciar o acesso, a manipulação e a
organização dos dados. O SGBD disponibiliza uma interface para que os seus
clientes possam incluir, alterar ou consultar dados. Um Sistema de Banco de
Dados (SBD) consiste em uma coleção de dados inter-relacionados (BD) e uma
coleção de programas para prover o acesso aos dados armazenados (SGBD). O
objetivo principal de um sistema de banco de dados é prover um ambiente que
seja adequado e eficiente para uso no armazenamento e na recuperação de
informações.

2. Cite os meios de armazenamento utilizados pelos SBD e explique a função de


cada um deles?

R.: O Sistema de Armazenamento fornece a interface entre os dados


armazenados no disco (como conjuntos de bytes armazenados em trilhas e
setores do disco rígido) e os programas aplicativos e de consulta que necessitam
acessar esses dados. Para isso, o sistema de armazenamento interage
diretamente com o sistema operacional. O Sistema de Armazenamento é dividido
nos seguintes módulos:

• Gerenciador de Transações Responsável pelo controle de concorrência e pela


recuperação do banco de dados após a ocorrência de falhas (falta de energia
durante o funcionamento do SBD, por exemplo).

• Gerenciador de Buffer Responsável por recuperar dados armazenados em um


disco rígido e carregá-los na memória principal, em forma de páginas.

• Gerenciador de Arquivo (File System) Responsável pelo armazenamento


físico dos dados em disco. O gerenciador de arquivos gerencia a alocação do
espaço em disco e as estruturas de dados usadas para representar a informação
armazenada no disco. Logo, esse componente define se será utilizada uma
alocação sequencial, sequencial indexada ou indexada, por exemplo.
Adicionalmente, diversas estruturas de dados são requeridas como parte da
implementação do sistema físico de um banco de dados (BD), incluindo:
• Arquivos de dados, que armazenam o banco de dados propriamente dito.

• Catálogo ou Dicionário de dados, que armazena metadados sobre a estrutura


do banco de dados. Esses metadados incluem: nomes das tabelas; atributos de
cada tabela; definição de índice para uma tabela; além de informações
estatísticas, como por exemplo, a cardinalidade de uma tabela. O dicionário de
dados é usado com bastante frequência. Assim, deve-se dar grande atenção tanto
ao projeto quanto à implementação do dicionário. Nesse sentido, deve-se buscar
um projeto adequado e uma implementação eficiente do catálogo.

• Índices, estruturas que fornecem acesso rápido aos dados armazenados em


disco. Isso é possível guardando-se determinados valores (chaves de busca e
ponteiros). O funcionamento das estruturas de índices assemelha-se à utilização
de um índice de um livro, de um catálogo telefônico ou da agenda de um telefone
celular. No caso da agenda telefônica, por exemplo, quando fornecemos a letra
“e” iremos obter todos os contatos cujo nome inicia-se pela letra “e”, tornando o
acesso a esses dados mais rápido.

• Fragmentos de Código, tais como procedimentos armazenados (stored


procedures) e gatilhos (triggers).

3. O que é paginação em Bancos de Dados?

R.: é a troca (transferência) de blocos de informação entre os níveis de memória.


Essa troca ocorre de acordo com a demanda de processamento, ou seja, de
acordo com a ordem e frequência com que as informações são solicitadas. Por
Demanda de Paginação entende-se a propriedade que indica quando uma
operação de paginação deve ocorrer, ou seja, quando a paginação é necessária.

4. O que é conflito entre transações?

R.: O conflito entre transações ocorre quando mais de uma transação tenta
acessar o mesmo item de dado.

5. Defina as propriedades ACID?

R.: É um conceito utilizado em ciência da computação para caracterizar uma


transação, entre outras coisas."

ACID é a união das iniciais de:

 Atomicidade
A propriedade de atomicidade garante que as transações sejam atômicas
(indivisíveis). A transação será executada totalmente ou não será executada.

 Consistência
A propriedade de consistência garante que o banco de dados passará de uma
forma consistente para outra forma consistente.

 Isolamento
A propriedade de isolamento garante que a transação não será interferida por
nenhuma outra transação concorrente.
 Durabilidade
A propriedade de durabilidade garante que o que foi salvo, não será mais
perdido.

6. Quais são os objetivos do sistema de recuperação de um SGBD?

R.: É responsável pela detecção de falhas e pela restauração do BD para um estado


consistente que existia antes da ocorrência da falha. Possui duas ações básicas:

 UNDO: desfazer uma atualização no BD.

 REDO: refazer uma atualização no BD.

7. Qual o função do buffer de banco de dados?

R.: Um buffer de banco de dados é uma área de armazenamento temporário na


memória usada para armazenar uma cópia de um bloco de banco de dados. Quando o
mecanismo de banco de dados lê um registro do banco de dados, ele armazena o
bloco que contém esse registro em um buffer do banco de dados. São agrupados em
uma área de memória chamada buffer pool. É responsável pela alocação da porção de
memória onde são armazenados os blocos (páginas) de informações que compõem
um banco de dados e que são lidos/gravados nos discos rígidos (armazenamento
secundário).

8. Quais os estados de uma transação?

R.: Estados de uma transação:

 Ativa

◦ Estado inicial de toda transação selecionada para execução;

◦ Enquanto ativa, uma transação executa uma ou mais operações leitura e


escrita.

 Em processo de efetivação

◦ Entra nesse estado após executar sua última operação (solicitação de


COMMIT);

◦ Nesse momento, o SGBD precisa garantir que as suas atualizações sejam


efetivadas com sucesso (não sofra falhas);

▪ Aplicação de técnicas de recovery.

 Efetivada

◦ Entra nesse estado após o SGBD confirmar que todas as modificações da


transação estão garantidas no BD (COMMIT OK).

▪ Exemplos: gravação em Log, descarga de todos os buffers em disco.


 Em processo de aborto

◦ Entra nesse estado se não puder prosseguir a sua execução;

◦ Pode passar para esse estado enquanto ativa (I) ou em processo de


efetivação (II).

▪ Exemplo (I): violação de RI

▪ Exemplo (II): pane no S.O;

• suas ações já realizadas devem ser desfeitas (ROLLBACK).

 Concluída

◦ Estado final de uma transação;

◦ Indica uma transação que deixa o sistema;

▪ As informações da transação mantidas em catálogo podem ser excluídas;

• Operações feitas, dados manipulados, buffers utilizados;

▪ Se a transação não concluiu com sucesso, ela pode ser reiniciada


automaticamente.

9. Verifique a corretude do seguinte Schedule:

R.: S´=r3(y) r1(y) r1(x) r2(x) w1(y) r2(y) w2(x) r3(x) w3(z)

T3

T1=r1(y)r1(x)w1(y)
T2=r2(x)r2(y)w2(x)
T3=r3(y)r3(x)w3(z)

T1 T2

Como podemos observar no schedule acima as operações:

r3(y) conflita com w1(y)


r3(x) conflita com w2(x)
r1(x) conflita com w2(x)

e assim podemos definir que o schedule S é serializável por conflito, pois não
produz um grafo cíclico.
TEOREMA: Um schedule S é serializável por conflito ⇔ o grafo de serialização de S não contém
ciclos.

Um grafo de serialização de um schedule S está definido para um conjunto T de transações. SG(S) é


um grafo direcionado, com a seguinte definição: SG(S) = (V,E), onde V = conjunto T de transações, e
Ti Tj ∈ E se, e somente se:

 Ti e Tj pertencem ao conjunto T de transações

 ∃ p ∈ OP(Ti), q ∈ OP(Tj), tal que p conflita com q <s p