Upload
hoangnhu
View
212
Download
0
Embed Size (px)
Citation preview
SELECT MARCAS.marca, MARCAS.modelo, CARROS.cor, CARROS.valorFROM MARCAS, CARROSWHERE MARCAS.codMARCA = CARROS.codMARCA AND CARROS.valor betweem 20.000 and 30.000
Mostrar a marca, modelo, cor e valor de todos os carros com valores entre 20.000 e 30.000
Mostrar a marca, modelo, cor e valor de todos os carros com valores entre 20.000 e 30.000
SELECT MARCAS.marca, MARCAS.modelo, CARROS.cor, CARROS.valorFROM MARCAS, CARROSWHERE MARCAS.codMARCA = CARROS.codMARCA AND CARROS.valor betweem 20.000 and 30.000
Mostrar a marca, origem, modelo e ano de fabricação de todos os carros com marcas americanas
SELECT MARCAS.marca, MARCAS.origem, CARROS.modelo, CARROS.anoFROM MARCAS, CARROSWHERE MARCAS.codMARCA = CARROS.codMARCA AND MARCAS.origem = ‘americana’
Mostrar a marca, origem, modelo e ano de fabricação de todos os carros com marcas americanas
SELECT MARCAS.marca, MARCAS.origem, CARROS.modelo, CARROS.anoFROM MARCAS, CARROSWHERE MARCAS.codMARCA = CARROS.codMARCA AND MARCAS.origem = ‘americana’
1) Mostrar a marca e a cor de todos os carros de origem alemã
2) Mostrar o modelo e o ano de fabricação de todos os carros da marca Volkswagem
3) Mostrar a marca e a origem de todos de todos os carros cujo valor está entre 14.000 e 20.000
Introdução
Permite a descrição da consulta desejada semespecificar os procedimentos para obtenção dasinformações
Introdução
O cálculo é uma linguagem de consulta formalonde escrevemos uma expressão declarativapara especificar uma solicitação de recuperaçãoA expressão especifica O QUE será recuperado( em vez de COMO será recuperado)
Introdução
Existem consultas em linguagens deconsulta que não podem ser expressas nocalculo relacional
Cálculo Relacional de Tuplas
Expressão geral: { t | COND(t) }
t= variável de tuplaCOND(t) = é uma expressão condicional envolvendo t
Resultado da consulta = conjunto de todas as tuplas t quesatisfazem COND(t)
Exemplo: encontrar todas as tuplas de empregado com salárioacima de 1200,00
Notação Navathe: { t | empregado(t) AND t.salario > 1200}
Leitura: o conjunto de todas as tuplas t tal que exista uma tupla tna relação empregado para a qual o valor no atributo salario sejamaior que 1200 reais
Cálculo Relacional de Tuplas
Na consulta { t | empregado(t) AND t.salario > 1200}
Cada tupla de EMPREGADO que satisfaça a condição desalario>1200 é recuperada
t.salario referencia o atributo salario da variavel de tupla t(similar ao SQL)
Cálculo Relacional de Tuplas
Na consulta { t | empregado(t) AND t.salario > 1200}
Para recuperar apenas alguns atributos ao invés da tuplatoda:
{ t.nome, t.sobrenome | empregado(t) AND t.salario > 1200}
Equivale a consulta SQL:SELECT t.nome, t.sobrenome
FROM empregado t WHERE t.salario>1200
Atributo relação condição
O que é preciso informar numa expressão de cálculo de tuplas?
Uma relação R(t)Equivalente a cláusula FROM do SQL
Uma condição para selecionar tuplasEquivalente a cláusula WHERE do SQLA condição é após o símbolo |
Conjunto de atributos a ser recuperadoEquivalente ao SELECT do SQL
SELECT FROM WHERE
{ t.nome, t.sobrenome | empregado(t) AND t.salario > 1200}
condição
Expressões e Fórmulas
Expressão GERAL:{t1.A1, t2.A2, ..., tn.An, | COND (t1, t2,..., tn, tn+1, tn+2,..., tn+m)}
Os t são variáveis de tuplasOs A são um atributo da relação
A relação faz parte da condição
Uma condição pode ter operadores de conjunto <, >, <=, >=, <>, do tipot>c, onde c é uma constante
Expressões e Fórmulas
Expressão GERAL:{t1.A1, t2.A2, ..., tn.An, | COND (t1, t2,..., tn, tn+1, tn+2,..., tn+m)}
Variável livreassume valores de tuplas de uma ou mais relaçõesconstitui a resposta da consultaAparece do lado esquerdo da |
PredicadoEXPRESSÃO LÓGICA que, se verdadeira para determinadosvalores das variáveis livres retorna os valores destas variáveisna resposta da consulta
variáveis livres predicado aplicado às variáveis livres
Exemplo
Q1: recupere a data de nascimento e oendereço dos empregados Joao Oliveira
{ t.dataNasc, t.endereco | empregado(t) AND t.nome=´Joao´ AND t.sobrenome=´Oliveira´}
Exercícios – Dado o esquema relacional
Ambulatório (númeroA, andar, capacidade)Médico (CRM, nome, idade, cidade, especialidade, #númeroA)Paciente (RG, nome, idade, cidade, doença)Consulta (#CRM, #RG, data, hora)Funcionário (RG, nome, idade, cidade, salário)
1) buscar os dados dos pacientes que estão com sarampo2) buscar os dados dos médicos ortopedistas com mais de
40 anos3) buscar os dados das consultas, exceto aquelas
marcadas para os médicos com CRM 46 e 794) buscar o número dos ambulatórios do quarto andar que
tenham capacidade igual a 50 ou tenham númerosuperior a 10