Você está na página 1de 8

Mini apostila de Banco de dados

alguem do bcc 20 de junho de 2011

Sumrio
1 2 3 4 Introduo SGDB Independncia de dados 2 2 2 2

4.1 Entidades e atributos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .


Desenhos ER lgebra relacional: operaes

Tipos entidade, conjuntos de entidade e atributos-chave

5 6 7

2 3

7.1 7.2 7.3 7.4

Normalizao

1a FN . . . . 2a FN . . . . 3a FN . . . . Forma BCNF

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . .

3 3 3 3

8.1 Arquivos vs SGBD . . . . . . . . . . . 8.2 Transaes . . . . . . . . . . . . . . . 8.2.1 Atomicidade . . . . . . . . . . 8.2.2 Consistncia . . . . . . . . . . 8.2.3 Isolamento . . . . . . . . . . . 8.2.4 Durabilidade . . . . . . . . . . 8.3 Escalonamento . . . . . . . . . . . . . 8.4 Seriabilidade . . . . . . . . . . . . . . 8.5 Seriabilidade por conito . . . . . . . . 8.6 Seriabilidade por equivalncia de viso 8.7 rvore de execuo . . . . . . . . . . . 8.8 rvore de otimizao . . . . . . . . . .

SGBD

3 4 4 4 4 4 4 4 6 7 8 8

Banco de Dados em Sistema Distribudos

8 8 8 8

10 BD Federados 11 Multibancos 12 Atomic Commitment Protocol (ACP)

Introduo

O banco de dados uma coleo de dados relacionados. Os dados podem ser gravados e possuem um signicado implcito. O banco de dados:
representa aspectos do mundo real; coleo lgica e e coerente de dados; projetado, construdo e povoado atendendo a uma proposta especca.

SGDB

Sistema Gerenciador do Banco de Dados. O SGDB possui um catlogo chamado metadados que contm informaes sobre a estrutura do Banco de Dados (tipos, formatos, restries etc).

Independncia de dados

Lgica: altera o esquema conceitual sem mudar o esquema externo (programas). Fsica: capacidade de alterar o esquema interno sem mudar o esquema conceitual. Logo o externo tambm no precisa ser modicado.

Tipos entidade, conjuntos de entidade e atributos-chave

4.1 Entidades e atributos

Entidade, algo do mundo real, com uma existncia independente. Os atributos descrevem propriedades particulares dessas entidades. Atributos compostos: tem pelo menos um atributo que pode ser dividido. Atributo simples: no pode ser dividido. Atributos multivalorados: Nmero de valores diferentes para um atributo de uma entidade. Atributos monovalorados: Apenas um valor para um atributo de uma entidade. No possvel mais de um. Atributos armazenados: Aquilo que guardado, se tem no db. Atributos derivados: Obtem-se analisando 2 ou mais atributos ou relacionamentos. Valor null: bvio. Atributos complexos: atributos multivalorados + compostos. Sintaxe: atributo composto entre () e atributo multivalorado entre . Exemplo: EnderecoFone(Fone(CodigoArea,NumeroFone),Endereco(EnderecoRua(Numero,Rua,Apartamento),Cidade,Est Entidade fraca: no possui seus prprios atributos-chave. Possui, em geral, uma chave parcial (como, por exemplo, um atributo composto ou complexo. Entidade forte: possui um atributo-chave. Tipo entidade identicador ou tipo entidade proprietria: entidades relacionadas a uma entidade fraca so identicadas por meio da combinao dos valores de seus atributos Relacionamento identicador: Relacionamento entre a entidade fraca e a entidade proprietria.

Desenhos ER
Retngulo: ENTIDADE FORTE RETNGULO DUPLO: ENTIDADE FRACA LOSANGO: RELACIONAMENTO LOSANGO DUPLO: IDENTIFICADOR DE RELACIONAMENTO ELIPSE: ATRIBUTO ELIPSE COM NOME SUBLINHADO: ATRIBUTO-CHAVE ELIPSE DUPLA: ATRIBUTO MULTIVALORADO MLTIPLACAS ELIPSES: ATRIBUTO COMPOSTO ELIPSE PARCIALMENTE DESENHADA: ATRIBUTO DERIVADO LINHA DUPLA: PARTICIPACAO TOTAL LINHA SIMPLES: PARTICIPACAO PARCIAL 1:N,N:1,N:N,M:N: RAZO DE CARDINALIDADE 2

(MIN,MAX): RESTRICAO ESTRUTURAL DA PARTICIPAO DE UMA ENTIDADE EM UM RELACIONAMENTO

lgebra relacional: operaes

Seleo: selec(condicoes)(tabela) Projeo: proj(o que se quer)(tabela) RENAME: novatabelatemp<-(algebra relacional) JOIN (><): join(condicoes)(tabela), comparando portanto chaves estrangeiras. JOIN nada mais que um produto cartesiano seguido por uma seleo. DIVISO: Todos os valores do divisor que no aparecerem em TODAS as tuplas no sero selecionados. outras operaes: unio (U), interseo (U invertido), subtrao (-).

Normalizao
Minimizao de redundncia e anomalias de insero, removao e atualizao. Leitura recomendada: http://pt.wikipedia.org/wiki/Normaliza

7.1 1a FN
O domnio deve conter apenas atributos atmicos (logo nada de atributos complexos, multivalorados ou compostos).

7.2 2a FN
baseada no conceito de dependncia funcional total. Para estar na 2NF uma tabela deve (1) estar na 1NF e (2) todos os seus atributos que no faam parte de alguma chave candidata devem ser determinados unicamente por qualquer chave candidata da tabela. Se no depende das outras chaves candidatas, o atributo deve ser extrado para outra tabela.

7.3 3a FN
baseada no conceito de dependncia transitiva. A terceira forma normal (3NF) exige que a tabela esteja em 2NF e que todos os atributos que no so chave sejam mutuamente independentes, isto , que no existam funes que denam um ao outro. Portanto, sempre a chave por inteiro deve denir toda a tabela. Havendo um atributo que dependa de outro atributo no candidato, extrai-se o atributo para uma nova tabela relacionando-o com o atributo a que ele depende. Observao importante: Muitas pessoas confundem a 2NF com a 3NF. Entretanto, a 2NF probe que determinados atributos dependam de parte de uma chave composta, enquanto que a 3NF probe que determinados atributos dependam de atributos no-chave.

7.4 Forma BCNF


Na prtica, uma tabela est em BCNF se estiver em 3NF e no existir dependncia funcional dentro da chave primria. Ou seja, se todos os atributos so funcionalmente dependentes da chave, de toda a chave e nada mais do que a chave. Ou, em outras palavras, todos os determinantes so chaves candidatas. Um modelo que est em BCNF est pronto para ser implementado numa arquitetura de banco de dados relacional.

SGBD
Software responsvel por auxiliar na manuteno de vrios conjuntos de dados.

8.1 Arquivos vs SGBD


Vantangens do SGBD:
Independncia de dados; Acesso eciente (ndices, vises); Integridade e segurana;

Administrao dos dados; Acesso concorrente; Recuperao de falhas.

Desvantagens do SGBD:
Sistemas especializados; Dados no suportados ou de representao limitada (busca textual, multimedia); Sistemas que no necessitam de acesso concorrente, recuperao de falhas e ou consultas complexas.

8.2 Transaes
Um SGBD deve gerenciar completamente a integridade referencial denida em seu esquema, sem precisar em tempo algum, do auxlio do programa aplicativo. Desta forma exige-se que o banco de dados tenha ao menos uma instruo que permita a gravao de uma srie modicaes simultneas e uma instruo capaz de cancelar um srie modicaes. Por exemplo, imaginemos que estejamos cadastrando um pedido para um cliente, que este deseje reservar 5 itens de nosso estoque, que esto disponveis e portanto so reservados, porm existe um bloqueio nanceiro (duplicatas em atraso) que impede a venda. A transao dever ser desfeita com apenas uma instruo ao Banco de Dados, sem qualquer modicaes suplementares nos dados. Conhea o ACID (propriedades das transaes) abaixo.
8.2.1 Atomicidade

Ou todas as operaes da transao so reetidas corretamente no banco de dados ou nenhuma o ser.


8.2.2 Consistncia

A execuo de uma transao isolada (ou seja, sem a execuo concorrente de outra transao) preserva a consistncia do banco de dados. Se o banco de dados est consistente antes de uma execuo de transao, o banco de dados permanece consistente aps a execuo da transao.
8.2.3 Isolamento

Embora diversas transaes possam ser executadas de forma concorrente, o sistema garante que, para todo par de transaes Ti e Tj, Ti tem a sensao de que Tj terminou sua execuo antes de Ti comear, ou vice-versa. Cada transao no toma conhecimento de outras transaes concorrentes a ela no sistema.
8.2.4 Durabilidade

Depois da transao completar-se com sucesso, as mudanas que ela faz no banco de dados persistem, at mesmo se houver falhas no sistema.

8.3 Escalonamento
Um escalonamento uma lista de aes de um conjunto de transaes. Representa uma seqncia de execuo que deve conservar a mesma ordem de execuo das aes das transaes presentes nele.

8.4 Seriabilidade
Um escalonamento serivel se for equivalente a algum escalonamento serial. Dado E, podem existir mais de um e escalonamentos seriais equivalentes. Escalonamentos no seriveis devem ser proibidos pelo Escalonador. Veja duas transaes:

Figura 1: Serial

Figura 2: Serial

Figura 3: Escala inconsistente

Figura 4: resumo

8.5 Seriabilidade por conito

Figura 5: Seriabilidade por conito

Figura 6: Seriabilidade por conito

8.6 Seriabilidade por equivalncia de viso


Escalas serializveis por conito so sempre serializveis em viso, mas no o contrrio. dito equivalente por viso se: (legenda: S1 e S2 so escalas de execuo de T1 e T2, que so transaes) 1. Para cada tem dado Q, se a transao T1 zer uma leitura inicial de Q na escala S1, ento a transao T1 tambm deve, na escala S2, ler o valor inicial de Q; 2. Para cada tem de dado Q, se a transao T1 executar um read(Q) na escola S1, e aquele valor foi produzido por meio da transao T2 (se houver), ento a transao T1 tambm dever na escala S2 ler o valor de Q que foi produzido por meio da transao T2; 3. Para cada item de dados Q, a transao que executa a operao nal write(Q) na escola S1 tem de executar write(Q) nal na escala S2. As condies 1 e 2 garantem que as transaes leiam os mesmos valores em ambas as escalas. A condio 3, em conjunto com a 1 e 2, garantem que ambas as escalas de execuo resultem no mesmo estado nal do sistema. Exemplo de escala de viso seriealizada:

Figura 7: Seriabilidade por viso

8.7 rvore de execuo 8.8 rvore de otimizao


9 Banco de Dados em Sistema Distribudos
Homogneo: todos os stios usaro o mesmo modelo; Dicionrio global (restrio): armazena a descrio do banco; Mesmo SGBD; nico projeto; Fragmentao vertical: indicada quando as vrias unidades realizam basicamente as mesmas atividades

em uma base de clientes particionados entre as unidades.; uma base de clientes comum a todas as unidades.

Fragmentao horizontal: recomendado quando h grande heterogeneidade de atividades realizadas em Fragmentao com rplica (vert/hori): usa mais espao, tem que manter consistncia (sincronia), d mais

disponibilidade, mas menor desempenho em banco de dados essencialmente transacionais.

Fragmentao sem rplica (vert/hori): mais espao, mais sincronia, menor disponibilidade.

10

BD Federados

Mltiplos bancos com a unio do sistema de consulta.


Heterogneo Dicionrio global (aps integrao) nico projeto de integrao

11

Multibancos

Mltiplos bancos com todas as transaes disponveis. um banco federado com commit de duas fases.
Projetos distintos integrados em um nico projeto Transaes com sincronia

12

Atomic Commitment Protocol (ACP)

Regras:
AC1: Todos os ns devem chegar a mesma deciso; AC2: Aps tomar uma deciso um n no pode reverte-la; AC3: Um commit s pode ser aceito se todos chegarem a deciso SIM; AC4: Se as falhas forem reparadas, ento todos os ns podem chegar a uma deciso;

O problema com a 2PC a AC4. Proponha uma alterao no protocolo 2PC para viabilizar AC4. Passos do 2PC: 1. n coordenador solicita conrmao a todos os ns participantes(S/N); 2. cada participante responde(sim/no); 3. caso exista no, mensagem aborto a todos (exceto o(s) n(s) participantes com no; 4. cada participante que votou sim, aguarda mensagem de conrmao do n coordenador encerrando a sua participao. Para saber mais sobre o 2PC verique o diretrio textos/, no mesmo local ond essa apostila est. 8