Você está na página 1de 116

BANCO DE

DADOS
RODRIGO DE CARVALHO
CARVALHO.RODRIGO@PROF.UNA.BR

1
EMENTA
 Conceitos básicos de banco de dados.
 Sistemas Gerenciador de Banco de Dados (SGBDs).
 Modelagem de Dados: conceitual, lógico e projeto físico.
 Linguagem SQL ANSI (DDL, DML).
 Normalização.
 Álgebra Relacional.
 Banco de dados relacional.

2
EMENTA
 Conceitos básicos de banco de dados.
 Sistemas Gerenciador de Banco de Dados (SGBDs).
 Modelagem de Dados: conceitual, lógico e projeto físico.
 Linguagem SQL ANSI (DDL, DML).
 Normalização.
 Álgebra Relacional.
 Banco de dados relacional.

3
BIBLIOGRAFIA BÁSICA
DATE, C. J. Introdução a sistemas de bancos de dados. Rio de Janeiro:
Campus, 2004.
ELMASRI, Ramez; NAVATHE, Sham. . Sistemas de banco de dados.4. ed.
atual. São Paulo: Pearson
Addison Wesley, 2005.
SILBERSCHATZ, Abraham.; KORTH, Henry F.; SUDARSHAN, S. . Sistema de
banco de dados. Rio de Janeiro: Elsevier, 2006.

4
BIBLIOGRAFIA COMPLEMENTAR

 Livros de Sistemas de Banco de Dados


 Artigos
 Teses

5
DISTRIBUIÇÃO DE
PONTOS
Atividade Pontuação
P1 30
Trabalho 20
P2 30
TIDIR/PA 20
Prova Alternativa 30

6
TRABALHO
Trabalho Valor
Projeto 1 10
Projeto 2 10

Grupos de 4 alunos (Projeto 1)


Projeto conceitual, lógico e o script de implementação do banco de dados

7
PROJETO 2
TRABALHO

Identificar tema de interesse

Procurar informações confiáveis

Escolher um artigo/tese/monografia

Apresentar em sala

Propor uma aplicação, melhora ou apontar


Vale ponto: as perguntas falhas da metodologia estudada. (Em forma de
bem formuladas sobre o Pré-Projeto)
tema e a presença.
MUDANÇA DE
COMPORTAMENTO
ARTIGOS...
INTRODUÇÃO

13
INTRODUÇÃO
O que é Banco de dados?

14
INTRODUÇÃO
O que é Banco de dados?

15
INTRODUÇÃO
Dados: representação de fatos, conceitos ou instruções de maneira
formalizada, adequadas para comunicação, interpretação ou
processamento por pessoas ou meios automatizados.

Exemplo: R$5,00, Joselito, 0010, etc.

16
INTRODUÇÃO
Informação: significados que pessoas associam aos dados
através de convenções usadas em sua interpretação.

Exemplo: Preço do produto x R$5,00


Nome do Professor: Joselito

Observação: Alguns autores preferem distinguir entre os


dois, outros não. Logo em alguns livros esses dois conceitos
podem se confundir.

17
INTRODUÇÃO
O que é Banco de dados?

18
INTRODUÇÃO
O equivalente não eletrônico seria:

Recipiente para uma coleção de arquivo de dados.

19
Vendas Produção Compras

Produto

Uma pessoa por vez acessando

Busca praticamente sequencial

Quem que pode atualizar a ficha?

Posso tirar duas fichas ao mesmo tempo?

E se enquanto uma pessoa está com a ficha, uma outra acessa o fichário, não
encontra a ficha, então cria uma nova ficha; quando uma devolver a ficha, serão
duas fichas diferentes para o mesmo produto.

E se perde a ficha?

20
E se pega fogo em tudo?
Vendas Produção Compras

Produto Produto Produto

Uma pessoa por vez acessando

Busca praticamente sequencial

Quem que pode atualizar a ficha?

Posso tirar duas fichas ao mesmo tempo?

E se enquanto uma pessoa está com a ficha, uma outra acessa o fichário, não
encontra a ficha, então cria uma nova ficha; quando uma devolver a ficha, serão
duas fichas diferentes para o mesmo produto.

E se perde a ficha?

21
E se pega fogo em tudo?
INTRODUÇÃO
 Os fundamentos de bancos de dados relacionais surgiram na
empresa IBM, nas décadas de 1960 e 1970.
 Em 1970 um pesquisador da IBM - Ted Codd - publicou o
primeiro artigo sobre bancos de dados relacionais.
 Honeywell Information Systems Inc. (1976)
 Oracle (Anos 80)
 Sistema de Gerenciamento de Banco de Dados Orientado a
Objetos (Anos 90)

22
Uma pessoa por vez acessando

Busca praticamente sequencial

Quem que pode atualizar a ficha?

Posso tirar duas fichas ao mesmo tempo?

E se enquanto uma pessoa está com a ficha, uma outra acessa o fichário, não
encontra a ficha, então cria uma nova ficha; quando a uma devolver a ficha, serão
duas fichas diferentes para o mesmo produto.

E se perde a ficha?

23
E se pega fogo em tudo?
SGBD
Definição: Sistema cujo objetivo principal é gerenciar o
acesso e a correta manutenção dos dados armazenados em
um banco de dados

24
BANCO DE DADOS X
ARQUIVOS

25
SQL
A linguagem SQL é composta por inúmeros comandos, os quais
são agrupados da seguinte maneira:
Comandos que definem dados;
Comandos que manipulam dados;
Comandos de controle de dados.

26
DML
 SELECT – Consulta (seleção)
 UPDATE – Atualização
 DELETE – Exclusão
 INSERT – Inclusão

Exemplos:
SELECT * from Usuario;
SELECT contato FROM Cliente;
DELETE FROM Cliente where Pais=‘Alemanha‘

27
DDL
CREATE
ALTER
DROP

Exemplos:
create table A(codigo int);
alter table A add data date

28
DCL
Controla os aspectos de autorização de dados e a utilização de
licenças por usuários. Os principais comandos são GRANT e
REVOKE

29
PRÁTICA

http://www.w3schools.com/sql/trysql.asp?filename=trysql_select_all

30
MODELOS DE DADOS
Conceitual Lógico Físico

Independente do SGBD

Registra a estrutura dos dados que podem aparecer no BD


Não registra como esses dados estão armazenados a nível do SGBD

31
MODELOS DE DADOS
Conceitual Lógico Físico

A modelagem lógica compreende o processo de descrever como os


dados serão armazenados no sistema e como irão se relacionar.

Isso significa transformar o modelo conceitual obtido na primeira fase


num modelo mais próximo da implementação, em um modelo lógico.

32
MODELOS DE DADOS
Conceitual Lógico Físico

Detalhes de como os dados serão armazenados. Vamos ver mais


sobre esse modelo nas próximas aulas.

33
ENTIDADE
Entidade é aquele objeto existente no mundo real, com uma
identificação distinta e significado próprio.
Pessoa, Automóvel, Departamento, etc.

Exemplos de entidade em um Sistema Acadêmico.


Aluno, Disciplina, Curso

34
ATRIBUTOS
Informações que referenciam a entidade.
(Propriedades para descrever uma entidade)

 Simples ou composto
 Monovalorados ou Multivalorados

35
ATRIBUTOS

36
ATRIBUTOS
Se uma entidade tem um atributo que é único no mundo real,
posso usar como chave (ou chave primária, ou primary key)?

37
ATRIBUTOS
Se uma entidade tem um atributo que é único no mundo real,
posso usar como chave (ou chave primária, ou primary key)?

- Poder pode, mas não é aconselhável!


- Problemas em manutenção.
- Corrigir pode ser mais custoso ou impossível.
- Se muda o documento, como atualizar meu BD?
- Geralmente é usado um campo ID auto incrementável.

38
ATRIBUTOS
Chave Estrangeira (FK – Foreign Key)
- Serve para que possamos implementar os relacionamentos
vistos na modelagem.

- Quando a chave primária de uma tabela é movida para


outra tabela, temos uma chave estrangeira.

39
INTEGRIDADE
- Um banco de dados não pode conter valores de chaves
estrangeiras não associados.
- Como o SGBD se comporta quando há uma tentativa de
apagar ou atualizar uma chave primária referenciada em
uma chave estrangeira ?

40
INTEGRIDADE
Como o SGBD se comporta quando há uma tentativa de apagar
ou atualizar uma chave primária referenciada em uma chave
estrangeira ?

( ) A operação não é executada se houver registros associados


em outras tabelas.

( ) A operação deleta ou atualiza em cascata todos os registros


associadas existentes em outras tabelas

41
TERMOS...
Termo relacional formal Equivalente informal
- relação - tabela
- tupla - linha de registro
- cardinalidade - número de linhas
- atributo - coluna ou campo
- grau - número de colunas
- domínio - faixa de valores legais

42
ENTIDADE X ATRIBUTOS
- Não existe tuplas duplicadas.
- Tuplas não são ordenadas.
- Atributos não são ordenados.
- Cada tupla tem um único valor para cada atributo.
- O cabeçalho de uma relação representa um predicado.
- Domínio.

43
RELACIONAMENTO
Abstração das associações entre entidades.

- Cardinalidade (min e max)


- Número de ocorrências de uma entidade que podem estar associados a
uma determinada ocorrência de entidade através do relacionamento.

44
RELACIONAMENTO 1:1

45
RELACIONAMENTO 1:N

46
RELACIONAMENTO N:N

47
EXEMPLO

48
EXEMPLO
 A cardinalidade é um número que expressa o comportamento
(número de ocorrências) de determinada entidade associada a
uma ocorrência da entidade em questão através do
relacionamento.

 Chave primária: Atributo ou combinação de atributos que


possuem a propriedade de identificar de forma única uma
linha da tabela.

 Chave estrangeira: A chave estrangeira ocorre quando um


atributo de uma relação for chave primária em outra relação.

49
EXEMPLO

50
EXEMPLO
Quero criar um banco de dados para organizar os meus CDs;
 Um CD possui um título e diversas músicas;
 Toda música possui um título e uma duração;
 Uma música pode ter sido composta por um ou mais compositores;
Uma música pode ser interpretada por um ou mais cantores;
Existem cantores que também são compositores (e vice-versa);

51
EXEMPLO
Quero criar um banco de dados para organizar os meus CDs;
 Um CD possui um título e diversas músicas;
 Toda música possui um título e uma duração;
 Uma música pode ter sido composta por um ou mais compositores;
Uma música pode ser interpretada por um ou mais cantores;
Existem cantores que também são compositores (e vice-versa);

Entidade x Atributos

Entidade é aquele objeto Propriedades (características)


existente no mundo real, com que identificam as entidades.
uma identificação distinta e
significado próprio.

52
EXEMPLO
Quero criar um banco de dados para organizar os meus CDs;
 Um CD possui um título e diversas músicas;
 Toda música possui um título e uma duração;
 Uma música pode ter sido composta por um ou mais compositores;
Uma música pode ser interpretada por um ou mais cantores;
Existem cantores que também são compositores (e vice-versa);

Entidade x Atributos

Entidade é aquele objeto Propriedades (características)


existente no mundo real, com que identificam as entidades.
uma identificação distinta e
significado próprio.

53
EXERCÍCIO
A UNA é uma indústria localizada em uma pequena cidade do
interior.
Na UNA todo funcionário está lotado em um departamento.
Cada departamento faz parte de uma diretoria. Uma diretoria
controla diversos departamentos.
No cadastro do funcionário estão cadastrados todos os seus
dependentes. Como a cidade é pequena, alguns
dependentes de funcionários são também funcionários e a
UNA precisa registrar esses casos.

54
AUTO-
RELACIONAMENTO

55
GENERALIZAÇÃO/ESPECIALIZAÇÃO

56
GENERALIZAÇÃO/ESPECIALIZAÇÃO

57
GENERALIZAÇÃO/ESPECIALIZAÇÃO

58
GENERALIZAÇÃO/ESPECIALIZAÇÃO

59
GENERALIZAÇÃO/ESPECIALIZAÇÃO

60
GENERALIZAÇÃO/ESPECIALIZAÇÃO

61
GENERALIZAÇÃO/ESPECIALIZAÇÃO

62
GENERALIZAÇÃO/ESPECIALIZAÇÃO

63
GENERALIZAÇÃO/ESPECIALIZAÇÃO

64
EXERCÍCIO
Uma Construtora desenvolve projetos de grande porte.
Esta empresa está organizada em departamentos sendo que
cada projeto é sempre coordenado por um departamento.
Os departamentos possuem empregados que podem ser
chefes.
Embora um empregado pertença sempre a um departamento,
ele pode ser alocado a projetos de outros departamentos.

65
DER
Em uma clínica trabalham médicos e existem vários
pacientes internados. Cada médico é identificado pelo seu
CRM, possui um nome e recebe um salário da clínica. Um
médico tem formação em diversas especialidade, mas só
exerce uma delas na clínica. Para todo paciente internado na
clínica são cadastrados alguns dados pessoais: nome, RG,
CPF, endereço, celular, telefone fixo e data de nascimento.
Um paciente tem sempre um determinado médico como
responsável, porém vários outros médicos podem participar
do seu tratamento. Pacientes sempre estão internados em
quartos individuais, que são identificados por um númeroe
ficam em um andar na clínica.

66
UM AMBIENTE DE
TREINAMENTO
Uma empresa que dá treinamento na área de informática tem a seguinte programação semestral de cursos: DBA para o

Banco de Dados Oracle, Visual Basic Básico, Visual Basic Avançado, Delphi Básico e outros. Um curso pode ser

ministrado várias vezes no semestre. O curso de DBA Oracle para o primeiro semestre de 1999 teve a seguinte

programação: a primeira turma de 15/03/99 a 30/03/99 e a segunda turma de 20/06/99 a 05/07/99. Já o curso de Visual

Basic Básico foi programado para: a primeira turma no mesmo período da primeira turma de DBA e a segunda turma

para o período de 10/08/99 a 30/08/99. O número de alunos matriculados em cada turma é no máximo 30 em razão do

número reduzido de computadores para as aulas práticas. Para fazer a matrícula, o aluno precisa apresentar: CPF,

nome completo, endereço, telefones de contato e o comprovante do pagamento da taxa de matrícula (que pode ser feito

na rede bancária do estado), o curso que pretende fazer e em qual período. No momento da matrícula, a cada aluno é

atribuído um número que o identifica entre todos os alunos da turma. Se o aluno, eventualmente, volta a cursar mais

cursos, o número dele continua o mesmo. Há que manter o registro para cada aula, de um resumo sucinto da matéria

lecionada, da data e da freqüência de cada aluno. A empresa tem o interesse em saber o dia da matrícula de cada aluno

e em qual banco e agência o aluno fez o pagamento da matrícula. Para cada turma de cada curso é alocado um

professor cujos dados de interesse são: CPF, nome, endereço, preço cobrado para ministrar o curso, telefones para

contato e quais os cursos que o professor pode ministrar. Outros dados importantes para a empresa são: valor total das

matrículas por turma, por curso, por semestre e por ano. Considerar a hipótese do professor ser aluno de cursos que

não seja de sua especialidade.

67
SQL
SQL é uma linguagem padrão para acessar bancos de dados.
Não é case sensitive: Select = SELECT.
Alguns sistemas de banco de dados requerem um ponto e
vírgula no final de cada instrução SQL.

 SELECT – Extrair dados da base de dados.


 UPDATE – Atualizar dados da base de dados.
 DELETE – Apagar dados da base de dados.
 INSERT INTO – Inserir novos dados na base de dados.
 CREATE DATABASE – criar uma nova base de dados.
 CREATE TABLE – criar uma nova tabela na base de dados.
 ALTER TABLE - alterar uma tabela.
 DROP TABLE – apagar uma tabela.

68
SELECT
SELECT <nome das colunas> FROM <nome da tabela>;
SELECT nome FROM Aluno;
Select * from Aluno;
Select nome, RA FROM Aluno;

69
SELECT (TABELA CUSTOMERS)

70
SELECT (TABELA CUSTOMERS)

SELECT CustomerName, City FROM Customers;

71
WHERE
A cláusula WHERE é usada para extrair apenas os registros
que satisfaçam um critério especificado.

SELECT <nome das colunas>


FROM <nome da tabela>
WHERE <condições>;

SELECT nome, RA
FROM Aluno
WHERE curso = ‘Sistemas de Informação’;

72
WHERE
= Igual

<> Diferente. Também pode ser encontrado !=

> Maior que

< Menor que

>= Maior ou igual

<= Menor ou igual

BETWEEN Entre

LIKE Com padrão


s% - início
%s% - meio
%s - fim

IN Especificar valores em uma coluna

AND e OR são operadores que são usados ​para filtrar registros com
base em mais de uma condição.

73
1 - SELECT * from customers where CustomerID = 1
2 - SELECT * from customers where CustomerID <> 1
3 - SELECT * from customers where CustomerID < 1
4 - SELECT * from customers where CustomerID between 1 and 3
5 - SELECT * from customers where City like 'Be%‘
6 - SELECT * from customers where City like '%e%‘
7 - SELECT * from customers where City like '%im' and CustomerID < 14
8 - SELECT * from customers where City like '%im' or CustomerID < 3
9 - SELECT * FROM Customers where City IN ('Paris','London');
10 - SELECT * FROM Customers where city = 'London' or city = 'Paris'

74
1 – Selecionar tuplas onde OrderID seja maior que 10250.
2 – Selcionar tuplas onde ProductID seja igual a 57.
3 – Selecionar tuplas onde Quantity seja maior que 10 e a OrderID seja maior que 10500.
4 – Selecionar tuplas onde OrderID esteja entre 10000 e 11000.
5 – Selecionar tuplas onde ProductID seja igual a 41 ou 51.

75
CREATE
CREATE TABLE nome tabela
(
atributo tipo,
atributo tipo,
atributo tipo,
....
);

76
CREATE
CREATE TABLE CATEGORIA
(
COD int,
NOME varchar(255)
);

77
CREATE +
RESTRIÇÕES
CREATE TABLE nome tabela
(
atributo tipo restrições,
atributo tipo restrições,
atributo tipo restrições,
....
);

NOT NULL - Indica que as colunas não podem ter valores nulos.
UNIQUE - Indica que cada linha dessa coluna deve ter um único valor.
PRIMARY KEY - Combinação NOT NULL + UNIQUE.
FOREIGN KEY - Garantir a integridade referencial dos dados em uma tabela para
coincidir com os valores em outra tabela.
CHECK - A restrição CHECK é usada para limitar a faixa de valores que podem
ser colocadas em uma coluna.
DEFAULT - Valor default caso a coluna não seja preenchida.

78
EXEMPLOS

79
MYSQL
http://downloads.mysql.com/docs/refman-4.1-pt.a4.pdf

80
REVISÃO

81
MODELO CONCEITUAL

82
MODELO LÓGICO

83
MODELO LÓGICO

84
MODELO FÍSICO

85
ENTIDADES X
OCORRÊNCIAS

86
87
88
89
90
91
92
GRAUS DE
RELACIONAMENTO

93
ENTIDADE FORTE
Entidade Forte x Entidade Fraca

94
95
96
97
SISTEMA DE VENDAS
DE MEDICAMENTOS.
As informações baseadas na entrevista são as seguintes:
O sistema vende medicamentos somente para clientes cadastrados;
O fornecedor do medicamento pode fornecer vários itens, assim como um
medicamento pode ser fornecido por vários fornecedores;
Os fornecedores que fornecem os anti-depressivos deverão ter informações
adicionais, como inscrição na vigilancia sanitária e validade da inscrição.
Os medicamentos estão separados por Grupos, tipo: analgésicos, anti-
depressivos, etc
O sistema faz apenas vendas desses medicamentos cadastrados. A venda
tem que ter pelo menos um item, assim como pode ter vários itens.
Faça o DER completo e: Classifique as entidades em forte, fraca e
associativa. Especifique os atributos, identificando os atributos de
identificação e determinantes, e colocando seus devidos formatos.
Especifique também os relacionamentos.

98
SISTEMA EMPRESA DE
TRANSPORTES AÉREOS
.As informações baseadas na entrevista são as seguintes:
A empresa quer armazenar informações sobre as aeronaves que
possui (tipo da aeronava, nº poltronas);
Os voos (aeroporto de origem e destino, horário saída e
chegada);
Um cliente pode fazer vários voos e quando os clientes compram
os voos, eles já tem informações como: numero bilhete e número
poltrona.
A empresa quer informações de seus clientes para uma possível
mala direta.

99
MODELO LÓGICO
Pessoa(ID_Pessoa, Nome, FK_ID_Dp)
FK_ID_Dp referencia Departamento

100
Sistema Musical. A Sonora Pro Music decidiu armazenar informações sobre músicos que
tocam em seus álbuns (assim como outros dados da empresa) em um banco de dados. A
empresa escolheu sabiamente contratar você como projetista de banco de dados.
Cada músico que grava na Sonora Pro Music tem um CPF, um nome, um endereço, e um
número de telefone.
Os músicos que não ganham muito normalmente compartilham o mesmo endereço, e
nenhum endereço tem mais do que um telefone;
Cada instrumento utilizado nas músicas gravadas na Sonora tem um nome (por exemplo,
guitarra, sintetizador, flauta) e um tom musical (por exemplo, C, B#, E#);
Cada álbum gravado com o selo Sonora tem um título, uma data de direitos autorais, um
formato (por exemplo, CD ou MC), e um identificador de álbum;
Cada música gravada na Sonora tem um título e um autor;
Cada músico toca diversos instrumentos, e um determinado instrumento pode ser ocado por
diversos músicos;
Cada álbum tem um número de músicas gravadas, mas nenhuma música pode aparecer em
mais de um álbum;
Cada música é interpretada por um ou mais músicos, e um músico pode interpretar mais de
uma música;
Cada álbum tem exatamente um músico que trabalha com seu produtor. Naturalmente, um
músico pode produzir diversos álbuns.

101
SQL
INSERT INTO table_name (column1,column2,column3,...)
VALUES (value1,value2,value3,...);
INSERT INTO Customers (CustomerName, City, Country)
VALUES ('Cardinal', 'Stavanger', 'Norway');

102
SQL
UPDATE table_name
SET column1=value1,column2=value2,...
WHERE some_column=some_value;

UPDATE Customers
SET ContactName='Alfred Schmidt', City='Hamburg'
WHERE CustomerName='Alfreds Futterkiste';

103
SQL
DELETE FROM table_name
WHERE some_column=some_value

DELETE FROM Customers


WHERE CustomerName='Alfreds Futterkiste' AND
ContactName='Maria Anders';

104
EXERCÍCIOS
1 – Criar a tabela Pessoa
Pessoa(ID_Pessoa, Nome, Sobrenome)
2 – Inserir 5 pessoas diferentes no banco
ID_Pessoa ={1,2,3,4,5}
3 – Alterar o nome da pessoa com ID igual a 4 para Rodrigo
4 – Apagar a pessoa com ID igual a 1
5 – Selecionar todos os nomes das pessoas que estão na
tabela Pessoa
6 – Apagar todo mundo que tenha Rodrigo no atributo Nome

105
EXERCÍCIO 2
1 – Criar a tabela Produto(id, vescricao, valor)
2 – Inserir 5 pessoas diferentes no banco
ID_Pessoa ={1,2,3,4,5}
3 – Alterar o nome da pessoa com ID igual a 4 para Rodrigo
4 – Apagar a pessoa com ID igual a 1
5 – Selecionar todos os nomes das pessoas que estão na
tabela Pessoa
6 – Apagar todo mundo que tenha Rodrigo no atributo Nome

106
NORMALIZAÇÃO
A normalização de dados é uma série de passos que se
seguem no projeto de um banco de dados, que permitem um
armazenamento consistente e um eficiente acesso aos dados
em bancos de dados relacionais. Esses passos reduzem a
redundância de dados e as chances dos dados se tornarem
inconsistentes.

107
FN1
- Uma tabela está na 1FN, se e somente se, não possuir
atributos multivalorados ou grupos repetitivos.
- Atributos em formato atômico
- Chave primária que identifica somente uma tupla

108
FN1

Codigo_Cl Nome Telefone Rua Número Bairro Estado CEP


iente
C001 José 9653-6352 Seis 85 Morumbi SP 12536-965
9647-2501

109
FN1
codigo_cli Nome Telefone rua número bairro estado cep
ente
C001 José 9653-6352 Seis 85 Morumbi SP 12536-965
9647-2501

codigo_cliente telefone

C001 9653-6352
C001 9647-2501

110
FN1
codigo_cli Nome Telefone rua número bairro estado cep
Chave
ente
primária que identifica somente uma tupla
C001 José 9653-6352 Seis 85 Morumbi SP 12536-965
9647-2501

codigo_cliente telefone

C001 9653-6352
C001 9647-2501

- Chave primária que identifica somente uma tupla

111
FN1
codigo_cli Nome rua número bairro estado cep
ente
C001 José Seis 85 Morumbi SP 12536-965

codigo_telefone Codigo_cliente

1 C001
2 C001
2 C002

codigo_telefone telefone

1 9653-6352
2 9647-2501

112
FN2

113
FN2
codigo veiculo marca proprietario codigo_pro idmarca
prietario

1 Fox VW Renata 1 1
2 Gol VW Rodrigo 2 1
3 Focus Ford João 3 2
4 Focus Ford Rodrigo 2 2

Não possuir atributos com dependência parcial. Uma dependência


parcial ocorre quando uma coluna depende apenas de parte de uma
chave primária composta.

114
FN3
Uma relação está em 3FN se todas as colunas da tabela são
funcionalmente dependentes da chave inteira e nada além da
chave.

Terceira Forma Normal


– Envolve o conceito de dependência transitiva

Suponha que tenhamos uma tabela com colunas A, B e C


– Se a coluna C é funcionalmente dependente de B e B é
funcionalmente dependente de A, então C é funcionalmente
dependente de A

115
FN3

116

Você também pode gostar