Unidade B - Modelo Conceitual

5.1 Modelo Entidade-Relacionamento

O Modelo ER foi definido por Peter Chen em 1976, sendo representado através de um diagrama de entidade-relacionamento (DER). Vamos estudar alguns conceitos centrais da abordagem entidade-relacionamento e em seguida poderemos elaborar os diagramas.
A seguir apresentamos os requisitos que foram adquiridos a partir da fase de levantamento e análise de requisitos. A partir dos requisitos será apresentado um exemplo de modelo ER, para que a partir deste exemplo possamos ir conhecendo conceitos para elaboração de um modelo ER.

A figura, a seguir, é um exemplo de DER.

Imagem

Para elaborar os diagramas de ER, precisamos em um primeiro momento conhecer alguns conceitos básicos desta abordagem. Os dados no modelo ER são descritos a partir de entidades, relacionamentos e atributos.

ENTIDADES:

Para Heuser entidade é um conjunto de objetos da realidade modelada sobre as quais se deseja manter informações no banco de dados.

A entidade é considerada o objeto básico representado no modelo ER. Pode ser um objeto do mundo real, por exemplo, uma pessoa ou um objeto com uma existência conceitual como, por exemplo, um curso.

A entidade é representada através de um retângulo contendo o nome da entidade. Cada entidade representa um conjunto de informações sobre o objeto representado, porém quando precisamos nos referir a apenas um objeto, denominamos de ocorrência de entidade.

Exemplo:

Imagem

No exemplo acima o DEPARTAMENTO representa o conjunto de todos os departamentos que se deseja manter informações.

Seguindo o exemplo de levantamento de requisitos e do modelo ER  mostrado anteriormente, podemos identificar várias entidades como:

ATRIBUTO:

Cada entidade é representada por Atributos, que são características das entidades representadas. Por exemplo, a entidade DEPARTAMENTO, tem como atributos, o nome e o número.

Na prática, os atributos são representados textualmente para não sobrecarregar os diagramas, mas na figura abaixo, podemos ver como os atributos podem ser representados

 Imagem

A figura acima mostra que cada ocorrência de departamento pode ser representada por um número e nome. Por exemplo, vamos armazenar no nosso banco de dados um departamento que terá como numero ‘01’e nome ‘Financeiro’.

No livro Sistema de Banco de Dados os autores identificam vários tipos de atributos:

Considerando o exemplo da empresa e com as entidades já definidas podemos especificar os atributos de cada uma delas.

DEPARTAMENTO: nome e numero
PROJETO: codigo e nome
EMPREGADO: nome, cpf, endereço e salario
DEPENDENTE: nome, dt_nascimento e parentesco

Atributo identificador da entidade

Uma restrição importante das entidades de um tipo de entidade é a chave ou restrição de unicidade em atributos. Um tipo de entidade tem geralmente, um atributo cujos valores são distintos para cada uma das entidades do conjunto de entidade. Cada entidade deve possuir pelo menos um atributo identificador, este é representado pelo circulo preenchido.

Imagem

A chave é um tipo de restrição de integridade que representa regras de negócio que visam garantir que não possam existir duas ou mais entidades com os mesmos valores de identificadores.

Significa então que o atributo que identifica a entidade serve para que as ocorrências de entidade tenham uma forma de serem distinguidas uma das outras.

A entidade EMPREGADO pode ter como atributos:

EMPREGADO

CPF

nome

Endereço

salário

12345566

Maria

Av. Santos Camargo

860

34567789

Maria

Av. Julio Matheus

980

A entidade Empregado guardará informações sobre o cpf, nome, endereço e saláriocde várias ocorrências de entidade. A partir do exemplo, podemos notar que podem existir pessoas que tenham o mesmo nome. O atributo identificador tem a finalidade de especificar que o atributo que estiver como identificador será único, ou seja, não poderá repetir em nenhuma ocorrência de entidade. Como atributo identificador no exemplo acima, temos o CPF que não poderá se repetir

Os atributos identificadores também podem ser compostos, quando, por exemplo, as ocorrências de entidades necessitem de atributos identificadores diferentes

Relacionamento identificador da entidade

Existem casos em que o identificador de uma entidade é composto de atributo e por relacionamentos em que a entidade participa.

Imagem

Cada dependente é identificado pelo funcionário em que está relacionado e pelo nome e parentesco. Para identificar um relacionamento identificador usamos uma linha mais densa, conforme a figura acima. Alguns autores definem como a entidade DEPENDENTE sendo uma entidade fraca, pois esta depende da entidade FUNCIONÁRIO para existir.

RELACIONAMENTO

O relacionamento acontece entre as entidades quando existe algum tipo de associação entre estas. Um relacionamento é representado através de um losango ligado por linhas as entidades.

 Imagem

No exemplo acima, temos a entidade Departamento e a entidade projeto, que estão relacionadas, pois os projetos são controlados por um departamento.

Assim como nós referenciamos as ocorrências de entidades, podemos fazer o mesmo nos relacionamento. Com isso, quando quisermos nos referir a associações particulares dentro de um conjunto, vamos nos referir a ocorrências de relacionamentos.

Um  tipo de relacionamento define um conjunto de associações – ou um conjunto de relacionamentos – entre as entidades.

Imagem

Ex: Consideramos um relacionamento Controla, entre dois tipos de entidade, Departamento e Projeto, que associa cada controla a uma entidade de Departamento e Projeto.  Pela figura acima, identificamos que um departamento pode controlar um projeto assim como pode controlar mais de um projeto

Auto-Relacionamento

Existe ainda um conceito em Relacionamento que é do auto-relacionamento. Neste tipo de relacionamento a relação ocorre com apenas uma entidade, ou seja, entre ocorrências da mesma entidade. Neste caso surge o conceito de papel da entidade, em que definimos qual é o papel da entidade em um relacionamento.

Por exemplo:

Imagem

No exemplo acima, a relação que existe entre duas ocorrências de entidades podem ter papéis diferentes. O funcionário poder ser gerenciado por um funcionário gerente, assim como um funcionário pode gerenciar os funcionários subordinados.

Relacionamento Binários e Ternários (ou de grau superior)

Os relacionamentos vistos até o momento são identificados como Binários, por se tratar da relação entre duas entidades. Quando temos relação entre três entidades, chamamos de relacionamentos ternários.

Por exemplo:

Imagem

No exemplo acima, temos uma relação de controle, onde cada ocorrência da relação de controle associa três ocorrências de entidades:  um projeto a ser controlado, um departamento onde será feito um controle e um funcionário.

Identificando Relacionamentos.

Os relacionamentos também podem possuir atributos. Que serão características especificas que ocorrem durante o relacionamento não fazendo parte de nenhuma entidade em específico.

Imagem

No exemplo acima, podemos armazenar a data em que o departamento começou a controlar o projeto.

Cardinalidade de Relacionamentos

Cardinalidade de Relacionamento é um conceito utilizado no modelo ER que melhora o conhecimento sobre as políticas e regras dos negócios, consistindo de números colocados ao lado do relacionamento.

Um exemplo para as cardinalidades seria a de um departamento que controla um projeto. As dúvidas que podem aparecer nesta relação seriam:

  1. Quantos projetos um departamento pode controlar?
  2. O projeto deve ser controlado por apenas um departamento ou pode ser por mais de um?

Para projetarmos o nosso modelo de dados é essencial que conheçamos este tipo de questão e que estas sejam refletidas no nosso modelo.

Podemos acrescentar algumas dimensões nos nossos relacionamentos para tornar mais claras algumas questões:

DEPARTAMENTO controla “um ou mais projetos”
PROJETO é controlado por apenas um DEPARTAMENTO

Este modelo, agora, indica que um DEPARTAMENTO pode possuir muitos projetos. Porem cada PROJETO só poderá ser controlado por apenas um DEPARTAMENTO.

Para identificar estas características colocamos ao lado do relacionamento dados que representem as mesmas. Chamamos estes dados de cardinalidade do relacionamento.

A cardinalidade define, portanto, o número de ocorrências de uma entidade que pode estar associada em um relacionamento, sendo útil para extrair as regras de consistência e integridade dos dados. Assim como define também se um relacionamento é obrigatório ou opcional.

Com isso, há duas cardinalidades a considerar: Cardinalidade Máxima e Cardinalidade Mínima.

CARDINALIDADE (MÍNIMA MÁXIMA)

Imagem

Exemplo:

No exemplo, podemos ler da seguinte forma:

DEPARTAMENTO (1,1)    CONTROLA   (0,N)   PROJETO

Um DEPARTAMENTO pode controlar nenhum (0) PROJETO. (cardinalidade mínima)
Um DEPARTAMENTO pode controlar muitos(N) PROJETOS. (cardinalidade máxima)

Obs: O “0” da cardinalidade mínima representa que é opcional o departamento controlar ou não um projeto e o “N” da cardinalidade máxima representa que um departamento pode controlar vários projetos.

Um PROJETO deve ser controlado por um(1) DEPARTAMENTO. (cardinalidade mínima)
Um PROJETO deve ser controlado por apenas um(1) DEPARTAMENTO. (cardinalidade máxima)

Obs: O “1” da cardinalidade mínima representa que é obrigatório o projeto ser controlado por um departamento e o “1” da cardinalidade máxima representa que o projeto só pode ser controlado por um departamento.

ESPECIALIZAÇÃO e GENERALIZAÇÃO

Além dos atributos outras caracteristicas podemos associar as entidades.

Especialização: é um processo de transformar uma entidade que podemos chamar de superclasse em outras subclasses. Por exemplo, as subclasses podem ser {motorista E engenheiro} e a superclasse seria FUNCIONÁRIO. É uma especialização que distingue o FUNCIONÁRIO pelo tipo de trabalho

 Imagem

A figura acima é um exemplo do diagrama para uma especialização. Um relacionamento de superclasse com subclasse é freqüentemente chamado de IS-A (É UM), ou seja, O motorista é um funcionário e o ENGENHEIRO é um FUNCIONÁRIO.

Em relação aos atributos, nos teremos os atributos na superclasse e na subclasse. Os atributos na superclasse serão herdados na subclasse. Por exemplo, os atributos da entidade motorista são: código, nome, número carteira.

Quais seriam os principais motivos de fazer a especialização? Para Navathe, existem duas razões para se incluir as especializações em um modelo de dados.

A primeira é que certos atributos podem ser usados em algumas, mas não em todas as entidades da superclasse. Uma subclasse é definida de forma a agrupar as entidades para as quais estes atributos se aplicam. Os membros de uma subclasse podem ainda, compartilhar a maioria de seus atributos com outros membros da superclasse. A segunda razão para usar as subclasses é que apenas as entidades que sejam membros de alguma subclasse possam participar de algum tipo de relacionamento.

Em resumo, o processo de especialização nos permite fazer o seguinte:

  1. Definir um conjunto de subclasses de um tipo de entidade.
  2. Estabelecer atributos específicos adicionais para cada subclasse.
  3. Estabelecer tipos de relacionamentos adicionais específicos entre cada subclasse e outros tipos de entidade, ou outras subclasses.

Generalização: É um processo contrário ao da especialização, que ocorre quando temos mais de uma entidade com atributos comuns entre elas e então neste caso podemos criar uma superclasse com os atributos em comum, utilizando assim o conceito da generalização.

Exemplo:

Entidade Carro: número passageiros, velocidade máxima, preço, número placa.
Entidade Caminhão: preço, número placa, numero eixos, capacidade.

Com a Generalização, podemos criar uma entidade VEICULO que terá como atributos, os em comum das entidades carro e caminhão.

Imagem


ENTIDADE ASSOCIATIVA

Uma entidade associativa é utilizada quando entre o relacionamento de duas entidades verificamos a necessidade de relacionar com outra relação. nA MODELAGEM eR NÃO FOI PREVISTA A POSSIBILIDADE DE ASSOCIAR DOIS RELACIONAMENTOS ENTRE SI, POREM NA PRÁTICA QUANDO ISSO É NECESSÁRIO nA MODELAGEM DEVEMOS ENTÃO TRANSFORMAR O RELACIONAMENTO EM UMA ENTIDADE ASSOCIATIVA.

Por exemplo

Imagem

No exemplo acima, o FUNCIONÁRIO tem uma relação com o cliente de ATENDER. Mas vamos aumentar nosso exemplo, imaginando que o cliente  FUNCIONÁRIO ALUGUE Fitas de DVD para o cliente a partir do atendimento. Para isso teremos que criar uma entidade FITAS. Mas o problema é em que entidade vamos relacionar as fitas, se relacionamentos com cliente ficará faltando a informação de que funcionário locou a fita para o cliente e se relacionarmos com o funcionário fica faltando a informação de que cliente locou a fita. Para resolver este problema devemos relacionar as Fitas à relação ATENDE.

Para isso, podemos transformar o relacionamento ATENDE em uma entidade e esta entidade relacionar com F ITA.

Imagem

ELMASRI, Rames; NAVATHE, Shamkant B. Sistema de Banco de Dados. Rio de Janeiro, 4ed.: LTC, 2000.