Você está na página 1de 76

25/06/2012

LGEBRA RELACIONAL BSICA


Prof. Marcelo Lucas

Curso: Modelagem de Dados

lgebra Relacional
Tpicos / Agenda
Definies do Modelo Relacional
Relaes e Tuplas Atributos e Chaves

lgebra Relacional Descrio dos Operadores


Operaes Mondicas Operaes Didicas

Livro de Referncia
ELMASRI, R.; NAVATHE, S.B. (2011). Sistemas de Banco de Dados. 6 Ed.
Captulo sobre Modelo de Dados Relacional Captulo sobre lgebra relacional

ELMASRI, R.; NAVATHE, S.B. (2011).


Captulo sobre Modelo de Dados Relacional

ELMASRI, R.; NAVATHE, S.B. (2011).


Captulo sobre Algebra Relacional

Definies do Modelo Relacional


Relaes e Tuplas

Tupla
{(A1,D1,V1) ... (An,Dn,Vn)} uma Tupla
Ai (i=1...n) Nomes dos Atributos (distintos) Di (i=1...n) Domnios dos Atributos Vi (i=1...n) Valores para os atributos

{(A1,D1) ... (An,Dn)} so Atributos (distintos)

Ex. Tupla:
CPF (char) Nome (char) Telefone (char) 21-88997766 UF (c) RJ Salario (#) 7000 333444555-88 Joaquim

Tipo de Tupla
{(A1,D1) ... (An,Dn)} definem o Tipo de Tupla
Ai (i=1...n) Nomes dos Atributos Di (i=1...n) Domnios dos Atributos (Ai, Di); i=1,...,n; Atributos DISTINTOS

Ex. Tipo de Tupla:


CPF (char) Nome (char) Telefone (char) UF (c) Salario (#)

Relao
um Conjunto de Tuplas distintas, respeitando um mesmo Tipo de Tupla. Ex. Relao R =
CPF (char) 333444555-88 222444555-77 111222999-66 Nome (char) Joaquim Maria Jos Telefone (char) 21-88997766 21-77889900 21-66554433 UF (c) RJ RJ DF Salario (#) 7000 7500 5000

Tipo da Relao
Tipo da Relao o mesmo que dizer Tipo de Tupla utilizado na Relao.

Ex. Tipo da Relao R:


CPF (char) Nome (char) Telefone (char) UF (c) Salario (#)

Relaes x Conjuntos
Numa Relao todos os Elementos devem respeitar o Tipo da Relao (Homogeneidade de Elementos) Num Conjunto possvel Elementos de diversos Tipos. (permite Heterogeneidade de Elementos)

Propriedades das Relao


Cada TUPLA possui um nico valor para cada atributo. Cada TUPLA nica na RELAO. No existe ordenao de TUPLAs dentro de uma RELAO. No existe ordenao de atributos numa TUPLA. Porm a ordenao pode ser importante em algumas formas adotadas para a representao de TUPLAs.

Relao x Tabela
Uma Relao pode ser visualizada com uma estrutura de Tabela. Em outra palavras, uma Tabela uma representao visual de uma Relao.

Relao x Tabela
COLUNA
CABEALHO CPF 333444555-88 222444555-77 777222000-66 777222000-66 Nome Joaquim Maria John John Telefone 21-88997766 21-77889900
NULL NULL

TABELA
UF RJ RJ DF DF Salario 7000 7500 5000 5000 DUPLICADAS

LINHA

TUPLAS
CPF (char) CPF (char) Nome (char) Nome (char) Telefone (char) UF (c) UF (c) Salario (#) Telefone (char) Salario (#)

RELAO
333444555-88 Joaquim 21-88997766
UF (c)

RJ
Salario (#)

7000 TIPO OU CABEALHO DA RELAO


Salario (#)

CPF (char)

Nome (char)

Telefone (char)

222444555-77

Maria
CPF (char)

21-77889900
Nome (char)

RJ

7500
UF (c)

Telefone (char)

111222999-66

Jos

21-66554433

DF

5000

Definies do Modelo Relacional


Atributos Espaciais em uma Relao

Atributos Especiais em uma Relao


Chave Pode ser composta de um ou mais Atributos. Uma Chave um conjunto de Atributos em uma relao. Geralmente o uso do termo Chave isoladamente se refere a uma Chave Primria ou uma Chave Candidata da Relao. Chaves Candidatas Identificadores nicos de uma Tupla.

A chave candidata distingue as Tuplas numa Relao, ou seja, identifica unicamente uma Tupla na Relao. Uma Chave Candidata no possui atributos suprfluos, em outras palavras: possui a quantidade mnima de Atributos necessria para a identificao unvoca.

Chave Primria (Primary Key) uma Chave Candidata escolhida para ser utilizada como o identificador principal da Tupla. Chaves Secundrias (Alternate Key) Demais Chaves Candidatas.

Atributos Especiais em uma Relao


Superchave
Chaves Candidatas com, ou sem, atributos suprfluos. Note que a Chave Candidata NO aceita atributos suprfluos enquanto a Superchave aceita.

Atributos Especiais em uma Relao


Chave Estrangeira (Foreign Key)
Chave de Referncia. o mecanismo utilizado para se implementar Relacionamentos entre Tuplas no modelo relacional. A Chave Estrangeira em uma Tupla/Relao a Chave Primria (ou Candidata) de uma segunda Tupla/Relao a qual se relaciona.

Atributos e Chaves
Exemplo de 2 Relaes:

Pessoa
Matricula (PK) cpf nome_pessoa cod_departamento (FK) nome_rua num_endereco compl_endereco bairro cep cidade RG

Departamento
cod_departamento (PK) nome_departamento cod_localidade (FK)

lgebra Relacional
Definies

lgebra Relacional
um conjunto bsico de operaes sobre relaes. O resultado de uma operao sobre uma ou mais relaes gera uma outra relao

lgebra Relacional Bsica


Operaes mondicas primitivas
Seleo () Projeo () Renomeao ()

Operaes didicas primitivas


Unio (U) Diferena (-) Produto Cartesiano (X) X

Operaes didicas adicionais


Interseco () Juno () Diviso ()

Letras Gregas

Operaes Mondicas Primitivas

Seleo
Seleo (ou Restrio) a operao usada para selecionar um subconjunto de tuplas de uma relao R que satisfaa uma condio de seleo. representada por:

<condio> (R)
= <condio> :

ou

(R)

Onde <condio> compara atributos e literais com o uso dos operadores:


De comparao: =, <>, <, >, <=, >= Lgicos: and (), or (), not ()

Seleo
Representao grfica
Obteno de um subconjunto horizontal de uma relao R

tuplas que satisfazem uma condio

BD exemplo
Funcionrio
Cd. Nome 10 20 30 40 50 Visconde Pedrinho Dona Benta Emlia Rabic Sexo M M F F M Data Admis. 01/02/1983 29/07/1990 30/11/1992 22/02/1998 08/09/2000 Salrio R$ 1230,00 R$ 867,00 R$ 2560,00 R$ 1170,00 R$ 2300,00 Depto. 3 3 1 2 1

Departamento
CdDepto. 1 2 3 Nome Depto. Administrao Contabilidade Informtica

Seleo
Exemplo 1
Selecionar todos os funcionrios do sexo feminino

Sexo = F (Funcionrio)
Cd. 30 40 Nome Dona Benta Emlia Sexo Data Admis. Salrio F F 30/11/1992 22/02/1998 R$ 2560,00 R$ 1170,00 Depto. 1 2

Seleo
Exemplo 2
Selecionar todos os funcionrios do sexo masculino que ganham mais de R$ 1000,00

Sexo = M Salrio > 1000 (Funcionrio)


Cd. 10 50 Nome Visconde Rabic Sexo Data Admis. Salrio M M 01/02/1983 08/09/2000 R$ 1230,00 R$ 2300,00 Depto. 3 1

Atribuio
Criao de uma nova Relao a partir do resultado de uma operao

S <condio> (R)
: Operador de atribuio S : Nova relao criada. O resultado da operao <condio> (R) atribudo nova Relao S

Projeo
a operao usada para selecionar determinadas colunas de uma relao R. Como o resultado ser tambm uma relao, quaisquer eventuais tuplas em duplicidade so eliminadas. (Isto deve ser observado para qualquer operao). representada como:

<lista de atributos> (R)

Projeo
Representao grfica
Obteno de um subconjunto vertical de uma relao R

colunas selecionadas

Projeo
Exemplo
Listar o nome, o sexo e o salrio de todos os funcionrios

Nome, Sexo, Salrio (Funcionrio)


Nome Visconde Pedrinho Dona Benta Emlia Rabic Sexo Salrio M M F F M R$ 1230,00 R$ 867,00 R$ 2560,00 R$ 1170,00 R$ 2300,00

Seleo e Projeo
As operaes podem ser utilizadas em conjunto Exemplo
Selecionar o nome e o salrio de todos os funcionrios que ganham mais de R$ 2000,00

Nome, Salrio (Salrio > 2000 (Funcionrio))


Nome Dona Benta Rabic Salrio R$ 2560,00 R$ 2300,00

Renomeao
Objetivo
Renomear o nome de uma Relao Renomear os nomes de atributos

Sintaxes:

S (b1, b2, b3,... bn) (a1, a2,... an (R)) b1, b2, b3,... bn (a1, a2,... an (R)) S (R)

Renomeao
Formas equivalente de renomear a RELAO:

S (b1, b2, b3,... bn) (a1, a2,... an (R)) S b1, b2, b3,... bn (a1, a2,... an (R)) S (R)
SR

Renomear
Exemplo
Listar o nome, o sexo e o salrio de todos os funcionrios, substituindo o nome das colunas para Alcunha, S e Vencimento.

Alcunha, S, Vencimento (Nome, Sexo, Salrio (Funcionrio))


Alcunha Visconde Pedrinho Dona Benta Emlia Rabic S M M F F M Vencimento R$ 1230,00 R$ 867,00 R$ 2560,00 R$ 1170,00 R$ 2300,00

Exerccios
Listar todas as funcionrias (sexo feminino). Listar todos os funcionrios da administrao com seus salrios.

Operaes Didicas Primitivas

Unio
RS
A unio de duas relaes R e S, com os mesmos tipos, o conjunto de todas as tuplas pertencentes relao R ou relao S ou a ambas.

Representao grfica

BD exemplo
Funcionrio
Cd. 10 20 30 40 50 Nome Visconde Pedrinho Dona Benta Emlia Rabic Sexo M M F F M Data Admis. 01/02/1983 29/07/1990 30/11/1992 22/02/1998 08/09/2000 Salrio R$ 1230,00 R$ 867,00 R$ 2560,00 R$ 1170,00 R$ 2300,00 Depto. 3 3 1 2 1

Aluno
Cd. 1 2 3 4 Nome Visconde Dona Benta Rabic Cuca Sexo M F M F

Unio
Exemplo
Obter os nomes e o sexo de todos os funcionrios e alunos
Nome Visconde Pedrinho Dona Benta Emlia Rabic Cuca Sexo M M F F M F

Resultado Nome, Sexo (Funcionrio)

Nome, Sexo (Aluno)

Diferena
R-S
A diferena de duas relaes R e S, dos mesmos tipos, o conjunto de todas as tuplas pertencentes relao R e no pertencentes relao S.

Representao grfica

Diferena
Exemplo
Obter os nomes e o sexo de todos os funcionrios que no so alunos

S Nome, Sexo (Funcionrio) Nome, Sexo (Aluno)

Nome Pedrinho Emlia

Sexo M F

Produto Cartesiano
RS
O produto cartesiano de duas relaes R e S, quaisquer, o uma relao T cujas tuplas so a combinao das tuplas das relaes R e S, tomando-se uma tupla de R e concatenando-a com cada tupla de S.

Representao grfica
A B C

A A B B C C

Y Z Y Z Y Z

Y Z

Produto Cartesiano
Exemplo
Obter, para cada funcionrio, uma lista de todos os departamentos.

Nome, Sexo, Data Admis (Funcionrio) X Nome Depto (Departamento)


OU

Nome, Sexo, Data Admis, Nome Depto (Funcionrio X


Nome Vinconde Visconde Visconde (continua...) Sexo Data Adm. M M M

Departamento)
Nome Depto. Administrao Contabilidade Informtica

01/02/1983 01/02/1983 01/02/1983

Produto Cartesiano
Nome Pedrinho Pedrinho Pedrinho Dona Benta Dona Benta Dona Benta Emlia Emlia Emlia
Rabic Rabic Rabic

Sexo Data Adm. M M M F F F F F F


M M M

Nome Depto. Administrao Contabilidade Informtica Administrao Contabilidade Informtica Administrao Contabilidade Informtica Administrao Contabilidade Informtica

29/07/1990 29/07/1990 29/07/1990 30/11/1992 30/11/1992 30/11/1992 22/02/1998 22/02/1998 22/02/1998


08/09/2000 08/09/2000 08/09/2000

Exerccios
Listar todos os funcionrios da administrao com seus salrios (revisitado produto cartesiano).

Operaes Didicas Adicionais

Juno
utilizada para combinar tuplas relacionadas de duas relaes em uma nica tupla representada como:

R <condio de juno> S
Ou, simplesmente (Juno Natural):

RS

Juno
Exemplo
Listar todos os funcionrios e o nome do departamento em que cada um deles trabalha

Funcionrio
Nome Visconde Pedrinho Dona Benta Emlia Rabic Sexo M M F F M

Depto. = CdDepto. Departamento


Data Admis. Depto. CdDepto. 01/02/1983 29/07/1990 30/11/1992 22/02/1998 08/09/2000 3 3 1 2 1 3 3 1 2 1 Nome Depto. Informtica Informtica Administrao Contabilidade Administrao

Exerccio
Expresse a juno entre as relaes R e S atravs de funes primitivas apenas.

Juno

R <condio de juno> S =

<condio> (R X S)

Exerccios
Listar todos os funcionrios da administrao com seus salrios (revisitado juno).

Interseco
RS
A interseco de duas relaes R e S, dos mesmos tipos, o conjunto de todas as tuplas pertencentes relao R e relao S.

Representao grfica

Interseco
Exemplo
Obter o nome e o sexo de todos os funcionrios que so alunos

Nome Visconde

Sexo M F M

Nome (Funcionrio)

Dona Benta Rabic

Nome (Aluno)

Exerccio
Expresse a interseo entre as relaes R e S atravs de funes primitivas apenas.

Interseco
RS= R - ( R - S)

Diviso
RS
A diviso da relao R pela relao S, sendo S uma projeo de R, o conjunto de tuplas formadas pelos atributos de R que no esto em S, desde que existam em R todas as suas combinaes com as tuplas de S.

Representao grfica:

A A B B B C C D E

Y Z Y Z W Y Z Z W

Y Z

A B C

BD exemplo
CardapioPizzaria
Cd. 10 10 10 10 10 10 20 20 30 30 40 40 Pizzaria DiLidia DiLidia DiLidia DiLidia DiLidia DiLidia MisterPizza MisterPizza Dominos Dominos Pizza Hut Pizza Hut Pizza Margerita Margerita Calabresa Calabresa Portuguesa Portuguesa Peperoni Peperoni Margerita Calabresa Margerita Calabresa Tamanho G M G M G M G M M G M M

Pedido
Pizza Margerita Calabresa Tamanho M M

Diviso
CardapioPizzaria Pedido
Resultado
Cd. 10 40 Pizzaria DiLidia Pizza Hut

Exerccio (Dificuldade Alta)


Expresse a diviso entre as relaes R e S atravs de funes primitivas apenas.

Diviso
RS=

a(R)-a(S) R

a(R)-a(S)(
(a(R)-a(S) R x S) R )

Obs.: a(R)-a(S) atributos de R que no so atributos de S

Exerccio 1
E# E1 E2 E3 E4 E5 Funcionrios Nome D # Salrio Jos D1 1.000,00 Maria D1 2.000,00 Joo D2 1.500,00 Slvia D3 1.500,00 Joo D1 1.500,00 D# D1 D2 D3 D4 Departamentos NomeDepto Contabilidade Administrao Informtica RH

a) Quais os nomes dos empregados que ganham um salrio menor que 2.000,00. b) Quais os nomes dos departamentos que ganham salrio at 1.500,00. c) Quais os nomes dos empregados que trabalham no departamento D3. d) Quais os nomes de empregado que trabalham no departamento Contabilidade. e) Quais so os salrios do departamento Contabilidade. f) Quais os nomes dos departamentos que no possuem empregados.

Exerccio 2
ATENDIMENTO CD_PAC DIA_ATEND 5 09/04/1996 2 09/04/1996 2 07/05/1996 4 25/06/1996 1 26/06/1997 10 03/07/1997 3 08/07/1997 6 03/04/1997 7 10/07/1997 2 10/07/1997 DIAG Lombalgia crnica. Ativ. com esforo - coziinheira. limitao de mobilizao. Fez trat. RX Acentuada degenerao com osteofitos laterais Diminuio de espaos artic. L4-L5 Terminou fisioterapia. Melhora Subjativa. Manter mais 1 srie. Terminou 20 sesso de fisioterapia. S/ queixas. Cont. exerc. dom. DO Dor lombar h 3 dias aps esforo em m postura. Dor em ombroE. com Sesamoidite p E h 04 dias com acentuado edema MF hallux e dificuldade para apoio Melhora subjetiva- manter CUL rever 1 sem. se nec fisioterapia Ombro doloroso a D. com queda do mesmo . M postura para ativ. domsticas.Dor em face Epicondilite cotovelo Dir. com 01 mes evoluo.Ativ. sedentria limitao de PPS e Extenso Tendinite dos extensores de 2 e 3 pododactilos do p E. fez trat. com AINE por o3 CONVENIO COD_CONV 01 02 03 04 05 06 07 08 09 10 11

PACIENTE CD_PAC NM_PAC 1 Maureen Annelise Molinari 2 David Lessa Chaves 3 Marlene C. Florncio 4 Rita de Ftima S. Costa 5 Solange A. Andrade 6 Valria do Rocio Pinheiro 7 Sara Carmelina O.Viana 8 Jos Lucchesi 9 Arielton da Silva Pinto 10 Maria Aparecida Azeredo

DT_NASC CONV_PAC 19/08/1980 01 02/02/1979 01 02/01/1949 03 07/10/1955 04 10/08/1969 05 29/11/1974 11 25/01/1973 10 06/12/1916 10 20/05/1965 05 27/08/1939 01

DESC_CONVENIO Unimed - cdigo 11347 FUNBEP - cdigo 7141-2 BAMERINDUS GRALHA AZUL CASSI - cdigo 21.447-7 FUNCEF TELEPAR - cdigo 00335 PETROBRAS BANCO CENTRAL Particular AMBEP

Exerccio 2 (perguntas)
a) Qual o nome convenio da paciente Rita de Ftima S. Costa? b) Quais pacientes pertences ao convenio Unimed cdigo 11347 ? c) Quais os nomes dos pacientes que tiveram atendimento no dia 09/04/1996 ? d) Quais os nomes dos convnios no tm pacientes?

Exerccio 2 (perguntas)
e) Qual comando gerou o seguinte resultado?
NM_PAC Filomena Ivanski Sonia Maria Caetano Paraso Mastek Joo Mastek Neto Angela Maria de Lima Casa Grande Ricardo Pinheiro Pinto Mirian Lais Ferreira da Costa Hauari Erdema Fatima Carrara Lafratta Erdema Fatima Carrara Lafratta Moar de Miranda e Silva DESC_CONVENIO Unimed - cdigo 11347 Unimed - cdigo 11347 Unimed - cdigo 11347 Unimed - cdigo 11347 CASSI - cdigo - 21.447-7 CASSI - cdigo - 21.447-7 CASSI - cdigo - 21.447-7 CASSI - cdigo - 21.447-7 CASSI - cdigo - 21.447-7 DIAG Lombalgia cronica com sensao ... Luxao congnita de patelar ... Parestesia de Nervo Citico Popliteo ... Dores difusas em ambos os joelhos s... Lombalgia em transio de col. TL. com ... Processo alrgico em IFD de ivdedo mo ... Portadora de 4 dedo mo Esq. em gatilho ... Epicondilite de cotovelo D. com de evol... H 2 sem. entorse de joelho D. em futebol...

Exerccio 3 Relaes:

Exerccio 3 (perguntas)
1. Obter o nome completo de todos os funcionrios; 2. Identificar todos os funcionrios do sexo masculino; 3. Obter o nome completo e a data de admisso de todos os funcionrios do sexo feminino; 4. Obter o nome completo, a data de admisso e o salrio de todos os funcionrios; 5. Descobrir o nome completo, a data de admisso e o salrio de todos os funcionrios do sexo masculino. 6. Todos os funcionrios do departamento D1. 7. O nome e a matrcula de todos os funcionrios do departamento D1. 8. A matrcula e o nome do respectivo departamento de todos os funcionrios. 9. O nome dos funcionrios que ganham mais de $500. 10. O ramal do funcionrio ANA SILVEIRA. 11. Os nomes de todos os funcionrios com cargo de MECANICO. 12. Os nomes de todos os funcionrios que trabalham no mesmo departamento que JOSE NOGUEIRA. 13. Os nomes dos departamentos que possuem tanto funcionrios como funcionrias (possuem funcionrios de ambos os sexos).

25/06/2012

LGEBRA RELACIONAL ESTENDIDA E CLCULO RELACIONAL (TPICOS EXTRAS, CASO O ALUNO TENHA INTERESSE EM SE APROFUNDAR - EXTRA)
Prof. Marcelo Lucas

Curso: Modelagem de Dados

Operaes Estendidas

lgebra Relacional Estendida


Operaes estendidas
Joins Left Outer Join () Right Outer Join () Full Outer Join () Anti Join () Semi Join () ()

Operaes estendidas primitivas


Agregador (G) (SUM, AVG, COUNT, ...) Extenso (EXTEND)

Consideraes Adicionais

lgebra Relacional
Outras caractersticas:
Linguagem procedural. Vrias formas de obter o mesmo resultado porm com custos de processamento diferentes.

lgebra Relacional X Clculo Relacional


A lgebra Relacional e o Clculo Relacional so potencialmente equivalentes. Entretanto o clculo relacional :
3 No Procedural Lgica de primeira ordem Ex: R = { x | x < 10 , x A E S}

Clculo relacional
Clculo Relacional de Tuplas Clculo Relacional de Domnios

lgebra Relacional e SQL


SQL combina lgebra e Clculo Relacional.
SQL considerada uma linguagem no procedural (mesma caracterstica do Clculo Relacional).

O otimizador do gerenciador de banco de dados determina a sequncia e combinao de operaes de lgebra relacional mais eficiente.
(a ordem e precedncia dos operadores relacionais utilizados no comando SQL pode ser ignorada pelo otimizados)

Você também pode gostar