You are on page 1of 48

SCC-240/540/640 Bases de Dados

Prof. Robson L. F. Cordeiro

Modelo Relacional
Material original editado: Profa. Elaine Parros Machado de Sousa
Modelo Relacional

Criado por E. F. Codd (IBM)


A relational model of data for large shared data
banks. Communications of the ACM,Volume
13 , Issue 6, June 1970.
Modelo de Implementao
projeto lgico

2
Sistemas de Banco de Dados
Desenvolvimento de
Sistemas de Banco de Dados Ciclo de Vida
Mundo Real

Requisitos Coleta/Especificao Requisitos


de Dados de Requisitos Funcionais

Projeto Conceitual Projetistas de Anlise Funcional


Interface

Projeto Lgico Prottipo Projeto

DBA
Projeto Fsico Pessoal de Suporte e Implementao
Operao
Projetistas
de BD SGBD Aplicao
Dados e
Metadados Usurios
Operadores de Aplicao
3
Modelo Relacional

O Modelo Relacional representa


uma base de dados como uma
coleo de relaes
[Elmasri&Navathe]
Base terica em Teoria de
Conjuntos
4
Definio do Modelo

Valores
dados do mundo real
Tabelas
representam colees de objetos, entidades,
relacionamentos, etc, do mundo real
tabelas so uma noo intuitiva para as
RELAES

5
Modelo Intuitivo

Nome NUSP Curso


Tupla Atributo
Paulo 9999 Info
Izabella 8888 Info
Joo 1111 Comp
Valor

6
Modelo Intuitivo

Nome NUSP Curso .


Esquema

Paulo 9999 Info


Izabella 8888 Info
Joo 1111 Comp

Instncia
7
Terminologia
Relao
Tabela
Tupla
Registro, linha
Atributo
Campo
Valor
Relation Intension
Esquema
Relation Extension
Instncia
8
Valores
Modelo Relacional valores so
atmicos
Valor Atmico
indivisvel no pode ser recuperado em
partes
ex: endereo definido como um nico atributo
monovalorado pode ter apenas um
valor
ex:
Idade de aluno monovalorado
Irmos de aluno multivalorado

9
Domnios
Domnio - conjunto de valores
atmicos
Exemplos de domnio
Nomes de Alunos
Cdigos de Disciplinas
Idade

10
Domnios

Especificao do Domnio:
Nome
Definio lgica
Tipo de dado e formato de dado

11
Especificao do Domnio

Nome e Definio lgica. Ex:


Nomes de Alunos: conjunto de todos os
nomes possveis para pessoas
Cdigos de Disciplinas: conjunto dos
cdigos das disciplinas oferecidas no ICMC
Idade: conjunto de idades possveis para
alunos

12
Especificao do Domnio

Tipo de dado e/ou formato. Ex:


Nomes de Alunos string de 60
caracteres
Cdigos de Disciplinas string com trs
letras seguidas de um trao e de quatro
dgitos: SCC-0240
Idade inteiro entre 15 e 100

13
Esquema de Relaes

Esquema de relao: descreve a


relao
R (A1, A2, ..., An)
ou R = {A1, A2, ..., An}
R - nome da relao
(A1, A2, ..., An) - conjunto de atributos
que formam a relao

14
Esquema de Relaes
N - grau da relao descrita por R
nmero de atributos em R
Dom(Ai) - Domnio do Atributo Ai
Ex:
uma relao de Alunos que tenha os
atributos Nome, RG e Idade, tem o
seguinte esquema:

Aluno(Nome, RG, Idade) N=3


15
Exemplo
Especicao dos domnios:
Nomes de Alunos: conjunto de todos os
nomes possveis para pessoas strings
de 60 caracteres
RG: conjunto dos RGs vlidos no Brasil
nmeros de 9 dgitos
Idade: conjunto de idades possveis
para alunos inteiro entre 0 e 100

16
Exemplo (cont.)
Esquema da relao Aluno:
Aluno={Nome, RG, Idade}

Domnios dos atributos de Aluno:


Dom(Nome) = Nomes de Alunos
Dom(RG) = RG
Dom(Idade) = Idade

17
Relaes
RelaoR instncia do Esquema
de Relao R (A1, A2, ..., An)
R(R)
R Dom(A1) X Dom(A2) X ...
Dom(An)
R um conjunto de tuplas t
cada tupla um conjunto de valores v
R={t1, t2, ... tk}
t = {v1, v2, ... vn}, vi Dom(Ai)

18
Relaes
Nmero total de tuplas possveis:
|Dom(A1)| X |Dom(A2)| X ... X|Dom(An)|

R(R) contm apenas as tuplas vlidas que


representam a situao de um determinado
instante do mundo real
Esquema de Relao R (relation intension)
mudanas pouco frequentes
Relao R (relation extension) dinmica

19
Relaes

Exemplo:
Esquema de Relao Aluno:
Aluno = {Nome, RG, Idade}
Relao vlida:
R(Aluno) = {<Jos, 12345, 21>,
<Pedro, 54321, 18>,
<Paulo, 321321, 22>}

20
Relaes
Ordem nas Tuplas?
relao conjunto de tuplas
matematicamente no existe a ideia de ordem
em conjuntos no existe uma ordem em
particular para as tuplas de uma relao

OBS: na implementao de um SGBDR existe uma ordem


fsica de armazenamento das tuplas, determinando uma
ordem na recuperao das informaes

21
Relaes
Ordem nos valores de uma tupla?
tupla lista de n valores dispostos em uma
ordem determinada de acordo com a disposio
dos atributos no esquema da relao
Valores nas tuplas
os valores de uma tupla so atmicos
valor nulo (null )
valor desconhecido
valor no se aplica
valor conhecido mas no disponvel

22
Restries das Relaes
Restrio de domnio
o valor de cada atributo A deve ser um valor
atmico pertencente a Dom(A)
Restrio de null para atributo
determina quando o valor especial null ou no
permitido para um atributo
Restrio de unicidade (CHAVE)
deve ser possvel identificar univocamente cada
tupla da relao

23
Restrio de Unicidade

Relao um conjunto de tuplas


pela teoria de conjuntos todas as tuplas
devem ser distintas
para garantir esta propriedade de maneira
eficiente
especifica-se uma Restrio de Unicidade

chave
24
Restrio de Unicidade
Superchave
conjunto de atributos de uma relao R
que identifique univocamente cada tupla
SCHk(R) = {Aj, ..., Ai}|{Aj, ..., Ai} R
Combinao de valores no se repete
Exemplo:
Aluno = {Nome, DataNascimento, Curso, NUSP}
SCH1(Aluno) = {Curso, DataNascimento, NUSP}
SCH2(Aluno) = {NUSP, Nome}

25
Restrio de Unicidade

Chave
uma superchave da qual no se pode
retirar nenhum atributo sem perder a
propriedade de identificao unvoca
superchave mnima

26
CHAVE
CHk(R) = {Ai, ..., Aj}|{Ai, ..., Aj} R
tg[CHk] th[CHk] g, h R, g h

Exemplo:
Aluno = {Nome, DataNasc, Curso, NUSP}
SCH1(Aluno) = {Nome, NUSP}
CH1(Aluno) = {NUSP}

27
Chave
Chave Candidata:
pode existir mais de uma chave para
uma mesma relao
cada uma das chaves chamada de
Chave Candidata
CH1(Aluno) = {NUSP}
CH2(Aluno) = {CPF}

28
Chave
Chave Primria - CH0
escolhida entre as chaves candidatas
a chave primria frequentemente a
mais utilizada para acessos relao
Exemplo:
CH0(Aluno) = {NUSP}

29
Chave
Notao no Esquema da Relao
CH0(Aluno) = {NUSP}
CH1(Aluno) = {CPF}

Aluno = {CPF, Nome, Curso, NUSP}

Chave secundria
Chave primria
30
Base de Dados Relacional
O esquema S de uma base de dados
relacional composto por:
1) um conjunto de esquemas de
relaes

S = {R 1, R 2, ..., R n}

2) um conjunto de Restries de
Integridade
31
Base de Dados Relacional

Uma base de dados relacional (uma


instncia) composta por:
um conjunto de relaes
BD = {R1, R2, ..., Rn}
tal que cada Ri uma instncia de R i
e cada Ri satisfaz todas as restries
indicadas em

32
Base de Dados Relacional

R1 R2

BASE DE DADOS

R3 R4

33
Exemplo
Base de Dados para armazenar informaes
sobre as diversas turmas de disciplinas
oferecidas num semestre
Esquemas de Relaes:
Aluno = {Nome, NUSP, DataNasc, Curso, CPF}
Disciplina = {Sigla, Nome, NCreditos}
Matricula = {Aluno, Disciplina, Semestre, Ano,
Nota}
Como garantir que uma matrcula
corresponde a uma disciplina e a um
aluno vlidos?
34
Restries de Integridade

Restries de integridade
regras a respeito dos valores que
podem ser armazenados nas
relaes
objetivo: garantir consistncia
quando definidas no domnio do
problema, devem ser sempre
satisfeitas na base de dados

35
Restries de Integridade
Principais restries de integridade para
uma BD relacional:
Restries de Integridade da
Entidade
Restries de Integridade
Referencial

36
Restries de Integridade

Restrio de Integridade da
Entidade
a chave primria nunca pode ser
nula
se a chave primria for composta por
mais de um atributo, nenhum deles
pode ser nulo

37
Restries de Integridade
Restrio de Integridade
Referencial
definida entre duas relaes
usada para manter consistncia entre
tuplas de duas relaes
ex: tuplas de Matrcula e tuplas de Aluno

Chave Estrangeira
conceito fundamental: compatibilidade de domnio

38
Restries de Integridade
Referencial
Compatibilidade de Domnio:
dois conjuntos de atributos quaisquer C e D
so compatveis quando:
o primeiro atributo de C tem o mesmo domnio do
primeiro atributo de D
o segundo atributo de C tem o mesmo domnio do
segundo atributo de D,
e assim por diante....

39
Restries de Integridade
Referencial
FK (foreign key) uma Chave estrangeira
em R1 que referencia R2 se:
1) FK compatvel em domnio com toda a chave
primria PK de R2
2) o valor dos atributos FK numa tupla ti qualquer da
relao R1:
ou igual ao valor dos atributos PK de alguma
tupla tk da relao R2
ti[FK] = tk[PK], ti R1, tk R2
ou nulo ti[FK] = null
40
Restries de Integridade
Referencial

As duas condies para a ocorrncia da


chave estrangeira determinam a
Restrio de Integridade
Referencial entre duas relaes R1 e
R2

R 1[FK] R 2[PK]

41
Restries de Integridade
Referencial
Chave Estrangeira (notao):

X = {A, B, C} Y = {F, G, H}

Pergunta: a chave
Dom(F, G) = Dom(A, B) estrangeira {F,G}
pode ser nula ou ter
{A, B} chave primria em X atributo nulo? Por
{F, G} chave estrangeira em Y que?

42
Restries de Integridade
Referencial
Pergunta: a chave
Exemplo: estrangeira
{Departamento} pode
ser nula? Por que?

Departamento = {Cod, NomeD}

Empregado = {NomeE, Departamento}

43
Exemplo
Quais restries
Alunos = {Nome, No.USP, Idade} de relao e de
R1(Alunos) = {<Mario, 1234, 20>,
integridade no
<Paulo, 4321, null >, so satisfeitas
<null , 1234, 22>, nas tuplas do
<Thais, null, 24>, exemplo? Por
<Mario, 1235, 22>} qu?

Disciplina = {Sigla, Monitor}

R2(Disciplina) = {<SCE_104, 1234>,


<SCE_123, 2222>,
<SCE_149, 1234>,
<SCE_532, null >}

44
Modelo Relacional
Projeto Lgico
criao de domnios
criao dos esquemas de relao
denio de
restries de relao
restries de integridade

45
Sugesto de Leitura
ELMASRI,R; NAVATHE, S.B.
Sistemas de Banco de Dados,
Addison Wesley, 4a Edio.
Captulo 5 O Modelo de Dados
Relacional e as Restries de um
Banco de Dados Relacional

USP ICMC GBDI 46


Exerccio:
Um mdico deseja informatizar sua clnica, armazenando as
informaes de seus pacientes, dos convnios utilizados e dos
exames realizados por eles. Cada paciente pode realizar vrios
exames na clnica, sendo que cada exame pode ser feito por um
convnio diferente. Alm disso, a cada exame realizado por um
paciente est associado um diagnstico principal. necessrio
armazenar o nome, RG, telefone e endereo de cada paciente.
Os exames possuem um cdigo e um tipo. Os convnios
possuem nome, CNPJ, e nome e telefone da pessoa de contato.
importante ainda que o sistema permita a gerao de um
relatrio mensal de todos os exames realizados no ms por um
determinado convnio.

a) crie o esquema relacional para a base de dados, indicando


chave primria e demais chaves candidatas (se houver), e as
restries de integridade referencial;
continua 47
b) defina todos os domnios (nome, definio lgica, tipo de
dado e formato) necessrios para o esquema criado no item a);
ex: Nomes de Pessoas: conjunto de todos os nomes possveis
para pessoas string de 60 caracteres

c) para cada esquema de relao:


defina o domnio de cada atributo
ex: Dom(Nome) = Nomes de Pessoas
indique quais atributos podem e quais no podem receber
valor nulo (restries de null)

d) crie uma instncia da base de dados, e exemplifique tuplas


vlidas e invlidas de acordo com as restries de integridade de
uma BD relacional. Explique cada caso (qual restrio e por que
ou no atendida em cada tupla).

48

You might also like