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".
Nesses links temos um material do professor Heuser: livro "Projeto de Banco de Dados" e slides sobre modelagem ER.
Livro do Professor Carlos Alberto Heuser: versão antiga (4a edição) disponibilizada em PDF
"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:
Notação de Barker Barker’s Notation
Notação de CHEN Chen Notation
IDEF1X IDEF1X Notation
Notação das Setas Arrow Notation
UML UML Notation
Notação "pé-de-galinha" Crow’s Foot Notation
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)- MysqlWorkbench
- ERD Plus
- LucidChart
- DIA
- brModelo 3.0 E o manual: brModelo (PDF)
- DBeaver
- Visual Paradigma
- StarUML
- Umbrello
- draw.io (diagrams.net)
- Exemplos de ferramentas para ERD
- Top 8 Free ER Diagram Tools in 2021
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
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
Figura 2: Entidade com três atributos
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).
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>
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.
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.
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 relacionamentoExemplo de Cardinalidade
Para exemplificar o conceito de cardinalidade vamos considerar banco de dados que possui as ENTIDADES "EMPREGADO" e "DEPARTAMENTO" eo RELACIONAMENTO "LOTAÇÃO"
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.
É 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
Figura: Representação da Cardinalidade Máxima do Relacionamento
Notação da Cardinalidade
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.
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.
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)
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)
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,...).
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
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).
Figura 11b: Exemplo de relacionamento mostrando cardinalidade mínima e máxima.
(voltar para o texto)
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./
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.
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)
Figura 13a: Um diagrama de esquema ER para o banco de dados EMPRESA.
(voltar para o texto)
Figura 13b: Diagramas ER para o esquema EMPRESA, com restrições estruturais especificadas usando a notação (min, max) e nomes de função.
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.
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
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.
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).
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.
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.
Figura 18: Exemplo de atributos, destancando (círculo preto) o atributo identificador.
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.
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
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.
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.
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.
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.
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.
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.
Figura 26: Símbolos usados para construção de modelos ER
Outras Definições para DER
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.
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.
Figura 30: Diferentes Notações para Diagrama ER
Referências
Livro do Professor Carlos Alberto Heuser: versão antiga (4a edição) disponibilizada em PDF
Livro do Professor Carlos Alberto Heuser 6a ediçã: amazon.com.br
Apostila IFSUL: Projeto de Banco de Dados Relacional - Rosaura Espírito Santo da Silva
-
Ferramentas para Projeto usando Diagramas ER
- GitMind
- Gliffy
- Visual Paradigm
- Draw.io
- Lucidchart
- SqlDBM
- DBDiagram.io
- QuickDBD
- Dbdesigner.net
- creately
- umbrello
- Erwin Data Modeler
- Moon Modeler
- Vertabelor
- Microsoft VISIO
- ERD PLUS
Exercicios
Exercício 1
Explique o que significam as cardinalidades 1:1, 1:N, N:N. Apresente exemplos.
- Responda: qual a diferença entre entidade fraca e entidade forte?
- 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 )
-
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.
Figura 31: Exemplos de relacionamentos para o Exercício 1-4
Exercício 2
Faça o diagrama ER para as seguintes situações:Um time é composto por vários jogadores. Um jogador joga apenas em um time.
Um aluno realiza vários trabalhos. Um trabalho é realizado por um mais alunos. Não há trabalho realizado com 0 alunos.
Um diretor dirige no máximo um departamento. Um departamento tem no máximo um diretor.
Um autor escreve vários livros. Um livro pode ser escrito por vários autores.
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:
Forneça restrições (min, max) sobre esse diagrama. Indique claramente quaisquer suposições adicionais que estiver fazendo.
Responda: Sob que condições o relacionamento POSSUI_ TELEFONE seria redundante neste exemplo?
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.
Figura 32: Diagrama ER de um Banco de Dados.
(veja uma possível solução aqui.)
Referências
Artigo sobre mapeamento DER-Modelo Lógico: Mapeamento de Modelos ER para DDL da SQL
Mapeamento DER-Lógico Mapeamento de Modelos ER Modelo Lógico
Mapeamento DER-Modelo Lógico: Mapeamento de Modelos ER para DDL da SQL