Você está na página 1de 43
Técnica de design de banco de dados que organiza as tabelas de uma maneira que

Técnica de design de banco de dados que organiza as tabelas de uma maneira que reduz a redundância dos dados

Evita anomalias:

Inserção (Insert)

Remoção (Delete)

Modificação (Update)

a redundância dos dados Evita anomalias: ▪ Inserção (Insert) ▪ Remoção (Delete) ▪ Modificação (Update)
CPF NomeEmp DataNasc NumDepto NomeDepto GerDepto 1111 João 10/10/80 1 RH AAAA 2222

CPF

NomeEmp

DataNasc

NumDepto

NomeDepto

GerDepto

1111

João

10/10/80

1

RH

AAAA

2222

Miguel

23/10/83

1

RH

AAAA

3333

Natália

14/09/20

2

TI

CCCC

Quantas entidades existem na tabela ?

23/10/83 1 RH AAAA 3333 Natália 14/09/20 2 TI CCCC ▪ Quantas entidades existem na tabela
CPF NomeEmp DataNasc NumDepto NomeDepto GerDepto 1111 João 10/10/80 1 RH AAAA 2222

CPF

NomeEmp

DataNasc

NumDepto

NomeDepto

GerDepto

1111

João

10/10/80

1

RH

AAAA

2222

Miguel

23/10/83

1

RH

AAAA

3333

Natália

14/09/20

2

TI

CCCC

4444

Murilo

01/01/95

1

RH
RH

AAAA

 
AAAA 3333 Natália 14/09/20 2 TI CCCC 4444 Murilo 01/01/95 1 RH AAAA  
CPF NomeEmp DataNasc NumDepto NomeDepto GerDepto 1111 João 10/10/80 1 RH AAAA 2222

CPF

NomeEmp

DataNasc

NumDepto

NomeDepto

GerDepto

1111

João

10/10/80

1

RH

AAAA

2222

Miguel

23/10/83

1

RH

AAAA

3333

Natália

14/09/20

2

TI

CCCC

4444

Murilo

01/01/95

1

RH
RH

AAAA

 

Anomalia de Inserção:

Inserir empregado requer repetir dados de departamento

1 RH AAAA   ▪ Anomalia de Inserção: ▪ Inserir empregado requer repetir dados de departamento
CPF NomeEmp DataNasc NumDepto NomeDepto GerDepto 1111 João 10/10/80 1 RH AAAA 2222

CPF

NomeEmp

DataNasc

NumDepto

NomeDepto

GerDepto

1111

João

10/10/80

1

RH

AAAA

2222

Miguel

23/10/83

1

RH

AAAA

3333

Natália

14/09/20

2

TI

CCCC

Excluir um empregado pode implicar em excluir também o departamento

3333 Natália 14/09/20 2 TI CCCC ▪ Excluir um empregado pode implicar em excluir também o
CPF NomeEmp DataNasc NumDepto NomeDepto GerDepto 1111 João 10/10/80 1 RH AAAA 2222

CPF

NomeEmp

DataNasc

NumDepto

NomeDepto

GerDepto

1111

João

10/10/80

1

RH

AAAA

2222

Miguel

23/10/83

1

RH

AAAA

3333

Natália

14/09/20

2

TI

CCCC

Mudar o gerente ou nome do departamento requer modificar muitas linhas

Natália 14/09/20 2 TI CCCC ▪ Mudar o gerente ou nome do departamento requer modificar muitas
▪ Anomalia de inserção: quando fatos independentes não podem ser inseridos independentemente na base de

Anomalia de inserção: quando fatos independentes não podem ser inseridos independentemente na base de dados.

Anomalia de remoção/exclusão/eliminação: quando se elimina uma instância de um fato, perde-se instâncias de

outros fatos independentes.

Anomalia de modificação/atualização: quando a atualização de um fato implica a alteração de uma série de instâncias de outros fatos independentes.

quando a atualização de um fato implica a alteração de uma série de instâncias de outros
f(x) = y X ->Y
f(x) = y X ->Y
f(x) = y X ->Y

f(x) = y

X ->Y

f(x) = y X ->Y
f(CPF) = NOME CPF -> NOME
f(CPF) = NOME CPF -> NOME

f(CPF) = NOME

CPF -> NOME

f(CPF) = NOME CPF -> NOME
X -> Y ▪ X determina Y ▪ Y depende funcionalmente de X ▪ X

X -> Y

X determina Y Y depende funcionalmente de X X é o determinante Y é o dependente

X -> Y ▪ X determina Y ▪ Y depende funcionalmente de X ▪ X é
CPF Nome 1111 João 2222 Maria 3333 José 4444 Maria 5555 Maria CPF -> NOME

CPF

Nome

1111

João

2222

Maria

3333

José

4444

Maria

5555

Maria

CPF -> NOME

CPF Nome 1111 João 2222 Maria 3333 José 4444 Maria 5555 Maria CPF -> NOME
▪ A DF deve ser explicitamente definida por alguém que conheça a semântica dos atributos

A DF deve ser explicitamente definida por alguém que conheça a semântica dos atributos de uma relação Só podemos confirmar que uma dependência não existe

que conheça a semântica dos atributos de uma relação ▪ Só podemos confirmar que uma dependência
▪ CPF -> nome ▪ CPF -> nome, endereço ▪ CPF, Mês -> Salario-Funcionário ▪

CPF -> nome CPF -> nome, endereço CPF, Mês -> Salario-Funcionário

X1, X2,

Xm -> Y1,Y2,

,Yn

-> nome ▪ CPF -> nome, endereço ▪ CPF, Mês -> Salario-Funcionário ▪ X1, X2, Xm
Um chave é determina funcionalmente todos os demais atributos da tabela (relação) => Os valores

Um

chave

é

determina

funcionalmente

todos

os

demais atributos da tabela (relação)

=> Os valores de uma chave são únicos

é determina funcionalmente todos os demais atributos da tabela (relação) => Os valores de uma chave
Se e somente se o lado esquerdo. direito é um subconjunto do lado X,Y ->

Se e somente se o lado esquerdo.

direito é um subconjunto do lado

X,Y -> Y

Se e somente se o lado esquerdo. direito é um subconjunto do lado X,Y -> Y
Se X -> Y e Y -> Z então X -> Z
Se X -> Y e Y -> Z então X -> Z

Se X -> Y e Y -> Z então X -> Z

Se X -> Y e Y -> Z então X -> Z

(FGV/2015/DPE) Observe a instância de uma tabela

relacional R, mostrada a seguir. A dependência funcional que certamente NÃO pode ser depreendida dessa instância

é:

certamente NÃO pode ser depreendida dessa instância é: a) A1 -> A2 b) A1,A2 -> A2

a) A1 -> A2
b) A1,A2 -> A2
c) A2 -> A3

d) A1 -> A3

e) A3 -> A2

(FGV/2015/DPE) Observe a instância de uma tabela

relacional R, mostrada a seguir. A dependência funcional que certamente NÃO pode ser depreendida dessa instância

é:

certamente NÃO pode ser depreendida dessa instância é: a) A1 -> A2 b) A1,A2 -> A2

a) A1 -> A2
b) A1,A2 -> A2
c) A2 -> A3

d) A1 -> A3

e) A3 -> A2

▪ Deve possuir apenas valores atômicos e monovalorados ▪ Não deve ser composto ▪ Não

Deve possuir apenas valores atômicos e monovalorados

Não deve ser composto

Não possui atributos multivalorados

Não possui relações aninhadas (uma tabela dentro da outra) Não possui colunas/grupos repetidas

Conceitualmente é o mesmo atributo

aninhadas (uma tabela dentro da outra) ▪ Não possui colunas/grupos repetidas ▪ Conceitualmente é o mesmo
Não respeita 1FN possui atributo composto CPF Nome Dnasc Endereço     1111 Maria 16/01/80
Não respeita 1FN possui atributo composto CPF Nome Dnasc Endereço     1111 Maria 16/01/80

Não respeita 1FN possui atributo composto

CPF

Nome

Dnasc

Endereço

   

1111

Maria

16/01/80

Rua Alvorada, Centro, Salvador

 

3333

Bruna

14/02/97

Rua Sabino, Pituba, Jacobina

 

CPF

Nome

Dnasc

 

CPF

Rua

Bairro

Cidade

1111

Maria

16/01/80

1111

Alvorada

Centro

Salvador

3333

Bruna

14/02/97

3333

Bruna

Pituba

Jacobina

Respeita 1FN

1111 Alvorada Centro Salvador 3333 Bruna 14/02/97 3333 Bruna Pituba Jacobina Respeita 1FN
CPF Nome Dnasc Endereço     1111 Maria 16/01/80 Rua Alvorada, Centro, Salvador  
CPF Nome Dnasc Endereço     1111 Maria 16/01/80 Rua Alvorada, Centro, Salvador  

CPF

Nome

Dnasc

Endereço

   

1111

Maria

16/01/80

Rua Alvorada, Centro, Salvador

 

3333

Bruna

14/02/97

Rua Sabino, Pituba, Jacobina

 

CPF

Nome

Dnasc

 

CPF

Rua

Bairro

Cidade

1111

Maria

16/01/80

1111

Alvorada

Centro

Salvador

3333

Bruna

14/02/97

3333

Bruna

Pituba

Jacobina

16/01/80 1111 Alvorada Centro Salvador 3333 Bruna 14/02/97 3333 Bruna Pituba Jacobina
Não respeita 1FN possui atributo multivalorado CPF Nome Dnasc Telefone   1111 Maria 16/01/80
Não respeita 1FN possui atributo multivalorado CPF Nome Dnasc Telefone   1111 Maria 16/01/80

Não respeita 1FN possui atributo multivalorado

CPF

Nome

Dnasc

Telefone

 

1111

Maria

16/01/80

32403689, 71983487451

3333

Bruna

14/02/97

32569841, 61984594123, 20206263

CPF

Nome

Dnasc

 

CPF

Telefone

1111

Maria

16/01/80

1111

32403689

3333

Bruna

14/02/97

1111

71983487451

 

3333

32569841

Respeita 1FN

 

3333

61984594123

3333

20206263

1111 71983487451   3333 32569841 Respeita 1FN   3333 61984594123 3333 20206263
Não respeita 1FN possui grupo repetido CPF Nome Dnasc Telefone01 Telefone02 Telefone03 1111 Maria
Não respeita 1FN possui grupo repetido CPF Nome Dnasc Telefone01 Telefone02 Telefone03 1111 Maria

Não respeita 1FN possui grupo repetido

CPF

Nome

Dnasc

Telefone01

Telefone02

Telefone03

1111

Maria

16/01/80

32403689

71983487451

 

3333

Bruna

14/02/97

32569841

61984594123

20206263

 

CPF

Telefone

CPF

 

Nome

Dnasc

 

1111

32403689

1111

 

Maria

16/01/80

1111

71983487451

3333

 

Bruna

14/02/97

3333

32569841

 
 

Respeita 1FN

 

3333

61984594123

3333

20206263

Bruna 14/02/97 3333 32569841     Respeita 1FN   3333 61984594123 3333 20206263

(FCC - Ana TI (SANASA)/DBA Banco de Dados/2019) Considere que exista a tabela denominada TabEstTratamento de um banco de dados relacional funcionando em condições ideais:

banco de dados relacional funcionando em condições ideais: Essa tabela a) está na 1FN, mas viola

Essa tabela

a) está na 1FN, mas viola as regras da 2FN.

b) está na 2FN, mas viola as regras da 3FN.

c) está na 3FN.

d) não está na 2FN, mas atende as regras da 3FN.

e) não está na 1FN.

2FN, mas viola as regras da 3FN. c) está na 3FN. d) não está na 2FN,

(FCC - Ana TI (SANASA)/DBA Banco de Dados/2019) Considere que exista a tabela denominada TabEstTratamento de um banco de dados relacional funcionando em condições ideais:

banco de dados relacional funcionando em condições ideais: Essa tabela a) está na 1FN, mas viola

Essa tabela

a) está na 1FN, mas viola as regras da 2FN.

b) está na 2FN, mas viola as regras da 3FN.

c) está na 3FN.

d) não está na 2FN, mas atende as regras da 3FN.

e) não está na 1FN.

2FN, mas viola as regras da 3FN. c) está na 3FN. d) não está na 2FN,
▪ Deve estar na 1FN ▪ Os atributos dependem de toda a chave ▪ Há

Deve estar na 1FN

Os atributos dependem de toda a chave

Há dependência total

Não há dependência parcial

Se chave possui apenas um campo, a análise não é necessária

Cuidado:

A chave não precisa determinar todos os atributos!

Foco da análise: a chave

não é necessária ▪ Cuidado: ▪ A chave não precisa determinar todos os atributos! ▪ Foco
▪ Quando uma coluna/atributo/campo depende apenas de uma parte de uma chave primária composta ▪

Quando uma coluna/atributo/campo depende apenas de uma parte de uma chave primária composta

Só faz sentido se a chave for composta

CPF

Nome

Dnasc

Estado Civil

1111

Maria

16/01/80

Solteiro

3333

Bruna

14/02/97

Casado

CPF Nome Dnasc Estado Civil 1111 Maria 16/01/80 Solteiro 3333 Bruna 14/02/97 Casado
CPF Nome Dnasc EstadoCivil 1111 Maria 16/01/80 Solteiro 3333 Bruna 14/02/97 Casado
CPF Nome Dnasc EstadoCivil 1111 Maria 16/01/80 Solteiro 3333 Bruna 14/02/97 Casado

CPF

Nome

Dnasc

EstadoCivil

1111

Maria

16/01/80

Solteiro

3333

Bruna

14/02/97

Casado

CodProJ

NomeProj

LocalProJ

123

SISRH

Sede

456

REFINARIA-XP

Regional-AM

14/02/97 Casado CodProJ NomeProj LocalProJ 123 SISRH Sede 456 REFINARIA-XP Regional-AM
CPF CodProJ Horas NomeEmp NomeProJ LocalProJ 1111 123 100 Maria SISRH Sede 3333
CPF CodProJ Horas NomeEmp NomeProJ LocalProJ 1111 123 100 Maria SISRH Sede 3333

CPF

CodProJ

Horas

NomeEmp

NomeProJ

LocalProJ

1111

123

100

Maria

SISRH

Sede

3333

456

200

Bruna

REFINARIA-XP

Regional-AM

CPF

CodProJ

Horas

CPF

NomeEmp

1111

123

100

1111

Maria

3333

456

200

3333

Bruna

CodProJ

NomeProJ

LocalProJ

123

SISRH

Sede

456

REFINARIA-

Regional-AM

XP

200 3333 Bruna CodProJ NomeProJ LocalProJ 123 SISRH Sede 456 REFINARIA- Regional-AM XP
CPF CodProJ Horas NomeEmp NomeProJ LocalProJ 1111 123 100 Maria SISRH Sede 3333
CPF CodProJ Horas NomeEmp NomeProJ LocalProJ 1111 123 100 Maria SISRH Sede 3333

CPF

CodProJ

Horas

NomeEmp

NomeProJ

LocalProJ

1111

123

100

Maria

SISRH

Sede

3333

456

200

Bruna

REFINARIA-XP

Regional-AM

CPF -> NomeEmp, CodProJ

100 Maria SISRH Sede 3333 456 200 Bruna REFINARIA-XP Regional-AM CPF -> NomeEmp, CodProJ

(FCC/TRF/Analista Judiciario/2014) Uma tabela encontra-se na

segunda forma normal (2FN), quando, além de estar na primeira forma

normal (1FN)

A)

não contém dependências parciais de colunas não chave em relação à chave primária.

B)

não contém chave primária composta de mais de uma coluna.

C)

não contém dependência completa de colunas não chave em relação à chave primária.

D)

contém chave estrangeira composta de mais de uma coluna.

E)

contém tabelas aninhadas.

chave primária. D) contém chave estrangeira composta de mais de uma coluna. E) contém tabelas aninhadas.

(FCC/TRF/Analista Judiciario/2014) Uma tabela encontra-se na

segunda forma normal (2FN), quando, além de estar na primeira forma

normal (1FN)

A) não contém dependências parciais de colunas não chave em relação à chave primária.

B)

não contém chave primária composta de mais de uma coluna.

C)

não contém dependência completa de colunas não chave em relação à chave primária.

D)

contém chave estrangeira composta de mais de uma coluna.

E)

contém tabelas aninhadas.

chave primária. D) contém chave estrangeira composta de mais de uma coluna. E) contém tabelas aninhadas.
▪ Deve estar na 2FN (logo também está na 1FN) ▪ Não há dependência transitiva

Deve estar na 2FN (logo também está na 1FN)

Não há dependência transitiva

 

X -> Y e Y ->Z

X -> Y e Y ->Z

, X ->Z

X é chave Y, Z atributos (não chave)

 

Os atributos dependem diretamente da chave

Cuidado!

Atributos podem determinar outros atributos, mas não podem prover a dependência transitiva

▪ Cuidado! ▪ Atributos podem determinar outros atributos, mas não podem prover a dependência transitiva
CPF NomeEmp Dnasc EstadoCivil CodProJ NomeProJ LocalProJ 1111 Maria 16/01/80 Solteiro
CPF NomeEmp Dnasc EstadoCivil CodProJ NomeProJ LocalProJ 1111 Maria 16/01/80 Solteiro

CPF

NomeEmp

Dnasc

EstadoCivil

CodProJ

NomeProJ

LocalProJ

1111

Maria

16/01/80

Solteiro

123

SISRH

Sede

3333

Bruna

14/02/97

Casado

456

REFINARIA-XP

Regional-AM

CPF -> NomeEmp, Dnasc, EstadoCivil, CodProJ CodProJ -> NomeProJ, LocalProJ

CPF

NomeEmp

Dnasc

EstadoCivil

CodProJ

CodProJ

NomeProJ

LocalProJ

1111

Maria

16/01/80

Solteiro

123

123

SISRH

Sede

3333

Bruna

14/02/97

Casado

456

456

REFINARIA-XP

Regional-AM

123 123 SISRH Sede 3333 Bruna 14/02/97 Casado 456 456 REFINARIA-XP Regional-AM
CPF NomeEmp Dnasc EstadoCivil CodProJ NomeProJ LocalProJ 1111 Maria 16/01/80 Solteiro
CPF NomeEmp Dnasc EstadoCivil CodProJ NomeProJ LocalProJ 1111 Maria 16/01/80 Solteiro

CPF

NomeEmp

Dnasc

EstadoCivil

CodProJ

NomeProJ

LocalProJ

1111

Maria

16/01/80

Solteiro

123

SISRH

Sede

3333

Bruna

14/02/97

Casado

456

REFINARIA-XP

Regional-AM

CPF -> NomeEmp, Dnasc, EstadoCivil, CodProJ CodProJ -> NomeProJ, LocalProJ

456 REFINARIA-XP Regional-AM CPF -> NomeEmp, Dnasc, EstadoCivil, CodProJ CodProJ -> NomeProJ, LocalProJ
Uma superchave é um conjunto de um ou mais atributos que, tomando coletivamente, permite-nos identificar

Uma superchave é um conjunto de um ou mais atributos que, tomando coletivamente, permite-nos identificar unicamente uma entidade no conjunto de entidades

Chave é uma superchave com a propriedade adicional que a remoção de qualquer atributo fará com que não seja superchave.

A diferença entre chave e superchave é que a primeira é mínima

Se houver mais de uma chave, cada uma é chamada de chave candidata.

Superchaves que não contenham nenhum subconjunto próprio que seja uma superchave são chamadas chaves candidatas. Se qualquer atributo for removido deixa de ser chave

Atenção! Toda chave candidata é uma superchave

chaves candidatas . Se qualquer atributo for removido deixa de ser chave Atenção! Toda chave candidata
▪ Está 3FN (logo também está na 2FN e 1FN) ▪ Contudo, a definição não

Está 3FN (logo também está na 2FN e 1FN)

Contudo, a definição não faz essa referência explícita

Para toda dependência não trivial X->Y, X é uma superchave

Para toda dependência X->Y, X é uma chave candidata

Todo determinante é uma chave candidata

 

Um atributo não pode determinar outro atributo

▪ Todo determinante é uma chave candidata   ▪ Um atributo não pode determinar outro atributo
Aluno Disciplina Professor Almeida Português João Almeida Matemática Maria Junior
Aluno Disciplina Professor Almeida Português João Almeida Matemática Maria Junior

Aluno

Disciplina

Professor

Almeida

Português

João

Almeida

Matemática

Maria

Junior

Português

João

Junior

Matemática

Marta

João Almeida Matemática Maria Junior Português João Junior Matemática Marta
Aluno Disciplina Professor Aluno Disciplina Almeida Português João Almeida Português
Aluno Disciplina Professor Aluno Disciplina Almeida Português João Almeida Português

Aluno

Disciplina

Professor

Aluno

Disciplina

Almeida

Português

João

Almeida

Português

   

Almeida

Matemática

Maria

Almeida

Matemática

Junior

Português

João

Junior

Português

Junior

Matemática

Marta

Junior

Matemática

 

Disciplina

Professor

Português

João

Matemática

Maria

Português

João

Matemática

Marta

Disciplina Professor Português João Matemática Maria Português João Matemática Marta
▪ 4FN ▪ Para cada ▪ 5FN ▪ Para cada dependência multivalorada não trivial X

4FN

Para cada

5FN

Para cada

dependência multivalorada

não trivial X - > Y, X é uma superchave

dependência de junção

não trivial DJ(R1,R2,

,

R), cada Ri é superchave

não trivial X - > Y, X é uma superchave dependência de junção não trivial DJ(R1,R2,