35
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

Técnicas de Modelação de Dados · •diagrama de classes; ... O modelo Entidade-Relacionamento ou modelo E-R (introduzido por Peter Chenn, na sequência dos trabalhos de Edgar

  • Upload
    dothien

  • View
    239

  • Download
    0

Embed Size (px)

Citation preview

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

Construção de ER’s

4. Existe outra situação bastante comum.

Conta

Conta à

Ordem

Conta a

prazo

Conta = @número_conta + saldo + [juro + período]

Conta_à_ordem= @número_conta

Conta_a_prazo= @número_conta + juro + período

Conta_à_ordem = *mesmos atributosque Conta*