?>
1-mysql Básico
Exercícios
?>

Capítulo 5

2-Modelo Conceitual - Modelo ER

O modelo conceitual, como o nome diz, trata dos conceitos iniciais, relacionados com as definições (abstratas) feitas ou demandadas pelo usuário.

Nessa seção estudamos mais detalhamente a etapa de projeto que denominamos "Modelagem Conceitual".

ciclo projeto
Exemplo do ciclo de projeto de um Banco de Dados


Nesses links temos um material do professor Heuser: livro "Projeto de Banco de Dados" e slides sobre modelagem ER.

"Você senta com o usuário, conversa com ele, e vai montar um modelo com o que ele quer"...

(Prof André Santanchè - Modelagem Conceitual / Vendo o Mundo em Objetos - Aula 03b - Bancos de Dados 2019.2)

Para modelagem a conceitual usamos diagramas. Existem diferentes representações/notações (ou "padronizações") para desenvolvimento de diagramas. Veremos um tipo de representação mas discutiremos alguns modelos mais usados na literatura.

Nesse link temos apresentações das principais notações usadas para modelagem conceitual:

Nesse outro link encontramos uma análise das notações Chen, Chen-alternativa, James Martin (IE ou Pé de Galinha), UML, Barker e IDEF1X (essa é só mencionada...veja porque...) mostrando softwares que possibilitam o design de cada uma delas.

Nesse artigo encontramos um estudo sobre as diferentes notações para DER.

É comum também encontrarmos autores, softwares, ferramentas cases, ides, etc. que usam notação própria ou uma mistura das notações mais conhecidas. Portanto, ao procurarem modelos ou ao estudarem material adicional podem encontrar exemplos de modelos ER que são construidos com símbolos de mais de uma dessas notações.

Um exemplo de modelos Conceitual, Lógico e Físico pode ser encontrado nesse link. Esse é um exemplo de modelagem que faz uso de uma notação própria, que se assemelha a mais de uma notação, dentre as listadas acima.

modelo conceitual, logico e fisico:

Ferramentas de projeto e de criação de diagramas

(vide mais ferramentas no final dessa página)

Modelagem Conceitual
Introdução e Motivação

Nesse nivel, descrevemos OS TIPO DE DADOS e as RELAÇÕES entre eles.

É uma parte bem abstrata. Nesse nível de projeto estamos trabalhando ideias. O modelo não depende do tipo de Sistema vamos usar.

Na parte de projeto "conceitual" criamos um modelo "genérico" que contém informações dos tipos de dados que iremos armazenar e como eles podem se organizar. Por exemplo, um modelo conceitual textual pode ser:


1) Cadastro de Clientes: 

Dados necessários: nome completo, tipo de pessoa (física ou jurídida), 
endereço, bairro, cidade, estado, telefone, email, nome de contato.


2) Pedido: 

Dados necessários: código do produto, quantidade, código do cliente,
digo do vendedor.


Se, por exemplo, desejarmos criar um banco para cadastro de produtos de uma loja. Nesse caso podemos pensar em alguns dados e como podem ser organizados.

Dados necessarios para o nosso banco:

  • Nome do produto,

  • categoria de produto,

  • codigo do fornecedor,

  • tipo de embalagem,

  • tamanho, quantidade,

  • quantidade, etc

Exemplo

Descreva um modelo conceitual para armazenar os dados de livros.

Resposta (provável):


Cadastro de Livros: Titulo, subtítulo, autor, editora,
número de páginas, preço de compra, já foi lido,
ISBN, número de páginas, ano de publicação,
número da edição...

Modelagem Conceitual:
Modelo Entidade Relacionamento

A técnica mais difundida de modelagem conceitual é a abordagem entidade- relacionamento (ER). Nesta técnica, um modelo conceitual é usualmente representado através de um diagrama, chamado diagrama entidade-relacionamento (DER).

Nesta primeira fase do projeto, é construído um modelo conceitual, na forma de um diagrama entidade-relacionamento. .

Este modelo captura as necessidades da organização em termos de armazenamento de dados de forma independente de implementação.

Definição:

O Modelo Entidade-Relacionamento(ER) é um modelo abstrato, de alto nível, independente do SGBD (Sistemas Gerenciadores de Bancos de Dados), que representa o problema a ser modelado.

Geralmente, este modelo ER é criado com auxílio de ferramenas gráficas (ou de representação gráfica) que auxilia a visualização das relações entre as entidades.

Conceitos: Entidade, Atributo e Relacionamento

Quando se pretende construir um banco de dados para representar uma determinada situação, é necessário começar por identificar quais os objetos que são relevantes, as suas características ou propriedades. A estes objetos que pretendemos representar, na teoria de bases de dados, damos o nome de entidades.

Entidade

Uma ENTIDADE pode ser definida como um conjunto de objetos do mesmo tipo (pessoas, lugares, objectos, acontecimentos ou conceitos) acerca dos quais se pretende guardar informação.

Ao recolher e guardar informação acerca de uma qualquer entidade, podemos ter essa informação organizada por categorias ou itens, a que se designa por atributos.

Atributo

Os ATRIBUTOS são os diferentes elementos ou itens de informação que caracterizam uma entidade. Na prática, os atributos de uma entidade vão dar origem aos campos de uma tabela da base de dados.

Relacionamento

No mundo real as entidades nunca estão sozinhas; normalmente estão associadas entre si. Reconhecer e registrar as associações entre entidades fornece uma descrição muito mais rica do ambiente

As entidades se relacionam na medida em que informações de uma entidade podem ajudar a caracterizar outras. Além disso podemos definir ações entre as entidades. Por exemplo um "vendedor vende produtos". Logo a entidade VENDENDEDOR se relacionam com a enteidade PRODUTOS a partir de uma relação de "venda".

Assim temos um relacionamento quando associamos entidades.

Ou seja, temos três conceitos fundamentais no modelo ER:

  • Entidade: é um objeto ou evento do mundo real sobre o qual desejamos manter um registro. Exemplo: Aluno, Carro, Produto, Vendedor, etc.

  • Atributo: é uma propriedade ou característica que descreve uma entidade. Também é chamado de campo. Ex.: Atributos da entidade ALUNO: nome, data de nascimento, telefone, endereço, etc.

  • Relacionamento: é uma relação entre uma, duas ou várias entidades. Geralmente associamos através da ação (verbo) entre as entidades. Exemplos: PAI possui FILHO; CLIENTE realiza PEDIDO; VENDEDOR vende PRODUTO.



Estudo dos Conceitos de Entidade, Relacionamento e Atributo

A seguir estudamos mais detalhadamente as entidades, os relacionamentos e os atributos. Esses estudos estão feitos na seções abaixo, que podem ser acessadas diretamente pelos links:



Entidades

Como dito, uma "entidade" no modelo ER identifica o "objeto de interesse". Veremos mais a frente que elas se tornarão tabelas quando mudarmos do modelo conceitual para o modelo lógico.

Exemplos de Entidades e Atributos

Vejamos alguns exemplos de entidades e possíveis atributos (campos):

Entidades Atributos
Livro Código, Título; Autor; Preço; …
Clientes Número; Nome; Endereço; Telefone; …
Alunos Número; Nome; Ano; Turma; …
Curso Número; Nome; Disciplinas; Professores; …

Representação Gráfica

Representamos uma entidade nos diagramas E-R através de um retângulo

entidade
Fig1: Exemplos de Entidade no modelo ER

Cada retângulo representa um conjunto de objetos sobre os quais deseja-se guardar informações.

Assim, no exemplo, o primeiro retângulo designa o conjunto de todas pessoas sobre as quais se deseja manter informações no banco de dados, enquanto o segundo retângulo designa o conjunto de todos departamentos sobre os quais se deseja manter informações.

Os atributos são especificados por círculos ou listados, como mostrado na figura abaixo



er12 Figura 2: Entidade com três atributos

entidade
Figura 3: Duas formas de representar a ENTIDADE "Produto". Em ambas temos 3 atributos, destacando o atributo "código" como atributo identificador (que será uma chave na tabela).


entidade
Figura 3b: Forma alternativa de representação da entidade e seus atributos: entidade no retângulo e atributos na elipse. O atributo identificador é sublinhado.


Veja um diagrama ER completo com essa notação para atributos e entidades na Figura 13a.

Veja mais sobre atributos das entidades na seção Atributos.

Ocorrências Ou Instâncias de Entidades

Outro termo que usamos com frequência é a "ocorrência de entidade" ou "instância". Como mostrado na Figura 4, nosso modelo exemplo possui ocorrências das entidades EMPREGADO e DEPARTAMENTO.

Instâncias (ou ocorrências) são elementos (diferentes) das entidades.

Veja mais exemplos de representação de entidades nas figuras: Figura 7a, Figura 11b, Figura 12a, Figura 12b.

Relacionamentos

(voltar)

Exemplos de Relacionamentos

Relacionamento: conjunto de associações entre entidades.

Em um Diagrama Entidade-Relacionamento (DER), um relacionamento é representado através de um losango, ligado por linhas aos retângulos representativos das entidades que participam do relacionamento.

Exemplo

Por exemplo, a figura abaixo ilustra o relacionamento "LOTAÇÃO", entre as entidades DEPARTAMENTO e EMPREGADO>

Trulli
Figura 4: Exemplo de relacionamento entre duas entidades

A Figura 4 acima apresenta um DER contendo duas entidades, EMPREGADO e DEPARTAMENTO, e um relacionamento, LOTAÇÃO. Ela nos traz informações sobre o Banco de Dados, que possui:

  • um conjunto de objetos classificados como pessoas (entidade EMPREGADO)

  • um conjunto de objetos classificados como departamentos (entidade DEPARTAMENTO)

  • um conjuntos de associações, que ligam um departamento a uma pessoa. (relacionamento LOTAÇÃO).

Auto-relacionamento

Nem sempre um relacionamento associa entidades diferentes. A Figura abaixo mostra um DER que contém um auto-relacionamento, isto é, um relacionamento entre ocorrências de uma mesma entidade.

er3
Figura 5: Auto-relacionamento da ENTIDADE "Pessoa"

Neste caso, é necessário um conceito adicional, o de "papel da entidade" no relacionamento.

No caso do relacionamento de casamento, uma ocorrência de pessoa exerce o papel de marido e a outra ocorrência de pessoa exerce o papel de esposa.

Os Papéis são anotados no DER como mostrado na Figura acima, isto é, do lado.

No caso de relacionamentos entre entidades diferentes, como o de LOTAÇÃO mostrado acima, não é necessário indicar os papéis das entidades, já que eles são óbvios.

Cardinalidade de Relacionamentos

(voltar)

Para fins de projeto de banco de dados, uma propriedade importante de um relacionamento é a de quantas ocorrências de uma entidade podem estar associadas a uma determinada ocorrência através do relacionamento.

Esta propriedade é chamada de cardinalidade de uma entidade em um relacionamento. Há duas cardinalidades a considerar: a cardinalidade máxima e a cardinalidade mínima.

--

Definição

A razão de cardinalidade (ou simplesmente "cardinalidade") para um relacionamento binário especifica o número máximo de instâncias de relacionamento em que uma entidade pode participar.


Por exemplo, no tipo de relacionamento binário lotação, DEPARTAMENTO:EMPREGADO tem razão de cardinalidade 1:N, significando que cada departamento pode estar relacionado a (ou seja, tem lotado ou emprega) qualquer número de empregados, mas um empregado só pode estar relacionado (ou seja, lotado) a um departamento.



er4a
Exemplo de relacionamento destacando a cardinalidade 1:N entre empregado e departamento pela relção "LOTAÇÂO".



Definição: Cardinalidade Máxima e Mínima

cardinalidade mínima de entidade em relacionamento: número mínimo de ocorrências de entidade associadas a uma ocorrência da entidade em questão através do relacionamento

cardinalidade máxima de entidade em relacionamento: número máximo de ocorrências de entidade associadas a uma ocorrência da entidade em questão através do relacionamento

Exemplo de Cardinalidade

Para exemplificar o conceito de cardinalidade vamos considerar banco de dados que possui as ENTIDADES "EMPREGADO" e "DEPARTAMENTO" eo RELACIONAMENTO "LOTAÇÃO"



er4
Figura 6: Exemplo de relacionamento destacando a cardinalidade

Vamos considerar as seguintes cardinalidade máximas:

  • Entidade EMPREGADO tem cardinalidade máxima 1 no relacionamento LOTAÇÃO:

    • Isso significa que uma ocorrência de EMPREGADO pode estar associada a no máximo uma ocorrência de DEPARTAMENTO, ou dizendo de outra forma, que um empregado pode estar lotado em no máximo um departamento

  • Entidade DEPARTAMENTO tem cardinalidade máxima, por exemplo, 120 no relacionamento LOTAÇÃO:

    • Isso significa que uma ocorrência de DEPARTAMENTO pode estar associada a no máximo 120 ocorrências de EMPREGADO, ou em outros termos, que um departamento pode ter nele lotado no máximo 120 empregados

    • (120 foi um exemplo...mas independentemente do número, representamos a cardinalidade máxima como n).

Importante

  • Para fins práticos, não é necessário distinguir entre diferentes cardinalidades máximas maiores que 1. Por este motivo, apenas duas cardinalidades máximas são relevantes: a cardinalidade máxima 1 e a cardinalidade máxima "muitos", referida pela letra n. Assim, no exemplo acima, diz-se que a cardinalidade máxima da entidade DEPARTAMENTO no relacionamento LOTAÇÃO é n. A cardinalidade máxima é representada no DER conforme indicado na Figura 6. Observe a convenção usada.

  • À primeira vista, ela pode parecer pouco natural, já que vai anotada "do outro lado" do relacionamento a qual se refere. Exemplificando, a cardinalidade máxima da entidade EMPREGADO no relacionamento LOTAÇÃO é anotada junto ao símbolo da entidade DEPARTAMENTO.




  • maximaCardinalidade
    Figura: Representação da Cardinalidade Máxima do Relacionamento


    Notação da Cardinalidade

  • É como se fóssemos ler: "1 departamento possui n empregados". E cada empregado (são n empregados) pode ser lotado em 1 departamento.

  • Ou seja,

    • n do lado de empregado: expressa que a uma ocorrência de DEPARTAMENTO (entidade ao lado oposto da anotação) podem estar associadas muitas ("n") ocorrências de EMPREGADO.

    • 1 do lado de departamento: expressa que a uma ocorrência de EMPREGADO (entidade do lado oposto da anotação) pode estar associada ao máximo uma ("1") ocorrência de DEPARTAMENTO

Classificação de relacionamentos binários

(voltar)

Um relacionamento binário é aquele cujas ocorrências envolvem duas entidades.


(voltar para o texto)

Podemos classificar os relacionamentos em n:n (vários-para-vários ou também denominado muitos-para-muitos), 1:n (um-para-váriso ou um-para-muitos) e 1:1 (um-para-um).

  • Relação 1:1 (um-para-um): Um registro da entidade-1 pode estar associado a no máximo um registro da entidade-2 e vice-versa.

  • Relação 1:n (um-para-vários ou um-para-muitos): Um registro da entidade-1 pode estar associado a vários registros da entidade-2. Vários registros da entidade-2 estão relacionados a um único registro entidade-1.

  • Relação n:n (vários-para-vários ou muitos-para-muitos): Um registro da entidade-1 pode estar associado a vários registros da entidade-2 e vice-versa.



er7a
Figura 7a: Razões de Cardinalidade exemplificadas para instâncias de entidades. Repare que as instâncias são elementos de um conjunto.
(voltar para o texto)

Cardinalidade 1 para 1

A figura 7b abaixo são apresentados dois exemplos de relacionamentos 1 para 1.



er5
Figura 7b: Exemplos de relacionamentos 1 para 1.

No relacionamento CASAMENTO, as cardinalidades máximas expressam que uma pessoa pode possuir no máximo um marido (uma instância de pessoa pode estar associada via relacionamento a no máximo outra pessoa no papel de esposa) e no máximo uma esposa.

Observe que este relacionamento, apesar de envolver apenas uma entidade, é também considerado como um relacionamento binário. O que determina o fato de o relacionamento ser binário é o número de ocorrências de entidade que participam de cada ocorrência do relacionamento.

De cada ocorrência de CASAMENTO participam exatamente duas ocorrências da entidade PESSOA (um marido e uma esposa). Por este motivo, o relacionamento de CASAMENTO é classificado como sendo binário.

Cardinalidade 1-para-vários (ou 1-para-muitos)



er6
Figura 8: Exemplo de Relacionamento 1 para muitos.

A Figura 8 mostra outros exemplos de relacionamentos 1:n, além do relacionamento LOTAÇÃO que já havia sido visto acima.

O relacionamento INSCRIÇÃO da Figura 8 representa a associação entre cursos de uma Universidade pública e seus alunos. Por tratar-se de uma universidade pública, cada aluno pode estar vinculado a um curso no máximo.

O relacionamento INSCRIÇÃO modela a inscrição de alunos em uma universidade pública, onde existe a restrição de que um aluno pode estar inscrito em no máximo um curso.

O relacionamento entre as entidades EMPREGADO e DEPENDENTE (também na Figura 8) modela a associação entre um empregado e seus dependentes para fins de imposto de renda.

Neste caso, um dependente pode estar associado a no máximo um empregado.

Cabe observar que no DER, não foi anotado o nome do relacionamento. No caso de no DER não constar o nome do relacionamento este é denominado pela concatenação de nomes das entidades participantes.

Assim, neste caso, o relacionamento é denominado EMPREGADO-DEPENDENTE.

O relacionamento SUPERVISÃO (Figura 8) é um exemplo de autorelacionamento 1:n. Ele modela a associação entre um empregado (supervisor) e seus supervisionados imediatos.

A cardinalidade máxima expressa que um empregado pode possuir no máximo um supervisor, mas muitos supervisionados.


Cardinalidade n para n (vários-para-vários ou muitos-para-muitos)



er7
Figura 9a: Exemplos de relacionamentos "muitos-para-muitos."

O tipo menos restrito de relacionamento é o de cardinalidade n:n. A Figura 9a apresenta alguns relacionamentos deste tipo, inclusive o de um auto-relacionamento.


<

Relacionamento Ternário

Todos exemplos mostrados até aqui foram de relacionamentos binários, ou seja, de relacionamentos que associam exatamente duas entidades.

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



er7
Figura 10: Exemplo de relacionamento ternário"

O DER da Figura 10 mostra um exemplo de um relacionamento ternário.

Cada ocorrência do relacionamento DISTRIBUIÇÃO associa três ocorrências de entidade: um produto a ser distribuído, uma cidade na qual é feita a distribuição e um distribuidor.

No caso de relacionamentos de grau maior que dois, o conceito de cardinalidade de relacionamento é uma extensão não trivial do conceito de cardinalidade em relacionamentos binários.

Lembre-se que, em um relacionamento binário R entre duas entidades A e B, a cardinalidade máxima de A em R indica quantas ocorrências de B podem estar associadas a cada ocorrência de A.

No caso de um relacionamento ternário, a cardinalidade refere-se a pares de entidades.

Em um relacionamento R entre três entidades A, B e C, a cardinalidade máxima de A e B dentro de R indica quantas ocorrências de C podem estar associadas a um par de ocorrências de A e B. (Vide Figura 11 abaixo)

Vide Figura 11



er9
Figura 11: Destacando Cardinalidade em Relacionamento Ternário

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.

Para fins de projeto de BD, consideram-se apenas duas cardinalidades mínimas: 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 da entidade em questão.

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

A cardinalidade mínima é anotada no diagrama junto a cardinalidade máxima, conforme mostrado na Figura 11b

Nesta figura, aparece novamente o exemplo da alocação de empregados a mesas que já foi apresentado anteriormente.

Aqui, a cardinalidade mínima é usada para especificar que cada empregado deve ter a ele alocada obrigatoriamente uma mesa (Na figura 10 também é apresentado um diagram de ocorrências).



er10
Figura 11b: Exemplo de relacionamento mostrando cardinalidade mínima e máxima.
(voltar para o texto)




21
Figura 11c: Exemplos de Cardinalidades Máxima e Mínimas usando a notação de CHEN e de Martin-James (pé de galinha). Veja mais sobre as notações para diagramas ER na seção Notações para Diagramas ED)

Restrições de Participação

(voltar)

A restrição de participação especifica se a existência de uma entidade depende dela estar relacionada a outra entidade por meio do tipo de relacionamento. Essa restrição especifica o número mínimo de instâncias de relacionamento em que cada entidade pode participar, e às vezes é chamada de restrição de cardinalidade mínima. Existem dois tipos de restrições de participação — total e parcial.

Se a política de uma empresa afirma que todo funcionário precisa trabalhar para um departamento, então uma entidade de funcionário só pode existir se participar em, pelo menos, uma instância de relacionamento TRABALHA_PARA. Vide Figura 12a./



er12a
Figura 12a: Exemplo mostrando algumas instâncias no conjunto de relacionamentos TRABALHA_PARA, que representa um tipo de relacionamento TRABALHA_PARA entre FUNCIONARIO e DEPARTAMENTO. Nesse caso temos a restrição de participação total pois todo funcionário tem que trabalhar em um (ou para um) departamento.
(voltar para o texto)

A participação de FUNCIONARIO em TRABALHA_PARA é chamada de participação total, significando que cada entidade no conjunto total de entidades de funcionário deve estar relacionada a uma entidade de departamento por meio de TRABALHA_PARA. A participação total também é conhecida como dependência de existência.

Na Figura 12b, não esperamos que cada funcionário gerencie um departamento, de modo que a participação de FUNCIONARIO no tipo de relacionamento GERENCIA é parcial, significando que uma parte do conjunto de entidades de funcionário está relacionada a alguma entidade de departamento por meio de GERENCIA, mas não necessariamente todas. Vamos nos referir à razão de cardinalidade e restrições de participação, juntas, como as restrições estruturais de um tipo de relacionamento.



er12b
Figura 12b: Exemplo de relacionamento 1:1. Nesse caso temos a restrição de participação parcial pois nem todo funcionário GERENCIA um DEPARTAMENTO.
(voltar para o texto)

Em diagramas ER, a participação total (ou dependência de existência) é exibida como uma linha dupla que conecta o tipo de entidade participante ao relacionamento, enquanto a participação parcial é representada por uma linha simples (vide Figura 7.13a). Observe que, nessa notação, podemos especificar nenhum mínimo (participação parcial) ou um mínimo de um (participação total).

Vide figura 13b. Ela apresenta uma notação alternativa que usa a referência MIN:MAX para as relações.

Exemplos Completos

(voltar)


er13a
Figura 13a: Um diagrama de esquema ER para o banco de dados EMPRESA.
(voltar para o texto)



er13b
Figura 13b: Diagramas ER para o esquema EMPRESA, com restrições estruturais especificadas usando a notação (min, max) e nomes de função.



er13b
Figura 13c: O esquema conceitual EMPRESA na notação do diagrama de classes UML.

Na Figura 13d apresentamos um outro diagrama ER de um Banco de Dados completo, com ENTIDADES, ATRIBUTOS, RELACIONAMENTOS, destacando as cardinalidades máximas é mínimas.



er11
Figura 13d: Diagrama ER de um Banco de Dados.

Nessa figura (figura 13d) temos um exemplo de um diagrama entidade-relacionamento envolvendo as entidades DEPARTAMENTO, DISCIPLINA, ALUNO e CURSO e relacionamentos RESPONSÁVEL, DISC-CURSO, INSCRIÇÃO e PRÉ-REQUIS.

Como se vê, 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 os retângulos representativos de entidades que participam de muitos relacionamentos no centro do diagrama.

Atributos

(voltar)

Para associar informações a ocorrências de entidades ou de relacionamentos usa-se o conceito de atributo.

Definição

ATRIBUTO: dado que é associado a cada ocorrência de uma entidade ou de um relacionamento.


er11
Figura 14: Exemplo de atributos de uma entidade


Atributos podem ser representados graficamente conforme mostra a Figura 14.

A figura expressa que a cada ocorrência de PROJETO é associado exatamente um nome, um código e um tipo.

Uma outra opção de representação de atributos é mostrada na figura 15, na qual são usadas elipses para definir os atributos.



er11
Figura 15: Exemplo de atributos de uma entidade (notação usando elipse)

Na prática, atributos não são representados graficamente, para não sobrecarregar os diagramas, já que muitas vezes entidades possuem um grande número de atributos.

Prefere-se usar uma representação textual que aparece separadamente do diagrama ER.

No caso de ser usado um software para construção de modelos ER, o próprio software encarrega-se do armazenamento da lista de atributos de cada entidade em um dicionário de dados.

Tipos de Atributos

(adaptado de André Sanches )

Existem diversos tipos de atributos:

  • Compostos. Os atributos compostos podem ser divididos em partes menores os quais representariam atributos básicos mais simples com significados independentes. Por exemplo, um atributo endereço pode ser subdividido em rua, cidade, estado e cep. Poderíamos também dividir o atributo rua em número, nome-rua e número-apartamento. Atributos deste tipo formam uma hierarquia.
  • Simples. São chamados também por atributos atômicos. Eles não são divisíveis.
  • Monovalorados. São atributos que possuem apenas um valor para uma entidade em particular. Por exemplo, a idade é um atributo monovalorado para uma entidade pessoa.
  • Multivalorado. São atributos que possuem um ou mais valores para o mesmo. Por exemplo, o atributo idioma de uma entidade aluno pode conter os valores inglês e francês. Para um outro aluno poderia conter apenas um valor - espanhol. Para um terceiro aluno, poderíamos ter 3 valores para este atributo.
  • Derivado. Alguns atributos podem ter uma relação entre si. Por exemplo, idade e data-nascimento de uma pessoa. Para uma pessoa em particular, podemos determinar o valor atual de idade através do atributo data-nascimento. Então idade é chamado um atributo derivado e é derivado do atributo data-nascimento. Alguns atributos podem ser derivados de entidades relacionadas. Por exemplo, um atributo número-empregados de uma entidade departamento pode ser derivado através da contagem de número de empregados que trabalham-para um departamento.
  • Nulo. Em alguns casos, uma entidade pode não necessitar de um valor aplicável a um de seus atributos. Por exemplo, no atributo número-apartamento composto visto acima, apenas definiremos valores para este campo quando a entidade pessoa em particular morar em um prédio. Outro exemplo é multivalorado idioma de um aluno: caso este aluno em particular não tenha fluência em nenhuma língua, então não necessitamos preencher o valor deste atributo. A representação de um atributo sem valor é colocarmos um valor especial null. Null também pode ser utilizado quando não conhecemos o valor de um atributo, por exemplo, quando se é desconhecida a data de nascimento de uma pessoa.

Cardinalidade do Atributo

Um atributo pode possuir uma cardinalidade, de maneira análoga a uma entidade em um relacionamento.

A cardinalidade de um atributo define quantos valores deste atributo podem estar associados a uma ocorrência da entidade-relacionamento a qual ele pertence.

A representação diagramática da cardinalidade de atributos é derivada da representação da cardinalidade de entidades em relacionamentos, conforme mostra a Figura 16. No caso de a cardinalidade ser (1,1) ela pode ser omitida do diagrama.

Assim, o exemplo da Figura 16 expressa que nome e código são atributos obrigatórios (cardinalidade mínima 1- cada entidade possui no mínimo um valor associado) e mono-valorados (cardinalidade máxima "1" -cada entidade possui no máximo um valor associado).

Já o atributo telefone, é um atributo opcional (cardinalidade mínima 0) e multi-valorado (cardinalidade máxima n).



er11
Figura 16: Exemplo de atributos de uma entidade com caridinalidade

Atributo multi e mono-valorado

Conforme dito acima atributos podem ser opcionais (nem toda ocorrência da entidade possui um valor do atributo) ou multi-valorados. Entretanto, quando se inicia o processo de modelagem é aconselhável tentar restringir-se ao uso de atributos obrigatórios e mono-valorados.

Assim como entidades possuem atributos, relacionamentos também podem possuir atributos.

A Figura 17 mostra um DER no qual um relacionamento, ATUAÇÃO, possui um atributo, a função que um engenheiro exerce dentro de um projeto.

Esta 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.



er11
Figura 17: Exemplo de relacionamento com atributo.

Identificador - Identificando Entidades

(voltar)

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 da entidade das demais ocorrências da mesma entidade.

O caso mais simples é o da entidade que possui um único atributo como identificador.

Nos DERs, atributos identificadores são representados por um círculo pretos.

Opcionalmente, ferramentas de projeto usam atributos identificadores com elipses com o nome grifado.

No exemplo da Figura 18, o atributo código é identificador.

Isso significa que cada pessoa possui um código diferente. Já os atributos nome e endereço não são identificadores-o mesmo nome (ou o mesmo endereço) pode ser associados a diferentes pessoas.



er11
Figura 18: Exemplo de atributos, destancando (círculo preto) o atributo identificador.
Na figura 19 é apresentada uma outra representação para identificador (ou atributo identificador). Nessa figura também é apresentada a representação para atributo multivalorado.


er11
Figura 19: Uma outra representação para atributos, destacando-se o atributo identificador (grifado)

Definição - identificador de entidade:

conjunto de atributos e relacionamentos cujos valores distinguem uma ocorrência da entidade das demais

A Figura 20 mostra um exemplo no qual o identificador da entidade é composto por mais de um atributo.

Considera-se um almoxarifado de uma empresa de ferragens organizado como segue.

Os produtos ficam armazenados em prateleiras. Estas prateleiras encontram-se em armários organizados em corredores.

Os corredores são numerados seqüencialmente a partir de um e as prateleiras são numeradas seqüencialmente a partir de um dentro de um corredor.

Assim, para identificar uma prateleira é necessário conhecer seu número e o número do corredor em que se encontra. Para cada prateleira é informado também sua capacidade em metros cúbicos.



er11
Figura 20: Identificador Composto

Relacionamento Identificador

(voltar)
(voltar para Etapa 2, modelo lógico)

Há 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). Um exemplo deste caso é mostrado na Figura 21.

Este diagrama apresenta empregados de uma organização, relacionados com os seus dependentes para fins de imposto de renda. Cada dependente está relacionado a exatamente um empregado. Um dependente é identificado pelo empregado ao qual ele está relacionado e por um número de seqüência que distingue os diferentes dependentes de um mesmo empregado. No DER, o relacionamento usado como identificador é indicado por uma linha mais densa, conforme mostrado na figura 21



er11
Figura 21: Relacionamento Identificador

Entidade Fraca

(voltar)
(voltar para Etapa 2, modelo lógico)

Nesse caso (figura 21, que exemplifica o "relacionamento identificador"), 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.

Entretanto, os autores de livros mais recentes preferem não utilizar o conceito, já que as entidades chamadas "fracas" por este critério podem, dependendo da realidade modelada, ser centrais a um modelo.

Resumo do Conceito de Identificador

(voltar) O identificador de uma entidade, seja ele simples, composto por diversos atributos, ou composto por identificadores externos, deve obedecer duas propriedades:
  • O identificador deve ser mínimo. Isso significa que 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. Exemplificando, na entidade PESSOA na Figura 18, o par código e nome poderia ser usado para distinguir uma ocorrência de PESSOA das demais.

    • Entretanto, estes atributos não formam um identificador mínimo, já que código é suficiente para distinguir as ocorrências de PESSOA.

  • Cada entidade deve possuir um único identificador. Em alguns casos, diferentes conjuntos de atributos podem servir para distinguir as ocorrências da entidade.

    • Exemplificando, a entidade EMPREGADO da Figura 14-f poderia possuir como identificador tanto o atributo código, quanto o atributo CIC (identificador único do contribuinte junto a Receita Federal). Cabe ao projetista decidir qual dos dois atributos será usado como identificador da entidade.



er11
Figura 22: Identificadores Alternativos


Entidade Associativa

(voltar)

Uma entidade associativa nada mais é que a redefinição de um relacionamento, que passa a ser tratado como se fosse também uma entidade. Graficamente, isso é feito como mostrado na figura abaixo.

O retângulo desenhado ao redor do relacionamento CONSULTA indica que este relacionamento passa a ser visto como uma entidade (associativa, já que baseada em um relacionamento). Sendo CONSULTA também uma entidade, é possível associá-la através de relacionamentos a outras entidades, conforme mostra a figura abaixo.



er11
Figura: Entidade Associativa

Generalização e Especialização

Além de relacionamentos e atributos, propriedades podem ser atribuídas a entidades através do conceito de generalização/especialização.

Através deste conceito é possível atribuir propriedades particulares a um subconjunto das ocorrências (especializadas) de uma entidade genérica.

O símbolo para representar generalização/especialização é um triângulo isósceles, conforme mostra a figura 23.



er11
Figura 23: Generalização/Especialização

A generalização/especialização mostrada nesta figura expressa que a entidade CLIENTE é dividida em dois subconjuntos, as entidades PESSOA FÍSICA e PESSOA JURÍDICA cada um com propriedades próprias.

Associada ao conceito de generalização/especialização está a idéia de herança de propriedades.

Herdar propriedades significa que cada ocorrência da entidade especializada possui, além de suas próprias propriedades (atributos, relacionamentos e generalizações/especializações), também as propriedades da ocorrência da entidade genérica correspondente.

Assim, segundo o DER da Figura 23, a entidade PESSOA FÍSICA possui, além de seus atributos particulares, CIC e sexo, também todas as propriedades da ocorrência da entidade CLIENTE correspondente, ou seja, os atributos nome e código, o seu identificador (atributo código), bem como o relacionamento com a entidade FILIAL.

Resumindo, o diagrama expressa que toda pessoa física tem como atributos nome, código, CIC e sexo, é identificada pelo código e está obrigatoriamente relacionada a exatamente uma filial.

Da mesma maneira, toda pessoa jurídica tem como atributos nome, código, CGC e tipo de organização, é identificada pelo código e está obrigatoriamente relacionada a exatamente uma filial.

Características da Generalização/Especialização

A generalização/especialização pode ser classificada em dois tipos, total ou parcial , de acordo com a obrigatoriedade ou não de a uma 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.

Esse é o caso do exemplo da Figura 23, no qual a toda ocorrência da entidade CLIENTE corresponde uma ocorrência em uma das duas especializações. Esse tipo de generalização/especialização é simbolizado por um "t" conforme mostrado na Figura 24.





er11
Figura 24: Generalização/Especialização total


Em uma generalização/especialização parcial, nem toda ocorrência da entidade genérica possui uma ocorrência correspondente em uma entidade especializada. Esse é o caso do exemplo da Figura 25, no qual nem toda entidade FUNCIONÁRIO possui uma entidade correspondente em uma das duas especializações (nem todo o funcionário é motorista ou secretária).

Esse tipo de generalização/especialização é simbolizado por um "p" conforme mostrado na figura.

Usualmente, quando há uma especialização parcial, na entidade genérica (no caso do exemplo, em FUNCIONÁRIO) aparece um atributo que identifica o tipo de ocorrência da entidade genérica (no caso do exemplo, trata-se do atributo tipo de funcionário).

Este atributo não é necessário no caso de especializações totais, já que a presença da ocorrência correspondente a entidade genérica em uma de suas especializações é suficiente para identificar o tipo da entidade.



er11
Figura 25: Generalização/Especialização parcial


Símbolos Usados no DER

A descrição de um modelo é chamada, na terminologia de banco de dados, de o esquema do banco de dados.

Em geral os modelos ER são construídos graficamente, porém existem modelos criados em forma de texto.

A Figura 26 resume os símbolos usados nessa nossa apostila (baseados no livro do Professor Carlos Alberto Heuser. Vide Referências.


er11
Figura 26: Símbolos usados para construção de modelos ER

Outras Definições para DER



simbolos_do_DER.jpeg
Figura 27: Exemplo mais completo com Símbolos Usados em Modelos ER

Notações para Diagramas ED

Notações para Modelos ER

Um esquema ER pode ser elaborado em texto.

Na Figura 99 temos uma exemplo de um modelo ER escrito em texto, usando uma "gramática" denominada BNF.

Nesta sintaxe, são usadas as seguintes convenções: colchetes denotam opcionalidade, chaves denotam repetição, o sufixo LISTA denota uma seqüência de elementos separados por vírgulas e o sufixo NOME denota identificadores.



notacoes_para_DER1.jpeg
Figura 29: Diferentes Notações para Diagrama ER

Além dessa opção na forma de texto, existem outras notações para a representação de modelos ER.

Existem também dezenas de ferramentas de projetos, algumas com suas notações próprias. Veja mais sobre ferramentas de projetos no link: Ferramentas para Projeto de Modelos ER.

Veja as possíveis notações para modelagem de dados.



notacoes_para_DER1.jpeg
Figura 30: Diferentes Notações para Diagrama ER

Referências

Ferramentas para Projeto usando Diagramas ER

Exercicios

Exercício 1

  1. Explique o que significam as cardinalidades 1:1, 1:N, N:N. Apresente exemplos.

  2. Responda: qual a diferença entre entidade fraca e entidade forte?
  3. Dê exemplos de relacionamentos binários 1:N em que (i) ambas as partes tem que ter relacionamento total; (ii) apenas uma das partes tem que ter relacionamento total. (Vide uma sugestão de solução aqui )
  4. A figura abaixo (Figura 31) apresenta três relacionamentos com cardinalidades diferentes. Explique com suas palavras como é a relação de cada um deles, destacando a relação de cardinalidade. Explique também o que significa a linha dupla que aparece nos relaciomanetos 1:N e 1:1.



9 Figura 31: Exemplos de relacionamentos para o Exercício 1-4

Exercício 2

Faça o diagrama ER para as seguintes situações:
  1. Um time é composto por vários jogadores. Um jogador joga apenas em um time.

  2. Um aluno realiza vários trabalhos. Um trabalho é realizado por um mais alunos. Não há trabalho realizado com 0 alunos.

  3. Um diretor dirige no máximo um departamento. Um departamento tem no máximo um diretor.

  4. Um autor escreve vários livros. Um livro pode ser escrito por vários autores.

  5. Um cliente realiza várias encomendas. Uma encomenda diz respeito apenas a um cliente.

Exercício 3

Considere o diagrama ER da Figura abaixo. Suponha que um funcionário possa trabalhar em até dois departamentos ou não possa ser atribuído a qualquer departamento. Suponha que cada departamento deva ter um e possa ter até três números de telefone. Pede-se:

  1. Forneça restrições (min, max) sobre esse diagrama. Indique claramente quaisquer suposições adicionais que estiver fazendo.

  2. Responda: Sob que condições o relacionamento POSSUI_ TELEFONE seria redundante neste exemplo?



Exercicio 3
Figura 31: Diagrama ER para Exercício 3

Exercício 4

Considere o diagrama ER dado na figura 13d, repetido abaixo na figura 32 abaixo.

Entenda o que ele estã representando. Descreva com suas palavras o que o diagrama representa, quais as informações o banco de dados por ele representado armazena. Diga também quais as relações existem e o que eles representam.

Informe também quais as cardinalidades (mínimas e máximas) presentes nas relações e o que eles significam em termos dos dados armazenados.



er11
Figura 32: Diagrama ER de um Banco de Dados.

(veja uma possível solução aqui.)



Referências

voltar ao início da página