Classificação dos Dados A seguir, apresentamos uma proposta de padrão para classificação dos dados. Alguns exemplos de dados: cd_matrícula_funcionário,nm_funcionário, vl_tota_nota_fiscal, ds_material, íc_validade_processo, PC_desconto_venda, etc. O nome de um dado deve ser o mais simples e direto possível. Deve ser entendido pelos usuários e fazer sentido no ciclo de negócio que o sistema retrata. Dado e Conteúdo do dado Uma distinção importante deve ser feita entre o dado e o conteúdo do dado. Enquanto nm_aluno é um dado, Jonas Trancoso, Hertônio Tamboré, etc, são conteúdos deste dado
Quatro tipos de Dados O dado do tipo natural nasce com o objeto, a partir deles se consegue gerar a maioria dos outros tipos de dados. EX: nm_funciononario, dt_nascimento_funcionário, cd_sexo_funcionário; O dado do tipo calculado, é criado por uma necessidade específica do sistema. EX: qt_idade_aluno O dado do tipo artificial, precisa ser criado para possibilitar uma identificação interna ao sistema. Criado pelo analista é desconhecido pelos usuários. O dado do tipo qualificado é criado para atender uma necessidade específica do usuário. EX: nm_aluno é um dado natural, nm_aluno_aprovado é um dado qualificado Independência entre Dados e Processos O dado é o elemento mais estável de um sistema de informação. Ao se estrutura r os dados de forma independente dos processos, as futuras manutenções no sistema, que normalmente são alterações nos processos, não trarão impactos na base de dados o que traz maior estabilidade e melhor desempenho ao sistema de informação. Portanto, nunca esqueça que: O dado é independente do processo.
Descrição dos Fluxos de Dados REDUNDÂNCIA DE DADOS Mesmo dado aparece em vários locais diferentes a manipulação fica comprometida. A cada alteração no conteúdo do dado, esta deverá ser replicada. Geração de graves problemas de controle Fator que mais comprometem o bom desempenho da Base Poderá ser conveniente que alguns dados sofram redundância, quando realmente houver garantia de maior performance do sistema. Ex: vl_preco_combustivel
Representação da cardinalidade no desenho do modelo de dados Para representar o relacionamento no desenho do modelo de dados, várias convenções ou padrões são conhecidos. Vamos adotar aquela que se costuma denominar de "pé de galinha" para indicar a cardinalidade Uma ocorrência ou nenhuma Uma e somente uma ocorrência Várias, Uma ou nenhuma ocorrência Pelo menos uma ocorrência Exemplo: DEPENDENTE EMPREGADO AREA LOTACAO EMPREGADO NIVEL SALARIAL GERENTE Uma ÁREA LOTAÇÃO tem obrigatoriamente pelo menos 1 empregado; Um EMPREGADO está vinculado obrigatoriamente a uma área de LOTAÇÃO; Um EMPREGADO pode ter vários, um ou nenhum DEPENDENTE; Um DEPENDENTE (se existir) está obrigatoriamente vinculado a um EMPREGADO. Um EMPREGADO pode ser GERENTE. Um GERENTE é um EMPREGADO.
Um EMPREGADO tem obrigatoriamente um NÍVEL SALARIAL; Em um mesmo NÍVEL SALARIAL podemos ter vários, um ou nenhum EMPREGADO. Identificação da Instância 1. Cada funcionário no mundo real deverá ser uma instância do objeto FUNCIONÁRIO. 2. Cada instância só pode ser única, não pode ser confundida com outra. 3. Não é possível existir dois funcionários iguais, identifica-ios como indivíduos diferentes. 4. O analista deve garantir a unicidade de cada instância. Podemos usar nm_funcionario para identificar cada funcionário diferente? O identificador de cada ocorrência do objeto é definido como chave. Todos os atributos não chave de uma instância devem depender do atributo chave e por ele serem identificados. O conteúdo da chave é fixo Não pode se alterar com a passagem do tempo Não pode apresentar dois conteúdos iguais. CITTE-SE: erro de chave duplicada, sobrepor os dados Um objeto pode apresentar mais de um atributo apto a ser chave primária. Cabe ao analista decidir. Chave concatenada é um conjunto de atributos capaz de identificar univocamente a instância do objeto. um atributo que forma a chave concatenada pode ter conteúdos repetidos, mas o conjunto de atributos que formam a chave concatenada não pode.
Navegação no Modelo de Dados O problema agora é resolver a questão, quem é proprietário de que veículo? ou, a quem pertence determinado veículo? A resolução se dá pelo atributo estrangeiro. Relacionamento do tipo N:N
Normalização Para garantir a eliminação de redundâncias de dados, foram criadas regras, denominadas de Normalização, e cada uma das regras é denominada de Forma Normal. Existem mais de cinco Formas Normais. Estudaremos as três primeiras, que são as essenciais. Primeira Forma Normal (1FN) Uma instância está na 1FN, se para cada ocorrência do objeto, existir apenas um valor de cada atributo. A 1FN elimina as múltiplas ocorrências das instâncias.
Segunda Forma Normal (2FN) Uma instância está na 2FN, se atender a 1FN e os atributos não chave não apresentarem dependência parcial da chave. (devem ser identificados pelo atributo que é a chave) 2FN só se aplica às instâncias que são identificadas por chave concatenada. Terceira Forma Normal (3FN) Uma instância está na 3FN, se atender a 2FN, e seus atributos não apresentarem dependência transitiva da chave. Um atributo apresenta dependência transitiva da chave quando ele é identificado por outro atributo não chave, e este por sua vez é identificado pela chave.
No exemplo que está sendo discutido. O objeto ORDEM COMPRA está fora da 3FN, uma vez que nm_fornecedor e cd_insc_estadual_fornecedor são atributos identificados por cd_fornecedor e não pelo atributo # cd_ordem_compra que é a chave da instância.