Você está na página 1de 10

11/04/12

Banco De Dados Ii

SISTEMA DE ENSINO PRESENCIAL CONECTADO SUPERIOR DE TECNOLOGIA EM ANLISE E DESENVOLVIMENTO DE SISTEMAS AILTON GOMES LOPES TRABALHO DE BANCO DE DADOS II AILTON GOMES LOPES Feira de Santana 2010 AILTON GOMES LOPES TRABALHO DE BANCO DE DADOS II Trabalho apresentado ao Curso Superior de Tecnologia em Anlise e desenvolvimento de Sistemas da UNOPAR - Universidade Norte do Paran, para a disciplina banco de Dados II. Prof. Roberto Yukio Nishimura Feira de Santana 2010 Produo Textual MODELO RELACIONAL NORMALIZADO MRN Normalizao de dados o processo formal passo a passo que examina os atributos de uma entidade, com o objetivo de evitar anomalias observadas na incluso, excluso e alterao de registros. Uma regra de ouro que devemos observar quando do projeto de um Banco de Dados baseado no Modelo Relacional de Dados a de "no misturar assuntos em uma mesma Tabela". Por exemplo: na Tabela Clientes devemos colocar somente campos relacionados com o assunto Clientes. No devemos misturar campos relacionados com outros assuntos, tais como Pedidos, Produtos, etc. Essa "Mistura de Assuntos" em uma mesma tabela acaba por gerar repetio desnecessria dos dados bem como inconsistncia dos dados. Normalmente aps a aplicao das regras de normalizao de dados, algumas tabelas acabam sendo divididas em duas ou mais tabelas, o que no final gera um nmero maior de tabelas do que o originalmente existente. Este processo causa a simplificao dos atributos de uma tabela, colaborando significativamente para a estabilidade do modelo de dados, reduzindo-se consideravelmente as necessidades de manuteno. As formas normais O Processo de normalizao aplica uma srie de regras sobre as tabelas de um banco de dados, para verificar se estas esto corretamente projetadas. Embora existam cinco formas normais (ou regras de normalizao). Cabe resaltar que na prtica, as Formas 1FN, 2FN e 3FN so as mais utilizadas Vejamos as trs primeiras formas normais do processo de normalizao de dados. * Primeira Forma Normal (1FN) * Segunda Forma Normal (2FN) * Terceira Forma Normal (3FN) * Forma Normal Boyce Codd * Quarta Forma Normal (4FN) * Quinta Forma Normal (5FN)
www.trabalhosfeitos.com/imprimir/Banco-De-Dados-Ii/23860 1/10

11/04/12

Banco De Dados Ii

Apesar de existir outras formas normais como a quarta forma normal e quinta forma normal, apenas as trs primeiras tem sido consideradas atualmente. As formas normais so importantes instrumentos para resolver antecipadamente problemas na estrutura do banco de dados. Para aplicar a normalizao de dados necessrio considerar a sequncia das formas normais, isto , para aplicar a segunda forma normal por exemplo, necessrio que seja aplicado a primeira forma normal. Da mesma forma, para aplicar a terceira forma normal necessrio que j tenha sido feita a normalizao na segunda forma normal. Primeira Forma Normal 1FN - Normalizao de dados Uma relao estar na Primeira forma normal 1FN, se e somente se todos os domnios bsicos contiverem somente valores atmicos (no contiver grupos repetitivos). Em outras palavras podemos definir que a primeira forma normal no admite repeties ou campos que tenha mais que um valor. Procedimentos: * a) Identificar a chave primria da entidade; * b) Identificar o grupo repetitivo e remov-lo da entidade; * c) Criar uma nova entidade com a chave primria da entidade anterior e o grupo repetitivo. A chave primria da nova entidade ser obtida pela concatenao da chave primria da entidade inicial e a do grupo repetitivo. Exemplo de normalizao de dados. Primeira forma normal Considere a tabela cliente abaixo: Cliente Cdigo_cliente Nome * Telefone Endereo Agora a tabela com os dados: Tabela desnormalizada, ou seja, no est na 1 forma normal Analisando teremos: Todos os clientes possuem Rua, CEP e Bairro, e essas informaes esto na mesma clula da tabela, logo ela no est na primeira forma normal. Para normalizar, deveremos colocar cada informao em uma coluna diferente, como no exemplo a seguir: Tabela ainda no est na primeira forma normal Mesmo com o ajuste acima, a tabela ainda no est na primeira forma normal, pois h clientes com mais de um telefone e os valores esto em uma mesma clula. Para normalizar ser necessrio criar uma nova tabela para armazenar os nmeros dos telefones e o campo-chave da tabela cliente. Veja o resultado a seguir: Tabela na 1 forma normal No exemplo acima foi gerado uma segunda entidade para que a primeira forma normal fosse satisfeita, contudo possvel manter a tabela original, admitindo-se valores duplos em uma mesma coluna, como exemplo o campo telefone ficaria assim: 11-3400-3563 begin_of_the_skype_highlighting 11-3400356 end_of_the_skype_highlighting e 19-3500-9650 begin_of_the_skype_highlighting 19-35009650end_of_the_skype_highlighting.
www.trabalhosfeitos.com/imprimir/Banco-De-Dados-Ii/23860 2/10

11/04/12

Banco De Dados Ii

Segunda Forma Normal 2FN - Normalizao de dados Uma tabela est na Segunda Forma Normal 2FN se ela estiver na 1FN e todos os atributos no chave forem totalmente dependentes da chave primria (dependente de toda a chave e no apenas de parte dela). Se o nome do produto j existe na tabela produtos, ento no necessrio que ele exista na tabela de produtos. A segunda forma normal trata destas anomalias e evita que valores fiquem em redundcia no banco de dados. Procedimentos: * a) Identificar os atributos que no so funcionalmente dependentes de toda a chave primria; * b) Remover da entidade todos esses atributos identificados e criar uma nova entidade com eles. A chave primria da nova entidade ser o atributo do qual os atributos do qual os atributos removidos so funcionalmente dependentes. Exemplo de segunda forma normal Considere a tabela vendas abaixo: Vendas N_pedido Cdigo_produto Produto Quant Valor_unit Subtotal Agora a tabela com os dados: Tabela no est na segunda forma normal Analisando teremos: O nome do produto depende do cdigo do produto, porm no depende de N_pedido que a chave primria da tabela, portanto no est na segunda forma normal. Isto gera problemas com a manuteno dos dados, pois se houver alterao no nome do produto teremos que alterar em todos os registros da tabela venda. Para normalizar esta tabela teremos de criar a tabela Produto que ficar com os atributos Cdigo_produto e produto e na tabela Venda manteremos somente os atributos N_pedido, cdigo_produto, quant, valor_unit e subtotal. Veja o resultado abaixo: Tabela na segunda forma normal Tabela na 2 forma normal

Conforme visto na primeira forma normal, quando aplicamos normalizao comum gerar novas tabelas a fim de satisfazer as formas normais que esto sendo aplicadas. | *| Terceira Forma Normal 3FN - Normalizao de dados Uma tabela est na Terceira Forma Normal 3FN se ela estiver na 2FN e se nenhuma coluna no-chave depender de outra coluna no-chave. Na terceira forma normal temos de eliminar aqueles campos que podem ser obtidos pela equao de outros campos da mesma tabela. Procedimentos: * a) Identificar todos os atributos que so funcionalmente dependentes de outros atributos no chave;
www.trabalhosfeitos.com/imprimir/Banco-De-Dados-Ii/23860 3/10

11/04/12

Banco De Dados Ii

* b) Remov-los. A chave primria da nova entidade ser o atributo do qual os atributos removidos so funcionalmente dependentes. Exemplo de normalizao na terceira forma normal Considere a tabela abaixo: Tabela no est na terceira forma normal Considerando ainda a nossa tabela Venda, veremos que a mesma no est na terceira forma normal, pois o subtotal o resultado da multiplicao Quant X Valor_unit, desta forma a coluna subtotal depende de outras colunas no-chave. Para normalizar esta tabela na terceira forma normal teremos de eliminar a coluna subtotal, como no exemplo a seguir: Tabela na terceira forma normal Conforme visto acima: primeira forma normal e segunda forma normal, a normalizao torna a tabela mais otimizada e sem anomalias.

Forma Normal Boyce Codd (FNBC) A forma normal Boyce Codd tem a finalidade de tratara situaes nas quais a chave primria composta foi escolhida, mas pode apresentar uma falha que venha permitir duplicidade de registros essenciais para a tabela. A soluo rever a escolha destas chaves primrias. Conceitualmente afirma-se que na fase da escolha das chaves das chaves candidatas, uma anlise completa no foi bem sucedida. Exemplo: Produto | Descrio | Fabricante | Peso | Embalagem | Linha 1 | Suco | Bahia Frut | 200 g | Vidro | Linha 2 | Suco | Bahia Frut | 500g | Longa Vida | Linha 3 | Suco | Bahia Frut | 900 g | Longa Vida | Linha 4 | Suco | Bahia Frut | 500 g | Pet | Linha 5 | Suco | Bahia Frut | 900 g | Pet | A chave candidata seria: DESCRIO + FABRICANTE + PESO ou DESCRIO + FABRICANTE + EMBALAGEM. Como nenhuma das combinaes daria certo; cria-se um cdigo do produto. Supondo-se que a criao desse cdigo no seja possvel por algum motivo, a melhor sada seria rever a chave primria. DESCRIO + FABRICANTE + PESO + EMBALAGEM Em resumo, a forma Boyce Codd necessria apenas quando a chave primria escolhida apresenta problemas de redundncia, mesmo sendo composta Quarta Forma Normal 3FN A quarta forma normal lida com casos onde uma chave composta pode ser desmembrada em chaves menores, desde que no haja dependncia entre todos os componentes da chave. De acordo com a quarta forma normal, um registro que tenha dois ou mais fatos multivalorados,
www.trabalhosfeitos.com/imprimir/Banco-De-Dados-Ii/23860 4/10

11/04/12

Banco De Dados Ii

independentes, pode ser desmembrado em registros menores, minimizando redundncias e anomalias de atualizao. Por exemplo, considerando o caso de empregados, suas habilidades e idiomas praticados, em que temos dois relacionamentos do tipo muitos para muitos (empregados-habilidades e empregados-idiomas) e temos tambm a independncia dos atributos habilidades e idiomas, pela quarta forma normal o depsito dedados contendo chave composta por 3 atributos, poderia ser desmembrado em 2 registros. Dessa forma um dos registros teria a chave empregado-habilidade e o outro teria a chave empregadoidioma.

Quinta Forma Normal 3FN A quinta forma normal trata casos em que uma informao pode ser recomposta a partir de quantidades menores de informao, minimizando redundncias. As outras formas normais tambm servem a esse propsito, mas a quinta forma normal abrange os casos que as outras no atendem. De acordo com a quinta forma normal, um registro que tenha dois ou mais fatos multivalorados, apesar de dependentes, pode ser desmembrado em registros menores, desde que permitam reconstruir a informao original. Por exemplo, considerando o caso de vendedores, fabricantes de veculos e tipos de veiculo, em que temos 3 relacionamentos do tipo muitos para muitos (vendedores-fabricantes, fabricantes-tipos, e vendedorestipos) e temos tambm dependncia entre os atributos, pela quinta forma normal o depsito de dados contendo chave composta por 3 atributos, poderia ser desmembrado em 3 registros. Dessa forma um dos registros teria a chave vendedor-fabricante, outro registro teria a chave fabricante-tipo de veiculo e o outro teria a chave vendedor-tipo de veiculo. Porm, cabe ressaltar que a reconstruo da informao original s poder ocorrer com a consulta aos 3 registros resultantes do desmembramento. A partir dos 2 primeiros registros sabemos que um determinado vendedor representa um fabricante e que um fabricante produz um tipo de veiculo, mas s saberemos se o vendedor vende um tipo de veiculo acessando o ultimo registro. PADRO SQL Structured Query Language, ou Linguagem de Consulta Estruturada ou SQL, uma linguagem de pesquisa declarativa para banco de dados relacional (base de dados relacional). Muitas das caractersticas originais do SQL foram inspiradas na lgebra relacional. O SQL foi desenvolvido originalmente no incio dos anos 70 nos laboratrios da IBM em San Jose, dentro do projeto System R, que tinha por objetivo demonstrar a viabilidade da implementao do modelo relacional proposto por E. F. Codd. O nome original da linguagem era SEQUEL, acrnimo para "Structured English Query Language" (Linguagem de Consulta Estruturada em Ingls), vindo da o fato de, at hoje, a sigla, em ingls, ser comumente pronunciada "squel" ao invs de "s-ki-l", letra a letra. No entanto, em portugus, a pronncia mais corrente a letra a letra: "se-qu-le". A linguagem SQL um grande padro de banco de dados. Isto decorre da sua simplicidade e facilidade de uso. Ela se diferencia de outras linguagens de consulta a banco de dados no sentido em que uma consulta SQL especifica a forma do resultado e no o caminho para chegar a ele. Ela uma linguagem declarativa em oposio a outras linguagens procedurais. Isto reduz o ciclo de aprendizado daqueles que se iniciam na
www.trabalhosfeitos.com/imprimir/Banco-De-Dados-Ii/23860 5/10

11/04/12

Banco De Dados Ii

linguagem. Embora o SQL tenha sido originalmente criado pela IBM, rapidamente surgiram vrios "dialectos" desenvolvidos por outros produtores. Essa expanso levou necessidade de ser criado e adaptado um padro para a linguagem. Esta tarefa foi realizada pela American National Standards Institute (ANSI) em 1986 e ISO em 1987. O SQL foi revisto em 1992 e a esta verso foi dado o nome de SQL-92. Foi revisto novamente em 1999 e 2003 para se tornar SQL:1999 (SQL3) e SQL:2003, respectivamente. O SQL:1999 usa expresses regulares de emparelhamento, queries recursivas e gatilhos (triggers). Tambm foi feita uma adio controversa de tipos no-escalados e algumas caractersticas de orientao a objeto. O SQL:2003 introduz caractersticas relacionadas ao XML, seqncias padronizadas e colunas com valores de auto-generalizao (inclusive colunas-identidade). Tal como dito anteriormente, o SQL, embora padronizado pela ANSI e ISO, possui muitas variaes e extenses produzidos pelos diferentes fabricantes de sistemas gerenciadores de bases de dados. Tipicamente a linguagem pode ser migrada de plataforma para plataforma sem mudanas estruturais principais. Outra aproximao permitir para cdigo de idioma procedural ser embutido e interagir com o banco de dados. Por exemplo, o Oracle e outros incluem Java na base de dados, enquanto o PostgreSQL permite que funes sejam escritas em Perl, Tcl, ou C, entre outras linguagens. DDL - Linguagem de Definio de Dados O segundo grupo a DDL (Data Definition Language - Linguagem de Definio de Dados). Uma DDL permite ao utilizador definir tabelas novas e elementos associados. A maioria dos bancos de dados de SQL comerciais tem extenses proprietrias no DDL. Os comandos bsicos da DDL so poucos * CREATE cria um objeto (uma Tabela, por exemplo) dentro da base de dados. * DROP apaga um objeto do banco de dados. Alguns sistemas de banco de dados usam o comando ALTER, que permite ao usurio alterar um objeto, por exemplo, adicionando uma coluna a uma tabela existente. outros comandos DDL: * ALTER TABLE * CREATE INDEX * ALTER INDEX * DROP INDEX * CREATE VIEW * DROP VIEW DML - Linguagem de Manipulao de Dados Primeiro h os elementos da DML (Data Manipulation Language - Linguagem de Manipulao de Dados). A DML um subconjunto da linguagem usada para inserir, atualizar e apagar dados. * INSERT usada para inserir um registro (formalmente uma tupla) a uma tabela existente. * UPDATE para mudar os valores de dados em uma ou mais linhas da tabela existente. * DELETE permite remover linhas existentes de uma tabela. DTL - Linguagem de Transao de Dados * BEGIN WORK (ou START TRANSACTION, dependendo do dialeto SQL) pode ser usado para marcar o comeo de uma transao de banco de dados que pode ser completada ou no. * COMMIT envia todos os dados das mudanas permanentemente. * ROLLBACK faz com que as mudanas nos dados existentes desde que o ltimo COMMIT ou ROLLBACK sejam descartadas. COMMIT e ROLLBACK interagem com reas de controle como transao e locao. Ambos terminam qualquer transao aberta e liberam qualquer cadeado ligado a dados. Na ausncia de um BEGIN WORK ou uma declarao semelhante, a semntica de SQL dependente da implementao.
www.trabalhosfeitos.com/imprimir/Banco-De-Dados-Ii/23860 6/10

11/04/12

Banco De Dados Ii

DQL - Linguagem de Consulta de Dados Embora tenha apenas um comando, a DQL a parte da SQL mais utilizada. O comando SELECT permite ao usurio especificar uma consulta ("query") como uma descrio do resultado desejado. Esse comando composto de vrias clusulas e opes, possibilitando elaborar consultas das mais simples s mais elaboradas. Comandos SQL Esta parte contm informaes de referncia para os comandos SQL suportados pelo PostgreSQL. Por "SQL" entenda-se a linguagem SQL de modo geral; informaes sobre a conformidade e a compatibilidade de cada comando com relao ao padro podem ser encontradas nas respectivas pginas de referncia. Table of Contents ABORT -- aborta a transao corrente ALTER GROUP -- inclui ou exclui usurios em um grupo ALTER TABLE -- altera a definio da tabela ALTER USER -- altera a conta de um usurio do banco de dados ANALYZE -- coleta estatsticas sobre um banco de dados BEGIN -- inicia um bloco de transao CHECKPOINT -- fora um ponto de controle no log de transao CLOSE -- fecha o cursor CLUSTER -- agrupa uma tabela de acordo com um ndice COMMENT -- cria ou altera o comentrio de um objeto COMMIT -- efetiva a transao corrente COPY -- copia dados entre arquivos e tabelas CREATE AGGREGATE -- define uma nova funo de agregao CREATE CONSTRAINT TRIGGER -- define um novo gatilho de restrio CREATE DATABASE -- cria um banco de dados novo CREATE FUNCTION -- define uma nova funo CREATE GROUP -- define um novo grupo de usurios CREATE INDEX -- define um ndice novo CREATE LANGUAGE -- define uma nova linguagem procedural CREATE OPERATOR -- define um novo operador CREATE RULE -- define uma nova regra CREATE SEQUENCE -- define um novo gerador de seqncia CREATE TABLE -- define uma nova tabela CREATE TABLE AS -- cria uma nova tabela a partir do resultado de uma consulta CREATE TRIGGER -- define um novo gatilho CREATE TYPE -- define um novo tipo de dado CREATE USER -- define uma nova conta de usurio do banco de dados CREATE VIEW -- define uma nova viso DECLARE -- define um cursor DELETE -- exclui linhas de uma tabela DROP AGGREGATE -- remove uma funo de agregao definida pelo usurio DROP DATABASE -- remove um banco de dados DROP FUNCTION -- remove uma funo definida pelo usurio DROP GROUP -- remove um grupo de usurios DROP INDEX -- remove um ndice DROP LANGUAGE -- remove uma linguagem procedural definida pelo usurio DROP OPERATOR -- remove um operador definido pelo usurio DROP RULE -- remove uma regra DROP SEQUENCE -- remove uma seqncia
www.trabalhosfeitos.com/imprimir/Banco-De-Dados-Ii/23860 7/10

11/04/12

Banco De Dados Ii

DROP TABLE -- remove uma tabela DROP TRIGGER -- remove um gatilho DROP TYPE -- remove um tipo de dado definido pelo usurio DROP USER -- remove uma conta de usurio do banco de dados DROP VIEW -- remove uma viso END -- efetiva a transao corrente EXPLAIN -- mostra o plano de execuo de uma instruo FETCH -- busca linhas de uma tabela usando um cursor GRANT -- define privilgios de acesso INSERT -- cria novas linhas na tabela LISTEN -- escuta uma notificao LOAD -- carrega ou recarrega um arquivo de biblioteca compartilhada LOCK -- bloqueia explicitamente uma tabela MOVE -- posiciona o cursor em uma determinada linha da tabela NOTIFY -- gera uma notificao REINDEX -- reconstri ndices corrompidos RESET -- atribui a um parmetro de tempo de execuo o seu valor padro REVOKE -- revoga privilgios de acesso ROLLBACK -- aborta a transao corrente SELECT -- retorna linhas de uma tabela ou de uma viso SELECT INTO -- cria uma nova tabela a partir do resultado de uma consulta SET -- muda um parmetro de tempo de execuo SET CONSTRAINTS -- especifica o modo de restrio da transao corrente SET SESSION AUTHORIZATION -- define o identificador do usurio da sesso e o identificador do usurio corrente, da sesso corrente. SET TRANSACTION -- define as caractersticas da transao corrente SHOW -- mostra o valor de um parmetro de tempo de execuo TRUNCATE -- esvazia a tabela UNLISTEN -- pra de escutar uma notificao UPDATE -- atualiza linhas de uma tabela VACUUM -- limpa e opcionalmente analisa o banco de dados PROCESSAMENTO DE TRANSAES A interao de cada usurio com um sistema de informaes de negcios envolve uma ou mais transaes. Cada transao um conjunto de operaes que deve ser executado como uma unidade (embora cada operao possa ser executada em um processamento diferente). O processamento de transao suportado por monitores de transao que fornecem uma forma de desenvolverem, executarem e administrarem aplicaes de processamento de transao. Todas as transaes garantem a integridade e consistncia de sistemas de informaes de negcios, fornecendo atomicidade, consistncia, isolamento e durabilidade de trabalho, conhecido como ACID. Atomicidade As operaes relacionadas so agrupadas em unidades discretas. Todas as operaes em uma unidade so concludas com xito (elas consolidam suas alteraes) ou nenhuma concluda (elas retornam suas alteraes). Consistncia Uma transao move dados entre estados consistentes e opera de uma forma repetida. Os dados utilizados por uma transao so alterados de forma que o usurio espera e deixado em um estado que outras podem utilizar. Se uma transao for repetida , ela sempre executar a mesma lgica.
www.trabalhosfeitos.com/imprimir/Banco-De-Dados-Ii/23860 8/10

11/04/12

Banco De Dados Ii

Isolamento Ainda que as transaes possam ser executadas simultaneamente, nenhuma transao pode interferir no trabalho da outra em andamento. As transaes aparecem para serem executadas em srie. Durabilidade Quando uma unidade de trabalho concluda com xito, as alteraes persistem mesmo se uma transao, sistema ou outra falha ocorrer subseqentemente. Uma transao pode abranger uma ou mais LUWs, (em Encina, uma transao uma nica unidade de trabalho). Quando concluda com xito, ela emite um ponto de sincronizao que marca a extremidade da LUW. Isso consolida quaisquer alteraes de dados feitas na LUW e libera os dados para utilizao por outras transaes. Se uma tarefa falhar, feito cpia de segurana automaticamente de quaisquer alteraes no-consolidadas. Isso restaura recursos recuperveis para o estado consistente em que eles estavam no incio da LUW interrompida (ou, seja, no ponto de sincronizao mais recente ou no incio da tarefa). Esse processo de inverso, chamado restaurao de transao dinmica, ocorre dentro da mesma tarefa para salvaguardar outras tarefas de qualquer oportunidade de utilizar com erros. CONTROLE DE CONCORRNCIA Controle de concorrncia no nada mais que controlar duas ou mais pessoas acessando a mesma informao ao mesmo tempo. Para efetuar este controle so utilizados comandos e funes especficas de cada banco de dados e cada qual tem um funcionamento prprio. Desta forma, o processo executado no servidor de banco de dados e um bloqueio real do registro. Uma vez bloqueado este registro no pode mais ser alterado ou visualizado por nenhum outro processo. Este funcionamento prprio da base de dados e no existe como impedir. O que pode ser feito a reduo do tempo de durao do mesmo. O bloqueio notado quando na rede quando outros computadores simplesmente param de responder, emitindo mensagens ou no, ficando esttico. Esta parada no uma parada proposital. Qualquer outra aplicao, ou at mesmo uma simples consulta SQL ficar parada sem resposta. Isto se deve ao fato de que durante o processo de gravao, o controle de concorrncia bloqueia o registro. Este procedimento claro, pois se algum est alterando algo, melhor esperar a pessoa acabar de gravar para que as informaes recuperadas sejam as informaes finais ps-atualizao. Este o funcionamento do controle de concorrncia utilizado pelo Banco de Dados. Existem softwares que utilizam modos diferentes para controlar as concorrncias: Conversacional e PseudoConversacional Tipo de Bloqueio: Conversacional Mensagem: Record in use by another - O registro esta sendo utilizado. Quando uma transao, por exemplo, entra em modo de atualizao (Logo aps sair do Atributo Chave na transao), existe o bloqueio da informao para que ningum altere. Uma vez o registro bloqueado, ningum mais pode alterar estas informaes. Este o tipo de bloqueio Conversacional utilizado pelo software. Ao iniciar uma alterao, os dados so bloqueados e ningum mais pode acessar. Numa situao na qual um usurio que entra em uma transao e inicia uma alterao e por exemplo, vai almoar sem sair do modo de update. Todos os processos que dependem desta informao sero bloqueados, nenhuma mensagem ser exibida e tudo ficar parado esperando que o usurio saia do modo de update. Para evitar que situaes como o exemplo acima possa acontecer e o sistema continuar paralizado, esperando por tempo indeterminado, que existe o Tempo de Vida de Bloqueio, o qual retorna ao estado inicial aps decorrido um determinado tempo de espera, com a transao confirmada ou no.
www.trabalhosfeitos.com/imprimir/Banco-De-Dados-Ii/23860 9/10

11/04/12

Banco De Dados Ii

Mensagem de erro ao acessar duas transaes simultaneamente: Record in use by another - O registro esta sendo utilizado Tipo de Bloqueio: Pseudo-Conversacional Mensagem: <Tabela> was changed. - <Tabela> foi modificada. Para evitar o problema da concorrncia Conversacional, onde simplesmente pelo fato de entrar em modo Update o registro bloqueado, permanecendo neste estado at a confirmao ou cancelamento do modo parando assim toda a aplicao, foi criado o tipo de concorrncia pseudo-conversacional. Neste controle no existe o bloqueio aps a sada do(s) atributo(s) chave(s). O bloqueio feito somente aps a confirmao da gravao dos dados (antes da regra After(Confirm) ou On AfterValidate) e sua durao muito curta, ficando bloqueado o registro somente durante o tempo de gravao efetiva. Seguindo este raciocnio, fica claro que como o registro no est bloqueado, outra pessoa pode alterar as informaes do registro ao mesmo tempo, pois este no se encontra bloqueado. Para evitar que ocorra perda de dados, o software l os dados no momento em que voc entra em modo update na transao e compara estes com os dados que esto gravados na base de dados antes da gravao efetiva dos dados. Se estes estiverem alterados, uma mensagem ser exibida: <Tabela> was changed. <Tabela> foi modificada.

Citaes e Referncias: NISHIMURA, Roberto Yukio. Banco de Dados II. Edio 2009. So Paulo http://www.luis.blog.br/normalizacao-de-dados-e-as-formas-normais.aspx http://wiki.gxtechnical.com/commwiki/servlet/hwiki?Controle+de+concorrencia http://pt.wikipedia.org/wiki/SQL Pesquisas realizadas nas datas: 22/03 a 04/04/2010.

www.trabalhosfeitos.com/imprimir/Banco-De-Dados-Ii/23860

10/10

Você também pode gostar