instalação e configuração de banco de dados ii - avançado

Download Instalação e configuração de banco de dados II - Avançado

If you can't read please download the document

Upload: antonio-oliveira

Post on 11-Nov-2015

218 views

Category:

Documents


3 download

DESCRIPTION

Instalação e configuração de banco de dados avancado

TRANSCRIPT

Slide 1

Instalao e Configurao de Banco de Dados - IIProf. Antonio Carlos

Faculdade Sumar - 2013

logotipo.pnglogotipo.png

Apresentao

Ementa

Plano de Aula

Avaliao

Aula introdutria

Ementa

Entender rotinas e mecanismos de otimizao, proteo e recuperao de falhas em um SGBD.

Competncias e Habilidades

Projetos fsico de um Banco de Dados

ndices e Estruturas de Arquivos

lgebra e Clculo

Conceitos de Transaes e Controle de Concorrncia

Mecanismos de Proteo,Recuperao de Falhas e Segurana

Plano de Aula

Avaliao

Duas avaliaes da instituio valendo +-75% da nota

Uma ou Duas atividades valendo +-15% da nota

Frequencia podendo valer at 10% da nota

As Datas das atividades e provas dependem do calendario academico, e o plano de aula ser reajustado.

Histrico

Sistemas Computacionais ComerciaisArquivos Analise de Resultados

Consultas e Relatrios

Independncia

Banco de Dados Hierrquico/Rede

Histrico

Sistemas Computacionais ComerciaisArquivos Analise de Resultados

Consultas e Relatrios

Independncia

Banco de Dados Hierrquico/RedeDefinir - Grupos de TrabalhoPesquisa e Explanao

Projetando

Entender o dominio do problema

Projetando

Entender o dominio do problemaSistema Convencional

Sistema de Apoio a Deciso (BI)

Projetando

Entender o dominio do problemaSistema ConvencionalFaturamento

Vendas

RH

Outros

Sistema de Apoio a Deciso (BI)

Projetando

Entender o dominio do problemaSistema ConvencionalFaturamento

Vendas Normalizao

RH

Outros

Sistema de Apoio a Deciso (BI)

Projetando

Entender o dominio do problemaSistema ConvencionalFaturamento

Vendas Normalizao

RH (No Redundncia)

Outros (Confiabilidade)

Sistema de Apoio a Deciso (BI)

Projetando

Entender o dominio do problemaSistema Convencional

Sistema de Apoio a Deciso (BI)Procurar Comportamentos/Repeties/Sazonalidade

Projetando

Entender o dominio do problemaSistema Convencional

Sistema de Apoio a Deciso (BI)Procurar Comportamentos/Repeties/SazonalidadeComprar melhor SuficienteNecessrioQuando

Projetando

Definir a Atividade Fim/NegocioDescrever

EntidadesModelagem Lgica

Modelar as Relaes

Modelagem Fsica

Dicionrio de Dados

Projetando

Definir a Atividade Fim/NegocioDescrever

EntidadesModelagem Lgica

Modelar as RelaesTransposio de Chave

Entidade Associativa

Cardinalidade

Modelagem Fsica

Dicionrio de Dados

Projetando

Segurana

Grupos de Atividades/Permisses

Usurios associados a Grupos de Permisses

Audits

Fixando

Em GrupoFazer um projeto lgico de um sgbd para um sistema convencionalEntidades 5 a 7

Fazer o projeto fsicoDefinindo os atributos. Relacionamentos

Fazer o Dicionrio de Dados.

Segurana

Podemos facilmente perceber que um banco seguro,confivel tem que garantir basicamente o seu contedo.

Segurana

Podemos facilmente perceber que um banco seguro,confivel tem que garantir basicamente o seu contedo.

ACESSO.

DADOS.

Segurana

AcessoUsurios terem o direito de acessar determinado objeto com determinado propsitoTabelas/Relaes,etc e incluso/criao,etc

O Banco pertence ao Administrador e ele outorga as permisses especficas, inclusive de administrador

O usurio no pode nada alm do que o outorgado pelo administrador.

Segurana

AcessoAs autorizaes so outorgadas ou removidas pelos comandos (DCL):GRANT

REVOKE

Segurana

DadosRestrio de IntegridadeRespeitar o domnioValores

Chaves/primrias e estrangeiras

Uso atravs de constraint/check (DDL)

Transao/ACID Begin Transaction/Rollback/Commit(DML)

Concorrncia (Lock)

SEGURANA

Segurana FsicaRAID

BACKUP

NUVEM

SEGURANA

Defina os papis para administrao do seu banco com os privilgios e depois indique que papis os usurios possuem

Indexao e Estruturas de Arquivos

ndice Primrio

um arquivo ordenado, de tamanho fixo onde existem dois campos no registro armazenado, o primeiro do mesmo tipo da chave primaria da tabela associada e com o mesmo contedo, e o segundo um ponteiro para o endereo fsico do bloco do disco, existe um registro para cada registro armazenado na tabela.

Tambm chamado de ndice denso, porque possui uma entrada no ndice para cada registro armazenado na tabela

Indexao e Estruturas de Arquivos

ndice de agrupamento (Clustering)

um ndice ordenado tal como explicado acima, mas o campo para classificao no a chave primria, portanto pode possuir valores idnticos, este campo chamado de agrupamento, o registro do ndice tambm dois campos como o ndice primrio.

chamado de ndice esparso, pois no h relao direta entre os registros de dados e o ndice.

Indexao e Estruturas de Arquivos

ndice Secundrio

Um ndice chamado secundrio, quando j existir um ndice Primrio e o campo utilizado para a criao do ndice for uma chave candidata, ou um campo no chave com valores duplicados.

Otimizao

Depois do Projeto das tabelas, determine os tipos de consultas a serem executadas, e se possvel sua frequncia.O ndice no banco de dados usado em duas situaes:Garantir a unicidade dos dados, normalmente associado a PK.

Agilizar as consultas.

Otimizao

Estrategias:

A(s) coluna(s) da chave primaria deve ser sempre indexada, porque frequentemente participam como chave de pesquisa, critrio ou operaes de ligao

Tabelas com menos de 100 linhas e com apenas algumas colunas no vantagem o uso do ndice. Geralmente as tabelas "pequenas" cabem integralmente no cache do banco de dados, considerando que o bloco possui de 512 a 2048 bytes.

Otimizao

Estrategias:

ndices devem ser construdos para agilizar as consultas executadas com frequncia. Ex.: se algum precisa localizar todos os pedidos de determinado produto, ento a tabela de item de produto deve possuir um ndice para a coluna que possui o cd. produto

ndices devem ser criados apenas com as colunas usadas como identificadores, isto somatrios, saldos, no devem ser usados, os identificadores tendem a permanecer com o mesmo contedo.

Otimizao

Estrategias:

ndices devem ser criados usando campos do tipo simples, de preferencia numricos, os do tipo ponto flutuante no devem ser utilizados porque at a operao de comparao e custosa, os ndices com campos numricos tendem a ocupar menos espao e simplificam as operaes de comparao.

Otimizao

O uso de ndices deve ser usado com sabedoria, porque quanto mais ndices existirem maior ser o tempo necessrio para a atualizao das informaes e reindexao dos ndices, alm do espao extra utilizado pelos mesmos.

Existem aplicaes de tempo real que so sensveis a tempo de resposta, neste caso a aplicao deve permanecer com a menor quantidade de ndices (PK) e os mesmos devem ser "criados" quando algum outro processo necessitar e "remov-los" em seguida

ndices

Tipos de Estruturas de ndices mais Comuns.ndices em arvores B

De longe o tipo mais utilizado, indicado quando os valores-chave possurem valores aleatrios e com bastante variedade, seu desempenho no bom quando os valores que esto sendo indexados j esto em ordem classificada.

ndices de Hashing

Menos comum e seu desempenho melhor com tabelas com poucas mudanas e normalmente com dados exclusivos.

ndices

rvore Binria

Se os valores 2, 6 e 9 em diante entrarem, geram um novo balanceamento da rvore

ndices

HashFuno de disperso ou espalhamento responsvel pela gerao de ndice a partir de uma chave.caso seja mal escolhida toda a tabela ter um desempenho ruim.

Ideal que para cada entrada (A) um ndice nico seja gerado.sendo o ideal que dado duas entradas (A) e (B) tenham como resposta ndices distintos.

Dadas duas entradas (A) e (B) distintas, gerando o mesmo ndice, isto chamado de coliso.

ndices

HashColisoEm aplicaes de criptografia, a coliso intolervel portanto deve-se recorrer a outra funo de espalhamento

Em Classificao/Ordenamento o problema resolvido com uso de outras estruturas, como lista encadeada, ou rvores balanceadas

ndices

Hash

A tabela de disperso uma estrutura de dados do tipo dicionrio, que no permite armazenar elementos repetidos, recuperar elementos sequencialmente (ordenao), nem recuperar o elemento antecessor e sucessor. Para otimizar a funo de disperso necessrio conhecer a natureza da chave a ser utilizada. No pior caso, a ordem das operaes pode ser O(N), caso em que todos os elementos inseridos colidirem.

ndices

Funes Hash conhecidas:

MD4

MD5

SHA-1 / SHA-256 / SHA-384 / SHA-512

RIPEMD-160

lgebra Relacional

Definio: Conjunto de Operaes sobre relaes

Cada operao toma uma ou mais relaes como operando e produz uma outra relao como resultado

lgebra Relacional

Operadores:

Conjunto: Unio, Interseco, Diferena e Produto Cartesiano

Relacionais: Seleo, Projeo, Reunio e Diviso

lgebra Relacional

Operadores tradicionais sobre conjuntos

Exceo Produto Cartesiano

As relaes devem ter o mesmo grau

Os ensimos atributos das relaes devem ter o mesmo domnio subjacente

lgebra Relacional

Unio

A unio de duas relaes A e B "A U B", uma relao que inclui todas as tuplas de A e todas as tuplas de B

A e B devem ter o mesmo grau

Se existirem tuplas repetidas apenas uma permanece

Seja A o conjunto de tuplas de fornecem situados em Londres

Seja B o conjunto de tuplas que fornecem a pea P1

A U B o conjunto de todos os fornecedores localizados em Londres e que fornecem a pea P1

(A U B) U C = A U (B U C)

lgebra Relacional

Produto Cartesiano

O Produto Cartesiano das relaes A e B, "A X B", uma relao que inclui todas as tuplas possveis que se obtm concatenando uma de A com uma de B

A=(a1, a2,....am) e B(b1,b2,....bm)

R = a1+b1,....a1+bm, a2+b1,....a2+bm...

Seja A o conjunto de todos os nmeros de fornecedores

Seja B o conjunto de todos os nmeros de peas

Ento A x B o conjunto de todos os pares possveis de fornecedores/peas

lgebra Relacional

Produto Cartesiano

As operaes Unio, interseco e produto cartesiano so associativas(pode-se omitir os parenteses) sem problema, a diferena no associativa

lgebra Relacional

Operadores relacionais Especiais

Seleo ou Restrio

Produz um subconjunto "horizontal" de uma relao especfica

Se Expressa como uma expresso booleana

lgebra Relacional

Operadores relacionais Especiais

Projeo

Produz um subconjunto "vertical" de uma relao dada

O subconjunto obtido ao selecionar os atributos especificados em uma ordem dada da esquerda para direita eliminando as tuplas duplicadas

lgebra Relacional

Operadores relacionais Especiais

Diviso

O Operador de diviso divide uma relao dividindo A de grau m+n entre uma relao de grau n, e produz uma relao de grau m, tal que ao concaten-las com as tuplas de B, produzem as tuplas contidas em A.

lgebra Relacional

Operadores relacionais Especiais

Reunio/JOIN

O Resultado do JOIN de duas relaes A e B, uma relao que inclui todas as tuplas que se obtm concatenando uma de A e outra de B, tais que cumpram um atributo de domnio comum as duas.

A Condio pode ser ,>-, >> Conjunto de Dados (Produto Cartesiano)

Concorrncia

No h milagres, a execuo mais segura, a serializada, mas perde-se a concorrncia, como permitir a execuo concorrente com a maior eficincia, ou seja com a menor quantidade de serializaes

Podemos citar trs tcnicas utilizadas no mecanismo de concorrncia.TIMESTAMP(Marcas de Tempo)

VERSES

LOCKING(BLOQUEIOS)

Bloqueio Simples

Consiste em marcar o dado, semforo, indicando que o dado esta em uso, esta marca indica qual o tipo de acesso foi executado, sendo um dos seguintes tipos:Leitura(Compatilhado)Todas as transaes e inclusive a possuidora do bloqueio, podem somente ler o dado.

Escrita(Exclusivo)Somente a transao possuidora do bloqueio pode ler ou escrever o dado

Bloqueio Simples

Quando uma transao, deseja acessar um dados, ela deve emitir um bloqueio para o tipo especifico, em havendo sucesso, pode utiliz-lo imediatamente.

Caso haja um bloqueio e seja do tipo Leitura, e o desejo da transao tambm o seja, poder tambm utilizar imediatamente, caso o bloqueio seja o de escrita, dever aguardar a liberao do bloqueio independente do desejo.

Para a boa execuo no banco, os bloqueios devem ser removidos to logo no sejam mais necessrios

Bloqueio Simples

T1T2

lock_e(x)read(x)lock_e(x)

aguarda

x=x+1...

write(x)...

unlock(x)...

lock_e(x)

x=x+100

wrrite(x)

unlock(x)

Bloqueio Simples

Problema na liberao do bloqueio simples

T3T4

sum=0

lock_C(x)

read(x)

unlock(x)

sum=sum+x

lock_c(y)

lock_e(x)x=x-10write(x)unlock(x)commitread(y)

unlock(y)

sum=sum+y

Bloqueio Simples

Problema na liberao do bloqueio simples

No exemplo ao ladoCaso T4,seja abortadaT3 efetiva com valores de Xque no existiram no Banco

T3T4

sum=0

lock_C(x)

read(x)

unlock(x)

sum=sum+x

lock_c(y)

lock_e(x)x=x-10write(x)unlock(x)commitread(y)

unlock(y)

sum=sum+y

Bloqueio de Duas Fases

a serializao no tratamento do bloqueio

Primeira fase, aquisio dos bloqueios apenas (growing phase)

Segunda fase, liberao dos bloqueios(shrinking phase), quando o primeiro bloqueio liberado a transao no pode mais adquirir nenhum outro bloqueio

Este tipo de bloqueio garante execues serializveis e evita o problema de cascating abort e libera os bloqueios apenas no commit ou rollback

Bloqueio de Duas Fases

No Bsico, os bloqueio so liberados quando a transao no os utiliza mais, isto pode acarretar o cascading abort.

Quando o bloqueio liberado outras transaes podem e vo utilizar os dados, mas se a primeira desfizer(rollback), todas as outras vo ter de desfazer tambm, pois os seus valores esto inconsistentes.

Bloqueio de Duas Fases

No Estrito, os bloqueio so liberados apenas no final da transao em momento nico, o que j no ocasiona o cascading abort.

A implementao estrita a mais utilizada em sgbds comerciais

Bloqueio de Duas Fases

No Estrito, pode ocorrer ainda os deadlocks

Esta situao ocorre quando uma transao T2 esta aguardando um dado 1 bloqueado por uma transao T1, e esta esta aguardando um dado 2 que foi bloqueada pela transao T2

Bloqueio de Duas Fases

O desempenho do banco Conservativo, evita que ocorra o deadlock, pois solicita antecipadamente os dados, no entanto passa a degradar o desempenho do banco.Bloqueando dados que podem no ser utilizados, e gerando um problema conhecido como postergao definida, situao que uma transao fica aguardando um evento que pode nunca ocorrer.

Preveno de DeadLock

Existem duas abordagens para a preveno:Uma garante que nenhum ciclo de espera poder ocorrer pela ordenao de solicitaes de bloqueio, ou pela aquisio de todos os bloqueios juntos.

A outra faz com que a transao seja refeita, em vez de esperar por um bloqueio, sempre que a espera possa potencialmente gerar um deadlock.

Preveno de DeadLock

PrimeiraCada transao obrigada a bloquear todos os itens de dados antes da execuo, todos os dados so bloqueados ou nenhum.ProblemasDificuldades de prever, antes da transao iniciar, quais os itens devero ser bloqueados

A disponibilidade do dado fica bastante reduzida, uma vez que os dados podem ficar bloqueados por um longo periodo.

Preveno de DeadLock

SegundaCada transao possui timeouts, e atravs dele a transao fica aguardando (wait) ou deve ser refeita (redo).Se o tempo estourar(timeout) a transao abortada independente de ter ocorrido ou no o deadlock..

Fixao

Explique concorrncia

Porque importante?

Quais so os tipos de locking?

Explique o que deadlock

TimeStamp

Cada transao recebe um timestamp vindo do S.O, e com este valor o banco decide qual a transao deve executar primeiro, e como referncia o banco mantm dois contadores de timestamp, um para leitura e outro para escrita. Que so sempre atualizados a cada read ou write.Na realidade, este uma forma de serializar as transaes.

TimeStamp

Cada transao recebe um timestamp vindo do S.O, e com este valor o banco decide qual a transao deve executar primeiro, e como referncia o banco mantm dois contadores de timestamp, um para leitura e outro para escrita. Que so sempre atuaizados a cada read ou write.Na realidade, este uma forma de serializar as transaes.

TimeStamp

Transao, emite read

Se TS(T1) < timestamp(e), ento T1, precisa ler um valor que j foi modificado, neste caso o read rejeitado, necessitando ser refeita

Se TS(T1) > timestamp(e), ento T1 pode prosseguir.

TimeStamp

Transao, emite write

Se TS(T1) < timestamp(l), ento T1 esta produzindo um valor necessrio anteriormente, neste caso o write rejeitado, necessitando ser refeita(T1)

Se TS(T1) < timestamp(w), ento T1 esta tentando escrever um valor., aqui tambm o write rejeitado e a transao T1 precisa tambm ser refeita.Seno o sistema executa a operao write da transao atualiza o timestamp(e).

Validao

Admitindo-se que na maioria dos casos, as transaes so de leituras, a taxa de erros de leitura tende a ser baixa, mas mesmo assim deve-se utilizar um controle de concorrncia, pois sem o seu uso pode-se levar o banco a um estado inconsistente, mas usando o controle normal pode ocasionar um grande overhead, ento nestes casos melhor a utilizao de outro esquema.

Validao

Leitura:

Na fase de Leitura, a transao l todas as informaes necessrias e armazenam os seus valores em variveis temporrias, bem como as que sero escritas no banco.

Validao

Validao:

Na fase de Validao, o sistema realiza testes de validao para escrita, afim de verificar se estas escritas podem levar o banco a um estado inconsistente, ou falha na seriao da escrita

Validao

Escrita:

Na fase de Escrita, o sistema realiza as escritas somente se a fase de validao foi concluda com sucesso, caso contrario a transao ser revertida.

Validao

Para determinar o correto funcionamento, o sistema possui trs controles de TimeStamp.

Start Tempo do inicio da transao.

Validation Tempo em que a transao passou da fase de inicio para a de validao.

Finish Tempo em que a transao terminou a fase da escrita

Validao

O seu funcionamento semelhante ao do TimeStamp Normal.

Mas em vez do uso do TimeStamp de Leitura, utilizado o de Validation, dado ao fato de que os conflitos so baixos.

O de Escrita, utilizado o de Finish Tempo em que a transao terminou a fase da escrita

Validao

Exemplo

T1T2

Read(B)Read(B)

B:=B-50

Read(A)

A:=A+50

Read(A)ValidationDisplay(A+B)Validation

Write(B)

Write(A)

Validao

Suponha, que TS(T1) < TS(T2) ento a fase de validao tem sucesso no schedule, e perceba que as escritas nas variveis reais so realizadas somente aps a fase de validao de T2. Assim T1 l os valores antigos de B e A

Este esquema previne tambm contra os rollbacks em cascata, pois so efetivadas somente aps a transao tiver sido confirmada.

No entanto existe a possibilidade de transaes muito longas(demoradas) ficarem paradas, uma vez que as transaes curtas(rpidas) entrarem em conflito, obrigando estas transaes longas a reiniciarem repetidamente, Ento para evitar este comportamento necessrio que estas transaes curtas sejam temporariamente bloqueadas afim de permitirem que a transao demorada consiga executar e termine

Validao

Este esquema de concorrncia chamado de otimista, pois supem-se que as transaes sejam completadas e validadas ao seu final

No caso de serem utilizadas bloqueio e timestamp, so chamadas de pessimista, pois sempre foram uma espera ou um rollback sempre que um conflito for detectado

Validao

O bloqueio utiliza o conceito de granularidade, onde podemos imaginar uma estrutura de rvore, onde os dados que desejamos modificar so as folhas, dados afim so os galhos, e o banco todo a raiz

RaizA1A2A3F1F2Fa1FanFa2Fb1Fb2

Clique para editar os estilos do texto mestre

Segundo nvel

Terceiro nvel

Quarto nvel

Quinto nvel

Clique para editar o estilo do ttulo mestre

Clique para editar o estilo do subttulo mestre

Clique para editar o estilo do ttulo mestre

Clique para editar os estilos do texto mestre
Segundo nvel
Terceiro nvel
Quarto nvel
Quinto nvel

Clique para editar o estilo do ttulo mestre

Clique para editar os estilos do texto mestre

Clique para editar o estilo do ttulo mestre

Clique para editar os estilos do texto mestre
Segundo nvel
Terceiro nvel
Quarto nvel
Quinto nvel

Clique para editar os estilos do texto mestre
Segundo nvel
Terceiro nvel
Quarto nvel
Quinto nvel

Clique para editar o estilo do ttulo mestre

Clique para editar os estilos do texto mestre

Clique para editar os estilos do texto mestre
Segundo nvel
Terceiro nvel
Quarto nvel
Quinto nvel

Clique para editar os estilos do texto mestre

Clique para editar os estilos do texto mestre
Segundo nvel
Terceiro nvel
Quarto nvel
Quinto nvel

Clique para editar o estilo do ttulo mestre

Clique para editar o estilo do ttulo mestre

Clique para editar os estilos do texto mestre
Segundo nvel
Terceiro nvel
Quarto nvel
Quinto nvel

Clique para editar os estilos do texto mestre

Clique para editar o estilo do ttulo mestre

Clique para editar os estilos do texto mestre

Clique para editar o estilo do ttulo mestre

Clique para editar os estilos do texto mestre

Segundo nvel

Terceiro nvel

Quarto nvel

Quinto nvel

Clique para editar o estilo do ttulo mestre

Clique para editar os estilos do texto mestre

Segundo nvel

Terceiro nvel

Quarto nvel

Quinto nvel

Clique para editar os estilos do texto mestre

Segundo nvelTerceiro nvelQuarto nvelQuinto nvel

Clique para editar o estilo do ttulo mestre

Clique para editar o estilo do subttulo mestre

Clique para editar o estilo do ttulo mestre

Clique para editar os estilos do texto mestre
Segundo nvel
Terceiro nvel
Quarto nvel
Quinto nvel

Clique para editar o estilo do ttulo mestre

Clique para editar os estilos do texto mestre

Clique para editar o estilo do ttulo mestre

Clique para editar os estilos do texto mestre
Segundo nvel
Terceiro nvel
Quarto nvel
Quinto nvel

Clique para editar os estilos do texto mestre
Segundo nvel
Terceiro nvel
Quarto nvel
Quinto nvel

Clique para editar o estilo do ttulo mestre

Clique para editar os estilos do texto mestre

Clique para editar os estilos do texto mestre
Segundo nvel
Terceiro nvel
Quarto nvel
Quinto nvel

Clique para editar os estilos do texto mestre

Clique para editar os estilos do texto mestre
Segundo nvel
Terceiro nvel
Quarto nvel
Quinto nvel

Clique para editar o estilo do ttulo mestre

Clique para editar o estilo do ttulo mestre

Clique para editar os estilos do texto mestre
Segundo nvel
Terceiro nvel
Quarto nvel
Quinto nvel

Clique para editar os estilos do texto mestre

Clique para editar o estilo do ttulo mestre

Clique para editar os estilos do texto mestre

Clique para editar o estilo do ttulo mestre

Clique para editar os estilos do texto mestre

Segundo nvelTerceiro nvelQuarto nvelQuinto nvel

Clique para editar o estilo do ttulo mestre

Clique para editar os estilos do texto mestre

Segundo nvelTerceiro nvelQuarto nvelQuinto nvel