Diferenças entre edições de "Modelagem de dados"

2 608 bytes removidos ,  13h51min de 31 de julho de 2014
Desfeita a edição 39293522 de 201.51.21.127
(Desfeita a edição 39293522 de 201.51.21.127)
Etiqueta: Remoção considerável de conteúdo
Modelagem de dados 3
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 é muito bom a gente usa o sql bower é de mais.
A abordagem que se dispensa ao assunto normalmente atende a três perspectivas:
Modelagem de sistemas, tanto a nível funcional quanto de dados, é um
* Modelagem Conceitual: é usada como representação de alto nível e considera exclusivamente o ponto de vista do usuário criador dos dados;
requisito fundamental para a obtenção de produtos de software de maior qualidade e
* Modelagem Lógica: agrega mais alguns detalhes de implementação.
confiabilidade. Entretanto, percebe-se que cada vez menos profissionais têm dado a
* Modelagem Física: demonstra como os dados são fisicamente armazenados.
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.
 
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.
Quanto ao objetivo, podemos identificar as seguintes variações:
* 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]].
 
Nota: Estarei usando o ERWin como ferramenta para modelagem para os exemplos citados neste artigo. Eu não vou
== Modelos ==
[[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 />
 
Qual o objetivo da modelagem de dados ? Por que modelar ?
=== Modelo Lógico de Dados ===
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.
 
Representar o ambiente observado
== Identificação de Objetos ==
Documentar e normalizar
*'''Coisas Tangíveis''': elementos que têm existência concreta, que ocupam lugar no espaço.
Fornecer processos de validação
:Ex: Meio de Transporte (avião, carro, barco, etc);
Observar processos de relacionamentos entre objetos
 
Modelar implica em construir modelos então como fazer isto ? Podemos definir as etapas envolvidas na construção de modelos em :
*'''Funções''': percepção dos objetos através da função por eles exercida (papel, atribuição, classificação, capacitação, etc).
: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;
 
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 :
*'''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).
:Ex: vôo comercial, acidente de trânsito, jogo de futebol, etc.
 
Visão Geral do negócio
*'''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.
Facilitação do entendimento entre usuários e desenvolvedores
:Ex: compra de um imóvel, adoção de uma criança, venda de um produto;
Possui somente as entidades e atributos principais
Pode conter relacionamentos n para m.
 
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 :
*'''Especificações''': são elementos que definem características de outros objetos.
:Ex: modelos de carro (cor, dimensões, etc), espécies animais (mamíferos, carnívoros, etc.)
 
Deriva do modelo conceitual e via a representação do negócio
== Definição ==
Possui entidades associativas em lugar de relacionamentos n:m
Uma definição deve:
Define as chaves primárias das entidades
* ser única (dentro de qualquer dicionário no qual ela aparece);
Normalização até a 3a. forma normal
* ser estabelecida no singular;
Adequação ao padrão de nomenclatura
* 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;
Entidades e atributos documentados
* ser estabelecida como uma frase ou sentença descritiva;
* 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.
 
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:
== Atributos ==
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.
 
Elaborado a partir do modelo lógico
== Relacionamentos ==
Pode variar segundo o SGBD
Na descrição de um relacionamento devem aparecer:
Pode ter tabelas físicas (log , lider , etc.)
* Sua função;
Pode ter colunas físicas (replicação)
* O que ele representa;
* Quais as regras de seu estabelecimento;
* Quais as exceções a seu estabelecimento;
* Quando ocorre;
* Quando pode deixar de existir.
 
Precisamos definir agora entidade e atributo. O que são e o que representam ?
== Recomendações ==
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.
 
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.
=={{Veja também}}==
* [[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]
 
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).
{{referências}}
 
Nota : Chama-se Domínio o conjunto de valores possíveis do atributo.
{{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:Engenharia de software]]
 
[[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.
Utilizador anónimo