Lição 9 - Modelos de base de dados:
modelo de entidade relacionamento
modelo de entidade relacionamento
Olá, caro(a) aluno(a)! Nesta lição, vamos continuar estudando os diferentes modelos de base de dados. Na aula passada, você conheceu o modelo relacional; nesta aula, você irá conhecer a evolução deste modelo, que é conhecido como modelo de entidade e relacionamento (MER).
Além de conhecer o modelo, vamos aprender uma forma de representação gráfica conhecida, como diagrama de entidade e relacionamento (DER). O DER será nosso aliado na construção dos modelos de entidade e relacionamento.
Um banco de dados relacional pode ser identificado como um conjunto de registros, logicamente, relacionados. Estes bancos são organizados em tabelas, em que uma tabela consiste em uma série de linhas e colunas. Para projetar um banco de dados eficaz, alguns pontos são importantes de serem considerados.
Identificar entidades como uma coleção lógica de itens caracterizados por atributos.
Identificar representações eficazes de relacionar tabelas, a partir do uso de chaves.
Documentar a arquitetura da base de dados construída.
Para realizar as tarefas, utilizamos os modelos de base de dados; tratando de um banco de dados relacional, precisamos utilizar o modelo de entidade e relacionamento. Desse modo, você precisa conhecer a definição de cada um dos elementos que compõem esse modelo para ser capaz de construir um banco de dados consistente.
Como você aprendeu nas lições anteriores, para iniciar o desenvolvimento de uma aplicação ou sistema, o primeiro passo é realizar o levantamento de requisitos que definem quais as funcionalidades que o produto final a ser desenvolvido deve apresentar.
Durante a análise de requisitos, é possível identificar quais são os requisitos funcionais e não funcionais do sistema, de forma a guiar o programador na definição de quais tecnologia e caminhos devem ser tomados para entregar a solução que o cliente imaginou.
Nesta fase de definição de domínios do projeto, é criado o modelo de entidade e relacionamento também conhecido pela abreviação MER. Este modelo conceitual é amplamente utilizado na engenharia de software para descrever as características da aplicação, a partir da descrição de objetos relacionados a um domínio do negócio denominado de atributos, em que é possível observar o relacionamento entre os atributos e entidades.
Em linhas gerais, esse modelo apresenta, de forma abstrata, como deve ser definida a estrutura do banco de dados da aplicação. Quando trabalhamos com projetos utilizando banco de dados relacionais, é essencial a criação de um modelo de entidade e relacionamento para uma documentação completa.
Vamos agora conhecer como é estruturado esse modelo?
O modelo de entidade e relacionamento é um padrão clássico de modelagem conceitual de banco de dados e foi definido por Chen (1976), com base na teoria do modelo relacional de Codd (1983).
Chen (1976) descreve que o conceito de abstração do modelo permite analisar, de forma individual, as partes relevantes para o desenvolvimento dos sistemas, de modo a excluir da modelagem aspectos que não exercem influência sobre o modelo a ser modelado.
O modelo de MER é baseado em 3 principais conceitos: entidades, relacionamentos e atributos.
Conforme define Alves (2009), uma entidade busca representar um conjunto de objetos existentes em um ambiente real qualquer. Vamos imaginar um exemplo.
Imagine que você foi contratado por uma grande empresa de desenvolvimento de jogos para realizar a modelagem de dados. Esta empresa trabalha prestando serviços para pessoas físicas e jurídicas, observe que neste cenário os clientes podem ser cadastrados a partir de um CPF, caso seja uma pessoa física, ou por um CNPJ, caso seja pessoa jurídica. Observe o que seria uma entidade para representar o cliente?
Neste caso, note que o CPF/CNPJ permite identificar de forma exclusiva o cliente, sendo assim pode ser caracterizado como uma entidade.
Na modelagem de dados existem dois tipos de entidades, as entidades físicas e entidades lógicas.
Entidade física: são entidades que existem de forma visível no mundo real, por exemplo, na situação apresentada anteriormente, um cliente ou uma empresa existem de forma tangível no mundo. Outro exemplo de entidade física pode ser um produto qualquer, como um computador, celular, videogame.
Entidade lógica: são entidades que surgem em decorrência da interação entre entidades físicas. Isto é, que só faz sentido dentro de um contexto do domínio do negócio que está sendo analisado. Essa entidade não existe de forma física em um ambiente real. Por exemplo, uma venda ou compra, classificação de objetos, funções de funcionários.
Além dos tipos, as entidades podem ser classificadas baseadas na “força” que ela representa para o sistema.
Entidades fortes: uma entidade é classificada como forte quando ela é independente, isto é, não depende de outras entidades para existir.
Entidades fracas: uma entidade é classificada como fraca quando requer a existência de outra entidade para que ela faça sentido.
Entidades associativas: essas entidades são definidas quando é necessário associar a entidade a algum relacionamento.
O relacionamento é responsável por definir como uma entidade é associada com outras. Os relacionamentos são nomeados de acordo com a forma que as entidades se relacionam. Por exemplo, imagine que estamos criando um jogo, em que temos as entidades de usuários e personagens, podemos descrever o relacionamento dessas entidades como: um usuário cria vários personagens, enquanto um personagem pertence a um usuário.
Os tipos de relacionamentos existentes são os mesmos que estudamos na lição anterior sobre o modelo relacional.
Um para um.
Um para muitos.
Muitos para muitos.
No modelo de entidade e relacionamento, esses relacionamentos são conhecidos como cardinalidade. A cardinalidade é vista como uma restrição do relacionamento entre as entidades a fim de atender, adequadamente, às exigências para a criação do banco de dados.
Os atributos descrevem as propriedades relacionadas às entidades. Um atributo busca promover uma forma que seja possível associar as informações de entidades ou relacionamentos. Um exemplo simples de atributos pode ser observado quando fazemos a descrição das características de uma pessoa, por exemplo, a altura, peso, cor do cabelo etc. Assim como as entidades, os atributos podem ser classificados em algumas categorias.
Atributos descritivos: como o próprio nome indica, são atributos que descrevem características das entidades fielmente. Observe o exemplo do Quadro 1, temos uma entidade chamada médico e os seus atributos, note que os atributos descrevem as características que um médico deve possuir.
Quadro 1 - Atributos entidade Médico
Fonte: o autor.
#PraCegoVer: quadro com 6 linhas e 1 coluna. Na primeira linha, em negrito “médico”, na segunda “id”, na terceira “nome”, na quarta “nascimento”, na quinta “crm” e, por fim, na sexta “especialização”.
Atributos normativos: esses atributos também são descritivos, porém eles têm a função de identificar um objeto, por exemplo, o atributo id presente na entidade médico pode ser utilizado para identificar o médico. Normalmente, esses atributos são conhecidos como chaves primárias.
Atributos referencial: são atributos utilizados para indicar a relação de uma entidade com outra, esses atributos são conhecidos como chaves estrangeiras. Por exemplo, podemos ter uma entidade de especialização em que a entidade médico possui uma especialização, de modo que o atributo especialização apresentado na entidade médico é uma chave estrangeira que faz referência a entidades especializadas.
O modelo de entidade e relacionamento que estudamos é uma representação abstrata de objetos do mundo real, denominado como entidades, que são relacionados a partir de atributos de referência. Os atributos em linhas gerais são características ou propriedades presentes em uma entidade.
O modelo de entidade e relacionamento pode ser representado de forma gráfica, utilizando a representação por diagramas de entidade e relacionado, que nada mais é que uma ferramenta para facilitar a descrição do modelo.
O diagrama busca facilitar a representação a partir de uma linguagem comum e estruturada. Um modelo de representação do diagrama foi proposto por Chen (1976), porém, existem outras formas de representação, por exemplo, UML.
Vamos conhecer o padrão de notação definido por Chen. O diagrama pode ser visualizado como um tipo de fluxograma que apresenta as entidades relacionamento e atributos de uma base de dados, utilizando-se de figuras geométricas.
Entidades: as entidades são representadas por um retângulo como apresenta a Figura 1:
Figura 1 - Entidade
Fonte: o autor.
#PraCegoVer: a figura é um retângulo azul com a palavra “Entidade” no meio.
Relacionamentos: os relacionamentos são representados por losangos, como apresentado na Figura 2.
Figura 2 - Relacionamento
Fonte: o autor.
#PraCegoVer: a figura é um losango azul com a palavra “Relacionamento” ao centro.
Atributos: os atributos são representados por elipses, conforme apresenta a Figura 3.
Figura 3 - Atributo
Fonte: o autor.
#PraCegoVer: a figura é um círculo oval azul com a palavra “Atributos” ao centro.
Cardinalidade: a cardinalidade é representada por linhas que ligam as entidades com os relacionamentos, sendo que em cima da linha é anotado o tipo do relacionamento, por exemplo: 1: 1, 1:N, M:N.
Vamos observar um exemplo simples de diagrama de entidade e relacionamento. Imagine que estamos desenvolvendo o diagrama de um jogo de RPG, em que queremos representar o relacionamento da entidade Usuários com a entidade Personagem, sabemos que aqui temos um relacionamento de um para muitos, visto que um usuário pode ter muitos personagens.
Figura 4 - Cardinalidade
Fonte: o autor.
#PraCegoVer: a imagem é composta por um retângulo com a palavra “Usuário” que se liga através de uma linha a um triângulo com a palavra “Tem”, este se liga a um outro retângulo com a palavra “Personagem”.
ALVES, W. P. Banco de dados: teoria e desenvolvimento. São Paulo: Saraiva, 2009.
CODD, E. F. A Relational Model of Data for Large Shared Data Banks. Communications of the ACM, [S. l.], v. 26, n. 1, p. 64-69, 1983.
CHEN, P. P-S. The entity-relationship model: toward a unified view of data. ACM transactions on database systems (TODS), [S. l.], v. 1, n. 1, p. 9-36, 1976.