Você está na página 1de 71

Banco de Dados

Parte do conteúdo exposto nestas transparências foi retirado dos livros:


“Projeto de Banco de Dados”, de Carlos A. Heuser ;
“Projeto de Banco de Dados - Uma visão prática”, de Felipe Machado e Maurício Abreu
Parte 1

Conceitos Básicos
Dado x Informação
DADO: algo conhecido, informado, mas sem
tratamento sistêmico, ou seja, o DADO precisa de
um processamento básico para se transformar em
INFORMAÇÃO;

INFORMAÇÃO é o DADO processado !

Ex: Jogo de Baralho. Cartas/Jogada


Algoritmo para fazer a soma de dois nºs X e Y.
Os números são os dados e o resultado é a informação
que se deseja saber.

3
Dado x Informação
Ex: Imagine que o sistema armazene os seguintes itens
a respeito dos funcionários de uma empresa.

Número
Nome O que é DADO
Data Contratação e o que é
Endereço INFORMAÇÃO?
Bairro
Cidade

Os itens acima referem-se aos dados do funcionário e a


partir destes dados é possível extrair informações.
Ex: - O tempo que o funcionário trabalha na empresa;
- O endereço do funcionário (endereço+bairro+ cidade)

4
Compartilhamento de Dados
Quando a implantação da Informática nas organizações
ocorre de forma gradual, é provável que ocorram alguns
problemas.
Suponha que uma indústria execute três funções básicas:
Vendas: concentra as atividades relativas ao contato com
os clientes, como fornecimento de cotações de preços,
vendas e a disponibilidade de produtos
Produção: concentra as atividades relativas à produção
propriamente dita, como planejamento da produção, ou
seja, dos produtos e controle do que foi produzido
Compras: concentra as atividades relativas à aquisição
de insumos necessários à produção, como cotações de
preços junto a fornecedores, etc.
5
Compartilhamento de Dados
Se cada uma das funções for informatizada de forma
separada, pode ocorrer que, para cada uma delas, seja criado
um arquivo separado para PRODUTOS.

SISTEMA SISTEMA SISTEMA DE


PRODUÇÃO VENDAS COMPRAS

Arquivos Produção Arquivos Vendas Arquivos Compras

Produto Produto Produto

Dados de diferentes aplicações não estão integrados;


Dados estão projetados para atender uma aplicação
específica.
6
Problemas da Falta de Integração de Dados

Redundância de Dados - o mesmo objeto da realidade


é armazenado mais de uma vez no banco de dados.
Ex: Produtos

Redundância Controlada e Não Controlada de Dados

Redundância Controlada - acontece quando o software


tem conhecimento da múltipla representação e garante
a sincronia entre as diversas representações. Ou seja,
atualiza automaticamente os dados quando necessário.
Ex: Sistemas distribuídos - um mesmo dado é
armazenado em vários computadores, permitindo
acesso rápido a partir de qualquer um deles.
7
Problemas da Falta de Integração de Dados
Redundância Não Controlada - acontece quando a
responsabilidade pela manutenção da sincronia entre as
diversas representações de um dado está com o usuário.
Redundância Não Controlada leva a :
Redigitação de Dados - o mesmo dado é digitado várias
vezes no sistema. Este trabalho repetitivo pode levar a
erros;
Inconsistência dos Dados - os dados podem não
representar corretamente a realidade. Imagine que o
usuário alterou o preço de um produto no sistema de
compra mas não alterou no sistema de vendas.
Dificuldade de extração de informações - os dados
projetados para atender uma aplicação específica po-
8
dem gerar dificuldade para o cruzamento dos dados
Compartilhamento de Dados
SISTEMA SISTEMA SISTEMA DE
PRODUÇÃO VENDAS COMPRAS

Arquivos Produção Arquivos Vendas Arquivos Compras

Produto Produto Produto

SISTEMA SISTEMA SISTEMA DE


PRODUÇÃO VENDAS COMPRAS

BANCO DE DADOS
Produto 9
Banco de Dados

É o nome dado ao conjunto de arquivos


integrados que atendem a um conjunto
de sistemas

BANCO DE
DADOS

Conjunto de dados integrados que tem por


objetivo atender a uma comunidade de
usuários

“Uma coleção de dados operacionais inter-relacionados. Estes dados


são armazenados de forma independente dos programas que os
utilizam, servindo assim a múltiplas aplicações de uma organização.”
(Kort, Henry F.) 10
Banco de Dados
O que muda com o surgimento dos Bancos de Dados, ou
seja, com o Compartilhamento dos Dados?

Acesso por múltiplos programas - pode haver mais de


uma equipe de desenvolvimento envolvida no
desenvolvimento de uma aplicação

Os programas devem garantir a Restrição de Integridade,


ou seja, garantir a veracidade e a correção dos dados.
Ex: Um funcionário não pode estar alocado em dois
departamentos.

O BD pode ser acessado concorrentemente por múlti-


plos usuários - os programas devem implementar o
controle de acesso concorrente 11
Banco de Dados
Restrições de Acesso - nem todo usuário pode acessar
qualquer informação. O programa deve implementar o
controle de acesso, ou seja, quem tem permissão para
acessar o quê

Dados são de importância vital e não podem ser perdi-


dos - mecanismos simples como cópias de “backup”
não são suficientes. Caso haja uma falha, o banco de
dados deve ser recuperado rapidamente. Os
programas devem implementar mecanismos de tolerância
a falhas
Estruturas de dados mais complexas - os arquivos
devem ser projetados para atender a diferentes
necessidades dos sistemas, portanto, há que se tomar
bastante cuidado na fase de definição dos DADOS. 12
Sistema de Gerência de Banco de Dados

SGBD  Software que incorpora as funções de


definição, recuperação e alteração de dados em um
banco de dados
Software que serve para
Aplicação armazenar e acessar
dados em um banco de
dados

SGBD

Banco de Dados
13
Ainda não entendi
o que afinal de contas eu vou
aprender nesta disciplina!!!

14
Parte 2

Abordagem
Entidade-Relacionamento
Objetivos

Compreender os conceitos de ENTIDADE e algumas


de suas características: RELACIONAMENTO,
ATRIBUTO, CARDINALIDADE

16
Abordagem Entidade-Relacionamento
A primeira etapa do projeto de um banco de dados é
a construção de um modelo conceitual, a chamada
Modelagem Conceitual.

MODELO
CONCEITUAL
MODELO
LÓGICO
MODELO
FÍSICO

A Modelagem Conceitual tem por objetivo obter uma


descrição abstrata, independente de implementação
em computador, dos dados que serão armazenados
no banco de dados. 17
Abordagem Entidade-Relacionamento
Dentre as técnicas mais difundidas e utilizadas para
a modelagem conceitual dos dados destacam-se:
– a Abordagem Entidade-Relacionamento, definida por
Peter Chen em 1976 e que segue a metodologia de
desenvolvimento Estruturado de Sistemas
– a UML (Unified Modeling Language), que é uma
metodologia de desenvolvimento Orientado a Objeto

O Modelo Entidade Relacionamento (M.E.R.) é


representado graficamente pelo Diagrama Entidade
Relacionamento (D.E.R.) e este é convertido para o
Modelo Relacional/Lógico para ser implementado
fisicamente num Banco de Dados Relacional.

18
Modelo Entidade-Relacionamento
Peter Chen, ao formular a proposta do modelo E-R
baseou-se na compreensão da realidade em que
se situava o problema e não na visão de um sistema
de aplicação.

CHEN preocupou-se em destacar a importância de


reconhecer os objetos (coisas) que compõem este
negócio, independentemente de preocupar-se com
formas de tratamento das informações,
procedimentos, programas, etc

Estes objetos ele classificou em dois grupos:


ENTIDADE e RELACIONAMENTO
19
Abordagem Entidade-Relacionamento

Faz Contém

PEDIDO

CLIENTE PRODUTO

O fato acima pode acontecer em qualquer realidade.


Ele deve, portanto, ser retratado através de elementos
20
básicos que compõem o Modelo ER.
Modelo Entidade-Relacionamento (M.E.R.)

Os componentes básicos do Modelo ER são:

ENTIDADES

RELACIONAMENTOS

ATRIBUTOS

21
Modelo ER: ENTIDADE

ENTIDADE

“Conjunto de objetos da realidade modelada sobre


os quais deseja-se manter informações no Banco de
Dados” (Heuser). Considera-se objeto qualquer
coisa perceptível ou manipulável.

É uma “coisa” ou um “objeto” no mundo real que


pode ser identificada de forma única em relação aos
outros objetos.

São as “coisas” que existem no negócio sobre as


quais temos interesse em manter armazenadas no
banco de dados. 22
Modelo ER: ENTIDADE

ENTIDADE

Uma ENTIDADE é uma representação de um


CONJUNTO DE DADOS do negócio, um conjunto de
informações de mesmas características e suas
ocorrências.

É representada através de um retângulo com o nome


da entidade em seu interior.

CLIENTE PRODUTO FUNCIONÁRIO

NOTA ORDEM DE
FISCAL PRODUÇÃO 23
Modelo ER: ENTIDADE
Exemplo:
O retângulo CLIENTE
representa o conjunto de
todas as pessoas sobre as
quais se deseja manter
informações no BD..

CLIENTE

Este objeto particular (um


dos clientes) é chamado
de OCORRÊNCIA de uma
entidade, neste caso
CLIENTE.
24
Modelo ER: ENTIDADE
As ocorrências de uma entidade não são
representadas no DER mas são semanticamente
interpretadas no mesmo, ou seja, ao visualizar uma
entidade, devemos entendê-la como uma tabela de
dados, onde cada linha representa uma ocorrência
da mesma.
FUNCIONÁRIO

Matrícula Nome Data Admissão

4456 João Carlos da Silva 29/04/91


6689 Sílvia de Oliveira 26/02/92
1203 Carla Martinez 14/04/92 25
Modelo ER: PROPRIEDADES

Além de especificar as entidades, ou seja, os objetos


sobre os quais se deseja manter informações, o
MER deve permitir a especificação das
PROPRIEDADES destas entidades.

Estas propriedades são :

Ter um ATRIBUTO Participar de um


Relacionamento

26
Modelo ER : ATRIBUTO

ATRIBUTO

Dado que é associado a cada ocorrência de uma


entidade ou de um relacionamento (características
específicas)

27
Modelo ER: ATRIBUTO
Ex 1: Projeto
• Em uma entidade Projeto, por exemplo, poderá ser
importante armazenar o Código, o Tipo e no nome do
Projeto. A representação gráfica deverá ficar, então:
ENTIDADE

PROJETO

tipo
código ATRIBUTOS

nome

28
Modelo ER: ATRIBUTO
Ex 2: Funcionário
• Vamos supor que em uma empresa temos uma
entidade chamada Funcionario, ou seja, um objeto sobre
o qual desejamos manter informações.

O que descreve FUNCIONÁRIO?


- um número de matrícula, o nome do funcionário, sua
data de admissão, data de nascimento, valor do salário,...

FUNCIONÁRIO

Número Matrícula
Nome
Data Admissão
Data Nascimento
29
Valor Salário
Modelo ER: ATRIBUTO
Cada ocorrência de Funcionário será formada por
valores nestes atributos e o conjunto destes valores
representa a informação de um funcionário que devemos
visualizar como uma linha de uma tabela de dados.

Entidade: Funcionário

Data
Matrícula Nome
Admissão
4456 João Carlos da Silva 29/04/91
6689 Sílvia de Oliveira 26/02/92
1203 Carla Martinez 14/04/92
7702 Pedro Guilherme Souza 01/01/92
30
Modelo ER: ATRIBUTO
CLIENTE

Telefone
Endereço
Nome

CPF

Os atributos podem ser de vários tipos:


monovalorado: possui apenas um valor que não pode
ser decomposto. Ex: CPF
multivalorado: possui vários valores na mesma
ocorrência. Ex: Telefone
composto: possui vários valores sobre o mesmo nome
e quando decomposto não perde o sentido. Ex: Nome,
31
Endereço
Modelo ER: ATRIBUTO IDENTIFICADOR
Cada entidade deve possuir um identificador!!!
IDENTIFICADOR  é um conjunto de um ou mais
atributos (e possivelmente relacionamentos) cujos
valores servem para distinguir uma ocorrência da
entidade das demais ocorrências da mesma entidade

código
PESSOA nome
endereço
Identificador simples

Cód. Departamento
DISCIPLINA Cód. Disciplina
Nome da disciplina
Identificador composto 32
Modelo ER: ATRIBUTO IDENTIFICADOR
O identificador de uma Entidade deve obedecer UMA
propriedade:

Deve ser MÍNIMO  isto é, se retirarmos um dos


atributos ou relacionamentos que o compõe, ele deixa
de ser identificador

Não é necessário utilizar


código Código e nome para
PESSOA nome identificar a entidade.
endereço
Código é suficiente para
distinguir as ocorrências
de PESSOA

33
Modelo ER: RELACIONAMENTO
RELACIONAMENTO
Conjunto de associações entre entidades através de
algo comum.

DEPARTAMENTO LOTAÇÃO PESSOA

• Um conjunto de objetos classificados como pessoa


(Entidade PESSOA) ;
• Um conjunto de objetos classificados como
departamento (Entidade DEPARTAMENTO);
• Um conjunto de ASSOCIAÇÕES, cada uma ligando
um departamento a uma pessoa (relacionamento
34
LOTAÇÃO);
Modelo ER: RELACIONAMENTO
No nosso dia-a-dia convivemos com os mais variados
tipos de entidades (objetos reais), que são descritos
por uma série de atributos (características) e que
expressam uma realidade de existência.

Estas entidades do dia-a-dia estão relacionadas de


forma a mostrar a realidade com um conteúdo lógico:
 As pessoas Moram em Apartamentos;
 Os apartamentos Formam Condomínios;
 Os condomínios Localizam-se em Ruas ou Avenidas;
 As Avenidas e Ruas Estão em uma Cidade

35
Modelo ER: RELACIONAMENTO
RELACIONAMENTO

Assim como ocorre com as entidades, temos as


ocorrências de relacionamentos.

Isto pode ser melhor observado através do


Diagrama de Ocorrências. Nele, ocorrências de
entidades são representadas por círculos brancos e
de relacionamentos por círculos pretos.

36
Modelo ER: RELACIONAMENTO
Neste caso, uma ocorrência seria um par específico
formado por uma determinada ocorrência da
entidade PESSOA e por uma determinada
ocorrência da entidade DEPARTAMENTO
p3 p7 p8
Entidade
p1 p2 p4 p5
PESSOA

Relacionamento p4,d2 p ,d
LOTAÇÃO p1,d1 p ,d 5 3
2 1

Entidade
DEPARTAMENTO
d1 d2 d3
37
Diagrama de ocorrências
Modelo ER: RELACIONAMENTO
Assim como Entidade, Relacionamentos também
podem possuir atributos

(0,n) (0,n)
ENGENHEIRO ATUAÇÃO PROJETO

código código
nome Função título

No exemplo, ATUAÇÃO possui um atributo (Função),


ou seja, o papel que um engenheiro deve
desempenhar dentro de um projeto.

Função  ENGENHEIRO Função  PROJETO 38


Modelo ER: CARDINALIDADE

CARDINALIDADE (mínima e máxima)


num relacionamento

É o número (mínimo,máximo) de
ocorrências de uma entidade associadas a
uma ocorrência de outra entidade através
do relacionamento
39
Modelo ER: LEITURA da CARDINALIDADE

CASADO
? MULHER
HOMEM

PERGUNTA:
Um homem pode estar casado com quantas mulheres?

RESPOSTA:
Um homem pode não ser casado com NENHUMA mulher,
portanto a cardinalidade mínima é “0”;
Um homem pode se casar com no máximo UMA mulher,
portanto, a cardinalidade máxima é “1”;

HOMEM CASADO
(0,1) MULHER
40
Modelo ER: LEITURA da CARDINALIDADE

?
HOMEM CASADO MULHER

PERGUNTA:
Uma mulher pode estar casada com quantos homens?

RESPOSTA:
Uma mulher pode não ser casada com NENHUM homem,
portanto a cardinalidade mínima é “0”;
Uma mulher pode se casar com no máximo UM homem,
portanto, a cardinalidade máxima é “1”;

(0,1)
HOMEM CASADO MULHER
41
Modelo ER: LEITURA da CARDINALIDADE

(0,1)
HOMEM CASADO MULHER

(0,1)
HOMEM CASADO MULHER

(0,1) (0,1)
HOMEM CASADO MULHER
42
Modelo ER: Cardinalidade MÍNIMA
Cardinalidade Mínima  é o número mínimo de
ocorrências de uma entidade associadas a uma
ocorrência de outra entidade num relacionamento

Consideram-se apenas duas cardinalidades:

Opcional (“0”)  indica que o relacionamento


existe independente de haver ou não uma
ocorrência de uma entidade ligada à outra

Obrigatória (“1”)  indica que o


relacionamento deve obrigatoriamente associar
uma ocorrência de uma entidade a uma
ocorrência de outra entidade
43
Modelo ER: Cardinalidade MÍNIMA

EMPREGADO

(0,n)

ALOCAÇÃO

(1,1)
DEPARTAMENTO

Cada empregado deve estar obrigatoriamente


alocado a um setor-departamento (“1”)
Um setor-departamento pode existir mesmo que
não exista nenhum empregado alocado nele (“0”) 44
Modelo ER: Cardinalidade MÁXIMA
Cardinalidade Máxima  é o número máximo de
ocorrências de uma entidade associadas a uma
ocorrência de outra entidade num relacionamento

Consideram-se apenas duas cardinalidades:

“1”  indica que uma ocorrência de uma


determinada entidade pode estar associada a no
máximo UMA ocorrência da entidade relacionada
a ela

“n”  indica que uma ocorrência de uma


determinada entidade pode estar associada a
muitas ocorrências da entidade relacionada a ela
45
Modelo ER: Cardinalidade MÁXIMA

EMPREGADO LOTAÇÃO DEPARTAMENTO


(0,n) (1,1)

Uma ocorrência de Uma ocorrência de


empregado pode estar departamento pode
associada a no máximo estar associada a
uma (“1”) ocorrência de muitas (“n”) ocorrências de
departamento, isto é, empregado, isto é,
empregado tem Departamento tem
cardinalidade máxima 1 cardinalidade máxima n
no relacionamento Lotação no relacionamento Lotação
46
Modelo ER: TIPO DE RELACIONAMENTO

TIPO DE
TIPO DE RELACIONAMENTO
RELACIONAMENTO

Para a descoberta do tipo de relacionamento


devemos analisar de forma macro a possibilidade
de relacionamentos entre as entidades, sendo que
a ocorrência de maior valor é que determina
sempre o tipo do relacionamento (cardinalidade
máxima). São eles:

1:1
1:N
N:N

47
Modelo ER: TIPO DE RELACIONAMENTO
Relacionamento de 1:1  Cada elemento de uma
entidade relaciona-se com um e somente um
elemento de outra entidade
HOMEM MULHER
A• •X
B• •Y
C• •Z
D• •W

HOMEM
(0,1) CASADO
(0,1) MULHER

48
Modelo ER: TIPO DE RELACIONAMENTO
Exemplo ➔ Relacionamento de 1:1

(0,1) (0,1)
DIVISÃO GERENCIADA GERÊNCIA

Cada divisão é gerenciada por UM e apenas UM gerente

Cada gerente administra UMA e apenas UMA divisão

49
Modelo ER: TIPO DE RELACIONAMENTO
Relacionamento de 1:N  Cada elemento da
entidade A relaciona-se com muitos elementos da
entidade B, mas cada elemento da entidade B só
pode estar relacionado a um elemento da
entidade A
FILHO
MÃE •a
A• •b
•c
B•
•d
•e
C• •f

Este tipo de relacionamento é o mais comum no


mundo real, entretanto, possui características
específicas quanto ao sentido de leitura dos fatos e
sua interpretação 50
Modelo ER: TIPO DE RELACIONAMENTO
Exemplo ➔ Relacionamento de 1:N

MÃE POSSUI
(1,n) FILHO

MÃE
(1,1) POSSUI FILHO

A cardinalidade
determinante é sempre
a máxima obtida da
interpretação dos fatos

(1,1) (1,n)
MÃE POSSUI FILHO

51
Modelo ER: TIPO DE RELACIONAMENTO
Regra geral: um relacionamento é do tipo 1:N
quando um sentido de leitura dos fatos nos apresenta
a cardinalidade máxima de 1:N e o sentido oposto
apresenta obrigatoriamente cardinalidade máxima
de 1:1

(1,1) (1,n)
MÃE POSSUI FILHO

(1,1) (0,n)
EMPREGADO POSSUI DEPENDENTE

52
Modelo ER: TIPO DE RELACIONAMENTO
Relacionamento de N:N  Em ambos os sentidos de
leitura encontramos uma cardinalidade máxima de 1:N, o
que caracteriza ser então um contexto geral de N:N
ESTUDANTE DISCIPLINA
E1 • • D1
E2 • • D2
E3 • • D3
E4 • • D4
E5 •

ESTUDANTE DISCIPLINA
E1 • • D1
E2 • • D2
E3 • • D3
E4 • • D4 53
E5 •
Modelo ER: TIPO DE RELACIONAMENTO

Exemplo ➔ Relacionamento de N:N

ALUNO CURSA DISCIPLINA


(0,n) (0,n)

54
Modelo ER: TIPO DE RELACIONAMENTO

CURSA

1
• DISCIPLINA
ALUNO 2
E1 • • • D1
E2 • 3 • D2
E3 •
• • D3
4
E4 • •
• D4
E5 • 5

6

7

8
55

Modelo ER: TIPO DE RELACIONAMENTO

Exemplo ➔ Relacionamento de N:N

(0,n) (0,n)
FORNECEDOR FORNECE PRODUTO

Vl_Unit

Cada produto é fornecido por UM ou MUITOS fornecedores

Cada fornecedor fornece UM ou MUITOS produtos

Este tipo de relacionamento caracteriza-se por apresentar


atributos, isto é, o relacionamento possui dados que são
inerentes ao fato e não as entidades
56
Modelo ER: IDENTIFICANDO ENTIDADES
IDENTIFICADOR Relacionamento  quando o identificador
de uma entidade é composto por atributos da própria entidade
e também por relacionamentos dos quais a entidade participa
Número seqüência
nome
código nome

(1,1) (0,n)
EMPREGADO DEPENDENTE

CADA dependente está relacionado a exatamente UM empregado


um dependente é identificado através do código do empregado ao
qual ele está relacionado e por um número de seqüência que
distingue os diferentes dependentes de um mesmo empregado

Alguns autores chamam esta entidade de “FRACA” pois


ela só existe relacionada à outra entidade 57
Parte 3

Modelo Relacional/Lógico

58
Modelo Relacional/Lógico – TABELAS
Uma tabela é um conjunto não ordenado de linhas
(tuplas, na terminologia acadêmica). Cada linha é
composta por uma série de campos (valor de atributo).
coluna
Código Nome Data Admissão Código Depto
0111 João 12/11/2000 01 linha
0112 Antônio 12/12/2001 01
0271 Carlos 05/06/2001 10
0108 Eduardo 03/03/2000 10
0357 Luís 20/10/2001 10
0097 Vera 15/02/2002 21

A primeira linha (registro) da tabela quer dizer que o


Cliente João, cujo código é igual a 0111, foi admitido no
dia 12/11/2000 e trabalha no Departamento cujo código 59
é 01.
Modelo Relacional/Lógico – TABELAS

coluna
linha(tupla)
(atributo)

Código Nome Data Admissão Código Depto


0111 João 12/11/2000 01
0112 Antônio 12/12/2001 01
Valor do
0271 Carlos 05/06/2001 10 campo
0108 Eduardo 03/03/2000 10
0357 Luís 20/10/2001 10
0097 Vera 15/02/2002 21
As linhas de uma tabela não tem ordenação. A ordem de
recuperação pelo SGBD é arbitrária, a menos que a
instrução de consulta tenha especificado explicitamente
uma ordenação (ORDER BY). 60
Modelo Relacional/Lógico – CHAVES
CHAVE  é a forma de identificar linhas e estabelecer
relações entre linhas de tabelas de um banco de dados
relacional

CHAVE PRIMÁRIA
é uma coluna ou uma combinação de colunas cujos valores
distinguem uma linha das demais dentro de uma tabela

Empregado
CodEmp Nome CodDepto CategFuncional
E5 Souza D1 C5
E3 Santos D2 C5
E2 Silva D1 C2
E1 Soares D1 ----
61
Modelo Relacional/Lógico – CHAVES
Empregado
Chave
Primária CodEmp Nome CodDepto CategFuncional
Simples E5 Souza D1 C5
E3 Santos D2 C5
E2 Silva D1 C2
E1 Soares D1 ----

Chave EmpxProj
Primária CodEmp CodProj Horastrab
Composta E1 01 86
E1 02 32
E2 01 180
E6 01 40
E6 02 120 62
Modelo Relacional/Lógico – CHAVES
CHAVE ESTRANGEIRA
é uma coluna ou uma combinação de colunas cujos
valores aparecem necessariamente na chave primária
de uma tabela.

É ela que permite a implementação de


relacionamentos em um banco de dados relacional

Empregado Chave estrangeira

CodEmp Nome CodDepto CategFuncional


E5 Souza D1 C5
E3 Santos D2 C5
E2 Silva D1 C2
E1 Soares D1 ----
63
Modelo Relacional/Lógico – CHAVES
Tabela: Departamento
CodDepto Nome Depto Verba Qual o nome do
01 Contabilidade 9.500,00 departamento
10 Vendas 15.000,00 do Funcionário
21 Faturamento 12.800,00 João?

Tabela: Empregado
Codigo Nome Data Admissão CodDepto
0111 João 12/11/2000 01
0112 Antônio 12/12/2001 01
0271 Carlos 05/06/2001 10
0108 Eduardo 03/03/2000 10
0357 Luís 20/10/2001 10
0097 Vera 15/02/2002 21 64
Modelo Relac./Lógico – EXPRESSÃO RELACIONAMENTO
Quais os funcionários do
Tabela: Departamento
Depto de vendas?
CodDepto Nome Depto Verba - Código do Depto de
vendas = 10
01 Contabilidade 9.500,00
10 Vendas 15.000,00 Quais os funcionários
21 que tem código do Depto
Faturamento 12.800,00 igual a 10?
- Carlos, Eduardo e Luís
Tabela: Empregado

Código Nome Data Admissão Código Depto


0111 João 12/11/2000 01
0112 Antônio 12/12/2001 01
0271 Carlos 05/06/2001 10
0108 Eduardo 03/03/2000 10
0357 Luís 20/10/2001 10
0097 Vera 15/02/2002 21 65
Modelo Relacional/Lógico – REGRAS DE CONVERSÃO

Modelo Conceitual para o Modelo Relacional/Lógico:

1. Cada entidade do Modelo Conceitual transforma-se em


uma tabela no Modelo Relacional/Lógico contendo como
campos os respectivos atributos da entidade.

2. O atributo identificador da entidade transforma-se em


chave primária na tabela.

3. Analisar os relacionamentos entre as entidades para


gerar a chave estrangeira, aplicando a regra de acordo
com o tipo de relacionamento:

66
Modelo Relacional/Lógico – REGRAS DE CONVERSÃO

Analisando os relacionamentos:

✓ Relacionamento de 1:N – Não cria nova tabela, mas a


chave primária da tabela de lado 1 transforma-se em
chave estrangeira na tabela de lado N do
relacionamento. Caso o relacionamento contenha
atributos, esses devem acompanhar a chave estrangeira.

1 N
DEPARTAMENTO LOTAÇÃO EMPREGADO

67
Modelo Relacional/Lógico – REGRAS DE CONVERSÃO

Analisando os relacionamentos:

✓ Relacionamento de N:N – Cria-se nova tabela cuja


chave primária será composta pela chave primária
das duas tabelas relacionadas. Caso o relacionamento
contenha atributos, esses devem ser adicionados na
nova tabela, do contrário, será uma tabela contendo
apenas a chave primária. Esses campos receberão a
restrição de chave primária composta e ao mesmo tempo
serão, individualmente, chave estrangeira.

N N
PROJETO ALOCADO EMPREGADO

HorasTrab
68
Modelo Relacional/Lógico – REGRAS DE CONVERSÃO

Analisando os relacionamentos:

✓ Relacionamento de 1:1 – Não cria nova tabela, mas a


chave primária de um dos lados deve se transformar
em chave estrangeira do outro lado do
relacionamento. O lado a ser escolhido deverá ser
aquele que terá menor possibilidade de conter valores
nulos na coluna que será a chave estrangeira. Caso o
relacionamento contenha atributos, esses devem
acompanhar a chave estrangeira.

1 1
PEDIDO GERA NOTA FISCAL

DataEmissão
69
Modelo Relacional/Lógico – REGRAS DE CONVERSÃO

ATENÇÃO:

✓ Qualquer tabela que não tenha sido gerada de acordo


com essa regra está errada, ou seja, todas as tabelas
que surgirem no modelo relacional devem corresponder a
uma entidade ou ser fruto do relacionamento de N:N no
modelo conceitual.

✓ Uma tabela gerada a partir do relacionamento de N:N só


contém campos além das chaves se esses forem
atributos do relacionamento na Modelagem Conceitual.

70
Modelo Relac./Lógico – RESTRIÇÕES DE CHAVES
A existência de uma chave estrangeira impõe restrições
que devem ser garantidas ao executar diversas operações
de alteração no banco de dados

 Quando da inclusão de uma linha na tabela que contém


a chave estrangeira (ela deve existir na chave primária);
 Quando da alteração do valor da chave estrangeira (ele
deve existir na chave primária);
 Quando da exclusão de uma linha da tabela que
contém a chave primária referenciada pela chave
estrangeira (verificar se outra tabela a utiliza);
 Quando da alteração do valor da chave primária
referenciada pela chave estrangeira (garantir que na
coluna chave estrangeira não apareça o antigo valor da
chave primária alterada); 71

Você também pode gostar