Transcript
Banco de Dados
10 passos para a criação de um modelo conceitual de banco de dados José Ferreira Prata Introdução
Existem notações e denominações diferentes para designar os componentes de modelo conceitual, principalmente no que se refere ao tipo de orientação do banco de dados, seja relacional, objeto-relacional ou orientado a objetos. O nosso foco será o modelo relacional. A correta identificação, principalmente das entidades e seus respectivos relacionamentos é dependente da capacidade de cada pessoa. Como a experiência só é obtida através do tempo e dos trabalhos realizados, durante esse período de aprendizado os projetos podem ter seus custos aumentados pelas correções de erros ou mesmo ter sua qualidade comprometida de forma irreversível. Como contornar esta essa dificuldade? Acredito que a resposta esteja em uma das melhores práticas da qualidade de software, que é o estabelecimento de um processo padrão que oriente e aprimore continuamente o desenvolvimento. É importante frisar que todo projeto de banco de dados deve começar sempre com requisitos bem descritos, que traduzam de forma adequada as necessidades e medidas de qualidade esperadas pelo cliente. Estes requisitos aliados a boas práticas de desenvolvimento aumentarão de forma considerável a probabilidade de o produto desenvolvido ter a qualidade desejada. Antes de iniciar as considerações sobre nosso processo de elaboração do modelo conceitual é necessário termos conhecimento do seguinte:
Substantivos que designam alguém (fornecedor, cliente, funcionário, aluno); documentos (nota fiscal, pedido, conta corrente, estoque) ou ainda coisas (peças, produtos) representam objetos do mundo real que podem vir a fazer parte do modelo conceitual. Vale ressaltar aqui, que nem todos os objetos citados nos requisitos farão parte do modelo e para separá-los, podemos utilizar algumas regras simples das quais falaremos mais adiante.
Verbos e preposições por sua vez servem para que identifiquemos o relacionamento entre as entidades, pois demonstram as ligações existentes entre elas. Por exemplo, quando lemos em um texto a frase “Listar empregados por departamento” concluímos que a entidade “empregado” tem um tipo de relacionamento que podemos chamar de “trabalha no” com a entidade departamento.
A seguir apresentaremos um exemplo que servirá para demonstrar a sequência de utilização dos dez passos e depois iremos resolver dois exercícios tentando aplicar as regras apresentadas neste texto.
1/6
Banco de Dados
Exemplo
“Um pequeno país resolveu informatizar a sua única delegacia de polícia para criar um banco de dados onde criminosos serão fichados, as vítimas também serão cadastradas e todas as armas apreendidas com os criminosos deverão ser fichadas para que não sejam reutilizadas. Mesmo as chamadas armas brancas tais como facas, porretes, etc., receberão um número de identificação. As armas quando for o caso, ficarão relacionadas ao crime cometido para possível utilização no julgamento do criminoso. O banco de dados além de fornecer dados pessoais de criminosos, de vítimas e de armas, também deve possibilitar saber quais crimes determinados criminoso cometeu, que crimes determinada vítima sofreu e quais criminosos a atacaram em cada crime. Mensalmente serão emitidos relatórios e estatísticas de acordo com a solicitação do chefe da delegacia. Todo registro de crime deverá ter o visto do chefe da delegacia.” Roteiro para elaboração do modelo conceitual 1) Identificando todos os substantivos que designam objetos.
Leia o texto e grife todos os substantivos que designam objetos do mundo real, tais como pessoas, coisas, documentos, controles, sistemas, etc. Considere o substantivo apenas uma vez, mesmo que ele apareça várias vezes. Elimine também aqueles substantivos que mesmo com denominações diferentes representam o mesmo objeto. Faça uma lista dos objetos grifados, pois será através deles que serão identificadas as entidades que farão parte do modelo conceitual. Resultado: país, crime, delegacia de polícia, banco de dados, criminosos, vítimas, armas, relatórios, estatísticas, chefe da delegacia, visto do chefe, julgamento, número de identificação. Observem que registro de crime não foi listado, pois é equivalente a crime. 2) Descartando substantivos que como entidade teriam apenas uma ocorrência.
Agora faça uma das seguintes perguntas: “se esse substantivo for transformado em entidade será um conjunto de apenas uma ocorrência?” ou “Caso essa entidade venha a se transformar em tabela terá apenas uma linha?” Caso a resposta seja afirmativa descarte esse substantivo. Resposta: delegacia de polícia. 3) Descartando substantivos que servem apenas para entendimento do problema.
Mesmo substantivos que designam objetos podem servir apenas para entendimento do problema e, neste caso, não devem fazer parte do modelo conceitual como entidades. Para identificá-las faça a seguinte pergunta: “preciso guardar informações sobre esse objeto?” Caso a resposta seja negativa, esse substantivo deve ser descartado. Resultado: banco de dados, país e chefe de delegacia.
2/6
Banco de Dados
4) Descartando objetos que são referência a uma futura aplicação.
Em um projeto de banco de dados relacional não existe no modelo conceitual preocupações com os programas que acessarão ou manipularão os dados. Assim, citações a telas relatórios, estatísticas, cálculos e tudo aquilo que signifique manipulação dos dados não deve ser considerado entidade. Resultado: relatórios e estatísticas. 5) Descartando substantivos que se transformados em entidades teriam apenas um atributo.
Para isso, faça a seguinte pergunta: “se essa entidade vier a ser uma tabela, quantas colunas teria?” Se a resposta for apenas uma, verifique a qual outra entidade esse atributo deverá pertencer. Resultado: visto do chefe, numero de identificação.
Este substantivo na realidade deverá ser um atributo de uma possível entidade crime, mas não uma entidade independente. 6) Listando os substantivos que se tornarão entidades
Depois destas etapas temos a lista de substantivos que se tornarão as entidades do nosso modelo conceitual. Resultado: crime, criminoso, vítima e arma. 7) Identificando os relacionamentos físicos e definindo seus tipos através de verbos ou preposições que demonstrem relações de dependência ou existência entre as entidades.
Normalmente no próprio texto identificamos as relações através de verbos ou preposições. Algumas poucas vezes essas relações estão ocultas e precisaremos fazer uma análise mais apurada do texto, porém isso não é a regra. Tipos de relacionamentos são representados no desenho do modelo ER no formato de losangos e seus nomes devem representar da melhor forma possível qual é a ligação entre as entidades. O nome do relacionamento é geralmente o verbo que melhor representa a ligação entre as entidades. Efetuando novamente a leitura dos requisitos: Resultado: arma usada crime, criminoso comete crime, criminoso ataca vítima, vítima sofre crime. 8) Estabelecendo o grau de relacionamento entre as entidades.
O grau de relacionamento entre entidades demonstra o tipo de ligação física entre elas. Ligações físicas que futuramente irão permitir uma adequada extração dos dados armazenados no banco de dados. O grau de relacionamento mais comum é aquele chamado de grau dois ou binário, assim chamado por representar a ligação entre duas entidades. Existem ainda casos onde podem ocorrer outros tipos de relacionamentos de grau três, também chamado de ternário, que ocorrem nos casos onde uma entidade se relaciona com o agrupamento de duas entidades ao invés de se relacionar com cada uma delas isoladamente.
3/6
Banco de Dados
9) Estabelecendo a razão da cardinalidade do relacionamento entre as entidades.
A razão da cardinalidade demonstra quantas ocorrências de uma entidade estão relacionados a uma ocorrência de uma outra entidade. Esse relacionamento depende das regras de negócio, ou seja, a forma de operar da organização. Porém, mesmo conhecendo o negócio, muitas vezes nos confundimos com tais “um pra lá e muitos pra cá” ou “muitos pra lá e muitos pra cá”. Conforme será demonstrado nos resultados descritos a seguir, sugerimos visualizar sempre os dois lados do relacionamento. Por exemplo, se observarmos que um criminoso ataca muitas vítimas, também devemos observar que uma vítima pode ser atacada por muitos criminosos. Vamos destacar esta análise entre criminosos e vítimas organizando-a da seguinte forma: . Um criminoso ATACA Muitas Vítimas. Passamos a seguir para o outro lado do relacionamento: . Uma vítima pode ser ATACADA por Muitos Criminosos. Consideramos então só as duas últimas palavras das duas frases encontramos: . Muitas Vítimas – Muitos Criminosos A seguir temos a análise completa do nosso problema Resultado:
Uma Arma PODE SER USADA em Muitos Crimes Um crime PODE TER Muitas Armas Então Muitos Crimes: - Muitas Armas Um criminoso PODE COMETER Muitos Crimes Um Crime PODE SER COMETIDO POR Muitos Criminosos Então: Muitos Criminosos – Muitos Crimes Um criminoso ATACA Muitas Vítimas Uma Vítima PODE SER ATACADA POR Muitos Criminosos Então: Muitos Criminosos – Muitas Vítimas Uma vítima PODE SOFRER Muitos Crimes Um Crime PODE TER Muitas Vítimas Então: Muitos Crimes – Muitas Vítimas
4/6
Banco de Dados
10) Identificando os atributos de cada entidade
Todo objeto tem suas propriedades e há a necessidade de considerá-las na definição do modelo conceitual. Propriedades equivalem a características do objeto. Por exemplo, uma pessoa tem como características a altura, peso, cor, etc. Um fornecedor tem o CNPJ, razão social, endereço, etc. Um estudante tem o número de matrícula, o nome, etc. Seguindo nosso processo teremos o seguinte resultado: Criminoso = {rg, nome, endereço} Vítima = {rg, nome, endereço} Crime =
{número_bo, descrição, local, data, visto_chefe}
Arma =
{número, descrição} Modelo conceitual – Exemplo
rg
nome
Criminoso
endereço
rg M
nome
endereço
M Vítima
Ataca
M
M número_bo
data
local
M
M Crime
Comete
descrição
Sofre
visto_chefe M Usada
M número
descrição
Arma
5/6
Banco de Dados
Exercícios:
1) Uma escola deseja disponibilizar em uma intranet as notas de seus alunos por matéria e por bimestre, sendo que em semestre sempre terá duas notas bimestrais e a média final do semestre será calculada pelo sistema. Na página, o aluno poderá visualizar o código da matéria, a descrição da matéria, bimestre, nota e no final do semestre a respectiva média final. Também poderá consultar quais matérias cursa no semestre, e respectivos professores. O professor pode visualizar quais matérias leciona em cada curso e lançar as notas de cada aluno. A escola também deseja extrair relatórios ou pesquisas sobre as matérias que o aluno cursa e vice-versa e ainda quais professores lecionam que matéria. Para que não haja confusão entre matérias com o mesmo nome, mas em cursos e conteúdos diferentes, as matérias possuirão um código próprio que as distinguirão por curso. 2) Uma empresa de informática presta consultoria para vários clientes desenvolvendo projetos de sistemas envolvendo banco de dados. Cada filial dessa consultoria possui seus próprios clientes, não podendo uma filial prestar serviços à cliente da outra. Podem, porém, os funcionários de uma filial serem utilizados por outra quando isso for necessário. Como “em casa de ferreiro o espeto é de pau”, a consultoria não dispõe de um sistema que aponte: que funcionários estão alocados em qual projeto; horas de funcionário em cada projeto; qual projeto pertence a qual cliente; a qual filial o cliente está vinculado e o total de horas de cada projeto.
6/6