O conceito principal vem da teoria de conjuntos (álgebra relacional) atrelado a ideia de que não é relevante ao usuário saber onde os dados estão ou como eles se encontram, representado por uma coleção de tabelas (entidade/relação) é um conjunto de linhas (tuplas) uma lista de valores de atributos.

Modelo Relacional, Exemplo de Tabela

O Modelo entidade relacionamento proposto por Peter P. Chen pode ser melhor compreendido por uma teoria chamada de A lei do Mundo, teoria essa, que conceitua que o mundo está cheio de coisas que possuem características próprias e que se relacionam entre si. Sua analise da teoria pode ser dividida em três partes.

O mundo está cheio de coisas

Tudo que possa ser caracterizado, conceituado, real ou imaginário, no nosso Universo (Mundo), é definido como coisa, que futuramente, dependendo da abordagem, poderá ser definido como uma entidade.

Que possuem características próprias

Características comuns percebidas entre as coisas de modo que haja a possibilidade de enquadramento dessas coisas em conjuntos particulares. Exemplo: “conselho de economia, conselho de medicina, conselho de odontologia” todos podem ser enquadrados em um mesmo conjunto, denominado como Órgão normalizador.

E que se relacionam entre si

São as relações entre as coisas. Como as mesmas irão relaciona-se entre elementos individualizados de diferentes conjuntos ou entre elementos de um mesmo conjunto. A forma de comunicação entre as coisas ou um conjunto delas, Exemplos: Adail é credenciado pelo conselho de economia é um relacionamento entre elementos de diferentes conjuntos. Adail é substituto de Caio é um relacionamento entre elementos do mesmo conjunto.

Objeto de Dados ou Entidade

É a representação genérica de um componente do mundo real, sobre o qual desejamos armazenar informações, uma representação de quase todas as informações com varias propriedades que devem ser compreendidas pelo sistema de informação, qualquer coisa que produza ou consuma informações. Entidade são coisas significativas sobre a qual a organização deseja guarda, ou seja, (coletar, manter e etc) dados podendo ser algo tangível ou intangível.

Tabela Cliente; Produto; Contrato de Operação
Ex.: Cliente; Produto; Contrato de Operação

Vários autores defendem formas de identificar e classificar as entidades, onde suas tipificações mais comuns são:

  • Coisas tangíveis: todos os elementos que tenham existência concreta. Fisicamente existente. Ex: Produto, animal, carro.
  • Funções: todo o tipo de papel, atribuição, classificação, capacitação, ou outra característica que especifique atuação. Ex: Cliente, professor, departamento.
  • Eventos ou ocorrências: só conseguem ser percebidos ou caracterizados, enquanto uma certa ação se desenrola. Ex: Lançamento em conta corrente.

Nomenclatura e Dicionarização

Como objeto de comunicação, um modelo de dados, deve ter a capacidade de informar sobre o que representa de forma clara, sendo uma unificação do diagrama com informações textuais, sua representação gráfica por si só normalmente não é suficiente para gerar entendimento dos conceitos representados, entretanto um modelo deve ser auto-explicativo, fundamental, é necessário para gerar a interpretação correta, onde a definição do nome do objeto bem como a sua conceituação tem o papel fundamental para gerar esse entendimento, desta forma, nomes e definições não podem gerar ambiguidade, isto é devem ser precisa, de forma que não gere dúvida, incerteza, interpretação de conceitos distintos.

Cada um dos elementos identificados e representados deverá ser definido claramente para que, associando-se seu nome, sua representação e sua definição, sejamos capazes de ter o completo entendimento do conceito que estes procuram transmitir. Ex: Cobertura: o que serve para cobrir, para seguros.

A nomenclatura de objetos deve prever nomes breves e objetivos, que identifiquem facilmente o conteúdo da entidade. Estar no singular, pois a pluralidade decorre, naturalmente da cardinalidade. Ex: PESSOA, CLIENTE, CONTRATO

A definição do objeto deve ser uma definição formal dos elementos, o que irá gerar o dicionário de dados, que devera trazer a conhecimento público a toda e qualquer informação útil para o processo de compreensão e unificação de conceitos, que possam parecer triviais para quem está modelando, não serão do mesmo modo triviais para outras pessoas que não tenham conhecimento prévio.

Atributo

Atributo é tudo o que se pode relacionar como próprio da entidade (propriedade) que de alguma maneira a qualifique e a distinga de outras, estes podem ser classificados e identificados como:

  • Atributos descritivos: atributo que seja capaz de demonstrar, ou representar, características formadoras, ou pertencentes, a um objeto. Ex: Data de nascimento, idade, sexo.
  • Atributos Nominativos: atributo que além de cumprirem a função de descritivos, também servem como definidores de nomes ou rótulos de identificação aos objetos aos quais pertencem. Ex: código do..., matrícula, número...
  • Atributos Referenciais: atributo que não pertencem propriamente a entidade onde estão, mas fazem algum tipo de referência dessa entidade com outra entidade.

Relacionamento

Relacionamento é a relação existente entre entidades, isto é a ligação lógica entre duas entidades que representa uma regra ou restrição de negócio, possibilitando entender como uma entidade se comporta em relação às demais, qual o seu grau de dependência de outras entidades e qual a associação de dados existentes entre elas.

Representação de Relacionamentos de Modelo

Podem ser estabelecidos mais de um relacionamento entre entidades, de acordo com a regra de negócio a ser representada onde cada entidade pode participar de vários relacionamentos.

Os relacionamentos possuem características que os tipificam.

  • Cardinalidade: Indica a quantidade de ocorrências de determinado relacionamento, Sempre a maior possibilidade, sua representação é variável de acordo com a notação, por exemplo N para Perter Chen e Para James Martin.
  • N : várias vezes
  • 1 : apenas uma vez
  • 0: não acontece
  • Opcionalidade: Analisa os relacionamentos pelo lado da obrigatoriedade das ocorrências de uma entidade se ligarem às ocorrências das outras. Podem ser de 3 tipos:
    • Opcional: quando as ocorrências das entidades que se relacionam são independentes das outras.
    • Contingente: a obrigatoriedade só acontece por um lado do relacionamento e somente uma entidade possui independência com relação a outra.
    • Mandatório: As ocorrências das entidades somente podem existir se ambas (dominante e dependente) existirem.

Existem várias bibliografias sobre as tipificações de relacionamentos, as mais comuns são:

Representação de Relacionamento Ternário
Representação de Relacionamento Ternário

Representação de Relacionamento Ternário

  • Ternário: um único fato que relaciona três entidades (Figura 33).
  • Auto-Relacionamento: Uma entidade por relacionar com ela mesma.
  • Agregação: é o relacionamento. Este relacionamento possui uma condição de existência, que o relacionamento fundamental tem que ser necessariamente N:N.
Representação de Relacionamento Agregação de Modelo de Dados
Representação de Relacionamento Agregação de Modelo de Dados.

Representação de Relacionamento Agregação de Modelo de Dados.

  • Especialização: Um grupo hierárquico de entidades que compartilham atributos em comum.
  • Entidade Supertipo: contém a chave primária e os atributos genéricos.
  • Entidade Subtipo: herda a chave primária e contém os atributos específicos de cada tipo.
Exemplo de Relacionamento Especialização
Exemplo de Relacionamento Especialização.

Exemplo de Relacionamento Especialização

Integridade

Realizada por meio de restrições, que são condições obrigatórias impostas pelo modelo, como exemplo integridade de domínio ou referencial.

A integridade de domínio Implementa restrições nas informações armazenadas, quanto mais limitados os dados que podem ser inseridos em um campo, menor será a probabilidade de entrada de dados errados no banco de dados. Também especifica quais dados são absolutamente necessários para que o banco de dados funcione apropriadamente. Podendo ser:

  • Restrições de check: Permite controlar os dados inseridos em certa coluna, de qualquer tabela, avaliando uma expressão. Ex: maior que, menor que, diferente de.
  • Nulidade: controla se existe obrigatoriamente o valor para aquela coluna. O valor nulo deve ser evitado, pois implica em desperdício de espaço. Deve utilizar nulo quando o valor existe, mas é desconhecido; o valor é conhecido, mas está ausente.
  • Unicidade: Toda tabela deve ter definido um atributo ou conjunto de atributos cujo valor ou combinação deve ser distinto em qualquer ocorrência da tabela.
  • Unique: Determina que todos os valores, de uma determinada coluna, precisam ser exclusivos (diferentes). Gera integridade.
  • Default: Estabelece um valor padrão para determinada coluna.

Atributo de uma tabela que referencia à outra tabela, a chave primária da entidade pai que migra para a entidade filha através de um relacionamento.

A integridade referencial garante que linhas relacionadas em um par de tabelas continuem relacionadas mesmo depois de terem sido feitas alterações na tabela, desta forma, uma linha em uma tabela que se refere a outra tabela deve referenciar uma linha existente naquela tabela.

Representação de Integridade entre Tabelas

Chave primária compreende a identificação única de uma ocorrência em uma entidade, um identificador das linhas da tabela, no caso de mais de uma chave em uma tabela, é escolhida uma chave primária, desta forma, nenhum valor de chave primária pode ser nulo. Uma chave primária não tem nenhuma ligação com o conceito de ordenação e com o acesso à tabela. Para questões de acesso às informações a recomendação é a utilização de índices.

Documentação

Definição formal dos elementos (dicionário de dados), evitando assim, ambiguidade: falta de clareza, falta de precisão, incerteza, dúvida. Cada um dos elementos identificados e representados deverá ser definido claramente para que, associando-se seu nome, sua representação e sua definição, sejamos capazes de ter o completo entendimento do conceito que estes procuram transmitir. A dicionarização deve trazer a conhecimento público toda e qualquer informação útil para o processo de compreensão e unificação de conceitos.

Normalização

É um processo formal, passo a passo, que examina os atributos de uma entidade, com objetivo de evitar anomalias observadas na inclusão, exclusão e alteração de linhas específicas, tem como objetivos a preservação da integridade dos dados, gerar estabilidade para o modelo, eliminar redundância. Dados bem definidos, íntegros no seu significado, consistentes, confiáveis, seguros e compartilhados fazem com que cada novo sistema defina apenas os dados que são do seu escopo e compartilhe os demais dados com outros sistemas presentes na organização.

  • Primeira Forma Normal: O objetivo é retirar os atributos ou grupos repetitivos. Representação de informações que se repetem para a mesma unidade, retratando ocorrências de um mesmo fato dentro de uma única entidade, vinculado a sua chave, onde para cada chave há a ocorrência de uma e somente uma informação de cada atributo. Desta forma, cada campo de uma tabela precisa conter somente um único tipo de dado, e cada parcela de dado deve ser armazenada em somente um lugar. Essa exigência é conhecida como atomicidade de dados.
  • Segunda Forma Normal: O objetivo é separar as dependências parciais. É preciso que as tabelas estejam na primeira forma normal e que cada uma contenha dados sobre uma e somente uma entidade, onde as colunas que dependem parcialmente da PK, devem formar uma nova tabela, algumas entidades, para serem identificadas e individualizadas, necessitam conter em sua chave mais de um atributo, formando, portanto, uma chave concatenada, verificar se a mesma possui chave concatenada e, se for o caso, constatar se todos os tributos não chaves não apresentam dependência parcial com a referida chave. Isto é, quando os atributos não-chaves dependem parcialmente de chave concatenada.
  • Terceira Forma Normal:: O objetivo é eliminar dependências transitivas. Quando alguns atributos não são dependentes diretos da chave da entidade, mas sim por transitividade, através de outros residentes na mesma entidade referenciada. Isto é dependência indireta de um atributo com a chave da entidade, através de outro atributo não-chave, do qual é diretamente dependente. É preciso que as tabelas estejam na segunda forma normal e que todos os campos não-chaves dependam diretamente da chave primária, ou seja, não pode ter colunas determinadas por outras colunas. Os campos calculados devem ser eliminados, desta forma é verificado se algumas tabelas precisam ser divididas em partes, pois todas as tabelas devem conter informações sobre somente uma coisa.
Referência Bibliográficas
  • Paulo Cougo; Modelagem Conceitual e projeto de Banco de Dados
  • Chris Gane, Trish Sarson; Análise Estruturada de Sistemas

Saiu na DevMedia!

  • Autenticação em Aplicações Web:
    Tornar algumas páginas acessíveis apenas a um grupo de usuários autenticados é uma tarefa trivial em aplicações web. Existem diferentes frameworks para isso, mas a maioria deles cobre desde o cadastro até as credenciais, passando pela autenticação e controle de acesso. Quer saber qual a lógica por trás dessas etapas?
  • CSS: da Sintaxe ao Flexbox:
    CSS é um item que não pode faltar na caixa de ferramentas de um programador web, pois é com ela que descrevemos para o navegador como os elementos em uma página serão apresentados para o usuário. Abrindo esta série, no DevCast dessa semana, conversamos sobre a necessidade de aprender essa linguagem nos dias atuais e a importância de não deixá-la de lado em seus estudos.

Saiba mais sobre Modelagem ;)