José Malcher Jr.

Eng. Software – Analista de Sistemas

Engenharia de Software – Modelagem de dados – Metodologias para modelo conceitual


 

Representação do modelo de Peter Chen (DER)

A abordagem ER foi criada em 1976 por Peter Chen e foi a primeira a ter aceitação entre os projetistas e ainda hoje é muito utilizada. Nesta técnica, o modelo de dados é representado através de um modelo entidade-relacionamento (modelo DER). Vejamos agora mais detalhes sobre esse modelo:

Um entidade é uma representação abstrata de um “objeto” do mundo real, podendo ser um fato, uma coisa, tanto objetos concretos da realidade (pessoa, automóvel …), quanto objetos abstratos (departamento, compra …), ou seja um conjunto de interesse na modelagem.

Normalmente representa-se o conjunto de entidades por um retângulo com o nome da entidade:
As informações que se deseja sobre uma entidade, ou objeto, são as propriedades que devem ser observadas no objeto, chamadas de atributos, e são representados por “pirulitos” junto ao retângulo:

Todos os atributos têm os seus conjuntos de valores e cada conjunto é chamado de domínio do atributo. O atributo identificador de um conjunto é representado pintando-se o “pirulito” de preto ou substituindo-o por uma “estrela”. Por motivos de visualização recomenda-se que se use a estrela.

Atributos compostos

É uma forma de representar composição de atributos. Muitos autores não aceitam essa forma de representação. Assim, por exemplo, pode-se representar um endereço na forma de árvore:

DER Atributos Composto

Relacionamento

Um relacionamento é representado através de um losango, ligado por linhas às entidades que participam do relacionamento. No interior do losango coloca-se o nome do relacionamento. Observe que no losango se coloca o nome de UM relacionamento, e está é uma crítica que se faz a esse modelo, pois existem DOIS relacionamentos entre as entidades. Um da entidade A para a entidade B e outro da entidade B para a entidade A.

Um relacionamento é um par ordenado com um elemento da entidade A e outro da entidade B…
A figura mostra o conjunto de pares que representa o conjunto locação, que é estabelecido da entidade Pessoa para a entidade Departamento:

O modelo apresentado permite que:

Uma ocorrência de entidade não esteja associada a nenhuma ocorrência de entidade através do relacionamento.

Exemplo: a pessoa p2.

Uma ocorrência de entidade esteja associada a exatamente uma ocorrência de entidade através do relacionamento.

Exemplo: a pessoa p1.

Uma ocorrência de entidade esteja associada a mais de uma ocorrência de entidade através do relacionamento. Exemplo: o departamento d1. Essa propriedade é chamada de cardinalidade de uma entidade em um relacionamento.

Há duas cardinalidades a considerar: cardinalidade máxima e a cardinalidade mínima. Apenas duas cardinalidade máximas são relevantes: a cardinalidade máxima 1; a cardinalidade máxima “muitos”, referida pela letra n.

Figura representativa das cardinalidades

Cardinalidade mínima

Além da cardinalidade máxima, uma outra informação que pode ser representada por um modelo ER é o número mínimo de ocorrências de entidade que são associadas a uma ocorrência de uma entidade através de um relacionamento (cardinalidade mínima).

Figura representativa da cardinalidade mínima

A cardinalidade mínima 0 e a cardinalidade mínima 1. A cardinalidade mínima 1 também recebe a denominação de “associação obrigatória”, já que ela indica que o relacionamento deve obrigatoriamente associar uma ocorrência de entidade a cada ocorrência de entidade em questão.

Com base na mesma linha de raciocínio, a cardinalidade mínima 0 recebe a denominação de “associação opcional”.

 


Com base na mesma linha de raciocínio, a cardinalidade mínima 0 recebe a denominação de “associação opcional”. A cardinalidade mínima é usada para especificar que cada empregado deve ter a ele alocada obrigatoriamente uma mesa (cardinalidade mínima 1). E que a mesa pode existir sem que a ela esteja alocado um empregado (cardinalidade mínima 0).


 

Tipos de relacionamentos

Vejamos agora os tipos de relacionamentos:

Binário

Um relacionamento binário é aquele cujas ocorrências contém duas ocorrências de entidade.

Classificação dos relacionamentos binários:

  • n:n (muitos-para-muitos);
  • 1:n (um-para-muitos);
  • 1:1 (um-para-um);

Exemplos de relacionamentos binários

Figura representativa de relacionamentos binários

 

Relacionamento ternário

A abordagem ER permite que sejam definidos relacionamentos de grau maior do que dois (ternários, quaternários, …).

Figura representativa do grau de relacionamentos

O “1” na linha que liga DISTRIBUIDOR ao relacionamento expressa que cada par de ocorrências (cidade, produto) está associado no máximo a um distribuidor. A um par (cidade, distribuidor) podem estar associados muitos produtos, isto é, um distribuidor pode distribuir em uma cidade muitos produtos.
A um par (produto, distribuidor) podem estar associadas muitas cidades, isto é, um distribuidor pode distribuir um produto em muitas cidades.

Auto relacionamento

Um DER pode conter um auto relacionamento, isto é, um relacionamento entre ocorrências de uma mesma entidade. Neste caso, é necessário um conceito adicional, o de papel da entidade no relacionamento.

Figura representativa do auto relacionamento

Exemplo de um DER

Um diagrama ER é apresentado na forma de um grafo. A distribuição dos símbolos de DER no papel é totalmente arbitrária e não tem maior significado do ponto de vista formal. Entretanto, para tornar o diagrama mais legível é usual evitar-se cruzamentos de linhas. Para isso, a recomendação geral é a de posicionar as entidades que participam de muitos relacionamentos no centro do diagrama.

Exercício: deseja-se desenvolver uma parte do modelo de dados de um sistema de controle acadêmico de uma universidade fictícia. O modelo descreve o seguinte:

Deseja-se manter informações sobre alunos, cursos, disciplinas e departamentos;

Deseja-se manter informações sobre a associação de alunos a cursos, de disciplinas a cursos, de disciplinas a departamentos, bem como de disciplinas a suas disciplinas pré-requisitos.

Figura representativa sobre manter informações

 


Cada disciplina possui exatamente um departamento responsável e um departamento é responsável por muitas disciplinas, inclusive por nenhuma. Uma disciplina pode possuir diversos pré-requisitos, inclusive nenhum. Uma disciplina pode ser pré-requisito de muitas outras disciplinas, inclusive de nenhuma. Uma disciplina pode aparecer no currículo de muitos cursos, inclusive de nenhum e um curso pode possuir muitas disciplinas em seu currículo, inclusive nenhuma. Um aluno está inscrito em exatamente um curso e um curso pode ter nele inscritos muitos alunos, inclusive nenhum.


 

Estudando os atributos

Uma propriedade é um atributo. O conceito de atributo serve para associar informações a ocorrências de entidades ou de relacionamentos.

Atributo = Dado que é associado a cada ocorrência de uma entidade ou de um relacionamento.

Figura representativa de entidade ou de um relacionamento

A figura expressa que cada ocorrência de PROJETO tem associado exatamente um nome, um código e um tipo. Dificilmente os atributos são representados graficamente, preferindo a representação textual. Um atributo pode possuir uma cardinalidade, de maneira análoga a uma entidade em um relacionamento.
A cardinalidade de um atributo define quantos valores desse atributo podem estar associados a uma ocorrência da entidade/relacionamento a qual ele pertence.

Nome e Código são atributos obrigatórios e monovalorado (1,1).

Telefone é um atributo opcional e multivalorado (0,n).

A função não pode ser considerada atributo de ENGENHEIRO, já que um engenheiro pode atuar em diversos projetos, exercendo diferentes funções. Também não é atributo de PROJETO, já que, em um projeto, podem atuar diversos engenheiros com funções diferentes.

Algumas vendas são à vista, outras a prazo. Vendas a prazo são relacionadas a uma financeira, através do relacionamento FINANCIAMENTO. Os atributos nº de parcelas e taxa de juros são atributos do relacionamento.

Figura representativa do relacionamento financiamento

Se esses atributos tivessem sido colocados na entidade VENDA, eles deveriam ser opcionais.

 

Identificando entidades

Figura representativa do identificador

Cada entidade deve possuir um identificador. Um identificador é um conjunto de um ou mais atributos (e possivelmente relacionamentos) cujos valores servem para distinguir uma ocorrência de entidade das demais ocorrências da mesma entidade. O caso mais simples é o da entidade que possui um único atributo como identificador. O exemplo anterior significa que cada pessoa possui um código diferente, mas o nome e o endereço podem ser associados a pessoas diferentes.

 

Figura representativa do identificador der

 

Neste exemplo, o identificador da entidade é composto por diversos atributos. Existem casos em que o identificador de uma entidade é composto não somente por atributos da própria entidade, mas também por relacionamentos dos quais a entidade participa (relacionamento identificador).

Figura representativa do relacionamento identificador

Este modelo expressa que um dependente é identificado pelo empregado ao qual ele está relacionado e pelo número de sequência.

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.
A entidade fraca é representada por um retângulo duplo:

 

Dependente

Autores de livros mais recentes preferem não utilizar o conceito, já que as entidades chamadas “fracas” por esse critério podem, dependendo da realidade modelada, ser centrais a um modelo.

Modelo de chen

Na representação pata de corvo o relacionamento entre as duas entidades pode ser orientado indicando o sentido do relacionamento, mas a maioria das vezes isto não é feito, pois o principal objetivo é representar a cardinalidade. Assim no desenho abaixo tem-se:

Modelo de chen 01

Um aluno obrigatoriamente está relacionado a um curos (pode ser está matriculado) e no outro sentido um curso pode ter Zero ou mais alunos (estão cursando).

Definir o relacionamento pode ser feito na modelagem como mostrado abaixo:

Modelo de chen 02

 

Representação de sub conjuntos:

Os conjuntos mutuamente exclusivos são representados da forma abaixo:

Modelo de chen 03

Esta estrutura se repete para cada particionamento do conjunto, unindo-se os subconjuntos resultantes.

AUTO RELACIONAMENTOS:

A representação pata de corvo também permite a representação de autos relacionamentos, embora a explicitação em sub conjuntos permita uma melhor definição. Assim pode se modelar um auto relacionamento:

AUTO RELACIONAMENTOS

 

Esta representação tem mais informações sobre os relacionamentos dentro do conjunto de peças que o auto relacionamento. Existe um relacionamento conhecido como fraco Que de n:m este tipo de relacionamento indica que é preciso se fazer analise entre as duas entidades envolvidas. Para resolver este relacionamento deve-se trata-lo como um relacionamento associativo, que esta tratado abaixo.

 

Relacionamento associativo.

Na modelagem de Peter Chen pode-se colocar atributos no relacionamento, mas quando se faz isto indica-se que o relacionamento por si só é um “fato” que também pode ser tratado como conjunto. Desta forma aparece o relacionamento dito associativo em que os elementos deste conjunto tem como atributos identificadores as chaves dos conjuntos que precisam ser associados. Toda vez que se tem relacionamentos do tipo n:m este deve ser decomposto em um relacionamento associativo, pois os modelos devem ser deterministas, ou seja quem (identificado) esta se relacionando com quem (identificado).

Os relacionamentos não deterministas são chamados de fracos e sempre devem ser substituídos por entidades associativas:

substituídos por entidades associativas

Onde cada elemento do conjunto leciona tem o cod-aluno e o cod-professor que são identificadores no conjunto aluno e conjunto professores respectivamente além dos dados que seriam inicialmente do relacionamento. Relacionamentos que devem ser decompostos em associações:

Relacionamentos que devem ser decompostos em associações

No tratamento do exemplo do auto relacionamento apareceu um relacionamento fraco entre as peças simples e compostas e que deve ser tratado para um modelo determinista;

relacionamento fraco entre as peças simples e compostas

Este diagrama tem muito mais informação que o simples auto relacionamento.

 

 

Propriedades atribuídas a entidades

Além de relacionamentos e atributos, propriedades podem ser atribuídas a entidades através do conceito de generalização/especialização. Através desse conceito é possível atribuir propriedades particulares a um subconjunto das ocorrências (especializadas) de uma entidade genérica.

No DER, o símbolo para representar generalização/especialização é um triângulo isósceles.

Associada ao conceito de generalização/especialização está a ideia de herança de propriedades. Herdar propriedades significa que cada ocorrência da entidade especializada possui, além de suas próprias propriedades, também as propriedades da ocorrência da entidade genérica correspondente.

Figura representativa da herança de propriedade

 

A generalização/especialização total e parcial

A generalização/especialização pode ser classificada em dois tipos: total e parcial, de acordo com a obrigatoriedade ou não de a cada ocorrência da entidade genérica corresponder uma ocorrência da entidade especializada. Em uma generalização/especialização total, para cada ocorrência da entidade genérica existe sempre uma ocorrência em uma das entidades especializadas:

Figura representativa da generalização - especialização total

Em uma generalização/especialização total, para cada ocorrência da entidade genérica existe sempre uma ocorrência em uma das entidades especializadas.
Usualmente, quando há especialização parcial, na entidade genérica, aparece um atributo que identifica o tipo de ocorrência desta entidade.

Figura representativa da especialização total

Uma entidade pode ser especializada em qualquer número de entidades, inclusive em uma única.

Exemplo: se na figura anterior, apenas os motoristas possuíssem propriedades particulares, haveria apenas uma entidade especializada, a de motoristas. Não há limite no número de níveis hierárquicos da generalização/especialização. Uma entidade especializada pode, por sua vez, ser entidade genérica em outra generalização/especialização. É admissível a herança múltipla, isto é, uma mesma entidade seja especialização de diversas entidades.

Uma entidade pode ser especializada em qualquer número de entidades, inclusive em uma única.

Exemplo: se na figura anterior, apenas os motoristas possuíssem propriedades particulares, haveria apenas uma entidade especializada, a de motoristas. Não há limite no número de níveis hierárquicos da generalização/especialização. Uma entidade especializada pode, por sua vez, ser entidade genérica em outra generalização/especialização. É admissível a herança múltipla, isto é, uma mesma entidade seja especialização de diversas entidades.

 

Figura representativa da herança múltipla

 


Cada entidade especializada herda o identificador de sua entidade genérica, portanto, não faz sentido definir identificador para entidades especializadas. Somente pode haver uma entidade genérica em cada hierarquia de generalização/especialização.


 

O modelo de Chen

Figura representativa do modelo de Chen

Depois de Chen surgiram outros trabalhos que mantiveram a mesma linha de pensamento, dentre eles deve-se destacar os de James Martin e um estudo feito sobre os trabalhos de Charles Bachman (idealizador do primeiro método para desenho de estruturas de banco de dados). No modelo de Martin, conhecido como pata de corvo, as entidades e atributos são representados como no modelo de Chen, por retângulos, bem como os atributos:

Figura representativa do modelo de Martin

A principal diferença nesta forma de representação baseia-se na indicação do relacionamento.

  • Quando se tem um relacionamento com obrigatoriedade (1)
  • Se o relacionamento pode ser o e no máximo um
  • Se o relacionamento tem no mínimo 1 e no máximo mais de um elemento (esta representação dá origem ao nome “pata de corvo”)
  • Se o relacionamento tem no mínimo zero e no máximo mais de um

 

Identificando entidades

Ao considerarmos que a maior parte das entidades que eventualmente comporiam o restante do modelo estariam ligadas a EMPRESA ou FILIAL vemos que a palavra fraca não é adequada para o conceito em questão.

Identificando entidades

O identificador de uma entidade, seja ele simples, composto por diversos atributos, ou compostos por identificadores externos, deve obedecer duas propriedades:

  • O identificador deve ser mínimo;
  • Cada entidade deve possuir um único identificador.
  • O identificador deve ser mínimo:

O identificador de uma entidade deve ser composto de tal forma que, retirando um dos atributos ou relacionamentos que o compõe, ele deixa de ser identificador.

Identificando Relacionamentos

Em princípio, uma ocorrência de relacionamento diferencia-se das demais ocorrências do mesmo relacionamento pelas ocorrências de entidades que dela
participam.

Identificando Relacionamentos

Em outras palavras, para cada par (engenheiro, projeto) há no máximo um relacionamento de alocação.

Existem casos nos quais entre as mesmas ocorrências de entidade podem existir diversas ocorrências de relacionamento.

A diferenciação dá-se através de atributos identificadores de relacionamento.

 

Outras representações

Bachman representou a cardinalidade de uma forma mais simples, utilizando flechas. E, por esta razão, é comum encontrar-se diagramas utilizando flechas.
A restrição que alguns autores fazem é que as flechas indicam movimento e o diagrama de dados é um modelo estático.

Representa-se:

Figura representativa de Bachman

 

 


 

Atividade proposta

Você recebeu o modelo conceitual de dados com a descrição de atributos e entidades:

modelo conceitual de dados com a descrição de atributos e entidades

 

Questão 1: O modelo esta com boa qualidade ou necessita de um pouco mais de analise?

Questão 2: O modelo atende as necessidades de se armazenar as horas previstas e horas trabalhadas por cada técnico no projeto. Como devem ser  complementadas. Use a representação pata de corvo para apresentar o novo modelo que atenda estas necessidades.

Questão 3: Você foi informado pelo seu usuário que os técnicos podem ser de nível superior, neste caso há necessidade de se registrar o ano de formatura e a especialidade. E, técnicos de nível médio. Os técnicos de nível superior são de humanas e de tecnologia. E os técnicos de humanas são os únicos que podem chefiar projetos. Como se deve completar o diagrama para mostrar estas informações?

Questão 4: Com relação ao dicionário, poderia ser padronizado?

Questão 5: Em que ordem devem ser implementadas as telas de entrada de elementos no conjunto?

 

Chave de resposta:

Questão 1:

Não. O modelo apresenta entre técnicos e projetos um relacionamento da forma n:m que não indica que elemento se relaciona com qual, portanto deve-se desenvolver análise entre os dois conjuntos.

Justificativa: Deve-se evitar ter relacionamentos múltiplos. Eles devem ser verificados e corrigidos

 

Questão 2:

Justificativa:

Veja que na forma que foi apresentada a solução o item de alocação é dependente da alocação prevista, permitindo que se controle as várias entradas de um técnico no projeto e se a data esta compreendida entre a prevista para início e fim de participação do técnico.

 

Questão 3:

Justificativa: Deve-se criar uma estrutura de sub conjuntos chamada generalização para especialização. Observe que a chave de identificação permanece a mesma nesta estrutura.

Questão 4:

Sim, pode-se criar uma forma de dar nomes que facilite a procura. Para isto deve-se criar regras para se dar nomes.

Justificativa: Ao se padronizar nomes pode-se operar o modelo com mais facilidade

Questão 5:

Departamento e projetos devem ser feitos primeiro, pois são apontados por outros elementos. Depois a estrutura de técnicos, pois apontam para departamento. E finalmente as estruturas de alocações que são associações.

Justificativa: As estruturas de código para entrar com estes elementos devem estar prontas nesta ordem, inclusive para testar o sistema.

 


 

Referências

COUGO, Paulo. Modelagem conceitual. Editora campus.

RIBEIRO, Horacio. Análise por objetos: da teoria à prática. Editora Europa – Unitec, 1996.

 

 

(material retirado da web)

 


Engenharia de Software – Modelagem de dados – Metodologias para modelo conceitual