Вы находитесь на странице: 1из 119

Projeto de Banco

de Dados
Abordagem Entidade
Relacionamento
Banco de Dados
1. Conjunto de arquivos integrados que atendem a um
conjunto de sistema;
2. Conjunto de dados integrados que tem por objetivo
atender a uma comunidade de usurios;
SGBD - Sistema de Gerncia de
Banco de Dados
1. Software que incorpora as funes de definio,
recuperao e alterao de dados em um banco de
dados;
Modelo de Banco de Dados
1. Descrio formal da estrutura de um banco de dados.
Observao:
Um modelo de dados no informa quais itens esto
armazenados, mas apenas que o banco de dados
contm informaes sobre esses itens.
Linguagem de Modelagem de Dados
Utilizadas na construo de um Modelo de dados;
Podem ser classificadas de acordo com a forma de
apresentar os modelos, em linguagens textuais ou
linguagens grficas;
Esquema de Banco de Dados
Um modelo de dados pode ser apresentado de
diferentes formas. Um esquema representa cada
forma de apresentao do modelo de dados.
Nveis de Abstrao
De acordo com a inteno do modelador, um banco
de dados pode ser modelado(descrito) em vrios
nveis de abstrao;
No projeto de banco de dados, normalmente so
considerados dois nveis de abstrao de modelo de
dados, o do modelo conceitual e o do modelo
lgico.
A primeira etapa do projeto de um banco de dados
a construo de um modelo conceitual, a chamada
modelagem conceitual;
O objetivo da modelagem conceitual obter uma
descrio abstrata, independente de implementao
em computador, dos dados que sero armazenados
no bando de dados;
A tcnica de modelagem de dados mais difundida e
utilizada a abordagem entidade-relacionamento
(ER).
Modelo Conceitual
Modelo Conceitual
Modelo de dados abstrato, que descreve a estrutura
de um banco de dados de forma independente de um
SGBD especfico;
Registra que dados podem aparecer no banco de
dados, mas no registra como estes dados esto
armazenados a nvel de SGBD;
A tcnica mais difundida de modelagem conceitual
a abordagem entidade-relacionamento (ER).
Exemplo de Modelo Conceitual
Modelo de dados que representa a estrutura de dados
de um banco de dados conforme vista pelo usurio do
SGBD;
O modelo lgico dependente do tipo particular de
SGBD que est sendo usado;
Detalhes de armazenamento interno de informaes
que no influenciam sobre a programao de
aplicaes no SGBD no fazem parte do modelo lgico.
Ex.: Estruturas de arquivos usadas no acesso as
informaes.
Modelo Lgico
TipoDeProduto(CodTipoProd,DescrTipoProd)
Produto(CodProd,DescrProd,PrecoProd,CodTipoProd)
CodTipoProd referencia TipoDeProduto
Modelo Lgico na forma textual
Exemplo de tabelas de banco de
dados relacional
Atravs da identificao das entidades que tero
informaes representadas no banco de dados,
possvel identificar os arquivos que comporo o banco
de dados;
Na prtica, convencionou-se iniciar o processo de
construo de um novo banco de dados com a
construo de um modelo de objetos da organizao
que ser atendida pelo banco de dados, ao invs de
partir diretamente para o projeto do banco de dados.
Projeto de Banco de Dados
Projeto de Banco de Dados
Fases
O projeto de um novo banco de dados d-se
em duas fases:
1. Modelagem conceitual
Nesta primeira fase, construdo um
modelo conceitual, na forma de um diagrama
entidade-relacionamento. Este modelo captura
as necessidades da organizao em termos de
armazenamento de dados de forma
independente de implementao.
Projeto de Banco de Dados
Fases
2. Projeto Lgico
A etapa de projeto lgico objetiva
transformar o modelo conceitual obtido na
primeira fase em um modelo lgico. O modelo
lgico define como o banco de dados ser
implementado em um SGBD especfico.
Exerccios
Pesquisa:
1. Defina os seguintes conceitos: Banco de
Dados, Sistema de Gerncia de Banco de
Dados, Modelo de Dados, Modelo
Conceitual, Modelo Lgico e Projeto Lgico.
Abordagem Entidade
Relacionamento
A abordagem ER foi criada em 1976 por Peter Chen, e pode
ser considerada como um padro de fato para modelagem
conceitual;
Nesta tcnica, o modelo de dados representado atravs de
um modelo entidade-relacionamento (modelo ER);
Usualmente, um modelo ER representado graficamente,
atravs de um diagrama entidade-relacionamento (DER);
Conceitos centrais da abordagem ER: entidade,
relacionamento, atributo, generalizao/especializao e
entidade associativa.
Entidade
Conjunto de objetos da realidade modelada sobre os
quais deseja-se manter informaes no banco de
dados;
Uma entidade pode representar tanto objetos concretos
da realidade (uma pessoa, um automvel), quanto
objetos abstratos (um departamento, um endereo);
Em um DER, uma entidade representada atravs de
um retngulo que contm o nome da entidade;
Caso seja necessrio referir um objeto particular fala-se
em ocorrncia ou instncia de entidade.
PESSOA DEPARTAMENTO
Representao Grfica de Entidades
Conjunto de associaes entre entidades;
Em um DER, um relacionamento representado
atravs de um losango, ligado por linhas ao retngulos
representativos das entidades que participam do
relacionamento;
Da mesma forma que fizemos com entidades, quando
quisermos nos referir a associaes especficas dentro
de um conjunto, vamos nos referir a ocorrncias de
relacionamentos;
Relacionamento
DEPARTAMENTO PESSOA LOTAO
A figura abaixo apresenta um DER contendo duas
entidades, PESSOA e DEPARTAMENTO, e um
relacionamento, LOTAO.
Representao Grfica de
Relacionamento
Um auto-relacionamento define um relacionamento
entre ocorrncias de uma mesma entidade;
Neste caso, adicionando um novo conceito, o de papel
da entidade no relacionamento;
Papis so anotados no DER, no caso de
relacionamentos entre entidades diferentes no
necessrio indicar os papeis das entidades.
Relacionamento Auto-
relacionamento
Exemplo de Auto-relacionamento
PESSOA
CASAMENTO
Marido Esposa
Cardinalidade de Relacionamentos
uma propriedade importante de um relacionamento,
indicando quantas ocorrncias de uma entidade podem
estar associadas a uma determinada ocorrncia atravs
do relacionamento;
H duas cardinalidades a considerar: a cardinalidade
mxima e a cardinalidade mnima;
Cardinalidade (mnima, mxima) de entidade em
relacionamento) equivale ao nmero (mnimo,mximo)
de ocorrncias de entidade associadas a uma
ocorrncia a entidade em questo atravs do
relacionamento;
Cardinalidade Mxima de
Relacionamento
Classificao de Relacionamento
Binrios
Um relacionamento binrio aquele cujas ocorrncias
envolvem duas entidades;
Podemos classificar os relacionamentos em n:n
(muitos-para-muitos), 1:n (um-para-muitos) e 1:1 (um-
para-um);
O que determina o fato de o relacionamento ser binrio
o nmero de ocorrncias de entidade que participam
de cada ocorrncia do relacionamento;
Relacionamentos 1:1
Relacionamentos 1:n
Relacionamentos n:n
Relacionamento Ternrio
A abordagem ER permite que sejam definidos
relacionamentos de grau maior do que dois
(relacionamentos ternrios, quartenrios,...);
No caso de um relacionamento ternrio, a cardinalidade
refere-se a pares de entidades.
Exemplo:
Em um relacionamento R entre trs entidades A, B e C, a
cardinalidade mxima de A e B dentro de R indica quantas
ocorrncias de C podem estar associadas a um par de
ocorrncias de A e B.
Exemplo de Relacionamento
Ternrio
Cardinalidade em Relacionamentos
Ternrios
Explicando
O "1" na linha que liga o retngulo representativo da
entidade DISTRIBUIDOR ao losango representativo do
relacionamento expressa que cada par de ocorrncias
(cidade,produto) est associado a no mximo um
distribuidor;
J os dois "n" expressam que:
A um par (cidade, distribuidor) podem estar associados
muitos produtos, ou em outros termos, um distribuidor pode
distribuir em uma cidade muitos produtos;
A um par (produto, distribuidor) podem estar associadas
muitas cidades, ou em outros termos um distribuidor pode
distribuir um produto em muitas cidades.
Cardinalidade Mnima
Outra informao que pode ser representada por um
modelo ER o nmero mnimo de ocorrncias de
entidade que so associadas a uma ocorrncia de uma
entidade atravs de um relacionamento;
Para fins de projeto de Banco de Dados, considera-se
apenas duas cardinalidades mnimas: a cardinalidade
mnima 0 e a cardinalidade mnima 1;
A cardinalidade mnima 1 tambm recebe a denominao
de "associao obrigatria", j que indica que o
relacionamento deve obrigatoriamente associar uma
ocorrncia de entidade a cada ocorrncia da entidade em
questo;
Com isso, a cardinalidade mnima 0 tambm recebe a
denominao de "associao opcional".
Cardinalidade Mnima de
Relacionamento
Aqui, a cardinalidade mnima usada para especficar que cada
empregado deve ter a ele alocada obrigatoriamente uma mesa
(cardinalidade mnima 1) e que uma mesa pode existir sem que a
ela esteja alocado um empregado (cardinalidade mnima 0).
DER para o controle acadmico de
universidade
Atributo
Dado que associado a cada ocorrncia de uma entidade
ou de um relacionamento;
Um atributo pode possuir uma Cardinalidade, de maneira
anloga a uma entidade em um relacionamento;
A Cardinalidade de um atributo define quantos valores
desses atributos podem estar associados a uma
ocorrncia da entidade/relacionamento a qual ele
pertence;
Podem ser mono-valorados (1) ou multivalorados (n)
Atributos de uma entidade
A figura expressa que cada ocorrncia de PROJETO
associado exatamente um nome, um cdigo e um tipo.
Atributo - Cardinalidade
A cardinalidade de um atributo define quantos valores
deste atributo podem estar associados a uma ocorrncia
da entidade/relacionamento a qual ele pertence.
Atributos mono-valorados e multi-
valorados
A figura anterior, expressa que nome e cdigo
so atributos obrigatrios (cardinalidade
mnima "1" - cada entidade possui no mnimo
um valor associado) e mono-valorados
(cardinalidade mxima "1" - cada entidade
possui no mximo um valor associado. J o
atributo telefone, um atributo opcional
(cardinalidade mnima 0) e multi-valorado
(cardinalidade mxima n).
Atributo de Relacionamento n:n
A figura abaixo, mostra um DER no qual um
relacionamento, ATUAO, possui um atributo, a funo
que um engenheiro exerce dentro de um projeto.
Atributo de Relacionamento 1:n
Agora em um relacionamento 1:n algumas vendas so vista,
outras a prazo. Vendas prazo so relacionadas a uma
financeira, atravs do relacionamento FINANCIAMENTO. Os
atributos n de parcelas e taxa de juros so atributos do
relacionamento.
Identificador de Entidade
Definio:
Conjunto de atributos e relacionamentos cujos
valores distinguem uma ocorrncia da entidade
das demais
Identificador de Entidade
Propriedades
1. O identificador deve ser mnimo. Isso significa que o
identificador de uma entidade deve ser composto de
tal forma que, retirando um dos atributos ou
relacionamentos que o compe, ele deixa de ser
identificador.
2. Cada entidade deve possuir um nico identificador.
Em alguns casos, diferentes conjuntos de atributos
podem servir para distinguir as ocorrncias da
entidade.
Identificando Entidades
Um identificador um conjunto de um ou mais atributos (e
possivelmente relacionamentos) cujos valores servem para
distinguir uma ocorrncia da entidade das demais ocorrncias
da mesma entidade.
O caso mais simples o da entidade que possui um nico
atributo como identificador. No DER, atributos identificadores
so representados por um crculo preto. No exemplo, o
atributo cdigo o identificador. Isso significa que cada
pessoa possui um cdigo diferente.
Identificador Composto
A figura abaixo mostra um exemplo no qual o
identificador da entidade composto de diversos
atributos.
Para identificar um prateleira necessrio conhecer seu
nmero e o nmero do corredor em que se encontra.
Relacionamento Identificador
H casos em que o identificador de uma entidade composto
no somente por atributos da prpria entidade mas tambm por
relacionamentos dos quais a entidade participa (relacionamento
identificador).
Cada dependendente est relacionado a exatamente um
empregado. Um dependente identificado pelo empregado ao
qual ele est relacionado epor um nmero de sequncia que
distingue os diferentes dependentes de um mesmo empregado.
Relacionamento Identificador
Continuao
No DER, o relacionamento usado como identificador
indicado por uma linha mais densa.
Nesse caso, alguns autores dizem que a entidade
DEPENDENTE uma entidade fraca. O termo fraca
deriva-se do fato de a entidade somente existir
quando relacionada a outra entidade e de usar como
parte de seu identificador, entidades relacionadas.
Identificando relacionamentos
Relacionamento identificado por suas entidades
Atributo identificador de relacionamento
Generalizao e Especializao
Atravs deste conceito possvel atribuir propriedades
particulares a um subconjunto das ocorrncias
(especializadas) de uma entidade genrica.
O smbolo para representar um tringulo issceles.
Associada ao conceito est a idia de herana de
propriedades. Herdar propriedades significa que cada
ocorrncia da entidade especializada possui, alm de
suas prprias propriedades (atributos, relacionamentos e
etc...), tambm as propriedades da ocorrncia da
entidade genrica correspondente.
Generalizao e Especializao
DER
Generalizao/Especializao
Total
Em uma generalizao/especializao total para cada
entidade genrica existe sempre uma ocorrncia em
uma das entidades especializadas.
Esse o caso no qual a toda ocorrncia da entidade
CLIENTE corresponde uma ocorrncia em uma das
duas especializaes.
Esse tipo generalizao/especializao simbolizado
por um "t" conforme mostrado na figura a seguir.
Generalizao/Especializao
Total - Exemplo
Generalizao/Especializao
Parcial
Em uma generalizao/especializao parcial, nem toda
ocorrncia da entidade genrica possui um ocorrncia
correspondente em uma entidade especializada.
Esse o caso no qual nem toda entidade FUNCIONRIO
possui uma entidade correspondente em uma das duas
especializaes(nem todo funcionrio motorista ou
secretria). Esse tipo de generalizao/especializao
simbolizado por um "p" conforme figura a seguir.
Normalmente, quando h uma especializao parcial, na
entidade genrica aparece um atributo que identifica o tipo de
ocorrncia da entidade genrica.
Generalizao/Especializao
Parcial - Exemplo
Entidade Associativa
Uma entidade associativa a redefinio de
um relacionamento, que passa a ser tratado
como se fosse tambm uma entidade.
Grficamente, isso feito com um retngulo
desenhado ao redor do relacionamento.
Entidade Associativa
Exemplo
Um relacionamento uma associao entre entidades.
Na modelagem ER no foi prevista a possibilidade de
associar uma entidade com um relacionamento ou ento
de associar dois relacionamentos entre si. Por exemplo:
Digamos que seja necessrio modificar este diagrama
com a adio da informao de que, em cada consulta,
um ou mais medicamentos podem ser prescritos ao
paciente.
Entidade Associativa
DER
DER - Sem o Conceito de Entidade
Associativa
Smbolos
Projeto de Banco
de Dados
Abordagem Relacional
Banco de Dados Relacional
Um banco de dados relacional composto de
tabelas ou relaes.
Tabelas
Uma tabela um conjunto no ordenado de linhas
(tuplas);
Cada linha composta por uma srie de campos
(valor de atributo);
Cada campo identificado por nome de campo
(nome de atributo);
O conjunto de campos das linhas de uma tabela que
possuem o mesmo nome formam uma coluna.
Tabela - Exemplo
Tabela - Caracteristicas
As linhas de uma tabela no esto
ordenadas;
A ordem de recuperao arbitrria;
No possvel referenciar linhas de uma
tabela por posio;
Os valores de campo de uma tabela so at
micos e mono-valorados.
Chaves
O conceito bsico para estabelecer relaes
entre linhas de tabelas de um banco de dados
relacional o da chave.
Em um banco de dados relacional, h ao
menos trs tipos de chaves a considerar: a
chave primria, a chave alternativa, e a chave
estrangeira.
Chave Primria
Uma chave primria uma coluna ou uma
combinao de colunas cujos valores
distinguem uma linha das demais dentro de
uma tabela.
Nas definies de chave primria, exige-se que
essa seja mnima. Uma chave mnima
quando todas as suas colunas forem
efetivamente necessrias para garantir o
requisito de unicidade de valores da chave.
Tabela com Chave Primria
Composta
Chave Estrangeira
Uma chave estrangeira uma coluna ou uma
combinao de colunas, cujos valores
aparecem necessariamente na chave primria
de uma tabela;
A chave estrangeira o mecanismo que
permite a implementao de relacionamentos
em um banco de dados relacional.
Exemplo - Chave Estrangeira
Exemplo - Chave Estrangeira
No banco de dados da figura, a coluna
CodigoDepto da tabela Emp uma chave
estrangeira em relao a chave primria da
tabela Depto. Isso significa que, na tabela
Emp, no podem aparecer linhas que
contenham um valor do campo CodigoDepto
que no exista na coluna de mesmo nome da
tabela Emp. A interpretao desta restrio
que todo empregado deve estar associado a
um departamento.
Chave Estrangeira - Restries
A existncia de uma chave estrangeira impe restries
que devem ser garantidas em diversas situaes de
alterao do banco de dados:
Quando da incluso de uma linha na tabela que
contm a chave estrangeira.
Neste caso, deve ser garantido que o valor da chave
estrangeira aparea na coluna da chave primria
referenciada. No caso do exemplo da figura, isso
significa que um novo empregado deve atuar em um
departamento j existente no banco de dados.
Chave Estrangeira - Restries
Quando da alterao do valor da chave estrangeira.
Deve ser garantido que o novo valor de uma chave
estrangeira aparea na coluna da chave primria
referenciada.
Quando da excluso de uma linha da tabela que
contm a chave primria referenciada pela chave
estrangeria.
Deve ser garantido que na coluna chave estrangeira
no aparea o valor da chave primria que est
sendo excluda. No caso do exemplo da figura, isso
significa que um departamento no pode ser
excludo, caso nele ainda existirem empregados.
Chave Estrangeira na Prpria Tabela
Uma chave primria pode referenciar a chave
primria da prpria tabela, como mostra a
figura abaixo:
Chave Estrangeira na Prpria Tabela
Na tabela acima, a coluna CodigoEmpGerente
o cdigo de um outro empregado, o gerente
do empregado correspondente a linha em
questo. Como todo gerente ele mesmo
tambm um empregado, existe a restrio de
que todo valor da coluna CodEmpGerente
deve aparecer na coluna CodigoEmp. Assim, a
coluna CodigoEmpGerente chave estrangeira
em relao a chave primria da prpria tabela
Emp.
Chave Alternativa
Em alguns casos, mais de uma coluna ou
combinaes de colunas podem servir para
distinguir um linha das demais. Uma das
colunas escolhida como chave primria. As
demais colunas ou combinaes so
denominadas chaves alternativas.
Domnios
Quando uma tabela do banco de dados
definida, para cada coluna da tabela, deve ser
especificado um conjunto de valores
(alfanumrico, numrico,...) que os campos da
respectiva coluna podem assumir. Este
conjunto de valores chamado de domnio da
coluna ou domnio do campo.
Valores Vazios
Deve ser especificado se os campos da coluna podem
estar vazios ("null" em ingls) ou no. Estar vazio indica
que o campo no recebeu nenhum valor de seu domnio.
As colunas nas quais no so admitidos valores vazios
so chamadas de colunas obrigatrias.
As colunas nas quais podem aparecer campos vazios
so chamadas de colunas opcionais.
Normalmente, um SGBD relacional exigem que todas
colunas que compem a chave primria seja obrigatrias
Restries de Integridade
Um dos objetivos primordiais de um SGBD a
integridade de dados. Dizer que os dados de
um banco de dados esto ntegros significa
dizer que eles refletem corretamente a
realidade apresentada pelo banco de dados e
que so consistentes entre si.
Para tentar garantir a integridade de um banco
de dados os SGBD oferecem o mecanismo de
restries de integridade.
Restries de Integridade
Uma restrio de integridade uma regra de
consistncia de dados que garantida pelo prprio
SGBD. No caso da abordagem relacional, costuma-se
classificar as restries de integridade nas seguintes
categorias:
Integridade de Domnio
Restries deste tipo especificam que o valor de um
campo deve obedecer a definio de valores
admitidos para a coluna (o domnio da coluna).
Ex.: Nmero inteiro, nmero real, alfa-numrico de
tamanho definido, data, etc...
Restries de Integridade
Integridade de Vazio
Atravs deste tipo de restrio de integridade
especificado se os campos de uma coluna podem ou
no ser vazios (se a coluna obrigatria ou
opcional).
Ex.: Campos que compe a chave primria sempre
devem ser diferentes de vazio.
Integridade de Chave
Trata-se da restrio que define que os valores da
chave primria e alternativa devem ser nicos.
Restries de Integridade
Integridade Referencial
a restrio que define que os valores dos campos
que aparecem em uma chave estrangeira devem
aparecer na chave primria da tabela referenciada.
Esquema do Banco de Dados
A especificao de um banco de dados
relacional ( chamada de esquema do banco de
dados) deve conter no mnimo a definio do
seguinte:
Tabelas que formam o banco de dados
Colunas que as tabelas possuem
Restries de integridade
Consulta Base de Dados
Nas consultas a um banco de dados relacional,
usada a linguagem SQL, uma linguagem
padro de definio e manipulao do banco
de dados.
Consulta - Exemplo
A consulta abaixo busca os nomes dos empregados que
estejam vinculados a um departamento em cujo nome
aparece a palavra Computao e que pertencem a
categoria funcional Programador.
Consulta - Observaes
Na instruo SQL, o programador no faz referncia
a nenhum tipo de caminho de acesso. Quem decide
que caminhos de acesso sero eventualmente
usados quando da execuo da instruo o SGBD.
Quando em um a instruo esto envolvidas duas
tabelas, a associao entre as linhas das duas
tabelas feita normalmente por um operao
chamada de juno ("join"). No caso do exemplo as
linhas de Emp so associadas s linhas de Dept pela
igualdade do cdigo do departamento.
Projeto de Banco
de Dados
Projeto Lgico
Transformaes entre Modelos
O projeto lgico consta da transformao de
um modelo ER em um modelo lgico, que
implementa, a nvel de SGBD relacional, os
dados representados abstratamente no modelo
ER. O termo "implementao" significa que
ocorree uma transformao de um modelo
mais abstrato para um modelo que contm
mais detalhes de implementao.
Transformaes entre Modelo ER e
Modelo Relacional
Viso Geral Projeto Lgico
Transformao de Entidade em
Tabela
Traduo de Entidade com
Identificador Externo
Chave primria composta por
diversos identificadores externos
Traduo de um Relacionamento
para uma Tabela
Colunas Adicionais dentro da Tabela
de Entidade
Traduo de Relacionamento
atravs de Fuso de Tabelas
Implementao de Relacionamento
1:1 com Participao Obrigatria
Entidade com Participao Opcional
e a Outra Participao Obrigatria
Ambas Entidades tem Participao
Obrigatria
Traduo de Relacionamentos 1:n
atravs da Adio de Colunas
Traduo de Relacionamento 1:n
Cardinalidade Mxima 1 Opcional
Opes de Implementao
Relacionamento de Grau Maior que
Dois
Implementao do Modelo
Generalizao / Especializao -
Relacionamento Mutuamente Exclusivos
Opes de Implementao
Opo 1:
Opo 2:
Eliminando Atributos Multi-
Valorados
Opes de Implementao
Opo 1:
Opo 2:
Normalizao
um processo a partir do qual se aplicam
regras a todas as tabelas do banco de dados
com o objetivo de evitar redundncia de dados
e permitir um armazenamento consistente e
um acesso eficiente aos dados do banco.
Normalizao - Formas Normais
Existem vrias formas normais, vamos estudar
as trs mais utilizadas.
1FN - 1 Forma Normal
2FN - 2 Forma Normal
3FN - 3 Forma Normal
Normalizao - 1FN
Na 1 Forma Normal, todos os atributos de uma tabela
devem ser atmicos, ou seja, a tabela no deve conter
grupos repetidos e nem atributos com mais de um valor.
Para deixar nesta forma normal, preciso identificar a
chave primria da tabela, identificar a(s) coluna(s) que
possuem dados repetidos e remov-la(s), criar uma nova
tabela com a chave primria para armazenar o dado
repetido e, por fim, criar uma relao entre a tabela
principal e a secundria.
Por exemplo:
PESSOA(ID,NOME,ENDERECO,TELEFONES)
Normalizao - 1FN - Continuao
A tabela apresenta a chave primria ID e o atributo
TELEFONES multivalorado, portanto, a tabela no est
na 1FN. Para deix-la na 1FN, vamos criar uma nova
tabela chamada TELEFONE que conter PESSOA_ID
como chave estrangeira de PESSOA e TELEFONE
como o valor multivalorado que ser armazenado.
Soluo:
PESSOA(ID,NOME,ENDERECO)
TELEFONE(PESSOA_ID,TELEFONE)
Normalizao - 2FN
Para estar na 2 Forma Normal preciso estar primeiro
na 1FN. Alm disso, todos os atributos no chaves da
tabela devem depender unicamente da chave primria
(no pode depender apenas de parte dela). Para deixar
na 2 Forma Normal, preciso identificar a s colunas
que no so funcionalmente dependentes da chave
primria da tabela e, em seguida, remover essa coluna
da tabela principal e criar uma nova tabela com esses
dados.
Por exemplo, considere a tabela ALUNO_CURSO:
ALUNO_CURSO(ID_ALUNO,ID_CURSO,NOTA,
DESC_CURSO)
Normalizao - 2FN - Continuao
Nessa tabela, o atributo DESC_CURSO depende
apenas da chave primria ID_CURSO. Dessa forma, a
tabela no est na 2FN. Para tanto, cria-se uma nova
tabela chamada CURSO que tem como chave primria
ID_CURSO e atributo DESCRICAO retirando, assim o
atributo DESC_CURSO da tabela ALUNO_CURSO.
Soluo:
ALUNO_CURSO(ID_ALUNO,ID_CURSO,NOTA)
CURSO(ID,DESCRICAO)
Normalizao - 3FN
Para estar na 3 Forma Normal preciso estar na 2FN.
Alm disso, os atributos no chave de uma tabela
devem ser mutuamente independentes e dependentes
unicamente e exclusivamente da chave primria(um
atributo B funcionalmente dependente de A se, e se
somente se, para cada valor de A s existe um valor de
B). Para atingir essa forma normal, preciso identificar
as colunas que so funcionalmente dependentes das
outras colunas no chave e extra-las para outra tabela.
Considere, como exemplo, a tabela FUNCIONARIO:
FUNCIONARIO(ID,NOME,ID_CARGO,DESC_CARGO)
Normalizao - 3FN - Continuao
O atributo DESC_CARGO depende exclusivamente de
ID_CARGO (atributo no chave) e, portanto, deve-se
criar uma nova tabela com esse atributos.
Dessa forma, ficamos com as seguintes tabelas:
FUNCIONARIO(ID,NOME,ID_CARGO)
CARGO(ID,DESCRICAO)
Normalizao - Exerccio
Matricula Nome CodCargo NomeCargo CodProjeto DataFim QtdeHoras
120 Joo 1 Programador 1 17/07/95 37
120 Joo 1 Programador 8 12/01/96 12
270 Gabriel 2 Analista 12 17/07/95 45
270 Gabriel 2 Analista 8 12/01/95 21
274 Carla 3 Projetista 17 17/07/96 107
279 Ana 1 Programador 12 12/01/96 10
279 Ana 1 Programador 12 21/03/96 38
279 Ana 1 Programador 17 21/03/96 22
Normalize a tabela EMPREGADO a seguir:
Referncias
Heuser, Carlos A. Projeto de Banco de
Dados. 4a Edio. Instituto de Informtica
do Rio Grande do Sul. Editora Sagra. 1998.