Você está na página 1de 33

NORMALIZAO BASES DE DADOS (DRAFT, VERSO 3)

DE

SIGGesto Lisboa, Maro de 2012

CONTEDOS

Reviso de conceitos Conceitos da normalizao As formas normais: 1FN, 2FN, 3FN At onde normalizar Denormalizao Concluses Exemplos

CHAVE PRIMARIA DEFINIO


Chave primaria (primary key) ou atributo identicador Um atributo ou conjunto atributos que permitem identicar de forma unvoca os registos de uma tabela A chave constituda por um nico atribuo uma chave elementar ou chave simples
Ex. { NIF }, {numCliente}, {BI}

A chave primaria constituda por mais do que um atributo designa-se por chave mltipla ou chave composta
Ex. { numEncomenda, codProduto }, {idEstudante, Disciplina}

Numa chave composta, para cada registo da tabela a combinao {chave1,chave2,chave3...} nica
Ex. Para a chave {idEstudante, Disciplina} podem existir vrios registos com um mesmo valor de idEstudante ou um mesmo valor de Disciplina mas no podem existir dois registo com um mesmo par de valores

N ORMALIZAO

DE

B ASES

DE DADOS ( DRAFT , VER .

3) | R.A.B | SIG-G ESTO , ISCA | L ISBOA , M ARO

DE

2012

CHAVE PRIMARIA OUTROS CONCEITOS


Chave candidata (candidate key)1 Conjunto de atributos que poder ser utilizado como chave primaria
Ex. Numa tabela dada poderiam ser chaves candidatas simples: NIF, BI, ou idCliente

A chave primaria seleccionada tambm uma chave candidata Atributo principal (prime atribute) Atributo que forma parte de alguma chave candidata Atributo no-principal (non-prime attribute) ou atributo no-chave Atributo que no forma parte de nenhuma chave candidata Chave estrangeira (foreign key) Atributo o conjunto de atributos que referenciam um chave candidata de uma outra tabela
1A

denio de chave candidata tambm estabelece que o conjunto tem de ser mnimo
N ORMALIZAO
DE

B ASES

DE DADOS ( DRAFT , VER .

3) | R.A.B | SIG-G ESTO , ISCA | L ISBOA , M ARO

DE

2012

CHAVE PRIMARIA EXEMPLOS


Em relao a tabela Clientes podemos dizer:
O campo Nome no pode ser uma chave primaria porque podem existir duas pessoas com o mesmo nome. O campo Telemvel tampouco convm como chave primaria. Mesmo que seja assumida a unicidade dos nmeros de telemvel tenha em conta que uma pessoa pode mudar de nmero. Os campos NIF e numCliente so as chaves candidatas nesta tabela. Ambas chaves so elementares. Nesta tabela foi seleccionada como chave primaria o campo numCliente (mas poderia ter sido o campo NIF) Os campos Nome e Telemvel so atributos no-chave ou atributos no principais Clientes
numCliente Nome 111 Ana 222 Pedro 444 Ana
N ORMALIZAO
DE

NIF Telemvel ... 123456789 961 123 123 232467431 934 735 987 983485623 964 826 456 ...
3) | R.A.B | SIG-G ESTO , ISCA | L ISBOA , M ARO
DE

B ASES

DE DADOS ( DRAFT , VER .

2012

CHAVE PRIMARIA EXEMPLOS


Na tabela Encomendas, a chave primaria nEncomenda, e na tabela Produtos a chave primaria codProd, ambas chaves so elementares. Na tabela Produtos_Das_Encomendas, nem nEncomenda nem codProd so chaves candidatas
Se uma encomenda tm dois produtos nEncomenda aparece duas vezes Se um produto es comprado em dois encomendas diferentes codProd repete-se

No entanto, o par {nEncomenda, codProd} nico para cada registro e portanto uma chave candidata
Encomendas
nEncomenda 1 2 3 4 Data_Enc. 2012-03-01 2012-03-02 2012-03-03 2012-03-04 Data_Fact. 2012-04-01 2012-04-02 2012-04-03 2012-04-04 ... Valor_Total 195.33 100.99 8.89 13.00

Produtos
codProd aa1 bbb ccc aa2 Nome_Produto Detergente .... Refrigerante Cola Arroz agulha ... Detergente .... ... Preo_Unidade 15.33 1.99 0.89 15.00

Produtos_das_Encomendas
nEncomenda 1 3 1 5 N ORMALIZAO
DE

codProduto aa1 bbb ccc aa1

Quant_Encomendada 1 5 2 5 ...

Quant_Entregue 1 4 2 3
DE

B ASES

DE DADOS ( DRAFT , VER .

3) | R.A.B | SIG-G ESTO , ISCA | L ISBOA , M ARO

2012

CHAVE PRIMARIA EXEMPLOS


Em ralao a tabela Produtos_Das_Encomendas podemos dizer: A chave candidata (e chave primaria) o par {nEncomenda, codProd} Esta chave um chave composta ou mltipla Os campos nEncomenda e codProd so atributos principais Tambm so, neste caso particular, chaves estrangeiras Os campos Quant_Encomendada e Quant_Entregue so atributos no-chave
Encomendas
nEncomenda 1 2 3 4 Data_Enc. 2012-03-01 2012-03-02 2012-03-03 2012-03-04 Data_Fact. 2012-04-01 2012-04-02 2012-04-03 2012-04-04 ... Valor_Total 195.33 100.99 8.89 13.00

Produtos
codProd aa1 bbb ccc aa2 Nome_Produto Detergente .... Refrigerante Cola Arroz agulha ... Detergente .... ... Preo_Unidade 15.33 1.99 0.89 15.00

Produtos_das_Encomendas
nEncomenda 1 3 1 5 N ORMALIZAO
DE

codProduto aa1 bbb ccc aa1

Quant_Encomendada 1 5 2 5 ...

Quant_Entregue 1 4 2 3
DE

B ASES

DE DADOS ( DRAFT , VER .

3) | R.A.B | SIG-G ESTO , ISCA | L ISBOA , M ARO

2012

DEPENDNCIA FUNCIONAL

DEPENDNCIA FUNCIONAL CONCEITOS


Dada a expresso: A X
Dizemos que o tributo X depende funcionalmente do atributo A

Dada a expresso: {A, B, ...} X


Dizemos que o atributo X depende funcionalmente do conjunto de atributos {A, B, ...}

Se a dependncia funcional A C acontece s em virtude de A B B C


Dizemos que o atributo C tm uma dependncia funcional transitiva com o atributo A

N ORMALIZAO

DE

B ASES

DE DADOS ( DRAFT , VER .

3) | R.A.B | SIG-G ESTO , ISCA | L ISBOA , M ARO

DE

2012

DEPENDNCIA FUNCIONAL EXEMPLOS


Na tabela Produtos_Encomendas verica-se
{Preo_Unitario, Quant_Prod} Valor_Produto

Na tabela Produtos existem as seguintes dependncias funcionais triviais


codProduto Nome_Produto

|

codProduto Preo_Unidade

Igualmente na tabela Produtos_Encomendas


{nEncomenda, codProduto} Quant_Produto {nEncomenda, codProduto} Nome_Produto

Os atributos no-chave vo depender funcionalmente da chave primaria


Encomendas
nEncomenda 1 2 3 4 Data_Enc. 2012-03-01 2012-03-02 2012-03-03 2012-03-04 Data_Fact. 2012-04-01 2012-04-02 2012-04-03 2012-04-04 ... Valor_Total 195.33 100.99 8.89 13.00

Produtos
codProd aa1 bbb ccc aa2 Nome_Produto Detergente .... Refrigerante Cola Arroz agulha ... Detergente .... ... Preo_Unidade 15.33 1.99 0.89 15.00

Produtos_Encomendas
nEncomenda 1 3 1 5 N ORMALIZAO
DE

codProduto aa1 bbb ccc aa1 B ASES

Nome_Produto Detergente .... Refrigerante Cola Arroz agulha ... Detergente .... ...

Preo_Unitario Quant_Prod Valor_Prod 15.33 1.99 0.89 15.33 1 5 2 5 15.33 9.95 1.78 76.65
DE

DE DADOS ( DRAFT , VER .

3) | R.A.B | SIG-G ESTO , ISCA | L ISBOA , M ARO

2012

10

DEPENDNCIA FUNCIONAL EXEMPLOS


Analisemos na tabela Produtos_Encomendas a dependncia









{nEncomenda, codProduto} Nome_Produto A dependncia correcta porque dado o par {nEncomenda, codProduto} podemos na tabela obter o nome do produto No entanto verica-se tambm que codProduto Nome_Produto Podemos dizer que Nome_Produto tm uma dependncia funcional parcial com o par de atributos {nEncomenda, codProduto}
Encomendas
nEncomenda 1 2 3 4 Data_Enc. 2012-03-01 2012-03-02 2012-03-03 2012-03-04 Data_Fact. 2012-04-01 2012-04-02 2012-04-03 2012-04-04 ... Valor_Total 195.33 100.99 8.89 13.00

Produtos
codProd aa1 bbb ccc aa2 Nome_Produto Detergente .... Refrigerante Cola Arroz agulha ... Detergente .... ... Preo_Unidade 15.33 1.99 0.89 15.00

Produtos_Encomendas
nEncomenda 1 3 1 5 N ORMALIZAO
DE

codProduto aa1 bbb ccc aa1 B ASES

Nome_Produto Detergente .... Refrigerante Cola Arroz agulha ... Detergente .... ...

Preo_Unitario Quant_Prod Valor_Prod 15.33 1.99 0.89 15.33 1 5 2 5 15.33 9.95 1.78 76.65
DE

DE DADOS ( DRAFT , VER .

3) | R.A.B | SIG-G ESTO , ISCA | L ISBOA , M ARO

2012

11

NORMALIZAO DE BASES DE DADOS

CONCEITOS DA NORMALIZAO DE BD
Conceito introduzido por E.F. Codd em 1970 Pretende optimizar a representao dos dados de modo que estes sejam facilmente consultados e manipulados por linguagens baseadas em Lgica de Primeira Ordem (First-order logic)
Ex. Utilizando uma linguagem como SQL

Codd deniu 3 formas normais (FN)


Esto , uma tabela dada pode-se encontrar normalizada em uma destas 3 formas

Posteriormente mais formas normais foram denidas por outros autores Podemos ver as formas normais como nveis de estruturao dos dados
Mais estruturado Mais relacionamentos Maior robustez
N ORMALIZAO
DE

Menos redundncia
13

B ASES

DE DADOS ( DRAFT , VER .

3) | R.A.B | SIG-G ESTO , ISCA | L ISBOA , M ARO

DE

2012

PRIMEIRA FORMA NORMAL DEFINIO


Uma tabela est na 1FN se: Todos os atributos esto denidos em domnios que contm apenas valores atmicos i.e. Todas as colunas contem valores indivisveis
So atmicos {idCliente, NIF, Nome} mas no {Nome_Completo, Morada_Completa, Lista_de_Telefones}

No existem repetio de atributos de um mesmo gnero de atributos


Ex. A tabela CLIENTES(id, Nome, Tel_Mvel, Tel_Fixo, Tel_Emergncia) No est na 1FN porque existe repetio de atributos (colunas) de um mesmo gnero: Telefone

N ORMALIZAO

DE

B ASES

DE DADOS ( DRAFT , VER .

3) | R.A.B | SIG-G ESTO , ISCA | L ISBOA , M ARO

DE

2012

14

PRIMEIRA FORMA NORMAL EXEMPLOS


A tabela Clientes-1 no esta na 1FN porque o atributo ou coluna Nome_Completo no contem valores atmico Para resolver est situao podemos criar neste caso trs nova colunas Nome_Primeiro, Nome_Ultimo, Nome_Outros A nova tabela Clientes-2 sim verica a 1FN Note que com a nova tabela muito simples reproduzir tanto o nome completo como o nome abreviado (Nome_Primeiro + Nome_Ultimo)

Clientes-1(id, NIF, Nome_Completo)


Id 1111 2222 3333 NIF 123456789 232467431 983485623 Nomes Ana Cristina Gonalves Carlos Russo Russo Nelson Lopes ...

Clientes-2(id, NIF, Primeiro, Ultimo, Outros)


Id 1111 2222 3333 NIF 123456789 232467431 983485623 Nome_Primeiro Ana Carlos Nelson ... Nome_Ultimo Gonalves Russo Lopes Nome_Outros Cristina Russo

N ORMALIZAO

DE

B ASES

DE DADOS ( DRAFT , VER .

3) | R.A.B | SIG-G ESTO , ISCA | L ISBOA , M ARO

DE

2012

15

PRIMEIRA FORMA NORMAL EXEMPLOS


A tabela Clientes no esta na 1FN porque o atributo ou coluna Preferencias no contem valores atmico
Este atributo tem uma lista de preferencias dos clientes

Para resolver est situao:


Primeiramente temos que compreender a estrutura da lista Neste caso podem ser identicados 3 atributos: Desporte, Cor, e Gnero_Musical Criamos novas colunas para cada atributo identicado

A nova tabela sim verica a 1FN


Clientes(id, NIF, Nome, Preferencias)
Id 1111 2222 3333 NIF 123456789 232467431 983485623 Nome Ana Carlos Nelson Preferencias futebol, azul, hip-hop xadrez, verde, clssica correr, azul, cubana ...

Clientes(id, NIF, Nome, Desporto, Cor, Gnero)


Id 1111 2222 3333 NIF 123456789 232467431 983485623 Nome Ana Carlos Nelson Desporto futebol xadrez correr ... N ORMALIZAO
DE

Cor azul verde azul

Gnero_Mus hip-hop clssica cubana

B ASES

DE DADOS ( DRAFT , VER .

3) | R.A.B | SIG-G ESTO , ISCA | L ISBOA , M ARO

DE

2012

16

PRIMEIRA FORMA NORMAL EXEMPLOS


A tabela Clientes no est na 1FN porque o atributo ou coluna Telefones no contem valores atmico
Este atributo tem uma lista de telefones dos clientes

Neste caso, proceder com no caso anterior no conduz a normalizao da tabela A nova tabela tampouco est na 1FN, porque agora existem colunas repetidas da mesma classe: Telefone
Clientes(id, NIF, Nome, Telefones)
Id 1111 2222 3333 NIF 123456789 232467431 983485623 Nome Ana Carlos Nelson Telefones 911 xxx xxx, 210 xxx xxx, 966 xxx xxx 933 xxx xxx, 220 xxx xxx 966 xxx xxx ...

Note que para o cliente 3333 s uma coluna necessria. Mas para o cliente 1111 so necessrias 3 colunas. Podem existir clientes com mais contactos, nesse caso seriamos forados a redesenhar a tabela para adicionar novas colunas.
N ORMALIZAO
DE

Clientes(id, NIF, Nome, Tel_Mvel,Tel_Fixo,Tel_Outro)


Id 1111 2222 3333 NIF 123456789 232467431 983485623 Nome Ana Carlos Nelson Tel_Mvel Tel_Fixo Tel_Outro NUll NUll 911 xxx xxx 210 xxx xxx 966 xxx xxx 933 xxx xxx 220 xxx xxx 966 xxx xxx ... NUll

B ASES

DE DADOS ( DRAFT , VER .

3) | R.A.B | SIG-G ESTO , ISCA | L ISBOA , M ARO

DE

2012

17

PRIMEIRA FORMA NORMAL EXEMPLOS


A tabela Clientes no esta na 1FN porque existem colunas repetidas da mesma classe semntica: Telefone
Outros exemplos




{Produto1, Produto2, ...} numa tabela de encomendas {Disciplina1,Disciplinas2, ...} numa tabela de estudantes

Uma possvel soluo criar uma nova tabela Telefones_dos_Clientes para listar os variados contactos telefnicos de cada cliente
Clientes(id, NIF, Nome, Tel_Mvel,Tel_Fixo,Tel_Outro)
IdCliente 1111 2222 3333 NIF 123456789 232467431 983485623 Nome Ana Carlos Nelson Tel_Mvel Tel_Fixo Tel_Outro NUll 921 xxx xxx 911 xxx xxx 210 xxx xxx 966 xxx xxx 933 xxx xxx 220 xxx xxx 966 xxx xxx ... NUll

IdCliente 1111 2222 3333

NIF

Nome

IdCliente 2222 2222 3333 1111 3333

Numero 933 xxx xxx 220 xxx xxx 921 xxx xxx 210 xxx xxx 966 xxx xxx ...

123456789 Ana 232467431 Carlos 983485623 Nelson ...

Clientes(id, NIF, Nome)

Tel_dos_Clientes(id, Numero)
N ORMALIZAO
DE

B ASES

DE DADOS ( DRAFT , VER .

3) | R.A.B | SIG-G ESTO , ISCA | L ISBOA , M ARO

DE

2012

18

PRIMEIRA FORMA NORMAL EXEMPLOS


Uma outra soluo criar duas novas tabelas:









Tipo_Telefone e Telefones_dos_Clientes Desta forma possvel procurar por um tipo especico de contacto

Clientes(id, NIF, Nome, Tel_Mvel,Tel_Fixo,Tel_Outro)


IdCliente 1111 2222 3333 NIF 123456789 232467431 983485623 Nome Ana Carlos Nelson Tel_Mvel Tel_Fixo Tel_Outro NUll 921 xxx xxx 911 xxx xxx 210 xxx xxx 966 xxx xxx 933 xxx xxx 220 xxx xxx 966 xxx xxx ... NUll

IdCliente 1111 2222 3333

NIF

Nome

IdCliente 2222 2222 3333 1111 3333

Tipo 1 2 4 2 1 ...

Numero 933 xxx xxx 220 xxx xxx 921 xxx xxx 210 xxx xxx 966 xxx xxx

idTel 1 2 3 4

Designao Mvel Fixo Fax Outro ...

123456789 Ana 232467431 Carlos 983485623 Nelson ...

Clientes(id, NIF, Nome)

Tel_dos_Clientes(id, Tipo, Numero)


N ORMALIZAO
DE

Tipo_Telefone(idTel, Designao)
DE

B ASES

DE DADOS ( DRAFT , VER .

3) | R.A.B | SIG-G ESTO , ISCA | L ISBOA , M ARO

2012

19

SEGUNDA FORMA NORMAL 2FN

SEGUNDA FORMA NORMAL DEFINIO


Uma tabela est na 2FN se:
Vericasse que est na 1FN Cada atributo no-principal totalmente dependente de cada chave candidata i.e. Se houver alguma chave compostas e algum atributo no-chave depende parcialmente dessa chave a tabela no est na 2FN Analises o que acontece se uma tabela que est na 1FN tem todas a chaves candidatas elementares?

N ORMALIZAO

DE

B ASES

DE DADOS ( DRAFT , VER .

3) | R.A.B | SIG-G ESTO , ISCA | L ISBOA , M ARO

DE

2012

21

SEGUNDA FORMA NORMAL EXEMPLO


A tabela Produtos_Encomenda est na 1FN mas no est na 2FN Os atributos Nome_Podruto e Preo_Unitario dependem parcialmente da chave candidata {nEncomenda, codProduto}
i.e porque dependem totalmente de codProducto

Como consequncia a tabela susceptvel redundncia de dados


Ex. para o produto aa1 se repete o mesmo nome e preo unitrio nas encomendas 1 e 5

A tabela tambm susceptvel a inconsistncias aps uma actualizao


Ex. Imagine que se quer actualizar o nome do produto AA1 para "Detergente Liquido" Isto deve ser feito em muitos registos, assim incrementado a possibilidade de um error Ao nal poderiam existir registos com o mesmo cdigo AA1 mas nomes de produto diferentes

nEncomenda 1 3 1 5

codProduto aa1 bbb ccc aa1

Nome_Produto Detergente Refrigerante Arroz Detergente ...

Preo_Unitario Quant_Prod Valor_Prod 15.33 1.99 0.89 15.33 1 5 2 5 15.33 9.95 1.78 76.65

Produtos_Encomendas

N ORMALIZAO

DE

B ASES

DE DADOS ( DRAFT , VER .

3) | R.A.B | SIG-G ESTO , ISCA | L ISBOA , M ARO

DE

2012

22

SEGUNDA FORMA NORMAL EXEMPLO


A tabela Servios est na 1FN mas no est na 2FN Existem duas chaves candidatas: nServio (chave primaria) e {codOcina, idCliente, Data_Servio} Fica claro agora que a tabela no est na 2FN porque Nome_Cliente e Local_Ocina tm dependncia funcional parcial com a chave candidata composta Se tivssemos cometido o erro de no identicar a chave candidata composta, teramos dito que a tabela estava na 2FN o que e incorrecto

Servios
nServio 1 2 3 4 idCliente 222 111 111 333 codOficina aaa bbb ccc aaa Data_Servio Nome_Cliente Valor 100.33 5.99 13.13 40.56 Local_Oficina Lisboa Coimbra Porto Lisboa 2012-03-12 10:00 Pedro 2012-03-12 15:00 Rui 2012-03-14 17:00 Rui 2012-03-10 09:30 Maria ...

N ORMALIZAO

DE

B ASES

DE DADOS ( DRAFT , VER .

3) | R.A.B | SIG-G ESTO , ISCA | L ISBOA , M ARO

DE

2012

23

SEGUNDA FORMA NORMAL EXEMPLO


Para converter a tabela Servios 2FN temos que criar novas tabelas Neste caso so duas tabelas: uma para os Clientes e outra para as Ocinas
Servios
nServio 1 2 3 4 idCliente 222 111 111 333 codOficina aaa bbb ccc aaa Data_Servio Nome_Cliente Valor 100.33 5.99 13.13 40.56 Local_Oficina Lisboa Coimbra Porto Lisboa 2012-03-12 10:00 Pedro 2012-03-12 15:00 Rui 2012-03-14 17:00 Rui 2012-03-10 09:30 Maria ...

Clientes
idCliente 222 111 444 333 Nome_Cliente Pedro Rui Manuel Maria ...

Servios
nServio 1 2 3 4 idCliente codOficina 222 111 111 333 aaa bbb ccc aaa ... Data_Servio 2012-03-12 10:00 2012-03-12 15:00 2012-03-14 17:00 2012-03-10 09:30 Valor 100.33 5.99 13.13 40.56

Ocinas
codOficina Local_Oficina aaa bbb ccc ddd ... Lisboa Coimbra Porto Faro

N ORMALIZAO

DE

B ASES

DE DADOS ( DRAFT , VER .

3) | R.A.B | SIG-G ESTO , ISCA | L ISBOA , M ARO

DE

2012

24

SEGUNDA FORMA NORMAL EXEMPLO


A tabela Clientes est na 1FN A tabela est tambm na 2FN As chaves candidatas so dois: idCliente e NIF Por serem todas as chaves candidatas, chaves elementares, no podem existir dependncias parciais dos atributos no-chave com as chaves candidatas

Clientes(id, NIF, Nome, Tel_Mvel)


idCliente 1111 2222 3333 NIF 123456789 232467431 983485623 Nome Ana Carlos Nelson Tel_Mvel 911 xxx xxx 933 xxx xxx 966 xxx xxx

...

N ORMALIZAO

DE

B ASES

DE DADOS ( DRAFT , VER .

3) | R.A.B | SIG-G ESTO , ISCA | L ISBOA , M ARO

DE

2012

25

TERCEIRA FORMA NORMAL 3FN

TERCEIRA FORMA NORMAL DEFINIO


Uma tabela est na 3FN se:
Vericasse que est na 2FN No existe dependncia funcional entre os atributos no-chave i.e Os atributos no-chave dependem exclusivamente da chave primaria

A dependncia funcional entre atributos no-chave pode ser:


Colunas calculadas Ex. Valor_Producto = Quant_Prod Preo_Unitario Colunas com a mesma natureza semntica Ex. Nome_Pais Capital

Analise o que acontece se uma tabela na 2FN tem um nico atributo no chave

N ORMALIZAO

DE

B ASES

DE DADOS ( DRAFT , VER .

3) | R.A.B | SIG-G ESTO , ISCA | L ISBOA , M ARO

DE

2012

27

TERCEIRA FORMA NORMAL EXEMPLO


A tabela Campees_Olmpicos_de_Boxeio est na 2FN mas no est na 3FN porque o pais de cada campeo e funcionalmente dependente do campeo e Imagine que eliminamos a coluna Nome_Campeo, ser possvel determinar o indivduo que foi campeo s com informao sobre o pais
No, para um mesmo pais numa mesma olimpada no mesmo desporto podem existir vrios campees. Na tabela isto esta exemplicado no caso de {1996, Cuba}

Imagine agora que eliminamos a coluna Pais, ser possvel determinar o pais do campeo utilizando a informao sobre o indivduo
Neste problema particular sim podemos Campees_Olmpicos_de_Boxeio
Ano 1984 1996 1996 1996 Categoria +91 kg +91 kg +75 kg +48 Kg Nome_Campeo Jose Felix Dimitri Romero ... Pais EUA Cuba Rusia Cuba

Ano 1984 1996 1996

Categoria +91 kg +91 kg +75 kg ...


DE

idCampeo 5 20 15

...

id 1 20 15

Nome Carlos Felix Dimitri ...

Pais Portugal Cuba Rusia


DE

...

N ORMALIZAO

B ASES

DE DADOS ( DRAFT , VER .

3) | R.A.B | SIG-G ESTO , ISCA | L ISBOA , M ARO

2012

28

TERCEIRA FORMA NORMAL EXEMPLO


A tabelas Produtos_das_Encomendas e Clientes esto na 2FN mas no na 3FN Porque existem atributos/colunas no-chave calculados com base em um outro atributo no-chave Supondo que conhecemos como fazer os clculos, podemos eliminar as colunas calculadas sem perder informao e sempre que necessrio podemos reconstruir essas colunas No entanto, em alguns casos pode no ser conveniente eliminar este tipo de redundncia
Produtos_das_Encomendas
num_Enc 111 222 111 333 cod_Prod aaa bbb ccc aaa ... Quantidade 1 5 2 5 Total_Prod 15.33 9.95 1.78 76.65

Clientes
idCliente 1111 2222 3333 Nome Ana Carlos Nelson Data_ Nascimento 1970-04-30 1980-01-01 1995-02-28 ... Idade 42 32 17

No caso de ser necessrio fazer continuamente (em tempo real) estatsticas com os valores totais vendidos por cada produto em cada encomenda Acha que a normalizao foi conveniente?
N ORMALIZAO
DE

B ASES

DE DADOS ( DRAFT , VER .

3) | R.A.B | SIG-G ESTO , ISCA | L ISBOA , M ARO

DE

2012

29

DENORMALIZAO

DENORMALIZAO DENORMALIZATION
Maior nvel de normalizao Mais relacionamentos Maior robustez Sistemas de Processamento de Transaces em Tempo Real (OLTP Online Transaction Processing) Beneciam com uma elevada normalizao Ditos sistemas escrevem mais do que lem Mais estruturado Menos redundncia

N ORMALIZAO

DE

B ASES

DE DADOS ( DRAFT , VER .

3) | R.A.B | SIG-G ESTO , ISCA | L ISBOA , M ARO

DE

2012

31

DENORMALIZAO DENORMALIZATION
A denormalizao pode simplicar aplicaes de Inteligncia Empresarial (Business Intelligence) Sistemas de processamento analtico em linha (OLAP OLAP, Online Analytical Processing) Beneciam com uma menor normalizao Ditos sistemas lem mais do que escrevem

N ORMALIZAO

DE

B ASES

DE DADOS ( DRAFT , VER .

3) | R.A.B | SIG-G ESTO , ISCA | L ISBOA , M ARO

DE

2012

32

CONCLUSES

A normalizao um processo que permite optimizar as bases de dados para: evitar redundncia, facilitar a actualizao, e principalmente manter a integridade dos dados Uma base de dados est numa forma normal dada se previamente se vericar que est nas formas anteriores Uma base de dados deve normalizar-se at o ponto onde as operaes de escritura e leitura resultem ambas satisfatoriamente ecientes de acordo com os pressupostos do sistema Modo geral uma normalizao at a 3FN e um bom compromisso

N ORMALIZAO

DE

B ASES

DE DADOS ( DRAFT , VER .

3) | R.A.B | SIG-G ESTO , ISCA | L ISBOA , M ARO

DE

2012

33