• Nenhum resultado encontrado

Ementa da Disciplina:

N/A
N/A
Protected

Academic year: 2022

Share "Ementa da Disciplina:"

Copied!
82
0
0

Texto

(1)

Prof. Gustavo Cesar Lopes Geraldino

Análise e Desenvolvimento de Sistemas

Disc. Banco de Dados II

Apresentação

(2)

Gustavo Cesar Lopes Geraldino

- Graduado em Analise e Desenvolvimento Sistemas - ADS (2007);

- Especialista em Administração de Banco de Dados Oracle (2010);

- PARFOR/UEM (2012-2013);

Experiência Profissional:

- Professor do curso de ADS da Faculdade Integrado (2009-2010);

- Professor dos cursos TIS, TSRB, PF (2010);

- Coordenador do curso TIS, TII (2011);

Atualmente:

- Professor dos cursos de SI e CC da Faculdade Alvorada de Maringá.

- Professor de SI na FCV (Algoritmos I e BDII)

(3)

Ementa da Disciplina:

Estudar e implementar técnicas utilizadas

em Sistemas de Gerenciamento de Banco

de Dados, Estudar as tendências em Banco

de Dados.

(4)

Programa (conteúdo) da Disciplina:

1º BIMESTRE

Revisão de Conceitos de Banco de Dados;

Revisão de SQL Básico;

SQL Avançado:

◦ Visões e Visões Materializadas;

◦ Triggers;

◦ Stored Procedures;

(5)

Programa (conteúdo) da Disciplina:

2º BIMESTRE

Características de Sistemas de

Gerenciamento de Banco de Dados;

Administração de Banco de Dados:

◦ Otimização de Cunsulta;

◦ Tunning de Banco de Dados;

◦ Recuperação;

◦ Concorrência;

◦ Segurança;

Banco de Dados Objeto Relacional;

Banco de Dados Orientado Objetos;

(6)

Metodologia e Avaliação:

Metodologia:

Aula expositiva, com o uso de quadro branco e

datashow. Resolução de exercícios com estudo de caso.

Avaliação 1o. Bimestre:

Avaliação escrita individual – peso 7,0 Trabalhos em dupla (3,0)

2o. Bimestre:

Avaliação escrita individual (7,0) Trabalhos em grupo (3,0)

(7)

Referências Bibliográficas:

Básica

KORTH, H.; SILBERCHATZ, A.; SUDARSHAN, S. Sistemas de bancos de dados. Rio de Janeiro: Campus, 2006.

MACHADO, F. N. R. & ABREU, M. Projeto de bancos de dados. São Paulo: Érica, 2004.

GUIMARÃES, Célio C. Fundamentos de Banco de Dados. Campinas: Unicamp, 2003.

(8)

Referências Bibliográficas:

Complementar

ELMASRI, R.; NAVATHE, S. B. Sistemas de Banco de Dados. 4a edição. Editora Addison-Wesley,

2005.

GRAVES, Mark. Projeto de Banco de Dados com XML. São Paulo: Pearson Education, 2003.

(9)

Contrato Pedagógico:

Considerações Gerais

- Chegar/Sair no horário (19h10 e 21h | 21h15 e 22h45);

- Respeito Professor/Aluno, Aluno/Aluno e Aluno Professor;

- Fundamentação Teórica;

- Qualidade na realização das atividades (Trabalhos escritos, apresentações, discussões em sala ...)

- Trabalhos (boa parte) são realizados em sala de aula;

- Trabalhos em Equipe:

- Cópias “são zeradas” (fornecedor e consumidor);

- Entregas nos prazos definidos;

(10)

Contrato Pedagógico:

Sobre as Aulas e Durante as Aulas - Aulas Teóricas e Aulas Práticas;

- Participação Valorizada;

- Aulas Práticas com Exemplos Práticos (problematização);

- Discussão dos Conceitos;

- Participação;

- Sugestões, discussões e “críticas”;

- Comprometimento;

- Vontade de aprender!

(11)

Roteiro da Aula:

1º BIMESTRE

- Revisão de Conceitos de Banco de Dados;

- Modelagem de Dados (MER e DER)

(12)

Modelagem de Dados:

Modelagem de Dados em BD:

- Conceitual;

- Lógico;

- Físico;

(13)

Modelagem de Dados:

Modelagem de Dados em BD:

- Conceitual;

cliente possui conta

nome

bairro

rua numero saldo

* *

(14)

Modelagem de Dados:

Modelagem de Dados em BD:

- Conceitual;

Resumo:

Notação Peter Chen

(15)

Modelagem de Dados:

Modelagem de Dados em BD:

- Conceitual;

Resumo:

Cardinalidade

(16)

Modelagem de Dados:

Modelagem de Dados em BD:

- Conceitual;

Resumo:

Cardinalidade

cliente * possui * conta

banco 1 possui * conta

agencia gerente

geral

possui

1 1

(17)

Modelagem de Dados:

Modelagem de Dados em BD:

- Lógico;

codcli integer PK nome varchar(30) rua varchar(50) bairro varchar(50)

cliente

codconta integer PK num varchar(10) saldo number(12,2)

conta

codcli integer PK codconta integer PK

Cliente_conta

1 * *

1

(18)

Modelagem de Dados:

Modelagem de Dados em BD:

- Lógico;

codcli integer PK nome varchar(30) rua varchar(50) bairro varchar(50)

cliente

codconta integer PK num varchar(10) saldo number(12,2)

conta

codcli integer PK codconta integer PK

Cliente_conta

(19)

Modelagem de Dados:

Modelagem de Dados em BD:

- Lógico;

codcli integer PK nome varchar(30) rua varchar(50) bairro varchar(50)

cliente

codconta integer PK num varchar(10) saldo number(12,2)

conta

codcli integer PK codconta integer PK

cliente_conta

Entidade(s) Atributo(s) Cardinalidade

Relacionamento(s)

(20)

Modelagem de Dados:

Modelagem de Dados em BD:

- Físico;

CREATE TABLE cliente(

codcli integer not null primary key, nome varchar(30) not null,

rua varchar(50) not null,

bairro varchar(50) not null);

CREATE TABLE conta(

codconta integer not null primary key, num varchar(10) not null,

saldo numeric(12,2) not null);

CREATE TABLE cliente_conta(

codcli integer references (cliente), codconta integer references (conta), primary key (codcli, codconta));

(21)

Modelagem de Dados em BD:

cliente possui conta

nome

bairro

rua numero saldo

* *

Conceitual vs Lógico

codcli integer PK nome varchar(30) rua varchar(50) bairro varchar(50)

cliente

codconta integer PK num varchar(10) saldo number(12,2)

conta

codcli integer PK codconta integer PK

Cliente_conta

1 * *

1

(22)

Modelagem de Dados em BD:

Lógico vs Físico

codcli integer PK nome varchar(30) rua varchar(50) bairro varchar(50)

cliente

codconta integer PK num varchar(10) saldo number(12,2)

conta

codcli integer PK codconta integer PK

Cliente_conta

1 * *

1

CREATE TABLE cliente(

codcli integer not null primary key, nome varchar(30) not null,

rua varchar(50) not null, bairro varchar(50) not null);

CREATE TABLE conta(

codconta integer not null primary key, num varchar(10) not null,

saldo numeric(12,2) not null);

CREATE TABLE cliente_conta(

codcli integer references (cliente), codconta integer references (conta), primary key (codcli, codconta));

(23)

EXERCÍCIO

No bairro, inaugurou uma pequena locadora de vídeos que possui aproximadamente 3000 filmes, cujo empréstimo deve ser controlado.

- Cada filme possui um código e o título.

- Os clientes podem desejar encontrar os filmes estrelados pelo seu ator predileto. Por isso,

mantêm-se o nome do ator que estrela cada filme.

- Para cada cliente é necessário saber seu nome e telefone.

- O empréstimo de cada filme é realizado por um Funcionário que possui nome é matrícula.

- Um cliente pode ter locado vários filmes de uma só vez.

- A compra de novos filmes é realizada pelo funcionário junto ao fornecedor. Um fornecedor

Atende várias locadoras, mas a locadora só compra Desse fornecedor. O fornecedor possui CNPJ.

(24)

Construção do DER

Passo 1: identificar entidades Substantivos

Passo 2: identificar relacionamentos

Verbos que relacionam substantivos

Passo 3: identificar atributos Adjetivos ou substantivos

Passo 4: identificar cardinalidades

concordâncias de número

(25)

Modelagem de Dados - EXERCÍCIO:

- Conceitual;

Entidades:

filme cliente

funcionario fornecedor

(26)

Modelagem de Dados - EXERCÍCIO:

- Conceitual;

Relacionamentos:

filme

cliente

funcionario fornecedor

aluga

empresta vende

compra

(27)

Modelagem de Dados - EXERCÍCIO:

- Conceitual;

Atributos:

filme

cliente

funcionario fornecedor

aluga

empresta

vende

compra

titulo

codigo

nome telefone

nome matricula

cnpj ator

(28)

Modelagem de Dados - EXERCÍCIO:

- Conceitual;

Cardinalidade:

filme

cliente

funcionario fornecedor

aluga

empresta

vende

compra

nome telefone

nome matricula

cnpj

*

*

titulo

codigo

ator

1 1

*

*

* 1

(29)
(30)

Modelagem de Dados - Exemplos:

Dicionário de Dados:

(31)

Modelagem de Dados - Exemplos:

Projeto Físico:

(32)
(33)

CREATE TABLE nf (

cd_nf integer NOT NULL,

nr_nf character varying(15) NOT NULL,

nr_nfserie character varying(15) NOT NULL, cd_fornecedor integer NOT NULL,

vl_materialtotal numeric(7,2) NOT NULL, ds_obs character varying(200),

in_ativo boolean NOT NULL, cd_usuario integer NOT NULL,

in_delete boolean NOT NULL DEFAULT false,

CONSTRAINT pk_nf PRIMARY KEY (cd_nf, nr_nf, nr_nfserie), CONSTRAINT fk_nf_fornecedor FOREIGN KEY

(cd_fornecedor)

REFERENCES fornecedor (cd_fornecedor) MATCH SIMPLE ON UPDATE NO ACTION ON DELETE NO ACTION,

CONSTRAINT nf_cd_usuario_fkey FOREIGN KEY (cd_usuario) REFERENCES usuario (cd_usuario) MATCH SIMPLE

ON UPDATE NO ACTION ON DELETE NO ACTION );

(34)

Roteiro da Aula:

1º BIMESTRE

- Revisão de Conceitos de Banco de Dados;

- Álgebra Relacional;

(35)

Álgebra Relacional:

- Linguagem Formal de Consulta;

- Procedimental (instruções);

(36)

Categorias de linguagens de SBD:

- Formais:

- Álgebra Relacional e Cálculo Relacional - Comercial:

- SQL

Operações agem sobre tabelas/relações - Tabelas como entrada;

- Tabelas como saída;

Álgebra Relacional:

(37)

Operações agem sobre tabelas/relações - Tabelas como entrada;

- Tabelas como saída;

Álgebra Relacional:

codcli integer PK nome varchar(30) rua varchar(50) bairro varchar(50)

cliente

codped integer PK codcli integer FK desc varchar(30) data date

pedido

(38)

Álgebra Relacional:

Operações:

- Operadores de Conjuntos - União: ∪

- Intersecção: ∩ - Diferença: –

- Produto Cartesiano: x - Operadores Relacionais

- Seleção: σ - Projeção: ∏ - Atribuição:

- Renomeação

(39)

Álgebra Relacional:

DER – CONTROLE DE ESTOQUE

(40)
(41)

Fornecedor(Cod_Forn, Nome, Cidade, Estado) Produto(Cod_Prod, Nome, Qualidade)

Pedido(Cod_Forn, Cod_Prod, Cod_Ped, Qtde, Local) Estoque(Cod_Forn, Cod_Prod, Cod_Lote, Qtde,

Origem)

Álgebra Relacional:

ESQUEMA RELACIONAL

(42)

Álgebra Relacional:

Operações:

- Operadores Relacionais - Seleção: σ

Seleciona tuplas (linhas), exemplo:

SELECT * FROM FORNECEDOR WHERE Cidade = “Parnamirim”

(43)

Álgebra Relacional:

Operadores Relacionais - Seleção: σ

SELECT * FROM FORNECEDOR

WHERE Qtde > 100 and Local = “Mossoró”

SELECT * FROM FORNECEDOR WHERE Qtde <= 100

(44)

Operadores

Menor <, <=

Maior >, >=

Igual =

Diferente <> ( )

E AND ( ∧)

OU OR (∨)

NÃO NOT

Tipos Tipos Tipos Tipos

Numérico 100

Texto “Laranja”

Álgebra Relacional:

Operadores Relacionais - Seleção: σ

(45)

Álgebra Relacional:

Operadores Relacionais - Projeção: ∏ Seleciona colunas (atributos).

SELECT Nome FROM FORNECEDOR

SELECT Nome,Cidade FROM FORNECEDOR WHERE Estado = “RN”

(46)

Álgebra Relacional:

Operadores Relacionais - Projeção: ∏

Relação R:

A B C

α α β β

10 20 30 40

1 1 1 2

A C α

α β β

1 1 1 2

=

A C α

β β

1 1 2

A,C (R)

Projeção elimina tuplas repetidas

SQL: Usar a cláusula DISTINCT SELECT DISTINCT A,C FROM FORNECEDOR

(47)

Álgebra Relacional:

Operadores Relacionais - Atribuição:

Todas as operações relacionais retornam tabelas (relações).

Resultado

DECLARE

/* DECLARANDO O CURSOR */

CURSOR Resultado IS

SELECT * FROM Fornecedor

WHERE Cidade = “Parnamirim”;

(48)

Permite realizar consultas por etapas

- Operação Aninhada

- Operação em Seqüência (com variáveis)

Álgebra Relacional:

Operadores Relacionais - Atribuição:

DECLARE

/* DECLARANDO O CURSOR */

CURSOR RESULT IS

SELECT PNOME, SNOME, SALARIO FROM DEP5_EMPS;

(49)

- Altera o nome de uma relação e/ou dos seus campos.

- Permite aplicar operações binárias sobre a mesma relação.

Álgebra Relacional:

Operadores Relacionais – Renomeação

SELECT Pnome AS Primeiro_Nome, Snome AS SobreNome, Salario FROM DEP5_EMPS;

(50)

Exemplo

Produto(Cod_Prod, Nome, Qualidade)

ProdutoLaranja Produto

∏ nome, qualidade ( σ

Produto.qualidade >

ProdutoLaranja.qualidade

AND ProdutoLaranja.nome = “Laranja”

(Produto x ProdutoLaranja) )

Álgebra Relacional:

Operadores Relacionais – Renomeação

(51)

- Requer: mesmo esquema nas relações argumento.

- Resulta: união dos conjuntos de linhas.

Álgebra Relacional:

Operadores de Conjuntos - União: ∪

SELECT DISTINCT Cod_Forn.Estoque, Cod_Forn.Pedido FROM Estoque, Pedido;

(52)

- Relações R, S:

- R ∪ S:

A B α

α β

1 2 1

A B

α β

2 3

R

S A B

α α β β

1 2 1 3

Álgebra Relacional:

Operadores de Conjuntos - União: ∪

(53)

53

- Requer: mesmo esquema nas relações argumento.

- Resulta: conjunto de linhas comuns nas relações.

Álgebra Relacional:

Operadores de Conjuntos - Intersecção: ∩

SELECT DISTINCT

Cod_Forn FROM Estoque, Pedido WHERE

Cod_Forn.Estoque = Cod_Forn.Pedido;

(54)

Relações R, S:

R ∩ S

A B α

α β

1 2 1

A B α

β

2 3

R S

A B α 2

Álgebra Relacional:

Operadores de Conjuntos - Intersecção: ∩

(55)

- Requer: mesmo esquema nas relações argumento.

- Resulta: conjunto de linhas da primeira relação exceto as linhas existentes na segunda.

Álgebra Relacional:

Operadores de Conjuntos - Diferença: -

SELECT DISTINCT

Cod_Forn.Pedido FROM Estoque, Pedido WHERE Cod_Forn.Pedido <>

Cod_Forn.Pedido;

(56)

Álgebra Relacional:

Operadores de Conjuntos - Diferença: -

Relações R, S:

R – S:

A B α

α β

1 2 1

A B

α β

2 3

R

S

A B

α β

1 1

(57)

Álgebra Relacional:

Operadores de Conjuntos – Produto Cartesiano: X

Retorna todas as combinações de tuplas de duas ou mais relações.

A B α

β

1 2

A B α

α α α β β β β

1 1 1 1 2 2 2 2

A C α

β β

γ α β β γ

10 10 20 10 10 10 20 10

D a a b b a a b b A C

α β β γ

10 10 20 10

D a a b R b

S Relações R, S:

R x S:

SELECT * FROM R,S;

(58)

- A combinações geram tuplas inválidas.

É preciso comparar as chaves para garantir que a tupla é válida.

- Exemplo: σσσσA=C(R x S)

A B α

α α α β β β β

1 1 1 1 2 2 2 2

A C α

β β γ α β β γ

10 10 20 10 10 10 20 10

D a a b b a a b b

A B A C D

α β β

1 2 2

α β β

10 10 20

a a b

R x S

A B α

β

1 2 A C α

β β γ

10 10 20 10

D a a b b

R

S σσσσR.A=S.A(R x S)

Álgebra Relacional:

Operadores de Conjuntos – Produto Cartesiano: X

(59)

59

Produto(Cod_Prod, Nome, Qualidade) Estoque(Cod_Forn, Cod_Prod,

Cod_Lote, Qtde, Origem)

Álgebra Relacional:

Operadores de Conjuntos – Produto Cartesiano: X

SELECT Produto.Nome, Produto.Qualidade,

Estoque.Qtde FROM Produto, Estoque

WHERE Produto.Cod_Prod

= Estoque.Cod_Prod;

(60)

Ambulatórios(número, andar, capacidade)

Médicos(CRM, RG, nome, idade, cidade, especialidade, número)

Pacientes(pacRG, nome, idade, cidade, doença) Consultas(CRM, pacRG, data, hora)

Funcionários(RG, nome, idade, cidade, salário)

Álgebra Relacional:

Exercícios:

(61)

1) buscar os dados dos pacientes que estão com sarampo

2) buscar os dados dos médicos ortopedistas com mais de 55 anos

3) buscar os dados de todas as consultas, exceto aquelas marcadas para médicos com CRM 46 e 79 4) buscar os dados dos ambulatórios do quarto andar

que tenham capacidade igual a 50 OU do quarto andar que tenham número superior a 10

Álgebra Relacional:

Exercícios (Seleção):

(62)

1) buscar os dados dos pacientes que estão com sarampo

σ σ σ

σ doença = “sarampo” (Pacientes)

2) buscar os dados dos médicos ortopedistas com mais de 55 anos

σ σ σ

σ especialidade = “ortopedista” AND idade > 55 (Medicos)

3) buscar os dados de todas as consultas, exceto aquelas marcadas para médicos com CRM 46 e 79 σ

σ σ

σ crm <> 46 AND crm <> 79 (Consultas)

4) buscar os dados dos ambulatórios do quarto andar que tenham capacidade igual a 50 OU do quarto andar que tenham número superior a 10

σσ

σσ (capacidade = 50 AND andar = 4) OR (numero >

10 AND andar = 4) (Ambulatórios)

Álgebra Relacional:

Exercícios (Seleção): RESPOSTAS

(63)

5) buscar o nome e a especialidade de todos os médicos.

6) buscar o número dos ambulatórios do terceiro andar.

7) buscar o CRM dos médicos e as datas das

consultas para os pacientes com RG 122 e 725.

8) buscar os números dos ambulatórios que

suportam mais de 50 pacientes, exceto aqueles do segundo e quarto andares.

Álgebra Relacional:

Exercícios (Projeção):

(64)

5) buscar o nome e a especialidade de todos os médicos.

nome, especialidade (Medicos)

6) buscar o número dos ambulatórios do terceiro andar.

numero (σσσσ Andar = 3 (Ambulatorios))

7) buscar o CRM dos médicos e as datas das

consultas para os pacientes com RG 122 e 725.

crm, data (σσσσ pacRG = 122 OR pacRG = 725 (Consultas))

8) buscar os números dos ambulatórios que

suportam mais de 50 pacientes, exceto aqueles do segundo e quarto andares.

numero (σσσσ capacidade > 50 AND and <> 2 AND andar <> 4(Ambulatorios))

Álgebra Relacional:

Exercícios (Projeção): RESPOSTAS

(65)

9) buscar o nome dos médicos que têm consulta marcada e as datas das suas consultas

10) buscar o número e a capacidade dos

ambulatórios do quinto andar e o nome dos médicos que atendem neles

11) buscar o nome dos médicos e o nome dos seus pacientes com consulta marcada, assim como a

data destas consultas

12) buscar os nomes dos médicos ortopedistas com consultas marcadas para o período da manhã (7hs- 12hs) do dia 15/04/03

Álgebra Relacional:

Exercícios (Cartesiano):

(66)

9) buscar o nome dos médicos que têm consulta marcada e as datas das suas consultas

Medicos.nome, Consultas.data (σσσσ Medicos.crm = Consultas.crm (Medicos x Consultas))

10) buscar o número e a capacidade dos

ambulatórios do quinto andar e o nome dos médicos que atendem neles

Ambulatorios.numero, Ambulatorios.capacidade, Medicos.nome (σσσσ Ambulatorios.andar = 5 (σσσσ

Medicos.numero = Ambulatorios.numero (Medicos x Ambulatorios)))

11) buscar o nome dos médicos e o nome dos seus pacientes com consulta marcada, assim como a

data destas consultas

Medicos.nome, Pacientes.nome, Consultas.data σσσ Medicos.crm = Consultas.crm AND

Pacientes.pacRG = Consultas.pacRG (Medicos x Consultas x Pacientes))

Exercícios (Cartesiano): RESPOSTA

(67)

12) buscar os nomes dos médicos ortopedistas com consultas marcadas para o período da manhã (7hs- 12hs) do dia 15/04/03

∏ ∏

∏ ∏ Medicos.nome (

σ σ σ

σ

Medicos.especialidade = “ortopedista”

AND

Consultas.hora >= 7 AND Consultas.hora <= 12 AND

Consultas.data = 15/04/03 (

σ σ σ

σ

Medicos.crm = Consultas.crm ( Medicos x Consultas

) )

)

Exercícios (Cartesiano): RESPOSTA

Álgebra Relacional:

(68)

68

13) buscar os nomes e RGs dos médicos e pacientes cadastrados no hospital

14) buscar os nomes, RGs e idades dos médicos, pacientes e funcionários que residem em

Florianópolis

15) buscar os números dos ambulatórios onde nenhum médico dá atendimento

16) buscar os nomes e RGs dos funcionários que estão internados como pacientes

Álgebra Relacional:

Exercícios (União, Intersecção, Diferença):

(69)

13) buscar os nomes e RGs dos médicos e pacientes cadastrados no hospital

(∏ nome, RG (Medicos)) ∪ (∏ nome, pacRG (Pacientes))

14) buscar os nomes, RGs e idades dos médicos, pacientes e funcionários que residem em

Florianópolis

(∏∏∏∏ nome, RG, idade (

σ σ σ σ

cidade =

“Florianópolis”(Medicos))) ∪∪∪∪ (∏∏∏∏ nome, RG, idade (

σ σ σ σ

cidade =

“Florianópolis”(Pacientes))) ∪∪∪∪ (∏∏∏∏ nome, RG, idade (

σ σ σ σ

cidade =

“Florianópolis”(Funcionários)))

Álgebra Relacional:

Exercícios (União, Intersecção, Diferença):

RESPOSTA

(70)

15) buscar os números dos ambulatórios onde nenhum médico dá atendimento

∏ numero (Ambulatorios) - ∏∏∏∏ numero (Medicos) 16) buscar os nomes e RGs dos funcionários que

estão internados como pacientes

(∏∏∏∏ nome, RG (Funcionarios)) ∩∩∩∩ (∏∏∏∏ nome, pacRG (Pacientes))

Álgebra Relacional:

Exercícios (União, Intersecção, Diferença):

RESPOSTA

(71)

Roteiro da Aula:

1º BIMESTRE

- Revisão de Conceitos de Banco de Dados;

- Normalização em Banco de Dados;

(72)

É elaborado em torno do conceito de Formas Normais.

“Dizemos que uma variável de relação está em uma determinada forma normal se ela satisfaz a certo

conjunto prescrito de condições.” (DATE, 2000,p.306)

“São etapas que se seguem no projeto de um BD, que permitem um armazenamento consistente e um eficiente acesso aos dados em bancos de dados

relacionais.” Wikipedia

Cada passo, etapa das formas normais contribuem para reduzir: redundância de dados e as possíveis inconsistências de dados.

Normalização de Dados:

(73)

É elaborado em torno do conceito de Formas Normais.

Normalização de Dados:

1FN

2FN

3FN

FNBC

4FN 5FN

(74)

Objetivo: é o de organizar as relações (tabelas) de forma que a sua estrutura

fique simples e relacional. Identificação de erros.

Consequência: Gerenciamento simples, eficiente e seguro, evitando a perda e a

repetição da informação. Também alcança- se uma forma de representação mais

adequada para o armazenar no BD.

Normalização de Dados:

(75)

Normalização de Dados:

nr_pedido Dt_pedido nr_peca ds_peca qt_pedido preco

1401 03/03/12 AAA01 Rolamento 2 50.00

1402 05/03/12 BBB01 Braçadeira 4 25.00

1404 13/03/12 CCC01 Tampa 8 5.00

1405 03/04/12 DDD01 Junção 15 30.00

1406 23/04/12 AAA01 Rolamento 3 75.00

1407 06/05/12 DDD02 Junção 7 13.00

1408 15/05/12 CCC02 Tampa 9 45.00

1410 30/06/12 AAA01 Rolamento 3 100.00 1415 17/07/12 BBB02 Braçadeira 6 32.00

Problema – Relação de uma Loja de Peças

- Atualização: a peça AAA01 requer várias atualizações;

- Inconsistência: a peça AAA01 pode ter várias descrições diferentes;

(76)

Normalização de Dados:

nr_pedido dt_pedido nr_peca ds_peca qt_pedido preco

1401 03/03/12 AAA01 Rolamento 2 50.00

1402 05/03/12 BBB01 Braçadeira 4 25.00

1404 13/03/12 CCC01 Tampa 8 5.00

1405 03/04/12 DDD01 Junção 15 30.00

1406 23/04/12 AAA01 Rolamento 3 75.00

1407 06/05/12 DDD02 Junção 7 13.00

1408 15/05/12 CCC02 Tampa 9 45.00

1410 30/06/12 AAA01 Rolamento 3 100.00 1415 17/07/12 BBB02 Braçadeira 6 32.00

Problema – Relação de uma Loja de Peças

pedido (nr_pedido, nr_peca, dt_pedido, qt_pedido) Peca (nr_peca, ds_peca, preco)

1FN

(77)

Normalização de Dados:

É elaborado em torno do conceito de Formas Normais.

FN Conceito básico

1FN - todos os atributos devem ser atômicos;

- eliminação de repetição de grupos;

- chave primária;

- dados repetidos para outra tabela;

- relação entre tabela principal e secundária;

2FN - esteja na 1FN;

- dependência Funcional: todos os atributos não-chave dependam apenas da chave-primária de sua relação;

3FN - esteja na 2FN;

- todos os atributos não-chave não tenham dependência funcional entre si, dependendo único e exclusivamente da chave-primária irredutivelmente;

(78)

Normalização de Dados:

1ª Forma Normal (1FN) Atributo deve ser atômico

http://www.blogdati.com.br/index.php/2010/03/normalizacao-em-banco-de-dados/

(79)

Normalização de Dados:

2ª Forma Normal (2FN)

Funcionalmente não depende da chave-primária (todos devem depender da PK)

PK

http://www.blogdati.com.br/index.php/2010/03/normalizacao-em-banco-de-dados/

(80)

Normalização de Dados:

3ª Forma Normal (3FN)

todos os atributos não-chave não tenham dependência funcional entre si, somente da PK

http://www.blogdati.com.br/index.php/2010/03/normalizacao-em-banco-de-dados/

(81)

Normalização de Dados:

EXERCÍCIOS:

crm nm_fun rg_pac nm_pac data hora espec 0001 André 11111111 João 25/03/12 15:00 cardio 0002 Paula 22222222 Maria 14/06/12 17:00 otorino 0003 André 11111111 João 30/07/12 20:00 oncolo 0004 André 33333333 José 02/08/12 14:00 gastro 0005 Paula 11111111 João 27/09/12 17:00 dermato

(82)

Normalização de Dados:

EXERCÍCIOS: RESPOSTA

crm espec 0001 cardio 0002 otorino 0003 oncolo 0004 gastro 0005 dermato

matri. nm_fun 001-12 André 002-10 Paula rg_pac nm_pac

11111111 João 22222222 Maria 33333333 José

codcon crm matri. rg_pac data hora 4057 0001 André 11111111 25/03/12 15:00 4095 0002 Paula 22222222 14/06/12 17:00 4003 0003 André 11111111 30/07/12 20:00 4005 0004 André 33333333 02/08/12 14:00 4010 0005 Paula 11111111 27/09/12 17:00

Referências

Documentos relacionados

Consumo dos créditos ativos de acordo com as tarifas do plano do Cliente (aquisições e ativações de créditos Oi Multiuso efetuadas). 7.5 O Cliente poderá, a qualquer

INTEGER COUNT, DATATYPE, DEST, IERROR INTEGER SENDTAG, SOURCE, RECVTAG, COMM

De modo que, as transformações no mundo do trabalho, cujas transformações caracterizam-se pela precarização do processo de trabalho e o desmonte das conquistas políticas e sociais da

Este trabalho apresenta os resultados de tratamento com radiocirurgia estereotáxica (RCE) em 12 pacientes portadores de malformação arteriovenosa cerebral (MAV), com o uso de

=eterminada pessoa &gt;urídica ?@A pertencente a um grupo de empresas ?BA ce!ebra contrato de m4tuo com outras empresas desse mesmo grupo com a ina!idade de obter din9eiro

Neste novo modelo institucional do setor elétrico foram criados novos agentes, entre eles a Empresa de Pesquisa Energética – EPE, que tem entre uma de suas atribuições, a tarefa

A ITAÚSA e suas controladas avaliam na data de cada período do relatório a necessidade de reconhecimento de perdas por impairment, para todos os ativos financeiros mensurados ao

Cód Descrição Qtd Prod Qtd.. 1 189