Você está na página 1de 88

MODELO ENTIDADE

RELACIONAMENTO - MER
Disciplina: Banco de Dados 1
Professor: Leonardo Cerqueira
Email: leonardo@fcsl.edu.br
Banco de Dados - Conceito
O Que um Banco de Dados?
Conceito Dado / Informao / Conhecimento

A definio de informao pode ser


dada, restringindo-se o seu conceito
informtica, como um dado que possui
unicidade, atomicidade e que j
tenha sido tratado, de tal maneira que
agregue significante e significado
representando o objeto de origem, real
ou abstrato.
Banco de Dados - Conceito
Conhecimento: A prtica de agregar valor
A informao. Dados e Informaes
Processadas e organizadas que transmitem
Uma compreenso.

Informao: um conjunto organizado


de dados.

Dado: Itens referentes a uma descrio


Primria, no organizados,
No transmitindo uma informao.
Banco de Dados - Conceito
O Que um Banco de Dados?

Bancos de dados (portugus brasileiro) ou bases de dados


(portugus europeu) so colees organizadas de
informaes (dados) que se relacionam de forma a criar um
sentido e dar mais eficincia durante uma pesquisa ou
estudo.
So de vital importncia para empresas, e h duas dcadas se
tornaram a principal pea dos sistemas de informao.
Banco de Dados - Conceito
O Que um SGBD?

SGBD: Sistemas Gerenciadores de Bancos de Dados. que


surgiram na dcada de 70.
Antes destes, as aplicaes usavam sistemas de
arquivos do sistema operacional para armazenar suas
informaes. Na dcada de 80 a tecnologia de SGBD
relacional passou a dominar o mercado, e atualmente utiliza-
se praticamente apenas ele.
Banco de Dados - Conceito
Modelo Entidade-Relacionamento (ER) 8

Modelos de Dados
Modelo de dados:
Descrio formal da estrutura de um banco de dados

Modelos propostos:
Modelo conceitual
Modelo Lgico Minimundo
Modelo Fsico

Projeto Conceitual
Nveis
De Projeto Lgico
Abstrao

Projeto Fsico
Modelo Entidade-Relacionamento
Tcnica diagramtica para a representao de
um modelo conceitual.
Definida originalmente por Chen (76) e estendida
na dcada de 80.
Tcnica formal que estabeleceu-se como padro
para modelagem conceitual de BD Relacional.
Modelo Entidade-Relacionamento
O modelo Entidade-Relacionamento (E-R) tem
por base a percepo de que o mundo real
formado por um conjunto de objetos chamados
de entidades e pelo conjunto de relacionamentos
entre esses objetos.
Foi desenvolvido para facilitar o projeto do banco
de dados, permitindo a especificao do
esquema da empresa que representa toda a
estrutura lgica.
O modelo E-R um dos modelos com maior
capacidade semntica; que se referem a
tentativa de representar o significado dos dados.
Modelo Entidade-Relacionamento

Existem trs noes bsicas empregadas pelo


modelo E-R:
conjunto de entidades.
conjunto de relacionamentos.
atributos.
MER Conjunto de Entidades
Uma entidade uma coisa ou um objeto do
mundo real que pode ser identificada de forma
unvoca em relao a todos os outros objetos.
Por exemplo, cada aluno na universidade uma
entidade.
Uma entidade tem um conjunto de propriedades,
e os valores para alguns conjuntos dessas
propriedades devem ser nicos. Uma entidade
pode ser concreta como uma pessoa ou um livro,
ou pode ser abstrata como um emprstimo, uma
viagem de frias ou um conceito.
MER Conjunto de Entidades

Um conjunto de entidades um conjunto de abrange


entidades de um mesmo tipo que compartilham as
mesmas propriedades: os atributos.
As entidades individuais que constituem um conjunto
so chamadas de extenses do conjunto de
entidades.
MER Conjunto de Entidades

Representao Grfica: Retngulos

Funcionrios Departamentos

Livros
MER Atributos
Uma entidade representada por um
conjunto de atributos.
Atributos so propriedades descritivas de
cada membro de um conjunto de entidades.
Podemos considerar atributos como sendo as
caractersticas da entidade.
Formalmente um atributo de um conjunto de
entidades uma funo que relaciona o
conjunto de entidades a seu domnio.
MER Atributos

Um atributo, como usado no MER, pode ser


caracterizado pelos seguintes tipos:
Atributos Simples: Os atributos simples so
aqueles que no so divididos em partes.
Exemplo: sexo_cliente
Atributos Compostos: Os compostos podem ser
divididos em partes, por exemplo, nome_cliente,
pode ser estruturado em prenome,
nome_intermedirio, e sobrenome. Os atributos
compostos ajudam-nos a agrupar atributos
correlacionados tornando o modelo mais claro.
MER Atributos

Um atributo, como usado no MER, pode ser


caracterizado pelos seguintes tipos:
Atributos monovalorados ou multivalorados.
Um exemplo de um atributo monovalorado poderia
ser o atributo nmero_emprstimo, o qual teria
associado apenas um nmero de emprstimo.
Pode acontecer, no entanto, que uma
determinada instncia possua um conjunto
de valores para uma nica entidade.
Por exemplo, o atributo nome_dependente, da
entidade empregado, pode ter um, nenhum ou
vrios dependentes cadastrados.
MER Atributos

Um atributo, como usado no MER, pode ser


caracterizado pelos seguintes tipos:
Atributos nulos. Um atributo nulo quando uma
entidade no apresenta valor para o mesmo. Por
exemplo, se um empregado no possui
dependentes o valor do atributo nome_dependente
ser nulo, significando que este atributo no
aplicvel a esta instncia em particular.
Atributo derivado. O valor deste atributo pode ser
derivado de outros atributos ou entidades a ele
relacionados. Por exemplo, a idade de um
funcionrio pode ser calculada pela data de seu
aniversrio.
MER Atributos

Representao Grfica:

Endfun
c
Nomfunc
Salfunc
Matfunc
Coddepto

Matfunc
Funcionrios
NumDep
Nomde
Dependentes p
MER Atributos
Representao Grfica:

Telefone*
MER Atributos
Exerccio Prtico: Identifique cada item destacado:
MER Conjunto de Relacionamentos

Um relacionamento uma associao entre uma ou


vrias entidades. Um conjunto de relacionamentos
um conjunto formado por relacionamentos de um
mesmo tipo.
Considere dois relacionamentos de entidades cliente
e emprstimo. O conjunto de relacionamentos
devedor denota a associao entre clientes e
emprstimos bancrios contrados pelo cliente.
A associao entre os conjuntos de entidades
referida como uma participao, isto , o conjunto
de entidades E1, E2,..., Em participa do conjunto de
relacionamentos R.
MER Conjunto de Relacionamentos

A funo que uma entidade desempenha em


um relacionamento chamada papel. Uma
vez que os conjuntos de entidades
participantes em um conjunto de
relacionamentos so geralmente distintos,
papis so implcitos, e no so em geral,
especificados. Mas, so teis quando o
relacionamento precisa ser esclarecido.
MER Conjunto de Relacionamentos

Em conjuntos de relacionamentos
recursivos, nomes explcitos de papis
muitas vezes so necessrios. Por exemplo,
o conjunto de entidades empregado, e o
conjunto de relacionamentos trabalha_para,
que modelado para ordenar os pares da
entidade empregado. O primeiro empregado
tem papel de gerente, enquanto que o outro
tem o papel de empregado.
MER Conjunto de Relacionamentos

Um relacionamento pode ter atributos


descritivos. O conjunto de relacionamentos
depositante, com o conjunto de entidades
cliente e conta, por exemplo, apresenta o
atributo data_acesso.

Relacionamento binrio um
relacionamento que envolve dois conjuntos
de entidades. A maior parte dos conjuntos de
relacionamentos modelados em um sistema
de banco de dados do tipo binrio.
MER Conjunto de Relacionamentos

Algumas vezes, no entanto, aparecem


relacionamentos que envolvem mais de dois
conjuntos de entidades. Como exemplo,
podemos combinar os conjuntos de
relacionamentos devedor e
agncia_emprstimo formando o conjunto de
relacionamentos CEA, entre as entidades
Cliente, Emprstimo e Agncia.
O nmero de entidades que participam de um
relacionamento define o grau deste
relacionamento. Um conjunto de
relacionamento binrio tem grau 2, e um
ternrio, grau 3.
MER Conjunto de Relacionamentos

Representao Grfica: Losangos

Funcionrio Dependente
Tem

Trabalha Departamento
MER Conjunto de Relacionamentos
Representao Grfica: Cross Feet
MER Conjunto de Entidades ou
Atributos?

Muitas vezes aparecem dificuldades no


reconhecimento do que seja uma entidade ou um
atributo.
Por exemplo, uma entidade empregado com dois
atributos: nome_empregado, e telefone. O atributo
telefone pode ser modelado como uma entidade.
Se definirmos como atributo, isto implica dizer que
cada empregado tem precisamente um nmero de
telefone a ele associado.
Caso seja modelado como entidade, reflete que um
empregado pode ter vrios (ou nenhum) nmeros de
telefones a ele associado.
MER Conjunto de Entidades ou Atributos?

J o atributo nome_empregado no poderia


nunca ser modelado como entidade.
Infelizmente no existe uma resposta simples
para sabermos do que constitui um atributo e o
que constitui uma entidade. As distines vo
depender da estrutura geral que est sendo
modelada.
MER Conjunto de Entidades ou
Relacionamentos?

Nem sempre fica claro se devemos modelar


um objeto como um conjunto de entidades ou
de relacionamentos.
Por exemplo, considere o problema do
emprstimo bancrio representado como um
relacionamento entre clientes e agncias,
com nmero_emprstimo e conta como
atributos. Cada emprstimo representado
como um relacionamento entre um cliente e
uma agncia.
MER Conjunto de Entidades ou Relacionamentos?

Se todo emprstimo tomado por exatamente um cliente


e est associado exatamente uma agncia, podemos
resolver o projeto de modo satisfatrio, representando
emprstimo como relacionamento.
Mas, considere que vrios clientes tomem um mesmo
emprstimo em conjunto. Ento, nesse caso,
necessrio definir um relacionamento em separado para
cada componente do emprstimo conjunto.
Desta forma, os atributos descritivos numero_emprstimo
e conta precisaro ser replicados para cada um dos
relacionamentos.
MER Conjunto de Entidades ou Relacionamentos?

Os problemas que surgem devido a esta replicao so:


Os dados so armazenados diversas vezes, desperdiando
espao em memria.
As atualizaes deixam potencialmente os dados em estado
inconsistente. Ao descrever emprstimo como uma entidade, este
problema de replicao desaparece.
MER - Relacionamentos n-simos.
Uma outra caracterstica importante que diz respeito a
relacionamentos, que sempre possvel recompor um
conjunto de relacionamentos no-binrio, por um nmero
de relacionamentos binrios distintos.
Mas, pode ser necessria a criao de um atributo de
identificao para o conjunto de entidades criado para
substituir o conjunto de relacionamentos.
Alm disso, um conjunto de relacionamentos n-simo
mostra claramente todos os conjuntos de entidades que
participam de uma determinada relao.
O projeto correspondente usando somente
relacionamentos binrios torna mais difcil estabelecer as
restries desta participao.
MER Relacionamento Ternrio
Relacionamento simultneo entre trs entidades.

@CodDoe
@CRMMed NomDoe
NomMed Doena
EndMed
0,N @CodPac
1,N 1,N NomPac
Mdico Atestado Paciente
EndPac
@1CodPac
@2CodDoe
@3CRMMed
@4DtIni
DtFim
MER Mapeamento de Restries
O esquema E-R de uma empresa pode definir certas
restries as quais o contedo do banco de dados deve
respeitar.
Exemplos de restries so: o mapeamento de
cardinalidades e a existncia de dependncias.
MER - Cardinalidade
O mapeamento de cardinalidades expressa o
nmero de entidades s quais outras entidades
podem estar associadas atravs de um conjunto
de relacionamentos.
Dada duas entidades X e Y, cardinalidade a
quantidade de ocorrncias da entidade X que
esto associadas com uma ocorrncia de Y, e
vice-versa.
MER - Cardinalidade
Para um conjunto de relacionamentos binrio, o
mapeamento de cardinalidades segue as instrues
abaixo:
Um para um. Uma entidade em A est associada no mximo
a uma entidade em B, e uma entidade em B est associada
no mximo a uma entidade em A. (1:1)

Funcionario 1 1 Departamento
Chefia
MER - Cardinalidade
Um para muitos. Uma entidade em A est associada a
vrias entidades em B. Uma entidade em B deve estar
associada a uma nica entidade em A. (1:N)
Muitos para um. Uma entidade em A est associada a
no mximo uma entidade em B. Uma entidade em B,
entretanto, pode estar associada a um nmero
qualquer de entidades em A. (N:1)

Funcionario 1 possu
N Dependente
i
MER - Cardinalidade
Muitos para muitos. Uma entidade em A est associada a
qualquer nmero de entidades em B e uma entidade em B est
associada a um nmero qualquer de entidades em A.
(N:N) ou (M:M)

Funcionario N Trabalha
N Projeto
MER Dependncia de Existncia
Uma classe importante de restries a
dependncia de existncia.
Se a existncia da entidade x depende da
existncia da entidade y, ento x dito
dependente da existncia de y.
E se y for excludo, o mesmo deve acontecer
com x. A entidade y chamada de entidade
dominante e a x chamada entidade
subordinada.
Dizemos que o relacionamento e Obrigatrio,
caso contrrio dizemos que Opcional.
MER Dependncia de Existncia
Como exemplo, considere o conjunto de
entidades emprstimo e o conjunto de
entidades pagamento.
Toda entidade pagamento est associada a
uma entidade emprstimo. Se uma entidade
emprstimo excluda, todas as entidades
pagamento a ela associada devem ser
excludas tambm.
Se por outro lado, uma entidade pagamento
for excluda, a entidade emprstimo no ser
afetada.
Portanto, a entidade emprstimo dominante
e a entidade pagamento subordinada.
MER Dependncia de Existncia
A participao de um conjunto de entidades E no
conjunto de relacionamento R dita total se
todas as entidades em E participam de pelo
menos um relacionamento em R.
Se somente algumas entidades em E participam
do relacionamento R a participao do conjunto
de entidades dito parcial.
A participao total est relacionada existncia
de dependncia.
MER Dependncia de Existncia
Representando o Relacionamento
Obrigatrio/Opcional: Consideremos um
relacionamento entre X e Y.
Obrigatrio: Para uma ocorrncia de X tem pelo
menos uma ocorrncia de Y.
Opcional: Para uma ocorrncia de X no precisas
existir nenhuma ocorrncia de Y.
Funcionrio Te Dependente
1,1 0,N
1,1 m

0,1 Departamento
Chefia
MER - Cardinalidade
Notao: Cross Feet
MER Chaves
Precisamos especificar como as entidades dentro
de um dado conjunto de entidades e os
relacionamentos dentro de um conjunto de
relacionamentos podem ser identificados.
O conceito de chave nos ajuda a fazer esta
distino.
Chave Candidata
Chave Alternativa
Chave Primria
Chave Estrangeira
MER Chave candidata
Uma chave candidata um conjunto de um ou mais
atributos que, nos permitem identificar de maneira
unvoca, uma entidade em um conjunto de entidades.
Exemplo:
Matricula, CPF.
MER Chave Primria
O termo chave primria o termo usado para
caracterizar a chave candidata escolhida pelo projetista
do banco como sendo de significado especial para a
identificao das entidades.
A especificao de uma chave representa uma restrio
ao mundo real da empresa que est sendo modelada.
Chave primria = Primary Key (PK)
MER Chave Estrangeira
Representa o relacionamento entre entidades. A chave
estrangeira de uma entidade deve ser chave primaria na
entidade relacionada.
Uma entidade pode ter vrias chaves estrangeiras, de
acordo com os relacionamentos que elas possuem.
Chave estrangeira = Foreing Key (FK)
MER - Chaves
Representao Grfica: PK Sublinhada
FK Duplo circulo
Endfun
c
Nomfunc
Salfunc
Matfunc
Coddepto

Matfunc
Funcionrios
NumDep
Nomde
Dependentes p
MER - Chaves
Representao Grfica:

Funcionrio Tem Dependente

@Matfunc @1Matfunc
Nomfunc @2NumDep
Endfunc Nomdep
Salfunc
Coddepto
PK simples Precedido de @
PK simples Precedido de @n onde n
seqencial
FK - Sublinhado
MER - PK/FK X Cardinalidade
Um-para-Um (1:1)
Um-para-Muitos (1:N) P
K
F
K

P F
K K

@1Matfunc
Funcionrio 1,1 0,N Dependente @2Numdep
Te
m Nomdep
1,N 1,1
@Matfunc
Nomfunc
Endfunc
Salfunc Chefia
Coddepto
0,1
@Coddepto
Trabalh 1,1 Departamento
Nomdepto
a Matfuncchf
MER - PK/FK X Cardinalidade
Muitos-para-Muitos (N:N)

P F F P
K K K K

1,N 0,N
Funcionrio Trabalha_e Projeto
m
@Matfunc @CodProj
Nomfunc @1CodProj NomProj
Endfunc @2MatFunc DtIni
Salfunc DataInicial DtFim
Coddepto DataFinal
NumHoras
MER Auto-Relacionamento
Relacionamento entre ocorrncias de uma mesma
entidade. (Recursivo ou Reflexivo) Hierarquia.

@Coddepto
Nomdepto
Departamento Pertence
1
Coddeptsup N
MER Entidade Associativa
Relacionamentos so tratados como entidade de nvel
mais alto. (Agregao)

1,N
Funcionrio Equip Projeto @CodProj
e NomProj
0,N DtIni
@Matfunc
Nomfunc @1CodProj 0,N DtFim
Endfunc @2MatFunc
Salfunc
Coddepto 0,N @CodRec
Recurs Recurso DesRec
o
@1CodProj
@2MatFunc Equipe Informtica
@3CodRec
MER Entidade Associativa

(1,N) (1,N)
Cliente Correntista Contas
s

Concesso
(0,1)
CartesMagnticos
MER Integridade Referencial
Cascade (C) - A excluso da PK implica na excluso dos
valores de FK correspondentes.

C
@Matfunc
@1Matfunc
Nomfunc
Endfunc Funcionrio Tem Dependente @2NumDep
Nomdep
Salfunc
Coddepto
MER Integridade Referencial
Restrict (R) - A excluso da PK s ocorre se no existir
valores de FK correspondentes.

R @1CodAge
@CodAge @2NumCta
NomAge Agncia Poss Conta ValSal
EndAge ui ValLimEsp
MER Integridade Referencial
Set Null (N) - A excluso da PK implica na atualizao
dos valores de FK correspondentes com NULO.
(Opcional)

@CodDepto N @CodEqu
NomDepto DesEqu
Departamento Tem Equipamento CodDepto
MER - Generalizao
Unio de duas ou mais entidades de nvel mais
baixo produzindo uma entidade de nvel mais
alto. Conjuntos de entidades vistos como um
conjunto de entidade genrico.

Homem
Funcionrio
Mulher
MER - Generalizao

CI
Empregados Nome

Nro_Habilitao

Motoristas Secretrias Engenheiros


Lnguas (1,N) Formaes (1,N)
MER - Especializao
Separao de uma entidade de nvel mais alto
formando um conjunto de entidades de nvel
mais baixo. Algumas entidades possuem
propriedades adicionais, sendo especializadas
em outro conjunto de entidades (herana)

Conta Corrente
Conta Bancria
Conta Poupana
MER Gen/Esp
Pessoa

Funcionrio Professor Aluno

Empregados
p

Motoristas Secretrias Engenheiros


Como modelar um sistema?
1. Identificar o Universo.
2. Identificar as entidades envolvidas.
3. Identificar os relacionamentos entre elas.
4. Definir os atributos das entidades, PKs, e
FKs.
5. Especificar as restries de cardinalidade,
obrigatoriedade/opcionalidade
6. Definir as restries de integridade (Cascade,
Restrict ou Set Null).
Exerccio: CADASTRO NACIONAL DE
VECULOS
Voc apresentar um modelo de entidades e relacionamento para um
sistema que ir controlar o cadastro nacional de veculos. Sabe-se
que:
O veculo possui sempre uma placa nica em todo pas. Alm
disso, ele ser emplacado sempre em uma localidade do pas. O
controle do cadastro ser feito por estado;
O veculo possui sempre um responsvel legal por ele.
necessrio manter o histrico desta responsabilidade
(propriedade);
O veculo pertence sempre a uma categoria, conforme as
especificaes do Departamento Nacional de Trnsito. Esta
categoria pode classificar os tipos de veculos existentes no pas;
O veculo sempre de um modelo, que por sua vez pertence
sempre a uma marca. necessrio a informao do ano de
fabricao do veculo.
Modelo de dados

Evoluo histrica dos modelos de


dados:
Modelo Hierrquico
Modelo de Redes
Modelo Relacional
Abordagens Ps-Relacionais (Orientado a
Objetos, Objeto/Relacional, etc.)
Modelo Relacional

Criado em 1969/70 pelo matemtico


E.F.Codd.
Razes para seu sucesso:
Estrutura de dados simples e uniforme.
Fundamentao terica forte.
Os gerenciadores mais conhecidos baseados
neste modelo so: ORACLE, MSSQL Server,
DB2, Sybase, Informix, Ingress entre outros.
Aspectos do Modelo Relacional

Estrutura: O modelo manipulado por meio


de tabelas.
Integridade: As tabelas devem satisfazer a
certas restries de integridade.
Manipulativo: Os operadores derivam de
tabelas. Exemplos: Restrio, Projeo e
Juno.
Aspecto estrutural

A estrutura de dados do modelo relacional a


relao, ou comumente chamada de tabela.
BD representado por um conj. de relaes.
Cada relao um conjunto linhas, chamadas
de tuplas (registros ou linhas) e de um
conjunto de atributos (colunas ou campos).
Um domnio caracteriza o tipo de dado previsto
para uma coluna.
Aspecto de integridade

Restries obrigatrias impostas pelo


modelo.
Domnio: Tipos de dados que uma coluna pode
assumir.
Chave: Definio das chaves ou das colunas
que devem atender certas regras ligadas a sua
existncia.
Integridade: Regras que garantem a
consistncia.
Identificando Aspectos
Modelo Relacional

Um banco de dados relacional composto


por um conjunto de tabelas ou relaes, cada
uma das quais com um nome nico.
A terminologia tabela mais comum nos
produtos comerciais e na prtica.
J a terminologia relao foi utilizada na
literatura original sobre a abordagem
relacional e mais comum na rea
acadmica.
Modelo Relacional - Tabelas
Uma tabela um conjunto no-ordenado de linhas (tuplas,
na terminologia acadmica), onde cada linha composta
por uma srie de campos, ou atributos. Cada linha de uma
tabela representa um relacionamento entre um conjunto de
valores.

Cada campo identificado por nome do campo (ou


atributo), e o conjunto de campos das linhas de uma tabela
que possuem o mesmo nome formam uma coluna.
Modelo Relacional
As linhas de uma tabela no esto
ordenadas. A ordem de recuperao pelo
SGBD arbitrria, a menos que a instruo
de consulta tenha especificado uma
ordenao. No possvel referenciar linhas
de uma tabela por posio.
Os valores de campo de uma tabela so
atmicos e monovalorados.
As linguagens de consulta a bases de dados
relacionais permitem o acesso por quaisquer
critrios envolvendo os campos de uma ou
mais linhas.
Modelo Relacional - Chaves

O conceito bsico para estabelecer relaes entre


linhas de tabelas de um banco de dados relacional
o da chave.
Em um banco de dados relacional h pelo menos
trs tipos de chaves a considerar: a chave primria, a
chave alternativa e a chave estrangeira.
MR Chave Primria

Uma chave primria uma coluna ou uma


combinao de colunas que identificam uma
nica linha das demais dentro de uma tabela.
Chave primria = Primary Key (PK)
Uma PK serve para recuperar uma nica
ocorrncia de registro em uma tabela ou
relao.
Exemplos:
Pessoa Fsica = CPF
Aluno = Matrcula
MR Chave Primria

Na tabela de Empregados, a chave primria


a coluna CdigoEmp.
A tabela Dependentes possui uma chave
primria composta: CdigoEmp e NoDep.
MR Chave Primria
Nas definies formais de PK, exige-se que a mesma seja
mnima, ou seja, todas as suas colunas so efetivamente
necessrias para garantir o requisito de unicidade de
valores da chave.
Na abordagem relacional, ao se definir uma PK, no est se
definindo um caminho de acesso. Est se definindo uma
restrio de integridade que precisa ser obedecida para
todos os estados vlidos do BD.
No caso da PK, a regra a da unicidade dos valores nas
colunas que compem a chave e a necessidade de haver
um valor (NOT NULL).
MR Chave Estrangeira

Uma chave estrangeira uma coluna ou uma


combinao de colunas cujos valores
aparecem necessariamente como chave
primria de uma tabela. A chave estrangeira
o mecanismo pelo qual implementam-se os
relacionamentos em um banco de dados
relacional.
Chave estrangeira = Foreing Key
Exemplos: Considere as seguintes tabelas:
MR Chave Estrangeira
Na tabela de Empregados,
identificada neste exemplo como
Tabela 1, a coluna CdigoDepto
uma chave estrangeira em
relao a chave primria da tabela
Departamentos, ou tabela 3. Isso
significa que, na tabela
Empregados, no podem
aparecer linhas que contenham
um valor do campo CdigoDepto
que no exista na coluna do
mesmo nome da tabela
Departamentos. Interpretando
esta restrio, dizemos que todo
empregado deve estar associado
a um departamento.
MR Chave Estrangeira

A incluso de uma chave estrangeira impe restries


que devem ser garantidas em diversas situaes de
alterao do banco de dados:
Quando da incluso de uma linha na tabela que contm a
chave estrangeira.
Quando da alterao do valor da chave estrangeira.
Quando da excluso de uma linha na tabela que contm a
chave primria referenciada como chave estrangeira.
A palavra estrangeira pode denotar a idia enganosa
de que a mesma sempre referencia uma chave
primria de uma outra tabela. Entretanto esta
restrio no existe, A chave estrangeira pode
referenciar a chave primria da prpria tabela.
MR Chave Estrangeira

Por exemplo, na tabela Empregados


mostrada na Tabela, pode existir um campo
denotado CodigoEmpGerente que o cdigo
de um outro empregado que gerente do
empregado da linha em questo.

Tabela Empregado
MR Chave Alternativa
Em alguns casos, mais de uma coluna ou
combinaes de colunas podem servir para
distinguir uma linha das demais.
Uma das colunas escolhida como chave
primria. As demais colunas so
denominadas chaves alternativas.
Alguns autores a chamam de chaves
candidatas pois elas so candidatas a ser
uma PK mas no foram selecionadas para
isso.
MR Chave Alternativa
Na tabela de Empregados abaixo, tanto a
coluna CodigoEmp quanto a coluna CIC
podem ser usadas para distinguir uma linha
das demais. Como o CodigoEmp foi o
escolhido para ser chave primria, dizemos
que a coluna CIC uma chave alternativa.
Modelo Relacional - Domnios
Quando uma tabela de banco de dados definida,
para cada coluna da tabela deve ser especificado um
conjunto de valores que os campos da respectiva
coluna podem assumir. Este conjunto de valores
chamado de domnio da coluna, ou domnio do
campo.
Exemplo: sexo (Deve ser F ou M, nenhum outro valor)
Alm disso, deve ser especificado se os campos da
coluna podem estar vazios ou no ( null em ingls).
Estar vazio indica que o campo no recebeu nenhum
valor de seu domnio.
As colunas na quais no so admitidos valores
vazios so chamadas de colunas obrigatrias. As
colunas nas quais podem aparecer campos vazios
so chamadas de colunas opcionais.
Modelo Relacional Restries de Integridade
Um dos principais objetivos de Banco de
Dados manter a integridade dos dados.
Dizer que os dados de um BD esto
ntegros significa dizer que eles refletem
corretamente a realidade representada
pelo banco de dados e que so
consistentes entre si.
Uma restrio de integridade uma regra
de consistncia de dados que garantida
pelo prprio SGBD.
MR Restries de Integridade
Em SGBD Relacionais, existem as seguintes restries de
integridade conhecidas:
Integridade de domnio: especificam que o valor de um
campo deve obedecera definio de valores admitidos
para a coluna ( o domnio da coluna).
Integridade de vazio (nularidade): especificado se os
campos de uma coluna podem ou no ser vazios. Campos
que compem a chave primria so sempre obrigatrios.
Integridade de chave: trata-se da restrio que define
que os valores da chave primria e alternativa devem ser
nicos.
Integridade referencial: define que os valores dos
campos que aparecem em uma chave estrangeira devem
aparecer na chave primria da tabela referenciada.
MR Restries de Integridade
Existem outros tipos de restries de
integridade que no se encaixam em
nenhuma das categorias acima
mencionadas e que normalmente no so
garantidas pelo SGBD. Estas restries
so chamadas de restries semnticas.
Exemplos:
Um empregado do departamento denominado
Finanas no pode ter a categoria funcional
Engenheiro.
Um empregado no pode ter um salrio maior
do que seu superior imediato.