0% acharam este documento útil (0 voto)
67 visualizações24 páginas

Class13 Slides

Este documento discute dependências funcionais e normalização de dados. Apresenta as primeiras, segunda e terceira formas normais, explicando seus objetivos de evitar repetições e recuperar informações de forma fácil através de regras para projetar bancos de dados e remover anomalias.

Enviado por

Enricco Gemha
Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd
0% acharam este documento útil (0 voto)
67 visualizações24 páginas

Class13 Slides

Este documento discute dependências funcionais e normalização de dados. Apresenta as primeiras, segunda e terceira formas normais, explicando seus objetivos de evitar repetições e recuperar informações de forma fácil através de regras para projetar bancos de dados e remover anomalias.

Enviado por

Enricco Gemha
Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd

Megadados

Dependências Funcionais e Normalização

Engenharia
Maciel C. Vidal
Aula de hoje

• Dependências funcionais

• Formas normais

2
Dependências Funcionais

3
Dependências funcionais
São relacionamentos do tipo “muitos para um” entre atributos de uma
relação (não confundir com relacionamentos entre relações)

Formalmente: Para dois conjuntos de atributos 𝑋 e 𝑌 de uma relação,


dizemos que “𝑌 é funcionalmente dependente de 𝑋” ou que “𝑋 determina
funcionalmente 𝑌” (e denotamos 𝑋 → 𝑌) se, e somente se, qualquer tupla
em 𝑋 tem precisamente uma tupla equivalente em 𝑌.

Ou seja:

𝑋 → 𝑌 ⇔ duas linhas da tabela que concordam em 𝑋 deverão concordar


em 𝑌

4
Exemplos:
Liste todas as dependências funcionais do schema

FilmesAtores(id_filme, filme, estúdio, data, id_ator, ator, salario)

Considere que um mesmo estúdio jamais lança filmes com mesmo título
na mesma data

Use as abreviações a seguir: Atributo Abreviação


id_filme #F
filme F
estúdio E
data D
id_ator #A
ator A
salario S
5
Solução
As dependências funcionais mais importantes neste problema são:
bizarro!
#𝐹 → 𝐹, 𝐸, 𝐷 , #𝐴 → 𝐴 , #𝐹, #𝐴 → 𝑆 e 𝐹,𝐸,𝐷 → #𝐹

Porém existem várias outras dependências funcionais que podem ser


derivadas destas através da aplicação de algumas regras:

1. Reflexão: 𝐵 ⊂ 𝐴 ⇒ 𝐴 → 𝐵

2. Aumento: 𝐴 → 𝐵 ⇒ 𝐴𝐶 → 𝐵𝐶

3. Transitividade: 𝐴 → 𝐵 ∧ 𝐵 → 𝐶 ⇒ 𝐴 → 𝐶

Exercício: ache algumas dependências funcionais resultantes da


aplicação destas regras

6
Formas normais

7
Material de estudo
Molina, H. C., Ullman, J. D., Widom, J. “Database Systems: The Complete
Book”, cap 3

Silberschatz, A., Korth, H. F., Sudarshan, S. “Sistema de Banco de Dados”,


cap 8

Date, C. J. “Introdução a Sistemas de Bancos de Dados”,


caps. 11 a 13

CUIDADO: Livro do Poderoso: cap. 3


• Existem alguns erros no livro na parte da segunda forma normal!

8
Formas normais

São regras para ajudar a diminuir redundância e


aumentar integridade no projeto de um banco de
dados.

Inventadas por Edgar F. Codd, criador do modelo


relacional, em 1970.

9
Formas normais

Chamamos de normalização o processo de rearranjar


o banco de dados para que obedeça às várias formas
normais. O processo contrário, de regredir o projeto
do banco de dados para formas normais menores,
chama-se denormalização.

10
Objetivo

• Evitar repetições

• Recuperar informações de forma fácil

11
Formas normais

• 1NF: Primeira forma normal (first normal form)

• 2NF: Segunda forma normal

• 3NF: Terceira forma normal

• Outras formas normais:


• BCNF: Forma normal de Boyce-Codd (Boyce-Codd
Normal Form)
• 4NF, 5NF
• São raramente usadas

12
1NF
Definição:

“Uma entidade está na primeira forma normal


quando cada tupla tem apenas um valor por
atributo”

13
Exemplo 1NF
Esta tabela não está na 1NF!
id_usuário nome id_endereço endereço telefone
(PK)
1 Juca 100 Rua Quatá, 300, São Paulo/SP 111-1111,
333-3333
2 Maria 200 Rua Casa do Ator, 537, Ap 42, São 222-2222
Paulo/SP
3 Roberto 300 Av. Bias Fortes 382, Belo 444-4444
Horizonte/MG

Múltiplos valores
Múltiplos valores
por célula!
por célula!

14
Solução?

id_usuário nome id_endereço endereço cidade estado telefone


(PK)
1 Juca 100 Rua Quatá, 300 São Paulo SP 111-1111
1 Juca 100 Rua Quatá, 300 São Paulo SP 333-3333
2 Maria 200 Rua Casa do Ator, São Paulo SP 222-2222
537
3 Roberto 300 Av. Bias Fortes Belo MG 444-4444
382 Horizonte

15
2NF
Definição:

“Uma entidade está na segunda forma normal


quando obedece à 1NF e todos os seus atributos
não-chave dependem funcionalmente da chave
primária inteira”

16
Exemplo 2NF
id_pessoa (PK) id_projeto (PK) nome_pessoa nome_projeto doação
1 33 Mario Jacaré 150
1 44 Mario Sabiá 240
3 33 Ana Jacaré 350

17
Exemplo 2NF
id_pessoa (PK) id_projeto (PK) nome_pessoa nome_projeto doação
1 33 Mario Jacaré 150
1 44 Mario Sabiá 240
3 33 Ana Jacaré 350

Solução: id_pessoa (PK) nome_pessoa


1 Mario
id_pessoa (PK) id_projeto (PK) doação
3 Ana
1 33 150
1 44 240 id_projeto (PK) Nome_projeto
3 33 350 33 Jacaré
44 Sabiá
18
3NF
Definição:

“Uma tabela está na 3FN quando estiver na 2FN e se


todos os atributos que não pertencem à chave
primária não dependerem funcionalmente de outro
atributo que não a chave.”

“Uma tabela está na 3FN quando estiver na 2FN e se


não existem dependências transitivas para a chave
primária.”

19
Exemplo 3NF

Estes atributos pertencem à endereço,


não diretamente à usuário!

id_usuário nome id_endereço endereço cidade estado


(PK)
1 Juca 100 Rua Quatá, 300 São Paulo SP
2 Maria 200 Rua Casa do Ator, 537 São Paulo SP
3 Roberto 300 Av. Bias Fortes 382 Belo Horizonte MG

20
Solução 3NF

id_usuário nome id_endereço


(PK) (FK)
1 Juca 100
2 Maria 200
3 Roberto 300

id_endereço endereço cidade estado


(PK)
100 Rua Quatá, 300 São Paulo SP
200 Rua Casa do Ator, 537 São Paulo SP
300 Av. Bias Fortes 382 Belo Horizonte MG

Acabou?
21
Solução 3NF
id_usuário nome id_endereço
(PK) (FK) Analise do ponto de vista
1 Juca 100 das anomalias
2 Maria 200
3 Roberto 300

id_endereço endereço id_cidade (FK)


(PK)
100 Rua Quatá, 300 55
200 Rua Casa do Ator, 537 55
300 Av. Bias Fortes 382 66

id_cidade cidade estado


(PK)
55 São Paulo SP
66 Belo Horizonte MG
22
Resumo Dados brutos

Garantir 1 valor por célula

1NF

Remover dependências
parciais de chave

2NF

Remover dependências
transitivas

3NF Outras formas


Casos particulares normais

23
[Link]

Você também pode gostar