Você está na página 1de 37

Banco de Dados

Modelo Relacional

Livros Texto : Introduo a Sistemas de Banco de Dados Date


Sistemas de Banco de Dados Korth &
Silberschatz
Sistemas de Banco de
Dados Fundamentos e
Aplicaes Elmasri & Navathe
Modelo Relacional - Slide 1

Modelo Relacional
Contedo

Introduo
Conceitos Bsicos
Caractersticas das Relaes
Restries de Integridade
Operaes de atualizao
lgebra Relacional

Modelo Relacional - Slide 2

Modelo Relacional
Conceitos Bsicos

O Modelo Relacional de Dados est


fundamentado :
Aspecto de estrutura : o banco de dados
representado com uma coleo de relaes
(Tabelas)
Aspecto de integridade : estas relaes
satisfazem certas restries de integridade
Aspectos de manipulao : as relaes so
manipuladas por operadores da lgebra
relacional
Modelo Relacional - Slide 3

Modelo Relacional
Conceitos Bsicos
O Modelo Relacional de Dados representa o banco de
dados como uma coleo de relaes.
Informalmente :
Uma relao se assemelha a uma tabela
Cada linha da tabela representa uma coleo de
valores de dados relacionados
Cada linha de uma tabela representa um fato do
mundo real uma instncia de uma entidade ou de
um relacionamento
Nomes das colunas especificam o modo como se deve
interpretar os valores dos dados em cada linha
Modelo Relacional - Slide 4

Modelo Relacional
Conceitos bsicos
FILMES
Codigo

Filme

Diretor

Ano

Oscar

O Paciente Ingls

Anthony Minghella

1996

11

Misso Impossvel 2 John Woo

1999

12

Beleza Americana

Sam Mendes

1999

17

Matrix

Andy Washowski

1999

20

Thomas Crown

John McTiernan

1999

50

Forrest Gump

Robert Zemeckis

1994

57

Platoon

1986

61

Jerry Maguire

1996

75

Titanic

1997

10

James Cameron

Modelo Relacional - Slide 5

Modelo Relacional
Conceitos Bsicos

Terminologia formal do Modelo Relacional de Dados


Uma linha chamada de tupla
O ttulo da coluna chamado de atributo
A tabela chamada de relao
Tipo de dado que descreve os possveis valores
que podem aparecer nas coluna chamado de

domnio
Modelo Relacional - Slide 6

Modelo Relacional
Conceitos Bsicos

Esquema de uma relao


R(A1, A2, ..., An) composto pelo nome
da relao R e um conjunto de atributos.
Cada atributo A, o nome de um papel
desempenhado por algum domnio D no
esquema da relao R.
Funcionario(matricula, nome, endereco,
telefoneF, telefoneC, salario)
Modelo Relacional - Slide 7

Modelo Relacional
Conceitos Bsicos

Domnio - dom(Ai) ou D(Ai)


Conjunto de valores atmicos indivisveis
Aluno(nome, endereco, telefoneF)
D(nome) = nomes at 35 caracteres
D(telefoneF) = nmeros

Modelo Relacional - Slide 8

Modelo Relacional
Conceitos Bsicos

Atributos
Explicita o papel de um domnio em uma
relao
Os atributos de uma dada relao devem
ser diferentes (teoria dos conjuntos)
Ex : Nome, Endereo, Salrio
Modelo Relacional - Slide 9

Modelo Relacional
Conceitos Bsicos

Tupla
Corresponde a uma lista ordenada de valores t
= <v1, v2, ..., vn>, onde cada valor de v um
elemento do dom(A) ou um valor especial nulo.
Um relao r(R) um conjunto de n-tuplas
r(R) = {t1, t2, ..., tn}
Grau
Nmero de atributos de uma relao
Cardinalidade de uma relao
Nmero de tuplas de uma relao
Modelo Relacional - Slide 10

Modelo Relacional
Relao
Atributos
FILMES
Codigo

Tuplas

Filme

Diretor

Ano

Oscar

O Paciente Ingls

Anthony Minghella

1996

11

Misso Impossvel 2 John Woo

1999

12

Beleza Americana

Sam Mendes

1999

17

Matrix

Andy Washowski

1999

20

Thomas Crown

John McTiernan

1999

50

Forrest Gump

Robert Zemeckis

1994

57

Platoon

1986

61

Jerry Maguire

1996

75

Titanic

1997

10

James Cameron

Grau
Modelo Relacional - Slide 11

Modelo Relacional
Caratersticas das Relaes

Uma relao um conjunto de tuplas,


matematicamente no existe ordenamento
entre os elementos de um conjunto
No existem tuplas duplicadas
No existem apontadores
Todos os atributos so atmicos, valores
compostos e multivalorados no so
permitidos
Valores nulos representam a ausncia de
valor
Modelo Relacional - Slide 12

Modelo Relacional
Caratersticas das Relaes

Interpretao da Relao
O esquema de uma relao uma
afirmao e cada tupla um fato. Uma
relao representa fatos sobre entidade e
relacionamentos
Exemplo :
Funcionario(matricula, nome, endereco,
telefoneR, telefoneC, funcao, salario)
(14567, Ana Santos, Rua Par, 3456734, 99875436, analista,
3000)
(14568, Alicia Matos, Rua Cear, 3456733, 99875435,
arquiteta,4000)
(14569, Carlos Queiros,
Rua
Maranho,
3456732,
99875437,
Modelo
Relacional
- Slide
13

Modelo Relacional
Chaves

Chaves primria : Um conjunto de atributos nicos


e no nulos com caracterstica de minimalidade,
que identificam unicamente uma tupla

Chave estrangeira: Um atributo ou uma


combinao de atributos, cujos valores aparecem
necessariamente na chave primria de uma outra
relao ou da mesma relao.
t1 [FK] = t2 [PK] ou nulo

Modelo Relacional - Slide 14

Modelo Relacional
Chaves
Chave Primria
Codigo

Filme

Diretor

Ano

Oscar

O Paciente Ingls

Anthony Minghella

1996

11

Misso Impossvel 2 John Woo

1999

12

Beleza Americana

Sam Mendes

1999

17

Matrix

Andy Washowski

1999

20

Thomas Crown

John McTiernan

1999

50

Forrest Gump

Robert Zemeckis

1994

57

Platoon

1986

61

Jerry Maguire

1996

75

Titanic

1997

10

James Cameron

Modelo Relacional - Slide 15

Modelo Relacional
Restries integridade
Integridade de Entidade
Toda tupla de uma relao unicamente
identificada por um ou mais atributos definidos
como chave primria, cujos valores dos
atributos no pode conter nulos
Integridade Referencial
Regras de relacionamentos entre duas relaes
usando chaves primrias e chaves
estrangeiras, com a finalidade de manter
consistncia na atualizao
Integridade de Domnio
Faz referncia ao tipo de definio do domnio
Atribuir valores ou condies na definio de
atributos
Modelo Relacional - Slide 16

Modelo Relacional
Operaes de atualizao
Insero (Insert)
Fornece uma lista de valores dos atributos para
uma nova
tupla
Inserir <001, Cecilia, Rua So Paulo, 3000> em
Empregado
Pode violar :
restrio de domnio
restrio de integridade de entidade
restrio de integridade referncial
Modelo Relacional - Slide 17

Modelo Relacional
Operaes de atualizao
Excluso (Delete)
Elimina uma tupla da relao, utiliza uma condio
nos atributos para selecionar a tupla a ser
eliminada
Excluir Empregado com matricula=123456
Pode violar:
Restrio de integridade referencial
Opes para violao:
Rejeitar a excluso
Excluso em cascata
Alterar para nulo

Modelo Relacional - Slide 18

Modelo Relacional
Operaes de atualizao
Atualizao (Update)
Altera valores de um ou mais atributos numa tupla
ou tuplas. Especifica uma condio nos atributos
para selecionar a tupla a ser modificada
Altere o salrio da tupla Empregado com
matricula=123456
para 2000
Pode violar:
Restrio de domnio para o atributo alterado
Restrio de integridade referencial se afetar um
atributo que chave estrangeira
Se afetar chave primria produz excluso e
insero da tupla
Modelo Relacional - Slide 19

Modelo Relacional
lgebra Relacional

Linguagem de consulta, que consiste em um conjunto


de operaes que tomam uma ou duas relaes como
entrada e produzem uma nova relao como resultado
Korth & Silberschatz
Conjunto bsico de operaes da modelo relacional.
Essas operaes possibilitam ao usurio especificar
solicitaes bsicas de recuperao. O resultado de
uma recuperao uma nova relao, que pode ter
sido formada a partir de uma ou mais relaes
Elsmari & Navathe

Modelo Relacional - Slide 20

Modelo Relacional
lgebra Relacional

Componente para manipulao do

modelo
Conjunto de operadores que tomam
relaes como operandos e retornam uma
relao como resultado
Operadores baseados na teoria matemtica
dos conjuntos
(unio, interseo, diferena, produto
cartesiano) e operadores especficos
(seleo/restrio, projeo, diviso e
juno)
Modelo Relacional - Slide 21

Modelo Relacional
lgebra relacional
Restrio Projeo
A
B
C

Produto
A
X
A
Y
B
=
B
C
C

Join
A1 B1
A2 B1
A3 B2

A1 B1 B1 C1
B1 C1
= A2 B1 B1 C1
B2 C2
A3 B2 B2 C2
B3 C3

X
Y
X
Y
X
Y

Interseo

Diviso
A X X
=A
A Y Y
C
A Z
B X
C Y
C X
D Z

Modelo Relacional - Slide 22

Diferena

Unio

Modelo Relacional
lgebra Relacional

Selecionar (restrio)
Utilizada para selecionar um subconjunto de
tuplas de uma relao que satisfaa uma
condio

<condio da seleo> (R)


sigma
Selecione os empregados que ganham
mais de R$ 3.000,00

salario>3000 (Empregado)
Modelo Relacional - Slide 23

Restrio

Modelo Relacional
lgebra Relacional

Selecionar (restrio)
<condio da seleo>
<nome do atributo> <operador de comparao> <valor constante>
ou
<nome do atributo> <operador de comparao> <nome do atributo>
Ex : Selecionar todos os empregados que trabalham no
departamento 2 e ganham acima de 2400 ou que
trabalham no departamento 3 e ganham acima de 3000
(departamento=2 and salario > 2400) or
(departamento=3 and salario>3000) (Empregado)
Modelo Relacional - Slide 24

Modelo Relacional
lgebra Relacional

Projeo
Seleciona determinados atributos de uma relao

<lista de atributos> (R)


pi

Projeo

Selecione o nome e endereo de


todos os empregados

nome,endereco (Empregado)
Modelo Relacional - Slide 25

Modelo Relacional
lgebra Relacional

Operaes da teoria dos conjuntos


Unio - O resultado uma relao que contm todas as
tuplas de duas relaes sem repeties. Todas as tuplas
(compatveis) que esto em R, ou em S, ou em ambas.

RS

Unio

renomear

Selecione os empregados do departamento 02


Ou (unio) do depatamento 03.

EmpDep2 departamento=2 (Empregado)


EmpDep3 departamento=3 (Empregado)
Resultado EmpDep2 EmpDep3
Modelo Relacional - Slide 26

Modelo Relacional
lgebra Relacional

Interseo - O resultado uma relao que contm


apenas as tuplas que pertencem s duas relaes.

RS
Selecione os empregados do departamento 01
que so analistas

EmpDep1 departamento=1 (Empregado)


EmpAnalista funcao=Analista (Empregado)
Resultado EmpDep1 EmpAnalista

Modelo Relacional - Slide 27

Interseo

Modelo Relacional
lgebra Relacional

Diferena - O resultado uma relao que contm as


tuplas que aparecem na primeira relao, mas no
aparecem na segunda relao.
RS
Selecione os empregados do departamento 01 que
no so analistas
Diferena
EmpDep1 departamento=1 (Empregado)
EmpAnalista funcao=Analista (Empregado)
Resultado EmpDep1 - EmpAnalista

Modelo Relacional - Slide 28

Modelo Relacional
lgebra Relacional

Para as operaes unio,


interseo e diferena as duas
relaes envolvidas devem ter
compatibilidade: mesmo nmero
de atributos e cada par
correspondente de atributos o
mesmo domnio
Modelo Relacional - Slide 29

Modelo Relacional
lgebra Relacional

Produto Cartesiano - O resultado uma relao que


contm todas as tuplas da primeira relao associadas
s tuplas da segunda relao. (Anlise combinatria)

R X S
Se R tem n tuplas e R tem m tuplas
R X S ter nxm tuplas

Modelo Relacional - Slide 30

A
B
C

Produto
A
X
A
Y
B
=
B
C
C

X
Y
X
Y
X
Y

Modelo Relacional
lgebra Relacional

Produto Cartesiano
Exemplo : Para cada empregado do sexo feminino gerar
uma lista com todos os seus dependentes

EmpregadoMulher sexo=F (Empregado)


EmpregadoM cod,nome (EmpregadoMulher)
DependenteEmpregado EmpregadoM X Dependente
DependenteM cod=codfunc(DependenteEmpregado)
Resultado nome, nomedependente (DependenteM)
Obs Produto cartesiano apresenta tuplas com atributos
combinados de duas relaes.
Modelo Relacional - Slide 31

Modelo Relacional
lgebra Relacional

Produto Cartesiano- exemplo


EmpregadoMulher sexo=F (Empregado)
EmpregadoM cod,nome (EmpregadoMulher)

DependenteEmpregado EmpregadoM X Dependente


DependenteM cod=codfunc(DependenteEmpregado)
Resultado nome, nomedependente (DependenteM)

EmpregadoMulher Nome
Patrcia
Ana

EmpregadoM

Cod

Nome
Patrcia
Ana

1234
6789

Datanasc
Sexo
20/10/70 F
23/05/75 F

Endereco
R. abc
r. kkk

Salario

2500
1000

Cod
1234
6789

DependenteEmpregado Nome
Patrcia
Patrcia
Patrcia
Ana
Ana
Ana

Cod

Nome_dependente
Sexo
1234 Tiago
M
1234 Lucas
M
1234 Bianca
F
6789 Tiago
M
6789 Lucas
M
6789 Bianca
F

Datanasc
Codfunc
02/02/99
4444
10/06/04
1234
11/08/06
2222
02/02/99
4444
10/06/04
1234
11/08/06
2222

DependenteM

Nome
Patrcia

Cod

Nome_dependente
Sexo
1234 Lucas
M

Datanasc
Codfunc
10/06/04
1234

Resultado

Nome
Patrcia

Nome_dependente
Lucas

Modelo Relacional - Slide 32

Modelo Relacional
lgebra Relacional

Juno (join)
O resultado a combinao de tuplas relacionadas de
duas relaes em uma nica tupla. Apenas as
combinaes de tuplas que satisfizerem a condio de
juno aparecero no resultado.
Juno entre R(A1, A2, ..., An) e S(B1, B2, ..., Bm)
R

<condio> S

Juno um a relao Q com n+m


atributos
Join
Q (A1, A2,..., An, B1, B2, ...,Bm)
A1 B1 B1 C1
A1 B1 B1 C1
= A2 B1 B1 C1
A2 B1 B2 C2
A3 B2 B2 C2
A3 B2 B3 C3
Modelo Relacional - Slide 33

Modelo Relacional
lgebra Relacional

Juno (join)
Exemplo : Fazer uma lista com o nome do departamento,
nome do gerente e salario dos gerentes.

GerenteDep (Departamento
codgerente=cod Empregado)
Resultado nomedepart,nome,salario(GerenteDep)

Modelo Relacional - Slide 34

Modelo Relacional
lgebra Relacional

Diviso
Produz como resultado os elementos da primeira relao que se
relacionam com todos os elementos da segunda relao. A tuplas
resultantes possuem os atributos da primeira relao menos os
atributos da segunda. R S

a1

b1

c1

c1

a2

b1

c1

a2

a1

b2

c1

a1

a1

b2

a2
a1
a1
a1

c2

a2

b1

a1

b1

c1

c1

a1

b2

a2

b1

c1

c2

c1

a1

b2

c1

c3

b2

c2

a1

b2

c2

c4

a2

b1

c2

a2

b1

c2

a1
a1
a1

b2
b2
b1

c3
c4
c5

a1
a1
a1

b2
b2
b1

c3
c4
c5

b1

c1

b1

a2

b1

c1

b2

a1

b2

c2

a1

b1

c2

b2
b2
b1

c3
c4
c5

c1

a1

B
b2

A
a1

b1

a1

a1

b1

c1

b1

c1

a1

a1

b1

c1

b1

c1

a1

a2

a2

b1

c1

b2

c1

a2

b1

c1

a1

b2

c1

a1

b2

c1

a1

b2

c2

a1

b2

c2

a2

b1

c2

a2

b1

c2

a1
a1
a1

b2
b2
b1

c3
c4
c5

a1
a1
a1

b2
b2
b1

c3
c4
c5

Modelo Relacional - Slide 35

Modelo Relacional
lgebra Relacional

Diviso
Exemplo : Recuperar as matriculas dos empregados que
trabalham em todos os projetos nos quais Ana Santos
trabalha.

FuncAna nome=Ana Santos (Empregado)


ProjAna codproj(TrabalhaEm
codemp=cod FuncAna)
ProjTodos codemp, codproj(TrabalhaEm)
Resultado(cod) ProjTodos ProjAna

Modelo Relacional - Slide 36

Modelo Relacional
lgebra Relacional - Exerccios
Consulta 1: Liste o nome e salrio de todos os empregados que trabalham no
departamento Engenharia e que ganham mais de 3000
Consulta 2: Recuperar o nome e endereo de todos os empregados que trabalham para o
departamento Informtica
Consulta 3: Para cada projeto controlado pelo departamento Engenharia, liste o codigo
do projeto, nome, endereo e data de nascimento do gerente do departamento que
controla o projeto.
Consulta 4: Encontre o nome de todos os empregados que trabalham nos projetos
controlados pelo departamento 3.
Consulta 5: Recuperar o nome dos empregados que no tm dependentes
Consulta 6: Liste a matricula e nome dos gerentes que tenham pelo menos um
dependente
Consulta 7: Liste nome do empregado e nome do projeto de todo os empregados que
trabalham em projetos controlados pelo departamento de Engenharia, mas que no
trabalham em projetos controlados pelo departamento de Informtica

Modelo Relacional - Slide 37