Questão de Banco de Dados — SQL — CEPS-UFPA 2022
Banco de DadosSQL
- Código
- gp036566
- Banca
- CEPS-UFPA
- Órgão
- UFPA
- Ano
- 2022
- Cargo
- CEPS - - Analista de Tecnologia da Informação / Área: Governança de TI
Considere o objetivo de se desenvolver um programa que produz um relatório de administração deserviços de tecnologia da informação de uma empresa contendo um gráfico como o apresentado aseguir (com dados fictícios). Em cada fatia da ‘pizza’, são apresentadas as áreas de negócio daempresa e a quantidade de serviços vinculados.
Deve-se supor a existência do esquema de banco de dados composto pelas tabelas a seguir. DROP TABLE IF EXISTS SERVICO; CREATE TABLE SERVICO ( servico_id integer NOT NULL, nome text, tipo_id integer, PRIMARY KEY (servico_id), FOREIGN KEY (tipo_id) REFERENCES TIPOSERVICO(tipo_id)); DROP TABLE IF EXISTS TIPOSERVICO; CREATE TABLE TIPOSERVICO ( tipo_id integer NOT NULL, nome text, area_id integer, PRIMARY KEY (tipo_id), FOREIGN KEY (area_id) REFERENCES AREANEGOCIO(area_id)); DROP TABLE IF EXISTS AREANEGOCIO; CREATE TABLE AREANEGOCIO ( area_id integer NOT NULL, nome text, PRIMARY KEY(area_id)); Com base no esquema de banco de dados fornecido, a consulta SQL que apresenta como resultadoos dados necessários para a produção do gráfico apresentado é
Deve-se supor a existência do esquema de banco de dados composto pelas tabelas a seguir. DROP TABLE IF EXISTS SERVICO; CREATE TABLE SERVICO ( servico_id integer NOT NULL, nome text, tipo_id integer, PRIMARY KEY (servico_id), FOREIGN KEY (tipo_id) REFERENCES TIPOSERVICO(tipo_id)); DROP TABLE IF EXISTS TIPOSERVICO; CREATE TABLE TIPOSERVICO ( tipo_id integer NOT NULL, nome text, area_id integer, PRIMARY KEY (tipo_id), FOREIGN KEY (area_id) REFERENCES AREANEGOCIO(area_id)); DROP TABLE IF EXISTS AREANEGOCIO; CREATE TABLE AREANEGOCIO ( area_id integer NOT NULL, nome text, PRIMARY KEY(area_id)); Com base no esquema de banco de dados fornecido, a consulta SQL que apresenta como resultadoos dados necessários para a produção do gráfico apresentado é- ASELECT SERVICO.servico_id, SERVICO.nome FROM SERVICO,TIPOSERVICO, AREANEGOCIO WHERE TIPOSERVICO.area_id = AREANEGOCIO.area_id AND SERVICO.tipo_id = TIPOSERVICO.tipo_id;
- BSELECT AREANEGOCIO.nome, 1000*COUNT(DISTINCT SERVICO.servico_id)/ (SELECT COUNT(DISTINCT SERVICO.servico_id) FROM SERVICO,TIPOSERVICO,AREANEGOCIO WHERE TIPOSERVICO.area_id = AREANEGOCIO.area_id AND SERVICO.servico_id = TIPOSERVICO.tipo_id) AS SERVICOS_AREA FROM SERVICO,TIPOSERVICO,AREANEGOCIO WHERE TIPOSERVICO.area_id = AREANEGOCIO.area_id AND SERVICO.tipo_id = TIPOSERVICO.tipo_id GROUP BY SERVICO.nome;
- CSELECT AREANEGOCIO.nome, COUNT(DISTINCT SERVICO. servico_id) AS QtdeServicos FROM SERVICO,TIPOSERVICO,AREANEGOCIO WHERE TIPOSERVICO.area_id = AREANEGOCIO.area_id AND SERVICO.servico_id = TIPOSERVICO.tipo_id GROUP BY AREANEGOCIO.nome;
- DSELECT AREANEGOCIO.nome, COUNT(DISTINCT SERVICO.SERVICO_ID) AS TotalServico FROM SERVICO WHERE TIPOSERVICO.area_id = AREANEGOCIO.area_id AND SERVICO.tipo_id = TIPOSERVICO.tipo_id GROUP BY AREANEGOCIO.nome;
- ESELECT SERVICO.servico_id, 100*COUNT(DISTINCT SERVICO.servico_id)/ (SELECT COUNT(DISTINCT SERVICO.servico_id) FROM SERVICO,TIPOSERVICO,AREANEGOCIO WHERE TIPOSERVICO.area_id = AREANEGOCIO.area_id AND SERVICO.servico_id = TIPOSERVICO.tipo_id) AS SERVICOS_AREA FROM SERVICO,TIPOSERVICO, AREANEGOCIO WHERE TIPOSERVICO.area_id = AREANEGOCIO.area_id AND SERVICO.tipo_id TIPOSERVICO.tipo_id;