© marcelo bezerra de alcântarabanco de dados ii - revisão - 1 disciplina banco de dados ii...

83
© Marcelo Bezerra de Alcântara Banco de Dados II - Revisão - 1 Disciplina Disciplina Banco de Dados II Banco de Dados II Revisão da Matéria VP3 Revisão da Matéria VP3 Msc, Marcelo Bezerra de Alcântara [email protected]

Upload: internet

Post on 17-Apr-2015

107 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: © Marcelo Bezerra de AlcântaraBanco de Dados II - Revisão - 1 Disciplina Banco de Dados II Revisão da Matéria VP3 Msc, Marcelo Bezerra de Alcântara malcantara@fa7.edu.br

© Marcelo Bezerra de Alcântara Banco de Dados II - Revisão - 1

Disciplina Disciplina Banco de Dados IIBanco de Dados II

Revisão da Matéria VP3Revisão da Matéria VP3

Msc, Marcelo Bezerra de Alcântara

[email protected]

Page 2: © Marcelo Bezerra de AlcântaraBanco de Dados II - Revisão - 1 Disciplina Banco de Dados II Revisão da Matéria VP3 Msc, Marcelo Bezerra de Alcântara malcantara@fa7.edu.br

© Marcelo Bezerra de Alcântara Banco de Dados II - Revisão - 2

ObjetivosObjetivos

1. Revisar a matéria para a VP3;

Page 3: © Marcelo Bezerra de AlcântaraBanco de Dados II - Revisão - 1 Disciplina Banco de Dados II Revisão da Matéria VP3 Msc, Marcelo Bezerra de Alcântara malcantara@fa7.edu.br

© Marcelo Bezerra de Alcântara Banco de Dados II - Revisão - 3

SumárioSumário

1. Questões sobre transação

2. Questões sobre recuperação de falhas

3. Controle de concorrência

4. Segurança

5. Bancos de Dados Distribuído

6. Banco de Dados Não Convencionais

Page 4: © Marcelo Bezerra de AlcântaraBanco de Dados II - Revisão - 1 Disciplina Banco de Dados II Revisão da Matéria VP3 Msc, Marcelo Bezerra de Alcântara malcantara@fa7.edu.br

© Marcelo Bezerra de Alcântara Banco de Dados II - Revisão - 4

Questão 1Questão 1

• Defina o que é transação e quais são as suas propriedades ?

Page 5: © Marcelo Bezerra de AlcântaraBanco de Dados II - Revisão - 1 Disciplina Banco de Dados II Revisão da Matéria VP3 Msc, Marcelo Bezerra de Alcântara malcantara@fa7.edu.br

© Marcelo Bezerra de Alcântara Banco de Dados II - Revisão - 5

Resposta 1Resposta 1• Unidade lógica de processamento em um SGBD,

composta de uma ou mais operações, onde seus limites podem ser determinados em SQL.

• De forma abstrata e simplificada, uma transação pode ser encarada como um conjunto de operações de leitura e escrita de dados

• A transação garante as 4 propriedades: Atomicidade, Consistência, Isolamento e Durabilidade

read(x)x = x – iread(y)y = y * xwrite(x)write(y)

Tx

lê o dado X do BD e oarmazena na variável X

grava no dado Y do BD ovalor da variável Y

Page 6: © Marcelo Bezerra de AlcântaraBanco de Dados II - Revisão - 1 Disciplina Banco de Dados II Revisão da Matéria VP3 Msc, Marcelo Bezerra de Alcântara malcantara@fa7.edu.br

© Marcelo Bezerra de Alcântara Banco de Dados II - Revisão - 6

Questão 2Questão 2

• Defina as propriedades da transação?

Page 7: © Marcelo Bezerra de AlcântaraBanco de Dados II - Revisão - 1 Disciplina Banco de Dados II Revisão da Matéria VP3 Msc, Marcelo Bezerra de Alcântara malcantara@fa7.edu.br

© Marcelo Bezerra de Alcântara Banco de Dados II - Revisão - 7

Resposta 2Resposta 2• Atomicidade

– Princípio do “Tudo ou Nada”, ou todas as operações da transação são efetivadas com sucesso no BD ou nenhuma delas se efetiva

• Consistência– Uma transação sempre conduz o BD de um estado consistente

para outro estado também consistente

• Isolamento– No contexto de um conjunto de transações concorrentes, a

execução de uma transação Tx deve funcionar como se Tx executasse de forma isolada, Tx não deve sofrer interferências de outras transações executando concorrentemente

• Durabilidade– Deve-se garantir que as modificações realizadas por uma

transação que concluiu com sucesso persistam no BD,nenhuma falha posterior ocorrida no BD deve perder essas modificações

Page 8: © Marcelo Bezerra de AlcântaraBanco de Dados II - Revisão - 1 Disciplina Banco de Dados II Revisão da Matéria VP3 Msc, Marcelo Bezerra de Alcântara malcantara@fa7.edu.br

© Marcelo Bezerra de Alcântara Banco de Dados II - Revisão - 8

Questão 3Questão 3

• Explique para que servem as operações COMMIT e ROLLBACK

Page 9: © Marcelo Bezerra de AlcântaraBanco de Dados II - Revisão - 1 Disciplina Banco de Dados II Revisão da Matéria VP3 Msc, Marcelo Bezerra de Alcântara malcantara@fa7.edu.br

© Marcelo Bezerra de Alcântara Banco de Dados II - Revisão - 9

Resposta 3Resposta 3

• A operação COMMIT deve ser utilizada para solicitar a efetivação da transação, ou seja, garantir que os efeitos da transação sejam disponibilizadas para as outras transações e que seus efeitos sejam duráveis;

• A operação ROLLBACK deve ser utilizada para solicitar o aborto da transação, ou seja, desfazer todos os efeitos da transação.

Page 10: © Marcelo Bezerra de AlcântaraBanco de Dados II - Revisão - 1 Disciplina Banco de Dados II Revisão da Matéria VP3 Msc, Marcelo Bezerra de Alcântara malcantara@fa7.edu.br

© Marcelo Bezerra de Alcântara Banco de Dados II - Revisão - 10

Questão 4Questão 4

• Explique para que serve o mecanismo de recuperação de falhas de um SGBD, e que propriedades ele garante?

Page 11: © Marcelo Bezerra de AlcântaraBanco de Dados II - Revisão - 1 Disciplina Banco de Dados II Revisão da Matéria VP3 Msc, Marcelo Bezerra de Alcântara malcantara@fa7.edu.br

© Marcelo Bezerra de Alcântara Banco de Dados II - Revisão - 11

Resposta 4Resposta 4

• Técnicas de recuperação são técnicas que garantem a consistência, atomicidade e durabilidade de transações, mesmo com a ocorrência de falhas.

• Possuem duas partes:1. Ações realizadas durante o funcionamento

normal do SGBD para coletar informações suficientes que permitam recuperar falhas

2. Ações realizadas após a falha para recuperar a base de dados a um estado consistente, garantindo o isolamento e durabilidade das transações.

Page 12: © Marcelo Bezerra de AlcântaraBanco de Dados II - Revisão - 1 Disciplina Banco de Dados II Revisão da Matéria VP3 Msc, Marcelo Bezerra de Alcântara malcantara@fa7.edu.br

© Marcelo Bezerra de Alcântara Banco de Dados II - Revisão - 12

Questão 5Questão 5

• Considere as transações abaixa e responda que operações devem ser tomadas pelo sistema de recuperação de falhas, tendo como base a técnica de modificação postergada. Considere o log gerado!

• Duas transaçõesT0: read (A) T1 : read (C) T2 : read (D)

A: - A * 10 C:-C- 100 D : D + 1

write (A) write (C) write (D)

read (B)

B:- B + 150

write (B)

Log de execução

<T0, Start>

<T1, Start>

<T0, A, 50, 500>

<T1, C, 100, 0>

<T1 COMMIT>

<T0, B, 50, 200>

Page 13: © Marcelo Bezerra de AlcântaraBanco de Dados II - Revisão - 1 Disciplina Banco de Dados II Revisão da Matéria VP3 Msc, Marcelo Bezerra de Alcântara malcantara@fa7.edu.br

© Marcelo Bezerra de Alcântara Banco de Dados II - Revisão - 13

Resposta 5Resposta 5

Realizar a operação de REDO de T1

Page 14: © Marcelo Bezerra de AlcântaraBanco de Dados II - Revisão - 1 Disciplina Banco de Dados II Revisão da Matéria VP3 Msc, Marcelo Bezerra de Alcântara malcantara@fa7.edu.br

© Marcelo Bezerra de Alcântara Banco de Dados II - Revisão - 14

Questão 6Questão 6

• Considere as transações abaixa e responda que operações devem ser tomadas pelo sistema de recuperação de falhas, tendo como base a técnica de modificação imediata. Considere o log gerado!

• Duas transaçõesT0: read (A) T1 : read (C)

A: - A * 50 C:-C- 100

write (A) write (C)

read (B)

B:- B + 150

write (B)

Log de execução

<T0, Start>

<T1, Start>

<T0, A, 50, 500>

<T1, C, 100, 0>

<T1 COMMIT>

<T0, B, 50, 200>

Page 15: © Marcelo Bezerra de AlcântaraBanco de Dados II - Revisão - 1 Disciplina Banco de Dados II Revisão da Matéria VP3 Msc, Marcelo Bezerra de Alcântara malcantara@fa7.edu.br

© Marcelo Bezerra de Alcântara Banco de Dados II - Revisão - 15

Resposta 6Resposta 6

Realizar a operação de REDO de T1 e UNDO de T0

Page 16: © Marcelo Bezerra de AlcântaraBanco de Dados II - Revisão - 1 Disciplina Banco de Dados II Revisão da Matéria VP3 Msc, Marcelo Bezerra de Alcântara malcantara@fa7.edu.br

© Marcelo Bezerra de Alcântara Banco de Dados II - Revisão - 16

Questão 7Questão 7

• Defina o que é seriabilidade baseada na equivalência de conflito e der exemplos?

Page 17: © Marcelo Bezerra de AlcântaraBanco de Dados II - Revisão - 1 Disciplina Banco de Dados II Revisão da Matéria VP3 Msc, Marcelo Bezerra de Alcântara malcantara@fa7.edu.br

© Marcelo Bezerra de Alcântara Banco de Dados II - Revisão - 17

Resposta 7Resposta 7

• Equivalência de Conflito– “dado um escalonamento não-serial E’ para um

conjunto de Transações T, E’ é serializável em conflito se E’ for equivalente em conflito a algum escalonamento serial E para T, ou seja, a ordem de quaisquer 2 operações em conflito é a mesma em E’ e E.”

Page 18: © Marcelo Bezerra de AlcântaraBanco de Dados II - Revisão - 1 Disciplina Banco de Dados II Revisão da Matéria VP3 Msc, Marcelo Bezerra de Alcântara malcantara@fa7.edu.br

© Marcelo Bezerra de Alcântara Banco de Dados II - Revisão - 18

Resposta 7Resposta 7

write(X)

X = X + 10

read(X)

write(Y)

Y = Y + 20

read(Y)

write(X)

X = X – 20

read(X)

T2T1

write(Y)

Y = Y + 20

read(Y)

write(X)

X = X + 10

read(X)

write(X)

X = X – 20

read(X)

T2T1

escalonamento serial E escalonamento não-serial E1

write(Y)

Y = Y + 20

write(X)

read(Y)

write(X)

X = X + 10

read(X)

X = X – 20

read(X)

T2T1

escalonamento não-serial E2

• E1 equivale em conflito a E• E2 não equivale em conflito a nenhum escalonamento serial para T1 e T2• E1 é serializável e E2 não é serializável

Page 19: © Marcelo Bezerra de AlcântaraBanco de Dados II - Revisão - 1 Disciplina Banco de Dados II Revisão da Matéria VP3 Msc, Marcelo Bezerra de Alcântara malcantara@fa7.edu.br

© Marcelo Bezerra de Alcântara Banco de Dados II - Revisão - 19

Questão 8Questão 8

• Defina o que é escalonamento recuperável?

Page 20: © Marcelo Bezerra de AlcântaraBanco de Dados II - Revisão - 1 Disciplina Banco de Dados II Revisão da Matéria VP3 Msc, Marcelo Bezerra de Alcântara malcantara@fa7.edu.br

© Marcelo Bezerra de Alcântara Banco de Dados II - Revisão - 20

Resposta 8Resposta 8

• Garante que, se Tx realizou commit, Tx não irá sofrer UNDO– o recovery espera sempre esse tipo de escalonamento!

• Um escalonamento E é recuperável se nenhuma Tx em E for concluída até que todas as transações que gravaram dados lidos por Tx tenham sido concluídas

Page 21: © Marcelo Bezerra de AlcântaraBanco de Dados II - Revisão - 1 Disciplina Banco de Dados II Revisão da Matéria VP3 Msc, Marcelo Bezerra de Alcântara malcantara@fa7.edu.br

© Marcelo Bezerra de Alcântara Banco de Dados II - Revisão - 21

Resposta 8Resposta 8

abort( )

commit( )

write(X)

X = X + 10

read(X)

write(X)

X = X – 20

read(X)

T2T1

escalonamentonão-recuperável

commit( )

commit( )

write(X)

X = X + 10

read(X)

write(X)

X = X – 20

read(X)

T2T1

escalonamentorecuperável

Page 22: © Marcelo Bezerra de AlcântaraBanco de Dados II - Revisão - 1 Disciplina Banco de Dados II Revisão da Matéria VP3 Msc, Marcelo Bezerra de Alcântara malcantara@fa7.edu.br

© Marcelo Bezerra de Alcântara Banco de Dados II - Revisão - 22

Questão 9Questão 9

• Defina o que é escalonamento sem aborto em cascata?

Page 23: © Marcelo Bezerra de AlcântaraBanco de Dados II - Revisão - 1 Disciplina Banco de Dados II Revisão da Matéria VP3 Msc, Marcelo Bezerra de Alcântara malcantara@fa7.edu.br

© Marcelo Bezerra de Alcântara Banco de Dados II - Revisão - 23

Resposta 9Resposta 9

• Um escalonamento recuperável pode gerar abortos de transações em cascata– consome muito tempo de recovery!

• Um escalonamento E é recuperável e evita aborto em cascata se uma Tx em E só puder ler dados que tenham sido atualizados por transações que já concluíram

Page 24: © Marcelo Bezerra de AlcântaraBanco de Dados II - Revisão - 1 Disciplina Banco de Dados II Revisão da Matéria VP3 Msc, Marcelo Bezerra de Alcântara malcantara@fa7.edu.br

© Marcelo Bezerra de Alcântara Banco de Dados II - Revisão - 24

Resposta 9Resposta 9

. . .abort( )

write(X)

X = X + 10

read(X)

write(X)

X = X – 20

read(X)

T2T1

Escalonamentorecuperável

com aborto emcascata

. . .

write(X)

X = X + 10

read(X)

commit( )

write(X)

X = X – 20

read(X)

T2T1

Escalonamentorecuperável

sem aborto emcascata

Page 25: © Marcelo Bezerra de AlcântaraBanco de Dados II - Revisão - 1 Disciplina Banco de Dados II Revisão da Matéria VP3 Msc, Marcelo Bezerra de Alcântara malcantara@fa7.edu.br

© Marcelo Bezerra de Alcântara Banco de Dados II - Revisão - 25

Questão 10Questão 10

• Defina o que é escalonamento estrito?

Page 26: © Marcelo Bezerra de AlcântaraBanco de Dados II - Revisão - 1 Disciplina Banco de Dados II Revisão da Matéria VP3 Msc, Marcelo Bezerra de Alcântara malcantara@fa7.edu.br

© Marcelo Bezerra de Alcântara Banco de Dados II - Revisão - 26

Resposta 10Resposta 10

• Garante que, se Tx deve sofrer UNDO, basta gravar a before image dos dados atualizados por ela

• Um escalonamento E é recuperável, evita aborto em cascata e é estrito se uma Tx em E só puder ler ou atualizar um dado X depois que todas as transações que atualizaram X tenham sido concluídas

Page 27: © Marcelo Bezerra de AlcântaraBanco de Dados II - Revisão - 1 Disciplina Banco de Dados II Revisão da Matéria VP3 Msc, Marcelo Bezerra de Alcântara malcantara@fa7.edu.br

© Marcelo Bezerra de Alcântara Banco de Dados II - Revisão - 27

Resposta 10Resposta 10

abort( )

commit( )

write(X)

X = Y + 10

read(Y)

write(X)

X = X – 20

read(X)

T2T1

Escalonamentorecuperável

sem aborto emcascata e

não-estrito

commit( )

write(X)

X = Y + 10

read(Y)

commit( )

write(X)

X = X – 20

read(X)

T2T1

Escalonamentorecuperável

sem aborto emcascata e

estrito

Page 28: © Marcelo Bezerra de AlcântaraBanco de Dados II - Revisão - 1 Disciplina Banco de Dados II Revisão da Matéria VP3 Msc, Marcelo Bezerra de Alcântara malcantara@fa7.edu.br

© Marcelo Bezerra de Alcântara Banco de Dados II - Revisão - 28

Questão 11Questão 11

1. Dadas as transações abaixo, associe corretamente a história com o tipo de escalonamento (SR, R, SAC, E, S)

T1 =r(x) w(x) w(y) w(z) c1 T2 = r(u) w(x) r(y) w(y)w(u)c2

HE1 = r1(x) w1(x)w1(y)r2(u) w2(x) r2(y) w2(y) w(u) c2 w1(z) c1 ( )

HE2 = r1(x) w1(x) w1(y) w1(z)c1 r2(u) w2(x) r2(y) w2(y) w(u) c2 ( )

HE3 =r1(x) w1(x) w1(y) r2(u) w2(x) w1(z) c1 r2(y) w2(y) w(u) c2 ( )

HE4 =r1(x) w1(x)w1(y) r2(u) w1(z) c1 w2(x) r2(y) w2(y) w(u) c2 ( )

HE5 =r1(x) w1(x) w1(y) r2(u) w2(x) r2(y) w2(y) w1(z) c1 w(u) c2 ( )

Page 29: © Marcelo Bezerra de AlcântaraBanco de Dados II - Revisão - 1 Disciplina Banco de Dados II Revisão da Matéria VP3 Msc, Marcelo Bezerra de Alcântara malcantara@fa7.edu.br

© Marcelo Bezerra de Alcântara Banco de Dados II - Revisão - 29

Resposta 11Resposta 11

1. Dadas as transações abaixo, associe corretamente a história com o tipo de escalonamento (SR, R, SAC, E, S)

T1 =r(x) w(x) w(y) w(z) c1 T2 = r(u) w(x) r(y) w(y) w(u) c2

HE1 = r1(x) w1(x)w1(y) r2(u) w2(x) r2(y) w2(y) w(u) c2 w1(z) c1 (SR )

HE2 = r1(x) w1(x) w1(y) w1(z)c1 r2(u) w2(x) r2(y) w2(y) w(u) c2 (S )

HE3 =r1(x) w1(x) w1(y) r2(u) w2(x) w1(z) c1 r2(y) w2(y) w(u) c2 (SAC)

HE4 =r1(x) w1(x) w1(y) r2(u) w1(z) c1 w2(x) r2(y) w2(y) w(u) c2 (E )

HE5 =r1(x) w1(x) w1(y) r2(u) w2(x) r2(y) w2(y) w1(z) c1 w(u) c2 (R)

Page 30: © Marcelo Bezerra de AlcântaraBanco de Dados II - Revisão - 1 Disciplina Banco de Dados II Revisão da Matéria VP3 Msc, Marcelo Bezerra de Alcântara malcantara@fa7.edu.br

© Marcelo Bezerra de Alcântara Banco de Dados II - Revisão - 30

Questão 12Questão 12

• Defina o que é seriabilidade baseada na equivalência de visão e der exemplos?

Page 31: © Marcelo Bezerra de AlcântaraBanco de Dados II - Revisão - 1 Disciplina Banco de Dados II Revisão da Matéria VP3 Msc, Marcelo Bezerra de Alcântara malcantara@fa7.edu.br

© Marcelo Bezerra de Alcântara Banco de Dados II - Revisão - 31

Resposta 12Resposta 12

• “dado um escalonamento não-serial E’ para um conjunto de Transações T, E’ é serializável em visão se E’ for equivalente em visão a algum escalonamento serial E para T, ou seja:– para toda operação read(X) de uma Tx em E’, se X é

lido após um write(X) de uma Ty em E’ (ou originalmente lido do BD), então essa mesma seqüência deve ocorrer em E;

– se uma operação write(X) de uma Tk for a última operação a atualizar X em E’, então Tk também deve ser a última transação a atualizar X em E.”

Page 32: © Marcelo Bezerra de AlcântaraBanco de Dados II - Revisão - 1 Disciplina Banco de Dados II Revisão da Matéria VP3 Msc, Marcelo Bezerra de Alcântara malcantara@fa7.edu.br

© Marcelo Bezerra de Alcântara Banco de Dados II - Revisão - 32

Resposta 12Resposta 12

• Idéia básica– enquanto cada read(X) de uma Tx ler o resultado de

uma mesmo write(X) em E’ e E, em ambos os escalonamentos, Tx tem a mesma visão do resultado

– se o último write(X) é feito pela mesma transação em E’ e E, então o estado final do BD será o mesmo em ambos os escalonamentos

• ExemploHserial = r1(X) w1(X) c1 w2(X) c2 w3(X) c3

Hexemplo = r1(X) w2(X) w1(X) w3(X) c1 c2 c3

– Hexemplo não é serializável em conflito, mas é serializável em visão

Page 33: © Marcelo Bezerra de AlcântaraBanco de Dados II - Revisão - 1 Disciplina Banco de Dados II Revisão da Matéria VP3 Msc, Marcelo Bezerra de Alcântara malcantara@fa7.edu.br

© Marcelo Bezerra de Alcântara Banco de Dados II - Revisão - 33

Exercício 13Exercício 13

1. Explique o princípio da técnica de bloqueio de duas fases e mostre exemplo?

Page 34: © Marcelo Bezerra de AlcântaraBanco de Dados II - Revisão - 1 Disciplina Banco de Dados II Revisão da Matéria VP3 Msc, Marcelo Bezerra de Alcântara malcantara@fa7.edu.br

© Marcelo Bezerra de Alcântara Banco de Dados II - Revisão - 34

Resposta 13Resposta 13

• Premissa– “para toda transação Tx, todas as operações

de bloqueio de dados feitas por Tx precedem a primeira operação de desbloqueio feita por Tx”

• Protocolo de duas fases1. Fase de expansão ou crescimento

• Tx pode obter bloqueios, mas não pode liberar nenhum bloqueio

2. Fase de retrocesso ou encolhimento• Tx pode liberar bloqueios, mas não pode obter

nenhum bloqueio

Page 35: © Marcelo Bezerra de AlcântaraBanco de Dados II - Revisão - 1 Disciplina Banco de Dados II Revisão da Matéria VP3 Msc, Marcelo Bezerra de Alcântara malcantara@fa7.edu.br

© Marcelo Bezerra de Alcântara Banco de Dados II - Revisão - 35

Resposta 13Resposta 13

númerobloqueios

Gráfico de bloqueios de Tx

tempostart commit

crescimento encolhimento

ponto em que os bloqueios para todos os dados desejados por Tx

foram obtidos (Pmax(Tx))

execução de operações de Tx

Page 36: © Marcelo Bezerra de AlcântaraBanco de Dados II - Revisão - 1 Disciplina Banco de Dados II Revisão da Matéria VP3 Msc, Marcelo Bezerra de Alcântara malcantara@fa7.edu.br

© Marcelo Bezerra de Alcântara Banco de Dados II - Revisão - 36

Questão 14Questão 14

• Explique o que é Deadlock?

Page 37: © Marcelo Bezerra de AlcântaraBanco de Dados II - Revisão - 1 Disciplina Banco de Dados II Revisão da Matéria VP3 Msc, Marcelo Bezerra de Alcântara malcantara@fa7.edu.br

© Marcelo Bezerra de Alcântara Banco de Dados II - Revisão - 37

Resposta 14Resposta 14

• Ocorrência de deadlock– Ty está na Fila-WAIT(D1) de um dado D1

bloqueado por Tx– Tx está na Fila-WAIT(D2) de um dado D2

bloqueado por Ty

• Pode ser descoberto através de um grafo de espera de transações

– se o grafo é cíclico existe deadlock!

Tx Ty

Page 38: © Marcelo Bezerra de AlcântaraBanco de Dados II - Revisão - 1 Disciplina Banco de Dados II Revisão da Matéria VP3 Msc, Marcelo Bezerra de Alcântara malcantara@fa7.edu.br

© Marcelo Bezerra de Alcântara Banco de Dados II - Revisão - 38

Questão 15Questão 15

• Para que server o operador grant do SQL

Page 39: © Marcelo Bezerra de AlcântaraBanco de Dados II - Revisão - 1 Disciplina Banco de Dados II Revisão da Matéria VP3 Msc, Marcelo Bezerra de Alcântara malcantara@fa7.edu.br

© Marcelo Bezerra de Alcântara Banco de Dados II - Revisão - 39

Resposta 15Resposta 15

• O Comando grant é usado para conferir autorização. A forma básica deste comando é:

grant <lista de privilégios> on <nome da relação ou visão> to <lista de usuários>

Page 40: © Marcelo Bezerra de AlcântaraBanco de Dados II - Revisão - 1 Disciplina Banco de Dados II Revisão da Matéria VP3 Msc, Marcelo Bezerra de Alcântara malcantara@fa7.edu.br

© Marcelo Bezerra de Alcântara Banco de Dados II - Revisão - 40

Resposta 15Resposta 15

grant select on agencia to U1, U2, U3

grant update on deposito to U1

grant references (nome-agencia)

on agencia to U1

Page 41: © Marcelo Bezerra de AlcântaraBanco de Dados II - Revisão - 1 Disciplina Banco de Dados II Revisão da Matéria VP3 Msc, Marcelo Bezerra de Alcântara malcantara@fa7.edu.br

© Marcelo Bezerra de Alcântara Banco de Dados II - Revisão - 41

Questão 16Questão 16

• Para que server a opção with grant option?

Page 42: © Marcelo Bezerra de AlcântaraBanco de Dados II - Revisão - 1 Disciplina Banco de Dados II Revisão da Matéria VP3 Msc, Marcelo Bezerra de Alcântara malcantara@fa7.edu.br

© Marcelo Bezerra de Alcântara Banco de Dados II - Revisão - 42

Resposta 16Resposta 16

• A opção with grant option, permite ao usuário que recebeu um privilégio repassar para quem quiser.

Page 43: © Marcelo Bezerra de AlcântaraBanco de Dados II - Revisão - 1 Disciplina Banco de Dados II Revisão da Matéria VP3 Msc, Marcelo Bezerra de Alcântara malcantara@fa7.edu.br

© Marcelo Bezerra de Alcântara Banco de Dados II - Revisão - 43

Questão 17Questão 17

• Para que server a operação revoke?

Page 44: © Marcelo Bezerra de AlcântaraBanco de Dados II - Revisão - 1 Disciplina Banco de Dados II Revisão da Matéria VP3 Msc, Marcelo Bezerra de Alcântara malcantara@fa7.edu.br

© Marcelo Bezerra de Alcântara Banco de Dados II - Revisão - 44

Resposta 17Resposta 17

• Para revogar a autorização, o comando revoke é usado. Ele toma a forma quase idêntica àquela do comando grant:

revoke <lista de privilégios> on <nome da relação ou visão> from <lista de usuários>

Page 45: © Marcelo Bezerra de AlcântaraBanco de Dados II - Revisão - 1 Disciplina Banco de Dados II Revisão da Matéria VP3 Msc, Marcelo Bezerra de Alcântara malcantara@fa7.edu.br

© Marcelo Bezerra de Alcântara Banco de Dados II - Revisão - 45

Resposta 17Resposta 17

revoke select on agencia from U1, U2, U3

revoke update on deposito from U1

revoke references (nome-agencia) on agencia from U1

Page 46: © Marcelo Bezerra de AlcântaraBanco de Dados II - Revisão - 1 Disciplina Banco de Dados II Revisão da Matéria VP3 Msc, Marcelo Bezerra de Alcântara malcantara@fa7.edu.br

© Marcelo Bezerra de Alcântara Banco de Dados II - Revisão - 46

Questão 18Questão 18

• Para que servem os pápeis (Role) no contexto de segurança no SGBD e como ela são criadas?

Page 47: © Marcelo Bezerra de AlcântaraBanco de Dados II - Revisão - 1 Disciplina Banco de Dados II Revisão da Matéria VP3 Msc, Marcelo Bezerra de Alcântara malcantara@fa7.edu.br

© Marcelo Bezerra de Alcântara Banco de Dados II - Revisão - 47

Resposta 18Resposta 18

• É um identificador ao qual pode-se atribuir privilégios que não existem a princípio. Então pode-se atribuir a um usuário este papel (conjunto de privilégios) com um único comando GRANT.

• Pode-se inclusive ao criar um papel usar outros papéis já cadastrados.

• Ex. PapelVendedor, PapelVendedorSapatos, PapelVendedoFrutas.

Page 48: © Marcelo Bezerra de AlcântaraBanco de Dados II - Revisão - 1 Disciplina Banco de Dados II Revisão da Matéria VP3 Msc, Marcelo Bezerra de Alcântara malcantara@fa7.edu.br

© Marcelo Bezerra de Alcântara Banco de Dados II - Revisão - 48

Resposta 18Resposta 18

• Sintaxe SQL:1999

CREATE ROLE nome-papel

[WITH ADMIN {CURRENT_USER | CURRENT_ROLE}]

Para remover um papel:

DROP ROLE nome-papel;

Page 49: © Marcelo Bezerra de AlcântaraBanco de Dados II - Revisão - 1 Disciplina Banco de Dados II Revisão da Matéria VP3 Msc, Marcelo Bezerra de Alcântara malcantara@fa7.edu.br

© Marcelo Bezerra de Alcântara Banco de Dados II - Revisão - 49

Questão 19Questão 19

• O que são visões em um SGBD?

Page 50: © Marcelo Bezerra de AlcântaraBanco de Dados II - Revisão - 1 Disciplina Banco de Dados II Revisão da Matéria VP3 Msc, Marcelo Bezerra de Alcântara malcantara@fa7.edu.br

© Marcelo Bezerra de Alcântara Banco de Dados II - Revisão - 50

Resposta 19Resposta 19

• Uma visão, na terminologia SQL, é uma tabela única e derivada de outra tabela, que pode ser uma tabela básica ou uma visão previamente definida. Uma visão não existe de forma física, ela é considerada uma tabela virtual, em contraste com as tabelas básicas, cujas tuplas são realmente armazenadas no banco de dados. Isso limita as operações de atualização possíveis para as visões, embora não imponha nenhuma limitação para consultas.

Page 51: © Marcelo Bezerra de AlcântaraBanco de Dados II - Revisão - 1 Disciplina Banco de Dados II Revisão da Matéria VP3 Msc, Marcelo Bezerra de Alcântara malcantara@fa7.edu.br

© Marcelo Bezerra de Alcântara Banco de Dados II - Revisão - 51

Questão 20Questão 20

• Para que servem operador create view e drop view respectivamente?

Page 52: © Marcelo Bezerra de AlcântaraBanco de Dados II - Revisão - 1 Disciplina Banco de Dados II Revisão da Matéria VP3 Msc, Marcelo Bezerra de Alcântara malcantara@fa7.edu.br

© Marcelo Bezerra de Alcântara Banco de Dados II - Revisão - 52

Resposta 20Resposta 20

• Create view para criar uma visão• Drop view para remover

Page 53: © Marcelo Bezerra de AlcântaraBanco de Dados II - Revisão - 1 Disciplina Banco de Dados II Revisão da Matéria VP3 Msc, Marcelo Bezerra de Alcântara malcantara@fa7.edu.br

© Marcelo Bezerra de Alcântara Banco de Dados II - Revisão - 53

Questão 21Questão 21

• Para que server o Audit Trail?

Page 54: © Marcelo Bezerra de AlcântaraBanco de Dados II - Revisão - 1 Disciplina Banco de Dados II Revisão da Matéria VP3 Msc, Marcelo Bezerra de Alcântara malcantara@fa7.edu.br

© Marcelo Bezerra de Alcântara Banco de Dados II - Revisão - 54

Resposta 21Resposta 21

• Audit trail: componente de todo SGBD que armazena histórico de informações de auditoria

Page 55: © Marcelo Bezerra de AlcântaraBanco de Dados II - Revisão - 1 Disciplina Banco de Dados II Revisão da Matéria VP3 Msc, Marcelo Bezerra de Alcântara malcantara@fa7.edu.br

© Marcelo Bezerra de Alcântara Banco de Dados II - Revisão - 55

Questão 22Questão 22

• Quanto a classificação de um SQBDD, qual a diferença entre um Homogêneo e um Heterogêneo?

Page 56: © Marcelo Bezerra de AlcântaraBanco de Dados II - Revisão - 1 Disciplina Banco de Dados II Revisão da Matéria VP3 Msc, Marcelo Bezerra de Alcântara malcantara@fa7.edu.br

© Marcelo Bezerra de Alcântara Banco de Dados II - Revisão - 56

Resposta 22Resposta 22

• BD Homogêneo– BDs são idênticos à nível de modelo e SGBD

• BD Heterogêneo (BDH)– pode apresentar diferenças a nível de

• SGBD• modelo e esquema de dados• DML

Page 57: © Marcelo Bezerra de AlcântaraBanco de Dados II - Revisão - 1 Disciplina Banco de Dados II Revisão da Matéria VP3 Msc, Marcelo Bezerra de Alcântara malcantara@fa7.edu.br

© Marcelo Bezerra de Alcântara Banco de Dados II - Revisão - 57

Questão 23Questão 23

• Que atividade deve ser adiciona a um projeto de SGBDD?

Page 58: © Marcelo Bezerra de AlcântaraBanco de Dados II - Revisão - 1 Disciplina Banco de Dados II Revisão da Matéria VP3 Msc, Marcelo Bezerra de Alcântara malcantara@fa7.edu.br

© Marcelo Bezerra de Alcântara Banco de Dados II - Revisão - 58

Resposta 23Resposta 23

• Projeto de BDC– definir e estruturar dados persistentes

relevantes para um domínio de aplicação• levantamento de requisitos, modelagem conceitual,

modelagem lógica e modelagem física

• Projeto de BDD (do “zero”)– modelagem lógica

• definir adicionalmente a alocação do esquema lógico nos BDs dos nodos

– decisão sobre quais dados serão armazenados em quais nodos

– leva em conta fragmentação e replicação de dados

Page 59: © Marcelo Bezerra de AlcântaraBanco de Dados II - Revisão - 1 Disciplina Banco de Dados II Revisão da Matéria VP3 Msc, Marcelo Bezerra de Alcântara malcantara@fa7.edu.br

© Marcelo Bezerra de Alcântara Banco de Dados II - Revisão - 59

Questão 24Questão 24

• O que é fragmentação dos dados?

Page 60: © Marcelo Bezerra de AlcântaraBanco de Dados II - Revisão - 1 Disciplina Banco de Dados II Revisão da Matéria VP3 Msc, Marcelo Bezerra de Alcântara malcantara@fa7.edu.br

© Marcelo Bezerra de Alcântara Banco de Dados II - Revisão - 60

Resposta 24Resposta 24

• Separação dos dados de uma relação para fins de armazenamento nos nodos– definição de um esquema de fragmentação

• Princípios da fragmentação– completude

• dada uma relação R, não pode haver perda de dados de R quando R for fragmentada em vários nodos

– reconstrução• deve ser sempre possível reconstruir R a partir da

sua coleção de fragmentos

• Tipos de fragmentação– horizontal, vertical e mista

Page 61: © Marcelo Bezerra de AlcântaraBanco de Dados II - Revisão - 1 Disciplina Banco de Dados II Revisão da Matéria VP3 Msc, Marcelo Bezerra de Alcântara malcantara@fa7.edu.br

© Marcelo Bezerra de Alcântara Banco de Dados II - Revisão - 61

Questão 25Questão 25

• O que é fragmentação horizontal?

Page 62: © Marcelo Bezerra de AlcântaraBanco de Dados II - Revisão - 1 Disciplina Banco de Dados II Revisão da Matéria VP3 Msc, Marcelo Bezerra de Alcântara malcantara@fa7.edu.br

© Marcelo Bezerra de Alcântara Banco de Dados II - Revisão - 62

Resposta 25Resposta 25

• Separação de R a nível de tupla

• Cada fragmento horizontal fhi de R (fhi (R)) é definido através de uma seleção– fhi (R) = c (R)

• R é obtida através da união de todos os seus fragmentos (princípios da fragmentação)

– R = fh1(R) fh2(R) ... fhn(R)

• FH com fragmentação derivada– tuplas de uma relação secundária S (com

referência à R) são também fragmentadas

Page 63: © Marcelo Bezerra de AlcântaraBanco de Dados II - Revisão - 1 Disciplina Banco de Dados II Revisão da Matéria VP3 Msc, Marcelo Bezerra de Alcântara malcantara@fa7.edu.br

© Marcelo Bezerra de Alcântara Banco de Dados II - Revisão - 63

Resposta 25Resposta 25

rua Q, 52Fpolis5

rua K, 87Fpolis4

rua E, 18Blumenau3

rua H, 55Blumenau2

rua X, 10Fpolis1

endereçocidadenúmero

21300,00vendedor15/05/74rua Q, 52Ana5

. . .

2

1

1

1

filial

14/01/73

13/08/72

12/04/71

11/11/70

DN

1000,00

1300,00

1200,00

1500,00

salário

caixa

vendedor

caixa

vendedor

cargo

rua K, 87Carlos4

rua E, 18Paulo3

rua H, 55Maria2

rua X, 10João1

endereçonomecódigo

Filiais Funcionários

cidade = ‘Fpolis’ (Filiais)cidade = ‘Blumenau’ (Filiais)

fh1 fh2 (derivada para Funcionários)

rua E, 18Blumenau3

rua H, 55Blumenau2

endereçocidadenúmero

rua Q, 52Fpolis5

rua K, 87Fpolis4

rua X, 10Fpolis1

endereçocidadenúmero

. . .

1

1

1

filial. . .

rua E, 18Paulo3

rua H, 55Maria2

rua X, 10João1

endereçonomecódigo

Page 64: © Marcelo Bezerra de AlcântaraBanco de Dados II - Revisão - 1 Disciplina Banco de Dados II Revisão da Matéria VP3 Msc, Marcelo Bezerra de Alcântara malcantara@fa7.edu.br

© Marcelo Bezerra de Alcântara Banco de Dados II - Revisão - 64

Questão 26Questão 26

• O que é fragmentação vertical?

Page 65: © Marcelo Bezerra de AlcântaraBanco de Dados II - Revisão - 1 Disciplina Banco de Dados II Revisão da Matéria VP3 Msc, Marcelo Bezerra de Alcântara malcantara@fa7.edu.br

© Marcelo Bezerra de Alcântara

Resposta 26Resposta 26

• Separação de R a nível de atributo

• Cada fragmento vertical fvi de R (fvi (R)) é definido através de uma projeção– fvi (R) = a1, ..., aj (R)

• R é obtida através da junção natural de todos os seus fragmentos– R = fv1(R) fv2(R) ... fvn(R)

– requer a mesma chave candidata em todos os fragmentos

Page 66: © Marcelo Bezerra de AlcântaraBanco de Dados II - Revisão - 1 Disciplina Banco de Dados II Revisão da Matéria VP3 Msc, Marcelo Bezerra de Alcântara malcantara@fa7.edu.br

© Marcelo Bezerra de Alcântara

Resposta 26Resposta 26

21300,00vendedor15/05/74rua Q, 52Ana5

. . .

2

1

1

1

filial

14/01/73

13/08/72

12/04/71

11/11/70

DN

1000,00

1300,00

1200,00

1500,00

salário

caixa

vendedor

caixa

vendedor

cargo

rua K, 87Carlos4

rua E, 18Paulo3

rua H, 55Maria2

rua X, 10João1

endereçonomecódigo

Funcionários

código, cargo, salário, filial (Funcionários)fv2 (dados profissionais)

21300,00vendedor5

21000,00caixa4

. . .

1

1

1

filial

1300,00vendedor3

1200,00caixa2

1500,00vendedor1

saláriocargocódigo

código, nome, endereço, DN (Funcionários)fv1 (dados pessoais)

15/05/74rua Q, 52Ana5

14/01/73rua K, 87Carlos4

. . .

13/08/72

12/04/71

11/11/70

DN

rua E, 18Paulo3

rua H, 55Maria2

rua X, 10João1

endereçonomecódigo

Page 67: © Marcelo Bezerra de AlcântaraBanco de Dados II - Revisão - 1 Disciplina Banco de Dados II Revisão da Matéria VP3 Msc, Marcelo Bezerra de Alcântara malcantara@fa7.edu.br

© Marcelo Bezerra de Alcântara Banco de Dados II - Revisão - 67

Questão 27Questão 27

• Quais as formas de replicação disponíveis?

Page 68: © Marcelo Bezerra de AlcântaraBanco de Dados II - Revisão - 1 Disciplina Banco de Dados II Revisão da Matéria VP3 Msc, Marcelo Bezerra de Alcântara malcantara@fa7.edu.br

© Marcelo Bezerra de Alcântara

Resposta 27Resposta 27

• Total– desempenho bom para consultas

• não há necessidade de acesso remoto– muita redundância de dados e desempenho ruim para

atualizações• manutenção de cópias consistentes (uso de triggers, por

exemplo)• scheduler e recovery mais complexos

– bloqueios em todos os nodos e com interferências diferentes– UNDO e REDO em todos os nodos

• Nula– inverte-se as vantagens e desvantagens

• Parcial– meio termo entre as opções anteriores

Page 69: © Marcelo Bezerra de AlcântaraBanco de Dados II - Revisão - 1 Disciplina Banco de Dados II Revisão da Matéria VP3 Msc, Marcelo Bezerra de Alcântara malcantara@fa7.edu.br

© Marcelo Bezerra de Alcântara

Questão 28Questão 28

• Num banco de dados centralizado, o estimativas de custo do processamento de uma consulta baseiam-se principalmente no número de acessos a disco. Cite dois novos paramentros em um SGBDD!

Page 70: © Marcelo Bezerra de AlcântaraBanco de Dados II - Revisão - 1 Disciplina Banco de Dados II Revisão da Matéria VP3 Msc, Marcelo Bezerra de Alcântara malcantara@fa7.edu.br

© Marcelo Bezerra de Alcântara

Resposta 28Resposta 28

• BDD– consultas podem requisitar dados em

vários nodos, logo há outros fatores a estimar• custo do volume de dados transmitido na rede

– deve ser o menor possível!

• processamento paralelo de partes da consulta em diferentes nodos– DDD mantém a localização e as filtragens H e V que

Page 71: © Marcelo Bezerra de AlcântaraBanco de Dados II - Revisão - 1 Disciplina Banco de Dados II Revisão da Matéria VP3 Msc, Marcelo Bezerra de Alcântara malcantara@fa7.edu.br

© Marcelo Bezerra de Alcântara

Questão 29Questão 29

• Que protocolo é utilizado para garantir a atomicidade e durabilidade em um SGBDD?

Page 72: © Marcelo Bezerra de AlcântaraBanco de Dados II - Revisão - 1 Disciplina Banco de Dados II Revisão da Matéria VP3 Msc, Marcelo Bezerra de Alcântara malcantara@fa7.edu.br

© Marcelo Bezerra de Alcântara

Resposta 29Resposta 29

• técnica 2PC (2-Phase Commit)

Page 73: © Marcelo Bezerra de AlcântaraBanco de Dados II - Revisão - 1 Disciplina Banco de Dados II Revisão da Matéria VP3 Msc, Marcelo Bezerra de Alcântara malcantara@fa7.edu.br

© Marcelo Bezerra de Alcântara

Questão 30Questão 30

• Compare o banco Relacional com os bancos não convencionais.

Page 74: © Marcelo Bezerra de AlcântaraBanco de Dados II - Revisão - 1 Disciplina Banco de Dados II Revisão da Matéria VP3 Msc, Marcelo Bezerra de Alcântara malcantara@fa7.edu.br

© Marcelo Bezerra de Alcântara

Resposta 30Resposta 30

atualização não é “in-place”atualização “in-place”

operações DML envolvem procedimentos complexos

operações DML simples

outras semânticas de relacionamento (composição,

adjacência, ...)

relacionamentos de associação (por chave)

transações longastransações curtas

atributos complexosatributos atômicos

estrutura não-fixaestrutura fixa

Dados Não-ConvencionaisDados Convencionais

Page 75: © Marcelo Bezerra de AlcântaraBanco de Dados II - Revisão - 1 Disciplina Banco de Dados II Revisão da Matéria VP3 Msc, Marcelo Bezerra de Alcântara malcantara@fa7.edu.br

© Marcelo Bezerra de Alcântara

Questão 31Questão 31

• Compare o modelo orientado a objetos com o modelo relacional

Page 76: © Marcelo Bezerra de AlcântaraBanco de Dados II - Revisão - 1 Disciplina Banco de Dados II Revisão da Matéria VP3 Msc, Marcelo Bezerra de Alcântara malcantara@fa7.edu.br

© Marcelo Bezerra de Alcântara

Resposta 31Resposta 31

• Comparação com o modelo relacional– maior nível de abstração

• modelo de objetos tem maior afinidade semântica com um modelo conceitual de dados

– representação mais natural de uma entidade do mundo real

– mais adequado a representação de dados complexos de aplicações não-convencionais

• aplicações CAD/CAM, sistemas de informação geográfica, ...

– modelo mais complexo• maior número de conceitos

Page 77: © Marcelo Bezerra de AlcântaraBanco de Dados II - Revisão - 1 Disciplina Banco de Dados II Revisão da Matéria VP3 Msc, Marcelo Bezerra de Alcântara malcantara@fa7.edu.br

© Marcelo Bezerra de Alcântara

Questão 32Questão 32

• Compare os BDR, BDOO e BDOR?

Page 78: © Marcelo Bezerra de AlcântaraBanco de Dados II - Revisão - 1 Disciplina Banco de Dados II Revisão da Matéria VP3 Msc, Marcelo Bezerra de Alcântara malcantara@fa7.edu.br

© Marcelo Bezerra de Alcântara

Resposta 32Resposta 32

• Comparação com o modelo relacional– maior nível de abstração

• modelo de objetos tem maior afinidade semântica com um modelo conceitual de dados

– representação mais natural de uma entidade do mundo real

– mais adequado a representação de dados complexos de aplicações não-convencionais

• aplicações CAD/CAM, sistemas de informação geográfica, ...

– modelo mais complexo• maior número de conceitos

Page 79: © Marcelo Bezerra de AlcântaraBanco de Dados II - Revisão - 1 Disciplina Banco de Dados II Revisão da Matéria VP3 Msc, Marcelo Bezerra de Alcântara malcantara@fa7.edu.br

© Marcelo Bezerra de Alcântara

Questão 33Questão 33

• Quais são os padrões XML?

Page 80: © Marcelo Bezerra de AlcântaraBanco de Dados II - Revisão - 1 Disciplina Banco de Dados II Revisão da Matéria VP3 Msc, Marcelo Bezerra de Alcântara malcantara@fa7.edu.br

© Marcelo Bezerra de Alcântara

Resposta 33Resposta 33

• DTD (Document Type Definition)– Permite se definir uma gramática para criar

documentos específicos

• Namespaces– Permite utilizar nomes repetidos para tags

utilizando espaços de nomes diferentes

• XML Schema– Estende o conceito de DTDs

Page 81: © Marcelo Bezerra de AlcântaraBanco de Dados II - Revisão - 1 Disciplina Banco de Dados II Revisão da Matéria VP3 Msc, Marcelo Bezerra de Alcântara malcantara@fa7.edu.br

© Marcelo Bezerra de Alcântara

Resposta 33Resposta 33

• XLInks– Links entre documentos– Uma forma generalizada dos conceitos de

âncoras e links de HML

• XPointer– Permite um recurso ser identificado pela sua

localização contextual.

• XPath – É uma linguagem para referenciar partes de um

documento XML

Page 82: © Marcelo Bezerra de AlcântaraBanco de Dados II - Revisão - 1 Disciplina Banco de Dados II Revisão da Matéria VP3 Msc, Marcelo Bezerra de Alcântara malcantara@fa7.edu.br

© Marcelo Bezerra de Alcântara

Resposta 33Resposta 33

• Xquery– Permite a consulta dentro de documentos

• XSLT (eXtensible Style Language Transformation)– Transformação de documentos XML

• CSS– Linguagem de estilo. Foi definida

primeiramente para HTML

Page 83: © Marcelo Bezerra de AlcântaraBanco de Dados II - Revisão - 1 Disciplina Banco de Dados II Revisão da Matéria VP3 Msc, Marcelo Bezerra de Alcântara malcantara@fa7.edu.br

© Marcelo Bezerra de Alcântara

Resposta 33Resposta 33

• DOM( Document Object Model)– Manipula documentos XML como sendo

uma árvore de objetos

• SAX(Simple API for XML)– Utiliza o conceito de eventos para a

manipulação de documentos XML