73
Banco de Dados II Thiago Mendes ([email protected])

Aula 03 - Banco de Dados II

Embed Size (px)

DESCRIPTION

Transações Banco de Dados II

Citation preview

Banco de Dados I

Banco de Dados IIThiago Mendes ([email protected])

TransaesBanco de Dados IIAgendaTransaesIntroduoEstados de uma transaoExecuo Concorrente

Thiago mendes banco de dados ii - favenorteTransaoThiago mendes banco de dados ii - favenorteO que uma transaoRefere-se a uma coleo de operaes que forma uma nica unidade lgica de trabalho.

Por exemplo, uma transferncia de dinheiro de uma conta para outra uma transao consistindo de duas atualizaes, uma para cada conta.

essencial que todo o conjunto de operaes seja concludo, ou que, no caso de uma falha, nenhuma delas ocorra.

Um SGBD precisa:Garantir que a execuo da transao seja completa;Administrar a execuo simultnea de vrias transaes evitando inconsistncias;Thiago mendes banco de dados ii - favenorteOperaes de Leitura/EscritaAs operaes de acesso ao BD que uma transao pode fazer so:read(x): que transfere o item de dados x do BD para um buffer local alocado transao que executou a operao de read. O valor de x colocado dentro de uma varivel de programa.

write(x): que transfere o item de dados x do buffer local da transao que executou o write de volta para o BD. O valor da varivel de programa passado para o item de dado no BD.

OBS.: para fins de simplificao, o item de dados e a varivel de programa correspondente sero representados da mesma forma, x.Thiago mendes banco de dados ii - favenorteExemplo de TransaoThiago mendes banco de dados ii - favenorte

ExemploSeja T1 uma transao que transfere 50 reais da conta A para a conta B. Essa transao pode ser definida como:

T1: read(A);A := A - 50;write(A);read(B);B := B + 50;write(B);Thiago mendes banco de dados ii - favenortePropriedades das TransaesAtomicidade: A execuo de uma transao deve ser atmica, ou todas as aes so executadas, ou nenhuma ;Assegurar a atomicidade de uma transao responsabilidade do SGBD, mais especificamente, do Componente de Gerenciamento de Transaes e Recuperador de Falhas.

Consistncia: Cada transao executada isoladamente (ou seja, sem a execuo concorrente de outra transao) deve preservar a consistncia do banco de dados;A exigncia da consistncia aqui significa que a soma de A com B deve permanecer inalterada aps a execuo da transao.Responsabilidade do programador

Thiago mendes banco de dados ii - favenortePropriedades das TransaesIsolamento: Cada transao deve ser isolada dos efeitos da execuo concorrente de outras transaes;A execuo concorrente de vrias transaes implica no intercalamento de suas operaes. Se este intercalamento feito de forma inconveniente, inconsistncias sero geradas.No exemplo dado, se uma transao concorrente ler o valor de A antes dele ser escrito mais depois do processamento A-50 ter sido feito, ela estar lendo um valor inconsistente.Execues em srie resolvem este problema mas a concorrncia benfica por causa do tempo de execuo (melhora do desempenho).Assegurar o isolamento de responsabilidade do Controlador de Concorrncia.

Thiago mendes banco de dados ii - favenortePropriedades das TransaesDurabilidade: Toda transao que for finalizada de forma bem-sucedida deve persistir seus resultados em banco mesmo na presena de falhas no sistema.No exemplo dado, se a transao se completar com sucesso e o usurio que a disparou for notificado da transferncia de fundos, isso significa que no houve nenhuma falha de sistema que tenha resultado em perda de dados relativa a essa transferncia.

Assegurar a durabilidade responsabilidade do componente do SGBD chamado de Recuperador de Falhas.Thiago mendes banco de dados ii - favenorteOperaes AdicionaisUma transao uma unidade de trabalho atmica que completada em sua totalidade ou nada dela deve ter efeito. Para tornar isso possvel, as seguintes operaes so necessrias:

Begin-transaction: Denota o incio da execuo da transao;End-transaction: Especifica que as operaes da transao terminaram e marca o limite final da execuo da transao. Neste ponto necessrio verificar se o COMMIT ou o ABORT so necessrios, caso j no tenham sido explicitados;Commit-transaction: Sinal de trmino com sucesso e que as alteraes podem ser permanentemente gravadas no BD;Rollback (abort-transaction): Assinala que a transao no terminou com sucesso e que seus efeitos devem ser desfeitos;Undo: Desfaz uma operao;Redo: Refaz uma operao.Thiago mendes banco de dados ii - favenorteOperao com operadoresbegin transactionupdate TABELA1 set CAMPO1 = NOVO VALORwhere CAMPO2 = 35if $ERROR 0rollbackelsecommitend transaction

Suponha uma tabela que possua 6000 tuplas que satisfaam a condio e quena tupla 4666 houve uma falha no sistema. Neste caso, a varivel chamada$ERROR guardar o cdigo do erro, o comando ROLLBACK ser executadoe as 4666 tuplas j atualizadas sero automaticamente voltadas a seu estadoanterior.

Ao contrrio, se tudo correr bem, o comando COMMIT ser executado e todasas 6000 tuplas sero atualizadas com xito.Thiago mendes banco de dados ii - favenorteArquiteturaThiago mendes banco de dados ii - favenorte

Log de TransaesCaractersticas:Registro de todas as operaes (alteraes) realizadas no banco de dados;Base para o processo de recuperao (Recovery)Atualizao anterior operao realizada sobre os dados;Atualizao fsica (I/O), sem utilizao de buffers.Thiago mendes banco de dados ii - favenorte

O que faz uma transao falhar?As falhas em uma transao podem ter como motivo:Interrupo do SGBD;Queda do sistema;Falta de energia;Deteco de uma situao inesperada ou exceo: saldo insuficiente.Uma transao interrompida ao meio pode deixar o banco de dados em um estado inconsistente.O banco de dados deve prover recursos para remoo dos efeitos de transaes incompletas para garantir a atomicidade.Thiago mendes banco de dados ii - favenorteEstados de uma TransaoThiago mendes banco de dados ii - favenorte

Diagrama de transio de estadospara a execuo da transao.Com sucessoou com falha.a juno natural definida em termos de produto cartesianoEstados de uma TransaoThiago mendes banco de dados ii - favenorte

a juno natural definida em termos de produto cartesianoConsideraesAtiva, ou estado inicial; a transao permanece neste estado enquanto estiver executando.Em efetivao parcial, aps a execuo da ltima declarao.Em falha, aps a descoberta de que a execuo normal j no pode se realizar.Abortada, depois que a transao foi desfeita e o banco de dados foi restabelecido ao estado anterior do incio da execuo da transao.Em efetivao, aps a concluso com sucesso.Thiago mendes banco de dados ii - favenorteConsideraesUma transao entra no estado de falha quando o sistema determina que ela j no pode prosseguir sua execuo normal. Essa transao deve ser desfeita e entra no estado de abortada. Nesse momento o sistema tem duas opes:Reiniciar a transao: somente se ela foi abortada como resultado de algum erro de hardware ou de software no criado pela lgica interna da transao. Uma transao reiniciada considerada uma transao nova.Matar a transao: normalmente, isto feito em decorrncia de algum erro lgico interno e s pode ser corrigido refazendo o programa de aplicao. Esse erro d-se ou porque a entrada de dados no era adequada ou porque os dados desejados no foram encontrados no banco de dados. Thiago mendes banco de dados ii - favenorteGerenciamento de Transaes - RecuperaoAlm das falhas causadas por transaes incorretas, conforme vimos anteriormente, podem ocorrer outros tipos de falhas, que ocorrem por fatores no locais. So diferenciados em dois tipos de falhas:

Falhas de sistema: no danificam fisicamente o banco de dados, mas afetam todas transaes em curso no momento.

Falhas da mdia: causam danos ao banco de dados ou parte dele, e prejudicam as transaes que fazem acesso a esta parte do banco. Exemplo: queda da cabea de gravao.Thiago mendes banco de dados ii - favenorteGerenciamento de Transaes - RecuperaoFalhas de sistema: Neste caso, o contedo da memria de processamento perdido, e no se sabe mais em qual ponto de execuo de programas e instrues manuais estamos. Por tal motivo, no possvel ter conhecimento do ponto em que paramos em cada transao, e devemos desfazer cada transao, retornando todo o banco de dados situao anterior.Para cada operao (instruo INSERT, DELETE, UPDATE):As alteraes de dados aceitas (COMMIT) so guardadas em um buffer.A operao realizada registrada em um log fsico, para termos controle das transaes.Thiago mendes banco de dados ii - favenorteGerenciamento de Transaes - RecuperaoObedecendo o intervalo de tempo t, o SGBD:Grava todas as alteraes do buffer no meio fsico.Marca um ponto de verificao (checkpoint) no log fsico, para separar as operaes j confirmadas daquelas em realizao.

Para compreender como realizada a recuperao de sistema, vamos supor o seguinte conjunto de transaes, compostos cada um pelas operaes respectivas de insero (I1, I2, etc.) e excluso (D1, D2, ...):Transao 1: I1, I2 e I3Transao 2: I4, I5 e I6Transao 3: I7, I8 e D1Transao 4: I9, I10, I11, I12, I13 e I14Transao 5: I15, I16 e D2

Thiago mendes banco de dados ii - favenorteGerenciamento de Transaes - RecuperaoPara facilitar o entendimento, iremos representar atravs de uma figura a evoluo de cada transao ao longo do tempo. Vamos definir que:Em tc, o sistema realiza uma marcao de ponto de verificao (checkpoint).Em tf, ocorre uma falha do sistema.Thiago mendes banco de dados ii - favenorte

Gerenciamento de Transaes - RecuperaoAo reiniciar o sistema, pela figura, verificamos que:A transao T1 teve todas as suas atualizaes gravadas no banco de dados em tc. Portanto, como no houve prejuzo ao sistema fsico, nada necessrio fazer.A transao T2 no estava completa em tc, portanto no foi gravada em meio fsico. Mas encerrou antes de tf, e portanto, ao reiniciar, o sistema dever refazer a transao T2.A transao T3 iniciou aps tc, mas terminou antes de tf. Deve ser tambm recuperada e gravada no reincio.As transaes T4 e T5 no terminaram antes de tc, e devem ser desfeitas.Thiago mendes banco de dados ii - favenorteGerenciamento de Transaes - RecuperaoPara recuperar os dados da forma descrita, utilizaremos o log fsico das transaes. Iremos encontrar:T1: I1T1:I2T2: I4T1: I3T1: COMMITT2:I5T4: I9CheckpointT2: I6T2: COMMITT4: I10T3: I7T4: I11T3: I8T4: I12T5: I15T3: D1T3: COMMITT4: I13T5: I16Thiago mendes banco de dados ii - favenorteGerenciamento de Transaes - RecuperaoNo encontraremos no log T4: I14 e T5: D2 pois no foram executadas (sistema falha antes). Desta forma, no poderemos completar esta transao posteriormente pois no teremos os dados necessrios.Para recuperar o sistema, iremos partir do banco de dados existente no meio fsico. Com base no log fsico, iremos percorrer este arquivo do seu incio at o final. Para cada nova transao, verificaremos:

Se recebeu um COMMIT antes do checkpoint do sistema; neste caso, pode ser ignorada pois j se encontra no banco. Em nosso exemplo, seria T1, o qual podemos retirar do log antes de sua execuo.

Se no encontramos um COMMIT antes do fim do log; neste caso, tambm removemos do arquivo, pois a transao no se completou e deve ser ignorada. Em nosso exemplo, T4 e T5.Thiago mendes banco de dados ii - favenorteGerenciamento de Transaes - RecuperaoT1:I2T2: I4T1: I3T1: COMMITT2:I5T4: I9CheckpointT2: I6T2: COMMITT4: I10T3: I7T4: I11T3: I8T4: I12T5: I15T3: D1T3: COMMITT4: I13T5: I16Thiago mendes banco de dados ii - favenorteDesta forma, para recuperar o banco, bastar aplicar sobre o conjunto de dados existentes em meio fsico novamente as transaes T2 e T3, na sequncia indicada acima no log aps a anlise efetuada, a qual remove transaes j completadas antes do checkpoint e aquelas no completadas antes da falha do sistema.Gerenciamento de Transaes - RecuperaoFalhas de mdia: Neste caso, a recuperao realizada utilizando o recurso de backup do banco. Faz-se uso da dupla de utilitrios do SGBD denominada dump/restore. O primeiro copia o atual contedo do banco de dados fsico para outro meio fsico (exemplo: fitas), enquanto o segundo capaz de reconstituir o primeiro quando necessrio.

Para casos de falhas de mdia, restaura-se o backup e em seguida utiliza-se o log de transaes para recuperar as transaes correntes at o ponto da falha, utilizando o mesmo processo utilizado para as falhas de sistema.Thiago mendes banco de dados ii - favenorteExercciosSob o ponto de vista do usurio de um banco de dados, avalie a situao:No incio do dia, o correntista possui um saldo de R$2.000,00. Vai, ento, a um caixa automtica e retira R$100,00. No instante seguinte, imprime um extrato de conta corrente e v o seguinte demonstrativo:

Saldo anterior: R$2.000,00 Saque do caixa automtico: R$100,00Saldo atual: R$2.000,00

Aguarda mais 20 minutos e solicita outro extrato:

Saldo anterior: R$2.000,00Saque do caixa automtico: R$100,00Saldo atual: R$1.900,00Thiago mendes banco de dados ii - favenorteExercciosPara o SGBD o banco de dados estava ntegro entre o 1. e o 2. extrato? E sob o ponto de viso do analista que criou a transao? Explique o por qu nos dois casos.

Quais propriedades das transaes foram violadas? Por que?Thiago mendes banco de dados ii - favenorteExercciosRespostasSob o ponto do SGBD, o banco de dados estava ntegro porque as transaes estavam em processo de execuo durante a emisso do 1. e o 2. extrato, e ao fim a transao finalizou sucesso.

No ponto de vista do analista, o banco de dados no estava ntegro porque no momento da emisso do 1. extrato, aps a realizao de operao de saque, no houve alterao do saldo bancrio.

Thiago mendes banco de dados ii - favenorteExercciosRespostasAtomicidade: Violada, porque a transao ocorreu em duas etapas. Consistncia: Violada, porque no momento de emisso do 1 extrato o saldo bancrio no refletiu a operao de saque realizada anteriormente. No ponto de vista do usurio, houve inconsistncia. Isolamento: Violada, porque o usurio teve acesso aos dados antes da finalizao da transao. Durabilidade: Dados registrados corretamente no banco de dados.Thiago mendes banco de dados ii - favenorteExercciosIdentifique o que acontece o que deve ser feito para a situao abaixo.Thiago mendes banco de dados ii - favenorte

ExercciosComo implementada a propriedade Durabilidade (D) de uma transao na prtica?Dados armazenados no buffer aguardando a prxima instruo para liberar esses dados da memria do computador.Executa o comando COMMIT.O SGBD copia os dados da memria para o disco rgido para um arquivo de banco de dados e libera a memria. Estes dados se tornam dados persistentes.Thiago mendes banco de dados ii - favenorteRelembrandoFalha de transao Falha de sistemaRead / writeEstados da transaoCommit / rollbackcheckpointThiago mendes banco de dados ii - favenorteExecuo ConcorrenteTransaes podem ser executadas:Sequencialmente: uma transao Ti termina antes do incio ou comea aps o final de uma transao TjConcorrentemente: partes das transaes Ti e Tj podem ser processadas em paraleloThiago mendes banco de dados ii - favenorteExecuo ConcorrentePermitir que mltiplas transaes concorram na atualizao de dados traz diversas complicaes em relao consistncia desses dados.Concorrncia entre transaes necessria para melhorar o desempenho:Aproveita o tempo que uma transao permanece bloqueada devido a operaes de leitura e escrita no disco para processar outras transaes.Evita que transaes muito longas retardem a execuo de transaes mais curtas.Thiago mendes banco de dados ii - favenorteExecuo ConcorrenteExecues concorrentes implicam que:O processador executa cada transao por um tempo, alternando entre as transaesTransaes tm sua execuo retomada ciclicamenteExecues concorrentes precisam garantir as propriedades de consistncia e isolamentoA definio de escalas de execuo (schedules) identifica as operaes que podem ser efetuadas concorrentemente sem afetar a consistncia do BDControle de concorrncia impede que um dado que est sendo alterado por uma transao seja usado por outra transaoThiago mendes banco de dados ii - favenorteExecuo ConcorrenteSejam T1 e T2 duas transaes que transferem fundos de uma conta para outra.

A transao T1 transfere 50 dlares da conta A para a conta B.

A transao T2 transfere 10 por cento do saldo da conta A para a conta B.Thiago mendes banco de dados ii - favenorteExecuo ConcorrenteThiago mendes banco de dados ii - favenorte

Execuo Sequencial (serial)Escalas de execuo em sequncia: Observe que o estado do BD sempre consistente.Thiago mendes banco de dados ii - favenorte

Execuo ConcorrenteThiago mendes banco de dados ii - favenorte

CorretaIncorretaExemplo de escala concorrente equivalente execuo sequencial T1 -> T2Execuo ConcorrenteExemplo de escala concorrente que no respeita o isolamento -> saldo total no preservadoThiago mendes banco de dados ii - favenorte

Execuo ConcorrenteA recuperao de estado dificultada quando h concorrncia entre transaesNa escala concorrente anterior, se T1 falha, T2 tem que ser refeita, pois leu um valor modificado por T1Nestes casos, a recuperao feita em cascata -> cancelar transaes que leram valores invlidosRollback em cascata pode ser evitado obrigando que T2 leia o valor escrito por T1 s aps o commit de T1Se a efetivao de T2 ocorrer antes do commit de T1 ser impossvel fazer o rollback em cascataThiago mendes banco de dados ii - favenorteProblemas na ConcorrnciaProblema de alteraes perdidas;Problema de alterao temporria (ou leitura suja);Problema do resumo incorreto;Problema da leitura no-repetitiva.Thiago mendes banco de dados ii - favenorteProblema de Alteraes PerdidasOcorre quando duas transaes que acessam o mesmo item de BD possuem suas operaes intercaladas de uma maneira que o valor de algum item de dado fique incorreto.Thiago mendes banco de dados ii - favenorte

O item X tem um valorincorreto porque suaatualizao atravs de T1 foiperdida (sobrescrita)Problema de Alterao TemporriaOcorre quando uma transao altera um item de dados e depois ela falha por alguma razo. O item de dado acessado por outra transao antes que o valor original seja estabelecido.Thiago mendes banco de dados ii - favenorte

A transao T1 falha e o sistema deve alterar o valor do itemX para o seu valor anterior; porm, T2 j leu o valor temporrio "incorreto" do item X.Problema de Resumo IncorretoSe uma transao est calculando uma funo agregada com um conjunto de tuplas e outras transaes esto alterando algumas destas tuplas, a funo agregada pode calcular alguns valores antes deles serem alterados e outros depois de serem alterados.Thiago mendes banco de dados ii - favenorte

O valor do item Y foi consideradona funo de agregao datransao T2 e o seu valor foialterado depois pela transao T1Problema da Leitura no-repetitivaOcorre quando uma transao T l um item duas vezes e o item alterado por uma outra transao T' entre as duas leituras de T. Portanto, T recebe diferentes valores para suas duas leituras do mesmo item.Thiago mendes banco de dados ii - favenorte

Na 2 leitura do item X pela transao T1, o valor lido diferente do valor da 1leitura, devido alterao feita pela transao T2 no item X entre as duasleituras da transao T1EscalonamentoUm escalonamento S de n transaes uma ordenao das operaes dessas transaes sujeita restrio de que, para cada transao Ti que participa de S, as operaes de Ti em S devem aparecer na mesma ordem em que ocorrem em Ti.

Notao simplificada para escalonamento:Ri(X): read_item(X) na transao Ti.Wi(X): write_item(X) na transao Ti.Ci: commit na transao Ti.Ai: abort na transao Ti.Thiago mendes banco de dados ii - favenorteEscalonamentoUm escalonamento S denominado serial (sequencial) se, para todas as transaes T participantes do escalonamento, todas as operaes de T forem executadas consecutivamente no escalonamento; caso contrrio, o escalonamento denominado no-serial.

Um escalonamento serial:possui somente uma transao ativa de cada vez;no permite nenhum entrelaamento de transaes; considerado correto, independente da ordem de execuo das transaes;limita a concorrncia;na prtica, inaceitvel.Thiago mendes banco de dados ii - favenorteEscalonamentoO sistema de banco de dados deve controlar a execuo concorrente de transaes para assegurar que o estado do BD permanea consistente.

A consistncia do banco de dados, sob execuo concorrente, pode ser assegurada por meio da garantia de que qualquer escala executada tenha o mesmo efeito de outra que tivesse sido executada sem qualquer concorrncia.

Isolamento obriga que uma escala concorrente seja equivalente a uma escala sequencial.

Thiago mendes banco de dados ii - favenorteEscalonamentoUm escalonamento S de n transaes serializvel se for equivalente a algum escalonamento serial das n transaes.

Dois escalonamentos so ditos equivalentes se a ordem de quaisquer duas operaes conflitantes for a mesma nos dois escalonamentos.

Sa: r1(X); w1(X); r1(Y); w1(Y); c1; r2(X); w2(X); c2; (serial)Sb: r1(X); w1(X); r2(X); w2(X); r1(Y); w1(Y); c1; c2; (serializvel)Sc: r1(X); r2(X); w1(X); r1(Y); w2(X); w1(Y); c1; c2;(no serializvel)Thiago mendes banco de dados ii - favenorteSerializaoFormas de equivalncia entre escalas de execuo podem ser verificadas sob dois aspectos:Serializao de conflito;Serializao de viso.Thiago mendes banco de dados ii - favenorteSerializao de ConflitoInstrues das transaes Ti e Tj so conflitantes se ambas acessam um mesmo dado Q e se pelo menos uma delas modifica o valor de Q.

Se duas instrues no so conflitantes, sua ordem pode ser trocada na escala.Se duas instrues referem-se ao mesmo item de dado Q, ento a ordem dos dois passos pode importar.Thiago mendes banco de dados ii - favenorte

Serializao de Conflito1. Ii = read(Q) e Ij = read(Q)A sequncia de execuo de Ii e Ij no importa, j que o mesmo valor de Q lido por Ti e Tj, independentemente da ordem destas operaes.

2. I i = read(Q) e Ij = write(Q)Se Ii vier antes de Ij, ento Ti no l o valor de Q que escrito por Tj na instruo Ij.

Se Ij vier antes de Ii, ento Ti l o valor de Q que escrito por Tj.

Assim, a ordem de Ii e Ij importa.Thiago mendes banco de dados ii - favenorteSerializao de Conflito3. Ii = write(Q) e Ij = read(Q)A ordem de Ii e Ij importa por razes semelhantes s do caso anterior.4. Ii = write(Q) e Ij = write(Q)Como ambas as instrues so operaes de escrita, a ordem dessas instrues no afeta Ti ou Tj.

Entretanto, o valor obtido pela prxima instruo read(Q) em S afetado, j que somente o resultado da ltima das duas instrues write(Q) preservado no banco de dados.

Se no houver nenhuma outra instruo de write(Q) depois de Ii e Ij em S, ento a ordem de Ii e Ij afeta diretamente o valor final de Q no que se refere ao estado do banco de dados aps a execuo da escala S.Thiago mendes banco de dados ii - favenorteSerializao de ConflitoDiz-se que duas instrues entram em conflito se elas so operaes pertencentes a transaes diferentes, agindo no mesmo item de dado, e pelo menos uma dessas instrues uma operao de escrita.Thiago mendes banco de dados ii - favenorte

A instruo write(A) de T1 entra em conflito com a instruo read(A) de T2.

Porm, a instruo write(A) de T2 no est em conflito com a instruo read(B) de T1.Escala SSerializao de ConflitoSeja Ii e Ij instrues consecutivas de uma escala de execuo S.

Se Ii e Ij so instrues de transaes diferentes e no entram em conflito, ento podemos trocar a ordem de Ii e Ij para produzir uma nova escala de execuo S.

Diz-se que S e S so equivalentes j que todas as instrues aparecem na mesma ordem em ambas as escalas de execuo com exceo de Ii e Ij, cuja ordem no importa.Thiago mendes banco de dados ii - favenorteSerializao de ConflitoAinda segundo a escala S, a instruo write(A) de T2 no entra em conflito com a instruo read(B) de T1. Ento, permitido mudar a ordem dessas instrues para gerar uma escala de execuo equivalente.Thiago mendes banco de dados ii - favenorteEm relao a um mesmo estado inicial dosistema, ambas as escalas (S e esta)produzem o mesmo estado final no sistema.Escala S

Serializao de ConflitoSe as seguintes trocas de instrues no-conflitantes forem feitas:read(B) de T1 por read(A) de T2;write(B) de T1 por write(A) de T2;write(B) de T1 1 por read(A) de T2.

... uma escala com execues seriais ser obtida.

Assim mostrou-se que a escala S equivalente, por conflito, a uma escala sequencial.

Essa equivalncia garante que para um mesmo estado inicial do sistema, a escala S produzir o mesmo estado final produzido por essa escala sequencial.Thiago mendes banco de dados ii - favenorteSerializao de ConflitoSe uma escala de execuo S puder ser transformada em outra, S, por uma srie de trocas de instrues no conflitantes, dizemos que S e S so equivalentes por conflito.

O conceito de equivalncia por conflito leva ao conceito de serializao por conflito.

Uma escala de execuo S serializvel por conflito se ela equivalente por conflito a uma escala de execuo sequencial.Thiago mendes banco de dados ii - favenorteSerializao de ConflitoA escala abaixo no serializvel por conflito pois no equivalente em conflito nem escala sequencial nem .Thiago mendes banco de dados ii - favenorte

Serializao de ConflitoA escala abaixo no serializvel por conflito, mas produz o mesmo resultado que uma escala sequencial. Confira.Thiago mendes banco de dados ii - favenorte

Teste de Serializao de ConflitoSeja S uma escala. Para saber se ela serializvel em relao s operaes conflitantes necessrio criar um grafo de precedncia para S.G = (V,E) em que V um conjunto de vrtices e E um conjunto de arestas.O conjunto de vrtices composto por todas as transaes que participam da escala.O conjunto de arestas consiste em todas as arestas Ti -> Tj para as quais uma das seguintes condies verdadeira:Ti executa write(Q) antes de Tj executar read(Q);Ti executa read(Q) antes de Tj executar write(Q);Ti executa write(Q) antes de Tj executar write(Q);Thiago mendes banco de dados ii - favenorteTeste de Serializao de ConflitoA escala serializvel em conflito se no houver um ciclo com os arcos do grafoThiago mendes banco de dados ii - favenorte

Teste de Serializao de ConflitoCiclo no grafo: Se o grafo de precedncia possui ciclo, ento a escala S no serializvel por conflito.Thiago mendes banco de dados ii - favenorte

Serializao de VisoTrata-se de uma forma de equivalncia menos restritiva que a equivalncia de conflito.

Considere duas escalas de execuo S e S, com o mesmo conjunto de transaes participando de ambas. As escalas S e S so ditas equivalentes por viso se as trs condies seguintes forem satisfeitas:Se na escala S a transao Ti l o valor inicial de um dado, o mesmo deve ocorrer na escala SSe na escala S a transao Ti l o valor de um dado escrito por Tj, o mesmo deve ocorrer em SSe na escala S a transao Ti escreve o valor final de Q, o mesmo deve ocorrer em SThiago mendes banco de dados ii - favenorteSerializao de VisoThiago mendes banco de dados ii - favenorte

Serializao de VisoO conceito de equivalncia por viso leva ao conceito de serializao por viso.Uma escala serializvel por viso se ela for equivalente em viso a uma escala de execuo sequencial.

Thiago mendes banco de dados ii - favenorte

equivalente em viso escalasequencial j queuma instruo read(Q) l o valorinicial de Q em ambas as escalase T3 executa a escrita final de Qem ambas as escalas.Continua....Thiago mendes banco de dados ii - favenorteReferncias bibliogrficasSistemas de Banco de Dados. (Cap. 13) Abraham Silberchatz, Henry F. Korth e S. Sudarshan. 3 Edio. Makron Books, 1999.Thiago mendes banco de dados ii - favenorte