Arquivo da tag: EngenhariadeSoftware

Abordagem Entidade-Relacionamento (ER)

Rafeal Santos de Lima, Acadêmico do BICT – UNIPAMPA Itaqui,rafaelsdl2.aluno@unipampa.edu.br

Para realizar a construção de um projeto de banco de dados de forma correta deve-se passar por necessariamente três fases – Modelo Conceitual, Projeto Lógico e  Projeto Físico – Neste texto irei introduzi-lo aos principais conceitos deste método de modelagem de banco de dados. 

A técnica de Modelagem ER (Modelo Entidade-Relacionamento) é uma das técnicas mais utilizadas hoje em dia para a construção de um modelo conceitual. O Modelo ER foi desenvolvido inicialmente por Peter Chen, em 1976, e melhorado por outros autores como Martin Gogolla, Santos;Neuhold; Furtado (1980) e Scheuermann;Schiffner; Weber (1980), a abordagem ER tem como principais conceitos: Entidade, relacionamento, atributo, generalização/especialização e entidade-associativa.

Entidade

Segundo Carlos Alberto Heuser (2006, p. 35), HEUSER, Calor Alberto(2006, p.35) “Entidade = conjunto de objetos da realidade modelada sobre os quais deseja-se manter informações no banco de dados” , ou seja, é o local onde coisas do mundo real, concreto ou abstrato, sobre os quais se deseja armazenar informações. Alguns exemplos de entidades são: pessoa (física ou jurídica), funcionários de uma empresa, cliente, produto, disciplina, evento etc. 

Na Diagrama Entidade-Relacionamento (DER) uma entidade é representada por um retângulo com o nome da entidade dentro desse retângulo ao centro, como mostrado na figura abaixo.

Vale ressaltar que a entidade funcionário não é apenas um funcionário, mas sim todos os funcionários da empresa, assim como a entidade produto não é apenas um produto, mais sim todos os produtos com os quais a empresa trabalha. para se referir a um funcionário específico utilizamos o termo ocorrência da entidade funcionário, de forma análoga, para referirmos a apenas um produto devemos usar o termo ocorrência da entidade produto.

Relacionamento

Outro conceito importante do ER é o relacionamento.Na bibliografia este conceito “é a representação das associações existentes no mundo real.”MACHADO, FELIPE NERY RODRIGUES (2020, p. 125).  . Relacionamento é associação entre duas entidades, no exemplo abaixo há o relacionamento entre duas entidades, médico e paciente. Um paciente, ocorrência da entidade paciente, é consultado por um médico, ocorrência da entidade médico. No DER, um relacionamento é representado por um losango que liga as duas entidades.  

Não necessariamente o relacionamento é entre duas entidades diferentes, existe o auto-relacionamento, que acontece entre ocorrências de uma mesma entidade. O papel da entidade no relacionamento é a função que a ocorrência da entidade cumpre dentro da ocorrência do relacionamento. Para exemplificar, há o caso da entidade PESSOA e o relacionamento CASAMENTO. Neste caso, uma ocorrência de PESSOA exerce o papel de marido e outra ocorrência de PESSOA exerce o papel de esposa.

Em um relacionamento entre duas entidades há uma propriedade chamada cardinalidade. A cardinalidade nada mais é do que quantas ocorrências de uma entidade podem estar associadas a uma determinada ocorrência através do relacionamento. Existem duas cardinalidades, cardinalidade máxima e cardinalidade mínima.

Cardinalidade máxima: cardinalidade máxima um (1) e cardinalidade máxima ilimitada, usualmente chamada de cardinalidade máxima “muitos” e referida pela letra n.

Cardinalidade mínima: Cardinalidade um (1) recebe a denominação “associação obrigatória”, ou seja, a ocorrência da entidade “A” deve estar relacionada com uma ocorrência da entidade “B”. Já a cardinalidade zero (0) indica uma possibilidade de uma ocorrência da entidade “A” estar relacionada com uma ocorrência da entidade “B”.

Por exemplo, lendo o relacionamento no sentido de funcionário para departamento, um funcionário pertence sempre a, no mínimo, um e, no máximo, um departamento, ou seja, é obrigatório que exista, para uma ocorrência específica da entidade funcionário, apenas uma ocorrência da entidade departamento. 

Agora no sentido de departamento para funcionário. Para um determinado departamento é possível que existam vários funcionários relacionados: mais de uma ocorrência da entidade funcionário refere-se à mesma ocorrência da entidade departamento. 

As cardinalidades existentes em um modelo de dados são um-para-um (1:1), um-para-muito (1:n) e muito-para-muito (n:n). 

Cardinalidade um-para-um,  esse tipo de relacionamento acontece quando uma ocorrência da entidade “A” está relacionada exclusivamente com uma ocorrência da entidade “B” e cada ocorrência da entidade “B” se relaciona com exclusivamente uma ocorrência da entidade “A”. 

Cardinalidade um-para-muitos,  acontece quando uma ocorrência da entidade “A” se relacionar com mais de uma ocorrência da entidade “B”, sendo que uma ocorrência da entidade “B” está associada a uma e somente uma ocorrência da entidade “A”.

Cardinalidade muitos-para-muitos,  há essa cardinalidade quando realizamos a leitura nos dois sentidos e encontramos a cardinalidade um-para-muitos.

Até o momento, vimos relacionamentos binários, ou seja, apenas a associação entre duas entidades. No entanto, a abordagem ER permite que sejam definidos relacionamentos de grau maior do que dois (relacionamentos n-ários).

Em um relacionamento “R” entre duas entidades, “A” e “B”, a cardinalidade 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. observemos a figura abaixo.

O 1 na linha que liga o retângulo representativo da entidade DISTRIBUIDOR ao losango representativo do relacionamento expressa que cada par de ocorrências (nesse exemplo, cada par de ocorrências significa que cada ocorrência da entidade “CIDADE” e cada ocorrência de “PRODUTO”) está associado a no máximo um distribuidor. Significa que é concedida exclusividade de distribuição de um produto para um distribuidor em uma cidade.

Na imagem acima os dois “n” expressam que:

A um par (cidade, distribuidor) pode estar associado a muitos produtos ou, em outros termos, um distribuidor pode distribuir em uma cidade muitos produtos.

A um par (produto, distribuidor) pode estar associado a muitas cidades ou, em outros termos, um distribuidor pode distribuir um produto em muitas cidades.

Atributo

O conceito de atributo serve para associar informações a ocorrências de entidades ou de relacionamentos, ou seja, o atributo são características de cada ocorrência ou relacionamento que deseja-se guardar no banco de dados. Por exemplo, a entidade PESSOA pode ter vários atributos, como: nome, altura, peso, sexo, escolaridade. Essas são características semelhantes entre ocorrências, porém com valores diferentes. 

Existem dois tipos de atributos: identificadores e descritores. Um identificador (chave) é usado unicamente para determinar a identificação de uma ocorrência de uma entidade. Esse identificador é conhecido como chave primária. Os atributos descritores (não chaves) são utilizados para descrever características não únicas de uma ocorrência particular da entidade. 

Graficamente os atributos são representados conforme mostra a figura abaixo.

Generalização/especialização

A generalização/especialização consiste em uma entidade genérica e subconjuntos mais específicos, lembrando que a ocorrência da entidade genérica possui além de seus atributos os atributos da especialização. No DER a especialização é representada por um triângulo isósceles conectado às entidades especializadas e a genérica, como na figura abaixo.

A generalização/especialização pode ser classificada em dois tipos, total ou parcial, de acordo com a obrigatoriedade ou não de cada ocorrência da entidade especializada. 

Em uma generalização/especialização total significa que obrigatoriamente uma ocorrência da entidade genérica existe sempre uma ocorrência na entidade especializada, esse tipo de generalização/especificação é simbolizado por um “t”.

Em uma generalização/especialização parcial, nem toda ocorrência da entidade genérica possui ocorrência em uma entidade especializada, esse tipo de generalização/especificação é simbolizado por um “p”.

Além da classificação total ou parcial, uma generalização/especialização pode ser classificada como compartilhada e exclusiva.

Generalização/especialização exclusiva significa que uma ocorrência da entidade genérica está exclusivamente em um subconjunto, no DER, a generalização/especialização exclusiva é simbolizado pela letra “x”.

Generalização/especialização compartilhada significa que uma ocorrência da entidade genérica pode estar associada a mais de uma entidade especializada, no DER, a generalização/especialização compartilhada é simbolizado pela letra “c”.

Entidade-associativa

Um relacionamento é uma associação entre duas entidades. Na modelagem ER não é permitido associar entidade com relacionamento ou ligar dois relacionamentos.

Para exemplificar, vamos considerar a imagem abaixo. Há a necessidade de modificar esse modelo da seguinte forma. É necessário saber que medicamentos existem e que medicamentos foram prescritos em cada consulta. Para saber que medicamentos existem, cria-se uma nova entidade, MEDICAMENTO. A questão agora é: com que entidade existente deve estar relacionada a nova entidade? se Medicamento fosse relacionado a Médico, ter-se-ia apenas a informação de que médico prescreveu que medicamentos, faltando a informação do paciente que os teve prescritos. Por outro lado, se MEDICAMENTO fosse relacionado à PACIENTE, faltaria a informação do médico que prescreveu o medicamento. Assim, deseja-se relacionar o medicamento à consulta, ou seja, eseja-se relacionar uma entidade (MEDICAMENTO) a um relacionamento (CONSULTA), o que não está prevista na abordagem ER. Para tal, foi criado um conceito especial, o de entidade associativa. Uma entidade associativa nada mais é que a redefinição de um relacionamento, que passa a ser tratado como se fosse uma entidade. Graficamente, isso é feito com um retângulo desenhado ao redor do relacionamento. A consulta indica que este relacionamento passa a ser visto como uma entidade (associativa, já que é baseado em um relacionamento).  Sendo CONSULTA também uma entidade, é possível associá-la através de relacionamentos a outras entidades.

Agregação: Uma agregação é utilizada quando é necessário realizar associação de elementos de um relacionamento com elementos de outro relacionamento. Um exemplo é um relacionamento “Compra” que associa as entidades “Cliente” e “Produto”. Outra entidade “Prestação” é utilizada na aplicação, porém esta entidade não possui relação a um cliente ou a um produto, e sim a quando existe uma compra. Neste caso o relacionamento “Compra” é um exemplo de agregação.

REFERÊNCIAS
HEUSER, Carlos Alberto. Projeto de Banco de Dados. 6. Porto Alegre Bookman, 2011. 
MACHADO, Felipe Nery Rodrigues. Banco de dados: projeto e implementação / Felipe Nery Rodrigues Machado. – 4. ed. – São Paulo: Érica, 2020.<
Projeto Lógico de Banco de Dados NoSQL de Grafos a partir de um modelo conceitual baseado no modelo Entidade-Relacionamento, 2018. Disponível em <http://www.cc.faccamp.br/Dissertacoes/VictorMartinsSousa.pdf> Acessado em: 25 de fevereiro de 2021.
Extensão de uma álgebra ER para execução de consultas em bancos de dados NoSQL orientados a documentos, 2018. Disponível em <https://repositorio.ufscar.br/bitstream/handle/ufscar/9716/NOGUERA_Viviana_2018.pdf?sequence=4&isAllowed=y> Acessado em: 25 de fevereiro de 2021