Banco de dados – Entidades MER

Com a abordagem feita sobre conceito do modelo entidade relacionamento, nesse post colocaremos as principais regras e o que são entidades no MER.

Entidade

Entidade é um agrupamento lógico de informações inter-relacionadas necessárias para a execução das atividades do sistema. Entidade apresenta um objeto do mundo real – Por exemplo: carro, contem características que agrupadas e relacionadas formam um veículo – ou, deve haver informações relevantes as operações da empresa.

É um conceito “molde”, representando o que tem na nossa realidade. Passando para o banco de dados relacional, a entidade vira uma tabela – ou table no inglês – contendo todos os atributos como coluna, exemplo:

Aluno – minha tabela : (matricula, nome, curso, responsavel…) – são as colunas da minha tabela. Ficando assim:

Podemos dizer que uma entidade é tudo aquilo que pode ser individualizado e que possui existência própria (física ou abstrata). As entidades são caracterizadas por algumas propriedades específicas denominadas atributos. Cada atributo possui um nome e um valor específico para a entidade.

Atributo

Estrutura cujo os valores são intimamente relacionados e interdependentes (o que afeta um, afeta o outro), alocados em uma entidade. Pode ser entendido como informação básica da entidade também.

atributo

Quando transportada ao modelo físico – banco de dados – o atributo se torna coluna. São necessários no mínimo dois atributos para se criar uma entidade. Podemos pegar a tabela estudante citada mais acima:

Um atributa chave é um dos atributos de um CE projetado para identificar de forma única qualquer entidade no conjunto. Na imagem exemplo abaixo, id_pessoa é atributo chave.

atributo chave

Subatributos

Um atributo pode conter vários subatributos. São nomeados itens de grupo ou composto.

Representação gráfica exemplo

Em tabela fica: endereco(rua, numero, complemento, cidade, cep)

Atributo Multivalorado

Se o atributo de uma entidade contiver mais de um valor no atributo, então é necessário torná-lo um atributo multivalorado. Como o exemplo de telefone. Um cliente pode ter um ou mais telefones.

Em tabela fica: pessoa(id_pessoa, nome, telefone*)

Representação de multivalorado no DIA

Tupla

Pode ser entendida como a linha de registro que fazemos na tabela quando falamos no modelo físico. Um exemplar único e específico da entidade que a compõe.

Exemplo de tupla no modelo físico

Chaves (keys)

Atributo para indexação de dados. Há três tipos:

  • Primária
  • Estrangeira
  • Secundária

Chaves Primárias

Atributo que permite identificar unicamente uma ocorrência da tupla na entidade. Seu conteúdo é exclusivamente para aquele registro, não existe chave primária cujo valor é repetido no atributo de uma entidade. Como também não há mais de uma chave primária na entidade. Caso não exista um atributo que possa ser utilizado como uma chave primária, é necessário criá-lo na entidade.

A união de dois atributos é que deve garantir o acesso a uma única linha da entidade. Esse tipo de caso se chama Chave Concatenada ou Chave Composta.

Chave Estrangeira

Estabelece a relação de uma entidade com a entidade que contém a chave primária desejada. Na imagem acima mostra o modelo físico de tabelas: uma matricula contem várias notas, mas para poder capturar as notas daquela matrícula específica, a tabela notas contem a chave estrangeira que é a chave primária da tabela matricula.

No conceito de MER, a entidade dependente (notas) herda a chave primária da entidade fundamental (neste caso matricula).

Chave Secundária

Chave utilizada para meio de pesquisa em entidade, classificação e ordenação. Havendo a necessidade de se criar ordem ou concatenação entre outra chave secundária, é necessária fazer um atributo de chave secundária.

Ainda falando sobre a imagem acima, se desejamos fazer uma classificação na qual os alunos que obtiveram maior nota ganhassem prêmios se ganhassem em primeiro segundo terceiro lugar… Deve então ser criado um atributo como chave secundária a fim de podermos classifca-los.

CE

Conjunto de Entidades (Extensão) são todos os registros (tupla) que fazemos na tabela. Então por um exemplo, cada vez que criamos uma linha estamos instanciando mais um registro da entidade. Se referenciando a tabela aluno cada aluno registrado faz parte do conjunto da entidade estudantes.

O conjunto de entidades formam ou são feitas a partir de alguma coisa. Produto e peça são feitos a partir da Matéria. Almoxarifado e outros departamentos tem um Local.

Tipos de entidade

  • Fundamental: Contém os dados básicos que são resultados ou alimentadores das operações da empresa.
    • Forte: Não depende da existência de outra entidade.
    • Fraca: Depende da existência de outra entidade.
  • Associativa: É formada pelo relacionamento de duas ou mais Entidades Fundamentais sempre que estas se relacionam de uma vez.
  • Associativa Atributiva: É como a entidade associativa mas, se ela recebe um atributo se torna um associativa atributiva.

Relacionamentos

Há relação entre entidades quando as duas apresentam interdependência. Deve se constantemente a cada par de entidades se questionar se elas se relacionam.

Uma entidade1 deve ter ou poder ter relacionamento uma ou mais ou uma única entidade2. Para melhor explicar:

  • Cada pessoa deve ter um CPF e um CPF deve somente para uma pessoa.
  • Um livro pertence a um autor mas um autor pode fazer um ou mais livros.

É com esse pensamento que criamos relacionamentos entre entidades. Um relacionamento pode ser nomeado – a depender da cardinalidade – com o verbo, a ação entre duas entidades. Exemplo:

  • Uma biblioteca possuí vários livros
  • Um artista grava várias músicas
  • Um diretor dirige vários filmes

Tipos de relacionamento

  • 1 : 1 – Um para Um
  • 1 : N – Um para muitos
  • N : N – Muitos para Muitos

1 : 1

Ocorre sempre que a entidade tiver uma única ocorrência na outra entidade. Uma única entidade do CE pode ser associada a uma única entidade de outro CE e vice-versa, dizemos então que o relacionamento é de cardinalidade 1 : 1.

Considerando um cenário hipotético onde para cada modelo – imagine ai os mais populares como ford fiesta, volkswagen fox ou citroen c3 – de carro possua um motor específico só para aquele modelo, temos:

Neste relacionamento deve ser questionado se são entidades distintas, se elas podem ou não ser unidas e se amanhã ou depois o relacionamento pode se tornar 1 : N.

1 : N

Ocorre sempre quando uma entidade se relaciona com uma ou várias tuplas da outra entidade e esta se relaciona com uma tupla daquela entidade. Então o lado que está 1 contém os dados básicos da entidade – pois contém a chave primária da entidade – enquanto o lado N fará parte da lista de atributos não chave.

Esqueça o cenário anterior da relação 1 : 1 e agora pense que, um carro contém um motor mas um mesmo motor pode pertencer a N modelos do mesmo fabricante de carro, teremos:

N : N

Sempre que uma entidade se relacionar com várias tuplas da outra entidade e esta, por sua vez, relaciona-se com tuplas da entidade anterior, então há um relacionamento muitos para muitos. Esse tipo de relacionamento só é possível na modelagem lógica de dados.

Isso fará com que surja dois relacionamentos na modelagem, 1 : N e uma entidade associativa atributiva será identificada. Caso seja necessário colocar outras informações, deve ser criado mais um atributo na nova entidade.

Auto-relacionamento

Muitas vezes relacionamos um CE consigo mesma. Por que? Imagine um caso em que temos uma entidade de funcionários.

Bem básico com esses atributos, definimos um funcionário de uma empresa. Mas, comumente temos funcionários que em seus cargos assumem um posto de liderança de um departamento. Então como fazemos para dizer que um operador é gerente, ou melhor, como dizemos quem é o gerente?

Se você pensou em adicionar um atributo onde se coloca a identificação do gerente responsável de um determinado funcionário, muito bem! Então a entidade será algo como:

Representamos assim no MER quando há auto-relacionamento na entidade. Isso nos ajuda a caracterizar e reaproveitar a entidade. No caso da entidade funcionário pode ser um gerente e um gerente é um funcionário também porquê possui as mesma características de um funcionário.

Conclusão

  • Atributos são as informações básicas, propriedades da entidade que a qualificam, dão característica e significado. Valores de atributo são os valores dessa propriedade.
    • Ex: Atributo – Cor | Valores de Atributo – Vermlho, azul, laranja…
  • Valores de atributo mudam entre as tuplas (registros).
  • As entidades se transformarão no modelo físico (banco de dados) em tabelas e os atributos nas colunas da tabela.