Buscar

E-book 2 Estrutura e Modelagem de Dados

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 44 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 44 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 44 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

ESTRUTURA E 
MODELAGEM 
DE DADOS
E-book 2
 César Torres Fernandes 
Neste E-Book:
INTRODUÇÃO�������������������������������������������4
MODELO RELACIONAL �������������������������� 5
CONCEITOS ��������������������������������������������������������5
TABELAS �����������������������������������������������������������10
TIPOS DE CHAVES �������������������������������� 12
ÍNDICES ��������������������������������������������������� 13
REGRAS DE INTEGRIDADE ����������������� 14
MAPEAMENTO DO MODELO ER 
PARA O MO,DELO RELACIONAL ������� 15
NORMALIZAÇÃO �����������������������������������23
PRIMEIRA FORMA NORMAL ��������������26
SEGUNDA FORMA NORMAL ��������������28
TERCEIRA FORMA NORMAL ������������� 30
FORMA NORMAL DE BOYCE / 
CODD �������������������������������������������������������32
QUARTA FORMA NORMAL ���������������� 34
QUINTA FORMA NORMAL ������������������35
2
DESNORMALIZAÇÃO ���������������������������36
CONSIDERAÇÕES FINAIS ��������������������39
SÍNTESE �������������������������������������������������� 40
3
INTRODUÇÃO
Neste módulo, estudaremos os sistemas de bancos 
de dados relacionais, o mapeamento entidade-rela-
cionamento para o modelo relacional e a aplicação 
da normalização de dados� 
4
MODELO RELACIONAL
Aqui, conheceremos um pouco sobre o modelo 
relacional e seu componente básico� Além disso, 
conheceremos as relações e a estruturação lógica 
composta de linhas e colunas�
CONCEITOS 
Criado por Edgar Frank Codd no início dos anos 1970, 
o modelo relacional baseia-se no princípio de que 
as informações em uma base de dados podem ser 
consideradas como relações matemáticas e que são 
representadas por meio do uso de tabelas bidimen-
sionais (linhas e colunas), conforme ilustrado na 
Figura 1, colocando assim os dados em estruturas 
simples de armazenamento e nas quais a visão do 
usuário é privilegiada�
Figura 1: Exemplo de tabela bidimensional. Fonte: Elaboração pró-
pria.
Formalmente, podemos conceituar o modelo rela-
cional com base em conceitos matemáticos relacio-
nados à Teoria de Conjuntos, bem como à Lógica de 
Predicados� Para evitar nos aprofundarmos em con-
ceitos matemáticos, podemos pensar uma Relação 
5
como uma matriz composta de linhas e colunas, 
sendo que as linhas (ou tuplas) e cada coluna repre-
sentam um atributo� As operações sobre elas são 
feitas por linguagens declarativas, que manipulam 
a álgebra relacional (também criada por E� F� Codd), 
como é o caso da linguagem SQL�
Podcast 1 
A implementação do Modelo Relacional é realiza-
da pelos Sistemas de Gerenciamento de Banco de 
Dados Relacionais (SGBDR ou Relational Database 
Management System – RDBMS)� Esse tipo de SGBD 
tem a capacidade de ocultar a complexidade do mo-
delo para o usuário final. Este, por seu turno, pode 
manipular e consultar, de maneira lógica e intuitiva, 
os dados armazenados em uma coleção de tabelas�
A ascensão do modelo relacional e dos sistemas 
de gerenciamento de banco de dados relacionais 
ocorreu, principalmente, pelos seguintes motivos:
 ● Independência total dos dados (sua estrutura 
lógica)�
 ● Visão múltipla dos dados�
 ● Comunicação mais fluida entre o departamento e 
profissionais de TI e usuários.
 ● Redução acentuada na atividade de desen-
volvimento de aplicações e o tempo gasto em 
manutenção�
6
https://famonline.instructure.com/files/407282/download?download_frd=1
 ● Melhoria na segurança dos dados e mais agili-
dade na questão gerencial da informação ligada ao 
processo decisório da organização�
 ● Utilização da linguagem de programação declara-
tiva, adotada pela maioria dos sistemas de geren-
ciamento de banco de dados relacionais, SQL, que 
permite ao usuário especificar o que deve ser feito 
sem especificar como deve ser feito.
Pensando na linguagem SQL, qualquer aplicação 
para o banco de dados relacional baseado na lin-
guagem SQL envolve três partes:
1. Interface de usuário: permite ao usuário interagir 
com os dados utilizando a linguagem SQL�
2. Coleção de tabelas armazenadas: todos os da-
dos são percebidos como dados armazenados em 
tabelas, apresentando ao usuário final os dados de 
maneira fácil de entender�
3. Mecanismo SQL: o mecanismo SQL executa to-
das as consultas e demais operações solicitadas 
pelo usuário final.
Ao definir o modelo relacional, Edgar F. Codd es-
tabeleceu um conjunto de 12 regras para determi-
nar a aderência de um SGBD ao modelo relacional 
(MACHADO; ABREU, 2004)� Essas regras podem ser 
aplicadas em qualquer sistema de banco de dados 
que gerencia dados armazenados usando apenas 
seus recursos relacionais� Essa é uma regra básica 
7
que atua como base para todas as outras regras� 
Observe as 12 regras:
1. Regra de informação: dados armazenados em um 
banco de dados, sejam eles do usuário ou metada-
dos, devem ser o valor de alguma célula da tabela� 
Tudo em um banco de dados deve ser armazenado 
em um formato de tabela�
2. Regra de acesso garantido: a garantia de que 
cada elemento de dados (valor) seja acessível logi-
camente com uma combinação de nome da tabela, 
chave primária (valor da linha) e nome do atributo 
(valor da coluna)� Nenhum outro meio, como pon-
teiros, pode ser usado para acessar os dados�
3. Tratamento sistemático de valores nulos: os valo-
res NULL em um banco de dados devem receber um 
tratamento sistemático e uniforme� Trata-se de uma 
regra muito importante, visto que um NULL pode ser 
interpretado como um dos seguintes: dados estão 
faltando, dados não são conhecidos ou dados não 
são aplicáveis�
4. Catálogo online ativo: a descrição da estrutura 
de todo o banco de dados deve ser armazenada em 
um catálogo online, conhecido como dicionário de 
dados, o qual pode ser acessado por usuários autori-
zados� Os usuários podem usar a mesma linguagem 
de consulta para acessar o catálogo que eles usam 
para acessar o próprio banco de dados�
Podcast 2 
8
https://famonline.instructure.com/files/407283/download?download_frd=1
5. Regra abrangente de subidioma de dados: um 
banco de dados só pode ser acessado por meio 
de uma linguagem com sintaxe linear que suporte 
operações de definição de dados, manipulação de 
dados e gerenciamento de transações� Essa lingua-
gem pode ser usada diretamente ou por intermédio 
de alguma aplicação� Se o banco de dados permitir 
acesso aos dados sem nenhuma ajuda dessa lin-
guagem, será considerado uma violação�
6. Exibir regra de atualização: todas as visualiza-
ções de um banco de dados, que teoricamente po-
dem ser atualizadas, também devem ser atualizáveis 
pelo sistema�
7. Regra de inserção, atualização e exclusão de alto 
nível: um banco de dados deve suportar inserção, 
atualização e exclusão de alto nível� Isso não deve 
ser limitado a uma única linha, ou seja, também deve 
suportar operações de união, interseção etc. a fim 
de gerar conjuntos de registros de dados�
8. Independência de dados físicos: os dados ar-
mazenados em um banco de dados devem ser in-
dependentes dos aplicativos que acessam o banco 
de dados� Qualquer alteração na estrutura física de 
um banco de dados não deve afetar a maneira como 
os dados estão sendo acessados por aplicativos 
externos�
9. Independência de dados lógicos: os dados lógi-
cos em um banco de dados devem ser independen-
tes da visão do usuário (aplicativo)� Qualquer altera-
ção nos dados lógicos não deve afetar os aplicativos 
9
que os utilizam� Por exemplo, se duas tabelas são 
mescladas ou uma é dividida em duas tabelas di-
ferentes, não deve haver impacto ou alteração no 
aplicativo do usuário� Essa é uma das regras mais 
difíceis de aplicar�
10. Independência da integridade: um banco de 
dados deve ser independente do aplicativo que o 
utiliza� Todas as restrições de integridade podem 
ser modificadas de maneira independente, sem a 
necessidade de qualquer alteração no aplicativo� 
Esta regra torna um banco de dados independente 
do aplicativo front-end, assim como de sua interface�
11. Independência da distribuição: o usuário final 
não pode visualizarque os dados estão distribuídos 
por vários locais� Os usuários devem ter a impres-
são de que os dados estão sempre localizados em 
apenas um website� Essa regra foi considerada a 
base dos sistemas de banco de dados distribuídos�
12. Regra de não subversão: se um sistema tiver uma 
interface que forneça acesso a registros de baixo 
nível, ela não poderá subverter o sistema tampouco 
ignorar restrições de segurança e integridade�
TABELAS
No geral, em um modelo relacional as tabelas têm 
características como (ROB; CORONEL, 2011):
 ● Uma tabela é percebida como uma estrutura bidi-
mensional composta por linhas e colunas�
10
 ● Cada linha da tabela (tupla) representa uma ocor-
rência da entidade única dentro do conjunto de 
entidades�
 ● Cada coluna da tabela representa um atributo, e 
cada coluna tem um nome distinto�
 ● Cada interseção de linha / coluna representa um 
único valor de dados�
 ● Todos os valores em uma coluna devem estar em 
conformidade com o mesmo formato de dados�
 ● Cada coluna possui um intervalo específico de 
valores conhecido como domínio do atributo�
 ● A ordem das linhas e colunas é irrelevante para 
o SGBD�
 ● Cada tabela deve ter um atributo ou uma combi-
nação de atributos que identifique exclusivamente 
cada linha�
11
TIPOS DE CHAVES
Uma chave designa o conceito lógico de item de 
busca, ou seja, um dado que será empregado nas 
consultas à base de dados� A partir disso, podemos 
definir os seguintes tipos de chaves:
 ● Superchave: determina funcionalmente todos os 
atributos de uma linha, ou seja, a superchave é qual-
quer chave que identifique exclusivamente cada 
linha de uma tabela�
 ● Chave candidata: descrita como uma superchave 
sem atributos desnecessários (superchave mínima), 
ou seja, os identificadores são candidatos a chave 
primária�
 ● Chave primária (primary key): atributo de uma ta-
bela que identifica exclusivamente uma tupla (linha)�
 ● Chave secundária (secundary key): serve para de-
finir uma chave usada estritamente para recuperar 
dados� No modelo relacional, uma tabela é acessível 
a qualquer atributo, independentemente de este ser 
declarado como chave ou não�
 ● Chave estrangeira (foreign key): são elos entre 
tabelas� Quando dizemos que duas tabelas estão re-
lacionadas por meio de atributos comuns, devemos 
observar que provavelmente essa coluna em uma 
das tabelas é uma chave primária e, na outra tabela, 
esse atributo vai caracterizar o que é denominado 
chave estrangeira, propiciando assim uma ligação 
lógica (relacionamento) entre as tabelas�
12
ÍNDICES
Índices são um recurso físico que visam a otimizar 
a recuperação de uma informação, via um método 
de acesso� Têm como principal objetivo melhorar 
o desempenho de um sistema� Um atributo-chave 
pode ser utilizado como índice, mas um índice não 
é necessariamente uma chave� A forma de criação 
do índice depende do ambiente relacional�
Do ponto de vista conceitual, um índice compõe-se 
de uma chave de índice e um conjunto de ponteiros� 
A chave do índice é, com efeito, o ponto de referência 
do índice� Mais formalmente, um índice é um arranjo 
ordenado de chaves e ponteiros, em que cada chave 
aponta para a localização dos dados identificados 
pela chave�
13
REGRAS DE INTEGRIDADE
As regras de integridade de um modelo de banco de 
dados relacional são importantes para um projeto 
de banco de dados, pois garantem a confiabilida-
de das informações contidas no banco de dados 
(MACHADO; ABREU, 2004)� As regras são:
 ● Integridade de entidade: a chave primária não 
pode conter um valor nulo (NULL)� O valor nulo não é 
o valor zero nem o caractere branco, é simplesmente 
a não existência de conteúdo neste campo�
 ● Integridade referencial: se a Tabela A possui uma 
chave estrangeira, a qual é chave primária em outra 
Tabela B, então ela deve ser igual a um valor de cha-
ve primária existente em B, ou ser nula (NULL)� Não 
pode existir na chave estrangeira um valor que não 
exista na tabela na qual ela é chave primária, ou seja, 
todo valor de chave estrangeira não nulo deve fazer 
referência a um valor de chave primária existente�
Sendo assim, podemos determinar que, no Modelo 
Relacional, uma tabela será acessível por qualquer 
campo (atributo) independente se esse campo é 
declarado como chave ou não� Ainda, que o rela-
cionamento entre conjunto de dados (tabelas) não 
existe fisicamente, pois o relacionamento é apenas 
lógico e representado por chaves estrangeiras� Por 
fim, que a maioria dos SGBDR se utiliza de lingua-
gens autocontidas e não procedurais, como o SQL 
e que os ambientes relacionais têm um otimizador 
estratégico para escolher o melhor caminho para 
recuperação dos dados�
14
MAPEAMENTO DO MODELO 
ER PARA O MO,DELO 
RELACIONAL
Conforme observam Machado e Abreu (2004), no 
projeto de banco de dados, temos a necessidade de 
passar as visões do modelo conceitual para o mo-
delo lógico relacional, no qual os dados são vistos 
como estruturas de dados voltadas às caracterís-
ticas do modelo lógico escolhido, visando à imple-
mentação do banco de dados�
Para a realização de tal tarefa, temos que utilizar 
um conjunto de regras de conversão denominado 
mapeamento do Modelo ER para o Modelo Relacional 
e, necessariamente, observar as características do 
SGBD destino�
 ● Mapeamento das Entidades: toda entidade do mo-
delo ER torna-se uma tabela no Modelo Relacional, 
da mesma forma que os atributos da entidade se 
tornam campos da tabela criada� A chave primária e 
as chaves candidatas são projetadas para elas não 
permitirem ocorrências múltiplas nem admitirem os 
nulos� Em relação às entidades fracas, as chaves 
são formadas pelos atributos indicados, precedidos 
pelos atributos que compõem a chave primária das 
entidades da qual ela é fraca�
 ● Mapeamento dos Atributos: atributos das enti-
dades e relacionamentos devem ser gerados de 
maneira a minimizar o consumo de espaço de ar-
15
mazenamento e tornar mais eficiente a recuperação 
dos dados� Todas as características de SGBD em 
uso devem ser exploradas; para tanto, é preciso 
considerar se os campos têm ou não a especificação 
de extensão em bytes, se há localização no interior 
do registro que propicie vantagens na recuperação 
e se há compactação de espaços não ocupados�
 ● Mapeamento dos Relacionamentos: em relação ao 
mapeamento dos relacionamentos, temos que as 
alternativas possíveis são divididas em dois grandes 
grupos, a saber:
1. Navegação incorporada: trabalha em consonância 
com o conceito de chave estrangeira�
2. Navegação disjunta: trabalha sem a modificação 
das definições dos registros já existentes, criando 
registros (entidades) diferentes das existentes, as 
quais têm a finalidade de propiciar a navegação.
No que tange ao mapeamento dos relacionamen-
tos, temos que analisar todos os tipos de relaciona-
mentos existentes, caso a caso (MACHADO; ABREU, 
2004):
 ● Relacionamento 1:N (entidades distintas): a en-
tidade (tabela) cuja conectividade é N carrega o 
identificador da entidade (tabela) cuja conectividade 
é 1 (chave estrangeira), e os atributos do relaciona-
mento, se houver, tal qual observada na Figura 2:
16
Tem
(1,n)(1,1)
cod_dep
Departamento cod_func
(1,n)(1,1)
Funcionário
Modelo Entidade-Relacionamento 1:N
Modelo Relacional 1:N
Departamento
 cod_dep: Texto (1)
Departamento
 cod_func: Texto (1)
 cod_dep: Texto (1)
Figura 2: Tabelas distintas com relacionamento 1:N. Fonte: Adaptada 
de Machado e Abreu (2004).
 ● Relacionamento 1:N (autorrelacionamento): a cha-
ve primária da entidade é incluída na própria entida-
de como chave estrangeira, gerando uma estrutura 
de acesso a partir da chave estrangeira (Figura 3):
Compõe
(0,1)
(0,n)
cod_peca
Peça
Modelo Entidade-Relacionamento 1:N (autorrelacionamento)
Modelo Relacional 1:N (autorrelacionamento)
Peça
 cod_peca: Text...
 cod_peca_FK: Te...
Figura 3: Tabela com relacionamento 1:N (autorrelacionamento). 
Fonte: Adaptada de Machado e Abreu (2004).
17
 ● Relacionamento 1:1 (entidadesdistintas): as en-
tidades (tabelas) envolvidas neste relacionamento 
vão possuir o identificador da outra (uma ou outra 
ou ambas) conforme a conveniência do projeto e 
segundo o acesso a essas tabelas (Figura 4):
cod_depcod_departamento cod_funcionario
Chefia
(1,1)(0,1)
Departamento
(1,1)(0,1)
Funcionário
Modelo Entidade-Relacionamento 1:1
 Modelo Relacional 1:1
Departamento
 cod_departamen...
Funcionario
 cod_funcionario: ...
 cod_funcionario: ...
Figura 4: Tabelas distintas com relacionamento 1:1. Fonte: Adaptada 
de Machado e Abreu (2004).
 ● Relacionamento 1:1 (autorrelacionamento): a chave 
primária da entidade é incluída na própria entidade 
(chave estrangeira) e gera uma estrutura de acesso 
para ela (Figura 5)�
18
Casado_com
(0,1)
(0,1)
cod_pessoa
Pessoa
Modelo Entidade-Relacionamento 1:1(autorrelacionamento)
Modelo Relacional 1:N (autorrelacionamento)
Peça
 cod_pessoa: Text...
 cod_pessoa_FK: Te...
Figura 5: Tabela com relacionamento 1:1 (autorrelacionamento). 
Fonte: adaptada de Machado e Abreu (2004).
 ● Relacionamento M:N (entidades distintas ou au-
torrelacionamento): o relacionamento torna-se uma 
tabela que carrega os atributos (se houver) e os 
identificadores das tabelas que ele relaciona. Esse 
é o único caso em que um relacionamento se torna 
uma tabela (Figura 6)�
19
cod_funcionario cod_projeto
Alocado
(1,n)(1,n)
Funcionário
(1,1)
(1,n)(1,n)
(1,1)
Projeto
Modelo Entidade-Relacionamento M:N
Projeto
 cod_projeto: Tex...
Funcionário
 cod_funcionario: ...
 Modelo Relacional M:N
Alocado
 cod_projeto: Tex...
 cod_funcionario: ...
Figura 6: Tabelas distintas com relacionamento M:N.Fonte: 
Adaptada de Machado e Abreu (2004).
 ● Relacionamento múltiplo: o relacionamento é ma-
peado em uma tabela, gerando estruturas de aces-
so condizentes com o grau do relacionamento, ou 
seja, quantas forem necessárias� A chave primária 
de cada uma das entidades associadas gera uma 
estrutura de acesso; assim, a chave da nova tabela é 
a concatenação das chaves estrangeiras (Figura 7)�
20
Conhecto_
Usado
(0,n)
(0,n)
(0,n)
Funcionário Projeto
Conhecimento
Modelo Entidade-Relacionamento (relacionamento múltiplos)
Modelo Relacional (relacionamentos múltiplos)
(0,n)
(0,n) (0,1)(0,1) (0,n)
(0,1)
Conhecto_Usado
Conhecto_Usado
Funcionário ProjetoFigura 7: Tabelas com relacionamento múltiplos. Modelo Entidade-
Relacionamento (relacionamentos múltiplos). Fonte: Adaptada de 
Machado e Abreu (2004).
Conhecto_
Usado
(0,n)
(0,n)
(0,n)
Funcionário Projeto
Conhecimento
Modelo Entidade-Relacionamento (relacionamento múltiplos)
Modelo Relacional (relacionamentos múltiplos)
(0,n)
(0,n) (0,1)(0,1) (0,n)
(0,1)
Conhecto_Usado
Conhecto_Usado
Funcionário Projeto
Figura 8: Modelo Relacional (relacionamentos múltiplos). Fonte: 
Adaptada de Machado e Abreu (2004).
 ● Generalização: a entidade que representa “o todo” 
torna-se uma tabela, e as entidades que representam 
as especializações tornam-se tabelas que carregam 
o identificador (chave primária) da tabela à qual 
pertencem (Figura 9)�
21
cod_departamento cod_funcionario
Relação_1
(1,n)(1,1)
Departamento Funcionário
Modelo Entidade-Relacionamento com Generalização
Engenheiro Vendedor
nomenome nome
(1,1)
(0,n)(0,n)(0,n)
(1,1)(1,1)
(1,1) (1,n)
Funcionário
 cod_funcionario: ...
Departamento
 cod_departmen...
Modelo Relacional com Generalização
Secretaria
nome: Texto(1)
 cod_funcionario: ...
 cod_departamen...
Engenheiro
nome: Texto(1)
 cod_funcionario: ...
Vendedor
nome: Texto(1)
 cod_funcionario: ...
Secretaria
Figura 9: Tabelas com generalizações. Fonte: Adaptada de Machado 
e Abreu (2004).
Em resumo, as tabelas são componentes básicos 
de um sistema de banco de dados relacional, à me-
dida que uma tabela é representada por uma matriz 
composta por linhas (tuplas) e colunas� Cada linha 
representa uma única entidade dentro do conjunto 
22
de entidades, bem como cada coluna representa 
atributos das entidades�
As chaves são elementos centrais para o uso de ta-
belas relacionais, uma vez que elas definem depen-
dências funcionais, isto é, outros atributos depen-
dem da chave e, portanto, podem ser encontrados 
se o valor da chave for conhecido� Cada linha da 
tabela deve ter uma chave primária; como ela deve 
ser exclusiva, nenhum valor nulo é permitido� Embora 
sejam independentes, as tabelas podem se vincular 
por atributos comuns� Portanto, a chave primária de 
uma tabela pode aparecer como chave estrangeira 
em outra tabela à qual se vincula�
23
NORMALIZAÇÃO
Ao projetarmos um banco de dados, podemos ter um 
conjunto de anomalias relacionadas à atualização 
(inclusão, alteração e exclusão) que pode causar 
problemas, como grupos repetitivos de dados (atri-
butos multivalorados), dependências parciais em 
relação a uma chave concatenada, redundâncias de 
dados, perdas acidentais de informação, dificuldade 
na representação de fatos da realidade observada e 
dependências transitivas entre atributos�
Com o intuito de minimizar esses problemas, E� F� 
Codd introduziu, em 1970, o conceito de normaliza-
ção, tornando o modelo lógico de dados bastante 
estável e com poucas necessidades de manutenção� 
Após a definição de um modelo de dados, aplica-se 
a normalização (visão Top-Down), obtendo assim 
elementos mais estáveis, tendo em vista sua imple-
mentação física em um banco de dados�
SAIBA MAIS
Saiba mais sobre a visão Top-Down, lendo Top 
down: o que é e como funciona esse conceito?, 
de Tiago Reis, o qual se encontra disponível em: 
https://www.sunoresearch.com.br/artigos/top-do-
wn/� Acesso em: 19 nov� 2019�
A respeito da normalização, Rob e Coronel (2011) 
afirmam que é um processo que avalia e corrige es-
truturas e tabelas de dados de modo a minimizar as 
24
https://www.sunoresearch.com.br/artigos/top-down/
https://www.sunoresearch.com.br/artigos/top-down/
redundâncias de dados, reduzindo a probabilidade 
de anomalias, atuando por meio de uma série de 
estágios chamados formas normais�
Entretanto, advertem Machado e Abreu (2004), antes 
de analisarmos as formas normais, devemos enten-
der os conceitos de dependência funcional, pois é 
sobre esses conceitos que a maior parte da teoria 
que envolve a normalização foi baseada� Assim, 
temos:
 ● Dependência funcional: dada uma entidade qual-
quer, dizemos que um atributo ou conjunto de atri-
butos A é dependente funcional de um outro atributo 
B contido na mesma entidade� Se, a cada valor de 
B, existirem linhas da entidade em que aparece um 
único valor de A, A depende então funcionalmente 
de B�
 ● Dependência funcional total ou completa e par-
cial: quando da ocorrência de uma chave primária 
concatenada, um atributo ou conjunto de atributos 
depende completa ou totalmente da chave primária 
concatenada, se e somente se a cada valor da chave 
(e não parte dela), estiver associado um valor para 
cada atributo, ou seja, um atributo (dependência 
parcial) não se apresenta com dependência com-
pleta ou total quando só depende de parte da chave 
primária concatenada e não dela como um todo� 
Assim, devemos observar que a dependência total 
ou completa só ocorre quando a chave primária 
for composta por vários (concatenados) atributos, 
ou seja, em uma entidade de chave primária com-
25
posta de um único atributo não possui esse tipo de 
dependência�
Dependência funcional transitiva: quando um atri-
buto ou conjunto de atributos A depende de outro 
atributo B que não pertence à chave primária, mas 
é dependente funcional desta, dizemos que A é de-
pendente transitivo de B�
Com bases nos conceitos sobre as dependências 
funcionais entre atributos de uma entidade, podemos 
verificar as formas normais. Na sequência, estuda-
remos em detalhes cada uma dessas formas�
26
PRIMEIRA FORMA NORMAL
Conforme postulam Machado e Abreu (2004), para 
a Primeira Forma Normal (1FN) temos que cada 
ocorrência da chave primária deve corresponder a 
uma e somente uma informação de cada atributo, 
ou seja, não deveconter grupos repetitivos (mul-
tivalorados), as tabelas aninhadas� Devemos de-
compor então cada entidade não normalizada em 
entidades à medida que o número de conjunto de 
atributos repetitivos; nas novas entidades criadas, a 
chave primária será composta pela chave primária 
da entidade original mais o(s) atributo(s) do grupo 
repetitivo identificados como chave primária deste 
grupo�
Exemplo:
Entidade não normalizada
PEDIDO ( num_pedido, prazo_entrega, cliente, 
endereço, cidade, uf, cnpj, inscricao_estadual, 
cod_produto(*), unid_produto(*), quant_produto(*), 
descr_produto(*), valor_unit_produto(*), valor_to-
tal_produto(*), valor_total_pedido, cond_vendedor, 
nome_vendedor)
Ao analisarmos essa entidade, verificamos a exis-
tência de atributos repetidos (marcados com (*))� 
Assim, ao aplicarmos a 1FN, ficaremos com:
27
Entidades normalizadas – 1FN
PEDIDO ( num_pedido, prazo_entrega, cliente, en-
dereço, cidade, uf, cnpj, inscricao_estadual, va-
lor_total_pedido, cond_vendedor, nome_vendedor)
ITEM_PEDIDO(num_pedido, cod_produto, unid_pro-
duto, quant_produto, descr_produto, valor_unit_
produto, valor_total_produto)
Dessa forma, as tabelas que estejam na 1FN não 
apresentam grupos de repetição (tabelas aninhadas), 
ou seja, cada linha/coluna possui um e somente 
um valor�
 
28
SEGUNDA FORMA 
NORMAL
Segundo Machado e Abreu (2004), uma tabela para 
estar na Segunda Forma Normal (2FN) não pode ter 
atributos com dependência parcial em relação à 
chave primária� Para a aplicação da 2FN, devemos 
verificar se alguma entidade possui chave primária 
concatenada; já para as que satisfizerem tal condi-
ção, analisar se existe algum atributo ou conjunto de 
atributos com dependência parcial em relação a al-
gum elemento da chave primária concatenada� Com 
isso, são geradas novas entidades, que herdarão a 
chave parcial e todos os atributos que dependem 
da chave parcial�
 Exemplo:
Entidades normalizadas – 1FN
PEDIDO ( num_pedido, prazo_entrega, cliente, en-
dereço, cidade, uf, cnpj, inscricao_estadual, va-
lor_total_pedido, cond_vendedor, nome_vendedor)
ITEM_PEDIDO(num_pedido, cod_produto, unid_pro-
duto, quant_produto, descr_produto, valor_unit_
produto, valor_total_produto)
Ao analisar ITEM_PEDIDO, verificamos a existência 
de uma chave primária concatenada e de alguns 
atributos que dependem parcialmente do atributo 
29
cod_produto, o qual faz parte da chave primária� 
Assim, ao aplicarmos a 2FN, ficaremos com:
Entidades normalizadas – 2FN
PEDIDO ( num_pedido, prazo_entrega, cliente, en-
dereço, cidade, uf, cnpj, inscricao_estadual, va-
lor_total_pedido, cond_vendedor, nome_vendedor)
ITEM_PEDIDO (num_pedido, cod_produto, quant_
produto, valor_total_produto)
PRODUTO (cod_produto, unid_produto, descr_pro-
duto, valor_unit_produto)
Uma tabela está na 2FN, portanto, quando se apre-
senta na 1FN e não inclui dependências parciais, 
ou seja, não apresenta atributos que tenham de-
pendência apenas de uma parte da chave primária�
30
TERCEIRA FORMA 
NORMAL
De acordo com Machado e Abreu (2004), uma ta-
bela só estará na Terceira Forma Normal (3FN) se 
nenhum de seus atributos possuir dependência 
transitiva em relação a outro atributo da entidade 
que não participe da chave primária, ou seja, não 
exista nenhum atributo intermediário entre a chave 
primária e o próprio atributo observado� Também 
não poderá conter atributos que sejam o resultado 
do cálculo sobre algum atributo�
Exemplo:
Entidades normalizadas – 2FN
PEDIDO ( num_pedido, prazo_entrega, cliente, en-
dereço, cidade, uf, cnpj, inscricao_estadual, va-
lor_total_pedido, cond_vendedor, nome_vendedor)
ITEM_PEDIDO (num_pedido, cod_produto, quant_
produto, valor_total_produto)
PRODUTO (cod_produto, unid_produto, descr_pro-
duto, valor_unit_produto)
Entidades normalizadas – 3FN
PEDIDO ( num_pedido, prazo_entrega, cod_cliente, 
cod_vendedor)
31
ITEM_PEDIDO (num_pedido , cod_produto , 
quant_produto)
PRODUTO (cod_produto, unid_produto, descr_pro-
duto, valor_unit_produto)
CLIENTE (cod_cliente, cliente, endereço, cidade, uf, 
cnpj, inscricao_estadual)
VENDEDOR (cod_vendedor, nome_vendedor)
Assim, uma tabela está na 3FN quando se apresenta 
na 2FN e não inclui dependências transitivas�
32
FORMA NORMAL DE 
BOYCE / CODD
Quando da criação e definições de Codd para as 
2FN e 3FN, é preciso observar que elas não cobriam 
os casos em que ocorrem simultaneamente três 
condições: caso a entidade tenha várias chaves 
candidatas ou caso estas chaves candidatas sejam 
concatenadas (mais de um atributo) e as chaves 
concatenadas compartilham pelo menos um atri-
buto comum�
Robert Boyce foi quem, em 1974, observou tal aspec-
to� Surge então a necessidade de criação da Forma 
Normal de Boyce/Codd (FNBC), que é considera-
da uma extensão da 3FN e foi definida da seguinte 
forma: uma tabela está na FNBC, se e somente se 
todos os determinantes forem chaves candidatas�
Exemplo:
FILHO (nome_filho, endereco_filho, data_nascimen-
to, nome_escola, numero_sala, nome_professor)
Ao analisar a tabela FILHO e assumir que um pro-
fessor pode estar associado a mais de uma es-
cola/sala, temos como determinantes as chaves 
concatenadas:
a) nome_escola e numero_sala 
b) numero_escola e nome_professor
33
Assim, satisfazem-se as três condições: caso a enti-
dade tenha várias chaves candidatas, caso as chaves 
candidatas sejam concatenadas (mais de um atri-
buto) e as chaves concatenadas compartilhem pelo 
menos um atributo comum� Teremos, portanto, as 
chaves candidatas para a tabela FILHO: nome_filho e 
endereco_filho; nome_filho e numero_sala; nome_fi-
lho e nome_professor� Todas as chaves têm atributos 
concatenados e compartilham o mesmo atributo 
(nome_filho); logo, ao aplicar a FNBC, teremos as 
seguintes tabelas:
FILHO (nome_filho, endereco_filho, data_nascimen-
to, nome_escola, numero_sala)
SALA (nome_escola, numero_sala, nome_professor)
Com isso, a tabela está na FNBC quando todos os 
seus determinantes são chaves candidatas�
34
QUARTA FORMA NORMAL
Quando uma entidade possui algum atributo não 
chave e que recebe múltiplos valores para um mes-
mo valor de chave, bem como esta entidade tenha 
no mínimo três atributos, faz-se necessário aplicar 
a Quarta Forma Normal (4FN), ou seja, uma entida-
de que esteja na 3FN também está na 4FN se ela 
não contiver mais do que um fato multivalorado a 
respeito da entidade descrita�
Exemplo:
TABELA (cod_fornecedor, cod_peça, cod_comprador)
Ao analisar a tabela e ela se encontrar na 3FN, verifi-
camos que ela contém dois atributos multivalorados; 
com isso, temos problemas relativos à atualização 
dos dados e de memória (causados pela ocupação 
desnecessária de área de memória)�
Assim, temos que aplicar a 4FN, realizando uma di-
visão da entidade original em duas outras, ambas 
herdando a chave primária e concatenando, em cada 
nova entidade, com os atributos restantes�
FORNECEDOR_PEÇA (cod_fornecedor, cod_peça)
FORNECEDOR_COMPRADOR (cod_fornecedor, 
cod_comprador)
35
QUINTA FORMA NORMAL
A Quinta Forma Normal (5FN) trata de casos bas-
tante particulares, que ocorrem na modelagem de 
dados, ponto em que ocorrem relacionamentos múl-
tiplos (ternários, quaternários, n-ários)� Uma tabela 
está na 5FN quando o conteúdo dessa mesma tabela 
não puder ser reconstruído (junção) a partir de ou-
tras tabelas menores, extraídas da tabela principal� 
Em outras palavras, se ao particionar uma tabela 
e sua junção posterior não conseguir recuperar as 
informações contidas na tabela original, então esta 
tabela estará na 5FN�
36
DESNORMALIZAÇÃO
Quando aplicadas e implementadas em um SGBD, 
as formas normais podem trazer prejuízos; por isso, 
devido às características de construção física de 
certos bancos de dados, entidades e relacionamen-
tos devem ser desnormalizados� Para que o SGBD 
tenha melhor desempenho, deve-se então levar em 
consideração o custo da redundância de dados e as 
anomalias de atualização decorrentes�
A partir da documentação existente no ambiente 
analisado(visão bottom-up) em um ciclo de vida de 
um projeto de banco de dados, a normalização pode 
se mostrar mais satisfatória� Sendo um desenvolvi-
mento do tipo top-down, no qual se cria um modelo 
de dados a partir da visualização da realidade, a 
normalização serve para realizar um aprimoramen-
to deste modelo, tornando-o menos redundante e 
inconsistente� Nessa visão, a normalização torna-
-se um poderoso aliado da implementação física 
do modelo�
SAIBA MAIS
Saiba mais sobre a visão Bottom-Up, lendo o ar-
tigo Você sabe o que são os processos de Top-
-down e Bottom-Up?, que está disponível em: 
https://canaldoensino.com.br/blog/voce-sabe-o-
-que-sao-os-processos-de-top-down-e-bottom-
-up� Acesso em: 19 nov� 2019�
37
https://canaldoensino.com.br/blog/voce-sabe-o-que-sao-os-processos-de-top-down-e-bottom-up
https://canaldoensino.com.br/blog/voce-sabe-o-que-sao-os-processos-de-top-down-e-bottom-up
https://canaldoensino.com.br/blog/voce-sabe-o-que-sao-os-processos-de-top-down-e-bottom-up
Temos cinco tipos básicos de desnormalização:
1. Duas entidades em um relacionamento muitos-
-para-muitos: a tabela de relacionamento resultante 
dessa construção é composta pelas chaves pri-
márias de cada uma das entidades associadas� Se 
implementarmos a junção dessa tabela com uma 
das tabelas de entidade como uma única tabela em 
vez das tabelas originais, podemos evitar determi-
nadas junções frequentes baseadas em ambas as 
chaves, mas apenas os dados não chave de uma 
das entidades originais�
2. Duas entidades em um relacionamento um para 
um: a tabela para essas entidades pode ser imple-
mentada como uma tabela única, evitando junções 
frequentes exigidas por certos aplicativos�
3. Dados de referência em um relacionamento um 
para muitos: quando as chaves primárias artificiais 
são introduzidas em tabelas que não têm chaves pri-
márias ou composições muito grandes, elas podem 
ser adicionadas à entidade filho em um relaciona-
mento um para muitos como uma chave estrangei-
ra e evitar, deste modo, determinadas junções nos 
aplicativos atuais�
4. Entidades com dados mais detalhados: atributos 
de valores múltiplos são geralmente implementados 
como entidades, por isso, são representados como 
registros separados em uma tabela� Às vezes, é mais 
eficiente implementá-las como colunas nomeadas 
individualmente como uma extensão da entidade pai 
38
quando o número de replicações é um número fixo 
pequeno para todas as instâncias da entidade pai�
5. Atributos derivados: se um atributo é derivado de 
outro no momento da execução, em alguns casos, 
é mais eficiente armazenar o valor original e o valor 
derivado diretamente no banco de dados� Adiciona-
se assim, pelo menos, uma coluna extra à tabela 
original, além de se evitar o cálculo repetitivo�
39
CONSIDERAÇÕES FINAIS
Neste texto, tivemos uma visão geral sobre o Modelo 
Relacional, estabelecendo conceitos básicos tanto 
sobre o modelo quanto sobre os sistemas gerencia-
dores de banco de dados relacionais� Em seguida, 
estudamos as 12 regras estabelecidas por Edgar 
Frank Codd para verificar sua aderência ao modelo 
relacional� Também conceituamos tabelas, tipos de 
chaves, índices e as regras de integridade�
Por fim, tratamos do mapeamento do Modelo 
Entidade-Relacionamento para o Modelo Relacional� 
Em relação à Normalização, abordamos as for-
mas normais: 1FN, 2FN, 3FN, 4FN, FNBC e 5FN; na 
sequência, tratamos brevemente do assunto da 
Desnormalização�
40
SÍNTESE
Neste módulo, tivemos uma visão geral do Modelo Relacional, conceitos básicos 
sobre Tabelas, Tipos de chaves, Índices, regras de integridade e mapeamento do 
Modelo Entidade-Relacionamento para Modelo Relacional� Em seguida, estudamos 
as 12 regras criadas por Edgar Frank Codd, com a finalidade de averiguar a aderência 
de um SGBD ao Modelo Relacional (SGBDR)� 
Depois, abordamos os conceitos de Normalização e as Formas normais (1FN, 2FN, 
3FN, FNBC, 4FN e 5FN), discutindo as vantagens desse processo para o projeto de 
banco de dados�
Finalizamos com a apresentação do conceito de Desnormalização e com a discussão 
de quando devemos aplicar esse processo em prol de melhorias no projeto do banco 
de dados dentro de certos contextos�
ESTRUTURA E 
MODELAGEM DE DADOS
MODELAGEM DE DADOS 2
Referências Bibliográficas 
& Consultadas
ALVES, W. P. Banco de Dados: teoria e desenvolvi-
mento. São Paulo: Érica, 2014.
ASCENCIO, A. F. G.; ARAÚJO, G. S. Estruturas 
de dados: algoritmos, análise da complexidade 
e implementações em JAVA e C/C++. São Paulo: 
Pearson Prentice Hall, 2010 [Biblioteca Virtual].
ELMASRI, R.; NAVATHE, S. B. Sistema de banco 
de dados. 6. ed. São Paulo: Pearson Addison-
Wesley, 2010 [Biblioteca Virtual].
GUIMARÃES, A. M.; LAGES, N. A. C. Algoritmos 
e estruturas de dados. Rio de Janeiro: LTC, 2008.
GUIMARÃES, C. C. Fundamentos de Bancos de 
Dados: modelagem, projeto e linguagem SQL. 
Campinas: Editora da Unicamp, 2003.
HEUSER, C. A. Projeto de banco de dados. 6. ed. 
Porto Alegre: Bookman, 2008 [Minha Biblioteca].
MACHADO, F. N. R.; ABREU, M. P. Projeto de 
Banco de Dados: uma visão prática. 8. ed. São 
Paulo. Érica, 2004.
MEDEIROS, L. F.; Banco de dados: princípios e 
prática. Curitiba: InterSaberes, 2013 [Biblioteca 
Virtual].
PUGA, S.; FRANÇA, E.; GOYA, M. Banco de da-
dos: implementação em SQL, PL/SQL e Oracle 11g. 
São Paulo: Pearson Education do Brasil, 2013 
[Biblioteca Virtual].
RAMAKRISHNAN, R.; GEHRKE, J. Sistemas de 
gerenciamento de banco de dados. 3. ed. Porto 
Alegre: AMGH, 2008 [Minha Biblioteca].
ROB, P.; CORONEL, C. Sistemas de banco de da-
dos: projeto, implementação e gerenciamento. 8. 
ed. São Paulo: Cengage Learning, 2011.
TENENBAUM, A. M.; LANGSAM, Y.; 
AUGENSTEIN, M. J.; Estruturas de dados usando 
C. São Paulo: Pearson Makron Books, 2010.
	_GoBack
	INTRODUÇÃO
	MODELO RELACIONAL
	CONCEITOS 
	TABELAS
	TIPOS DE CHAVES
	ÍNDICES
	REGRAS DE INTEGRIDADE
	MAPEAMENTO DO MODELO ER PARA O MO,DELO RELACIONAL
	NORMALIZAÇÃO
	PRIMEIRA FORMA NORMAL
	SEGUNDA FORMA NORMAL
	TERCEIRA FORMA NORMAL
	FORMA NORMAL DE BOYCE / CODD
	QUARTA FORMA NORMAL
	QUINTA FORMA NORMAL
	DESNORMALIZAÇÃO
	CONSIDERAÇÕES FINAIS
	Síntese

Continue navegando