01 banco de dados-basico

93
Projeto e Implementação Projeto e Implementação Prof. Edney Fernandes

description

Introdução aos conceitos de banco de dados.

Transcript of 01 banco de dados-basico

Page 1: 01 banco de dados-basico

Projeto e ImplementaçãoProjeto e Implementação

Prof. Edney Fernandes

Page 2: 01 banco de dados-basico

� Instalação do Debian 6◦ Configuração de rede ◦ Instalação do Serviço de ssh

� #aptitude install ssh

� Instalação do Apache◦ # aptitude install apache2

� Instalação do PHP5� Instalação do PHP5◦ # aptitude install php5

� #echo “<? Phpinfo(); ?>” > /var/www/index.php

� Instalação do MySql◦ # aptitude install mysql-server

� #Mysql –u root -psenha

� Instalação do phpmyadmin◦ # aptitude install phpmyadmin

Page 3: 01 banco de dados-basico

� DB Desing� MySql Front

Page 4: 01 banco de dados-basico

� Banco de Dados

Page 5: 01 banco de dados-basico
Page 6: 01 banco de dados-basico

� Coleção de dados relacionados.� Dados são “fatos conhecidos” que podem ser armazenados e possuem significado implícito.� Disposição desordenada dos dados não � Disposição desordenada dos dados não podem ser tratados como banco de dados.� Projetado, Construído e Populado com um propósito específico.� Representa algum aspecto do mundo real, chamado de “Minimundo”, onde qualquer alteração neste “mini-mundo” é automaticamente refletido no banco de dados.

Page 7: 01 banco de dados-basico

Banco de Dados =

É o conjunto de dados integrados que tem por É o conjunto de dados integrados que tem por objetivo atender a uma

comunidade de usuários.

Page 8: 01 banco de dados-basico

Produção Vendas Compras

� Sistemas Integrados com dados compartilhados

Banco de Dados

.....Produtos

Page 9: 01 banco de dados-basico

� Hierárquico

Modelo em árvore.Uma base de dados hierárquica é um tipo de Uma base de dados hierárquica é um tipo de banco de dados que conecta registros numa estrutura de dados em árvore através de ligações de tal modo que cada tipo de registro tenha apenas um possuidor.

Page 10: 01 banco de dados-basico
Page 11: 01 banco de dados-basico

� Relacional

Relações representadas por tabelas.

O modelo relacional é um modelo de dados, O modelo relacional é um modelo de dados, que se baseia no princípio em que todos os dados estão guardados em tabelas (ou, matematicamente falando, relações).

Page 12: 01 banco de dados-basico
Page 13: 01 banco de dados-basico

SGDB

É o Software que incorpora as funções de definição, recuperação e alteração de dados

em um banco de dadosem um banco de dados

Page 14: 01 banco de dados-basico

� Coleção de programas que permitem definir, construir e manipular Base de Dados.

� Auto-contenção: armazena completamente toda a descrição dos dados.

Sistema de Gerência de Bando de Dados

toda a descrição dos dados.

� Independência dos dados: nenhuma informação fica amarrada aos programas de aplicação.

Page 15: 01 banco de dados-basico

� Abstração dos dados: é mostrado uma representação conceitual dos dados.

Page 16: 01 banco de dados-basico

Um modelo de (banco de) dados é uma descrição dos tipos de informações que estão armazenadas em um banco de dados

Page 17: 01 banco de dados-basico

� Modelo Conceitual◦ Um modelo conceitual é uma descrição do banco de dados

de forma independente de implementação em um SGBD.◦ A técnica mais difundida de modelagem conceitual é a

abordagem entidade- relacionamento (ER).

Page 18: 01 banco de dados-basico

� Modelo Lógico◦ Um modelo lógico é uma descrição de um banco de dados

no nível de abstração visto pelo usuário do SGBD. ◦ Assim, o modelo lógico é dependente do tipo particular de

SGBD que está sendo usado.

Ex. TipoDeProduto(CodTipoProd,DescrTipoProd) Produto(CodProd,DescrProd,PrecoProd,CodTipoProd) CodTipoProd referencia TipoDeProduto

Page 19: 01 banco de dados-basico

� Com o avanço das tecnologias de desenvolvimento de aplicações, novas linguagens, orientação a objetos e análise de sistemas.

� Há necessidade de se projetar um banco de � Há necessidade de se projetar um banco de dados para melhor interagir com as aplicações de forma relacional.

� Proporcionar confiabilidade, suportar grandes quantidades de dados.

Page 20: 01 banco de dados-basico

� Estudo das informações existentes em contexto sob observação para construção de um modelo de representação e entendimento de tal contexto.

� Busca minerar informações que representem o contexto e estruturando-as em conjunto que denominamos de modelo lógico de dados.

Page 21: 01 banco de dados-basico

� Encontrar e separar dados de seus processos para obter o domínio de negócio no qual a aplicação está sendo desenvolvida.

� A melhor maneira de se projetar um banco de � A melhor maneira de se projetar um banco de dados é entender e dominar as técnicas de modelagem de dados.

Page 22: 01 banco de dados-basico

� Um banco de dados mal projetado requererá mais tempo e retrabalho a longo prazo.

� Sem um devido planejamento e análise cuidadosa pode-se criar um BD que omitam dados importantes, inconsistências de dados importantes, inconsistências de informações, valores diferentes da realidade e manutenções sucessivas da estrutura.

� O modelo de dados deve ser simples para comunicar ao usuário final e bastante detalhada para o administrador de banco de dados.

Page 23: 01 banco de dados-basico

� Porção da realidade, captada pelo analista, a qual a gestão de negócio de uma organização tem interesse em observar, controlar e administrar.

� A complexidade existente no momento da análise pode-se subdividir em partes menores formando as visões de processos de negócio.

Page 24: 01 banco de dados-basico

� É um processo, mental, usado para selecionar características e propriedades de um conjunto de objetos ou fatos, e excluír outros que não são relevantes dentro do contexto.

� Deve-se concentrar na observação dos � Deve-se concentrar na observação dos objetos relevantes com a finalidade de construir um modelo de compreensão e conceitos existentes na realidade. Minimundo.

Page 25: 01 banco de dados-basico
Page 26: 01 banco de dados-basico

� A preocupação que o analista deve ter é retratar as necessidades de informação que as pessoas precisam para alcançar os objetivos em seu ambiente de negócio.

� Registrar as necessidades em um modelo de dados para mostrar as informações existentes e como elas são relacionadas.

Page 27: 01 banco de dados-basico

� É utilizado para definir uma classe de objetos ou coisas do mundo real caracterizado por propriedades comuns.

Azul Vermelha Verde Amarela

Page 28: 01 banco de dados-basico

� Agregar significa compor parte de alguma coisa.

� Podemos entender classes de coisas como elementos de composição de outra classe maior.maior.

Guidão(Classes)

Coroas Pedais Rodas

Page 29: 01 banco de dados-basico

� Ocorre quando definimos um subconjunto de relacionamentos entre elementos de duas ou mais classes.

Bicicleta Carro Caminhão Ônibus

Page 30: 01 banco de dados-basico

� Entidade e Relacionamento

Page 31: 01 banco de dados-basico

� Criado por Edgar Codd.� A utilização da abordagem correta de uma metodologia utilizada orientada a BD envolve a estruturação de 3(três) níveis de visão de dados.dados.

� Três etapas(MODELOS) na execução de um projeto de BD devem ser seguidos:

Conceitual Lógico Físico

Page 32: 01 banco de dados-basico

� Representa, descreve a realidade do ambiente do problema, constituindo-se em uma visão global dos principais dados e seus relacionamentos, completamente independente dos aspectos de sua independente dos aspectos de sua implementação tecnológica.

� Esta sempre será a primeira etapa do projeto de BD.

� Objetivo de descrever de forma simples e facilmente compreendida pelo usuário final as informações do negócio (Contexto).

Page 33: 01 banco de dados-basico

� O resultado de um modelo conceitual é um esquema gráfico que representa a realidade das informações existentes.

� O modelo conceitual nunca deve ser construídos com considerações sobre construídos com considerações sobre processos de negócios, com preocupações de acesso aos dados, como serão realizadas as operações de consulta e manutenção dos dados.

Page 34: 01 banco de dados-basico
Page 35: 01 banco de dados-basico

� Só inicia após a criação do modelo conceitual,considerando-se as abordagens tecnológicaspossíveis do SGBD (relacionamento,hierarquia, rede) para estruturação eestabelecimento da lógica relacional existenteestabelecimento da lógica relacional existenteentre os dados definidos no modeloconceitual.

� O modelo lógico descreve as estruturas queestarão no BD de acordo com aspossibilidades permitidas.

Page 36: 01 banco de dados-basico
Page 37: 01 banco de dados-basico

� Será construído a partir do modelo lógico, descrevendo as estruturas físicas de armazenamento de dados:

Estruturas

Tipo e Tamanho de CamposTipo e Tamanho de Campos

Índices

Domínio de Preenchimento dos Campos

Nomenclatura

Exigências de Conteúdo

Gatilhos; etc.

Page 38: 01 banco de dados-basico

� Esta é a etapa final de projeto do banco dedados, onde será utilizada a linguagem DDLpara a montagem do BD.

� Uso de linguagem SQL para criação dastabelas.

Page 39: 01 banco de dados-basico

� Linguagem de definição dos dados (DDL) -Linguagem que define as aplicações, arquivos e campos que irão compor o banco de dados (comandos de criação e atualização da estrutura dos campos dos arquivos).

� Linguagem de manipulação dos dados (DML) -Linguagem que define os comandos de manipulação e operação dos dados (comandos de consulta e atualização dos dados dos arquivos).

Page 40: 01 banco de dados-basico
Page 41: 01 banco de dados-basico

� São conjuntos de dados vistos segundo um conjunto de TABELAS, e as operações que as utilizam são feitas por linguagens que o manipulam, não sendo procedurais, ou seja, manipulando conjuntos de uma só vez.manipulando conjuntos de uma só vez.

� Para trabalhar com estes objetos, o usuário conta com um conjunto de operações e funções de alto nível, constantes na álgebra relacional.

Page 42: 01 banco de dados-basico

� A Teoria Relacional possui premissas que definem uma tabela de dados:

1. Cada uma das tabelas é chamada de relação.2. O conjunto de uma linha e suas colunas é chamado de tupla.3. Cada coluna dessa tabela tem um nome e representa um

domínio da tabela.domínio da tabela.4. A ordem das linha é irrelevante.

5. Não há duas linhas iguais.

6. Usamos nomes para fazer referência às colunas.7. A ordem das colunas também é irrelevante.

8. Cada tabela tem um nome próprio, distinto de qualquer outra tabela no bando de dados.

Page 43: 01 banco de dados-basico

� Tabela de CDs

Número do CD

Data de Gravação

Título do Conteúdo

Responsável Local onde está guardado

1 24/01/2008 Músicas Márcio Estojo 1

3 13/02/2007 Corel Lucas Estojo 13 13/02/2007 Corel Lucas Estojo 1

2 14/12/2008 IRRF 2008 Lucas Estojo 2

4 25/01/2009 Fotos João Estojo 3

Page 44: 01 banco de dados-basico

� Em toda e qualquer tabela existente em umbanco de dados relacional sempre haveráuma coluna ou um conjunto de colunasconcatenadas, cujos valores são únicos natabela, isto é, nunca se repete aquele valortabela, isto é, nunca se repete aquele valorem nenhuma outra linha da tabela.

� Essa coluna ou conjunto de colunasconcatenadas identifica uma única linha databela.

� Então dizemos que essa coluna ou conjuntode colunas forma a chave primária da tabela.

Page 45: 01 banco de dados-basico

Nome Sexo Matricula Cargo cpf

Luiz Masculino 00001 analista 000000001-01

Carlos Masculino 00003 técnico 000000002-01

Renata Feminino 00002 analista 000000003-01

Natália Feminino 00004 psicóloga 000000004-01

Tabela de Funcionários

Natália Feminino 00004 psicóloga 000000004-01

Candidatos a Chave Primária:Matricula

00001

00003

00002

00004

cpf

000000001-01

000000002-01

000000003-01

000000004-01

Page 46: 01 banco de dados-basico

� São valores desconhecidos, ausentes para nós.� Uma chave primária jamais terá valor nulo.

Matricula nome telefone Telefone 2Matricula nome telefone Telefone 2

00001 Neves 3222-2222 nulo

00002 Talita 3344-4444 8888-8888

00003 Bruno 3333-3333 nulo

Page 47: 01 banco de dados-basico

� Chave primária1. Coluna ou concatenação de colunas.2. Valor único na tabela.3. Cada linha tem um valor diferente da chave

primária.primária.4. Não existem valores nulos na chave

primária.

Page 48: 01 banco de dados-basico

� Uma tabela pode ter um conjunto deatributos que contêm valores com o mesmodomínio de um conjunto de atributos queformam a chave primária de uma outratabela.tabela.

� Esse conjunto se chama chave estrangeira.

Page 49: 01 banco de dados-basico

Alimento Quantidade DataValidade

Fabricante Unidade

Feijão 3 10/10/2009 1 1

Arroz 4 20/10/2009 2 1

Açúcar 5 10/09/2009 4 1

Leite 2 15/10/2009 5 4

Estoque de Alimentos

Leite 2 15/10/2009 5 4

Unida deArmazenamento

Nome

1 Kg

2 G

3 M

4 L

Fabricante Nome

1 Polar

2 Roscato

3 Tio João

4 Mococa

Fornecedores Unidades de Armazenamento

Page 50: 01 banco de dados-basico

Matricula Nome DataAdm Sexo CodCargo CodDepto

0001 Jose 14/10/1981 Mas 1 1

0002 Maria 01/01/1976 Fem 2 2

0003 Sâmia 10/10/1986 Fem 3 3

0004 Natasha 25/12/1954 Fem 4 4

CodDepto NomeDepto

1 Informática

2 Financeiro

3 Materiais

4 RH

CodCargo NomeCargo

1 Analista

2 AssistenteAdministrativo

3 Pregoeiro

4 Psicólogo

Page 51: 01 banco de dados-basico

� Existe um conjunto de regras de operações para um banco de dados relacional que coloca restrições, regras nas operações de atualização das tabelas, de forma a garantir e manter a integridade referencial.manter a integridade referencial.

Page 52: 01 banco de dados-basico

� INSERT� Se ocorrer a inclusão da linha @.� Se algum atributo da chave primária da linha @ for nulo.

� Ou existe outra linha na tabela A com o � Ou existe outra linha na tabela A com o mesmo valor da chave primária da linha @.

� Então impede-se a inclusão de linha.� Senão realiza-se a inclusão de linha.

Page 53: 01 banco de dados-basico

� DELETE

� Se ocorre uma exclusão da linha @.

� Se algum atributo de uma outra tabela faz referencia à chave primária da linha @ (existe uma chave estrangeira com o valor da chave primária de @).@).

� Então impede-se a inclusão de linha.

� Ou realiza-se a deleção em cascata de todas as linhas da outra tabela que referenciam o valor da chave primária de @.

� Ou modifica-se (altera-se) para nulo o valor da chave estrangeira dessa outra tabela.

Page 54: 01 banco de dados-basico

� UPDATE� Verificar se existe nas tabelas relacionadas a chave primária da tabela que está sendo alterada com novo valor.

� Ter cuidado ao utilizar função cascata para � Ter cuidado ao utilizar função cascata para que não sejam perdidos valores relacionados em outras tabelas.

Page 55: 01 banco de dados-basico

� Criado por Peter Chen

� A estrutura lógica global de um BD pode serexpressa graficamente por um diagrama deentidades (representadas por retângulos), porrelacionamentos (representados por losângulos) epelos atributos de cada entidade oupelos atributos de cada entidade ourelacionamento através de elipses (notação PeterChen).

� O modelo ER possui um elevado grau de semântica,que torna mais simples e de fácil comunicaçãoentre os usuários, profissionais de informática edesenvolvedores de sistemas.

Page 56: 01 banco de dados-basico

RelacionamentoEntidade 1 Entidade 2Entidade 2

Atributo 1

Atributo 2

Page 57: 01 banco de dados-basico

PedidoFornecedor Entidade 2Produto

NomeFornIdFornIdProd DescProd

Page 58: 01 banco de dados-basico

� Correspondem a quaisquer coisas do mundoreal sobre as quais se deseja armazenarinformações.

� São exemplos típicos de entidades: pessoas(físicas ou jurídicas, tais como funcionários,(físicas ou jurídicas, tais como funcionários,empresas, fornecedores e clientes) objetosmateriais ou abstratos, como produto,veículo, disciplina e projeto e eventos oufatos como pedido, viagem, empréstimo evenda principalmente.

Page 59: 01 banco de dados-basico

� Uma entidade normalmente tem váriasmanifestações dela mesma. Por exemplo, aentidade funcionário representa todos osfuncionários da empresa.

� Uma entidade possui ocorrências ouinstâncias, e cada um dos funcionáriosinstâncias, e cada um dos funcionáriosdescritos pela entidade funcionário é uma desuas ocorrências, ou instancias.

� No modelo ER são representados por meio deum retângulo contendo o nomerepresentantivo da entidade (um substnativono singular) ao centro.

Page 60: 01 banco de dados-basico

� Essas coisas que fazem parte do ambiente são entidades, pois podemos manter informações sobre elas, e são participativas na existência do ambiente. Cada uma delas tem significado próprio.tem significado próprio.

Page 61: 01 banco de dados-basico

CRM do Médico Nome Paciente Data da Consulta

21113 João 10/04/2009

21113 Maria 10/04/2009

44444 Luiz 20/04/2009

Nome Paciente Sexo Idade

João Masculino 30

Maria Feminino 21

Luiz Masculino 18

Page 62: 01 banco de dados-basico

� È a representação das associações existentesentre entidades no mundo real.� No mundo real uma entidade muitoraramente se apresenta isolada, tendoexistência completamente independente deexistência completamente independente dequaisquer outras.

� O nome do relacionamento normalmente éum verbo, pois é resultante de um fato queassocia as entidades.

Page 63: 01 banco de dados-basico

� Pode-se dar dois nomes a um relacionamento.

� Um verbo para explicar o fato no sentido da entidade A para entidade B, e o outro verbo no sentido de B para A.no sentido de B para A.

PossuiPossui

Pertence

Page 64: 01 banco de dados-basico

� São características de uma entidade que a descreve detalhadamente.

� Uma ocorrência específica de um atributo em uma entidade ou relacionamento é denominada de valor do atributo.denominada de valor do atributo.

� Os atributos representam propriedades elementares de uma entidade ou relacionamento.

� Cada atributo está associado a um domínio particular, que é um conjunto de valores válidos para o atributo.

Page 65: 01 banco de dados-basico

� Os atributos de uma entidade emprego, por exemplo, são normalmente a identificação do empregado, nome, endereço, sexo, telefone, cargo, salário.

� Notação de Peter Chen original apresenta o � Notação de Peter Chen original apresenta o atributo como uma elipse com nome do atributo.

Funcionário

Endereço Nome Matricula

Page 66: 01 banco de dados-basico

� A notação de Rumbaugh em seu livro coloca uma lista de atributos dentro do retângulo da entidade, deixando sobre ele o nome da entidade.

Funcionario

Matricula(PK)NomeData_NascimentoSexo

Page 67: 01 banco de dados-basico

� Uma clínica necessita controlar as consultas médicasrealizadas e marcadas pelos médicos a ela vinculados,acompanhar os pacientes atendidos e manter o seuacompanhamento clínico. Para cada médico a clínicamantém uma ficha com o número de CRM, seu nome,endereço, data de nascimento, sexo, etc. Toda consultaé registrada em fichário próprio com as informaçõesé registrada em fichário próprio com as informaçõessobre o médico, paciente, diagnóstico, etc.

� Quais são os objetos candidatos a entidades,relacionamento e atributos nesse ambiente emobservação?

Observe com a sua capacidade de abstração as coisas que existem no ambiente: médicos, pacientes, exames, consulta.

Page 68: 01 banco de dados-basico

� Em uma academia da ginástica os clientes podem freqüentar quantas aulas desejem.

� As aulas são identificadas por um número seqüencial relativamente à modalidade e são caracterizadas pelo nível de dificuldade, professor e sala.e sala.

� Os professores são identificados pelo nome e sobre eles é ainda guardado o sobrenome e telefone.

� Sobre os alunos são conhecidos o nome, idade, sexo e telefone.

Page 69: 01 banco de dados-basico

� O grau de relacionamento é o número de entidades que participam dele.

� Existem 3 tipos básicos de grau de relacionamento: binário, ternário e e-nário.

� Binário: acontece entre duas entidades. Mais � Binário: acontece entre duas entidades. Mais comum.

� Ternário: participam três entidades.� E-nário: participam múltiplas entidades.

Page 70: 01 banco de dados-basico

Pessoa ProjetoAtua

Atuam

Page 71: 01 banco de dados-basico

Pessoa ProjetoAtua

Atuam

Máquinas

Page 72: 01 banco de dados-basico

Material Relatório

Pessoa ProjetoAtua

Atuam

Máquinas

Page 73: 01 banco de dados-basico

� Descreve as restrições no mapeamento das associações existentes entre as ocorrências de entidades em um relacionamento.

� Uma ocorrência de uma entidade se associa, conecta a uma ocorrência de outra entidade, conecta a uma ocorrência de outra entidade, ou muitas ocorrências dessa outra entidade.

� Um relacionamento possui a característica básica chamada cardinalidade.

PossuiPertenceDepartamento Entidade 2Funcionário

Page 74: 01 banco de dados-basico

� Quando entre duas entidades temos um relacionamento em que cada ocorrência da entidade A se associa ou relaciona com uma e somente uma ocorrência da entidade B e cada ocorrência da entidade B se relaciona com ocorrência da entidade B se relaciona com uma e somente uma ocorrência da entidade A, então temos um relacionamento do tipo um-para-um (1:1).

Departamento FuncionárioGerenciado

Gerencia

1 1

Page 75: 01 banco de dados-basico

� É a conectividade mais comum no mundo real e no mundo dos negócios e a mais utilizada na solução de modelos de dados.

� Ela acontece quando uma ocorrência da entidade A se associa ou conecta a mais de entidade A se associa ou conecta a mais de uma ocorrência da entidade B, visto que a ocorrência da entidade B está conectada a um e somente uma ocorrência da entidade A.

Pedido ÍtensPossui

Estão em

1 N

Page 76: 01 banco de dados-basico

� Observa-se nos dois sentidos de leitura aconectividade de um-para-muitos. Quandoexiste tal relacionamento temos então o quese denomina conectividade muitos-para-muitos.muitos.

Nota Fiscal ProdutosPossui

Está em

N N

Page 77: 01 banco de dados-basico

� O campeonato de Fórmula 1 tem muitascorridas durante o ano. As equipes quedisputam o campeonato possuem muitoscarros, pilotos e mecânicos e esses carros epilotos participam normalmente de todas aspilotos participam normalmente de todas asprovas do campeonato.

� Que modelo de dados podemos obter destefato?

CarroGrande Prêmio

ParticipaParticipam

N N

Page 78: 01 banco de dados-basico

� Lista de perguntas úteis para identificar entidades.

1. Que coisas são trabalhadas?2. O que pode ser identificado por número, código?3. Essa coisa tem atributos? Esses atributos são relevantes,

pertinentes?pertinentes?4. Essa coisa pode assumir a forma de uma tabela?5. É um documento externo (recibo, fatura, nota fiscal)? Se

sim, é forte candidato à entidade?6. Tem significado próprio?7. Qual a entidade principal do contexto?

Page 79: 01 banco de dados-basico

� Substantivos que não possuem atributos podemser atributos de outras entidades.

� Adjetivos colocados pelos usuários indicamnormalmente atributos de uma entidade.

� Verbos indicam prováveis relacionamentos.

� Advérbios temporais indicam prováveis atributosde um relacionamento.

� Procure sempre visualizar a entidade principal docontexto sob análise.

� Entidade cujo nome termine por “ão” ou “ento”geralmente são procedimentos.

Page 80: 01 banco de dados-basico

� O relacionamento é necessário?� Ele é útil?� É redundante?� Se redundante, retirar?Qual a sua finalidade? (Documentar)� Qual a sua finalidade? (Documentar)

� Verbos indicam possíveis relacionamentos.� Analisar sempre as entidades aos pares.

Page 81: 01 banco de dados-basico

� O objetivo da normalização é evitar os problemasque podem provocar falhas no projeto de banco dedados, bem como eliminar a mistura de assuntos eas correspondentes redundâncias desnecessáriasde dados.

O processo de normalização aplica uma série de� O processo de normalização aplica uma série deregras sobre as tabelas de um banco de dados,para verificar se estão corretamente projetadas.Embora exista um conjunto de cinco formasnormais (regras de normalização), na práticausamos desse conjunto efetivamente três formasnormais.

Page 82: 01 banco de dados-basico

Produto NumPedido Cliente End LimCred Data Vendedor

Limpador 0001 Davi Rio 1000,00 05/05/09 Carlos

Computador

0003 Helena Pará 2000,00 23/01/09 Carlos

Refrigerador

0002 José S. Paulo 1500,00 27/07/09 Mairador

Limpador 0004 Pedro Belém 4000,00 14/09/09 Romeu

Limpador 0005 José S. Paulo 1500,00 16/09/09 Maira

Page 83: 01 banco de dados-basico

� A tabela está na primeira forma normal se e somente se todas as colunas possuem um único valor, e não existem grupos repetidos(colunas) em uma linha ou atributos compostos.compostos.

Page 84: 01 banco de dados-basico

� Estrutura original da Tabela NF

{Numero da Nota Fiscal, Serie, Emissão, Cod Cliente, Nome, End Cliente, CNPJ, Relação Produtos vendidos, Cod Produto, Decrição, Produtos vendidos, Cod Produto, Decrição, Total de produto, total geral da nota} etc...

Page 85: 01 banco de dados-basico

NF CodCliente

NomeCliente

EndCliente

CNPJ Data Emissão

Total Geral NF

00002 1 Mauro Rio 000001 01/02/09 1000,00

11122 2 Cintia S.Paulo 000022 01/02/09 3000,00

22288 3 Jose Belém 000033 02/02/09 4000,00

88822 4 Manoel Marituba 000099 02/02/09 500,00

Tabela Notas Fiscais

Aplicação da 1FN

88822 4 Manoel Marituba 000099 02/02/09 500,00

NF CodProd Descrição Quantidade

Valor Unitário

Valor Total

00002 44 Limpadora 3 300,00 900,00

11122 10 Computador 1 1000,00 1000,00

22288 22 Refrigerador 4 2000,00 8000,00

Tabela Itens da Nota Fiscal

Page 86: 01 banco de dados-basico

� Após a aplicação da 1FN.

Tabela de Notas Fiscais{Num NF, Serie, Data, Codigo do Cliente, Nome do Cliente, Endereço, CNPJ, ...}do Cliente, Endereço, CNPJ, ...}

Tabela Itens da NF{Num NF, Cod Produto, descrição, quantidade, preço, etc...}

Page 87: 01 banco de dados-basico

� Um tabela está na segunda forma normal (2FN) se ela estiver na 1FN e todo atributo não-chave é plenamente dependente da chave primária.

� A resolução da aplicação da 2FN é realizada � A resolução da aplicação da 2FN é realizada através da exclusão dos atriutos que não dependem totalmente da chave primária, da tabela original, e constituindo-se com estes uma nova tabela, que terá como chave primária o atributo participante da chave primária da tabela origem.

Page 88: 01 banco de dados-basico

NF CodProd Descrição Quantidade

Valor Unitário

Valor Total

00002 44 Limpadora 3 300,00 900,00

11122 10 Computador 1 1000,00 1000,00

Tabela Itens da Nota Fiscal

11122 10 Computador 1 1000,00 1000,00

22288 22 Refrigerador 4 2000,00 8000,00

Page 89: 01 banco de dados-basico

CodProduto Descrição Valor Unitário

44 Limpadora 300,00

10 Computador 1000,00

22 Refrigerador 2000,00

Tabela de Produtos

NF CodProd Quantidade Valor Total

00002 44 3 900,00

11122 10 1 1000,00

22288 22 4 8000,00

Tabela Itens da Nota Fiscal

Page 90: 01 banco de dados-basico

� A terceira forma normal determina que não devem existir atributos com dependência funcional transitiva em uma tabela, pois podem provocar da mesma forma anomalias de inclusão, manutenção e deleção.

A aplicação da 3FN consiste em retirar das � A aplicação da 3FN consiste em retirar das estruturas os campos que são funcionalmente dependentes de outros campos que não são chaves.

� Podemos afirmar que uma estrutura está na 3FN se ela estiver na 2FN e não possuir campos dependentes de outros campos não chaves.

Page 91: 01 banco de dados-basico

NF CodCliente

NomeCliente

EndCliente

CNPJ Data Emissão

Total Geral NF

00002 1 Mauro Rio 000001 01/02/09 1000,00

11122 2 Cintia S.Paulo 000022 01/02/09 3000,00

22288 3 Jose Belém 000033 02/02/09 4000,00

88822 4 Manoel Marituba 000099 02/02/09 500,00

Tabela Notas Fiscais

88822 4 Manoel Marituba 000099 02/02/09 500,00

Page 92: 01 banco de dados-basico

CodCliente NomeCliente

End Cliente CNPJ

1 Mauro Rio 000001

2 Cintia S.Paulo 000022

3 Jose Belém 000033

4 Manoel Marituba 000099

Tabela Cliente

NF CodCliente Data Emissão

Total Geral NF

00002 1 01/02/09 1000,00

11122 2 01/02/09 3000,00

22288 3 02/02/09 4000,00

88822 4 02/02/09 500,00

Tabela Nota Fiscal

Page 93: 01 banco de dados-basico