a) Projeto lógico.
b) Teste de integração.
c) Instalação.
d) Definição da ferramenta que será adotada.
e) Teste de carga.
O modelo hierárquico possui muitas limitações. Ele pode ser útil para
modelar esquemas fortemente hierárquicos (como classificações para
espécies dos reinos animal e vegetal, corporações, hierarquias
governamentais, etc.), mas apresenta limitações quando representa
modelos não-hierárquicos. Isto provocou o surgimento do modelo em
rede.
(A) funcional.
(B) procedural.
(C) orientado a serviços.
001 Marcos S
002 Paula N
003 Roberta S
004 Marcelo N
DEPARTAMENTO
A linha dupla indica participação total, e a entidade ligada por linha dupla
exige que ela se relacione com pelo menos uma entidade do outro lado do
relacionamento. Já a linha simples indica o relacionamento, mas pode ser
que nem toda entidade possua um relacionamento.
A questão seria bem mais clara se ela, ao invés de falar “cada entidade”
do “conjunto de entidades”, falasse “instância das entidades” das
“entidades”.
1.11 Cardinalidade
DEPARTAMENTO
PROJETO
EMPREGADO
001 Marcos S
002 Paula N
003 Roberta S
004 Marcelo N
TRABALHA
CodEmpregado CodProjeto
001 P01
001 P02
002 P03
003 P01
Creio que você já o entenda mais do que quando o viu pela primeira
vez. Mas vamos entendê-lo ainda mais, pois ele está carregado de
informações do modelo relacional.
Prof. Victor Dalton
www.estrategiaconcursos.com.br 17 de 149
Tecnologia da Informação para ICMS/PI
Auditor Fiscal da Fazenda Estadual
Prof Victor Dalton Aula 01
Não confunda!
Simples Monovalorado
indivisível um único valor na tupla
Composto Multivalorado
pode ser dividido em várias partes mais de um valor dentro da mesma
tupla
Carro Cor
Gol Preto, Azul, Amarelo
codigo_cliente Nome
1 Jader
2 Afonso
3 André
4 Simone
Perceba que, mesmo que um mesmo atributo possa ser (ou compor)
chave primária e ser chave estrangeira, as funções da chave são bem
distintas. A primária restringe unicidade ou nulidade, enquanto a
estrangeira restringe relacionamento. No esquema, as chaves
parcialmente douradas estão fazendo o papel de chave primária, mas
funcionam ao mesmo tempo como chaves estrangeiras, na mesma tabela.
Por fim, acho interessante que você saiba que, no modelo relacional,
podemos descrever as tabelas, seus atributos e restrições da seguinte
forma abaixo, com os atributos entre parênteses e as chaves sublinhadas:
Creio que podemos voltar a este aspecto, uma vez que você
compreende um pouco mais sobre banco de dados.
Lembra que, no começo da apostila, eu falei que o SGBD precisava
gerenciar milhares de transações simultâneas, fazer controle de
redundância, dentre outros?
Acho que você compreende isso melhor agora. Basta imaginar uma
simples transação modificando múltiplas tabelas, verificando restrições de
integridade. Já não é algo simples para uma transação única. E quando as
transações tentam modificar os mesmos campos de uma tabela ao
mesmo tempo? É aí que entra o famoso controle de concorrência do
SGBD, organizando as transações, impedindo que o Banco de Dados entre
em um estado inconsistente.
Prof. Victor Dalton
www.estrategiaconcursos.com.br 27 de 149
Tecnologia da Informação para ICMS/PI
Auditor Fiscal da Fazenda Estadual
Prof Victor Dalton Aula 01
a) durabilidade e consistência.
Uma vez visto o modelo relacional, creio que seja mais simples
entender o papel do catálogo, ou dicionário de dados.
View é uma tabela única derivada de outras tabelas. Por não existir
fisicamente, pode ser considerada uma tabela virtual. A visão,
diferentemente das tabelas básicas, não contém suas tuplas armazenadas
no banco de dados.
DEPARTAMENTO
PROJETO
Dadas estas tabelas, pode ser conveniente criar uma visão para o
usuário, que mostre apenas o Projeto e o nome do Departamento
Responsável. Abaixo:
Projeto Departamento
Responsável
Inovação Marketing
Reestruturação Administração
VISÃO PROJETO
Projeto Departamento
Responsável
Inovação Marketing
Reestruturação Administração
Esta view não permite a modificação dos dados, pois ela envolve
duas tabelas, Projeto e Departamento, lembra?
CREATE
EMPREGADO
DEPARTAMENTO
PROJETO
codEmpregado codProjeto
GERENCIA
codGerencia
ALTER
DROP
EMPREGADO
PROJETO
PROJETO
PROJETO
DEPARTAMENTO
PROJETO
TRABALHA
codEmpregado codProjeto
001 P01
001 P02
002 P03
003 P01
E a consulta retorna:
nomeEmpregado salario
Paula 12000,00
Roberta 9000,00
nomeProjeto
Inovação
Vender Mais
Novo Produto
EMPREGADO
salario
13500,00
nomeProjeto nomeDepartamento
Inovação Marketing
Reestruturação Administração
Inovação Marketing
Reestruturação Administração
nomeProjeto nomeDepartamento
Inovação Marketing
EMPREGADO
TRABALHA
codEmpregado codProjeto
001 P01
001 P02
002 P03
003 P01
PROJETO
nomeEmpregado nomeProjeto
Marcos Inovação
Marcos Reestruturação
Roberta Inovação
Esta consulta é muito similar à anterior, mas apenas solicita que seja
mostrada a coluna nomeEmpregado. Dessa forma, perceba que “Marcos”
seria mostrado duas vezes.
nomeEmpregado
Marcos
Paula
Roberta
nomeEmpregado
Marcos
Paula
nomeEmpregado nomeProjeto
Marcos Inovação
Marcos Reestruturação
Espero que SQL não pareça mais “grego” para você. Vamos aos
exercícios, e não se surpreenda com as novidades pontuais que serão
apresentadas por lá.
Alternativa a).
Voltando à questão:
Alternativa d).
a) Projeto lógico.
b) Teste de integração.
c) Instalação.
d) Definição da ferramenta que será adotada.
e) Teste de carga.
Alternativa c).
a) integridade.
b) concorrência.
c) restrição.
d) desempenho.
e) restauração.
Alternativa e).
Das várias alternativas confusas, que passam por outros ramos da TI, a
alternativa e) apresenta uma afirmativa completa e coerente.
Para relembrar!
Alternativa a).
Relembrando:
Alternativa c).
O Nível conceitual:
a) II, apenas.
b) II e III, apenas.
c) I, II e III.
d) I e II, apenas.
e) III, apenas.
Alternativa d).
Alternativa b).
Alternativa a).
a) modularidade.
b) modelo conceitual.
c) independência lógica de dados.
d) polimorfismo.
e) agregação.
Alternativa c).
a) em rede.
b) relacional.
c) hierárquico.
d) orientado a objetos.
e) distribuído.
Conseguiu acompanhar?
Agora você tem uma questão de lógica para resolver. Leia alternativa a
alternativa, e descubra porque a alternativa e) é a correta.
A linha dupla indica participação total, e a entidade ligada por linha dupla
exige que ela se relacione com pelo menos uma entidade do outro lado do
relacionamento. Já a linha simples indica o relacionamento, mas pode ser que
nem toda entidade possua um relacionamento. Você lembra disso?
a) relacionamentos – entidades
b) atributos − relacionamentos
c) entidades − relacionamentos
d) entidades − atributos
e) atributos − entidades
Relembrando:
a) o valor zero.
b) um valor especial designado pelo código ASCII da tecla #.
c) o valor correspondente à tecla F12.
d) a ausência de valor.
e) um valor fora do domínio do atributo.
Alternativa d).
Alternativa c).
a) Tão errada que lhe confunde. Uma chave primária é uma coluna ou
uma combinação de colunas cujos valores distinguem uma tupla
das demais dentro de uma tabela.
b) Certa.
c) Não necessariamente. Chaves estrangeiras podem integrar chaves
primárias de uma tabela!
d) Quase! Uma chave primária é uma coluna ou uma combinação de
colunas cujos valores distinguem uma linha das demais dentro
de uma tabela.
Alternativa d).
Atributos atômicos são aqueles que não podem ser divididos! Alternativa
b).
Alternativa a).
Alternativa d).
O projeto conceitual, você já sabe, vem antes do projeto lógico. Ele resulta
em diagramas como o acima: algo bem alto nível, pro projetista sentar com o
cliente e conversar, para saber se é isso que ele realmente quer. No projeto
lógico já começa a ser definido como as tabelas ficam na base de dados. Perceba
também algo que eu lhe falei antes: nesta questão, nitidamente relação é
tabela!
Antes de mais nada, um erro da banca: perceba que CodLote deveria estar
em uma elipse. Mas isso não nos impede de prosseguir.
Nesse caso, as chaves são todas primárias. Atributos do tipo código quase
sempre são chaves.
a) table shadow.
b) view.
c) shadow table.
Prof. Victor Dalton
www.estrategiaconcursos.com.br 78 de 149
Tecnologia da Informação para ICMS/PI
Auditor Fiscal da Fazenda Estadual
Prof Victor Dalton Aula 01
d) table blour.
e) blour table.
Alternativa b).
I. Uma VIEW provê mais segurança, pois permite esconder parte dos dados
da tabela real.
II. Os dados que compõem a VIEW são armazenados separadamente da
tabela real.
III. Uma linha inserida na VIEW, com todas as colunas, será inserida na
tabela real.
a) I,II e III.
b) I e II, somente.
c) I e III, somente.
d) II e III, somente.
e) I, somente.
Analisando os itens:
No caso de uma view que possui todas as colunas de uma tabela real, uma
inserção de uma linha, nessa view, insere, na verdade, um registro na tabela
real.
a) dependência funcional
b) normalização
c) generalização/especialização
d) relacionamento identificador
e) cardinalidade.
Alternativa e).
e) Sistemas de arquivos.
Depois que a gente estuda fica trivial, não é mesmo? Alternativa c).
a) Modelo físico.
c) Modelo virtual.
d) Modelo conceitual.
e) Modelo lógico.
Alternativa d).
a) Losango.
e) Retângulo.
Alternativa e).
a) I e III, apenas.
b) I e II, apenas.
c) II e III, apenas.
d) I, II e III.
e) II, apenas.
* Nome Telefone
1 Paulo (11) 99999-8888
2 Paulo (11) 99999-7777
3 Paulo (11) 3030-3131
4 Marta (11) 5678-9012
5 Marta (11) 99988-9876
6 Rita (11) 98765-4321
Chave substituta: coluna não identificada, marcada com *
Alternativa b).
O atributo Idade é um atributo derivado, pois pode ser calculado com base
no atributo armazenado Data de Nascimento, tendo o dia atual como
referência.
a) acesso simultâneo.
b) semáforo de acesso.
c) transação.
d) modularização.
e) polimorfismo.
c) independência modular.
d) representação conceitual.
a) abstração de dados.
b) acesso remoto.
c) independência funcional.
d) independência modular.
e) modelo relacional.
(A) funcional.
(B) procedural.
(C) orientado a serviços.
(D) relacional.
(E) orientado a componentes.
São alguns conceitos chatos, mas que fazem sentido. Assim, nossa
alternativa correta é a letra b).
Às alternativas:
Destrinchando:
Em frente!
a) III, apenas.
b) I e II, apenas.
c) I e III, apenas.
d) II e III, apenas.
e) I, II e III.
I. NOT NULL – é uma restrição de vazio, que impede que o valor deste
atributo em um registro fique sem ser preenchido. Não tem nada a ver com
garantia de exclusividade.
II. DEFAULT - Exatamente o que descreve a assertiva. Não impede que
outro valor distinto seja inserido ou modificado mas, caso nada seja inserido, o
valor default é automaticamente preenchido.
III. CHECK - Também é o que está descrito. Você usa essa restrição
quando desejar, por exemplo, que o atributo idade de uma tabela pessoa seja,
obrigatoriamente, preenchido com valores entre 18 e 70. Se alguém tentar
inserir um valor fora desses parâmetros, o SGBD envia uma mensagem de erro,
impedindo a operação.
Você sabe qual tipo de restrição é unique? Acertou se disse que unique é
uma restrição de chave. E para que serve o unique?
Alternativa b).
MEC
cidade temp_baixa temp_alta nivel_precip Data
Agora a questão está limitada a você saber que depois de INSERT escreve-
se INTO, sendo a alternativa e) a correta.
Agora leia:
MEC
cidade temp_baixa temp_alta nivel_precip Data
Brasilia 20 34 0.2 2009-01-13
Entendeu? Em frente!
CREATE TABLE VALORES (ID INT NOT NULL PRIMARY KEY,VALOR INT);
INSERT INTO VALORES VALUES (1,5);
INSERT INTO VALORES VALUES (1,6);
INSERT INTO VALORES VALUES (NULL,7);
INSERT INTO VALORES VALUES (2,1);
INSERT INTO VALORES VALUES (2,8);
INSERT INTO VALORES VALUES (3,9);
INSERT INTO VALORES VALUES (NULL,10);
SELECT COUNT(VALOR) FROM VALORES WHERE VALOR >= 5;
Então você leu por cima e achou a questão facílima? Ou você está bem
“ligeiro” em SQL, e aí meus parabéns, ou você vai se enrolar...
CREATE TABLE VALORES (ID INT NOT NULL PRIMARY KEY,VALOR INT);
VALORES
id valor
Bem, então temos uma tabela preenchida com (1,5), (2,1) e (3,9).
Tranquilo?
a) commit.
b) rollback.
c) trigger.
d) snapshot.
e) deadlock.
Exemplo simples:
Conseguiu captar?
Basicamente, este Trigger, quando da atualização salarial de um
empregado, vai na tabela Departamento e atualiza o total de despesas do
referido Departamento com o novo salário do empregado.
Correto.
Correto. Há autores que dizem que esse papel é desempenhado pela VDL,
mas, pelo visto, o CESPE reconhece a DDL externa para desempenhar esse
papel.
);
(id_curso);
a) apenas o primeiro livro será incluído na tabela, pois o segundo livro está
utilizando o mesmo código de identificação, o que é restringido (CONSTRAINT)
para campos do tipo ID.
O primeiro comando cria a tabela. Perceba que não foi definida uma chave
primária!
LIVRO
id nome autor
LIVRO
id nome autor
1 Memórias Póstumas de Brás Cubas Machado de Assis
O terceiro comando inseriu outro registro. Como não existe chava primária
definida, não há problemas em inserir outro registro.
LIVRO
id nome autor
1 Memórias Póstumas de Brás Cubas Machado de Assis
1 Quincas Borba
Por fim, o último comando irá atualizar os autores cujo ID seja 1, ou seja,
AMBOS OS REGISTROS. Mas, como um registro já possui “Machado de Assis”
LIVRO
id nome autor
1 Memórias Póstumas de Brás Cubas Machado de Assis
1 Quincas Borba Machado de Assis
Alternativa e).
Alternativa e).
c) SELECT local, nome, placar1, placar2, nome FROM jogos INNER JOIN
times;
e) SELECT local, CASE a.time1 = b.id THEN nome, placar1, placar2, CASE
a.time2 = b.id THEN nome FROM jogos a, times b;
TIMES
id nome cidade
1 santosfc santos
2 palmeiras sao paulo
3 guarani campinas
JOGOS
local data time1 time2 placar1 placar2
campinas 20100504 3 1 0 2
santos 20101220 1 2 1 1
campinas 20110210 3 2 0 0
Logo, ficou fácil perceber que time1 e time2 vão encontrar correspondência
nos id da tabela TIMES, enquanto o atributo local possui influência direta no
time1 (que é o mandante). Enxergou o mesmo que eu?
Vitória Time 2
Empate
Empate
a) SELECT (SELECT "Vitória time 1" WHERE placar1 > placar2, SELECT
"Vitória time 2" WHERE placar2 > placar1, SELECT "Empate" WHERE placar1 =
placar2) FROM jogos;
c) SELECT "Vitória time 1" WHERE placar1 > placar2, "Vitória Time 2"
WHERE placar2 > placar1, "Empate" WHERE placar1 = placar2 FROM jogos;
d) SELECT nome FROM jogos WHERE nome IN (CASE WHEN placar1 >
placar2 THEN "Vitória time 1" WHEN placar2 > placar1 THEN "Vitória time 2"
ELSE "Empate" END);
e) SELECT CASE WHEN placar1 > placar2 THEN "Vitória time 1" WHEN
placar2 > placar1 THEN "Vitória Time 2" ELSE "Empate" END AS T1 FROM jogos;
Opa! Aqui temos uma query mais elaborada! Ela deverá analisar, registro a
registro, o placar dos jogos, e imprimir uma sentença de acordo com o
resultado. A utilização de CASE me parece a mais conveniente, e só temos uma
alternativa com esta cláusula, letra e), que realmente não é comum em SQL.
Se você não conhecia, fica de aprendizado.
Eu, particularmente, gosto muito de BD. Por isso, procurei escrever muita
coisa pra vocês nos mínimos detalhes, tentando aliviar a dificuldade que eu
imagino que vocês terão com esse assunto. Sei que vocês não estão aqui para
se formarem em Bancos de Dados, e sim para acertar questões sobre o assunto
na prova.
Mesmo você que sentiu muita dificuldade na matéria, não desanime. Este
curso é tão difícil quanto os cursos ministrados apenas para
profissionais de TI. Aprendi a não subestimar a sua capacidade de
aprendizado. E lembre-se, treinamento difícil, combate fácil. Certamente as
questões de BD que caírem em sua prova serão menos difíceis do que a maioria
das questões que apresentei para você.
Faça um esforço, vale a pena esse sacrifício. Se tudo der certo, será a
última vez que você estuda esses assuntos.
Bons estudos!
Victor Dalton
a) Projeto lógico.
b) Teste de integração.
c) Instalação.
d) Definição da ferramenta que será adotada.
e) Teste de carga.
a) integridade.
b) concorrência.
c) restrição.
d) desempenho.
e) restauração.
O Nível conceitual:
a) II, apenas.
b) II e III, apenas.
c) I, II e III.
d) I e II, apenas.
e) III, apenas.
a) modularidade.
b) modelo conceitual.
c) independência lógica de dados.
d) polimorfismo.
e) agregação.
a) em rede.
b) relacional.
c) hierárquico.
d) orientado a objetos.
e) distribuído.
a) relacionamentos – entidades
b) atributos − relacionamentos
c) entidades − relacionamentos
d) entidades − atributos
e) atributos − entidades
a) table shadow.
Prof. Victor Dalton
www.estrategiaconcursos.com.br 129 de 149
Tecnologia da Informação para ICMS/PI
Auditor Fiscal da Fazenda Estadual
Prof Victor Dalton Aula 01
b) view.
c) shadow table.
d) table blour.
e) blour table.
I. Uma VIEW provê mais segurança, pois permite esconder parte dos dados
da tabela real.
II. Os dados que compõem a VIEW são armazenados separadamente da
tabela real.
III. Uma linha inserida na VIEW, com todas as colunas, será inserida na
tabela real.
a) I,II e III.
b) I e II, somente.
c) I e III, somente.
d) II e III, somente.
e) I, somente.
a) dependência funcional
b) normalização
c) generalização/especialização
d) relacionamento identificador
e) cardinalidade.
e) Sistemas de arquivos.
a) Modelo físico.
b) Modelo de dados.
c) Modelo virtual.
d) Modelo conceitual.
e) Modelo lógico.
a) Losango.
e) Retângulo.
a) I e III, apenas.
b) I e II, apenas.
c) II e III, apenas.
d) I, II e III.
e) II, apenas.
a) acesso simultâneo.
b) semáforo de acesso.
c) transação.
d) modularização.
e) polimorfismo.
c) independência modular.
d) representação conceitual.
a) abstração de dados.
c) independência funcional.
d) independência modular.
e) modelo relacional.
(A) funcional.
(B) procedural.
(C) orientado a serviços.
(D) relacional.
(E) orientado a componentes.
a) III, apenas.
b) I e II, apenas.
c) I e III, apenas.
d) II e III, apenas.
e) I, II e III.
CREATE TABLE VALORES (ID INT NOT NULL PRIMARY KEY,VALOR INT);
INSERT INTO VALORES VALUES (1,5);
INSERT INTO VALORES VALUES (1,6);
INSERT INTO VALORES VALUES (NULL,7);
INSERT INTO VALORES VALUES (2,1);
INSERT INTO VALORES VALUES (2,8);
INSERT INTO VALORES VALUES (3,9);
INSERT INTO VALORES VALUES (NULL,10);
SELECT COUNT(VALOR) FROM VALORES WHERE VALOR >= 5;
a) commit.
b) rollback.
c) trigger.
d) snapshot.
e) deadlock.
);
(id_curso);
a) apenas o primeiro livro será incluído na tabela, pois o segundo livro está
utilizando o mesmo código de identificação, o que é restringido (CONSTRAINT)
para campos do tipo ID.
c) SELECT local, nome, placar1, placar2, nome FROM jogos INNER JOIN
times;
e) SELECT local, CASE a.time1 = b.id THEN nome, placar1, placar2, CASE
a.time2 = b.id THEN nome FROM jogos a, times b;
Vitória Time 2
Empate
Empate
a) SELECT (SELECT "Vitória time 1" WHERE placar1 > placar2, SELECT
"Vitória time 2" WHERE placar2 > placar1, SELECT "Empate" WHERE placar1 =
placar2) FROM jogos;
c) SELECT "Vitória time 1" WHERE placar1 > placar2, "Vitória Time 2"
WHERE placar2 > placar1, "Empate" WHERE placar1 = placar2 FROM jogos;
d) SELECT nome FROM jogos WHERE nome IN (CASE WHEN placar1 >
placar2 THEN "Vitória time 1" WHEN placar2 > placar1 THEN "Vitória time 2"
ELSE "Empate" END);
e) SELECT CASE WHEN placar1 > placar2 THEN "Vitória time 1" WHEN
placar2 > placar1 THEN "Vitória Time 2" ELSE "Empate" END AS T1 FROM jogos;
GABARITO
1.e 2.a 3.a 4.b 5.d 6.a 7.c 8.d 9.b 10.e
11.e 12.a 13.c 14.e 15.d 16.b 17.a 18.c 19.a 20.d
21.e 22.e 23.d 24.c 25.a 26.b 27.a 28.d 29.c 30.b
31.a 32.e 33.b 34.e 35.d 36.d 37.a 38.b 39.a 40.d
41.a 42.c 43.b 44.c 45.e 46.c 47.d 48.a 49.d 50.b
51.a 52.b 53.c 54.e 55.d 56.a 57.a 58.d 59.b 60.c
61.e 62.d 63.b 64.e 65.b 66.a 67.c 68.e 69.c 70.c
71.e 72.c 73.e 74.e 75.e 76.e 77.c 78.e 79.c 80.d
81.b 82.a 83.d 84.e 85.e 86.a 87.e