técnicas de modelação de dados · •diagrama de classes; ... o modelo entidade-relacionamento...
TRANSCRIPT
Técnicas de Modelação de Dados
Diagrama Entidade-Relacionamento (ER)
Curso Profissional Técnico de Gestão e Programação de Sistemas de Informáticos
Programação e Sistemas de Informação
Módulo 13 – Técnicas de Modelação de Dados
Professora: Sandra Soares
Modelação de dados
A modelação de dados caracteriza-se por considerar como elementoprincipal do sistema as entidades, bem como os dados que as descrevem(estruturas de dados).
Existem diferentes ferramentas para representar modelos deste tipo, taiscomo:
• diagramas entidade-associação/relacionamento;
• diagramas hierárquico de entidades;
• diagramas de análise de dados;
• diagrama de classes;
• etc.
Modelo Entidade-Relacionamento
O modelo Entidade-Relacionamento ou modelo E-R (introduzido por Peter
Chenn, na sequência dos trabalhos de Edgar Codd sobre o modelo
relacional), é um modelo conceptual para a estruturação da informação
com vista à elaboração da base de dados.
O modelo E-R, como a sua designação indica, parte dos conceitos básicos
de entidades (compostas por atributos) e relacionamentos entre essas
entidades. A sua expressão mais característica são os diagramas E-R ou
diagramas Entidade Associação (DEA).
Modelo Entidade-Relacionamento
Os diagramas de Entidade Relacionamento (DER) ou Associação (DEA)
modelam a estrutura de armazenamento dos dados, definindo:
• Entidades
• Relacionamentos
• Atributos
Modelo Entidade-Relacionamento
Entidades – São objetos sobre os quais se armazenam os dados. O nome da
entidade deve estar no singular. As entidades devem estar descritas no
dicionário de dados. Uma instância pode ser considerada um membro
individual ou uma ocorrência concreta da entidade.
Modelo Entidade-Relacionamento
Atributos – São as características que descrevem as entidades e o conjunto
de valores que cada um pode assumir designa-se Domínio. Os atributos
devem estar descritos no dicionário de dados. Alguns atributos são
opcionais outros são obrigatórios. O atributo identificador é um atributo
que identifica de forma exclusiva cada ocorrência de uma entidade. Pode
também ser designado como chave primária no modelo Relacional. Os
atributos descritores descrevem a entidade.
Podemos representar no modelo E-R os atributos sob a forma de
elipses,
ligadas ao retângulo da entidade correspondente.
Modelo Entidade-Relacionamento
Relacionamentos – Representam as associações entre as entidades.
Um relacionamento é designado por um verbo.
Quanto ao número de entidades presentes no relacionamento, tem-
se os seguintes tipos:
• relacionamentos unários - relacionamentos que se estabelecem entre os elementos de
uma mesma entidade;
• relacionamentos binários - relacionamentos que se estabelecem entre os elementos de
duas entidades;
• relacionamentos ternários - relacionamentos que se estabelecem entre os elementos de
três entidades;
Em geral, um relacionamento pode designar-se por n-ário, em que n diz respeito
ao número de entidades envolvidas nesse relacionamento.
Simbologia dos diagramas Entidade-Relação
Entidade é sempre representada por um retângulo.
Nome_Entidade
Relacionamento pode ser apresentado sobre a linha
Nome_Relação
ou dentro de um losango
Nome_Relação
Simbologia dos diagramas Entidade-Relação
Exemplos:
Empregados Trabalham Departamentos
Projectos
Disciplinas Tem Prec.
Fornecedores Fornecem Produtos
Instanciação
Entidade
• Atributo identificador:número_de_matrícula
• Atributos descritores:nome, morada, telefone, data_nascimento, curso, sexo
Instância da entidade:número_de_matricula: 11250nome: João da Silvamorada: Areeirotelefone: 8887777data_nascimento: 01/09/80curso: eng. informáticasexo: m
Aluno
Instanciação
• Instância de um relacionamento é uma ocorrência de uma ligação entre objectos
4 instâncias de Cliente
3 instâncias de Filme
3 instâncias da associação compra
Instâncias instâncias Instânciasde Cliente de compra de Filme
C1 F1
C2 F2
C3 F3
C4
Cliente FilmecompraM N
Grau do relacionamento
Quanto ao número de elementos com que uma entidade se poderelacionar com os elementos de outra entidade, isto é, grau derelacionamento ou cardinalidade, tem-se os seguintes tipos:
• relacionamento 1 para 1 (1:1) (ou um para um) – em que cada elementoou ocorrência de cada parte (entidade) participa apenas uma vez norelacionamento com a outra parte;
• relacionamento 1 para M (1:M) (ou um para muitos) – numa dasentidades, cada elemento participa no relacionamento apenas uma vez,ao passo que, na outra entidade, esse elemento pode ter váriasocorrências nesse mesmo relacionamento;
• relacionamento M para 1 (M:1) – idêntico ao anterior;
• relacionamento M para N (M:N) (ou muitos para muitos) – situação emque cada elemento de cada uma das partes do relacionamento podeparticipar múltiplas vezes nesse relacionamento.
A B
B
A B
A B
Um A está
associado
com um B
Um A está
associado
com zero ou um B
Um A está
associado
com zero, um ou
mais B's
Grau
Associação
Notação
A B
A B
A B
A B
A B
A B
A B
A B
1
1
1
n
Pé de Galinha Ross Bachman Chen
AUm A está
associado
com zero ou um ou
mais B's
Crow’s foot
Grau do relacionamento - notações
Na notação “Pé de Galinha” existem regras onde colocar o nome da
relação entre as entidades
Sentido “para “baixo”
à direita da linha
Sentido “para cima”
à esquerda da linha
Sentido “da esquerda para a direita”
por cima da linha
Sentido “da esquerda para a direita”
por baixo da linha
XXX
XXX
XXX
XXX
Notação “Pé de Galinha”
Cardinalidade de uma relação
• A cardinalidade define os graus máximo e mínimo.
• O grau máximo de uma relação pode ser:
• O grau mínimo de uma relação pode ser:
• 1 : 1
• 1 : N
• N : M
• 0 : 0
• 0 : 1
• 1 : 1
Cardinalidade de uma relação – grau máximo
• Grau máximo:
1
1
O grau máximo define o número máximo de vezes que uma instância da entidade pode ocorrer na associação.
Exemplo 1:
• Uma instância de Cliente pode ocorrer no máximo uma vez
Um Cliente tem zero ou uma Carta de condução
• Uma instância de Carta de Condução pode ocorrer no máximo uma vez
Cliente tem Carta de
condução
Uma Carta de Condução pertence a zero ou um Cliente
Cardinalidade de uma relação – grau máximo
Exemplo 2:
• Um Aluguer pertence a no máximo um Cliente
• Um Cliente pode ter vários Alugueres
1
NAluguer pertence Cliente
• Um Fornecedor fornece vários Produtos
• Um Produto pode ser fornecido vários Fornecedores
M
NFornecedor fornece Produto
Exemplo 3:
Cardinalidade de uma relação – grau mínimo
• Grau mínimo:
• Carta de condução é opcional: um dado cliente pode não ter carta
• Cliente é obrigatório: uma carta de condução pertence no mínimo a um cliente
Exemplo 1:
Cliente tem Carta de condução
O grau Mínimo define o número mínimo de vezes que uma instância da entidade pode ocorrer na associação.
Se é zero diz-se opcional se é 1 diz-se obrigatória.
01
Cardinalidade de uma relação – grau mínimo
• Médico é opcional
Um doente pode não ter médico de família
• Doente é opcional
Um médico pode não ser médico de família de nenhum doente
Médico é médico
famíliaDoente
Exemplo 2:
00
Cardinalidade de uma relação – grau mínimo
• Fornecedor é obrigatório
Um fornecedor fornece no mínimo um produto
• Produto é obrigatório
Todo produto é fornecido no mínimo por um fornecedor
Fornecedor fornece Produto
Exemplo 3:
11
Cardinalidade de uma relação
Os graus máximo e mínimo de uma relação complementam-se e servem para especificar a política da organização no que se refere aos dados.
(1..N)Fornecedor Produtofornece
Cliente Cartãotem
(1..M)
(1..1) (0..1)
Notação de Peter Chen
Aluno Disciplinafrequenta
Exemplos:
Treinador Modalidaderesponsável
Aluno Processoarquivado
Aluno Cacifoaluga
Notação de Pé de Galinha
Cardinalidade de uma relação
Entidade Associativa
• Entidade associativa é uma relação/associação com atributos próprios.
Contém informação sobre a percentagem de tempo que o empregado dedica a um dado projecto.
M
N
(1..M)
Funcionário Projectotrabalha
Funcionário Projecto
Trabalha
(1..N)
Entidade Associativa
• Exemplos de entidades associativas:
(0..M)Ficheiro Utilizador
Acessível_por
(0..N)
Atributo específico: tipo da
permissão de acesso
Participa
(1..M)Atleta Competição
(0..N)
Atributos específicos:
colocação, performance
Generalização e Especialização
• Indicadores de subtipo e supertipo
• Um subtipo é uma especialização do supertipo
• Um supertipo é uma generalização do subtipo
• O supertipo descreve os elementos de dados comuns a todos os subtipos.
• Os atributos de um supertipo são “herdados” pelos subtipos
• Cada subtipo é descrito pelos atributos “herdados” do supertipo + atributos específicos
• Os subtipos descrevem elementos de dados específicos a um subconjunto das instâncias.
• Na notação o supertipo está conectado aos subtipos através de uma associação sem nome e uma linha cortada
Jogo = nome + local + regras
Jogo Individual = recorde
Jogo em Equipa = número_de_jogadores
Jogo
Jogo
IndividualJogo
em Equipa
Empregado = nome + endereço
Assalariado = salário_mensal
Temporário = salário_hora
Empregado
assalariado temporário
Generalização e Especialização
Generalização e Especialização
• Figura = cor + posição_central
• Unidimensional = orientação
• Bidimensional = área
• Arco = raio + ângulo
• Linha = pontos_extremos
• Círculo = diâmetro
• Polígono = número_de_lados + vértices
Figura
Unidimensional Bidimensional
Arco Linha Círculo Polígono
Construção de ER’s
1. Identificação das entidades.» depósitos de dados;
» depósitos de dados associados a entidades externas;
» documentos, formulários, utilizador.
2. Identificação das associações ou relações:
• Exemplo:Fornecedores = {Fornecedor + {código_produto}}
Fornecedor = @código_fornecedor + nome + morada + número_contribuinte
Produtos = {Produto + 1{código_fornecedor}}
Produto = @código_produto + descrição + peso + cor
1..NFornecedor Produtofornece
1..M
Construção de ER’s
2.2 Na especificação dos processos.
Exemplo:
process fornecer;
...
If código_fornecedor in Fornecedores =código_ fornecedor in Produtos then
...
endproc
Construção de ER’s
3. Definir os graus máximos e mínimos das associações.
4. Especificar os atributos identificadores e os atributos descritores de cada entidade.
5. Completar o dicionário de dados com as descrições das entidades e associações que ainda não estejam lá.
Médico trata Paciente
Médico = @código_médico + nome + morada + salário
Paciente = @código_paciente + BI + nome + sexo + (telefone)
Trata = @paciente _médico
paciente_médico = código_ paciente + código_médico
Construção de ER’s
Observações importantes:
1. Verificar se todos os atributos se aplicam a todas as instâncias de uma entidade.
Modelo = @número_modelo + morada + estado_civil + cor_cabelo + cor_olhos + (nome_cônjuge) + sexo +
[barba + medida_tórax | medida_quadril + medida_busto]
Observa-se que há a necessidade de criar dois subtipos
Modelo_feminino = @número_modelo + medida_quadril + medida_busto
Modelo
Modelo
feminino
Modelo
masculino
Modelo = @número_modelo + nome + morada + estado_civil + cor_cabelo + cor_olhos + (nome_cônjuge) + tipo-modelo
tipo-modelo = [Modelo_feminino | Modelo_masculino]
Modelo_masculino = @número_modelo + barba + medida_tórax
Construção de ER’s
Construção de ER’s
2. Certificar-se de que quando há entidades diferentes que possuem atributos em comum é possível criar um supertipo
Empregado_temporário = @número_empregado + nome + morada + código_postal + telefone + salário_hora + número_horas_extra
Empregado_assalariado = @número_empregado + nome + morada + código_postal + telefone + salário_mensal + abono_família + número_filhos
Empregado
temporário
Empregado
assalariado
Empregado
temporário
Empregado
assalariado
Empregado
Construção de ER’s
3. Quando há grupos repetitivos convém criar uma nova entidade e uma nova associação
Um grupo repetitivo é um conjunto de atributos cujos valores se repetem para um dado valor do identificador.
Empregado = @número_empregado + nome + morada + salário
Filho = @Id_filho + nome_filho + sexo_filho + idade_filho + número_empregado
Empregado = @número_empregado + nome + morada + salário + {nome_filho + sexo_filho + idade_filho}
0..NEmpregado Filhotem
1..1