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
Muito mais do que documentos
Descubra tudo o que o Scribd tem a oferecer, incluindo livros e audiolivros de grandes editoras.
Cancele quando quiser.