Modelagem de dados: diferenças entre revisões

Conteúdo apagado Conteúdo adicionado
Desfeita a edição 39293522 de 201.51.21.127
Etiqueta: Remoção considerável de conteúdo
bot: revertidas edições de 177.221.52.196 ( modificação suspeita : -30), para a edição 39293522 de 201.51.21.127
Linha 1:
Modelar significa criar um modelo que explique as características de funcionamento e comportamento de um [[software]] a partir do qual ele será criado, facilitando seu entendimento e seu projeto, através das características principais que evitarão erros de [[Programação de computadores|programação]], projeto e funcionamento. É uma parte importante do desenho de um [[sistema de informação]].
Modelagem de dados 3
 
A abordagem que se dispensa ao assunto normalmente atende a três perspectivas:
Modelagem de dados é muito bom a gente usa o sql bower é de mais.
* Modelagem Conceitual: é usada como representação de alto nível e considera exclusivamente o ponto de vista do usuário criador dos dados;
Modelagem de sistemas, tanto a nível funcional quanto de dados, é um
* Modelagem Lógica: agrega mais alguns detalhes de implementação.
requisito fundamental para a obtenção de produtos de software de maior qualidade e
* Modelagem Física: demonstra como os dados são fisicamente armazenados.
confiabilidade. Entretanto, percebe-se que cada vez menos profissionais têm dado a
atenção devida ao processo de construção de modelos de suas aplicações. Isso
provavelmente se deve às pressões por sistemas em prazos cada vez mais curtos e
com menores custos de produção mas, por outro lado, acaba por prejudicar – e
muito – o entendimento correto do problema e, consequentemente, a construção do
sistema que atenda às reais expectativas do usuário. Esta situação muitas vezes
leva a sistemas de baixa qualidade, com elevada necessidade de modificação e de
difícil manutenção.
Neste sentido, este trabalho apresenta as principais técnicas de modelagem
de dados, não tendo por objetivo tratar de modelagem funcional. Assim, no que diz
respeito à modelagem de dados, será discutido tanto o modelo conceitual através do
MER (Modelo Entidade-Relacionamento), quanto o modelo lógico através do MR
(Modelo Relacional).
Se você pretende desenvolver aplicações que usam banco de dados relacionais deverá possuir os conceitos básicos sobre modelagem de dados. Não importa se sua aplicação é muito simples ; a correta modelagem dos seus dados irá com certeza tornar sua aplicação mais robusta e mais fácil de manter.
 
Quanto ao objetivo, podemos identificar as seguintes variações:
O propósito deste artigo é fornecer os conceitos básicos sobre modelagem de dados. Este assunto daria centenas de livros por isto estarei sendo o mais direto e o objetivo possível de forma a que você possa aplicar de imediato os conceitos aprendidos. Como o título já diz serão conceitos básicos e sobre banco de dados relacionais.
* modelagem de dados [[Modelo de entidade e relacionamento|entidade-relacionamento]] (leitura, construção e validação dos modelos);
* modelagem de relacionamentos complexos, grupos de dados lógicos e ciclo de vida das entidades;
* modelagem de dados corporativa;
* modelagem de dados distribuídos ([[cliente/servidor]]);
* modelagem e [[reengenharia]] de dados [[legados]] e
* modelagem de dados para [[Data Warehouse]].
 
== Modelos ==
Nota: Estarei usando o ERWin como ferramenta para modelagem para os exemplos citados neste artigo. Eu não vou
[[File:4-2 ANSI-SPARC three level architecture.svg|thumb|228x228px]]
De acordo com a abordagem que utilizam, os modelos de dados normalmente são classificados da seguinte forma:
* '''Modelo Conceitual''': O modelo conceitual é um diagrama em blocos que demonstra todas as relações entre as entidades, suas especializações, seus atributos e auto-relações.
* '''Modelo Lógico''': O modelo lógico mostra as ligações entre as tabelas de banco de dados, as chaves primárias, os componentes de cada uma, etc.
* '''Modelo Físico''': Inclui a análise das características e recursos necessários para armazenamento e manipulação das estruturas de dados (estrutura de armazenamento, endereçamento, acesso e alocação física), sendo uma sequência de comandos executados em [[SQL]] a fim de criar as tabelas, estruturas e ligações projetadas até então e finalmente criar o banco de dados.
Exemplo de Modelo Físico (SQL ANSI 2003):<br />
CREATE TABLE Produtos (<br />
COD_PROD Texto(1) PRIMARY KEY,<br />
MODELO Texto(1),<br />
DESCRICAO Texto(1),<br />
COR Texto(1),<br />
CATEGORIA Texto(1),<br />
QUANT_PROD Texto(1)<br />
)<br />
 
=== Modelo Lógico de Dados ===
Qual o objetivo da modelagem de dados ? Por que modelar ?
Um modelo lógico de dados para uso meramente operacional/transacional deve:
* Ser completamente [[Normalização de dados|normalizado]];
* Representar fielmente o NEGÓCIO, e NÃO necessariamente a base de dados desejada, a qual será construída posteriormente por ocasião do Projeto Físico;
* Conter descrição sucinta das entidades, atributos e relacionamentos;
* Conter os nomes de entidades e atributos, extensos e abreviados, atribuídos de acordo com algum padrão adotado na organização e formados por termos previamente convencionados em um [[glossário]];
* Contemplar, para cada um dos atributos, o tipo de dado, tamanho e opcionalidade.
 
== Identificação de Objetos ==
Representar o ambiente observado
*'''Coisas Tangíveis''': elementos que têm existência concreta, que ocupam lugar no espaço.
Documentar e normalizar
:Ex: Meio de Transporte (avião, carro, barco, etc);
Fornecer processos de validação
Observar processos de relacionamentos entre objetos
 
*'''Funções''': percepção dos objetos através da função por eles exercida (papel, atribuição, classificação, capacitação, etc).
Modelar implica em construir modelos então como fazer isto ? Podemos definir as etapas envolvidas na construção de modelos em :
:Ex: Organização (órgãos funcionais - venda, suporte, despacho de mercadorias, etc), especialistas (médicos, engenheiros, etc), cliente (pessoa atendida), atendente (pessoa que atende), etc;
 
*'''Eventos ou Ocorrências''': alguns objetos só conseguem ser individualizados ou percebidos enquanto uma certa ação se desenrola (identifica-se características que tornam determinado fato materializável).
1 - Modelo conceitual - Representa as regras de negócio sem limitações tecnológicas ou de implementação por isto é a etapa mais adequada para o envolvimento do usuário que não precisa ter conhecimentos técnicos. Neste modelo temos :
:Ex: vôo comercial, acidente de trânsito, jogo de futebol, etc.
 
*'''Interações''': resultantes das associações entre objetos em função de um processo executado - cada objeto participante da interação preserva suas características não sendo impactados pela materialização da interação.
Visão Geral do negócio
:Ex: compra de um imóvel, adoção de uma criança, venda de um produto;
Facilitação do entendimento entre usuários e desenvolvedores
Possui somente as entidades e atributos principais
Pode conter relacionamentos n para m.
 
*'''Especificações''': são elementos que definem características de outros objetos.
2- Modelo Lógico - Leva em conta limites impostos por algum tipo de tecnologia de banco de dados. (banco de dados hierárquico , banco de dados relacional ,etc.). Suas características são :
:Ex: modelos de carro (cor, dimensões, etc), espécies animais (mamíferos, carnívoros, etc.)
 
== Definição ==
Deriva do modelo conceitual e via a representação do negócio
Uma definição deve:
Possui entidades associativas em lugar de relacionamentos n:m
* ser única (dentro de qualquer dicionário no qual ela aparece);
Define as chaves primárias das entidades
* ser estabelecida no singular;
Normalização até a 3a. forma normal
* estabelecer o que o conceito é (não o que ele não é), o que faz, quando algum elemento passa a ser, ou deixa de ser, pertencente a esse grupo;
Adequação ao padrão de nomenclatura
* ser estabelecida como uma frase ou sentença descritiva;
Entidades e atributos documentados
* ser expressa sem definições embutidas de outros termos;
* estabelecer o significado essencial do conceito;
* ser precisa e não-ambígua;
* ser concisa;
* ser significativa por si só;
* evitar raciocínio circular.
 
== Atributos ==
3- Modelo Físico - Leva em consideração limites impostos pelo SGBD (Sistema Gerenciador de Banco de dados) e pelos requisitos não funcionais dos programas que acessam os dados. Características:
Quanto ao tipo, podem ser classificados como:
*'''Descritivos''': representam as características intrínsecas dos objetos;
*'''Nominativos''': além de cumprirem a função de descritivos servem como definidores de nomes ou rótulos de identificação dos objetos (nome, código, número, sigla, etc);
*'''Referenciais''': representam uma citação ou ligação do objeto em questão com outro objeto, não propriamente definindo uma característica do objeto mas explicitando um relacionamento existente<ref>Durante a [[Normalização de dados|normalização]] estes são deslocados para o objeto a que pertencem e é feito então um relacionamento entre eles</ref>.
:Ex: Cidade de nascimento, Nome do fabricante do carro, Local de trabalho, etc.
 
== Relacionamentos ==
Elaborado a partir do modelo lógico
Na descrição de um relacionamento devem aparecer:
Pode variar segundo o SGBD
* Sua função;
Pode ter tabelas físicas (log , lider , etc.)
* O que ele representa;
Pode ter colunas físicas (replicação)
* Quais as regras de seu estabelecimento;
* Quais as exceções a seu estabelecimento;
* Quando ocorre;
* Quando pode deixar de existir.
 
== Recomendações ==
Precisamos definir agora entidade e atributo. O que são e o que representam ?
Um Modelo Lógico de Dados para uso meramente operacional/transacional '''não''' deve conter:
*'''Replicações de atributos''': fisicamente pode ser interessante alguma redundância com o objetivo de melhorar a performance de determinado(s) processo(s). No modelo lógico isso não pode ser feito; um atributo só é representado na Entidade que o pertence.
*'''Atributos derivados''': pelos mesmos motivos apontados anteriormente, a implementação das tabelas pode requerer o armazenamento de uma informação derivada de outra(s) (valor do saldo por exemplo). Tal tipo de informação não se constitui um atributo do modelo lógico.
*'''Atributos repetitivos''': o uso de atributos repetidos, como Telefone-1 e Telefone-2, não é admitido. Se existe a possibilidade de uma pessoa possuir mais de um telefone, então Telefone deve ser representado como uma entidade, mantendo relacionamento Nx1 com a entidade Pessoa.
 
=={{Veja também}}==
Uma Entidade pode ser definida como qualquer coisa do mundo real , abstrata ou concreta , na qual se deseja guardar informações. (Tabela , File, etc..). Exemplos de entidades : Cliente , Produto , Contrato , Vendas , etc.
* [[UML|UML - Linguagem de Modelagem Unificada]]
* [[Arquitetura de dados]]
* [[Administração de dados]]
* [[Modelo de Entidades e Relacionamentos|MER - Modelo de Entidades e Relacionamentos]]
* [[Ferramenta CASE]]
* [[Matriz CRUD]]
* [[Banco de dados]]
* [[Engenharia de software]]
* [[Análise de requisitos]]
* [[Modelagem dimensional]]
* [http://www.sis4.com/brModelo/ Ferramenta freeware voltada para ensino de modelagem em banco de dados relacional]
 
{{referências}}
Um atributo é tudo o que se pode relacionar como propriedade da entidade. (coluna , campo , etc,..). Exemplos de atributos : Código do Produto (Entidade Produto) , Nome do Cliente (Entidade Cliente).
 
{{Engenharia de software}}
Nota : Chama-se Domínio o conjunto de valores possíveis do atributo.
 
[[Categoria:Engenharia de software]]
Obs: Nenhum modelo é suficientemente claro se não for acompanhado de uma definição formal dos elementos , fazemos isto através do Dicionário de Dados . Lembre-se , conceitos que podem ser triviais a quem esta modelando podem não ser para pessoas leigas no assunto. Assim o dicionário de dados tem o objetivo de deixar claro qualquer informação que seja de valia para o processo de compreensão e unificação de conceitos.
[[Categoria:Ciência da informação]]
 
Para que fique claro vamos fazer um exercício simples: Definir uma entidade que represente as informações de uma Pessoa e descrever seus atributos.
 
Podemos definir a entidade Pessoa que irá representar as informações de uma pessoa. Abaixo temos a representação da entidade e de alguns de seus atributos feitos no ERWin.