Modelagem Relacional

Este artigo tem como objetivo introduzir os conceitos básicos sobre Modelagem Relacional, objeto de dados, nomenclatura e dicionarização, atributo, relacionamento, integridade, documentação e normalização.

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.

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:

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:

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.

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 Agregação de Modelo de Dados.

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

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:

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.

Referência Bibliográficas

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 ;)

Artigos relacionados