Instalação e configuração de banco de dados II - Avançado
-
Upload
antonio-oliveira -
Category
Documents
-
view
218 -
download
3
description
Transcript of Instalação e configuração de banco de dados II - Avançado
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