Vous êtes sur la page 1sur 17

Banco de Dados (BD)

Prof. Bartira Dantas Rocha


Prof. Wilfredo Blanco Figuerola
Projeto de Banco de Dados

Em geral, o objetivo do projeto de banco de


dados relacional gerar um conjunto de
esquemas relacionais que nos permitam
armazenar informaes sem redundncia
desnecessria e ainda obtendo informaes
facilmente.

12/03/2017 UERN - CAN - DC 2


Normalizao
O processo de normalizao ocorre em etapas sucessivas (1FN, 2FN, 3FN, ...).
Cada etapa representa um progressivo refinamento na estrutura das tabelas
Os tericos da modelagem de dados consideram a existncia de inmeras
formas normais, mas geralmente basta que uma tabela atenda s trs primeiras
etapas que possa ser considerada como normalizada.
Cada Forma Normal sempre introduz restries adicionais a serem aplicadas a
relaes que j esto em uma determinada Forma Normal

Primeira Forma Normal

Segunda Forma Normal

Terceira Forma Normal

12/03/2017 UERN - CAN - DC 3


Normalizao
Tem por objetivo principal resolver problemas de atualizao
de bases de dados, minimizando redundncias.
Toda redundncia leva a uma inconsistncia
As principais caractersticas de uma base de dados
normalizada so:
Gerao de aplicaes mais estveis (e por isso tambm
mais alterveis);
Aumento do nmero de tabelas utilizadas;
Diminuio dos tamanhos mdios das tabelas.
So validaes matemticas dos atributos de uma tabela com
base nos seus relacionamentos
Conceito de Dependncia Funcional entre os atributos
12/03/2017 UERN - CAN - DC 4
Dependncia funcional
Conceito
Seja x e y dois atributos de uma relao R. y
dependente funcionalmente de x (x y, l-se x
determina y) se, e somente se, cada valor x em R for
associado a um valor y em R.
Relacionamentos de 1->1
Exemplos
cpf nome, data_nascimento
DDD UF
UF, cidade DDD
Este conceito fornece a base das 3 primeiras
formas normais.
12/03/2017 UERN - CAN - DC 5
Fecho de Dependncias funcionais

Representa o conjunto de todas as dependncias


funcionais vlidas para uma determinada tabela
Exemplo, dada a tabela T
Fecho de T = {A C, D B, AD BC, AB CD}
A B C D AC AD BC
a1 b1 c1 d1
a1
a1 b2 c1 d2 c1 a1,d1
a2 b1,c1
a2 b2 c2 d2 c2 a1,d2
a3 b2,c1
a2,d2
a2 b3 c2 d3 b2,c2
a2,d3
a3 b3 c2 d4 b3,c2
a3,d4
12/03/2017 UERN - CAN - DC 6
Fecho de Dependncias funcionais

Regras para facilitar a determinao do fecho


Reflexividade: Se um conjunto de atributos
e , ento vale . Tambm chamada
de Dependncia Funcional Trivial

, O conjunto est contido no conjunto .

12/03/2017 UERN - CAN - DC 7


Fecho de Dependncias funcionais

Regras para facilitar a determinao do fecho


Transitividade: Se valem , e , ento
tambm vale.
A B C D
AC CD AD a1 b1 c1 d1
a1 b2 c1 d1
a2 b2 c2 d2
a1 c1 d1 a1 a2 b3 c2 d2
a2 c1 c2 a2 d1
d2 a3 b3 c2 d2
a3 c2 a3 d2

12/03/2017 UERN - CAN - DC 8


Dependncia Funcional Total

Se o atributo y depende funcionalmente do conjunto x


de atributos, mas no depende funcionalmente de
qualquer subconjunto x de x (isto , x x), ento y
totalmente dependente de x.
O conjunto x chamado tambm de determinante
funcional de y.
Exemplo
estado, cidade DDD
DDD totalmente dependente de estado e cidade, pois estado sozinho
no determina DDD, assim como cidade

12/03/2017 UERN - CAN - DC 9


Primeira Forma Normal
Uma relao est na Primeira Forma Normal se, e apenas se, todos
os domnios contiverem apenas valores atmicos.
Exemplo
Armazm X Data: 27/10/2000
Solicitao de Material Nmero: 2199
Nome do Funcionrio: Joo da Silva
Cdigo do Funcionrio: 357

Cd. Produto Descrio Quantidade

1023 Joelho Tigre 2

1056 Luva Tigre 4

1011 Torneira Tigre 1

Tabela inicial no normalizada:


Solicitaes (numsolicitacao, data, codfunc, nomefunc, matsol = (codprod, descr,
qtd))
Material solicitado (matsol) um atributo multivalorado
Outros exemplos de atributos multivalorados
Endereos, telefones, etc.

12/03/2017 UERN - CAN - DC 10


Primeira Forma Normal
Para tornar uma relao no-normalizada em uma
relao normalizada deve-se decompor a tabela
no normalizada.
Ou seja para cada tabela aninhada criar uma nova
tabela.
Esta nova tabela ir conter os atributos da tabela
aninhada e o(s) atributo(s) que compe a chave
primria da(s) tabela(s) na(s) qual(is) a tabela est
aninhada
Nosso exemplo, 1FN:
Solicitaes (numsolicitacao, data, codfunc, nomefunc)
SolicitaesItens (numsolicitacao, codprod, descr, qtd)

12/03/2017 UERN - CAN - DC 11


Segunda Forma Normal
Uma relao est na Segunda Forma Normal se, e
apenas se, estiver na 1FN, e cada atributo no-chave
for totalmente dependente da chave primria

Para chegar a 2FN deve-se:


1) Verificar se existem colunas no-chave parcialmente
dependentes de algum dos atributos da chave. Esta
verificao feita apenas em tabelas que tem a sua chave
primria composta por mais de um atributo.
2) Se existir um atributo b que dependa apenas
parcialmente da chave primria x, isto x b, onde x x:
2.1) Criar tabela (se no existe ainda) cuja chave primria ser x;
2.2) Mover da tabela original para a tabela criada o atributo b.

12/03/2017 UERN - CAN - DC 12


Segunda Forma Normal
Para o nosso exemplo de solicitao de materiais,
tnhamos:
codprod descrio (isto , a descrio de um produto
s depende de seu cdigo), mas
{numsolicitacao, codprod } qtd (a quantidade
depende da solicitao E do produto)
1FN:
Solicitaes (numsolicitacao, data, codfunc, nomefunc)
SolicitaesItens (numsolicitacao, codprod, descricao, qtd)
2FN:
Solicitaes (numsolicitacao, data, codfunc, nomefunc)
SolicitaesItens (numsolicitacao, codprod, qtd)
Produtos (codprod, descricao)

12/03/2017 UERN - CAN - DC 13


Terceira Forma Normal
Exige a eliminao de dependncias transitivas, nome dado
situao em que um atributo y, que depende totalmente da chave
primaria, por sua vez determinante de outro atributo z da relao.
Isto , x y z.
Uma relao est na Terceira Forma Normal se, e apenas se, estiver
na 2FN, e no tiver dependncias transitivas.
Para chegar na 3FN deve-se:
1) Verificar se existem colunas no-chave dependentes de
algum(ns) outro(s) atributo(s) no-chave. Esta verificao feita
apenas em tabelas que possurem pelo menos 2 atributos no-
chave.
2) Se existir um atributo Z que dependa de outro(s) atributo(s)
no-chave Y:
2.1) Criar tabela (se no existe ainda) cuja chave primria ser Y;
2.2) Mover da tabela original para a tabela criada o atributo Z

12/03/2017 UERN - CAN - DC 14


Terceira Forma Normal
Para o nosso exemplo de solicitaes de materiais, tnhamos na
relao Solicitaes uma dependncia transitiva:
numsolicitacao codfunc nomefunc

1FN:
Solicitaes (numsolicitacao, data, codfunc, nomefunc)
SolicitaesItens (numsolicitacao, codprod, descricao, qtd)
2FN:
Solicitaes (numsolicitacao, data, codfunc, nomefunc)
SolicitaesItens (numsolicitacao, codprod, qtd)
Produtos (codprod, descricao)
3FN:
Solicitaes (numsolicitacao, data, codfunc)
Funcionrios (codfunc, nomefunc)
SolicitaesItens (numsolicitacao, codprod, qtd)
Produtos (codprod, descricao)

12/03/2017 UERN - CAN - DC 15


Normalizao

Exerccio

12/03/2017 UERN - CAN - DC 16


Referencias

Bibliografia Bsica:
SILBERSCHATZ Abraham, KORTH Henry F. e
SUDARSHAN S. Sistema de Banco de Dados. 5
Edio. Campus, 2006. (OK - 7)
ELMASRI, Ramez e NAVATHE, Shamkant B. Sistemas
de Banco de Dados: Fundamentos e Aplicaes. 3
Edio. LTC, Rio de Janeiro, 2002. (OK - 3)
MESENAS Ivan e DE OLIVEIRA Vivianne. Banco de
Dados. Do modelo conceitual implementao
fsica. Alta Books Ltda. 2005 (OK -1 )

12/03/2017 UERN - CAN - DC 17

Vous aimerez peut-être aussi