Last active
April 15, 2018 03:33
-
-
Save abarichello/862a0a9e9843feba449e5352faf6ef8a to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
-- https://dbis-uibk.github.io/relax/calc.htm | |
Usuario = { | |
id:number, situacao:string, senha:string | |
1, 'ativo', '11' | |
2, 'inativo', '12' | |
3, 'ativo', '13' | |
4, 'ativo', '' | |
} | |
Funcionario = { | |
id:number, nome:string | |
1 , 'joao' | |
2 , 'paulo' | |
3 , 'fulano' | |
4 , 'barichello' | |
} | |
Endereco = { | |
id:number, numero:number, complemento:string, cep:number | |
1, 305, 'casa', 88100111 | |
2, 105, 'apartamento', 88200222 | |
3, 45, 'casa 2 andares', 88000999 | |
4, 0, 'apartamento', 0 | |
} | |
Cidade = { | |
id:number, nome:string | |
1 , 'São José' | |
2 , 'Florianópolis' | |
3 , 'Coréia do Sul' | |
} | |
-- 1) Selecione todos os usuários ativos | |
-- π id σ situacao = 'ativo' (Usuario) | |
-- 3) Selecione todos os funcionários cujo endereço tenha o complemento preenchido | |
-- π id (Usuario) ∩ π id (Endereco) | |
-- 4) Selecione os atributos id e senha de todos os usuários | |
-- π id, senha (Usuario) | |
-- 5) Selecione o endereço completo de todos os funcionários | |
-- FIXME σ endereco (π id (Users) ∩ π id (Endereco)) | |
-- 6) Selecione o nome de todas as cidades | |
-- π nome (Cidade) | |
-- 7) Selecione o id e o nome dos funcionários cujas residências sejam numeradas entre 75 e 177 | |
-- numeros_selecionados = sigma numero > 75 and numero < 177 (Endereco) | |
-- sujeitos = pi id (numeros_selecionados) ∩ pi id (Usuario) | |
-- pi id (sujeitos) | |
-- 9) Selecione o id dos usuários que estejam inativos ou que possuam uma senha vazia. | |
-- usr_inativos = pi id sigma situacao = 'inativo' (Usuario) | |
-- usr_senhavazia = pi id sigma senha = '' (Usuario) | |
-- usr_inativos union usr_senhavazia | |
-- 10) Selecione o id e o nome dos funcionários que possuam endereços cujos componentes (todos) estejam preenchidos. | |
-- sujeitos = pi id sigma numero != 0 and cep != 0 (Endereco) | |
-- pi id (Usuario) intersect pi id (sujeitos) | |
-- 11) Selecione a cidade cujo nome é igual a “Curitiba”, renomeando seu id para “identificador” e atribuindo o nome “município” para a relação resultado. | |
-- 12) Selecione as ocupações do CBO onde a descrição seja diferente de “Alfaiate”, renomeando os ids e códigos para “chave_1” e “chave_2”. | |
-- 13) Proceda com a união entre as relações “cbo_familia”, “cbo_ocupacao” e “cbo_sinonimo”, observando e respeitando a diferença entre os tipos de tupla das relações. | |
-- 14) Proceda com a interseção entre as relações “cbo_ocupacao” e “cbo_sinonimo”, observando e respeitando a diferença entre os tipos de tupla das relações. Responda também: o que é possível identificar com essa expressão? | |
-- 15) Selecione os ids e nomes de todos os funcionários, subtraindo aqueles que residam em “Florianópolis”, “São José”, “Palhoça” e “Biguaçu”, ou que possuam um cep vazio em seu endereço. | |
-- excluidos_id = pi id sigma nome = 'Florianópolis' or nome = 'São José' or nome = 'Biguaçu' (Cidade) | |
-- cepvazio_id = pi id sigma cep = 0 (Endereco) | |
-- result_id = (excluidos_id union cepvazio_id) intersect pi id (Funcionario) | |
-- pi id (Funcionario) - pi id (result_id) | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment