Baixe o app para aproveitar ainda mais
Prévia do material em texto
19/06/2021 PROVA - UNIGRANDE www.fgf.edu.br/PortalAcademico/ProvaAlunoVisualizar.aspx?id=8da34dba-0ca5-484a-b071-d6491ad9b1f0 1/4 UNIGRANDE - CENTRO UNIVERSITÁRIO DA GRANDE FORTALEZA GQE - 20211 - BANCO DE DADOS II Data da Aplicação 26/05/2021 Nome: RUBENS SOUZA SIMPLICIO Turma 0037147 Questão (1): Sejam T1 e T2 duas transações de uma escala. Digamos que T2 depende de T1. Por que é necessário desfazer uma T2 se T1 falhar? RESPOSTA ALUNO PORQUE T2 UTILIZA OS VALORES DE T1. Questão (2): Dê as características de: a) Bloqueio exclusivo: b) Bloqueio compartilhado: RESPOSTA ALUNO BLOQUEIO EXCLUSIVO - Momento em que uma transação fica unicamente reservada para a instrução que compõe a transação, não permite que outra transação faça uso do dado que está sendo utilizado, neste momento, um item bloqueado para gravação é chamado de bloqueado exclusivo, pois uma única transação mantém o item bloqueado. BLOQUEIO COMPARTILHADO - Momento em que mais de uma transação poderá acessar o mesmo dado e a instrução é de leitura. Se a instrução for de gravação, então ela não poderá envolver-se num bloqueio compartilhado, ou seja, é possibilitado que muitas transações acessem um mesmo item "X" se todas elas acessarem este item "X" apenas com o objetivo de leitura. Questão (3): Considere o seguinte script SQL de criação de um banco de dados: create table curso (cur_cod int primary key, cur_desc varchar(15)); create table estudante (est_matr int primary key, est_nome varchar(40), est_rua varchar(50), est_num int, est_bai varchar(20), est_fone varchar(15), est_cur int, foreign key (est_cur) references curso); A partir desse script, assinale a opção que apresenta comando SQL que permite obter uma lista que contenha a matrícula e o nome do estudante que faz o curso “ciência da computação”. (A) select e.est_matr, e.est_nome from estudante e, curso c where c.cur_desc = 'ciencia da computação'; (B) select e.est_nome from estudante e, curso c where c.cur_cod = e.est_cur and 19/06/2021 PROVA - UNIGRANDE www.fgf.edu.br/PortalAcademico/ProvaAlunoVisualizar.aspx?id=8da34dba-0ca5-484a-b071-d6491ad9b1f0 2/4 c.cur_desc = 'ciencia da computação'; (C) select e.est_matr, e.est_nome from estudante e, curso c where c.cur_cod = e.est_cur and c.cur_desc = 'ciencia da computação'; (D) select e.est_matr, e.est_nome from estudante e, curso c where c.cur_cod = 10 and c.cur_desc = 'ciencia da computação'; (E) select e.est_matr, e.est_nome from estudante e, curso c where c.cur_cod = e.est_cur and c.cur_desc = 'ciencia da computação' group by e.est_matr, e.est_nome; RESPOSTA ALUNO C Questão (4): Dada a relação Produto (prod_cod, prod_desc, prod_qtd). Qual a propriedade de transação que ocorreu depois da execução abaixo? Justifique sua resposta. BEGIN; INSERT INTO PRODUTO VALUES (10094, ‘RÉGUA’, 120); SELECT * FROM PRODUTO; INSERT INTO PRODUTO VALUES (10095, ‘TESOURA’, 47); SELECT PROD_DESC, PROD_QTD FROM PRODUTO; COMMIT; END; RESPOSTA ALUNO DURABILIDADE; PORQUE OS DADOS FORAM GRAVADOS NO BANCO DE DADOS. Questão (5): A criação de tipos de dados compostos nos bancos de dados orientados a objetos facilita a sua manipulação. Diante disso, escolha o comando correto para criar a tabela Produto com o tipo Catalogo para o atributo item como descrito abaixo: Tipo Catalogo: nome - tipo conjunto de 20 caracteres; quantidade - tipo inteiro; preco - tipo numérico tamanho 6,2. Tabela Produto: codigo do produto - tipo inteiro e chave primária; item - tipo catalogo. (A) CREATE TABLE Produto (codigo inteiro primary key, item type catalogo); (B) CREATE TABLE Produto (codigo integer primary key, item type catalogo); (C) CREATE TABLE Produto (codigo integer primary key, type item catalogo); (D) CREATE TABLE Produto (codigo integer primary key, item catalogo); (E) 19/06/2021 PROVA - UNIGRANDE www.fgf.edu.br/PortalAcademico/ProvaAlunoVisualizar.aspx?id=8da34dba-0ca5-484a-b071-d6491ad9b1f0 3/4 CREATE TYPE Produto (codigo integer primary key, item catalogo); RESPOSTA ALUNO D Questão (6): Escolha a opção correta que mostra a criação da tabela Gerente com seus atributos (cpf, nome, endereço e celular) e herdando os atributos da tabela Funcionario. (A) CREATE TABLE Gerente, Funcionario (cpf NUMERIC(11) PRIMARY KEY, nome VARCHAR(80), endereco varchar(50), celular VARCHAR(12)) ; (B) CREATE TABLE Gerente (cpf NUMERIC(11) PRIMARY KEY, nome VARCHAR(80), endereco varchar(50), celular VARCHAR(12)) INHERITS (Funcionario) ; (C) CREATE TABLE Gerente INHERITS (Funcionario) ; (D) CREATE TABLE Funcionario (cpf NUMERIC(11) PRIMARY KEY, nome VARCHAR(80), endereco varchar(50), celular VARCHAR(12)); (E) CREATE TABLE Funcionario (cpf NUMERIC(11) PRIMARY KEY, nome VARCHAR(80), endereco varchar(50), celular VARCHAR(12)) INHERITS (Gerente); RESPOSTA ALUNO B Questão (7): Dada a estrutura do banco de dados "UNIVERSIDADE", escolha a opção para criar uma visão para mostrar as notas de cada disciplina de todos os estudantes com os comandos do PostgreSQL. Estudante (est_matr(PK), est_nome, est_rua, est_bai, est_cep, est_fone, est_cur(FK)) Disciplina (dis_cod(PK), dis_nome, dis_chor, dis_ncred) Estu_Disc (ed_estmatr(PFK), ed_discod(PFK), ed_nota) Professor (pro_cpf(PK), pro_nome,pro_dt datetime) Disc_Prof (dp_discod(PFK), dp_procpf(PFK)) Curso (cur_cod(PK), cur_desc, cur_depcod(FK)) (A) Create view nota_visao as select e.est_nome as estudante,d.dis_nome as disciplina,ed.ed_nota as nota from estudante e, disciplina d, est_dis ed where d.dis_cod = ed.ed_discod (B) Create view nota_visao as select e.est_nome as estudante,d.dis_nome as disciplina,ed.ed_nota as nota from estudante e, disciplina d, est_dis ed where d.dis_cod = ed.ed_discod and e.est_matr = ed.ed_estmatr (C) Create view nota_visao as select e.est_nome as estudante,d.dis_nome as disciplina,ed.ed_nota as nota from estudante e, disciplina d, est_dis ed 19/06/2021 PROVA - UNIGRANDE www.fgf.edu.br/PortalAcademico/ProvaAlunoVisualizar.aspx?id=8da34dba-0ca5-484a-b071-d6491ad9b1f0 4/4 (D) Create view nota_visao as select e.est_nome as estudante,d.dis_nome as disciplina,ed.ed_nota as nota from estudante e where d.dis_cod = ed.ed_discod and e.est_matr = ed.ed_estmatr (E) Create view nota_visao as select e.est_nome as estudante,d.dis_nome as disciplina,ed.ed_nota as nota from estudante e, disciplina d where e.est_matr = ed.ed_estmatr RESPOSTA ALUNO Questão (8): De acordo com o banco de dados “Prefeitura”, descrito abaixo, escolha a opção correta para verificar quantos prefeitos tem cada partido projetando o nome do partido e a quantidade de prefeitos, usando os comandos do PostgreSQL: Conta_Bancaria(age_cb(PK), num_cb(PK), sal_cb) Partido(sig_par(PK), nom_par, dtfun_par) Prefeito(rg_pre(PK), nom_pre, datnas_pre, datpos, sig_par(FK)), sig_par(FK-Partido) Assessor(rg_ass(PK), rg_pre(PFK), end_ass, fon_ass, cel_ass) , rg_pre(FK-Prefeito) Conta_Prefeito(age_cb(PFK), num_cb(PFK), rg_pre(PFK), databe_pre), rg_pre(FK-Prefeito) , age_cb, num_cb (FK-Conta_Bancaria) Municipio(cod_mun(PK), nom_mun, are_mun, pop_mun, rg_pre(FK)) ,rg_pre(FK-Prefeito) Distrito(cod_dis(PK), nom_dis, cod_mun(FK)), cod_mun(FK-Municipio) (A) select count(p.rg_pre) from partido pa, prefeito p where p.sig_par = pa.sig_par group by p.rg_pre (B) select pa.nom_par, count(p.rg_pre) from partido pa, prefeito p where p.sig_par = pa.sig_par (C) select pa.nom_par, count(p.rg_pre) from partido pa, prefeito p group by pa.nom_par (D) select pa.nom_par, sum(p.rg_pre) from partido pa, prefeito p where p.sig_par = pa.sig_par group by pa.nom_par (E) select pa.nom_par, count(p.rg_pre) from partido pa, prefeito p where p.sig_par = pa.sig_par group by pa.nom_par RESPOSTA ALUNO E
Compartilhar