Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
SQL - DML
Inserindo Dados: INSERT - Sintaxe: Insert into nome_tabela [( campo, ... , campo ) ] values ( valor1, ... , valorN ); Insert into nome_tabela [ ( campo, ... , campo ) ] Select ... From ... Where ... ;
SQL - DML
Inserindo uma nova pea 1. Insert into Peca (id, Cidade, Peso) Values ('P7, 'RJ', 24); 2. Insert into Peca Values ('P8', 'tecla', 'branca', 300, 'SP'); Inserindo um conjunto de peas Insert into Peca_sp (id, nome) Select id, nome From Peca Where cidade = 'SP';
SQL - DML
DELETE - Sintaxe: Delete From nome_tabela [ Where predicado ] ; Exemplos: Excluindo uma pea Delete from fornecedor Where id = S1; Excluindo um conjunto de peas 1. Delete from Peca; 2. Delete From fornecimento Where id_forn IN ( Select id From fornecedor) ;
SQL - DML
UPDATE - Sintaxe: Update nome_tabela Set campo1 = valor ..., [ campoN = valor ] [ Where predicado ] ; Exemplos:
1. Update Peca Set cor = 'preta', Cidade = null Where id = P2; Update fornecedor Set status = status * 2 Where Cidade = 'RJ' ; Update fornecimento Set Qtde = 0 Where id_forn in ( Select id From fornecedor Where cidade = 'RJ' ) ;
2.
3.
Transao
Introduo a processamento de transaes
Uma transao uma unidade da execuo de programa que acessa e possivelmente atualiza vrios itens de dados. Normalmente iniciada por um programa escrito em uma linguagem de manipulao de dados (C, C++, Java, Perl, etc) Delimitada pelas instrues BEGIN TRANSACTION e COMMIT Consiste de todas as operaes executadas entre o BEGIN e o COMMIT Para garantir a integridade dos dados o SGBD deve manter as propriedades ACID:
Atomicidade Consistncia Isolamento Durabilidade
Prof. Luiz A. Vivacqua C. Meyer Prof. Luiz Vivacqua
Transao
PROPRIEDADES ACID Atomicidade
Ou todas as operaes da transao so refletidas corretamente no banco de dados ou nenhuma delas .
Consistncia
A execuo de uma transao isolada preserva a consistncia do banco de dados.
Isolamento
Embora vrias transaes possam ser executadas simultaneamente, cada transao precisa estar desinformada das outras transaes que esto sendo executadas ao mesmo tempo. Os resultados intermedirios da transao precisam estar ocultos das outras transaes sendo executadas simultaneamente.
Transao
Durabilidade
Depois que uma transao for completada com sucesso, as mudanas que ela fez no banco de dados persistem, mesmo que ocorram falhas no sistema.
Propriedades ACID
Transaes acessam os dados usando duas operaes:
Read(X) transfere o item de dados X do banco de dados (disco) para o buffer da transao (memoria) Write(X) transfere o item de dados X do buffer da transao para o banco de dados OBS: Em muitos SGBS, a operao Write no resulta na atualizao imediata dos dados no disco
Propriedades ACID
Exemplo : Transferncia de fundos de R$50 da conta A para conta B. Saldo inicial de A R$1.000 e de B R$2.000
Ti : (1)Read(A) (2)A:= A 50 (3)Write(A) (4)Read(B) (5)B:= B + 50 (6)Write(B)
Propriedades ACID
Atomicidade
Se a transao falhar aps a etapa 3 e antes da etapa 6, o sistema deve garantir que suas atualizaes no sejam refletidas no banco de dados, ou uma inconsistncia ir resultar.
Consistncia
A soma de A e B inalterada pela execuo da transao. Sem este requisito, o dinheiro poderia ser criado ou destrudo pela transao. Pode existir uma inconsistncia temporria durante a execuo da transao (A=950 e B=2000), porm devido ao requisito de atomicidade este estado nunca ser visvel
Propriedades ACID
Isolamento
Mesmo estando presente os requisitos de atomicidade e consistncia, se vrias transaes estiverem executando simultaneamente suas operaes podem intercalar de alguma maneira indesejvel, resultando em um estado inconsistente. Por exemplo, Se entre as etapas 3 e 6, outra transao receber permisso de acessar o banco de dados parcialmente atualizado, ele ver um banco de dados inconsistente (a soma A + B ser menor do que deveria ser). Isso pode ser assegurado executando transaes serialmente, ou seja, uma aps outra. Entretanto, executar mltiplas transaes simultaneamente oferece vantagens significativas de desempenho. O requisito de isolamento garante que a execuo simultnea de transaes resulte em um estado do sistema equivalente ao estado que poderia ter sido obtido se as transaes fossem executadas uma de cada vez em alguma ordem.
Propriedades ACID
Durabilidade
Quando o usurio notificado de que a transao est concluda (ou seja, a transao dos R$ 50 ocorreu), as atualizaes no banco de dados pela transao precisam persistir apesar de falhas (perda de dados na memria principal). A durabilidade pode ser garantida se:
1. As atualizaes executadas pela transao forem gravadas em disco antes que a transao termine,
Estado da Transao
Ativa O estado inicial; a transao permanece nesse estado enquanto est executando Parcialmente confirmada Depois que a instruo final foi executada. Falha Depois da descoberta de que a execuo normal no pode mais prosseguir Abortada Depois que a transao foi revertida e o banco de dados foi restaurado ao seu estado anterior ao incio da transao. Duas opes aps ter sido abortada:
Reiniciar a transao; pode ser feito apenas se no houver qualquer erro lgico interno Excluir a transao
Estado da Transao
Execues simultneas
Vrias transaes podem ser executadas simultaneamente no sistema. As vantagens so:
Melhor utilizao do processador e do disco, levando a um melhor throughput de transao: uma transao pode estar usando a CPU enquanto outra est lendo ou escrevendo no disco Tempo de mdio de resposta reduzido para transaes: as transaes curtas no precisam esperar atrs das longas
Esquemas de controle de concorrncia mecanismos para obter isolamento; ou seja, para controlar a interao entre as transaes concorrentes a fim de evitar que elas destruam a consistncia do banco de dados
Execues simultneas
Consistncia do banco de dados pode ser destruda apesar da exatido de cada transao individual. Schedule Seqncias de instrues que especificam a ordem cronolgica em que as instrues das transaes simultneas so executadas
Um schedule para um conjunto de transaes precisa consistir em todas as instrues dessas transaes Precisam preservar a ordem em que as instrues aparecem em cada transao individual
Execues simultneas
Schedule 1(serial) T1 executa primeiro que T2 Valores finais: A=R$855 e B=R$2145
Execues simultneas
Schedule 2 (serial) T2 executa primeiro que T1 Valores finais: A=R$850 e B=R$2150
Execues simultneas
Schedule 3 schedule no serial equivalente ao schedule 1 Valores finais: A=R$855 e B=R$2145
Execues simultneas
Schedule 4 schedule no serial Valores finais: A=R$950 e B=R$2100 Estado inconsistente
* Read Commited **
Repeatable Read
* Serializable **
* - Oracle
** PostGreSQL
T
1 2 3 4 5 6 7
MARIA:
BEGIN TRANSACTION ISOLATION LEVEL READ COMMITTED
ROLLBACK TRANSACTION;
Se as transaes no fossem isoladas, Maria teria visto os valores no confirmados inseridos por JOSE. PROBLEMA : Leitura de sujeira O nvel de isolamento READ COMMITED previne este problema.
Prof. Luiz A. Vivacqua C. Meyer Prof. Luiz Vivacqua
T
1 2 3 4 5 6 7
MARIA:
BEGIN TRANSACTION ISOLATION LEVEL READ COMMITTED Select * from t1 where col1=1;
Maria enxerga dois resultados diferentes dentro da mesma transao. PROBLEMA : Leitura no repetvel O nvel de isolamento READ COMMITED NO previne este problema.
T
1 2 3 4 5 6 7
MARIA:
BEGIN TRANSACTION ISOLATION LEVEL READ COMMITTED Select * from t1 where col1=1;
Maria enxerga dois resultados diferentes dentro da mesma transao. No leitura de sujeira pois JOSE fez commit antes da Maria fazer a segunda leitura. PROBLEMA : Leitura Fantasma O nvel de isolamento READ COMMITED NO previne este problema.
Prof. Luiz A. Vivacqua C. Meyer Prof. Luiz Vivacqua