0% acharam este documento útil (0 voto)
14 visualizações9 páginas

Ibd100 20240909-1

O documento contém uma série de exercícios e consultas SQL relacionadas a um sistema de banco de dados para uma empresa de recursos humanos. Os exercícios incluem a manipulação de dados sobre funcionários, cargos, projetos e vagas de emprego, além de um estudo de caso sobre o sistema de apoio à colocação de pessoal. Também é solicitado o desenvolvimento de um modelo entidade-relacionamento para o sistema proposto.

Enviado por

isaaudacia
Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato DOCX, PDF, TXT ou leia on-line no Scribd
0% acharam este documento útil (0 voto)
14 visualizações9 páginas

Ibd100 20240909-1

O documento contém uma série de exercícios e consultas SQL relacionadas a um sistema de banco de dados para uma empresa de recursos humanos. Os exercícios incluem a manipulação de dados sobre funcionários, cargos, projetos e vagas de emprego, além de um estudo de caso sobre o sistema de apoio à colocação de pessoal. Também é solicitado o desenvolvimento de um modelo entidade-relacionamento para o sistema proposto.

Enviado por

isaaudacia
Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato DOCX, PDF, TXT ou leia on-line no Scribd
Você está na página 1/ 9

Gabriel Senhoreli Kunitaki Fuza– RA 22106392

Guilherme Santos Maciel – 22106427


Isabela Ramos Da Silva Sousa – RA 22106383
Julio cezar erdei de oliveira borges – RA 22106490
Pedro Henrique Oliveira de Farias – RA 20482313097
Renato Caetité - RA 22113000
Sofia de Mello – RA 20482313094
Tamires Barboza dos Santos – RA 20482313100

Laboratório de Banco de Dados

Componente: IBD029
Professor: PAULO ROBERTO BERNICE

SÃO PAULO
2024
1. Refazer os exercícios das pags. 8 e 9 do arq. aulaasintro_exercc. Embora na aula aula
passada tenha mandado arquivo com soluções efetuar as correções necessárias.

todos os cargos da empresa.


SELECT * FROM CARGO

. o cargo (em maiúsculo) do funcionário Jóse dos Santos.


SELECT cargo.nome FROM func, cargo WHERE cargo.cod=func.codcargo AND
func.nome='José dos Santos'

. o nome (em minúsculo) e o salário dos programadores.


SELECT UCASE(func.nome), salario FROM func, cargo
WHERE func.codcargo=cargo.cod AND LCASE(cargo.nome) = 'programador'

. os funcionários admitidos no mês de outubro do ano passado.


SELECT * FROM func WHERE YEAR(dataadm) = YEAR(Date())-1

. todos os salários diferentes.


SELECT DISTINCT salario FROM func

. todos os projetos da empresa ordenados pela data de início em ordem decrescente.


SELECT * FROM proj ORDER BY dataini DESC

. quantos funcionários existem na empresa.


SELECT COUNT(*) FROM func

. o total de funcionários por cargo.


SELECT codcargo, COUNT(*) AS 'Total de Funcionários' FROM func GROUP BY
codcargo

. a média de funcionários alocados por projeto.


SELECT COUNT(*)/(SELECT COUNT(*) FROM proj) AS 'Media' FROM func_proj

. quanto se gasta mensalmente com salários de programador.


SELECT SUM(func.salario) AS 'Salarios_Programador_Mes'
FROM cargo,func WHERE cargo.cod=func.codcargo AND
LCASE(cargo.nome)='programador'

. quanto se gasta anualmente com salários de analistas de sistemas.


SELECT SUM(func.salario) * 12 AS 'Salarios_Programador_Ano'
FROM cargo,func WHERE cargo.cod=func.codcargo AND
LCASE(cargo.nome)='programador'

. o funcionário mais antigo e o funcionário mais recente.


SELECT * FROM func
WHERE dataadm IN (SELECT MAX(dataadm) FROM func) OR
dataadm IN (SELECT MIN(dataadm) FROM func)

. o nome e a descrição do cargo dos funcionários alocados no projeto ALFA1.


SELECT func.nome, cargo.nome FROM proj, func_proj, func, cargo
WHERE proj.sigla='ALFA1'
AND proj.cod=func_proj.codproj
AND func_proj.codfunc=func.cod
AND cargo.cod=func.codcargo
. quantos funcionários foram contratados em 2003.
SELECT COUNT(*) AS 'Total_Funcionarios' FROM func
WHERE dataadm BETWEEN '01/01/2003' AND '12/31/2003'

. quantos programadores foram contratados no ano atual.


SELECT COUNT(*) AS 'Total_Programadores_AnoAtual' FROM func,cargo
WHERE YEAR(func.dataadm) = YEAR(DATE())
AND LCASE(cargo.nome)='programador'
AND cargo.cod=func.codcargo

. o(s) projeto(s) com funcionários que entraram na empresa depois do projeto ter começado.
SELECT DISTINCT proj.sigla, proj.dataini
FROM proj, func_proj, func
WHERE func.dataadm > proj.dataini
AND proj.cod=func_proj.codproj
AND func_proj.codfunc=func.cod

. o(s) projeto(s) com maior gasto mensal em salários.


SELECT TOP 1 proj.sigla, SUM(func.salario) AS 'Total_Salario'
FROM proj,func_proj,func
WHERE proj.cod=func_proj.codproj
AND func_proj.codfunc=func.cod
GROUP BY proj.sigla
ORDER BY SUM(func.salario) DESC

o(s) projeto(s) com o menor número de funcionários alocados.


SELECT TOP 1 proj.sigla, COUNT(*) AS 'Total_Funcionario'
FROM func_proj, proj
WHERE proj.cod=func_proj.codproj
GROUP BY proj.sigla
ORDER BY 2 ASC
2. Da apostila "sqldoalu" fazer o estudo de caso que se inicia na pag. 17 e tem os
exercícios na pag. 30

Exercícios na pag. 30

1. Quais são as empresas que estão trabalhando com a Agência de Empregos?

SELECT DISTINCT E.Nm_Empresa FROM EMPRESA E


JOIN VAGA V ON E.Id_Empresa = V.Id_Empresa
JOIN SELECAO S ON V.Id_Vaga = S.Id_Vaga;

2. Quais são os nomes das empresas que estão trabalhando com a Agência de Empregos?

SELECT DISTINCT E.Nm_Empresa FROM EMPRESA E


JOIN VAGA V ON E.Id_Empresa = V.Id_Empresa
JOIN SELECAO S ON V.Id_Vaga = S.Id_Vaga;

3. Quais são os nomes das empresas que estão trabalhando com a Agência de Empregos em
ordem ascendente?

SELECT DISTINCT E.Nm_Empresa FROM EMPRESA E


JOIN VAGA V ON E.Id_Empresa = V.Id_Empresa
JOIN SELECAO S ON V.Id_Vaga = S.Id_Vaga
ORDER BY E.Nm_Empresa ASC;

4. Quais são as empresas (mostrar apenas identificação, nome e cidade) que estão trabalhando
com a Agência de Empregos em ordem ascendente?

SELECT DISTINCT E.Id_Empresa, E.Nm_Empresa, E.De_Cidade FROM EMPRESA E


JOIN VAGA V ON E.Id_Empresa = V.Id_Empresa
JOIN SELECAO S ON V.Id_Vaga = S.Id_Vaga
ORDER BY E.Nm_Empresa ASC;

5. Qual o endereço da empresa "Politec"?

SELECT De_Endereco FROM EMPRESA WHERE Nm_Empresa = 'Politec';

6. Quais os cargos a serem ocupados pelas vagas que atualmente estão sendo trabalhadas pela
agência de empregos em ordem ascendente?

SELECT v.De_Cargo_a_Ocupar AS Cargo


FROM VAGA AS v
WHERE v.Vl_Status_Vaga = ‘A’
ORDER BY v.De_Cargo_a_Ocupar ASC;

7. Quais as vagas oferecidas pela empresa "Politec"?

SELECT V.Id_Vaga, V.De_Cargo_a_Ocupar FROM VAGA V


JOIN EMPRESA E ON V.Id_Empresa = E.Id_Empresa
WHERE E.Nm_Empresa = 'Politec';

8. Quais as vagas oferecidas pela empresa "Politec", ordenadas em ordem ascendente?

SELECT V.Id_Vaga, V.De_Cargo_a_Ocupar FROM VAGA V


JOIN EMPRESA E ON V.Id_Empresa = E.Id_Empresa
WHERE E.Nm_Empresa = 'Politec' order BY V.De_Cargo_a_Ocupar ASC;

9. Quais os nomes das empresas que estão com a vaga "Contador"?

SELECT DISTINCT E.Nm_Empresa FROM EMPRESA E


JOIN VAGA V ON E.Id_Empresa = V.Id_Empresa
WHERE V.De_Cargo_a_Ocupar = 'Contador';

10. Quais as empresas e cargos que solicitaram índice de conhecimento técnico > 70?

SELECT E.Nm_Empresa, V.De_Cargo_a_Ocupar FROM VAGA V


JOIN EMPRESA E ON V.Id_Empresa = E.Id_Empresa
WHERE V.Nr_Ind_Conhec_Tec > 70;

11. Quais os nomes de empresas que estão solicitando a vaga "Faxineiro" ordenado pelo nome
da empresa?

SELECT DISTINCT E.Nm_Empresa FROM EMPRESA E


JOIN VAGA V ON E.Id_Empresa = V.Id_Empresa
WHERE V.De_Cargo_a_Ocupar = 'Faxineiro'
ORDER BY E.Nm_Empresa ASC;

12. Quantas empresas estão cadastradas no sistema?

SELECT COUNT(*) FROM EMPRESA ;

13. Qual a soma dos pontos no atributo Índice_Conhecimento_Técnico da tabela VAGA?

SELECT SUM(Nr_Ind_Conhec_Tec) FROM VAGA;

14. Qual a média dos pontos de índice de conhecimento técnico solicitados pelas empresas?

SELECT AVG(Nr_Ind_Conhec_Tec) FROM VAGA;****

15. Qual o maior índice de conhecimento técnico solicitado pelas empresas durante a abertura
das vagas?

SELECT MAX(Nr_Ind_Conhec_Tec) FROM VAGA;

16. Qual o maior índice de conhecimento técnico obtido pelos candidatos em processo de
seleção?

SELECT MAX(Nr_Ind_Conhec_Tec) FROM SELECAO;

17. Qual a somatória dos pontos de índice de conhecimento técnico obtidos pelos candidatos em
processo de seleção?
SELECT AVG(Nr_Ind_Conhec_Tec) FROM SELECAO;

18. Criar uma instrução SQL, usando alias para colunas.

SELECT MAX(Índice_conhecimento_técnico) AS Maior_Índice_Conhecimento_Técnico


FROM VAGA AS v;

19. Atualizar todos os status_selecao para 'P' (pendentes).

UPDATE SELECAO
SET VL_STATUS_SELECAO = ‘P’;

20. Aprovar o candidato 10 na vaga 5.

UPDATE SELECAO
SET VL_STATUS_SELECAO = ‘A’;
WHERE Id_Candidato = 10
And Id_Vaga = 5;

5. Estudo de Caso
Sistema de Apoio à Colocação de Pessoal

O sistema terá como objetivo auxiliar nos processos de colocação de


pessoal. A empresa de recursos humanos que será a usuária do
sistema, irá manter comunicação com funcionários dos
Departamentos Pessoais de diversas empresas, que serão uma
espécie de agentes, os quais informarão sempre que algum executivo
for demitido.
Estes executivos são contatados pela empresa de Recursos Humanos
e são solicitados dos mesmos, o envio de currículos juntamente com
um questionário preenchido com informações sobre seu
comportamento, relacionamento, personalidade, experiência,
conhecimento técnico, etc.
A empresa de Recursos Humanos também efetua propaganda em
publicações, anúncios para o recrutamento de profissionais de
mercado. Estes, pelo fato de não haver indicações, são submetidos à
uma série de testes psicológicos, para o levantamento de índices de
comportamento, relacionamento e personalidade. Esses dados ficam
armazenados no sistema, juntamente com os dados de currículo.
Quando alguma empresa solicita à agência o preenchimento de uma
vaga, a mesma preenche um questionário com as características
desejadas do candidato, o perfil da vaga e o salário a ser oferecido.

No instante da abertura da vaga, é definida uma psicóloga da empresa


de Recursos Humanos que irá gerenciar todo o processo de seleção.
A psicóloga irá avaliar os candidatos cadastrados e irá chamá-los para
entrevistas de seleção. Neste processo, a psicóloga irá, como
conseqüência da entrevista, atribuir índices de comportamento,
personalidade, experiência, permanência no emprego, conhecimento
técnico, necessidade de sustento. Para a definição destes índices a
psicóloga, poderá obter subsídios no questionário e currículos
enviados e também caso achar necessário, submeter o candidato à
uma série de testes psicológicos e técnicos relativos à vaga
pretendida pelo candidato.
Ao atingir um certo número de candidatos, previamente acordado com
a empresa contratante, a psicóloga irá solicitar do sistema um relatório
contendo informações de currículo e de índices dos candidatos, e irá
encaminhá-los para a entrevista na empresa contratante.

5.1. Lista de entidades com respectivos


atributos

EMPRESA
Identificação_empresa
Nome_empresa
Endereço_empresa
CEP_empresa
CANDIDATO
Identificação_candidato
Nome_candidato
Endereço_candidato
CEP_candidato
Cidade_candidato
Telefone_comercial_candidato
Telefone_residencial_candidato
Estado_civil_candidato
Formação_Escolar_candidato
Última_empresa_candidato
Penúltima_empresa_candidato
Último_cargo_candidato
Penúltimo_cargo_candidato

VAGA
Identificação_vaga
Identificação_empresa
Cargo_a_ocupar
Índice_conhecimento_técnico
Índice_tolerância_a_hierarquia
Índice_relacionamento
Índice_necessidade_de_sustento
Índice_experiência
Índice_permanência_emprego
Status_vaga
Salário_oferecido
Nome_da_Psicóloga
Data_abertura_vaga
5.2. Relacionamentos
Empresa solicita Vaga
Candidatos pleiteiam Vaga (Seleção)

Exercício:

Elabore o Modelo Entidade-Relacionamento para o contexto em


questão, indicando as cardinalidades mínima e máxima dos
relacionamentos.

Diagrama MER do enunciado:

Você também pode gostar

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy