Diagrama de Entidade Associação ou
Relacionamento
Quanto à obrigatoriedade dos elementos de
uma entidade participarem, ou não, no
relacionamento com outra entidade, tem-se:
Participação obrigatória de ambas as entidades
Participação não obrigatória de uma das duas
entidades
Participação não obrigatória de nenhuma das
entidades
1
Diagrama de Entidade Associação ou
Relacionamento
O quadro 12 exemplifica um conjunto de situações e
simbologias utilizadas, neste caso, num
relacionamento binário
Para facilitar a explicação descreve-se, em quase
todos os exemplos, o relacionamento apenas de um
dos lados
No preenchimento da coluna “Descrição”, os valores
entre parêntesis devem ler-se (mínimo..máximo)
2
Diagrama de Entidade Associação ou
Relacionamento
3
Construção do DEA
Na construção de um modelo DEA, realizamse por ordem os seguintes passos:
Identificar as entidades
Identificar associações entre entidades, tipo e grau
de associação
Identificar os atributos identificadores e os
atributos descritores de cada entidade
Definir os graus máximo e mínimo de associações
4
Construção do DEA
Também na construção de um modelo DEA se deve
observar que:
Todos os atributos se aplicam a todas as instâncias de uma
entidade
Quando há grupos repetitivos cria-se uma nova entidade e
uma nova associação. Entende-se por grupo repetitivo um
conjunto de atributos cujos valores se repetem para um
dado valor do atributo identificador
Quando existir relacionamentos de M:M, subdividem-se em
dois relacionamentos 1:M, criando-se uma entidade
associativa adicional, que fará a interface entre as entidades
anteriores e que pode apresentar alguns atributos
específicos
5
Construção do DEA
A partir do conteúdo de dois depósitos de dados, fornecedores
e produtos, de um Dicionário de Dados, desenha-se o
Diagrama de Entidade Associação da figura 1.16, identificandose as entidades, o tipo e grau de associação, os atributos
descritores e os atributos identificadores
6
Construção do DEA
A figura 1.17 indica que face a um
relacionamento de M:M é preciso criar a
entidade associação ForneceProdutos
7
Construção do DEA
A figura 1.18 mostra uma outra forma de
representar o diagrama da figura 1.17
8
4.2.4. Normalização de dados
9
Normalização de dados
A normalização de dados pode ser aplicada
directamente sobre um conjunto de dados em bruto
ou feita a partir de modelos de dados resultantes da
modelação com diagramas E-R, com o objectivo de
criar um modelo de base de dados relacional
A normalização de dados consiste numa série de
passos relacionados com o desenho de uma base de
dados de forma a obterem-se estruturas de dados
sem redundância e consistentes
Este processo é conduzido por um conjunto de regras
que constituem as Formas Normais
10
Normalização de dados
As Formas Normais enunciam um conjunto de
restrições sobre os relacionamentos ou as
dependências existentes entre os dados
Inicialmente foram criadas três formas normais: 1.ª
Forma Normal (1FN), 2.ª Forma Normal (2FN) e
3.ª Forma Normal (3FN)
Depois surgiram mais formas normais: Forma
Normal de Boyce-Codd (FNBC), 4.ª Forma
Normal (4FN) e 5.ª Forma Normal (5FN)
11
Normalização de dados
Representação de dados na forma não
normalizada
Uma estrutura diz-se não normalizada quando os dados se
agrupam por atributos que não foram analisados segundo as
regras da normalização
O quadro 13 mostra um exemplo de como representar uma
entidade através dos seus atributos segundo três notações
diferentes
Neste caso, por cada nota de encomenda podem existir
vários produtos encomendados, o que acarreta, em termos
de organização de uma base de dados informatizada, uma
redundância de dados, ocupando mais espaço, tornando o
processamento mais lento e aumentando a probabilidade de
ocorrem erros
12
Normalização de dados
Representação de dados na forma não
normalizada (continuação)
13
Normalização de dados
Representação de dados na forma não
normalizada (continuação)
14
Normalização de dados
Fases da normalização
O modelo da base de dados relacional organiza os dados em
estruturas designadas por relações (figura 1.19)
Os atributos de uma relação correspondem às colunas e os
tuplos correspondem às linhas que apresentam um conjunto
de dados relativos a uma entidade concreta
Estes dados são, por sua vez, representados por valores
15
Normalização de dados
Para alcançar um modelo de uma base de dados
minimamente consistente, é suficiente submeter a
sua estrutura de dados até à terceira forma normal
A primeira forma normal obriga a que não exista
grupo de atributos repetitivos
No exemplo da entidade Encomenda os atributos
que se encontram entre parêntesis constituem um
grupo repetitivo, porque para uma mesma
encomenda podem ser pedidos vários produtos
16
Normalização de dados
Encomenda = @Número_encomenda + Data_encomenda + Código_cliente
+ Nome_cliente + Telefone + {Código_produto + Nome_produto +
Preço_unitário + Quantidade} + Total_encomenda
Para aplicar a 1FN, efectuam-se os seguintes passos
Escolher uma chave primária ou um atributo identificador,
que é um atributo que identifica de forma exclusiva cada
ocorrência de uma entidade. No exemplo dado a chave
identificada é Número_encomenda
Identificar o grupo repetitivo, que é {Código_produto +
Nome_produto + Preço_unitário + Quantidade}
Criar uma nova relação por cada grupo repetitivo,
escolhendo uma nova chave e efectuando um
relacionamento com a entidade original através do atributo
comum Número_encomenda
17
Normalização de dados
Da entidade inicial Encomenda, depois de
aplica a 1FN, resultam as entidades
Encomenda e DetalheEncomenda
Encomenda = @Número_encomenda + Data_encomenda +
Código_cliente + Nome_cliente + Telefone +
Total_encomenda
DetalheEncomenda = @Número_encomenda + @Código_produto +
Nome_produto + Preço_unitário + Quantidade
18
Normalização de dados
A segunda forma normal obriga a que se removam todas as
dependências funcionais que dependam apenas de uma parte
da chave e não da sua totalidade
No caso da entidade DetalheEncomenda, a chave primária é
constituída pelo para de atributos Número_encomenda e
Código_produto
Os atributos Nome_produto e Preço_unitário, para além de
serem identificados de forma unívoca pela chave, são também
identificados por parte dela, isto é, são funcionalmente
dependentes do atributo Código_produto
19
Normalização de dados
Para aplicar 2FN, efectuam-se os seguintes
passos:
Verificar se os atributos não-chave são
dependentes funcionalmente da totalidade da
chave
Criar uma nova relação com os atributos que
dependem de parte da chave, sendo esta a chave
da nova relação
Identificar os relacionamentos existentes entre a
nova relação e a relação original, mantendo,
nesta, a chave inicial que contém o atributo
comum às duas relações
20
Normalização de dados
Da entidade inicial DetalheEncomenda,
depois de aplicada a 2FN, resultam as
entidades DetalheEncomenda e Produto
DetalheEncomenda = @Número_encomenda + @Código_produto +
Quantidade
Produto = @Código_produto + Nome_produto + Preço_unitário
21
Normalização de dados
A terceira forma normal obriga a que se
removam todas as dependências funcionais
que dependam de atributos-não-chave
No caso da entidade Encomenda, os
atributos Nome_cliente e Telefone são
também funcionalmente dependentes do
atributo-não-chave Código_cliente
22
Normalização de dados
Para aplicar a 3FN, efectuam-se os seguintes
passos:
Verificar se os atributos não-chave são
dependentes funcionalmente de outros atributosnão-chave
Criar uma nova relação com os atributos que
dependem dos atributos-não-chave, sendo estes a
chave da nova relação
Identificar os relacionamentos existentes entre a
nova relação e a relação original, mantendo,
nesta, o atributo-não-chave que é um atributo
comum
23
Normalização de dados
Da entidade Encomenda, depois de aplicada a 3FN,
resultam as entidades Encomenda e Cliente
Encomenda = @Número_encomenda + Data_encomenda + Código_cliente
Cliente = @Código_cliente + Nome_cliente + Telefone
Depois de aplicadas as três formas normais à
entidade inicial, Encomenda, resultam as entidade
normalizadas: Cliente, Produto, Encomenda, e
DetalheEncomenda
Cliente = @Código_cliente + Nome_cliente + Telefone
Produto = @Código_produto + Nome_produto + Preço_unitário
Encomenda = @Número_encomenda + Data_encomenda + Código_cliente
DetalheEncomenda = @Número_encomenda + @Código_produto +
Quantidade
24