Nothing Special   »   [go: up one dir, main page]

Banco de Dados Relacionais Parte V

Fazer download em pdf ou txt
Fazer download em pdf ou txt
Você está na página 1de 127

TECNOLOGIA DA

INFORMAÇÃO
Banco de Dados Relacionais – Parte V

SISTEMA DE ENSINO

Livro Eletrônico
TECNOLOGIA DA INFORMAÇÃO
Banco de Dados Relacionais – Parte V

Sumário
Patrícia Lima Quintão

Apresentação. . .................................................................................................................................. 4
Álgebra Relacional. . ......................................................................................................................... 5
Dependência Funcional.. ................................................................................................................13
Normalização de Dados. . .............................................................................................................. 14
SQL (Linguagem de Consulta Estruturada).............................................................................. 20
Terminologia Utilizada nesta Aula............................................................................................. 22
Regras Básicas para Escrever Comandos SQL.. ....................................................................... 23
Criação de Visões............................................................................................................................31
Comando SELECT. . .......................................................................................................................... 33
Cláusula WHERE............................................................................................................................. 34
Cláusula ORDER BY........................................................................................................................ 35
Junção de Tabelas.......................................................................................................................... 35
Funções de Grupo.......................................................................................................................... 37
Cláusula Group By. . ........................................................................................................................ 38
Cláusula Having. . ............................................................................................................................ 39
Subqueries (Subconsultas).......................................................................................................... 39
Tipos de Domínio na SQL..............................................................................................................42
Linguagens de Banco de Dados.................................................................................................. 43
DDL – Data Definition Language ou Linguagem de Definição de Dados. . .......................... 43
DML – Data Manipulation Language ou Linguagem de Manipulação de Dados..............44
DQL – Data Query Language ou Linguagem de Consulta de Dados....................................44
DCL – Data Control Language ou Linguagem de Controle de Dados..................................44
DTL – Data Transaction Language ou Linguagem de Transação de Dados.......................44
SDL – Storage Definition Language ou Linguagem de Definição de Armazenamento....44
VDL – View Definition Language ou Linguagem de Definição de Visões.. .......................... 45
PostgreSQL......................................................................................................................................49
Oracle............................................................................................................................................... 52

O conteúdo deste livro eletrônico é licenciado para EDSON LUCIANO DE OLIVEIRA VIGILATO - 03749324174, vedada, por quaisquer meios e a qualquer título,
a sua reprodução, cópia, divulgação ou distribuição, sujeitando-se aos infratores à responsabilização civil e criminal.

www.grancursosonline.com.br 2 de 127
TECNOLOGIA DA INFORMAÇÃO
Banco de Dados Relacionais – Parte V
Patrícia Lima Quintão

MySQL............................................................................................................................................... 54
Microsoft SQL Server.................................................................................................................... 55
Enterprise DB.................................................................................................................................. 58
Resumo............................................................................................................................................. 59
Questões Comentadas em Aula.................................................................................................. 63
Questões de Concurso.................................................................................................................. 67
Gabarito.......................................................................................................................................... 124
Referências Bibliográficas. . ....................................................................................................... 125

O conteúdo deste livro eletrônico é licenciado para EDSON LUCIANO DE OLIVEIRA VIGILATO - 03749324174, vedada, por quaisquer meios e a qualquer título,
a sua reprodução, cópia, divulgação ou distribuição, sujeitando-se aos infratores à responsabilização civil e criminal.

www.grancursosonline.com.br 3 de 127
TECNOLOGIA DA INFORMAÇÃO
Banco de Dados Relacionais – Parte V
Patrícia Lima Quintão

Apresentação
Olá, querido(a) amigo(a), tudo bem?
Após os estudos sobre os conceitos fundamentais de bancos de dados, vamos ao
aprendizado da Álgebra Relacional, da normalização de dados, e da SQL – uma linguagem de
pesquisa declarativa para Bancos de Dados Relacionais.
Com o conhecimento de SQL é possível, entre outras coisas, extrair informações dos
Bancos de Dados, de forma a torná-los uma ferramenta útil para a realização de auditorias,
inspeções etc.
Por fim, destacaremos alguns pontos principais relacionados a: PostgreSQL, Oracle, MySQL,
SQL Server e EnterpriseDB.
Estarei adicionando inúmeros exercícios para melhor fixação da matéria. Espero que
aproveite!
Finalizando, como qualquer questão pode ser decisiva para a sua aprovação, então, vamos
“arregaçar as mangas” e partir para mais esta etapa do curso. Boa sorte nos estudos! Estou
torcendo pelo seu sucesso!
Em caso de dúvidas, acesse o fórum do curso ou entre em contato.
Um forte abraço,
Profa Patrícia Quintão
Instagram: @coachpatriciaquintao
WhatsApp: (31) 99442.0615

O conteúdo deste livro eletrônico é licenciado para EDSON LUCIANO DE OLIVEIRA VIGILATO - 03749324174, vedada, por quaisquer meios e a qualquer título,
a sua reprodução, cópia, divulgação ou distribuição, sujeitando-se aos infratores à responsabilização civil e criminal.

www.grancursosonline.com.br 4 de 127
TECNOLOGIA DA INFORMAÇÃO
Banco de Dados Relacionais – Parte V
Patrícia Lima Quintão

ÁLGEBRA RELACIONAL
• A Álgebra Relacional é uma linguagem de consulta formal, porém procedimental, em
que o usuário dá as instruções ao sistema para que o mesmo realize uma sequência de
operações na base de dados para calcular o resultado desejado.
• A álgebra relacional é uma forma de cálculo sobre conjuntos ou relações.
• Existem diversas operações em álgebra relacional, como: seleção, projeção, renomear,
produto cartesiano, união e diferença entre conjuntos, interseção de conjuntos, junção
natural.

Veja que a álgebra relacional é o conjunto de operações presentes no modelo relacional.


Você verá essas operações na SQL (Structured Query Language ou Linguagem de Consulta
Estruturada).
Logo, não se preocupe com detalhes da notação. As principais operações (mais cobradas em
prova) são: a projeção, a seleção e o produto cartesiano.

O conteúdo deste livro eletrônico é licenciado para EDSON LUCIANO DE OLIVEIRA VIGILATO - 03749324174, vedada, por quaisquer meios e a qualquer título,
a sua reprodução, cópia, divulgação ou distribuição, sujeitando-se aos infratores à responsabilização civil e criminal.

www.grancursosonline.com.br 5 de 127
TECNOLOGIA DA INFORMAÇÃO
Banco de Dados Relacionais – Parte V
Patrícia Lima Quintão

Principais operações da Álgebra Relacional:

Operação Símbolo Descrição

Seleciona tuplas que satisfaçam uma determinada


condição. O resultado é uma relação com a mesma
estrutura da tabela original, e que contém as linhas que
satisfazem à condição.
Por selecionar linhas em uma relação, essa operação é
também denominada particionamento horizontal, uma
vez que dá um corte horizontal na relação, retornando
algumas tuplas e deixando as demais.

Seleção σ

Sintaxe para representação da seleção:


σ <predicado> (nome da relação), em que:
σ (letra grega minúscula sigma) é o símbolo da operação
de seleção;
<predicado> é o critério de seleção;
(nome da relação) é a relação na qual a operação vai agir.
Cabe destacar que essa operação NÃO afeta a relação
original, que fica intacta. Simplesmente uma nova relação é
retornada como resultado da operação. Exemplo:
σ DataNascimento > 30/07/1970 (Aluno)
A operação acima listada da Álgebra Relacional
retorna as tuplas da relação Aluno nas quais o atributo
DataNascimento é maior do que 1970.

O conteúdo deste livro eletrônico é licenciado para EDSON LUCIANO DE OLIVEIRA VIGILATO - 03749324174, vedada, por quaisquer meios e a qualquer título,
a sua reprodução, cópia, divulgação ou distribuição, sujeitando-se aos infratores à responsabilização civil e criminal.

www.grancursosonline.com.br 6 de 127
TECNOLOGIA DA INFORMAÇÃO
Banco de Dados Relacionais – Parte V
Patrícia Lima Quintão

Operação Símbolo Descrição

Retorna uma relação apenas com os atributos


selecionados. Duplicatas são eliminadas.
Por selecionar colunas em uma relação, essa operação
é também denominada particionamento vertical,
uma vez que a operação dá um corte vertical na relação,
retornando algumas colunas e deixando as demais.

Projeção

Sintaxe para representação da projeção:


<nome_atributos> (nome da relação), em que:
π (PI) e o símbolo da operação de projeção;
<nome_atributos> é a lista de atributos escolhidos;
(nome da relação) é a relação na qual a operação vai agir.

Seleção e
projeção
juntas
Exemplo:
π CPF,Nome,Cidade (σ Nascimento > 30/07/1970
(Aluno))
Nesse caso irá primeiramente resolver o que está dentro
dos parênteses, sendo retornada uma relação com as
tuplas que obedecem à condição estabelecida (que o
atributo Nascimento seja maior que 30/07/1970).
Nessa relação retornada é feita uma operação de
projeção, para retornar apenas os campos listados.

O conteúdo deste livro eletrônico é licenciado para EDSON LUCIANO DE OLIVEIRA VIGILATO - 03749324174, vedada, por quaisquer meios e a qualquer título,
a sua reprodução, cópia, divulgação ou distribuição, sujeitando-se aos infratores à responsabilização civil e criminal.

www.grancursosonline.com.br 7 de 127
TECNOLOGIA DA INFORMAÇÃO
Banco de Dados Relacionais – Parte V
Patrícia Lima Quintão

Operação Símbolo Descrição

Combina as informações de duas relações, contendo todos


Produto os pares de tuplas possíveis.
x
Cartesiano O número de tuplas resultante será o produto entre o
número de tuplas de cada relação.

Une dois conjuntos de relações.


União Ex:
p nome (tab_clientes) nome_cliente (tab_devedor).

Encontra as tuplas que estão tanto em uma relação quanto


Interseção em outra.

Encontra as tuplas que estão em uma relação, mas não em


Diferença -
outra.

Esta operação fundamental une duas relações por meio


Junção de uma coluna em comum entre elas, efetivando os
relacionamentos entre as entidades de um BD.

Usada quando a consulta emprega a frase “para todos”,


pois responde perguntas do tipo “quais fornecedores
Divisão fornecem todas as peças?”. Útil em relacionamentos
“muitos para muitos”.

O conteúdo deste livro eletrônico é licenciado para EDSON LUCIANO DE OLIVEIRA VIGILATO - 03749324174, vedada, por quaisquer meios e a qualquer título,
a sua reprodução, cópia, divulgação ou distribuição, sujeitando-se aos infratores à responsabilização civil e criminal.

www.grancursosonline.com.br 8 de 127
TECNOLOGIA DA INFORMAÇÃO
Banco de Dados Relacionais – Parte V
Patrícia Lima Quintão

Esquematizando:

Figura. Álgebra Relacional. Fonte: Quintão (2020)

001. (CESPE/TCE-ES/ANALISTA ADMINISTRATIVO/INFORMÁTICA/2013) O conjunto de


operações cujo resultado seja uma nova relação e que envolve seleção, projeção, união e
produto cartesiano é denominado:
a) mapeamento de cardinalidades.
b) álgebra relacional.
c) generalização.
d) chave primária
e) herança.
O conteúdo deste livro eletrônico é licenciado para EDSON LUCIANO DE OLIVEIRA VIGILATO - 03749324174, vedada, por quaisquer meios e a qualquer título,
a sua reprodução, cópia, divulgação ou distribuição, sujeitando-se aos infratores à responsabilização civil e criminal.

www.grancursosonline.com.br 9 de 127
TECNOLOGIA DA INFORMAÇÃO
Banco de Dados Relacionais – Parte V
Patrícia Lima Quintão

Álgebra Relacional pode ser definida como uma linguagem de consulta formal e procedimental,
ou seja, um conjunto de operações de alto nível sobre relações ou conjuntos cujo resultado
seja uma nova relação ou conjunto.
As principais operações são: seleção, projeção, junção, produto cartesiano, união, intersecção
e diferença.
Nota: qualquer operação sobre uma tabela resultará em uma nova tabela.
Letra b.

002. (CESPE/CEHAP-PB/PROGRAMADOR DE COMPUTADOR/2009) A álgebra relacional é a


base matemática de bancos de dados relacionais. A álgebra relacional pode ser definida como
linguagem de consulta formal e procedimental. Para banco de dados, podem ser utilizadas
diversas operações provenientes da teoria de conjuntos. A seleção (select), em banco de
dados relacional, e:
a) o resultado de todas as tuplas que pertencem as relações presentes em uma operação.
b) uma relação que parte de duas outras, levando as tuplas comuns e não-comuns a ambas.
c) utilizada para escolher subconjunto de tuplas em uma relação que satisfaça condição de
seleção predefinida.
d) executada em apenas uma relação, e o resultado e uma nova relação.

A seleção (particionamento horizontal) é utilizada para selecionar um subconjunto de tuplas


(linhas) de uma relação. Assim, ela funciona como um filtro para selecionar tuplas que atendem
a determinado critério.
Letra c.

003. (VUNESP/MPE-ES/AGENTE ESPECIALIZADO/ANALISTA DE BANCO DE DADOS/2013)


Dentre os diversos tipos de operações disponibilizadas em um banco de dados relacional está,
por exemplo, a realização de consultas sobre valores armazenados em tabelas. A operação
que consiste em definir quais devem ser as colunas a serem exibidas em uma consulta e a
a) divisão.
b) multiplexação.
c) projeção.
d) seleção.
e) união.

O conteúdo deste livro eletrônico é licenciado para EDSON LUCIANO DE OLIVEIRA VIGILATO - 03749324174, vedada, por quaisquer meios e a qualquer título,
a sua reprodução, cópia, divulgação ou distribuição, sujeitando-se aos infratores à responsabilização civil e criminal.

www.grancursosonline.com.br 10 de 127
TECNOLOGIA DA INFORMAÇÃO
Banco de Dados Relacionais – Parte V
Patrícia Lima Quintão

A operação de projeção (particionamento vertical) seleciona certas colunas da tabela (relação)


e descarta outras.
Letra c.

004. (CCV-UFC/UFC/ANALISTA DE TECNOLOGIA DA INFORMAÇÃO/2018) De acordo com


a álgebra relacional, marque a opção que contenha apenas operações fundamentais.
a) Divisão, seleção, diferença.
b) Agregação, projeção, união.
c) Junção natural, seleção, projeção.
d) Seleção, projeção, produto cartesiano.
e) Interseção, produto cartesiano, junção natural.

Existem diversas operações em álgebra relacional, entre as quais: seleção, projeção, renomear,
produto cartesiano, união e diferença entre conjuntos, interseção de conjuntos, junção natural.
Seleção, projeção, produto cartesiano são operações fundamentais.
A seleção é utilizada para selecionar um conjunto de tuplas (linhas) de uma relação.
A operação de projeção (particionamento vertical) seleciona certas colunas da tabela (relação)
e descarta outras.
Produto cartesiano é uma operação binária (atua em duas relações) que une cada elemento de
uma relação a um elemento da outra relação.
Letra d.

005. (FIP/CÂMARA MUNICIPAL DE SÃO JOSÉ DOS CAMPOS-SP/PROGRAMADOR/2009)


Em um banco de dados relacional, duas tabelas foram concatenadas de forma a atender uma
determinada condição. O resultado dessa operação representa a operação relacional de:
a) união.
b) projeção.
c) seleção.
d) intersecção.
e) junção.

Trata-se da operação de junção (⋈), quando dois conjuntos de dados são concatenados de
acordo com uma determinada condição.
Letra e.

O conteúdo deste livro eletrônico é licenciado para EDSON LUCIANO DE OLIVEIRA VIGILATO - 03749324174, vedada, por quaisquer meios e a qualquer título,
a sua reprodução, cópia, divulgação ou distribuição, sujeitando-se aos infratores à responsabilização civil e criminal.

www.grancursosonline.com.br 11 de 127
TECNOLOGIA DA INFORMAÇÃO
Banco de Dados Relacionais – Parte V
Patrícia Lima Quintão

006. (FCC/MPE-RS/TÉCNICO EM INFORMÁTICA/ÁREA DE SISTEMAS/2008) Quando dois


conjuntos de dados são concatenados de acordo com uma determinada condição, representa
o resultado da operação relacional:
a) junção.
b) união.
c) restrição.
d) projeção.
e) intersecção.

Conforme vimos, em um banco de dados relacional, utilizamos a operação de junção (⋈)


quando duas tabelas foram concatenadas de forma a atender uma determinada condição.
Letra a.

007. (NCE/UFRJ/ANALISTA DE TECNOLOGIA DA INFORMAÇÃO BANCO DE DADOS/2010)


Dadas duas relações A e B do mesmo tipo, uma relação de tipo igual, cujo conteúdo contém
todas as tuplas que aparecem tanto em A quanto em B, será obtida por meio da operação
relacional:
a) união.
b) interseção.
c) projeção.
d) junção.
e) produto cartesiano.

Interseção (∩) é uma operação que produz como resultado uma tabela que contém, sem
repetições, todos os elementos que são comuns às duas tabelas fornecidas como operandos.
Letra b.

008. (AOCP/TCE-PA/ASSESSOR TÉCNICO DE INFORMÁTICA) Em banco de dados, a


diferença entre duas instâncias e:
a) o conjunto de todas as instancias i pertencentes a A ou B ou ambos, quando A e B possuem
uma união compatível.
b) o conjunto de todas as instancias i pertencentes a A e B, quando A e B possuem uma união
compatível.
c) o conjunto de todas as instancias i pertencentes a A mas não pertencentes a B, quando A e
B possuem uma união compatível.
d) o conjunto de todas as instancias i, quando i e a concatenação de uma instancia x de A com
uma instancia y de B.
e) o conjunto de valores n, tais que os pares (n, m) aparecem em A para todos os valores m que
aparecem em B.

O conteúdo deste livro eletrônico é licenciado para EDSON LUCIANO DE OLIVEIRA VIGILATO - 03749324174, vedada, por quaisquer meios e a qualquer título,
a sua reprodução, cópia, divulgação ou distribuição, sujeitando-se aos infratores à responsabilização civil e criminal.

www.grancursosonline.com.br 12 de 127
TECNOLOGIA DA INFORMAÇÃO
Banco de Dados Relacionais – Parte V
Patrícia Lima Quintão

A diferença (-) é uma operação que produz como resultado uma tabela que contém todas as
linhas que existem na primeira tabela e não existem na segunda.
Letra c.

Dependência Funcional
Antes de explicitar as formas normais e destacar a linguagem SQL (Structured Query
Language ou Linguagem de Consulta Estruturada), vamos ao conceito de dependência
funcional.

Dependência funcional nada mais é do que um relacionamento que existe entre atributos de
uma relação.

Utilizemos um exemplo bem simples para entender esse conceito.


Antes disso, vale a observação seguinte: no modelo relacional podemos descrever as
tabelas, seus atributos e restrições com os atributos entre parênteses e as chaves sublinhadas.
Alguns autores sublinham “cheio” as chaves primárias e “pontilhado” as chaves estrangeiras.

Exemplo de Dependência Funcional:

Considerando a Relação ATOR acima, temos que nomeAtor depende funcionalmente de idAtor.
O que significa isso? Ora, significa que pelo idAtor eu descubro o nomeAtor. Ou seja, idAtor
determina nomeAtor, e nomeAtor depende funcionalmente de idAtor.
Isso é representado da seguinte forma:
idAtor -> nomeAtor
Mas será que o contrário é verdadeiro? Não, não é. Eu posso ter dois atores com o mesmo
nome, mas eles teriam idAtor diferentes. Então, pelo nomeAtor eu não determino idAtor.

Uma chave primária SEMPRE determina os demais atributos de uma relação.


Mas aí vem a pergunta, somente as chaves primárias determinam outro atributo? Não,
posso construir a seguinte relação:

O conteúdo deste livro eletrônico é licenciado para EDSON LUCIANO DE OLIVEIRA VIGILATO - 03749324174, vedada, por quaisquer meios e a qualquer título,
a sua reprodução, cópia, divulgação ou distribuição, sujeitando-se aos infratores à responsabilização civil e criminal.

www.grancursosonline.com.br 13 de 127
TECNOLOGIA DA INFORMAÇÃO
Banco de Dados Relacionais – Parte V
Patrícia Lima Quintão

Bem, já sabemos que a chave primária determina os outros atributos. Mas olhem o atributo
Total. O que é total? Simplesmente é Quantidade x ValorUnitario. Então, esses dois campos
determinam Total, existindo assim uma dependência funcional (DF):
Quantidade,Valor -> Total
Dessa forma, temos que: um atributo Y é funcionalmente dependente de um atributo X se
cada valor de X tenha associado a ele precisamente um valor de Y.
Quando o atributo X é uma chave primária, então todos os atributos são, por definição,
dependentes de X, pois não podem existir dois registros com o mesmo valor para X.
Notação: R.x R.y (lê-se a coluna x da tabela relacional R funcionalmente determina
(identifica) a coluna y.
A dependência funcional pode ser classificada em:
• Total: um atributo é totalmente dependente de outro se ele for funcionalmente dependente
do outro e não dependente de um subconjunto de outro.
• Parcial: um atributo é parcialmente dependente de outro se ele for funcionalmente
dependente de um subconjunto de outro.

Considere a tabela seguinte, em que a chave primária é formada pelos atributos código-
func + código-curso.
• O atributo avaliação é dependente total da chave composta.
• Já o atributo descrição-curso tem dependência parcial com relação a esta chave, pois
depende somente de parte dela, ou seja, de códigocurso.

Normalização de Dados
A normalização pode ser vista como o processo no qual são eliminados esquemas de
relações (tabelas) não satisfatórios, decompondo-os, por meio da separação de seus atributos
em esquemas de relações menos complexas mas que satisfaçam às propriedades desejadas.

O conteúdo deste livro eletrônico é licenciado para EDSON LUCIANO DE OLIVEIRA VIGILATO - 03749324174, vedada, por quaisquer meios e a qualquer título,
a sua reprodução, cópia, divulgação ou distribuição, sujeitando-se aos infratores à responsabilização civil e criminal.

www.grancursosonline.com.br 14 de 127
TECNOLOGIA DA INFORMAÇÃO
Banco de Dados Relacionais – Parte V
Patrícia Lima Quintão

Em suma, a normalização de dados é uma série de passos que se segue no projeto de


um banco de dados que permite um armazenamento consistente e um eficiente acesso aos
dados em um banco de dados relacional. Esses passos reduzem a redundância de dados e as
chances dos dados se tornarem inconsistentes.

009. (FCC/MPE-MA/ANALISTA MINISTERIAL/BANCO DE DADOS/2013) Em um banco de


dados relacional, a atividade de normalizar suas tabelas tem como objetivo
a) gerar os triggers especificados para o banco de dados.
b) eliminar, ou pelo menos diminuir redundâncias de dados desnecessárias nessas tabelas.
c) impedir o acesso ao banco de dados, por parte de usuários desconhecidos.
d) compilar todas as funções inseridas no banco de dados.
e) preparar todas as tabelas do banco de dados para um backup completo.

A normalização de dados é uma série de passos que se segue no projeto de um banco de


dados que permite um armazenamento consistente e um eficiente acesso aos dados em um
banco de dados relacional. Esses passos reduzem a redundância de dados e as chances dos
dados se tornarem inconsistentes.
Letra b.

As primeiras formas normais foram criadas na década de 1970 por Codd, e persistem até
hoje. Elas são importantes para verificar se seu Banco de Dados está bem projetado.
Vamos ver aqui as principais formas normais.
• Primeira Forma Normal (1FN)

Uma relação estará na 1ª FN se não houver atributo representando agrupamento (não


atômico) e nem atributo repetitivo (multivalorado).
A 1a Forma Normal prega que todos os atributos de uma tabela devem ser atômicos
(indivisíveis), ou seja, NÃO são permitidos atributos multivalorados, atributos compostos ou
atributos multivalorados compostos.
Leve em consideração o esquema a seguir:
CLIENTE
1. Código
2. { Telefone }
3. Endereço: ( Rua, Número, Cidade )
gerando a tabela resultante:

O conteúdo deste livro eletrônico é licenciado para EDSON LUCIANO DE OLIVEIRA VIGILATO - 03749324174, vedada, por quaisquer meios e a qualquer título,
a sua reprodução, cópia, divulgação ou distribuição, sujeitando-se aos infratores à responsabilização civil e criminal.

www.grancursosonline.com.br 15 de 127
TECNOLOGIA DA INFORMAÇÃO
Banco de Dados Relacionais – Parte V
Patrícia Lima Quintão

Telefone 1 Endereço

Cliente Código Telefone n Rua Número Cidade

sendo que a mesma não está na 1a Forma Normal pois seus atributos não são atômicos.

Para que a tabela acima fique na 1a Forma Normal temos que eliminar os atributos não
atômicos, gerando as seguintes tabelas como resultado:

Cliente Código Rua Número Cidade

Cliente_Telefone Código_Cliente Telefone_Cliente

• Segunda Forma Normal (2FN)

Uma relação estará na 2ª FN, se e somente se, estiver na 1a FN e os seus atributos não
chaves forem dependentes funcionais completos da chave primária.
Em outras palavras, se algum atributo da tabela depender funcionalmente apenas de parte
da chave primária, então este atributo deverá migrar para outra tabela. Dessa forma, eu não
posso ter um atributo na chave primária que, sozinho, define um outro atributo não chave.
A 2a Forma Normal prega o conceito da dependência funcional total. Uma dependência
funcional X  Y é total se removemos um atributo A qualquer do componente X e desta forma,
a dependência funcional deixa de existir.
A dependência funcional X  Y é uma dependência funcional parcial se existir um atributo
A qualquer do componente X que pode ser removido e a dependência funcional X  Y não deixa
de existir.
{ RG_Empregado, Número_Projeto }  Horas
é uma dependência funcional total, pois se removermos o atributo RG_Empregado ou o
atributo Número_Projeto, a dependência funcional deixa de existir.
Uma tabela T está na 2a Forma Normal se estiver na 1a Forma Normal e todos os seus
atributos não chaves forem totalmente funcionalmente dependente da chave primária C.
Se uma tabela não está na 2a Forma Normal, a mesma pode ser normalizada gerando
outras tabelas cujos atributos que não façam parte da chave primária sejam totalmente
funcionalmente dependente da mesma, ficando a tabela na 2a Forma Normal.

Exemplo:
Seja a relação AtorParticipa (IdDVD, IdAtor, NomeAtor) aqui destacada. Essa relação não
está na 2FN, porque um dos atributos que fazem parte da chave primária, de forma isolada,
determina um atributo não chave. Ou seja, idAtor determina NomeAtor.

O conteúdo deste livro eletrônico é licenciado para EDSON LUCIANO DE OLIVEIRA VIGILATO - 03749324174, vedada, por quaisquer meios e a qualquer título,
a sua reprodução, cópia, divulgação ou distribuição, sujeitando-se aos infratores à responsabilização civil e criminal.

www.grancursosonline.com.br 16 de 127
TECNOLOGIA DA INFORMAÇÃO
Banco de Dados Relacionais – Parte V
Patrícia Lima Quintão

E como fazer para deixar essa relação na 2FN? Simples, basta tirar o atributo nomeAtor
dessa relação e deixá-lo apenas na relação Ator.
Ator (IdAtor, nomeAtor)

• Terceira Forma Normal (3FN)

Uma relação estará na 3ª FN, se e somente se, estiver na 2 a FN e todos os seus atributos
não chaves forem dependentes não transitivos da chave primária.
Assim, a 3a Forma Normal prega o conceito de dependência transitiva. Uma tabela está
na 3a Forma Normal se estiver na 2a Forma Normal e não houver dependência transitiva entre
atributos não chave.

Como exemplo, veja a relação seguinte:


ItemNotaFiscal (IdNota, IdItem, CodProduto, Quantidade, ValorUnitario, Total)
Bem, a chave idNota e IdItem determinam CodProduto, Quantidade e ValorUnitario. Mas Total
não depende funcionalmente diretamente da chave. Esse atributo depende funcionalmente de
Quantidade e ValorUnitario. Assim temos:
IdNota,IdItem -> Quantidade,ValorUnitario -> Total
Dessa forma, temos uma dependência transitiva, que deve ser evitada pela 3FN.

Mas trocando em miúdos, para uma relação estar em 3FN um campo não chave não pode
ser determinado por outro(s) campo(s) não chave. No caso da 3FN, fazemos essa checagem
para cada chave candidata.
O que seria essa Dependência Transitiva?
Quando você terminar de normalizar a 2FN, TODOS os seus atributos serão plenamente
dependentes da chave primária. Mas, isso não impede a dependência transitiva, pois se A ->
B e B -> C, por transitividade A -> C, logo C é plenamente dependente da chave primária. Em
outras palavras se CPF --> CARGO e o CARGO --> SALARIO, CPF também determina o salário.
Esse tipo de dependência funcional será resolvido pela 3FN.
A normalização feita a partir da regra definida pela terceira forma normal leva a relação para
um estado específico. Neste, a relação tem que estar na segunda forma normal e ainda todo
atributo não primário da relação não é transitivamente dependente de uma chave da relação.
Uma relação está na Terceira Forma Normal (3NF) se ela está na 2FN e nenhum atributo
não chave (não primário) é transitivamente dependente de uma chave candidata. Enfim, na
3FN não se aceita dependência transitiva.
Se você achou essa definição de dependência transitiva complexa, deixa eu tentar explicar
de outra forma. Primeiro você precisa ter em mente que, para existir a transitividade, temos que
ter algumas premissas. Um atributo chave (primário), por exemplo, CPF, determina um outro
atributo (não primário), por exemplo, telefoneResidencial; que, por sua vez, determina outro
atributo (não primário), por exemplo, Endereco.

O conteúdo deste livro eletrônico é licenciado para EDSON LUCIANO DE OLIVEIRA VIGILATO - 03749324174, vedada, por quaisquer meios e a qualquer título,
a sua reprodução, cópia, divulgação ou distribuição, sujeitando-se aos infratores à responsabilização civil e criminal.

www.grancursosonline.com.br 17 de 127
TECNOLOGIA DA INFORMAÇÃO
Banco de Dados Relacionais – Parte V
Patrícia Lima Quintão

CPF Nome telResidencial Endereco


001 JUuca 31 525-1285 Alameda 3, vila
002 Luiz 31 525-1285 Alameda 3, vila
003 Carlos 31 555-1533 Alameda 3, vila
004 Mateus 31 555-1533 Alameda 3, vila
005 Ladjane 81 555-9299 Av. Portugal
Veja que, se você me passar um número de CPF, eu devolvo um telefone residencial. Da
mesma forma, se você me der um número de telefone, eu devolvo um endereço único. Observe
que alguns telefones aparecem mais de uma vez na coluna, contudo, eles determinam o mesmo
endereço, ou, em outras palavras, eles têm o mesmo endereço associado. É justamente essa
replicação que desejamos evitar na terceira forma normal.

• Forma Normal de Boyce-Codd (BCNF)

Além da 3FN, todo atributo não chave deve depender funcionalmente diretamente da chave
primária, ou seja, não pode haver dependências entre atributos não chave. É uma afirmação
um pouco mais forte do que a 3FN.

• Quarta Forma Normal (4FN)

Uma relação estará na 4ª FN, se e somente se, estiver na 3a FN e não possuir dependências
multivaloradas.
Conforme destaca Oliveira (2002), “pode ocorrer de estarmos com um modelo na 3FN e
mesmo assim haver alguma redundância. Isso ocorrerá quando um atributo não chave contiver
valores múltiplos para uma mesma chave, o que indica uma dependência multivalorada (a
repetição de dois ou mais atributos não chave, gerando uma redundância desnecessária
no modelo)”.
Veja o exemplo com dependência multivalorada, citado por Oliveira (2002), a seguir:
Música Intérprete Gravadora
Será Renato Russo EMI
Será Simone PolyGram
Será Renato Russo PolyGram
Imagine John Lenon EMI
Imagine Simone EMI
Imagine John Lenon PolyGram

O conteúdo deste livro eletrônico é licenciado para EDSON LUCIANO DE OLIVEIRA VIGILATO - 03749324174, vedada, por quaisquer meios e a qualquer título,
a sua reprodução, cópia, divulgação ou distribuição, sujeitando-se aos infratores à responsabilização civil e criminal.

www.grancursosonline.com.br 18 de 127
TECNOLOGIA DA INFORMAÇÃO
Banco de Dados Relacionais – Parte V
Patrícia Lima Quintão

Observe que não podemos criar uma chave com música (ela se repete), nem com música
+ intérprete (também há repetição), e caso coloquemos os três campos como chave, teremos
uma alternativa válida, mas redundante, pois haverá repetição de música e autor ou música e
gravadora.
Solução (com aplicação da 4FN):
É necessário dividir essa entidade em duas. Cada uma das entidades herdará a Música
como chave e conterá o outro atributo. A primeira entidade ficaria assim:
Música Intérprete

Será Renato Russo

Será Simone

Será Renato Russo

Imagine John Lenon

Imagine Simone

Imagine John Lenon

e a outra assim:
Música Gravadora

Será EMI

Será PolyGram

Será PolyGram

Imagine EMI

Imagine MI

Imagine PolyGram

Outro exemplo em:


http://www.inf.unioeste.br/~clodis/BDI/BDI_2007_Modulo2_6.pdf.
• Quinta Forma Normal (5FN)

Caso raro de ocorrer, é o que destaca Oliveira (2002). Segundo esse autor, tecnicamente,
utiliza-se a 5FN quando uma tabela na 4FN pode ser subdividida em duas ou mais tabelas,
para evitar eventuais redundâncias ainda existentes.
É como se tivéssemos, na aplicação da 4FN, deixado três campos em uma das tabelas
criadas e esses campos tivessem novamente valores multivalorados.

O conteúdo deste livro eletrônico é licenciado para EDSON LUCIANO DE OLIVEIRA VIGILATO - 03749324174, vedada, por quaisquer meios e a qualquer título,
a sua reprodução, cópia, divulgação ou distribuição, sujeitando-se aos infratores à responsabilização civil e criminal.

www.grancursosonline.com.br 19 de 127
TECNOLOGIA DA INFORMAÇÃO
Banco de Dados Relacionais – Parte V
Patrícia Lima Quintão

Solução: Para solucionar essa redundância, basta dividir novamente a tabela em duas
outras, carregando o campo-chave e herdando o outro atributo.
A verificação da 5 FN somente precisa ser empreendida em relações que tenham 3 ou mais
atributos como parte da chave.

A 5 a FN serve para eliminar dependência de junção.

Veja um exemplo em:


http://www.inf.unioeste.br/~clodis/BDI/BDI_2007_Modulo2_6.pdf.

 Obs.: Para um banco de dados se encontrar em cada um desses estágios ou formas


(denominadas formas normais), cada uma de suas tabelas deve atender a alguns pré-
requisitos.
 Os pré-requisitos são cumulativos, isto é, para alcançar a 3ª forma normal (3NF) por
exemplo, um banco de dados precisa atender aos pré-requisitos das 1ª e 2ª formas
normais, acrescidos dos requisitos exclusivos da 3NF.

Figura. Normalização

SQL (Linguagem de Consulta Estruturada)


O nome da SQL é derivado de Structured Query Language ou Linguagem de Consulta
Estruturada. Foi projetada e implementada na IBM Research como uma interface para um
sistema experimental de um banco de dados relacional chamado SISTEMA R.

O conteúdo deste livro eletrônico é licenciado para EDSON LUCIANO DE OLIVEIRA VIGILATO - 03749324174, vedada, por quaisquer meios e a qualquer título,
a sua reprodução, cópia, divulgação ou distribuição, sujeitando-se aos infratores à responsabilização civil e criminal.

www.grancursosonline.com.br 20 de 127
TECNOLOGIA DA INFORMAÇÃO
Banco de Dados Relacionais – Parte V
Patrícia Lima Quintão

A SQL é agora a linguagem-padrão para os SGBDs relacionais comerciais. Isto decorre


da sua simplicidade e facilidade de uso. Ela se diferencia de outras linguagens de consulta a
banco de dados no sentido em que uma consulta SQL especifica a forma do resultado e não o
caminho para chegar a ele. Ela é uma linguagem declarativa em oposição a outras linguagens
procedurais. Isto reduz o ciclo de aprendizado daqueles que se iniciam na linguagem.
As linhas a seguir sumarizam algumas observações e as relacionam com os termos que
utilizaremos em seguida.
• A SQL é uma linguagem baseada no inglês, e usa palavras como SELECT, INSERT e
DELETE como parte de seu conjunto de comandos;
• SQL é uma linguagem de pesquisa declarativa para Bancos de Dados Relacionais em
oposição a outras linguagens procedurais. Por ser não procedural, você especifica QUAL
informação quer, e não como trazê-la. Em outras palavras, não é necessário especificar
o método de acesso aos dados. O SGBD usa o “otimizador” para interpretar o comando
SQL e escolher o melhor caminho para acesso aos dados.
• SQL oferece um conjunto de comandos para uma variedade de tarefas diferentes,
incluindo:
− pesquisar, inserir, alterar e deletar linhas de uma tabela;
− criar, deletar e alterar objetos de banco de dados;
− controlar o acesso aos dados e objetos;
− garantir a consistência dos dados;
− etc.
• SQL é utilizada por todos os tipos de usuários de um banco de dados relacional:
− Administrador de sistemas;
− Administrador de banco de dados;
− Desenvolvedores de sistemas;
− usuários finais; etc.
• SQL não é realmente uma linguagem completa como o Visual Basic, Pascal, Java, pois
não contém estruturas como IF, GOTO ou FOR não permitindo assim o desenvolvimento
de lógicas de programação.
• É composta por um conjunto de instruções específicas para o gerenciamento de banco
de dados.
• Os comandos SQL podem ser EMBUTIDOS em outra linguagem e utilizados para o
acesso ao banco de dados.
• SQL não é por si só um sistema de gerenciamento de banco de dados. A responsabilidade
pelo armazenamento, gerenciamento físico e recuperação dos dados no disco é do
SGBD.
• SQL é uma “linguagem padrão” que interage entre o SGBD e os seus componentes ou
outros gerenciadores.

O conteúdo deste livro eletrônico é licenciado para EDSON LUCIANO DE OLIVEIRA VIGILATO - 03749324174, vedada, por quaisquer meios e a qualquer título,
a sua reprodução, cópia, divulgação ou distribuição, sujeitando-se aos infratores à responsabilização civil e criminal.

www.grancursosonline.com.br 21 de 127
TECNOLOGIA DA INFORMAÇÃO
Banco de Dados Relacionais – Parte V
Patrícia Lima Quintão

• SQL é uma linguagem de consulta interativa: o usuário tecla comandos num editor
interativo que recupera e permite uma consulta fácil e rápida ao banco de dados.
• SQL é uma linguagem de programação de banco de dados: programadores incluem
comandos SQL em seus programas de aplicação para acessar os dados em um banco.
• SQL é uma linguagem para administração do banco de dados: o Administrador do Banco
de Dados usa SQL para definir a estrutura da base de dados e controlar o acesso aos
dados que nela serão armazenados.
• SQL é uma linguagem cliente/servidor: programas em computadores pessoais usam
SQL para comunicar em uma rede com servidores de bancos de dados.
• SQL é uma linguagem de bancos de dados distribuídos: SGBDs distribuídos usam SQL
para auxiliar a distribuição dos dados por meio de vários computadores interligados.

010. (CESPE/TRE-BA/TÉCNICO JUDICIÁRIO/TELECOMUNICAÇÕES E


ELETRICIDADE/2010) Uma linguagem de acesso a bancos de dados relacionais amplamente
usada é o SQL.

Isso mesmo! Trata-se de uma linguagem padrão para manipulação de bancos de dados
relacionais. Por meio dela, um usuário pode executar comandos para inserir, pesquisar,
atualizar ou deletar registros em um banco de dados, criar ou excluir tabelas, conceder ou
revogar permissões para acessar o banco de dados etc.
Certo.

Terminologia Utilizada nesta Aula


• Uma relação é uma tabela.
• Um único registro será chamado de linha (tupla).
• Um atributo será chamado de coluna.
• A SQL usa os termos tabela, linha e coluna, em vez dos termos relação, tupla e atributo,
respectivamente, para o modelo relacional formal.
• Um valor individual existente na interseção de qualquer linha com coluna será chamado
de dado.
• Chave Primária (Primary Key): uma ou mais colunas com valores que são únicos dentro
da tabela e por isso podem ser usados para identificar as linhas dessa tabela.
• SQL padrão: todo o material a ser apresentado neste curso se refere ao Padrão SQL
adotado oficialmente pelos American National Standards Institute – ANSI e International
Standard Organization – ISO.
• Alguns SGBDs que utilizam o SQL padrão: Oracle, DB2, SQL Server etc.

O conteúdo deste livro eletrônico é licenciado para EDSON LUCIANO DE OLIVEIRA VIGILATO - 03749324174, vedada, por quaisquer meios e a qualquer título,
a sua reprodução, cópia, divulgação ou distribuição, sujeitando-se aos infratores à responsabilização civil e criminal.

www.grancursosonline.com.br 22 de 127
TECNOLOGIA DA INFORMAÇÃO
Banco de Dados Relacionais – Parte V
Patrícia Lima Quintão

Regras Básicas para Escrever Comandos SQL

• Os comandos podem ser escritos em mais de uma linha;


• Cláusulas diferentes são colocadas usualmente em linhas diferentes;
• Podem ser usadas tabulações;
• Comandos podem ser escritos em letras maiúsculas ou minúsculas.

Alguns exemplos:

select
SELECT *
select * from cliente; *
from cliente;
from cliente;

Where: filtra ANTES do agrupamento.


Having: filtra DEPOIS do agrupamento.

• Criação de Tabelas:

A criação do banco de dados deve começar com a criação das tabelas nas quais os dados
serão introduzidos.
Para criar uma tabela em SQL, usa-se o comando CREATE TABLE.
O comando DDL para criar uma tabela deve conter os nomes das colunas, os tipos dos
seus dados e os tamanhos dos dados a serem introduzidos.
É a seguinte a sintaxe desse comando:
CREATE TABLE nome_da_tabela
(Nome_da_coluna1 tipo_do_dado (tamanho_do_dado)
Nome_da_coluna2 tipo_do_dado (tamanho_do_dado)
...
Nome_da_colunaN tipo_do_dado (tamanho_do_dado));

O conteúdo deste livro eletrônico é licenciado para EDSON LUCIANO DE OLIVEIRA VIGILATO - 03749324174, vedada, por quaisquer meios e a qualquer título,
a sua reprodução, cópia, divulgação ou distribuição, sujeitando-se aos infratores à responsabilização civil e criminal.

www.grancursosonline.com.br 23 de 127
TECNOLOGIA DA INFORMAÇÃO
Banco de Dados Relacionais – Parte V
Patrícia Lima Quintão

• Note que toda a descrição da coluna é colocada entre parênteses.


• Na criação de tabelas é possível especificar vários tipos de restrições de integridade
(RI).
− Chave Primária: PRIMARY KEY;
− Chave Estrangeira: FOREIGN KEY;
− Chave Alternativa (ou alternada): UNIQUE;
− Restrição de Domínio: CHECK. CHECK é utilizado para restringir os valores de
domínio, verificando se eles estão contidos no conjunto de valores especificados.

Figura. Utilização da restrição de domínio (CHECK)

• Pode-se atribuir nomes às restrições de integridade:


− CONSTRAINT NOME_RESTRIÇÃO TIPO RESTRIÇÃO.

 Obs.: Constraints nada mais são que restrições que você estabelece para uma coluna no
banco de dados, ou seja, um método para validar a integridade de todos os dados que
entram em sua base.

011. (FCC/TCE-SE/ANALISTA DE CONTROLE EXTERNO/COORDENADORIA DE


INFORMÁTICA/2011) Durante a criação de uma tabela – Create Table, em SQL, deseja-se
especificar que uma coluna só possa incluir, por exemplo, valores maiores que zero. Uma
constraint utilizada para isso é
a) Verify.
b) Check.
c) Max.
d) Avg.
e) Having.

O conteúdo deste livro eletrônico é licenciado para EDSON LUCIANO DE OLIVEIRA VIGILATO - 03749324174, vedada, por quaisquer meios e a qualquer título,
a sua reprodução, cópia, divulgação ou distribuição, sujeitando-se aos infratores à responsabilização civil e criminal.

www.grancursosonline.com.br 24 de 127
TECNOLOGIA DA INFORMAÇÃO
Banco de Dados Relacionais – Parte V
Patrícia Lima Quintão

Conforme visto, cabe destacar que o Check é a constraint que pode ser usada para restringir os
valores de domínio, verificando se eles estão contidos no conjunto de valores especificados.
Como ficaria essa definição de campo em uma tabela qualquer? Veja:
nomeColuna INTEGER NOT NULL CHECK (nomeColuna > 0).
Letra b.

012. (ESAF/ANA/ANALISTA ADMINISTRATIVO/TECNOLOGIA DA INFORMAÇÃO/


DESENVOLVIMENTO/2009) Em SQL, a cláusula check aplicada a uma declaração de domínio
a) permite especificar um predicado que deve ser satisfeito por qualquer valor atribuído a uma
variável de determinado domínio.
b) especifica um predicado que deve ser satisfeito por uma tupla em uma relação.
c) proíbe a inserção de um valor nulo para as variáveis do domínio.
d) verifica se os atributos considerados formam uma chave candidata.
e) não tem efeito, pois não se aplica esta cláusula a declarações de domínio.

Um predicado é uma qualidade, uma característica. Na computação, entendam predicado como


uma condição que deve ser satisfeita. A cláusula CHECK permite especificar uma condição
que deve ser satisfeita por qualquer valor atribuído a uma variável de determinado domínio.
Exemplo:
ALTER TABLE TELEFONE
ADD CONSTRAINT TIPO_TELEFONE
CHECK (TIPO IN(‘Fixo’, ‘Movel’));
Letra a.

• Criação de um Índice:

Os índices aceleram a recuperação dos dados.


Para criar um índice em uma tabela, o comando SQL é:
CREATE INDEX nome_do_índice
ON nome_da_tabela(nome_da_coluna);
O comando CREATE INDEX constrói o índice nome_do_índice na tabela especificada.
• Alteração de Tabelas

Conforme ocorram novas situações ou novos dados sejam armazenados no banco de


dados, a definição original de uma tabela pode tornar-se insuficiente.
A SQL permite-nos realizar diversas alterações em uma tabela, como:

O conteúdo deste livro eletrônico é licenciado para EDSON LUCIANO DE OLIVEIRA VIGILATO - 03749324174, vedada, por quaisquer meios e a qualquer título,
a sua reprodução, cópia, divulgação ou distribuição, sujeitando-se aos infratores à responsabilização civil e criminal.

www.grancursosonline.com.br 25 de 127
TECNOLOGIA DA INFORMAÇÃO
Banco de Dados Relacionais – Parte V
Patrícia Lima Quintão

• incluir novas colunas em uma tabela;


• excluir colunas existentes em uma tabela;
• adicionar a definição de uma restrição em uma tabela;
• excluir a definição de uma restrição existente em uma tabela;
• modificar uma coluna.

A sintaxe para INCLUIR uma coluna é:


ALTER TABLE nome_da_tabela
ADD nome_da_coluna tipo_do_dado;
A sintaxe para ALTERAR A LARGURA de uma coluna já existente é:
ALTER TABLE nome_da_tabela
MODIFY nome_da_coluna tipo_do_dado
nova_largura;
Exemplos:
ALTER TABLE Telefone
DROP COLUMN Tipo;
ALTER TABLE TELEFONE
ADD CONSTRAINT TIPO_TELEFONE
CHECK (TIPO IN(‘Fixo’, ‘Movel’));
ALTER TABLE TELEFONE
DROP CONSTRAINT TIPO_TELEFONE;
ALTER TABLE TELEFONE
MODIFY (TIPO VARCHAR2(5));

Para diminuir tamanho a coluna precisa estar vazia.

• Exclusão de Tabelas:

Para excluir uma tabela de um banco de dados, use o comando DROP TABLE seguido do
nome da tabela:
DROP TABLE nomedatabela;
Quando uma tabela é excluída por um comando SQL, como acima, todas as visões e índices
definidos sobre a tabela são automaticamente excluídos.
Exemplo:
DROP TABLE EMP;
• Exclusão de Índices:

Para EXCLUIR um índice, use o comando SQL DROP INDEX seguido do nome do índice:

O conteúdo deste livro eletrônico é licenciado para EDSON LUCIANO DE OLIVEIRA VIGILATO - 03749324174, vedada, por quaisquer meios e a qualquer título,
a sua reprodução, cópia, divulgação ou distribuição, sujeitando-se aos infratores à responsabilização civil e criminal.

www.grancursosonline.com.br 26 de 127
TECNOLOGIA DA INFORMAÇÃO
Banco de Dados Relacionais – Parte V
Patrícia Lima Quintão

DROP INDEX nome_do_índice


ON nome_da_tabela;
Se você tem índices definidos com o mesmo nome em tabelas diferentes, deve usar a
cláusula ON, como no exemplo acima, para indicar o índice que quer eliminar.
Se há apenas um índice com este nome, então você não precisa especificar o nome da
tabela. O comando DROP abaixo será suficiente:
DROP INDEX nome_do_índice;

Obs.: A eliminação de um índice não elimina as tabelas ou visões relacionadas com o índice.
• Inserção:

A maioria dos sistemas trata a carga inicial no banco de dados de um grande conjunto de
dados numa operação genérica de carga. O comando SQL INSERT geralmente é usado para
inserir linhas individuais de dados num banco de dados já existente.
A sintaxe desse comando é:
INSERT
INTO nome_da_tabela (nome_da_coluna1, nome_da_coluna2,...)
VALUES (‘valor1’, ‘valor2’, ...);
Se a lista de valores está na mesma sequência que as colunas na tabela e há um valor para
cada coluna da tabela, então a lista de nomes das colunas pode ser omitida. Caso contrário, os
nomes das colunas devem ser especificados como mostrado acima.
Os valores inseridos devem ter o tipo compatível com o tipo da coluna na qual estão sendo
inseridos.
Valores do tipo CHAR devem estar entre aspas simples; valores do tipo NUM ou do tipo
NULL não devem ser colocados entre aspas simples.
Exemplos:
Insert Into PESSOA (CPF, NOME, SEXO)
values (‘11122233344’,’Patricia’, ‘F’);
Insert Into PESSOA (CPF, NOME, SEXO)
Select CPF, NOME, SEXO From Aluno
• Atualização:

O comando UPDATE é usado para alterar valores em linhas já existentes.


Sua forma geral é:
UPDATE nome_da_tabela
SET coluna1=novo_valor,
Coluna2=novo_valor,
...
colunaN=novo_valor,

O conteúdo deste livro eletrônico é licenciado para EDSON LUCIANO DE OLIVEIRA VIGILATO - 03749324174, vedada, por quaisquer meios e a qualquer título,
a sua reprodução, cópia, divulgação ou distribuição, sujeitando-se aos infratores à responsabilização civil e criminal.

www.grancursosonline.com.br 27 de 127
TECNOLOGIA DA INFORMAÇÃO
Banco de Dados Relacionais – Parte V
Patrícia Lima Quintão

WHERE condição;
A cláusula SET do comando UPDATE indica as colunas a serem alteradas e quais os
novos valores.
O comando UPDATE atua em todas as linhas que satisfazem a condição especificada pela
cláusula WHERE. A cláusula WHERE é opcional, mas, se for omitida, todas as linhas serão
atualizadas.
Você pode atualizar várias colunas em cada linha com um único comando UPDATE listando
as várias colunas após a cláusula SET, conforme visto acima.
A cláusula WHERE no comando UPDATE pode conter uma subconsulta.
Exemplo:
UPDATE PESSOA
SET idade = 20
WHERE nome = ‘Maria’;
• Exclusão:

O comando DELETE é usado para remover linhas de uma tabela. Sua forma geral:
DELETE
FROM nome_da_tabela
WHERE condição;
Você não pode excluir parcialmente uma linha, portanto não precisa especificar os nomes
das colunas no comando DELETE.
A cláusula WHERE determina que linhas serão eliminadas. Ela pode ser complexa e incluir
várias condições, conectores e/ou subconsultas.
Se você deseja excluir todas as linhas de uma tabela, omita a cláusula WHERE, como
listado a seguir:
DELETE
FROM nome_da_tabela;
O comando anterior eliminará todas as linhas, deixando apenas as especificações das
colunas e o nome da tabela.
• Recuperação Usando SELECT:

A estrutura básica de uma consulta em SQL consiste em TRÊS cláusulas: SELECT,


FROM e WHERE.
Assim, uma consulta típica em SQL tem a forma:
SELECT coluna1, coluna2,..., colunaN
FROM nome_da_tabela
WHERE condição;
• A cláusula SELECT relaciona as colunas que se quer presentes no resultado da consulta.
Essa cláusula corresponde à operação de projeção da álgebra relacional.

O conteúdo deste livro eletrônico é licenciado para EDSON LUCIANO DE OLIVEIRA VIGILATO - 03749324174, vedada, por quaisquer meios e a qualquer título,
a sua reprodução, cópia, divulgação ou distribuição, sujeitando-se aos infratores à responsabilização civil e criminal.

www.grancursosonline.com.br 28 de 127
TECNOLOGIA DA INFORMAÇÃO
Banco de Dados Relacionais – Parte V
Patrícia Lima Quintão

• A cláusula FROM corresponde à operação de produto cartesiano da álgebra relacional.


Ela associa a tabela ou tabelas que serão pesquisadas durante a avaliação de uma
expressão. Em outras palavras, é uma lista de relações a serem varridas na execução da
expressão.
• A cláusula WHERE corresponde à seleção do predicado da álgebra relacional. Consiste
em um predicado envolvendo atributos da relação que aparece na cláusula FROM.

 Obs.: SELECT e a cláusula FROM são necessárias em todas as consultas SQL. Devem
aparecer antes de qualquer outra cláusula na consulta.
 O resultado de uma consulta SQL é SEMPRE uma tabela.

Estrutura de uma Consulta Simples:


SELECT coluna1, coluna2,..., colunaN
FROM nome_da_tabela
[WHERE (expressão lógica)]
[GROUP BY (atributos de agrupamento)]
[HAVING (condição de agrupamento)]
[ORDER BY (lista de atributos)]

Expressões Tabulares (Cláusulas):


Expressões tabulares são cláusulas que são usadas para produzir tabelas. As expressões
tabulares suportadas pela SQL e seus propósitos são:

Especifica o(s) nome(s) da(s) tabela(s) de onde deve(m) ser


FROM
selecionada(s) as linhas.

Especifica a condição ou condições que as linhas selecionadas devem


WHERE satisfazer.

GROUP BY Separa as linhas selecionadas nos grupos especificados.

HAVING Estabelece as condições que cada grupo exibido deve satisfazer.

Especifica a ordem em que as linhas selecionadas serão exibidas


ORDER BY (individualmente ou em grupo).

A cláusula FROM é necessária para uma consulta SQL; as cláusulas WHERE, GROUP BY,
HAVING e ORDER BY são opcionais.
Exemplos:
SELECT * From PESSOA;

O conteúdo deste livro eletrônico é licenciado para EDSON LUCIANO DE OLIVEIRA VIGILATO - 03749324174, vedada, por quaisquer meios e a qualquer título,
a sua reprodução, cópia, divulgação ou distribuição, sujeitando-se aos infratores à responsabilização civil e criminal.

www.grancursosonline.com.br 29 de 127
TECNOLOGIA DA INFORMAÇÃO
Banco de Dados Relacionais – Parte V
Patrícia Lima Quintão

SELECT CPF, NOME, SEXO, IDADE


FROM PESSOA
WHERE sexo = ‘M’ or sexo = ‘F’;
SELECT CPF, NOME, SEXO, IDADE
FROM PESSOA
WHERE IDADE > ANY (10,20,30);
ou
WHERE IDADE > ALL (10,20,30);
SELECT CPF, NOME, SEXO
FROM PESSOA
WHERE nome LIKE ‘P%’;
• LIKE e NOT LIKE:

Observe o uso do LIKE no exemplo acima. LIKE determina se uma cadeia de caracteres
específica corresponde a um padrão especificado. Um padrão pode incluir caracteres normais
e coringas.
Durante a correspondência de padrões, os caracteres normais devem corresponder
exatamente aos caracteres especificados na cadeia de caracteres.
No entanto, os caracteres coringas podem ser correspondidos a fragmentos arbitrários da
cadeia de caracteres.

Exemplo:
O caractere % (combina qualquer substring, independentemente do tamanho) e _ (combina
caractere a caractere).

Os operadores NOT LIKE são usados de forma oposta ao operador LIKE.

Expressão Explicação

LIKE ‘A%’ Todas as palavras que iniciem com a letra A.

LIKE ‘%A’ Todas as palavras que terminem com a letra A.

LIKE ‘%A%’ Todas que tenham a letra A em qualquer posição.

String de dois caracteres que tenham a primeira letra A e


LIKE ‘A_’ o segundo caractere seja qualquer outro.

String de dois caracteres cujo primeiro caractere seja


LIKE ‘_A’ qualquer um e a última letra seja A.

O conteúdo deste livro eletrônico é licenciado para EDSON LUCIANO DE OLIVEIRA VIGILATO - 03749324174, vedada, por quaisquer meios e a qualquer título,
a sua reprodução, cópia, divulgação ou distribuição, sujeitando-se aos infratores à responsabilização civil e criminal.

www.grancursosonline.com.br 30 de 127
TECNOLOGIA DA INFORMAÇÃO
Banco de Dados Relacionais – Parte V
Patrícia Lima Quintão

Expressão Explicação

String de três caracteres cuja segunda letra seja


LIKE ‘_A_’ A, independentemente do primeiro ou do último
caractere.

Todos que tenham a letra A na penúltima posição e a


LIKE ‘%A_’ última seja qualquer outro caractere.

Todos que tenham a letra A na segunda posição e o


LIKE ‘_A%’ primeiro caracter seja qualquer um.

Dica de leitura complementar:


https://www.devmedia.com.br/sql-server-2005-operadores-like-e-not-like/17292

Criação de Visões
Uma visão (view) pode ser considerada como uma maneira alternativa de observação de
dados de uma ou mais entidades (tabelas). Pode ser considerada também como uma tabela
virtual ou uma consulta armazenada.
Uma vez que a view é gerada, o seu conjunto de dados é armazenado em uma tabela
temporária (virtual), tornando o acesso às informações mais rápido.
Deve-se ressaltar que uma view não existe fisicamente, é uma tabela virtual. No entanto,
os dados contidos em uma view podem ser modificados normalmente.
View (visão) é 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.
As vantagens de se usar views são:
• permite economizar tempo, evitando retrabalho;
• aumenta a velocidade de acesso aos dados;
• esconde a complexidade do banco de dados;
• simplifica a gerência de permissão de usuários; e
• organiza os dados a serem exportados.

Para criar uma visão, você seleciona apenas as colunas da tabela (ou tabelas) básica em
que está interessado.

 Obs.: Visões podem ser criadas usando expressões de consulta para extrair dados de
outras visões.
 Além disso, é possível criar uma visão que contém apenas dados calculados e, que,
portanto, não possuem dados armazenados em uma tabela base.

O conteúdo deste livro eletrônico é licenciado para EDSON LUCIANO DE OLIVEIRA VIGILATO - 03749324174, vedada, por quaisquer meios e a qualquer título,
a sua reprodução, cópia, divulgação ou distribuição, sujeitando-se aos infratores à responsabilização civil e criminal.

www.grancursosonline.com.br 31 de 127
TECNOLOGIA DA INFORMAÇÃO
Banco de Dados Relacionais – Parte V
Patrícia Lima Quintão

Para definir uma visão, você deve dar um nome para a visão e então estabelecer a consulta
contendo os nomes das colunas e as especificações que constituirão a visão. A sintaxe é:
CREATE VIEW nome-de-visão [ (nomes_das_colunas_da_visão) ]
AS (expressão da consulta);
onde (expressão da consulta) é um comando SELECT FROM.
Exemplo:
CREATE VIEW Empregados_Sede
AS SELECT (Nome, Endereco, Sexo, Data-nasc)
FROM EMPREGADO
Mais comandos:

Grant Concessão de privilégios a tabelas e visões.

Revoke Revogação de privilégios a tabelas e visões.

COMMIT Efetiva alterações feitas na base de dados.

ROLLBACK Desfaz alterações na base de dados.

SAVEPOINT Estabelece pontos de retorno dentro de uma transação.

** Restrições de Integridade Usando...

STORED PROCEDURES (procedimentos armazenados no banco)


Stored Procedure é uma sequência de comandos em SQL para realização de diferentes
tarefas repetitivas no banco, aceitando parâmetros de entrada e retornando valores.
Algumas das vantagens das Stored Procedures são:
• redução do tráfego na rede;
• melhora do desempenho;
• criação de mecanismos de segurança e backup.

TRIGGERS (gatilhos)
Uma trigger é uma sub-rotina, parecida com uma stored procedure, que tem como
característica ser executada automaticamente a partir de alguma ação realizada no
banco de dados.
Geralmente utilizada com um tipo de proteção ao acesso indiscriminado a dados de uma
tabela. Quando há uma tentativa de inserir, atualizar ou excluir os dados em uma tabela, e
uma trigger tiver sido definida na tabela para essa ação específica, ela será executada
automaticamente, não podendo ser ignorada.

O conteúdo deste livro eletrônico é licenciado para EDSON LUCIANO DE OLIVEIRA VIGILATO - 03749324174, vedada, por quaisquer meios e a qualquer título,
a sua reprodução, cópia, divulgação ou distribuição, sujeitando-se aos infratores à responsabilização civil e criminal.

www.grancursosonline.com.br 32 de 127
TECNOLOGIA DA INFORMAÇÃO
Banco de Dados Relacionais – Parte V
Patrícia Lima Quintão

Comando SELECT
A sintaxe mais simples do comando SELECT é:
SELECT [DISTINCT | ALL] {* | coluna [, coluna, ...]}
FROM tabela
em que:

Cláusula Descrição

DISTINCT Não mostra eventuais valores repetidos de colunas.

Mostra todos os valores, mesmo que repetidos. Esse é o


ALL padrão se DISTINCT não for definido.

Indica que devem ser mostradas todas as colunas da


* tabela.

Coluna Lista de colunas que devem ser mostradas.

Tabela Nome da tabela em que será realizada a busca.

Seleção de Colunas Específicas

Exemplo: Para retornar todos os nomes e códigos dos clientes da tabela cliente:
SELECT cod_cliente, nome_cliente
FROM cliente

Seleção de Todas as Colunas

Exemplo:
SELECT * FROM Empregado
Esse exemplo utiliza o coringa “*” para selecionar as colunas na ordem em que foram
criadas. A instrução select seleciona um grupo de registros de uma (ou mais) tabela(s). No
caso, a instrução from indica a necessidade de pesquisarmos tais dados apenas na tabela
Empregado.

Eliminação de Duplicações

A cláusula DISTINCT não mostra eventuais valores repetidos de colunas.


SELECT DISTINCT Nome
FROM Empregado

O conteúdo deste livro eletrônico é licenciado para EDSON LUCIANO DE OLIVEIRA VIGILATO - 03749324174, vedada, por quaisquer meios e a qualquer título,
a sua reprodução, cópia, divulgação ou distribuição, sujeitando-se aos infratores à responsabilização civil e criminal.

www.grancursosonline.com.br 33 de 127
TECNOLOGIA DA INFORMAÇÃO
Banco de Dados Relacionais – Parte V
Patrícia Lima Quintão

Utilização de Pseudônimos

A SQL oferece um modo de renomear os atributos de uma relação resultante. Para isso,
usa a cláusula as, tomando a forma:
nome-antigo as nome-novo
Exemplo:
SELECT Matricula AS Matricula_Empregado
FROM Empregado
A cláusula as pode aparecer nas cláusulas select e from. Considere a consulta seguinte
como exemplo:
SELECT nome AS nome_instrutor, id_curso
FROM instrutor, ministra
WHERE instrutor.ID = ministra.ID;
Nesse exemplo, o nome do atributo nome foi substituído pelo nome nome_instrutor.
A cláusula as é particularmente útil na renomeação de relações. Um motivo para renomear
uma relação é substituir um nome de relação longo por uma versão abreviada, mais
conveniente para usar em outro ponto da consulta. Veja o exemplo: “Para todos os instrutores
na universidade que ministraram algum curso, ache seus nomes e a ID do curso para todos os
cursos que eles ministraram”.
SELECT T.nome, S.id_curso
FROM instrutor as T, ministra as S
WHERE T.ID = S.ID;

Cláusula WHERE

• A cláusula where corresponde ao operador restrição da álgebra relacional. Contém a


condição que as tuplas devem obedecer a fim de serem listadas. Ela pode comparar
valores em colunas, literais, expressões aritméticas ou funções.
• Objetivo: filtrar um conjunto de linhas de uma tabela

SELECT colunas
FROM tabela
[WHERE condição]
• Operadores:

=, <>, >, <, IS NULL, IN, BETWEEN, NOT, LIKE


• Exemplos:

O conteúdo deste livro eletrônico é licenciado para EDSON LUCIANO DE OLIVEIRA VIGILATO - 03749324174, vedada, por quaisquer meios e a qualquer título,
a sua reprodução, cópia, divulgação ou distribuição, sujeitando-se aos infratores à responsabilização civil e criminal.

www.grancursosonline.com.br 34 de 127
TECNOLOGIA DA INFORMAÇÃO
Banco de Dados Relacionais – Parte V
Patrícia Lima Quintão

Conjunção de condições
SELECT *
FROM Empregado
WHERE Nome = ‘Paulo’ AND Salario > 1000
Disjunção de condições
SELECT *
FROM Empregado
WHERE Matricula = 1 OR Nome LIKE ‘J%’

Cláusula ORDER BY

• Objetivo: ordenar o resultado de uma consulta.

SELECT colunas
FROM tabela
[WHERE condição]
[ORDER BY {coluna1,...} [ASC|DESC]]
• Exemplo:

SELECT *
FROM Empregado
ORDER BY Nome

Junção de Tabelas
• Objetivo: combinar linhas de tabelas diferentes, por meio de valores comuns em colunas
correspondentes.
• Exemplo:

SELECT Empregado.Nome, Filial.Nome


FROM Empregado, Filial
WHERE Empregado.CodFilial = Filial.CodFilial
ou
SELECT Empregado.Nome, Filial.Nome
FROM Empregado e, Filial f
WHERE e.CodFilial = f.CodFilial
Joins são instruções em SQL usadas para obter informações de duas ou mais tabelas,
baseado no relacionamento entre certas colunas dessas tabelas, em outras palavras, baseado
em chaves primárias e estrangeiras.

O conteúdo deste livro eletrônico é licenciado para EDSON LUCIANO DE OLIVEIRA VIGILATO - 03749324174, vedada, por quaisquer meios e a qualquer título,
a sua reprodução, cópia, divulgação ou distribuição, sujeitando-se aos infratores à responsabilização civil e criminal.

www.grancursosonline.com.br 35 de 127
TECNOLOGIA DA INFORMAÇÃO
Banco de Dados Relacionais – Parte V
Patrícia Lima Quintão

Essa é a primeira grande diferença entre os joins e o produto cartesiano. Neste eu posso
relacionar tabelas que não têm nenhum campo em comum (apesar de isso não fazer muito
sentido). Já nos joins, eu preciso ter um relacionamento entre as tabelas, senão não tem join.
Temos os seguintes tipos de joins:

Retorna linhas quando existe pelo menos uma combinação


Inner Join
em ambas as tabelas.

Retorna todas as linhas da tabela da esquerda, mesmo que as


Left Join linhas não combinem com a tabela da direita.

Retorna todas as linhas da tabela da direita, mesmo que as


Right Join linhas não combinem com a tabela da esquerda.

Retorna linhas quando têm uma combinação em uma das


Full join tabelas.

Para entender melhor a funcionalidade do JOIN na linguagem SQL, podemos visualizar os


diagramas abaixo que representam a teoria dos conjuntos.
INNER JOIN: é usando para juntar dados de mais de uma tabela em que haja correspondência
entre as linhas das tabelas. Retorna somente a intersecção entre as duas tabelas, conforme
mostra a área em vermelho na figura.

LEFT JOIN: é usando para juntar dados de duas ou mais tabelas retornando todas as linhas
da tabela à esquerda (A) MESMO QUE NÃO HAJA correspondência na tabela da direita (B).
SELECT *
FROM A
LEFT JOIN B ON A.ID = B.ID

O conteúdo deste livro eletrônico é licenciado para EDSON LUCIANO DE OLIVEIRA VIGILATO - 03749324174, vedada, por quaisquer meios e a qualquer título,
a sua reprodução, cópia, divulgação ou distribuição, sujeitando-se aos infratores à responsabilização civil e criminal.

www.grancursosonline.com.br 36 de 127
TECNOLOGIA DA INFORMAÇÃO
Banco de Dados Relacionais – Parte V
Patrícia Lima Quintão

LEFT JOIN: Podemos ainda excluir os registros exibindo os itens da tabela à esquerda (A)
que NÃO tem correspondências na tabela à direita (B).
SELECT *
FROM A
LEFT JOIN B ON A.ID = B.ID
WHERE A.ID IS NULL;

RIGTH JOIN: é usado para juntar dados de duas ou mais tabelas retornando todas as linhas
da tabela à direita MESMO QUE NÃO HAJA correspondência na tabela da esquerda.

Funções de Grupo

• Objetivo: retornar um valor para um grupo de linhas.

SELECT função_grupo (coluna)


FROM tabela
[WHERE condição]
[ORDER BY coluna]
Como exemplos de funções de grupo tem-se:

Retorna a quantidade de linhas do grupo


COUNT (*)
(aqui inclui todas as linhas).

Retorna o número de linhas com valores não


COUNT(coluna) nulos da coluna especificada.

O conteúdo deste livro eletrônico é licenciado para EDSON LUCIANO DE OLIVEIRA VIGILATO - 03749324174, vedada, por quaisquer meios e a qualquer título,
a sua reprodução, cópia, divulgação ou distribuição, sujeitando-se aos infratores à responsabilização civil e criminal.

www.grancursosonline.com.br 37 de 127
TECNOLOGIA DA INFORMAÇÃO
Banco de Dados Relacionais – Parte V
Patrícia Lima Quintão

Retorna a quantidade de linhas do grupo


COUNT (*)
(aqui inclui todas as linhas).

Retorna o número de linhas com valores


COUNT(DISTINCT coluna) distintos.

Retorna o valor máximo da coluna dentro do


MAX (coluna) grupo.

MIN (coluna) Retorna o valor mínimo da coluna dentro do grupo.

SUM ([DISTINCT] coluna) Retorna o somatório da coluna dentro do grupo.

Retorna a média aritmética da coluna dentro do


AVG ([DISTINCT] coluna) grupo. Valores NULL são ignorados.

• Exemplo

SELECT AVG (Salario)


FROM Empregado
WHERE CodFilial = 1
SELECT ASSUNTO, AVG(Preco)
FROM Revista
GROUP BY assunto;
- Calcula o preço médio das revistas por assunto.
SELECT ASSUNTO, COUNT(*)
FROM Livro
GROUP BY assunto;
- Calcula a quantidade de livros por assunto.

Cláusula Group By

• Objetivo: dividir as linhas de uma consulta em grupos menores.

SELECT colunas, função_grupo (coluna)


FROM tabela
[WHERE condição]
[GROUP BY coluna]
• Exemplo:

SELECT AVG (Salario)


FROM Empregado

O conteúdo deste livro eletrônico é licenciado para EDSON LUCIANO DE OLIVEIRA VIGILATO - 03749324174, vedada, por quaisquer meios e a qualquer título,
a sua reprodução, cópia, divulgação ou distribuição, sujeitando-se aos infratores à responsabilização civil e criminal.

www.grancursosonline.com.br 38 de 127
TECNOLOGIA DA INFORMAÇÃO
Banco de Dados Relacionais – Parte V
Patrícia Lima Quintão

GROUP BY CodFilial
SELECT COUNT (Nome)
FROM Empregado
GROUP BY CodFilial

Cláusula Having

• Objetivo: restringir funções de grupo! Esta opção só é utilizada combinada com a opção
GROUP BY.

SELECT colunas, função_grupo (coluna)


FROM tabela
[WHERE condição]
[GROUP BY coluna]
[HAVING função_grupo (coluna)]
[ORDER BY coluna]
• Exemplo:

SELECT CodFilial, AVG (Salario)


FROM Empregado
GROUP BY CodFilial
HAVING AVG (Salario) > 2000

 Obs.: A cláusula GROUP BY deve ser colocada ANTES da HAVING, pois os grupos são
formados e as funções de grupos são calculadas antes de se resolver a cláusula HAVING.

Subqueries (Subconsultas)

• No processamento deste comando SQL composto, a subconsulta é efetuada primeiro, e


então o resultado é aplicado à consulta principal.
• São comandos SQL utilizados em condições de cláusulas WHERE ou HAVING para
prover resultados que são utilizados para completar a consulta principal.
• Operadores:

O conteúdo deste livro eletrônico é licenciado para EDSON LUCIANO DE OLIVEIRA VIGILATO - 03749324174, vedada, por quaisquer meios e a qualquer título,
a sua reprodução, cópia, divulgação ou distribuição, sujeitando-se aos infratores à responsabilização civil e criminal.

www.grancursosonline.com.br 39 de 127
TECNOLOGIA DA INFORMAÇÃO
Banco de Dados Relacionais – Parte V
Patrícia Lima Quintão

• Sintaxe de exemplo:

• Exemplos:

Operadores ANY e ALL

Quando a subquery retornar mais de um valor, os operadores ANY e ALL podem ser
utilizados para compatibilizar o resultado da subquery com o tipo do operador de comparação.
<campo> > ANY <subquery>
Essa condição será verdadeira quando <campo> for maior que qualquer um dos resultados
da subquery.
O conteúdo deste livro eletrônico é licenciado para EDSON LUCIANO DE OLIVEIRA VIGILATO - 03749324174, vedada, por quaisquer meios e a qualquer título,
a sua reprodução, cópia, divulgação ou distribuição, sujeitando-se aos infratores à responsabilização civil e criminal.

www.grancursosonline.com.br 40 de 127
TECNOLOGIA DA INFORMAÇÃO
Banco de Dados Relacionais – Parte V
Patrícia Lima Quintão

<campo> < ANY <subquery>


Essa condição será verdadeira quando <campo> for menor que qualquer um dos resultados
da subquery.
<campo> > ALL <subquery>
Essa condição será verdadeira quando <campo> for maior que todos os resultados
da subquery.
<campo> < ALL <subquery>
Essa condição será verdadeira quando <campo> for menor que todos os resultados
da subquery.
Exemplo:
• Listar os produtos que tenham preço unitário superior ao preço unitário de todos os
produtos de hardware.

SELECT Descricao
FROM Produto
WHERE Precounitario > ALL ( SELECT Precounitario
FROM Produto
WHERE Tipo = ‘HARDWARE’);

Operadores IN e NOT IN

Verifica se o dado faz parte ou não da lista fornecida. A lista pode ser formada por valores
retornados por uma subquery.
Exemplo: Listar as notas de venda e os respectivos vendedores, em que constem mais de
2 produtos vendidos.

SELECT IdNV, NomeVendedor


FROM NotaVenda
WHERE IdNV IN (SELECT IdNV
FROM ItemNota
GROUP BY IdNV
HAVING COUNT(IdProduto) > 2)

Operadores de Conjuntos

Como o resultado de um query é um conjunto de linhas você pode realizar operações de


conjuntos entre queries.
• UNION: União entre os resultados das queries;
• INTERSECT: Interseção entre os resultados das queries;

O conteúdo deste livro eletrônico é licenciado para EDSON LUCIANO DE OLIVEIRA VIGILATO - 03749324174, vedada, por quaisquer meios e a qualquer título,
a sua reprodução, cópia, divulgação ou distribuição, sujeitando-se aos infratores à responsabilização civil e criminal.

www.grancursosonline.com.br 41 de 127
TECNOLOGIA DA INFORMAÇÃO
Banco de Dados Relacionais – Parte V
Patrícia Lima Quintão

• MINUS: Subtração entre os resultados das queries.

A operação de união permite reunir os resultados de duas consultas distintas em um só


resultado. Equivale à operação de União da Álgebra Relacional. A operação de união elimina as
linhas duplicadas.

Exemplo:
Listar todas as Notas de venda que sejam do vendedor ‘JUCA’, ou em que conste o produto 14.

SELECT IdNV FROM NotaVenda WHERE NomeVendedor=’JUCA’


UNION
SELECT IdNV FROM ItemNota WHERE IdProduto=14

Operadores EXISTS e NOT EXISTS

EXISTS: retorna “verdadeiro” se uma determinada subquery retornar ao menos uma linha e
“falso” caso contrário.
NOT EXISTS: retorna o resultado contrário do operador EXIST.

Exemplo:
Listar a descrição de todos os produtos que já foram vendidos.

SELECT Descricao
FROM Produto p
WHERE EXISTS (SELECT IdProduto FROM ItemNota i WHERE p.IdProduto =
i.IdProduto )

Tipos de Domínio na SQL


Domínio: conjunto de valores válidos para uma determinada coluna.
Alguns exemplos:

String de caracteres de tamanho fixo com tamanho n


char(n)
especificado pelo usuário.

String de caracteres de tamanho variável com tamanho n


varchar(n) máximo especificado pelo usuário.

Inteiro (um subconjunto finito de inteiros que é dependente da


int máquina).

O conteúdo deste livro eletrônico é licenciado para EDSON LUCIANO DE OLIVEIRA VIGILATO - 03749324174, vedada, por quaisquer meios e a qualquer título,
a sua reprodução, cópia, divulgação ou distribuição, sujeitando-se aos infratores à responsabilização civil e criminal.

www.grancursosonline.com.br 42 de 127
TECNOLOGIA DA INFORMAÇÃO
Banco de Dados Relacionais – Parte V
Patrícia Lima Quintão

String de caracteres de tamanho fixo com tamanho n


char(n)
especificado pelo usuário.

Número de ponto fixo, com precisão de p dígitos especificada


numeric(p,d) pelo usuário, com n dígitos à direita do ponto decimal.

Número de ponto flutuante, com precisão de pelo menos n


float(n) dígitos.

Linguagens de Banco de Dados


A partir de agora, vamos pensar sobre o que faremos com o nosso Modelo Relacional? Como
já destacado anteriormente, o próximo passo é elaborar o projeto físico do Banco de Dados.
Mas o que é o projeto físico, afinal? É simplesmente pegar nosso modelo relacional pronto
e transformá-lo em um Banco de Dados, dentro de um SGBD.
Então, como vamos informar ao SGBD que nosso Banco de Dados tem determinadas
tabelas, com campos, chaves primárias etc. Nesse ponto, é que entram as linguagens que
foram criadas para “dialogar” com o Banco de Dados.
Vamos reforçar a seguir as principais:

DDL – Data Definition Language ou Linguagem de Definição de Dados


Quando um banco de dados é criado, ele inicialmente está “vazio”. Assim, antes de começar
a consultar e alterar dados e preciso definir onde e como as informações serão gravadas dentro
do novo banco; então criam-se diversas tabelas explicitando o tipo de dados de cada campo,
as chaves estrangeiras, os índices, as regras etc.
Para a realização dessa definição dos dados é utilizada uma DDL (Data Definition Language
– Linguagem de Definição de dados).
Os comandos DDL são armazenados no dicionário de dados (ou catálogo). Logo, o dicionário
de dados contém os metadados (dados a respeito das estruturas de armazenamento) do banco.
Os principais comandos da DDL são:
• create table: cria uma nova tabela com seus campos e define as restrições de campo.
• create index: cria um novo índice em uma tabela existente.
• alter table: altera as definições de campos e de restrições.
• create domain: cria um tipo de dado definido pelo usuário.
• drop table: exclui uma tabela existente de um banco de dados
• drop index: exclui um índice existente de uma tabela.

O conteúdo deste livro eletrônico é licenciado para EDSON LUCIANO DE OLIVEIRA VIGILATO - 03749324174, vedada, por quaisquer meios e a qualquer título,
a sua reprodução, cópia, divulgação ou distribuição, sujeitando-se aos infratores à responsabilização civil e criminal.

www.grancursosonline.com.br 43 de 127
TECNOLOGIA DA INFORMAÇÃO
Banco de Dados Relacionais – Parte V
Patrícia Lima Quintão

DML – Data Manipulation Language ou Linguagem de Manipulação de


Dados
Após a carga dos dados nas tabelas criadas pelos comandos DDL, os comandos de
manipulação de dados tornam possível sua manipulação, incluindo inserções, atualizações,
exclusões e consultas (com a utilização do comando SELECT da SQL).
A DML visa à manipulação de dados (incluir, alterar, excluir e consultar) por meio do usuário.
Principais comandos:
• select: seleção de registros;
• insert: inserção de registros;
• update: atualização de registros;
• delete: deleção de registros.

DQL – Data Query Language ou Linguagem de Consulta de Dados


A linguagem de consulta de dados é um subconjunto da DML que possui apenas a instrução
de SELECT.

DCL – Data Control Language ou Linguagem de Controle de Dados


Permite controlar o acesso dos usuários aos dados em um banco de dados.
Principais comandos:
• GRANT: concessão de privilégios a tabelas e visões.
• REVOKE: revogação de privilégios a tabelas e visões.

DTL – Data Transaction Language ou Linguagem de Transação de Dados


Faz controle de transações no banco de dados.
Principais comandos:

COMMIT Efetiva alterações feitas na base de dados.

ROLLBACK Desfaz alterações na base de dados.

SAVEPOINT Estabelece pontos de retorno dentro de uma transação.

SDL – Storage Definition Language ou Linguagem de Definição de


Armazenamento
Utilizada para especificar o esquema interno de armazenamento. Pertencia às versões
antigas do SQL, mas foi absorvida pela DDL. Alguns autores nem citam mais esta modalidade.
O conteúdo deste livro eletrônico é licenciado para EDSON LUCIANO DE OLIVEIRA VIGILATO - 03749324174, vedada, por quaisquer meios e a qualquer título,
a sua reprodução, cópia, divulgação ou distribuição, sujeitando-se aos infratores à responsabilização civil e criminal.

www.grancursosonline.com.br 44 de 127
TECNOLOGIA DA INFORMAÇÃO
Banco de Dados Relacionais – Parte V
Patrícia Lima Quintão

VDL – View Definition Language ou Linguagem de Definição de Visões


Voltada para especificar as visões dos usuários e seus mapeamentos para o esquema
conceitual. Ex: CREATE VIEW, DROP VIEW.

013. (CESPE/FUB/2018) Julgue o item subsecutivo, a respeito de linguagem de definição e


manipulação de dados.
O comando DROP TABLE permite excluir do banco de dados a definição de uma tabela e de
todos os seus dados.

Isso mesmo! O comando DROP TABLE é utilizado para excluir uma tabela do banco de dados.
Deve ser usado com cuidado porque ele apaga a tabela com todos os seus dados.
SINTAXE DO COMANDO:
DROP TABLE NOME_DA_TABELA;
EXEMPLO DO COMANDO:
DROP TABLE teste;
O comando DROP TABLE remove a tabela inteira da base de dados que inclui a sua
estrutura e registros.

Letra c.

014. (CESPE/MEC/2015) Com relação à linguagem de definição de dados (DDL) e à linguagem


de manipulação de dados (DML), julgue o próximo item. A DML utiliza o comando CREATE para
inserir um novo registro na tabela de dados.

A linguagem SQL possui diversos comandos para acessar e manipular dados, criação, exclusão
e alteração das tabelas, índices e demais estruturas de bancos de dados, além de comandos para
controlar os dados e transações. Podemos subdividir a linguagem nos seguintes subgrupos:

O conteúdo deste livro eletrônico é licenciado para EDSON LUCIANO DE OLIVEIRA VIGILATO - 03749324174, vedada, por quaisquer meios e a qualquer título,
a sua reprodução, cópia, divulgação ou distribuição, sujeitando-se aos infratores à responsabilização civil e criminal.

www.grancursosonline.com.br 45 de 127
TECNOLOGIA DA INFORMAÇÃO
Banco de Dados Relacionais – Parte V
Patrícia Lima Quintão

Figura. Comandos da SQL

Conforme visto, a Linguagem de Definição de Dados (DDL) é um conjunto de comandos dentro


da SQL utilizada para a definição de estrutura dos dados e tabelas. Eles permitem criar, remover
ou modificar objetos do banco de dados. Os comandos DDL mais comuns são CREATE, ALTER,
DROP, RENAME e TRUNCATE.
A Linguagem de Modificação de Dados (DML) é um conjunto de comandos de modificação de
dados. Incluem funcionalidades para a criação, remoção ou alteração de registros nas tabelas.
Por exemplo, INSERT, UPDATE, DELETE.
Assim, o comando CREATE é um comando DDL para criar um novo objeto em um banco de dados.
Errado.

015. (CESPE/TJ-SE/2014) Julgue os itens seguintes, acerca da segurança e do tuning de


banco de dados. Para cancelar os privilégios de um usuário a uma tabela do banco de dados,
devese utilizar o comando REVOKE.

O conteúdo deste livro eletrônico é licenciado para EDSON LUCIANO DE OLIVEIRA VIGILATO - 03749324174, vedada, por quaisquer meios e a qualquer título,
a sua reprodução, cópia, divulgação ou distribuição, sujeitando-se aos infratores à responsabilização civil e criminal.

www.grancursosonline.com.br 46 de 127
TECNOLOGIA DA INFORMAÇÃO
Banco de Dados Relacionais – Parte V
Patrícia Lima Quintão

A DCL (Data Control Language ou Linguagem de Controle de Dados) serve para controlar dados!
E qual é o significado dela? Essa linguagem possui um conjunto de comandos para lidar com
autorizações de dados e licenças de usuários para controlar quem tem acesso para ver ou
manipular dados dentro do banco de dados.
São exemplos de comandos dessa linguagem:
GRANT: utilizado para conceder permissão a um usuário em relação a algum objeto, assim
altera as permissões em objetos-esquema.
REVOKE: utilizado para remover ou restringir a capacidade de um usuário de executar
operações. É o inverso do commando GRANT.
Ao executarmos o comando REVOKE <privilégio> FROM <usuário>, estamos cancelando a
permissão que aquele usuário tem de realizar a operação.
Certo.

016. (CESPE/STM/2011) Os comandos do grupo DDL (Data Definition Language) do SQL


permitem gerar os dados das tabelas que formam um banco de dados.

A questão deixa dúvidas quando menciona “gerar os dados das tabelas”. Quando falamos em
dados pensamos nas informações armazenadas nas tabelas e isso se trata de comandos DML
(Data Manipulation Language), portanto, estaria errada a afirmação. Por outro lado, a palavra
“dados” pode ser interpretada como a estrutura da tabela, ou seja, os campos, as restrições de
integridade e os tipos de dados.
Diante da polêmica, essa questão teve seu gabarito alterado de ERRADO para CERTO usando o
seguinte argumento como justificativa: “Os comandos do grupo DDL – Data Definition Language
– do SQL permitem gerar tabelas que formam um banco de dados, porém, as estruturas e os
conteúdos das tabelas devem ser definidos anteriormente. Dessa forma, opta-se pela alteração
do gabarito”
Certo.

017. (UFPR/ITAIPU/2015) Sobre a Linguagem SQL (DDL e DML), assinale a alternativa correta
segundo o padrão SQL ANSI 92.
a) Insert, Delete e Update são operações DDL.
b) Inner join, left outer join, right outer join, full outer join e cross join são cláusulas de junções
suportadas pelo padrão.
c) Modify Table e Truncate Table são operações DDL.
d) ADD, EXISTS, BETWEEN, LIKE, IS e IN são operadores relacionais válidos segundo o padrão.
e) CASE, NVL, TRIM e UPPER são operações DDL.

O conteúdo deste livro eletrônico é licenciado para EDSON LUCIANO DE OLIVEIRA VIGILATO - 03749324174, vedada, por quaisquer meios e a qualquer título,
a sua reprodução, cópia, divulgação ou distribuição, sujeitando-se aos infratores à responsabilização civil e criminal.

www.grancursosonline.com.br 47 de 127
TECNOLOGIA DA INFORMAÇÃO
Banco de Dados Relacionais – Parte V
Patrícia Lima Quintão

a) Errada. A linguagem SQL pode ser subdividida conforme a estrutura organizada no


diagrama a seguir:

b) Certa. As cláusulas de junção são determinadas exatamente por:

Retorna linhas quando existe pelo menos uma


Inner Join
combinação em ambas as tabelas.

Retorna todas as linhas da tabela da esquerda, mesmo que


Left Join as linhas não combinem com a tabela da direita.

Retorna todas as linhas da tabela da direita, mesmo que as


Right Join
linhas não combinem com a tabela da esquerda.

Retorna todas as linhas quando têm ou não uma combinação


Full join entre elas.

Retorna a união de duas ou mais tabelas por cruzamento. Ou


Cross Join seja, para cada linha de uma tabela faz-se a junção com todas
as linhas de outra tabela.

O conteúdo deste livro eletrônico é licenciado para EDSON LUCIANO DE OLIVEIRA VIGILATO - 03749324174, vedada, por quaisquer meios e a qualquer título,
a sua reprodução, cópia, divulgação ou distribuição, sujeitando-se aos infratores à responsabilização civil e criminal.

www.grancursosonline.com.br 48 de 127
TECNOLOGIA DA INFORMAÇÃO
Banco de Dados Relacionais – Parte V
Patrícia Lima Quintão

É importante observar que a instrução pode ser escrita de forma resumida,


suprimindo a palavra OUTER em left outer join, right outer join e full outer join.
c) Errada. Os comados Truncate e Modify não alteram objetos na estrutura da base de dados
e, portanto, não podem ser classificados como DDL.
d) Errada. Os comandos ADD, EXISTS, BETWEEN, LIKE, IS e IN não são considerados operadores
relacionais porque não comparam elementos. Exemplos de operadores de relação são:
diferente(<>), maior ou igual (>=), igualdade (=), etc.
e) Errada. Os comandos CASE, NVL, TRIM e UPPER são exemplos de funções implementadas em
alguns sistemas gerenciadores de banco de dados e não podem ser classificadas como DDL.
Letra b.

PostgreSQL
• SGBD objeto-relacional (ORDBMS), com ênfase em extensibilidade e em padrões de
conformidade.
• É baseado no POSTGRES versão 4.2, desenvolvido na Universidade de Berkeley na
Califórnia, mais especificamente em Berkeley Computer Science Department.
• Possui licença livre, assim, pode ser usado, modificado e distribuído gratuitamente por
qualquer pessoa, para qualquer fim, seja ele privado, comercial ou acadêmico.
• Suporta grande parte dos comandos da linguagem SQL/ANSI padrão.
• Oferece diversas características modernas, como: consultas complexas, chaves
estrangeiras, triggers, visões atualizáveis, integridade transacional e controle de
concorrência multiversão.
• Multiversion Concurrency Control (MVCC): o nível de bloqueio de tabela foi substituído
por um sistema de controle de concorrência multiversão sofisticado, que permite aos
usuários continuar lendo dados consistentes durante a atividade de escrita, possibilitando
backups on-line, enquanto o banco de dados está em execução.
• Várias melhorias foram feitas na sintaxe do SQL, incluindo subconsultas, padronização,
restrições, chaves primárias, chaves estrangeiras, identificadores entre aspas, tipo de
coerção de string literal (literal string type coercion), tipo casting, entrada dos tipos inteiro
binário e hexadecimal etc.
• Usa um modelo cliente/servidor, consistindo de um processo servidor que gerencia os
arquivos do banco de dados, controla as conexões dos clientes ao banco dados e efetua
ações no banco de dados em favor dos clientes.
• A aplicação cliente pode estar localizada em uma máquina diferente da máquina em
que o servidor está instalado. Neste caso, a comunicação entre ambos é efetuada por
uma conexão TCP/IP.
• O servidor PostgreSQL pode lidar com várias conexões simultâneas de clientes. Em outras
palavras, o servidor pode aceitar diferentes conexões dos clientes ao mesmo tempo.

O conteúdo deste livro eletrônico é licenciado para EDSON LUCIANO DE OLIVEIRA VIGILATO - 03749324174, vedada, por quaisquer meios e a qualquer título,
a sua reprodução, cópia, divulgação ou distribuição, sujeitando-se aos infratores à responsabilização civil e criminal.

www.grancursosonline.com.br 49 de 127
TECNOLOGIA DA INFORMAÇÃO
Banco de Dados Relacionais – Parte V
Patrícia Lima Quintão

• Suporta vários tipos de dados SQL em diversas categorias: tipos numéricos, monetários,
cadeias de caractereres, binários, booleanos, enuns, geométricos, data e hora etc.
• Oferece suporte a tipos de dados especializados, tais como: o JSon (armazena uma cópia
exata do texto de entrada) e o JSonb (armazena em um formato binário decomposto que
torna um pouco mais lento a entrada devido à sobrecarga de conversão adicionada, no
entanto é significativamente mais rápido de processar, pois não é necessária nenhuma
nova correção. Também suporta indexação.).
• É possível configurar diversos parâmetros de funcionamento por meio da edição do
arquivo postgresql.conf, que é lido sempre que o processo do servidor principal recebe
um sinal SIGHUP.
• O diretório de dados do PostgreSQL contém um arquivo postgresql.auto.conf, que possui
o mesmo formato do postgresql.conf, mas nunca deve ser editado manualmente.
• Podemos acessar o servidor PostgreSQL remotamente através da rede. No entanto,
devemos especificar o host, que é um nome de host, ou um hostaddr, que é um endereço
IP. Pode-se especificar o host como “localhost”, se quisermos fazer uma conexão TCP/
IP para o mesmo servidor.
• SELECT inet_server_port(); -> Exibe a porta na qual o servidor está escutando.
• SELECT current_database(); -> Mostra o banco de dados atual.
• SELECT current_user; -> Mostra o ID do usuário atual.
• SELECT inet_server_addr(); -> Mostra o endereço IP do servidor que aceitou a conexão.
• O parâmetro de configuração listen_address especifica os endereços TCP/IP nos quais
o servidor deve escutar conexões de aplicativos clientes.
− Na maioria dos casos, nós queremos aceitar conexões em todas as NICs. Por isso,
usamos a entrada especial “*”, que significa “todos os endereços IP”. A entrada
0.0.0.0 permite escutar todos os endereços IPv4 e:: permite escutar todos os
endereços IPv6.
• A autenticação do cliente é controlada por um arquivo de configuração, cujo nome é
pg_hba.conf.
− Os registros do pg_hba.conf são examinados sequencialmente para cada tentativa
de conexão (as diretivas são avaliadas a partir da linha superior, para a linha inferior).
− Cada registro do pg_hba.conf especifica:
o um tipo de conexão,
o um intervalo de endereços IP do cliente (se relevante para o tipo de conexão),
o um nome de banco de dados,
o um nome de usuário, e
o o método de autenticação a ser utilizado para as conexões que correspondem a
esses parâmetros.
• As configurações de memória compartilhada exigem que o banco de dados seja
reinicializado para serem aplicadas.

O conteúdo deste livro eletrônico é licenciado para EDSON LUCIANO DE OLIVEIRA VIGILATO - 03749324174, vedada, por quaisquer meios e a qualquer título,
a sua reprodução, cópia, divulgação ou distribuição, sujeitando-se aos infratores à responsabilização civil e criminal.

www.grancursosonline.com.br 50 de 127
TECNOLOGIA DA INFORMAÇÃO
Banco de Dados Relacionais – Parte V
Patrícia Lima Quintão

018. (FCC/DPE-AM/ANALISTA EM GESTÃO ESPECIALIZADO DE DEFENSORIA – ANALISTA


DE BANCO DE DADOS/2018) No sistema gerenciador de banco de dados PostgreSQL 8 é
possível configurar diversos parâmetros de funcionamento por meio da edição do arquivo
a) postgresql.data.
b) pgsql.gz.
c) pgsql.java.
d) pgsql.prog.
e) postgresql.conf.

É possível configurar diversos parâmetros de funcionamento do PostgreSQL 8 por meio da


edição do arquivo postgresql.conf.
Letra e.

019. (CESPE/ABIN/OFICIAL TÉCNICO DE INTELIGÊNCIA – ÁREA 8/2018) A respeito de


sistemas gerenciadores de banco de dados, julgue o próximo item.
No arquivo pg_hba.conf de configuração do PostgreSQL, as diretivas são avaliadas a partir da
linha superior, para a linha inferior.

Isso mesmo! Como os registros do pg_hba.conf são examinados sequencialmente para cada
tentativa de conexão, as diretivas são avaliadas a partir da linha superior, para a linha inferior.
Certo.

020. (CESPE/TJ-DFT/ANALISTA JUDICIÁRIO – SUPORTE EM TECNOLOGIA DA


INFORMAÇÃO/2015) A respeito da configuração e da administração de sistemas gerenciadores
de bancos de dados (SGBD) e de produtos a eles relacionados, julgue o item a seguir.
No PostgreSQL, mesmo usando-se o parâmetro de configuração listen_address = ‘*’, é possível
controlar os usuários que poderão se conectar ao banco de dados.

O parâmetro de configuração listen_address especifica os endereços TCP/IP nos quais o


servidor deve escutar conexões de aplicativos clientes. A criação de políticas de acesso é
feita em outro arquivo intitulado pg_hba.conf.
Certo.

O conteúdo deste livro eletrônico é licenciado para EDSON LUCIANO DE OLIVEIRA VIGILATO - 03749324174, vedada, por quaisquer meios e a qualquer título,
a sua reprodução, cópia, divulgação ou distribuição, sujeitando-se aos infratores à responsabilização civil e criminal.

www.grancursosonline.com.br 51 de 127
TECNOLOGIA DA INFORMAÇÃO
Banco de Dados Relacionais – Parte V
Patrícia Lima Quintão

021. (CESPE/SLU-DF/ANALISTA DE GESTÃO DE RESÍDUOS SÓLIDOS – INFORMÁTICA/2019)


No que diz respeito a ferramentas de desenvolvimento, julgue o item a seguir.
O PostgreSQL é um sistema gerenciador de banco de dados objeto-relacional (ORDBMS) que
oferece suporte a tipos de dados especializados como o JSon e o JSonb.

Isso mesmo! Trata-se de um SGBD objeto-relacional (ORDBMS), com ênfase em extensibilidade


e em padrões de conformidade. Ele suporta JSon e Jsonb.
Certo.

Oracle

• Toda vez que um banco de dados é iniciado, uma área global de sistema é alocada e os
processos background são iniciados.
• System Global Area (SGA) é uma região de memória compartilhada que contém os
dados e informações de controle para uma instância Oracle.
− O Oracle aloca a SGA quando uma instância é iniciada e desaloca quando a instância
é finalizada.
− Cada instância tem seu próprio SGA.
• Quando uma instância é iniciada, o SGBD Oracle 11g aloca uma área de memória e
inicia processos de background. A memória alocada para variáveis de sessão, como
informações de logon e outras informações necessárias por uma sessão do banco de
dados, é a: User Global Area.
• Uma estrutura física de bancos de dados ORACLE inclui datafiles, redo log files e control
files.
• Os elementos básicos do Scheduler (Agendador) são: Programas, Jobs e Schedules.
• Uma transação no SGDB Oracle só é encerrada mediante os comandos COMMIT (efetiva
a transação) ou ROLLBACK (desfaz a transação). Dentro de uma transação, é permitida
a marcação de SAVEPOINTs, que podem servir para dividir uma transação longa em
partes menores, e, por exemplo, desfazer uma transação a partir do momento atual até
determinado savepoint (o restante da transação permaneceria intacto)
• (https://docs.oracle.com/cd/B28359_01/server.111/b28318/transact.htm).
• Os processos em um sistema de banco de dados Oracle podem ser classificados em:
− Processos de usuário: executam o aplicativo ou ferramenta de código Oracle.
− Processos de banco de dados Oracle: executam o código do servidor de banco de
dados Oracle. Eles incluem os processos do servidor e os processos em segundo
plano.
• Na arquitetura do SGBD Oracle, existem os processos executados em background
mandatórios e opcionais.

O conteúdo deste livro eletrônico é licenciado para EDSON LUCIANO DE OLIVEIRA VIGILATO - 03749324174, vedada, por quaisquer meios e a qualquer título,
a sua reprodução, cópia, divulgação ou distribuição, sujeitando-se aos infratores à responsabilização civil e criminal.

www.grancursosonline.com.br 52 de 127
TECNOLOGIA DA INFORMAÇÃO
Banco de Dados Relacionais – Parte V
Patrícia Lima Quintão

− Os processos obrigatórios estão presentes em todas as configurações de banco


de dados típicos. São executados por padrão em uma instância de banco de dados
iniciada com um arquivo de parâmetros de inicialização minimamente configurado.
Exemplos de processos de fundo obrigatórios: Process Monitor Process (PMON),
System Monitor Process (SMON), Database Writer Process (DBWn), Log Writer
Process (LGWR), Checkpoint Process (CKPT), Manageability Monitor Processes
(MMON and MMNL) e Recoverer Process (RECO).
− Os principais processos opcionais são: Archiver Processes (ARCn), Job Queue
Processes (CJQ0 and Jnnn), Flashback Data Archiver Process (FBDA) e Space
Management Coordinator Process (SMCO).
• A ferramenta LogMiner é uma solução ORACLE disponível ao administrador de bancos
de dados para gerenciar erros humanos.
• No Oracle 11g, os advisors são desenvolvidos com base em componentes de
infraestrutura, sendo um deles o Automatic Workload Repository (AWR), que fornece
serviços para coletar, manter e utilizar estatísticas para fins de detecção de problemas e
autoajuste e onde as informações estatísticas são armazenadas na forma de snapshots.
• O dicionário de dados é estruturado em tabelas e visões, assim como outros dados de
banco de dados. Todas as tabelas de dicionário de dados e visões para um determinado
banco são armazenadas no espaço de tabela (tablespace) SYSTEM desse banco de
dados.
• O módulo de nuvem do Oracle Secure Backup é implementado por meio da interface
SBT do Oracle Recovery Manager (RMAN). A interface SBT permite que bibliotecas de
backup externas sejam perfeitamente integradas com este recurso. Consequentemente,
os administradores do banco de dados podem continuar a usar suas ferramentas de
backup existentes para realizar backups em nuvem.
• O Oracle Secure Backup aproveita a capacidade do RMAN para criptografar backups e
garantir a segurança dos dados. A segurança e a privacidade dos dados são especialmente
importantes em ambientes compartilhados, acessíveis publicamente, como a nuvem de
armazenamento.
• Oracle Database tem dois tipos de privilégios:
− privilégio de sistema, que pode ser concedido/revogado pelo DBA (CREATE TABLE,
ALTER USER, CREATE TRIGGER); e
− privilégio de objetos de schema, concedido/revogado pelo proprietário do objeto
(SELECT, INSERT, UPDATE).
• As unidades de alocação de espaço do banco de dados são blocos de dados, extensões
e segmentos.

O conteúdo deste livro eletrônico é licenciado para EDSON LUCIANO DE OLIVEIRA VIGILATO - 03749324174, vedada, por quaisquer meios e a qualquer título,
a sua reprodução, cópia, divulgação ou distribuição, sujeitando-se aos infratores à responsabilização civil e criminal.

www.grancursosonline.com.br 53 de 127
TECNOLOGIA DA INFORMAÇÃO
Banco de Dados Relacionais – Parte V
Patrícia Lima Quintão

− Data blocks: no nível mais refinado de granularidade, o Oracle Database armazena


dados em blocos de dados (também chamados de blocos lógicos, blocos do Oracle
ou páginas). Um bloco de dados corresponde a um número específico de bytes do
espaço físico do banco de dados no disco.
− Extents: o próximo nível de espaço lógico do banco de dados é uma extensão – um
número específico de blocos de dados contíguos alocados para armazenar um tipo
específico de informação.
− Segments: o nível de armazenamento lógico do banco de dados maior que uma
extensão é chamado de segmento. Um segmento é um conjunto de extensões, cada
uma das quais foi alocada para uma estrutura de dados específica e todas elas são
armazenadas no mesmo espaço de tabela.

MySQL

• SGBD que utiliza a linguagem SQL como interface.


• Fornece um servidor de banco de dados SQL muito rápido, multithread, multiusuário e
robusto.
• O MySQL é Dual Licensed: os usuários podem optar por usá-lo como um produto de
código aberto sob os termos da Licença Pública Geral GNU ou podem adquirir uma
licença comercial padrão da Oracle.
• Enquanto software livre, o MySQL teve seu crescimento estimulado pelo pacote LAMP
(Linux, Apache, MySQL e PHP). Hoje é possível usar a versão MySQL Community Edition
que continua sobre a guarda da licença GPL.
• É atualmente um dos SGBDs mais populares da Oracle Corporation.
• São várias as possibilidades de engines que tem compatibilidade com a arquitetura
do MySQL. Exs: MyISAM, InnoDB, NDB, Archive, Federated, Memory, Merge, Partner,
Community, Custom, CSV etc. InnoDB é o mecanismo de armazenamento padrão a
partir do MySQL 5.5.
• Link para fazer o download do MySQL: https://dev.mysql.com/downloads/installer/
• As versões que continuam com o desenvolvimento ativo hoje são MySQL Server 5.5,
MySQL Server 5.6, MySQL Server 5.7 e MySQL Server 8.0. As outras foram descontinuadas,
apesar de continuarem existindo como SGBDs para diversas aplicações.
• O utilitário cliente mysqldump executa backups lógicos, produzindo um conjunto de
instruções SQL que podem ser executados para reproduzir as definições de objeto do
banco de dados original e dos dados da tabela.
• Arquitetura do mecanismo de armazenamento do MySQL:

O conteúdo deste livro eletrônico é licenciado para EDSON LUCIANO DE OLIVEIRA VIGILATO - 03749324174, vedada, por quaisquer meios e a qualquer título,
a sua reprodução, cópia, divulgação ou distribuição, sujeitando-se aos infratores à responsabilização civil e criminal.

www.grancursosonline.com.br 54 de 127
TECNOLOGIA DA INFORMAÇÃO
Banco de Dados Relacionais – Parte V
Patrícia Lima Quintão

− Um pool de conexão (Connection Pool) no servidor fornece autenticação e gerencia


threads, conexões, memória e caches.
− Conectores (Connectors): o MySQL fornece drivers baseados em diversos padrões
para JDBC, ODBC e.Net, que permitem aos desenvolvedores criarem aplicativos de
BD na linguagem de sua preferência. Além disso, uma biblioteca nativa em C (Native
C API) permite aos desenvolvedores incorporar instruções de MySQL diretamente
em suas aplicações.
− Management Services & Utilities: responsável por diversas atividades, como
gerenciamento de armazenamento, de transações e da recuperação etc.
− Utilitários: divididos em diversas categorias que incluem:
o Utilitários de administração (Clone, Copy, Compare, Diff, Export, Import, User
Management),
o utilitários de replicação (Setup, Configuration, Verification) e
o utilitários de uso geral (Disk Usage, Redundant Indexes, Manage Meta & Audit Data).
• O MySQL Utilities é um pacote de utilitários voltados à manutenção e à administração
de servidores MySQL. Cada um desses utilitários encapsula comandos primitivos e os
agrupa para que possam ser utilizados no cumprimento de operações compostas a
partir da execução de um único comando.

Microsoft SQL Server

• É um SGBD desenvolvido pela Microsoft.


• Algumas edições do SQL Server:

O conteúdo deste livro eletrônico é licenciado para EDSON LUCIANO DE OLIVEIRA VIGILATO - 03749324174, vedada, por quaisquer meios e a qualquer título,
a sua reprodução, cópia, divulgação ou distribuição, sujeitando-se aos infratores à responsabilização civil e criminal.

www.grancursosonline.com.br 55 de 127
TECNOLOGIA DA INFORMAÇÃO
Banco de Dados Relacionais – Parte V
Patrícia Lima Quintão

Edição mais básica, gratuita, indicada para


pequenas empresas e desenvolvedores
•Express
independentes, que criam aplicações baseadas
em BD.

Inclui as funcionalidades da versão Enterprise, mas é


•Desenvolvedor licenciado apenas para uso em ambiente de testes e
desenvolvimento.

Usada para hospedagem e gerenciamento de dados


•Web em sites diversos.

Oferece recursos de gerenciamento, com algumas


•Standard funcionalidades referentes a BI, além de ferramentas
para suporte ao uso local e na nuvem.

Versão mais completa do produto, com recursos de


gerenciamento do banco de dados e otimização
•Enterprise de desempenho. Ideal para grandes corporações, que
necessitam gerenciar BD com milhões de registros e
acessos constantes.
• Data Collector: é o componente do SQL Server que tem a função de coletar diferentes
conjuntos de dados, de maneira contínua ou em um agendamento definido pelo usuá-
rio. Ele provê um ponto central para coleta de dados no SQL Server.
• Na instalação do SQL Server, são instalados três conjuntos para coleta de dados do
funcionamento do SGDB (Utilização do Disco, Estatísticas de consultas, Atividade do
servidor), e o Data Collector provê um relatório histórico para cada um destes conjuntos
de dados, que podem ser utilizados para apoiar a manutenção do SGDB. Mas para
monitoramento e análise de desempenho do SQL Server, principalmente em tempo real,
o Data Collector e seus relatórios históricos não são obrigatórios.
• A unidade fundamental de armazenamento de dados no SQL Server é a página. O
tamanho da página é de 8 KB. Os BD SQL Server têm 128 páginas por megabyte. Cada
página começa com um cabeçalho de 96 bytes usado para armazenar informações
de sistema sobre a página. Essas informações incluem o número de página, o tipo de
página, a quantidade de espaço livre na página e a ID de unidade de alocação do objeto
que possui a página.
• Os arquivos de log não contêm páginas; possuem uma série de registros de log.
• O SQL Server tem dois tipos de extensões, a saber: extensões uniformes (que pertencem
a um único objeto) e extensões mistas (compartilhadas por até oito objetos).
• Um administrador do banco de dados Microsoft SQL Server não deve excluir ou mover
o log de transações, pois se houver uma falha do sistema, será necessário que o log de
transações retorne o banco de dados a um estado consistente.

O conteúdo deste livro eletrônico é licenciado para EDSON LUCIANO DE OLIVEIRA VIGILATO - 03749324174, vedada, por quaisquer meios e a qualquer título,
a sua reprodução, cópia, divulgação ou distribuição, sujeitando-se aos infratores à responsabilização civil e criminal.

www.grancursosonline.com.br 56 de 127
TECNOLOGIA DA INFORMAÇÃO
Banco de Dados Relacionais – Parte V
Patrícia Lima Quintão

• Pode processar instruções Transact-SQL usando dois modos de processamento


diferentes:
− Execução em modo de linha: método de processamento de consulta usado com
tabelas RDMBS tradicionais, nas quais os dados são armazenados em formato de
linha.
− Execução em modo de lote: método de processamento de consulta usado para
processar várias linhas simultaneamente.
• Os tipos de dados em SQL Server são organizados nas seguintes categorias:
− Numéricos exatos
− Cadeias de caracteres
− Unicode
− Numéricos aproximados
− Cadeia de caracteres binária
− Data e hora
− Outros tipos de dados
− Cadeias de caracteres
• Avaliação de Vulnerabilidades (VA) SQL: ajuda a descobrir, controlar e corrigir possíveis
vulnerabilidades do banco de dados.
• Permite que administradores e desenvolvedores escolham entre diversos algoritmos,
incluindo DES, Triple DES, TRIPLE_DES_3KEY, RC2, RC4, RC4 de 128 bits, DESX, AES de
128 bits, AES de 192 bits e AES de 256 bits.
• O utilitário bcp (bulk copy program) copia dados em massa entre uma instância do
Microsoft SQL Server e um arquivo de dados em um formato especificado pelo usuário.
• Analysis Services é um mecanismo de dados analíticos usado na análise de negócios e
suporte de decisão.
• O DQS (SQL Server Data Quality Services) permite criar uma base de dados de
conhecimento e usá-la para executar uma variedade de tarefas críticas de qualidade de
dados, inclusive correção, enriquecimento, padronização e eliminação de duplicação de
seus dados.
• O SQL Server Management Studio (SSMS) é um ambiente integrado para gerenciar
qualquer infraestrutura SQL. Use o SSMS para acessar, configurar, gerenciar, administrar
e desenvolver todos os componentes do SQL Server, do Banco de Dados SQL do Azure
e do SQL Data Warehouse.
• Microsoft SQL Server Profiler é uma interface gráfica do usuário que o Rastreamento
do SQL usa para monitorar uma instância do Mecanismo de Banco de Dados ou do
Analysis Services.
• SQL Server Utility: fornece uma visão holística da integridade dos recursos do SQL
Server por meio de uma instância do SQL Server que funciona como um UCP (ponto de
controle do utilitário).

O conteúdo deste livro eletrônico é licenciado para EDSON LUCIANO DE OLIVEIRA VIGILATO - 03749324174, vedada, por quaisquer meios e a qualquer título,
a sua reprodução, cópia, divulgação ou distribuição, sujeitando-se aos infratores à responsabilização civil e criminal.

www.grancursosonline.com.br 57 de 127
TECNOLOGIA DA INFORMAÇÃO
Banco de Dados Relacionais – Parte V
Patrícia Lima Quintão

Enterprise DB

• O Postgres Plus Advanced Server da EnterpriseDB pode executar aplicações escritas


para bancos de dados Oracle, por intermédio do núcleo do PostgreSQL modificado, para
reconhecer Oracle PL/SQL.
• No postgreSQL, cada tabela é armazenada como uma matriz de páginas de tamanho
fixo (geralmente 8 KB).
• Em uma tabela, todas as páginas são logicamente equivalentes, portanto, um determinado
item (linha) pode ser armazenado em qualquer página.
• No PostgreSQL, a principal unidade de armazenamento é uma tabela, sendo as tabelas
armazenadas em arquivos de heap.
• Os arquivos heap são listas de registros não ordenados de tamanho variável. O arquivo
heap é estruturado como uma coleção de páginas (ou bloco), cada uma contendo uma
coleção de itens. O termo item se refere a uma linha armazenada em uma página.

O conteúdo deste livro eletrônico é licenciado para EDSON LUCIANO DE OLIVEIRA VIGILATO - 03749324174, vedada, por quaisquer meios e a qualquer título,
a sua reprodução, cópia, divulgação ou distribuição, sujeitando-se aos infratores à responsabilização civil e criminal.

www.grancursosonline.com.br 58 de 127
TECNOLOGIA DA INFORMAÇÃO
Banco de Dados Relacionais – Parte V
Patrícia Lima Quintão

RESUMO
A tabela-resumo seguinte destaca comandos principais da linguagem, MUITO cobrados
em provas!

Linguagem Comando Descrição

DDL – Data Create Cria objetos na base de dados.


Definition
Language ou Alter Altera a estrutura de um objeto da base.
Linguagem de
Definição de Drop Elimina determinado objeto da base de dados.
Dados

DML – Data Select Seleciona dados de uma base de dados.


Manipulation
Insert Insere linhas em uma tabela.
Language ou
Linguagem de Update Altera os valores das linhas de uma tabela.
Manipulação
de Dados Delete Exclui linhas em uma tabela.

DCL – Data Fornece permissão de acesso em objetos do banco de


Grant
Control dados.
Language ou
Linguagem de Retira permissão de acesso em objetos do banco de
Controle de Revoke
dados.
Dados
Efetiva (torna permanente!) as alterações feitas na
Commit
base de dados.

DTL -Data Defaz, em caso de falha do sistema, qualquer


Transaction alteração que ainda não tenha sido efetivada, de
Language ou modo que a integridade do banco de dados seja
Rollback
Linguagem de mantida. Permite também ao usuário desfazer
Transação de qualquer alteração feita no banco de dados antes que
Dados tenha sido executado um comando COMMIT.

Estabelece pontos de retorno dentro de uma


Savepoint
transação.
• Uma consulta aninhada é uma consulta secundária embutida dentro de uma consulta
principal. Esta consulta embutida também é chamada de subconsulta.
• Em SQL, uma consulta é aninhada quando ela está dentro de outra consulta SQL.

Uma Restrição de Integridade (RI) descreve as condições que cada instância legal de uma
relação deve satisfazer.

O conteúdo deste livro eletrônico é licenciado para EDSON LUCIANO DE OLIVEIRA VIGILATO - 03749324174, vedada, por quaisquer meios e a qualquer título,
a sua reprodução, cópia, divulgação ou distribuição, sujeitando-se aos infratores à responsabilização civil e criminal.

www.grancursosonline.com.br 59 de 127
TECNOLOGIA DA INFORMAÇÃO
Banco de Dados Relacionais – Parte V
Patrícia Lima Quintão

Inserts/deletes/updates que violam RI’s não são permitidas.


Podem ser usadas para assegurar a semântica da aplicação (ie., cod_autor é uma chave),
ou prevenir inconsistências (ie., titulo tem que ser um string).
Tipos de RI’s: restrições de domínios, restrições de chave primária, restrições de chave
estrangeira, restrições gerais.
NOT NULL especifica que uma coluna não pode receber valores nulos.
UNIQUE define que uma coluna não pode ter valores duplicados.
DEFAULT atribui um valor padrão para uma determinada coluna a ser utilizado, caso nenhum
valor seja passado como parâmetro no momento da inserção.
Veja mais: https://www.inf.ufsc.br/~mario.dantas/cap6.pdf

Mais observações/exemplos sobre SQL, IMPORTANTES para fixação.

Figura. SQL. Fonte: Clube dos Mapas por @paola.tuzani

O conteúdo deste livro eletrônico é licenciado para EDSON LUCIANO DE OLIVEIRA VIGILATO - 03749324174, vedada, por quaisquer meios e a qualquer título,
a sua reprodução, cópia, divulgação ou distribuição, sujeitando-se aos infratores à responsabilização civil e criminal.

www.grancursosonline.com.br 60 de 127
TECNOLOGIA DA INFORMAÇÃO
Banco de Dados Relacionais – Parte V
Patrícia Lima Quintão

Figura. SQL. Fonte: Clube dos Mapas por @paola.tuzani

Figura. SQL. Fonte: Clube dos Mapas por @paola.tuzani

O conteúdo deste livro eletrônico é licenciado para EDSON LUCIANO DE OLIVEIRA VIGILATO - 03749324174, vedada, por quaisquer meios e a qualquer título,
a sua reprodução, cópia, divulgação ou distribuição, sujeitando-se aos infratores à responsabilização civil e criminal.

www.grancursosonline.com.br 61 de 127
TECNOLOGIA DA INFORMAÇÃO
Banco de Dados Relacionais – Parte V
Patrícia Lima Quintão

DROP x DELETE X TRUNCATE:


O comando DROP remove a tabela inteira da base de dados que inclui a sua estrutura e
registros. Veja exemplo:
drop table teste;
O comando DELETE remove os registros e a estrutura da tabela permanece a mesma.
Podemos deletar apenas algumas linhas usando a cláusula WHERE. Usando o comando
DELETE podemos reverter a operação com o comando ROLLBACK. Veja exemplo:
delete from teste
where x=10;
rollback;
o comando TRUNCATE TABLE irá remover TODAS as linhas de uma tabela sem registrar as
exclusões de linhas individuais. O TRUNCATE TABLE funciona como uma instrução DELETE,
mas sem usar a cláusula WHERE.
Veja exemplo:
truncate table teste;

O conteúdo deste livro eletrônico é licenciado para EDSON LUCIANO DE OLIVEIRA VIGILATO - 03749324174, vedada, por quaisquer meios e a qualquer título,
a sua reprodução, cópia, divulgação ou distribuição, sujeitando-se aos infratores à responsabilização civil e criminal.

www.grancursosonline.com.br 62 de 127
TECNOLOGIA DA INFORMAÇÃO
Banco de Dados Relacionais – Parte V
Patrícia Lima Quintão

QUESTÕES COMENTADAS EM AULA


001. (CESPE/TCE-ES/ANALISTA ADMINISTRATIVO/INFORMÁTICA/2013) O conjunto de
operações cujo resultado seja uma nova relação e que envolve seleção, projeção, união e
produto cartesiano é denominado:
a) mapeamento de cardinalidades.
b) álgebra relacional.
c) generalização.
d) chave primária
e) herança.

002. (CESPE/CEHAP-PB/PROGRAMADORDECOMPUTADOR/2009) A álgebra relacional é a


base matemática de bancos de dados relacionais. A álgebra relacional pode ser definida como
linguagem de consulta formal e procedimental. Para banco de dados, podem ser utilizadas
diversas operações provenientes da teoria de conjuntos. A seleção (select), em banco de
dados relacional, e:
a) o resultado de todas as tuplas que pertencem as relações presentes em uma operação.
b) uma relação que parte de duas outras, levando as tuplas comuns e não-comuns a ambas.
c) utilizada para escolher subconjunto de tuplas em uma relação que satisfaça condição de
seleção predefinida.
d) executada em apenas uma relação, e o resultado e uma nova relação.

003. (VUNESP/MPE-ES/AGENTE ESPECIALIZADO/ANALISTA DE BANCO DE DADOS/2013)


Dentre os diversos tipos de operações disponibilizadas em um banco de dados relacional está,
por exemplo, a realização de consultas sobre valores armazenados em tabelas. A operação
que consiste em definir quais devem ser as colunas a serem exibidas em uma consulta e a
a) divisão.
b) multiplexação.
c) projeção.
d) seleção.
e) união.

004. (CCV-UFC/UFC/ANALISTA DE TECNOLOGIA DA INFORMAÇÃO/2018) De acordo com


a álgebra relacional, marque a opção que contenha apenas operações fundamentais.
a) Divisão, seleção, diferença.
b) Agregação, projeção, união.
c) Junção natural, seleção, projeção.
d) Seleção, projeção, produto cartesiano.
e) Interseção, produto cartesiano, junção natural.

O conteúdo deste livro eletrônico é licenciado para EDSON LUCIANO DE OLIVEIRA VIGILATO - 03749324174, vedada, por quaisquer meios e a qualquer título,
a sua reprodução, cópia, divulgação ou distribuição, sujeitando-se aos infratores à responsabilização civil e criminal.

www.grancursosonline.com.br 63 de 127
TECNOLOGIA DA INFORMAÇÃO
Banco de Dados Relacionais – Parte V
Patrícia Lima Quintão

005. (FIP/CÂMARA MUNICIPAL DE SÃO JOSÉ DOS CAMPOS-SP/PROGRAMADOR/2009)


Em um banco de dados relacional, duas tabelas foram concatenadas de forma a atender uma
determinada condição. O resultado dessa operação representa a operação relacional de:
a) união.
b) projeção.
c) seleção.
d) intersecção.
e) junção.

006. (FCC/MPE-RS/TÉCNICO EM INFORMÁTICA/ÁREA DE SISTEMAS/2008) Quando dois


conjuntos de dados são concatenados de acordo com uma determinada condição, representa
o resultado da operação relacional:
a) junção.
b) união.
c) restrição.
d) projeção.
e) intersecção.

007. (NCE/UFRJ/ANALISTA DE TECNOLOGIA DA INFORMAÇÃO BANCO DE DADOS/2010)


Dadas duas relações A e B do mesmo tipo, uma relação de tipo igual, cujo conteúdo contém
todas as tuplas que aparecem tanto em A quanto em B, será obtida por meio da operação
relacional:
a) união.
b) interseção.
c) projeção.
d) junção.
e) produto cartesiano.

008. (AOCP/TCE-PA/ASSESSOR TÉCNICO DE INFORMÁTICA) Em banco de dados, a


diferença entre duas instâncias e:
a) o conjunto de todas as instancias i pertencentes a A ou B ou ambos, quando A e B possuem
uma união compatível.
b) o conjunto de todas as instancias i pertencentes a A e B, quando A e B possuem uma união
compatível.
c) o conjunto de todas as instancias i pertencentes a A mas não pertencentes a B, quando A e
B possuem uma união compatível.
d) o conjunto de todas as instancias i, quando i e a concatenação de uma instancia x de A com
uma instancia y de B.
e) o conjunto de valores n, tais que os pares (n, m) aparecem em A para todos os valores m que
aparecem em B.

O conteúdo deste livro eletrônico é licenciado para EDSON LUCIANO DE OLIVEIRA VIGILATO - 03749324174, vedada, por quaisquer meios e a qualquer título,
a sua reprodução, cópia, divulgação ou distribuição, sujeitando-se aos infratores à responsabilização civil e criminal.

www.grancursosonline.com.br 64 de 127
TECNOLOGIA DA INFORMAÇÃO
Banco de Dados Relacionais – Parte V
Patrícia Lima Quintão

009. (FCC/MPE-MA/ANALISTA MINISTERIAL/BANCO DE DADOS/2013) Em um banco de


dados relacional, a atividade de normalizar suas tabelas tem como objetivo
a) gerar os triggers especificados para o banco de dados.
b) eliminar, ou pelo menos diminuir redundâncias de dados desnecessárias nessas tabelas.
c) impedir o acesso ao banco de dados, por parte de usuários desconhecidos.
d) compilar todas as funções inseridas no banco de dados.
e) preparar todas as tabelas do banco de dados para um backup completo.

010. (CESPE/TRE-BA/TÉCNICO JUDICIÁRIO/TELECOMUNICAÇÕES E


ELETRICIDADE/2010) Uma linguagem de acesso a bancos de dados relacionais amplamente
usada é o SQL.

011. (FCC/TCE-SE/ANALISTA DE CONTROLE EXTERNO/COORDENADORIA DE


INFORMÁTICA/2011) Durante a criação de uma tabela – Create Table, em SQL, deseja-se
especificar que uma coluna só possa incluir, por exemplo, valores maiores que zero. Uma
constraint utilizada para isso é
a) Verify.
b) Check.
c) Max.
d) Avg.
e) Having.

012. (ESAF/ANA/ANALISTA ADMINISTRATIVO/TECNOLOGIA DA INFORMAÇÃO/


DESENVOLVIMENTO/2009) Em SQL, a cláusula check aplicada a uma declaração de domínio
a) permite especificar um predicado que deve ser satisfeito por qualquer valor atribuído a uma
variável de determinado domínio.
b) especifica um predicado que deve ser satisfeito por uma tupla em uma relação.
c) proíbe a inserção de um valor nulo para as variáveis do domínio.
d) verifica se os atributos considerados formam uma chave candidata.
e) não tem efeito, pois não se aplica esta cláusula a declarações de domínio.

013. (CESPE/FUB/2018) Julgue o item subsecutivo, a respeito de linguagem de definição e


manipulação de dados.
O comando DROP TABLE permite excluir do banco de dados a definição de uma tabela e de
todos os seus dados.

014. (CESPE/MEC/2015) Com relação à linguagem de definição de dados (DDL) e à linguagem


de manipulação de dados (DML), julgue o próximo item. A DML utiliza o comando CREATE para
inserir um novo registro na tabela de dados.

O conteúdo deste livro eletrônico é licenciado para EDSON LUCIANO DE OLIVEIRA VIGILATO - 03749324174, vedada, por quaisquer meios e a qualquer título,
a sua reprodução, cópia, divulgação ou distribuição, sujeitando-se aos infratores à responsabilização civil e criminal.

www.grancursosonline.com.br 65 de 127
TECNOLOGIA DA INFORMAÇÃO
Banco de Dados Relacionais – Parte V
Patrícia Lima Quintão

015. (CESPE/TJ-SE/2014) Julgue os itens seguintes, acerca da segurança e do tuning de


banco de dados. Para cancelar os privilégios de um usuário a uma tabela do banco de dados,
devese utilizar o comando REVOKE.

016. (CESPE/STM/2011) Os comandos do grupo DDL (Data Definition Language) do SQL


permitem gerar os dados das tabelas que formam um banco de dados.

017. (UFPR/ITAIPU/2015) Sobre a Linguagem SQL (DDL e DML), assinale a alternativa correta
segundo o padrão SQL ANSI 92.
a) Insert, Delete e Update são operações DDL.
b) Inner join, left outer join, right outer join, full outer join e cross join são cláusulas de junções
suportadas pelo padrão.
c) Modify Table e Truncate Table são operações DDL.
d) ADD, EXISTS, BETWEEN, LIKE, IS e IN são operadores relacionais válidos segundo o padrão.
e) CASE, NVL, TRIM e UPPER são operações DDL.

018. (FCC/DPE-AM/ANALISTA EM GESTÃO ESPECIALIZADO DE DEFENSORIA – ANALISTA


DE BANCO DE DADOS/2018) No sistema gerenciador de banco de dados PostgreSQL 8 é
possível configurar diversos parâmetros de funcionamento por meio da edição do arquivo
a) postgresql.data.
b) pgsql.gz.
c) pgsql.java.
d) pgsql.prog.
e) postgresql.conf.

019. (CESPE/ABIN/OFICIAL TÉCNICO DE INTELIGÊNCIA – ÁREA 8/2018) A respeito de


sistemas gerenciadores de banco de dados, julgue o próximo item.
No arquivo pg_hba.conf de configuração do PostgreSQL, as diretivas são avaliadas a partir da
linha superior, para a linha inferior.

020. (CESPE/TJ-DFT/ANALISTA JUDICIÁRIO – SUPORTE EM TECNOLOGIA DA


INFORMAÇÃO/2015) A respeito da configuração e da administração de sistemas gerenciadores
de bancos de dados (SGBD) e de produtos a eles relacionados, julgue o item a seguir.
No PostgreSQL, mesmo usando-se o parâmetro de configuração listen_address = ‘*’, é possível
controlar os usuários que poderão se conectar ao banco de dados.

021. (CESPE/SLU-DF/ANALISTA DE GESTÃO DE RESÍDUOS SÓLIDOS – INFORMÁTICA/2019)


No que diz respeito a ferramentas de desenvolvimento, julgue o item a seguir.
O PostgreSQL é um sistema gerenciador de banco de dados objeto-relacional (ORDBMS) que
oferece suporte a tipos de dados especializados como o JSon e o JSonb.
O conteúdo deste livro eletrônico é licenciado para EDSON LUCIANO DE OLIVEIRA VIGILATO - 03749324174, vedada, por quaisquer meios e a qualquer título,
a sua reprodução, cópia, divulgação ou distribuição, sujeitando-se aos infratores à responsabilização civil e criminal.

www.grancursosonline.com.br 66 de 127
TECNOLOGIA DA INFORMAÇÃO
Banco de Dados Relacionais – Parte V
Patrícia Lima Quintão

QUESTÕES DE CONCURSO
022. (CESPE/EBSERH/ANALISTA DE TECNOLOGIA DA INFORMAÇÃO/2018) Com relação
a banco de dados, julgue o item seguinte. Em normalização, a primeira forma normal é
caracterizada por uma tabela com a existência obrigatória de uma chave primária e uma chave
estrangeira.

Em um projeto de banco de dados relacional o conceito de chave primária e chave estrangeira


é um dos principais pilares para manter a integridade dos dados e não está diretamente
relacionado à primeira forma normal (1FN). Isso quer dizer que mesmo tendo uma tabela
desnormalizada ela ainda precisa das chaves primária (identificar de maneira única o registro)
e estrangeira (realizar a relacionamento entre os registros).
Uma tabela está na 1FN se, e somente se, todos os valores das colunas (todos os atributos)
forem atômicos. Assim, a 1FN diz que um atributo não pode conter múltiplos valores (não
pode possuir atributos multivalorados nem compostos).
Imagine o atributo ENDERECO que é composto pelo nome da rua, bairro e cidade. Várias
informações em um único campo não podem existir (viola a 1FN). Nesse contexto, o valor do
atributo deve ser indivisível ou único.
Conforme visto, o item da questão está errado!
Errado.

023. (VUNESP/TJM-SP/TÉCNICO DE COMUNICAÇÃO E PROCESSAMENTO DE


DADOS/2017) Considere a seguinte estrutura de uma tabela de um banco de dados relacional:
Teste (Chave, Nome, Peso, Profissão); e um resultado de uma consulta feita a essa tabela:

Uma consulta SQL que tem como resultado a tabela acima apresentada é
a)SELECT *
FROM Teste WHERE
Profissão LIKE ‘%a%
b)SELECT Peso, Profissão
FROM Teste
HAVING Profissão ORDER BY Desc
c)SELECT Profissão, Peso

O conteúdo deste livro eletrônico é licenciado para EDSON LUCIANO DE OLIVEIRA VIGILATO - 03749324174, vedada, por quaisquer meios e a qualquer título,
a sua reprodução, cópia, divulgação ou distribuição, sujeitando-se aos infratores à responsabilização civil e criminal.

www.grancursosonline.com.br 67 de 127
TECNOLOGIA DA INFORMAÇÃO
Banco de Dados Relacionais – Parte V
Patrícia Lima Quintão

FROM Teste
WHERE Peso BETWEEN 65 and 75
d)SELECT Chave, Profissão, Peso
FROM Teste
OCULT Chave
e)SELECT Chave, Profissão, Peso
FROM Teste
SHOW Profissão, Peso

Os campos exibidos como resultados são somente Profissão e Peso, respectivamente. Deste
modo, eles precisam aparecer na consulta logo após o comando SELECT indicando o nome
dos campos ou colunas da tabela.
A condição na cláusula WHERE é que o valor de Peso esteja no intervalo de 65 – 75 e para isso
usamos a cláusula BETWEEN (entre) os valores passados na consulta.
Observe que as restrições ou predicados em uma consulta SQL devem aparecer na cláusula
WHERE. Para compor as restrições, podemos usar a cláusula BETWEEN, que nos permite se-
lecionar intervalos de dados ao retornar os resultados de uma consulta.
A sintaxe para uso da cláusula BETWEEN é a seguinte:
SELECT colunas FROM tabela
WHERE coluna BETWEEN valor1 AND valor2;
Usamos o operador lógico AND para auxiliar na criação do código de consulta.
Letra c.

024. (VUNESP/MPE-SP/ANALISTA TÉCNICO CIENTÍFICO – ENGENHEIRO DE


COMPUTAÇÃO/2016) Considere a seguinte tabela de um banco de dados relacional:
Funcionário (ID, Nome, Função, Salário)
O comando SQL para obter a média dos salários agrupados por Função, apenas para médias
superiores a R$ 2.000,00 é
SELECT Função, AVG (Salário)
FROM Funcionário
GROUP BY Função
X – AVG(Salário) > 2000,00
Para que a consulta atenda ao especificado, o valor de X deve ser substituído por:
a) CASCADE
b) HAVING
c) ORDER BY
d) TOTAL
e) WHERE

O conteúdo deste livro eletrônico é licenciado para EDSON LUCIANO DE OLIVEIRA VIGILATO - 03749324174, vedada, por quaisquer meios e a qualquer título,
a sua reprodução, cópia, divulgação ou distribuição, sujeitando-se aos infratores à responsabilização civil e criminal.

www.grancursosonline.com.br 68 de 127
TECNOLOGIA DA INFORMAÇÃO
Banco de Dados Relacionais – Parte V
Patrícia Lima Quintão

O valor de X deve ser substituído pela cláusula HAVING que é aplicada às linhas no conjunto
de resultados. Só os grupos que atendem os parâmetros de HAVING são exibidos na saída
da consulta.
É importante lembrar que só aplicamos uma cláusula HAVING em colunas da tabela que também
são exibidas na cláusula GROUP BY ou em uma função de agregação (MIN, MAX, AVG etc.).
NOTAS
1)Consultas SQL:
SELECT[ DISTINCT| ALL] { * | <select list> }

FROM<table reference> [ {, <table reference> }. .. ]

[ WHERE<searchcondition> ]

[ GROUPBY<groupingspecification> ]

[ HAVING<searchcondition> ]

[ ORDERBY<ordercondition> ]
2)Observe a seguir exemplos de funções agregadas que operam sobre conjuntos de valores
de uma coluna de uma relação e retornam um valor para cada conjunto: COUNT (), SUM (), MIN
(), MAX (), AVG ().
Quando utilizamos funções agregadas, devemos utilizar o GROUP BY para os atributos na
cláusula SELECT que não aparecem como parâmetros nas funções agregadas e a opção
HAVING para predicados que são aplicados após a formação dos grupos.
Letra b.

025. (VUNESP/SAEG/ANALISTA DE SERVIÇOS ADMINISTRATIVOS – TECNOLOGIA


DA INFORMAÇÃO/2015) Um programador desenvolveu um formulário web em que os
dados digitados pelo usuário são concatenados a uma instrução SQL INSERT, que é enviada
diretamente ao Sistema Gerenciador de Banco de Dados.
Tal procedimento produz uma falha de segurança, pois permite que um usuário mal
intencionado insira
a) caracteres em codificação diversa da utilizada pelo banco de dados, causando erro na
visualização dos dados.
b) dados duplicados nas tabelas do banco de dados, causando conflitos de chave primária.
c) identificadores de elementos que não correspondem a registros existentes em outras
tabelas, violando a restrição da chave estrangeira.
d) instruções SQL nos campos do formulário para alterar o comportamento do sistema ou
danificá-lo.

O conteúdo deste livro eletrônico é licenciado para EDSON LUCIANO DE OLIVEIRA VIGILATO - 03749324174, vedada, por quaisquer meios e a qualquer título,
a sua reprodução, cópia, divulgação ou distribuição, sujeitando-se aos infratores à responsabilização civil e criminal.

www.grancursosonline.com.br 69 de 127
TECNOLOGIA DA INFORMAÇÃO
Banco de Dados Relacionais – Parte V
Patrícia Lima Quintão

e) tipos de dados incorretos nos campos do formulário, produzindo inconsistências na


base de dados.

SQL Injection é uma técnica que permite a um criminoso injetar comandos SQL nos campos
do formulário para alterar o comportamento do sistema ou danificá-lo. Dessa forma, o mesmo
consegue roubar informações importantes ou até mesmo apagá-las.
Do ponto de vista da segurança, SQL Injection é uma falha grave, que deve ser evitada. O
primeiro passo para isso é entender que os dados concatenados em um comando SQL podem
modificar sua lógica de execução.
A técnica fundamental para evitar o SQL Injection é remover qualquer comando SQL dos dados
informados pelo usuário da aplicação.
Letra d.

026. (VUNESP/CETESB/ANALISTA DE TECNOLOGIA DA INFORMAÇÃO – ADMINISTRADOR


DE BANCO DE DADOS/2013) Sistemas de Gerenciamento de Bancos de Dados desempenham
inúmeras funções. Dentre tais funções, é correto afirmar que esses sistemas
a) contêm software que permite a comunicação em tempo real por meio da internet.
b) implementam ferramentas de gestão de projetos como, por exemplo, gráficos de Gantt.
c) mantêm a integridade dos dados inseridos no banco de dados, por exemplo, impedindo a
duplicação do valor de chaves primárias.
d) possuem dicionários de línguas, permitindo a tradução imediata do conteúdo de qualquer
banco de dados.
e) são capazes de fazer a compilação de todas as linguagens de programação orientadas
a objetos.

Um sistema de gerenciamento de banco de dados (SGBD) possui vários recursos como


interpretar e compilar uma linguagem de banco de dados (exemplo: SQL), além de prover
segurança, controle de acesso e integridade dos dados armazenados.
Entre as restrições de integridade, as chaves primárias garantem que um registro ou instância
seja único em uma tabela no banco de dados. Isso elimina duplicação de registros e permite a
recuperação da informação.
Embora sejam vastas as atribuições dos SGBDs, eles não contêm por natureza softwares
que permitem comunicação em tempo real, não são ferramentas de gerência de projeto, não
possuem dicionários de línguas nem são capazes de compilar linguagens orientadas a objetos.
Deste modo, a alternativa correta é letra c.
Letra c.

O conteúdo deste livro eletrônico é licenciado para EDSON LUCIANO DE OLIVEIRA VIGILATO - 03749324174, vedada, por quaisquer meios e a qualquer título,
a sua reprodução, cópia, divulgação ou distribuição, sujeitando-se aos infratores à responsabilização civil e criminal.

www.grancursosonline.com.br 70 de 127
TECNOLOGIA DA INFORMAÇÃO
Banco de Dados Relacionais – Parte V
Patrícia Lima Quintão

027. (FUNIVERSA/IPHAN/ANALISTA – TECNOLOGIA DA INFORMAÇÃO/2009) A


linguagem SQL (Structured Query Language) foi desenvolvida para ser uma linguagem padrão,
independentemente do hardware ou software. Porém, ela é uma linguagem específica para
manipulação de
a) banco de dados.
b) arquivos de texto.
c) cálculos matemáticos.
d) imagens.
e) dados estatísticos.

A linguagem SQL é a linguagem para manipulação de banco de dados mais difundida nos dias
de hoje. Ela permite por exemplo efetuar consultas a banco de dados, definir a estrutura dos
dados, modificar dados em um banco e especificar restrições de segurança.
Letra a.

028. (FCC/PREFEITURA DE SÃO LUÍS-MA/AUDITOR-FISCAL DE TRIBUTOS I – TECNOLOGIA


DA INFORMAÇÃO (TI)/2018) Um Auditor está executando operações em uma tabela chamada
cidadao de um banco de dados aberto e em condições ideais. Para exibir os dados de todas
as pessoas que possuem na segunda letra do campo nome a vogal a, deve-se utilizar a
instrução SQL:
SELECT * FROM cidadao WHERE
a) nome = ‘*a’;
b) nome LIKE ‘_a%’;
c) nome CONTAINS(‘a’,2);
d) nome LIKE ‘*a’;
e) nome HAVE(2,’a’);

O operador “LIKE” é usado para buscar uma determinada string na linguagem SQL. Podemos
utilizar também o caractere “%” para indicar um “coringa”, ou seja, um texto qualquer que
pode aparecer no campo.
A alternativa B é correta, pois destaca qualquer coisa que apareça após a letra “a” % estando
ela na segunda posição (underline indicando a primeira posição).
Letra b.

029. (CESPE/TRE-PE/ANALISTA JUDICIÁRIO/ANÁLISE DE SISTEMAS/2017) Assinale a


opção que apresenta o comando SQL correto para se incluir um novo campo idcategoria do
tipo INT nos dados da tabela 3A6AAA, denominada tbproduto.

O conteúdo deste livro eletrônico é licenciado para EDSON LUCIANO DE OLIVEIRA VIGILATO - 03749324174, vedada, por quaisquer meios e a qualquer título,
a sua reprodução, cópia, divulgação ou distribuição, sujeitando-se aos infratores à responsabilização civil e criminal.

www.grancursosonline.com.br 71 de 127
TECNOLOGIA DA INFORMAÇÃO
Banco de Dados Relacionais – Parte V
Patrícia Lima Quintão

a)ALTER TABLE tbproduto INSERT idcategoria INT


ponto e vírgula
b)ALTER TABLE tbproduto ADD COLUMN idcategoria
INT ponto e vírgula
c)UPDATE TABLE tbproduto ADD COLUMN idcategoria
INT ponto e vírgula
d)ADD COLUMN idcategoria INT IN TABLE tbproduto
ponto e vírgula
e) UPDATE TABLE ADD COLUMN idcategoria INT
IN tbproduto ponto e vírgula

A sintaxe de SQL para adicionar um campo em uma tabela é:


ALTER TABLE nome_da_tabela ADD nome_da_coluna tipo_da_coluna;
Das alternativas, a que adiciona um campo chamado idcategoria é a letra B: ALTER TABLE
tbproduto ADD COLUMN idcategoria INT;
As outras alternativas estão com a sintaxe incorreta.
Letra b.

030. (CESPE/FUB/TÉCNICO DE TECNOLOGIA DA INFORMAÇÃO/2016) A respeito das


principais instruções da linguagem SQL, julgue o item subsecutivo. SELECT é uma instrução
de controle de banco de dados que permite recuperar o conteúdo de uma ou mais tabelas.

Conforme visto a seguir, select é uma instrução de manipulação de dados, usada para recuperar
dados do banco de dados.

Linguagem Comando Descrição

DML – Data Select Seleciona dados de uma base de dados.


Manipulation
Insert Insere linhas em uma tabela.
Language ou
Linguagem de Update Altera os valores das linhas de uma tabela.
Manipulação
de Dados Delete Exclui linhas em uma tabela.

O conteúdo deste livro eletrônico é licenciado para EDSON LUCIANO DE OLIVEIRA VIGILATO - 03749324174, vedada, por quaisquer meios e a qualquer título,
a sua reprodução, cópia, divulgação ou distribuição, sujeitando-se aos infratores à responsabilização civil e criminal.

www.grancursosonline.com.br 72 de 127
TECNOLOGIA DA INFORMAÇÃO
Banco de Dados Relacionais – Parte V
Patrícia Lima Quintão

Linguagem Comando Descrição

DCL – Data Fornece permissão de acesso em objetos do


Grant
Control banco de dados.
Language ou
Linguagem de Retira permissão de acesso em objetos do
Controle de Revoke
banco de dados.
Dados
A estrutura básica de uma consulta em SQL consiste em TRÊS cláusulas: SELECT, FROM e
WHERE. Assim, uma consulta típica em SQL tem a forma:
SELECT coluna1, coluna2,..., colunaN
FROM nome_da_tabela
WHERE condição;
• A cláusula SELECT relaciona as colunas que se quer presentes no resultado da consulta.
Usado para recuperar dados do banco de dados.
• A cláusula FROM associa a tabela ou tabelas que serão pesquisadas durante a avaliação
de uma expressão. Em outras palavras, é uma lista de relações a serem varridas na
execução da expressão.
• A cláusula WHERE consiste em um predicado envolvendo atributos da relação que
aparece na cláusula FROM.
Errado.

031. (CESPE/FUB/TÉCNICO DE TECNOLOGIA DA INFORMAÇÃO/2016) A respeito das


principais instruções da linguagem SQL, julgue o item subsecutivo.
O operador BETWEEN-AND retornará verdadeiro se o valor da coluna na cláusula WHERE for
maior ou igual ao primeiro valor e menor ou igual ao segundo valor.

Os operadores BETWEEN e AND permitem especificar um critério durante uma determinada


Consulta. Tal critério se materializa no formato de um intervalo de valores nos registros de
uma tabela.
Dessa forma, foi solicitada a interpretação da clausula BETWEEN-AND utilizando
operadores lógicos.
Vide a seguir um exemplo de cada um dos métodos aqui destacados:
Select * from discos where disco_id Between 10 And 12
=> Serão solicitadas todas as linhas cujo valor da coluna disco_id esteja compreendido entre
10 e 12. Poderíamos utilizar também:
Select * from discos where disco_id >= 10 And disco_id <=12
Certo.

O conteúdo deste livro eletrônico é licenciado para EDSON LUCIANO DE OLIVEIRA VIGILATO - 03749324174, vedada, por quaisquer meios e a qualquer título,
a sua reprodução, cópia, divulgação ou distribuição, sujeitando-se aos infratores à responsabilização civil e criminal.

www.grancursosonline.com.br 73 de 127
TECNOLOGIA DA INFORMAÇÃO
Banco de Dados Relacionais – Parte V
Patrícia Lima Quintão

032. (CESPE/SERPRO/TÉCNICO – PROGRAMAÇÃO E CONTROLE DE SERVIÇOS DE


TECNOLOGIA DA INFORMAÇÃO/2013) Julgue os itens seguintes, relativos à manipulação
de dados em sistemas de computação. Nesse sentido, considere que a sigla SGBD, sempre
que empregada, se refere a sistema gerenciador de banco de dados.
[A linguagem de consulta estruturada, ou Structured Query Language (SQL), que serve para
descrever estruturas de dados e esquemas, é uma linguagem de pesquisa declarativa padrão
para banco de dados relacionais].

Isso mesmo! SQL é uma linguagem de pesquisa declarativa para Bancos de Dados Relacionais
em oposição a outras linguagens procedurais. Por ser não procedural, você especifica QUAL
informação quer, e não como trazê-la. Em outras palavras, não é necessário especificar o
método de acesso aos dados. O SGBD usa o “otimizador” para interpretar o comando SQL e
escolher o melhor caminho para acesso aos dados.
Certo.

033. (CESPE/TRE-PE/ANALISTA JUDICIÁRIO – ANÁLISE DE SISTEMAS/2017)


Tabela 3A6AAA
dados da tabela:
ID; nome; idtipo; preco
25; creme; 3; 11,50
31; arroz; 4; 12,50
34; leite; 1; 14,00
42; sabão; 5; 11,00
46; carne; 1; 12,75
48; shampoo; 5; 12,30
58; azeite; 1; 13,25
Considerando-se os campos e dados contidos na tabela 3A6AAA, denominada tbproduto, é
correto afirmar que o comando S Q L
a)SELECT MAX(preco) FROM tbproduto WHERE idtipo
igual a 5 ponto e vírgula
retornará 14,00 como resultado.
b)SELECT sum(preco) FROM tbproduto WHERE idtipo
igual a 5
GROUP BY preco
HAVING preco menor que 14 ponto e vírgula
retornará dois registros.
c)SELECT sum(preco) as total FROM tbproduto
WHERE idtipo in (1,5) and nome like abre aspa

O conteúdo deste livro eletrônico é licenciado para EDSON LUCIANO DE OLIVEIRA VIGILATO - 03749324174, vedada, por quaisquer meios e a qualquer título,
a sua reprodução, cópia, divulgação ou distribuição, sujeitando-se aos infratores à responsabilização civil e criminal.

www.grancursosonline.com.br 74 de 127
TECNOLOGIA DA INFORMAÇÃO
Banco de Dados Relacionais – Parte V
Patrícia Lima Quintão

simples porcentagem e fecha aspa simples group


by idtipo having sum(preco) maior que 13 ponto
e vírgula
retornará 26,00 como resultado.
d)SELECT nome FROM tbproduto WHERE idtipo not in
(5) and preco maior que (select min(preco)
from tbproduto where idtipo igual a 1) ponto
e vírgula
retornará apenas leite como resultado.
e)SELECT asterisco FROM tb produto WHERE preco
BETWEEN 10 AND 12 ponto e vírgula
retornará cinco registros.

a) Errado. Este comando procura pelo maior preço, indicado por MAX(preco), dentro da tabela
tbproduto onde o idtipo tem o valor 5. Ao procurar todos os registros cujo idtipo é igual a 5,
encontramos 2 registros. Um deles é o sabão e tem o preço de 11,00 e o outro é o shampoo,
cujo preço é de 12,30. Queremos o que tem o maior preço de todos. Logo a resposta é 12,30.
Item errado.
b) Certo. O comando utilizado na assertiva B é interessante.
Mas, cuidado para não confundir o comando da alternativa com o comando a seguir: “SELECT
sum(preco) FROM tbproduto WHERE idtipo=5”. Este último comando mostra a soma de todos
os preços dos registros cujo idtipo seja 5.
Mas o comando da alternativa não é exatamente isso. Ele tem a cláusula “GROUP BY” seguido
do “HAVING”.
O “GROUP BY” vai fazer com que o comando mostre todos os preços antes de fazer a soma.
Neste caso, ele irá mostrar os valores 11,00 e 12,30. Estes valores são menores do que 14, o
que satisfaz a condição do HAVING.
c) Errado. Quando colocamos a condição “nome like ‘%e’”, significa que o campo nome
pode dar “match” com qualquer sequência de caracteres, seguida do caractere e. O % é um
caractere coringa e significa uma sequência qualquer de caractere. Outro exemplo seria “nome
like ‘%Oliveira’”. Esta condição indica que qualquer sequência de caracteres seguida de um
“Oliveira” vai resultar em verdadeiro.
Analisando a consulta inteira, vemos que ela irá atuar da seguinte forma: para cada idtipo de 1
até 5 (idtipo in (1, 5)), considerando somente os produtos que tenham o nome terminado pela
letra ‘e’ (nome like ‘%e’), serão somados todos os preços relativos a cada idtipo. A soma de cada
idtipo só aparecerá no resultado final caso ela seja maior do que 13 (having sum(preco) > 13).
Então o resultado será:

O conteúdo deste livro eletrônico é licenciado para EDSON LUCIANO DE OLIVEIRA VIGILATO - 03749324174, vedada, por quaisquer meios e a qualquer título,
a sua reprodução, cópia, divulgação ou distribuição, sujeitando-se aos infratores à responsabilização civil e criminal.

www.grancursosonline.com.br 75 de 127
TECNOLOGIA DA INFORMAÇÃO
Banco de Dados Relacionais – Parte V
Patrícia Lima Quintão

Total
40,00
Portanto, item errado.
Observação da letra c):
O resultado parcial, antes de “having sum(preco) > 13” é:
40,00
11,50
O valor 40 vem da soma dos preços 14 (leite), 12,75 (carne) e 13,25 (azeite), todos do idtipo 1,
cujos nomes terminam com a letra ‘e’. O 11,50 vem do creme, que tem o idtipo igual a 3. Porém,
a linha relativa a 11,50 não entrará por causa do “having sum(preco) > 13”.
d) Errado. Primeiro temos que analisar a consulta interna “select min(preco) from tbproduto
where idtipo = 1”. Ela é uma consulta simples e procura pelo menor preço (min(preco)) de
todos os produtos cujo idtipo é igual 1. Este resultado é 12,75. A consulta então passa a ser:
SELECT nome FROM tbproduto WHERE idtipo not in (5) and preco > 12,75. A alternativa quer
o nome do produto, cujo idtipo não esteja no conjunto (5), isto é, que esteja dentro de (1, 2, 3 e
4) e cujo preço seja maior do que 12,75. O resultado da consulta terá dois registros, que são o
leite e o azeite. Item errado.
e) Errado. A consulta desta alternativa procura por todos os registros que têm o preço entre
10,00 e 12,00. De todos, o creme, cujo preço é 11,50, e o sabão, cujo preço é 11,00, são
retornados pela consulta.
Letra b.

034. (FCC/TRT-11/TÉCNICO JUDICIÁRIO DE TI/2017) Considere que no TRT exista, em


um banco de dados, a tabela TRAB que possui como campos: nome, sexo, salario de vários
trabalhadores. Um Técnico foi solicitado a escrever um comando SQL para obter a média
salarial dos trabalhadores do sexo FEMININO. O comando correto é:
a) SELECT sexo=”FEMININO” FROM TRAB WHERE AVG(salario);
b) SELECT sexo, AVG(salario) as MediaSalarial FROM TRAB GROUP BY sexo;
c) SELECT AVG(salario) FROM TRAB WHERE SEXO=’FEMININO’;
d) SELECT sexo, AVG(salario) FROM TRAB GROUP BY sexo=”FEMININO”;
e) SELECT * FROM TRAB WHERE sexo=’FEMININO’ as AVG(salario);

Uma consulta típica em SQL tem a forma:

O conteúdo deste livro eletrônico é licenciado para EDSON LUCIANO DE OLIVEIRA VIGILATO - 03749324174, vedada, por quaisquer meios e a qualquer título,
a sua reprodução, cópia, divulgação ou distribuição, sujeitando-se aos infratores à responsabilização civil e criminal.

www.grancursosonline.com.br 76 de 127
TECNOLOGIA DA INFORMAÇÃO
Banco de Dados Relacionais – Parte V
Patrícia Lima Quintão

A cláusula SELECT relaciona as colunas que se quer presentes no resultado da consulta. Aqui
estamos interessados em obter a média salarial dos trabalhadores! Então, utilizaremos a fun-
ção AVG(coluna), que retorna a média aritmética da coluna dentro do grupo. Valores NULL são
ignorados. A coluna a ser utilizada é a de salario.
A cláusula FROM estará associada à tabela TRAB que será percorrida na execução da
expressão.
A cláusula WHERE é utilizada para filtrar um conjunto de linhas de uma tabela. Utilizaremos o
filtro SEXO=’FEMININO’.
SELECT e a cláusula FROM são necessárias em todas as consultas SQL. Devem aparecer an-
tes de qualquer outra cláusula na consulta.
O comando SELECT AVG(salario) FROM TRAB WHERE SEXO=’FEMININO’;
irá obter na tabela TRAB a média salarial dos trabalhadores do sexo FEMININO.
Letra c.

035. (FCC/TRE-SP/ANALISTA JUDICIÁRIO – ANÁLISE DE SISTEMAS/2017) Em uma


situação hipotética, ao ser designada para atender aos requisitos de negócio de um usuário,
uma Analista de Sistemas do TRE-SP escreveu expressões e comandos para serem executados
em um Banco de Dados Relacional que visavam
(1) criar uma tabela que contivesse dados de processos partidários,
(2) controlar a segurança e o acesso a ela e
(3) manipular dados nela. Desta forma ela, se valeu, correta e respectivamente, por exemplo, de
alguns elementos de expressões tais como:
a) CREATE, GRANT e ALTER
b) DROP, ALTER e UPDATE
c) INSERT, INDEX e CREATE
d) INSERT, REVOKE e SELECT
e) CREATE, REVOKE e INSERT

Essa questão é bem simples, vamos analisar o enunciado para respondêla.


A primeira ação que a analista fez foi “(1) criar uma tabela que contivesse dados de processos
partidários”, o que significa que ela utilizou a cláusula CREATE para criar uma tabela,
lembrando que a cláusula CREATE ou REPLACE é utilizada para criar ou substituir tabelas em
uma base de dados.
A segunda ação que ela fez foi “(2) controlar a segurança e o acesso a ela”, o que significa que
ela poderia ter utilizado a cláusula GRANT para atribuir permissão ao usuário para realizar
uma operação ou REVOKE para remover uma permissão de GRANT ou DENY.

O conteúdo deste livro eletrônico é licenciado para EDSON LUCIANO DE OLIVEIRA VIGILATO - 03749324174, vedada, por quaisquer meios e a qualquer título,
a sua reprodução, cópia, divulgação ou distribuição, sujeitando-se aos infratores à responsabilização civil e criminal.

www.grancursosonline.com.br 77 de 127
TECNOLOGIA DA INFORMAÇÃO
Banco de Dados Relacionais – Parte V
Patrícia Lima Quintão

E por último ela foi “(3) manipular dados nela”, o que significa que ela pode ter atualizado
(UPDATE), selecionado (SELECT) ou inserido dados na tabela (INSERT). A alternativa que
possui a combinação de linguagens utilizados é a letra E, CREATE, REVOKE e INSERT.
Os comandos CREATE, DROP e ALTER são comandos de definição de dados e objetos em
um banco de dados relacional, e eles são comumente chamados de (DDL – Data Definition
Language).
Na questão foram citados também comandos pertencentes ao conjunto de manipulação de
dados de um banco (comumente chamada de Instruções DML – Data Manipulation Language),
e os comandos mais comuns são INSERT, UPDATE, SELECT e DELETE.
E ainda temos as instruções que fazem parte da linguagem que permite o acesso ao banco de
dados (DCL – Data Control Language), garantindo a segurança dos dados que são apresentados
na questão como GRANT e o REVOKE.
Letra e.

036. (FCC/TRT-1ª REGIÃO/ANALISTA JUDICIÁRIO – DESENVOLVIMENTO DE


SISTEMAS/2014) Considere a seguinte consulta em SQL sobre uma base de dados:
SELECT Produto
FROM Lista
WHERE Produto LIKE “c%a”
Um dos possíveis resultados produzidos por essa consulta é
a) Cabo, cabide, calça
b) Ábaco, ácido, apito.
c) Faca, laca, isca.
d) Caneta, caixa, cabana.
e) Rocha, tocha, mecha.

O LIKE busca padrões entre caracteres e o “%” é utilizado para aceitar qualquer caractere em
seu lugar. Sendo assim, c%a retornará qualquer palavra que comece com c e termine com a.
Letra d.

037. (FCC/SABESP/ANALISTA DE GESTÃO – SISTEMAS/2014) Analise o trecho de


SQL abaixo:
SELECT * FROM Clientes
WHERE Cidade...I..... (‘Araraquara’,’Limeira’);
Para que este comando retorne às linhas cuja coluna Cidade seja Araraquara ou Limeira, a
lacuna I deve ser substituída por:
a) IN
b) WHERE

O conteúdo deste livro eletrônico é licenciado para EDSON LUCIANO DE OLIVEIRA VIGILATO - 03749324174, vedada, por quaisquer meios e a qualquer título,
a sua reprodução, cópia, divulgação ou distribuição, sujeitando-se aos infratores à responsabilização civil e criminal.

www.grancursosonline.com.br 78 de 127
TECNOLOGIA DA INFORMAÇÃO
Banco de Dados Relacionais – Parte V
Patrícia Lima Quintão

c) CHECK
d) ALIAS
e) RANGE

Uma consulta típica em SQL tem a forma:


SELECT coluna1, coluna2,..., colunaN
FROM nome_da_tabela
WHERE condição;
A cláusula SELECT relaciona as colunas que se quer presentes no resultado da consulta. Essa
cláusula corresponde à operação de projeção da álgebra relacional.
A cláusula FROM corresponde à operação de produto cartesiano da álgebra relacional. Ela
associa a tabela ou tabelas que serão pesquisadas durante a avaliação de uma expressão. Em
outras palavras, é uma lista de relações a serem varridas na execução da expressão.
A cláusula WHERE corresponde à seleção do predicado da álgebra relacional. Consiste em um
predicado envolvendo atributos da relação que aparece na cláusula FROM.
SELECT e a cláusula FROM são necessárias em todas as consultas SQL. Devem aparecer an-
tes de qualquer outra cláusula na consulta.
SELECT * FROM Clientes irá selecionar todas as colunas da tabela Clientes.
SELECT * FROM Clientes
WHERE Cidade IN (‘Araraquara’,’Limeira’);
irá selecionar todas as colunas da tabela Clientes, nas quais Cidade esteja na lista (`Araraquara`,
`Limeira`).
Letra a.

038. (FCC/TRT 6ª REGIÃO/ANALISTA JUDICIÁRIO/TECNOLOGIA DA INFORMAÇÃO/2012)


Considere os seguintes comandos em PL/SQL:
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 consulta retornará o valor
a) 2.
b) 14.

O conteúdo deste livro eletrônico é licenciado para EDSON LUCIANO DE OLIVEIRA VIGILATO - 03749324174, vedada, por quaisquer meios e a qualquer título,
a sua reprodução, cópia, divulgação ou distribuição, sujeitando-se aos infratores à responsabilização civil e criminal.

www.grancursosonline.com.br 79 de 127
TECNOLOGIA DA INFORMAÇÃO
Banco de Dados Relacionais – Parte V
Patrícia Lima Quintão

c) 6.
d) 29.
e) 5.

Durante a inserção dos valores na tabela Valores os seguintes comandos não são executados
devido a erro:
INSERT INTO VALORES VALUES (1,6); [erro]
INSERT INTO VALORES VALUES (NULL,7); [erro]
INSERT INTO VALORES VALUES (2,8); [erro]
INSERT INTO VALORES VALUES (NULL,10); [erro]
É emitido erro porque uma chave primária não pode ser nula, e porque não se pode inserir
valores em registros que já têm valor inserido (para modificar o conteúdo faz-se necessário o
uso do comando UPDATE).
A seguir é mostrada a tabela, após a execução dos comandos acima apresentados.
------------
|ID |VALOR|
|1|5|
|2|1|
|3|9|
------------
Como pode ser observado só existem dois registros na tabela Valores que possuem valores
maiores ou igual a 5, que são os de ID 1 e 3.
Letra a.

039. (FCC/TRT-23/ANALISTA JUDICIÁRIO – TI/2011) As operações da álgebra relacional


Seleção, Projeção e Produto Cartesiano são implementadas na linguagem SQL, respectivamente,
pelas cláusulas
a) Select, From e Where.
b) Select, Where e From.
c) Where, Select e From.
d) Where, From e Select.
e) Select, Select e Join.

Uma consulta típica em SQL tem a forma:


SELECT coluna1, coluna2,..., colunaN
FROM nome_da_tabela
WHERE condição;

O conteúdo deste livro eletrônico é licenciado para EDSON LUCIANO DE OLIVEIRA VIGILATO - 03749324174, vedada, por quaisquer meios e a qualquer título,
a sua reprodução, cópia, divulgação ou distribuição, sujeitando-se aos infratores à responsabilização civil e criminal.

www.grancursosonline.com.br 80 de 127
TECNOLOGIA DA INFORMAÇÃO
Banco de Dados Relacionais – Parte V
Patrícia Lima Quintão

A cláusula SELECT relaciona as colunas que se quer presentes no resultado da consulta. Essa
cláusula corresponde à operação de projeção da álgebra relacional.
A cláusula FROM corresponde à operação de produto cartesiano da álgebra relacional. Ela
associa a tabela ou tabelas que serão pesquisadas durante a avaliação de uma expressão.
A cláusula WHERE corresponde à seleção do predicado da álgebra relacional.
Letra c.

040. (COPS/AFPR/ANALISTA DE TI/2010) Assinale a alternativa que apresenta o comando


SQL para apagar as entradas da tabela pessoa onde o valor do campo idade é maior do que 20.
a) drop from pessoa where idade > 20;
b) remove where idade > 20 from pessoa;
c) erase from pessoa where idade > 20;
d) delete from pessoa where idade > 20;
e) delete where idade > 20 from pessoa;

A sintaxe correta para remover uma determinada linha ou um conjunto de linhas de uma
determinada tabela é a seguinte:
DELETE FROM [TABELA] WHERE [CAMPO] [CONDICAO];
No caso do exemplo, a sintaxe correta seria a apresentada na letra d.
DELETE FROM PESSOA WHERE IDADE > 20;
Letra d.

041. (FCC/TRT – 15ª REGIÃO – ANALISTA JUDICIÁRIO – TECNOLOGIA DA INFORMA-


ÇÃO/2013) Considere o comando SQL abaixo.
SELECT * FROM Clientes
WHERE Cidade ______ (‘Paris’,’Londres’);
Para retornar informações da tabela Clientes, cuja coluna Cidade seja igual a Paris ou Londres,
a lacuna deve ser preenchida com o operador
a) FIND
b) EQ
c) IN
d) =
e) RANGE

Na questão, observe que pretendemos verificar quais valores fazem parte de um conjunto.
Logo, utiliza-se o IN.
Letra c.

O conteúdo deste livro eletrônico é licenciado para EDSON LUCIANO DE OLIVEIRA VIGILATO - 03749324174, vedada, por quaisquer meios e a qualquer título,
a sua reprodução, cópia, divulgação ou distribuição, sujeitando-se aos infratores à responsabilização civil e criminal.

www.grancursosonline.com.br 81 de 127
TECNOLOGIA DA INFORMAÇÃO
Banco de Dados Relacionais – Parte V
Patrícia Lima Quintão

042. (FUNCAB/EMPRESA DE DESENVOLVIMENTO URBANO – EMDUR/ANALISTA


DE INFORMÁTICA) Alguns termos utilizados na terminologia de banco de dados estão
disponibilizados na Coluna I. Estabeleça a correta correspondência com os seus significados,
disponibilizados na Coluna II.
Coluna II
Coluna I ( ) Linguagem utilizada para extrair porções de dados dos bancos de
1. DDL dados.
2. DML ( ) Conjunto de valores possíveis para uma entidade e seus atributos.
3. Domínios ( ) Linguagem utilizada para criar, excluir e alterar estruturas de
4. Tabela bancos de dados.
( ) Conjunto não ordenado de linhas.
A sequência correta é:
a) 2, 3, 1 e 4.
b) 1, 3, 2 e 4.
c) 2, 4, 1 e 3.
d) 1, 4, 2 e 3.
e) 4, 3, 2 e 1.

A primeira alternativa refere-se à Linguagem de Manipulação de Dados (DML – Data Manipulation


Language), que permite a manipulação dos dados armazenados em um banco de dados.
Possui 4 comandos básicos:
• INSERT: inserção de registros;
• DELETE: remoção de registros;
• UPDATE: atualização de registros;
• SELECT: seleção (consulta) de registros.
Logo, a primeira afirmativa da coluna II refere-se à opção 2 da coluna I.
Neste ponto, já sabemos que somente as alternativas A e C podem ser corretas…
Vamos analisar a segunda afirmativa. O conjunto de valores possíveis é chamado de domínio.
Ao definirmos que um atributo é de determinado tipo (inteiro, por exemplo), são restringidos os
valores que o campo pode assumir. Sendo assim, a segunda afirmativa da coluna II refere-se
à opção 3 da coluna I.
Já sabemos então que a resposta da questão é a letra A.
Mas vamos analisar as outras afirmativas para conferir e treinar.
A terceira afirmativa refere-se ao conceito de Linguagem de Definição de Dados (DDL – Data
Definition Language).
Comandos básicos da DDL:
• CREATE: criação de novas estruturas
• ALTER: alteração de estruturas existentes
• DROP: remoção de estruturas
O conteúdo deste livro eletrônico é licenciado para EDSON LUCIANO DE OLIVEIRA VIGILATO - 03749324174, vedada, por quaisquer meios e a qualquer título,
a sua reprodução, cópia, divulgação ou distribuição, sujeitando-se aos infratores à responsabilização civil e criminal.

www.grancursosonline.com.br 82 de 127
TECNOLOGIA DA INFORMAÇÃO
Banco de Dados Relacionais – Parte V
Patrícia Lima Quintão

E, finalmente, a quarta afirmativa define uma tabela. Lembre-se de que os dados armazenados
em uma tabela não precisam estar ordenados.
Letra a.

043. (ESAF/STN/DESENVOLVIMENTO DE SISTEMAS/2008) SBGD (Sistema Gerenciador


de Bancos de Dados) possui um compilador para uma determinada linguagem, cuja função
é o processamento de declarações, a fim de identificar as descrições dos componentes do
esquema conceitual do Banco de Dados. Tal linguagem é de
a) consulta estrutura – SQL.
b) definição de armazenamento – SDL.
c) manipulação de dados – DML.
d) definição de visão – VDL.
e) definição de dados – DDL.

Linguagem de definição de dados (DDL, do Inglês Data Definition Language) é uma linguagem
de computador usada para a definição de estruturas de dados.
Uma vez compilados, os parâmetros DDL são armazenados num conjunto de arquivos
denominado dicionário de dados. O dicionário de dados contém os metadados (dados a
respeito das estruturas de armazenamento). O SGBD sempre consulta os metadados a cada
operação sobre o banco de dados. Por exemplo, um determinado programa precisa recuperar
alguns campos (nome, CPF) de um arquivo de clientes. O SGBD irá verificar se os campos
nome” e “CPF” estão definidos para este arquivo. O interpretador DDL processa os comandos
alimentados pelos DBAs na definição dos esquemas.
Os comandos básicos da DDL são poucos
• CREATE: cria um objeto (uma Tabela, por exemplo) dentro da base de dados;
• DROP: apaga um objeto do banco de dados.
Alguns sistemas de banco de dados usam o comando ALTER, que permite ao usuário alterar um
objeto, por exemplo, adicionando uma coluna a uma tabela existente. Outros comandos DDL:
• ALTER TABLE
• CREATE INDEX
• ALTER INDEX
• DROP INDEX
• CREATE VIEW
• DROP VIEW
Letra e.

O conteúdo deste livro eletrônico é licenciado para EDSON LUCIANO DE OLIVEIRA VIGILATO - 03749324174, vedada, por quaisquer meios e a qualquer título,
a sua reprodução, cópia, divulgação ou distribuição, sujeitando-se aos infratores à responsabilização civil e criminal.

www.grancursosonline.com.br 83 de 127
TECNOLOGIA DA INFORMAÇÃO
Banco de Dados Relacionais – Parte V
Patrícia Lima Quintão

044. (COPS/AFPR/ANALISTA DE TI/2010) Assinale a alternativa que apresenta corretamente


o comando SQL para atualizar as entradas da tabela pessoa, fazendo com que o campo idade
contenha o valor 23 quando o valor ali armazenado for maior do que 20.
a) update pessoa set idade=23 where idade > 20;
b) change pessoa set idade=23 where idade > 20;
c) updadte pessoa set 23 where idade > 20;
d) change pessoa set 23 where idade > 20;
e) update from pessoa idade= 23 where idade >20;

A sintaxe correta para atualizar uma determinada linha ou um conjunto de linhas de uma
determinada tabela é a seguinte:
UPDATE [TABELA] SET [CAMPO] [OPERADOR] [NOVO_VALOR] WHERE [CONDICAO];
No caso do exemplo, a sintaxe correta seria a apresentada na letra A.
UPDATE PESSOA SET IDADE=23 WHERE IDADE > 20;
Letra a.

045. (COPS/AFPR/ANALISTA DE TI/2010) O comando SQL para selecionar todas as entradas


da tabela pessoa, onde o campo idade possui um valor menor do que 20 é:
a) select * from pessoa where idade < 20;
b) find * from pessoa where idade < 20;
c) search * from pessoa where idade < 20;
d) select where idade < 20 from pessoa;
e) find where idade < 20 from pessoa;

A sintaxe correta para selecionar uma determinada linha ou um conjunto de linhas de uma
determinada tabela é a seguinte:
SELECT [CAMPO(S)] FROM [TABELA] WHERE [CONDICAO];
No caso do exemplo, a sintaxe correta seria a apresentada na letra A.
SELECT * FROM PESSOA WHERE IDADE < 20;
Note bem: o caractere asterisco (*) é utilizado para representar todos os campos de uma tabe-
la ou um conjunto de tabelas em uma consulta, na sintaxe SQL.
Letra a.

046. (ESAF/ANAC/ANALISTA ADMINISTRATIVO/ANÁLISE DE SISTEMAS/2016) Em SQL,


algumas consultas precisam de que os valores existentes no banco de dados sejam buscados
e depois usados em uma condição de comparação. Elas podem ser formuladas por meio
de consultas

O conteúdo deste livro eletrônico é licenciado para EDSON LUCIANO DE OLIVEIRA VIGILATO - 03749324174, vedada, por quaisquer meios e a qualquer título,
a sua reprodução, cópia, divulgação ou distribuição, sujeitando-se aos infratores à responsabilização civil e criminal.

www.grancursosonline.com.br 84 de 127
TECNOLOGIA DA INFORMAÇÃO
Banco de Dados Relacionais – Parte V
Patrícia Lima Quintão

a) concorrentes.
b) comparadas.
c) segmentadas.
d) hierarquizadas.
e) aninhadas.

Consultas aninhadas é um dos recursos mais poderosos e úteis da linguagem SQL. Uma
consulta aninhada é uma consulta secundária embutida dentro de uma consulta principal.
Esta consulta embutida também é chamada de subconsulta. Uma subconsulta geralmente
aparece na cláusula WHERE da consulta principal, embora ela também possa fazer parte das
cláusulas FROM ou HAVING.
Em SQL, uma consulta é aninhada quando ela está dentro de outra consulta SQL.
Referência: http://www.ic.unicamp.br/~geovane/mo410-091/Ch05-Resumo.pdf.
Letra e.

047. (ESAF/MPOG-TI/ANALISTA DE PLANEJAMENTO E ORÇAMENTO/2010) Em uma SQL


a) a Linguagem de Manipulação de Relacionamentos compreende os comandos para construir
tabelas em um banco de dados.
b) a Linguagem de Definição de Dados fornece tabelas para criação e modificação de comandos.
c) os comandos básicos da Linguagem de Definição de Dados são Select, Insert, Update e Delete.
d) a Linguagem de Manipulação de Dados compreende os comandos para inserir, remover e
modificar informações em um banco de dados.
e) os comandos básicos da Linguagem de Definição de Dados são Sort, Insert, Undo e Store.

A DML (Data Manipulation Language – Linguagem de Manipulação de Dados) visa à manipulação


de dados (incluir, alterar, excluir e consultar) por meio do usuário.
Os principais comandos da DML:
• SELECT: seleção de registros;
• INSERT: inserção de registros;
• UPDATE: atualização de registros;
• DELETE: deleção de registros.
Para a definição dos dados é utilizada uma DDL (Data Definition Language – Linguagem
de Definição de dados). Os comandos DDL são armazenados no dicionário de dados (ou
catálogo). Logo, o dicionário de dados contém os metadados (dados a respeito das estruturas
de armazenamento) do banco.
Os principais comandos da DDL são:
• CREATE: criação de novas estruturas;

O conteúdo deste livro eletrônico é licenciado para EDSON LUCIANO DE OLIVEIRA VIGILATO - 03749324174, vedada, por quaisquer meios e a qualquer título,
a sua reprodução, cópia, divulgação ou distribuição, sujeitando-se aos infratores à responsabilização civil e criminal.

www.grancursosonline.com.br 85 de 127
TECNOLOGIA DA INFORMAÇÃO
Banco de Dados Relacionais – Parte V
Patrícia Lima Quintão

• ALTER: alteração de estruturas;


• DROP: remoção de estruturas.
Existe ainda a DCL (Data Control Language – Linguagem de Controle de Dados) para controlar
o acesso dos usuários aos dados em um banco de dados. Principais comandos:
• GRANT: concessão de privilégios a tabelas e visões.
• REVOKE: revogação de privilégios a tabelas e visões.
Logo, de acordo com as definições acima, a letras A, B, C e E estão incorretas. Já a letra D faz
a referência a uma DML.
Letra d.

048. (ESAF/CVM/ANALISTA DE TIC/INFRAESTRUTURA – PROVA 2/2010) A linguagem de


definição de dados permite a especificação do esquema do banco de dados.

A Linguagem de Definição de Dados (DDL) é usada para especificar o esquema conceitual.


Certo.

049. (ESAF/CVM/ANALISTA DE TIC/INFRAESTRUTURA – PROVA 2/2010) A linguagem de


definição de dados permite expressar as consultas e atualizações do banco de dados.

A Linguagem de Definição de Dados (DDL) não é utilizada para consultas e atualizações do


banco de dados. A linguagem que permite consultas e atualizações é a DML (Linguagem de
Manipulação de Dados).
Errado.

050. (ESAF/CVM/ANALISTA DE TIC – INFRAESTRUTURA – PROVA 2/2010) A linguagem


de manipulação de dados permite a especificação do esquema do banco de dados.

A Linguagem de Manipulação de Dados, DML, não permite a especificação de esquema de


banco de dados. Mas a DML permite a atualização, inserção e exclusão de dados. A Linguagem
de Definição de Dados (DDL) é usada para especificar o esquema conceitual.
Errado.

051. (IADES/FHB-DF/TECNOLOGIA DA INFORMAÇÃO – ANALISTA DE SISTEMAS/2017)


Considere as tabelas aluno (matricula INT, nome CHAR, cod_curso INT) e curso (cod_curso INT,
curso CHAR, area CHAR), apresentadas a seguir.

O conteúdo deste livro eletrônico é licenciado para EDSON LUCIANO DE OLIVEIRA VIGILATO - 03749324174, vedada, por quaisquer meios e a qualquer título,
a sua reprodução, cópia, divulgação ou distribuição, sujeitando-se aos infratores à responsabilização civil e criminal.

www.grancursosonline.com.br 86 de 127
TECNOLOGIA DA INFORMAÇÃO
Banco de Dados Relacionais – Parte V
Patrícia Lima Quintão

Qual dos comandos Structured Query Language (SQL) pode ser utilizado para listar somente
os alunos que cursam História?
a) select aluno.Nome from aluno,curso where aluno.cod_curso = curso.cod_curso AND curso.
curso = ‘Historia’;
b) select aluno.Nome from aluno,curso where curso.curso = ‘Historia’;
c) select aluno.Nome from aluno,curso where aluno.cod_curso = ‘Historia’;
d) select curso.curso from aluno,curso where aluno.cod_curso = curso.cod_curso AND curso.
curso = ‘Historia’;
e) select aluno.Nome from aluno,curso where curso.curso = ‘Historia’ and aluno.cod_curso!=
curso.cod_curso;

a) Certo. É uma prática altamente recomendada fazer referência <tabela.campo>. Nesse


contexto, como exemplo “aluno” é o nome da tabela e “nome” o campo da tabela.
b) Errado.
select aluno.Nome from aluno,curso where aluno.cod_curso = curso.cod_curso AND curso.
curso = ‘Historia’;
A alternativa b está errada porque faltou adicionar na cláusula WHERE uma relação que
conecta as tabelas ALUNO e CURSO, de modo que fosse possível a recuperação de todos os
alunos que cursam história.
c) Errado.

O conteúdo deste livro eletrônico é licenciado para EDSON LUCIANO DE OLIVEIRA VIGILATO - 03749324174, vedada, por quaisquer meios e a qualquer título,
a sua reprodução, cópia, divulgação ou distribuição, sujeitando-se aos infratores à responsabilização civil e criminal.

www.grancursosonline.com.br 87 de 127
TECNOLOGIA DA INFORMAÇÃO
Banco de Dados Relacionais – Parte V
Patrícia Lima Quintão

O atributo cod_curso é numérico e não do tipo caracter. Caso fosse o número 3 no lugar da
string história essa alternativa estaria correta.
d) Errado.
Essa consulta retorna o nome do curso e não o nome dos alunos.
e) Errado.
A alternativa E está completamente errada no uso do operador diferente de (!=) no lugar de
igual a (=), além disso com a adição da condição curso.curso = ‘Historia’ faz com que ele nunca
retorne nada uma vez que não existe tal relação na tabela.
Letra a.

052. (FUMARC/SAÚDE/2007) Sobre o comando SQL a seguir, escolha a afirmativa correta:


SELECT depto.nome, funcionario.nome
FROM depto, funcionario
WHERE depto.codigo = funcionário.depto_codigo AND
funcionário.salario > 5000 AND
depto.codigo = ‘Diretoria’ OR depto.codigo = ‘Tecnologia’
a) Seleciona os funcionários da Diretoria e da Tecnologia que tenham salário maior que 5.000.
b) Seleciona os funcionários da Diretoria com salário maior que 5.000 e todos os funcionários
da Tecnologia, independente de salário.
c) Seleciona os funcionários que fazem parte da Diretoria e da Tecnologia, simultaneamente, e
que tenham salário maior que 5.000.
d) Seleciona todos os funcionários com salário maior que 5.000 e ainda os funcionários da
Diretoria e Tecnologia, independente de seus salários.

SQL é a abreviatura de Structured Query Language. É uma linguagem para criação de bancos
de dados e para recuperação e manutenção dos dados armazenados nestes. A estrutura
básica de uma consulta em SQL, utilizada na questão, consiste em três cláusulas: SELECT,
FROM E WHERE.
• SELECT
A cláusula SELECT é usada para listar os atributos desejados como resultado de uma consulta.
Em outras palavras, relaciona as colunas que se quer presentes no resultado da consulta.
• FROM
A cláusula FROM relaciona a tabela ou tabelas que devem ser pesquisadas/varridas na
execução da expressão.
• WHERE
Especifica a condição ou condições que as linhas selecionadas devem satisfazer.
Uma cláusula WHERE pode conter mais de uma condição, sendo possível usar operadores
lógicos para indicar a união entre as condições:

O conteúdo deste livro eletrônico é licenciado para EDSON LUCIANO DE OLIVEIRA VIGILATO - 03749324174, vedada, por quaisquer meios e a qualquer título,
a sua reprodução, cópia, divulgação ou distribuição, sujeitando-se aos infratores à responsabilização civil e criminal.

www.grancursosonline.com.br 88 de 127
TECNOLOGIA DA INFORMAÇÃO
Banco de Dados Relacionais – Parte V
Patrícia Lima Quintão

• AND: exibe os registros em que todas as condições são verdadeiras. SELECT coluna1,
coluna2, coluna3... FROM nome_da_tabela WHERE condição1 AND condição2 AND
condição3 ...;
• OR: exibe os registros em que pelo menos uma condição é verdadeira. SELECT coluna1,
coluna2, coluna3... FROM nome_da_tabela WHERE condição1 OR condição2 OR
condição3 ...;
Na questão, observe a condição dada na cláusula WHERE, em que se pode obter o que está
especificado na letra B (selecionar os funcionários da Diretoria com salário maior que 5.000 e
todos os funcionários da Tecnologia, independente de salário).
WHERE depto.codigo = funcionário.depto_codigo AND
funcionário.salario > 5000 AND
depto.codigo = ‘Diretoria’ OR depto.codigo = ‘Tecnologia’
Exemplos de operadores que podem ser utilizados =, <>, >, <, IS NULL, IN, BETWEEN, NOT, LIKE.
Letra b.

053. (COPS/ANALISTA DE DESENVOLVIMENTO MUNICIPAL-TI/ÁREA DE


PROGRAMAÇÃO/2008) Observe o esquema de banco de dados a seguir:

Com base no esquema de banco de dados, assinale a alternativa correta.


a) INSERT INTO Cartao (cod_cartao, nome_cartao) VALUES (‘001’, ‘credicard’);
INSERT INTO Empresa (cod_empresa, nome_empresa) VALUES (‘002’, ‘Dom Juliano’);
INSERT INTO compra (cod_cartao, cod_empresa, data, hora, valor) VALUES (‘001’, ‘002’,
‘01/04/2008’, ‘14:00’, 15,00);
b) INSERT INTO Empresa (cod_empresa, nome_empresa) VALUES (‘002’, ‘Dom Juliano’);
INSERT INTO compra (cod_cartao, cod_empresa, data, hora, valor) VALUES (‘001’, ‘002’,
‘01/04/2008’, ‘14:00’, 15,00)
INSERT INTO Cartao (cod_cartao, nome_cartão) VALUES (‘001’, ‘credicard’);
c) INSERT INTO Cartao (cod_cartao, nome_cartão) VALUES (‘001’, ‘credicard’);
INSERT INTO compra (cod_cartao, cod_empresa, data, hora, valor) VALUES (‘001’, ‘002’,
‘01/04/2008’, ‘14:00’, 15,00);
INSERT INTO Empresa (cod_empresa, nome_empresa) VALUES (‘002’, ‘Dom Juliano’);
d) INSERT INTO Cartao (cod_cartao, nome_cartao) VALUES (null, ‘credicard’);
INSERT INTO Empresa (cod_empresa, nome_empresa) VALUES (‘002’, ‘Dom Juliano’);

O conteúdo deste livro eletrônico é licenciado para EDSON LUCIANO DE OLIVEIRA VIGILATO - 03749324174, vedada, por quaisquer meios e a qualquer título,
a sua reprodução, cópia, divulgação ou distribuição, sujeitando-se aos infratores à responsabilização civil e criminal.

www.grancursosonline.com.br 89 de 127
TECNOLOGIA DA INFORMAÇÃO
Banco de Dados Relacionais – Parte V
Patrícia Lima Quintão

INSERT INTO compra (cod_cartao, cod_empresa, data, hora, valor) VALUES (null, ‘002’,
‘01/04/2008’, ‘14:00’, 15,00);
e) INSERT INTO Cartao (cod_cartao, nome_cartao) VALUES (‘001’, ‘credicard’);
INSERT INTO Empresa (cod_empresa, nome_empresa) VALUES (null, ‘Dom Juliano’);
INSERT INTO compra (cod_cartao, cod_empresa, data, hora, valor) VALUES (‘001’, null,
‘01/04/2008’, ‘14:00’, 15,00);

A sintaxe correta para adicionar uma determinada linha ou um conjunto de linhas em uma
determinada tabela é a seguinte:
INSERT INTO [TABELA] VALUES (ATRIBUTOS);
A sintaxe acima requer que seja lembrada a ordem das colunas da tabela que se deseja adicionar
linhas. A sintaxe abaixo pode ser utilizada como alternativa para quando não é lembrada a
ordem correta das colunas em uma dada tabela.
INSERT INTO [TABELA] (COLUNAS) VALUES (ATRIBUTOS);
No caso da questão, a sintaxe correta seria a apresentada na letra A.
INSERT INTO Cartao (cod_cartao, nome_cartao) VALUES (‘001’, ‘credicard’);
INSERT INTO Empresa (cod_empresa, nome_empresa) VALUES (‘002’, ‘Dom Juliano’);
INSERT INTO compra (cod_cartao, cod_empresa, data, hora, valor) VALUES (‘001’, ‘002’,
‘01/04/2008’, ‘14:00’, 15,00);
Ainda, observe algumas dicas:
1- Não se pode ter chave primária vazia (null).
2- Deve-se seguir a ordem lógica de inserção dos valores nas colunas das tabelas.
3-Para inserir valores na tabela compra, é imprescindível que as tabelas Cartão e Empresa
tenham sido populadas (cod_cartão e cod_empresa fazem parte da chave primária composta
da tabela Compra).
No caso, as tabelas Cartão e Empresa podem ser criadas em qualquer ordem, uma vez que as
mesmas não possuem nenhum tipo de dependência. Já a tabela Compra não pode ser criada
em uma ordem qualquer uma vez que é necessário que as tabelas Cartão e Empresa tenham
sido criadas a priori. Observe que para se realizar uma compra são necessários um Cartão e
uma Empresa, já que as chaves primárias simples de ambas fazem parte da chave primária
composta da tabela Compra, logo a tabela Compra possui uma relação de dependência com
as tabelas Cartão e Empresa.
Letra a.

054. (ESAF/SUSEP-TI/2006) Analise as seguintes afirmações relacionadas a conceitos


básicos sobre Banco de Dados.

O conteúdo deste livro eletrônico é licenciado para EDSON LUCIANO DE OLIVEIRA VIGILATO - 03749324174, vedada, por quaisquer meios e a qualquer título,
a sua reprodução, cópia, divulgação ou distribuição, sujeitando-se aos infratores à responsabilização civil e criminal.

www.grancursosonline.com.br 90 de 127
TECNOLOGIA DA INFORMAÇÃO
Banco de Dados Relacionais – Parte V
Patrícia Lima Quintão

I – O comando SQL responsável por fechar uma transação confirmando as operações


feitas é o INSERT.
II – O comando SQL responsável por fechar uma transação e desfazer todas as operações
é o COMMIT.
III – Quando uma transação ainda está aberta para um usuário, enquanto não é executado
um comando COMMIT, o próprio usuário pode ver as suas alterações, mas outros
usuários não podem vê-las.
IV – Uma transação assegura um espaço de trabalho que contém várias alterações, inclusões
e exclusões de dados em uma ou mais tabelas, com a possibilidade de confirmação ou
cancelamento das operações sem comprometimento dos dados.

Indique a opção que contenha todas as afirmações verdadeiras.


a) I e II
b) II e III
c) III e IV
d) I e III
e) II e IV

O comando COMMIT fecha a transação, confirmando todas as operações. Logo, as afirmações


I e II estão incorretas.
A afirmação III está correta, pois enquanto o comando Commit não for executado, as operações
são visíveis apenas para o usuário que está executando a transação.
O item IV refere-se ao conceito de transação, a qual pode conter várias operações que precisam
ser confirmadas para serem efetivadas no banco de dados. Item correto.
Letra c.

055. (COPESE/UFPI/UFPI/ANALISTA DE TECNOLOGIA DA INFORMAÇÃO/


ADAPTADA/2017) Um banco de dados relacional consiste em uma coleção de tabelas,
cada uma com um nome único atribuído. Sobre o modelo relacional, é correto afirmar que
a linguagem HTML é uma linguagem de consulta amigável que possui como base formal a
álgebra relacional.

Quando falamos em “relações no modelo relacional”, estamos falando em tabelas cujas


operações são baseadas na álgebra relacional (seleção, projeção, união, subtração, junção
e produto cartesiano) e que manipulam conjuntos de dados ao invés de um único registro. A
linguagem SQL foi baseada nas operações de álgebra relacional.
Errado.

O conteúdo deste livro eletrônico é licenciado para EDSON LUCIANO DE OLIVEIRA VIGILATO - 03749324174, vedada, por quaisquer meios e a qualquer título,
a sua reprodução, cópia, divulgação ou distribuição, sujeitando-se aos infratores à responsabilização civil e criminal.

www.grancursosonline.com.br 91 de 127
TECNOLOGIA DA INFORMAÇÃO
Banco de Dados Relacionais – Parte V
Patrícia Lima Quintão

056. (FCC/IF-PE/IF-PE/TÉCNICO EM TECNOLOGIA DA INFORMAÇÃO –


DESENVOLVIMENTO/2016) Leia as afirmativas abaixo e responda à questão proposta.
I – Retorna linhas quando há, pelo menos, uma correspondência entre duas tabelas.
II – Operador usado para combinar o resultado do conjunto de duas ou mais instruções
SELECT.
III – Operador usado em uma cláusula WHERE para pesquisar um padrão específico em
uma coluna.

I, II e III correspondem, em SQL, respectivamente, aos comandos:


a) INNER JOIN, UNION e LIKE.
b) INNER JOIN, JOIN e DISTINCT.
c) LEFT JOIN, UNIQUE e LIKE.
d) SELECT, JOIN e BETWEEN.
e) SELECT, UNIQUE e BETWEEN.

Item I – O comando INNER JOIN realiza a junção e recupera a informação de intercessão entre
duas tabelas.
Item II – O operador UNION é usado para combinar o resultado de execução das duas queries
e então executa um SELECT DISTINCT com o objetivo de eliminar as linhas duplicadas.
Item III – O operador LIKE é utilizado para buscar por uma determinada string dentro de uma
coluna com valores textuais.
Assim, conforme visto, a alternativa correta é letra A (INNER JOIN, UNION, LIKE).
Letra a.

057. (FCC/TRF-5ª REGIÃO/TÉCNICO JUDICIÁRIO/INFORMÁTICA/2017) Após constatar


que todos os dados em uma tabela estavam incorretos, foi solicitado ao Técnico em Informática
para limpar os registros desta tabela mantendo sua estrutura, para que os dados corretos
fossem posteriormente inseridos. Para realizar este trabalho o Técnico terá que utilizar a
instrução SQL
a) DROP TABLE table_name.
b) REDO * FROM table_name.
c) DELETE TABLE table_name.
d) ERASE * FROM table_name.
e) TRUNCATE TABLE table_name.

O comando capaz de remover todos os dados de uma tabela de forma rápida e eficiente é
o comando TRUNCATE. Porém, devemos ter muito cuidado ao usálo porque não há como
recuperar os dados excluídos.

O conteúdo deste livro eletrônico é licenciado para EDSON LUCIANO DE OLIVEIRA VIGILATO - 03749324174, vedada, por quaisquer meios e a qualquer título,
a sua reprodução, cópia, divulgação ou distribuição, sujeitando-se aos infratores à responsabilização civil e criminal.

www.grancursosonline.com.br 92 de 127
TECNOLOGIA DA INFORMAÇÃO
Banco de Dados Relacionais – Parte V
Patrícia Lima Quintão

Outro comando que também remove registros em uma tabela é o comando DELETE, porém, é
necessário usar a cláusula FROM e passar quais os registros passíveis de exclusão.
O comando DROP remove também os registros em uma tabela, entretanto, a estrutura (própria
tabela) da tabela também é removida.
Os demais comandos listados como alternativas na questão não estão ligados à remoção de
informações. Assim, a alternativa correta é letra E.
Letra e.

058. (CESPE/TCE-PA/AUDITOR DE CONTROLE EXTERNO – ÁREA INFORMÁTICA/


ANALISTA DE SUPORTE/2016) No que concerne à linguagem SQL, julgue o item seguinte:
[Para que um usuário possa executar o comando select em uma view, não é necessário que ele
tenha esse privilégio diretamente na view, mas apenas na tabela a que a view faz referência].

Um Sistema Gerenciador de Banco de Dados (SGBD) concede privilégios ou permissões para


views, tabelas, procedures, funções de maneira independente. Deste modo, ter o privilégio para
visualizar uma tabela não implica que terá acesso à view derivada.
Os privilégios são concedidos de forma independente nas tabelas e views. Isso quer dizer
que um usuário pode ter permissão na tabela e não na views ou vice-versa. Isso funciona
de forma indiscriminada para qualquer comando da linguagem SQL e não apenas para o
comando SELECT.
Vale lembrar que as views são criadas como mecanismos importantes que podem reduzir
a complexidade e aumentar a segurança da base de dados, exibindo apenas estruturas e
elementos essenciais a determinado usuário.
Quanto à questão dos privilégios, este pode ser dado usando o comando GRANT da
linguagem SQL.
No exemplo a seguir tem-se a sequência de comandos para a criação de uma view e, em
seguida, a concessão de privilégios de seleção ao usuário escola.
Criação da view:
CREATE VIEW dados_alunos
AS SELECT nome, sexo, email
FROM aluno;
Concessão de privilégio SELECT na view para o usuário escola:
GRANT SELECT ON dados_alunos TO escola;
Errado.

059. (FCC/SABESP/TÉCNICO EM GESTÃO 01/INFORMÁTICA/2018) O RH da empresa deseja


emitir um relatório de todos os funcionários que ganham comissão. Deseja mostrar o nome,
salário e comissão organizando os dados por salário de forma descendente. Considerando a

O conteúdo deste livro eletrônico é licenciado para EDSON LUCIANO DE OLIVEIRA VIGILATO - 03749324174, vedada, por quaisquer meios e a qualquer título,
a sua reprodução, cópia, divulgação ou distribuição, sujeitando-se aos infratores à responsabilização civil e criminal.

www.grancursosonline.com.br 93 de 127
TECNOLOGIA DA INFORMAÇÃO
Banco de Dados Relacionais – Parte V
Patrícia Lima Quintão

existência de um banco de dados Oracle aberto e em condições ideais, que possui uma tabela
chamada Funcionario com os campos nome, cargo, salario e comissao, a instrução SQL que
deverá ser utilizada é
a) SELECT ALL nome, salario, comissao FROM funcionario WHERE comissao IS NOT EMPTY
ORDER BY salario DESCENDING; comissão organizando os dados por salário de forma
descendente. Considerando a existência de um banco de
b) SLECT nome, salario, comissao FROM funcionario WHERE comissao IS NOT NULL ORDER
BY salario DESC;
c) SELECT nome, salario, comissao FROM funcionario WHERE NOT_EMPTY(comissao) ORDER
BY salario DESC;
d) SELECT * FROM funcionario WHERE comissao IS NOT NULL ORDER BY salario DESC;
e) SELECT ONLY nome, salario, comissao FROM funcionario WHERE NOT_NULL(comissao)
ORDER BY salario DESC;

a) Errado. Há dois erros na instrução. O primeiro, não usamos ALL seguido dos campos da
tabela. O segundo, a forma correta para indicar que há informações (não esteja vazio) é IS NOT
NULL e não IS NOT EMPTY
b) Certo. Selecionamos os campos nome, salario, comissao corretamente, indicamos que
a comissao não deve conter valores vazios e a ordenação pelo campo salario de forma
decrescente (DESC)
c) Errado. o comando NOT_EMPTY(comissao) não é usado para identificar que o campo não
deve estar vazio.
d) Errado. O asterisco (*) indica o retorno de todos os campos na tabela e o campo CARGO não
é solicitado como retorno na consulta.
e) Errado. Há dois erros na instrução. O primeiro, não usamos ONLY após a cláusula SELECT
para indicar que somente tais campos serão selecionado. O segundo, a forma correta para
indicar que há informações (não esteja vazio) é IS NOT NULL e não NOT_NULL.
Letra b.

060. (FCC/TRE-PR/TÉCNICO JUDICIÁRIO/OPERAÇÃO DE COMPUTADORES/2017)


Atenção: Para responder à questão, considere as informações abaixo.
Considere a existência de um banco de dados com as tabelas criadas pelos comandos abaixo.
CREATE TABLE Partido (
idPartido VARCHAR(4) NOT NULL,
nomePartido VARCHAR(70),
presidentePartido VARCHAR(50),
PRIMARY KEY (idPartido)
);

O conteúdo deste livro eletrônico é licenciado para EDSON LUCIANO DE OLIVEIRA VIGILATO - 03749324174, vedada, por quaisquer meios e a qualquer título,
a sua reprodução, cópia, divulgação ou distribuição, sujeitando-se aos infratores à responsabilização civil e criminal.

www.grancursosonline.com.br 94 de 127
TECNOLOGIA DA INFORMAÇÃO
Banco de Dados Relacionais – Parte V
Patrícia Lima Quintão

CREATE TABLE Filiado (


idFiliado INT NOT NULL,
nomeFiliado VARCHAR(50),
dataFiliacao DATE,
idPartido VARCHAR(4) NOT NULL,
PRIMARY KEY (idFiliado),
FOREIGN KEY (idPartido)
REFERENCES Partido (idPartido)
);
Considere, ainda, que estas tabelas contêm os registros abaixo.

Para alterar o idPartido para PNC na tabela Filiado, apenas para filiados com data de filiação
entre 01/01/2017 e 30/06/2017, utiliza-se o comando
a) ALTER Filiado SET idPartido=’PNC’ WHERE dataFiliacao BETWEEN ‘2017-01-01’ AND
‘2017-06-30’;
b) UPDATE idPartido=’PNC’ FROM FILIADO WHERE dataFiliacao BETWEEN ‘2017-01-01’ AND
‘2017-06- 30’;
c) SELECT * FROM FILIADO WHERE dataFiliacao BETWEEN ‘2017-01-01’ AND ‘2017-06-30’ AND
ALTER idPartido TO ‘PNC’;
d) UPDATE Filiado SET idPartido=’PNC’ WHERE dataFiliacao BETWEEN ‘2017-01-01’ AND
‘2017-06- 30’;
e) UPDATE * FROM Filiado SET idPartido=’PNC’ WHERE dataFiliacao BETWEEN ‘2017-01-01’
AND ‘2017-06-30’;

O conteúdo deste livro eletrônico é licenciado para EDSON LUCIANO DE OLIVEIRA VIGILATO - 03749324174, vedada, por quaisquer meios e a qualquer título,
a sua reprodução, cópia, divulgação ou distribuição, sujeitando-se aos infratores à responsabilização civil e criminal.

www.grancursosonline.com.br 95 de 127
TECNOLOGIA DA INFORMAÇÃO
Banco de Dados Relacionais – Parte V
Patrícia Lima Quintão

a) Errado. O comando ALTER altera a estrutura da tabela e não os registros.


b) Errado. Para atualizar as informações contidas em um campo é necessário usar o comando
SET seguido pelo campo e a informação dos registros que serão alterados.
c) Errado. Novamente o comando ALTER é usado para alterar registros, o que não deve ser feito.
d) Certo. Comando UPDATE usado com o comando SET e o valor que deve ser alterado de
maneira correta. A data de filiação está também sendo corretamente usada na cláusula WHERE.
e) Errado. O comando UPDATE não deve ser usado com (*) asterisco para atualização de
registros em uma tabela e sim usando o comando SET.
Letra d.

061. (FCC/TRE-PR/TÉCNICO JUDICIÁRIO/OPERAÇÃO DE COMPUTADORES/2017) Ao


executar um comando SQL, foram exibidos os dados abaixo.

O comando utilizado foi


a) SELECT nomeFiliado, idPartido FROM Filiado WHERE dataFiliacao IS NULL;
b) SELECT nomeFiliado Nome, idPartido Partido FROM Filiado WHERE idFiliado>11;
c) SELECT nomeFiliado as Nome, idPartido as Partido FROM Filiado WHERE dataFiliacao=NULL
d) SELECT nomeFiliado AS Nome, idPartido AS Partido FROM Filiado WHERE nomeFiliado=’Murilo
Coutinho’ AND nomeFiliado=’Juca Souza’;
e) SELECT nomeFiliado as Nome, idPartido as Partido FROM Filiado WHERE dataFiliacao IS NULL;

a) Errado. O nome do campo que aparece na exibição (Nome, Partido) não é o mesmo da
tabela (nomeFiliado, idPartido). Se não for renomeado irá retornar o mesmo nome do campo
da tabela.
b) Errado. Para renomear o nome de exibição é necessário usar a cláusula “AS”.
c) Errado. A forma correta de verificar que não há dados em um campo da tabela (NULL) deve
ser usado como dataFiliacao is NULL e não dataFiliacao=NULL.
d) Errado. O comando AND é usado indicando que duas ou mais situações são verdadeiras.
Isso quer dizer que um filiado não pode se chamar ‘Murilo Coutinho’ AND ‘Juca Souza’
simultaneamente.
e) Certo. A forma correta de indicar que não há dados de dataFiliacao IS NULL;
Letra e.

O conteúdo deste livro eletrônico é licenciado para EDSON LUCIANO DE OLIVEIRA VIGILATO - 03749324174, vedada, por quaisquer meios e a qualquer título,
a sua reprodução, cópia, divulgação ou distribuição, sujeitando-se aos infratores à responsabilização civil e criminal.

www.grancursosonline.com.br 96 de 127
TECNOLOGIA DA INFORMAÇÃO
Banco de Dados Relacionais – Parte V
Patrícia Lima Quintão

062. (FCC/TRE-PR/TÉCNICO JUDICIÁRIO – OPERAÇÃO DE COMPUTADORES/2017) Para


excluir os filiados ao partido PNC utiliza-se a instrução SQL
a) ERASE * FROM Filiado WHERE idPartido=’PNC’;
b) DELETE FROM Filiado WHERE idPartido=’PNC’;
c) REMOVE * FROM Filiado WHERE idPartido=’PNC’;
d) DELETE RECORD FROM Filiado WHERE idPartido=’PNC’;
e) DELETE Filiado WHERE idPartido=’PNC’;

a) Errado. O comando ERASE não é um comando válido para exclusão de registros em um


banco de dados relacional.
b) Certo. O comando DELETE é usado para apagar registros em tabelas e a cláusula WHERE
indica quais registros serão removidos.
c) Errado. O comando REMOVE também não é um comando válido para apagar registros em
tabelas. Para isso usamos o comando DELETE.
d) Errado. O comando DELETE deve ser usado seguido da cláusula FROM, indicando em qual
tabela os dados serão apagados. O comando RECORD não é válido para se referenciar a
registros em uma tabela.
e) Errado. Sempre usamos o comando DELETE seguido da cláusula FROM, senão é impossível
saber a origem dos dados a serem apagados.
Letra b.

063. (FCC/TRE-PR/TÉCNICO JUDICIÁRIO/OPERAÇÃO DE COMPUTADORES/2017) The


SQL statement SELECT * FROM Partido WHERE presidentePartido LIKE ‘%tes’; finds any values
in the presidentePartido field that
a) don’t have “tes”.
b) have “tes” in the second position.
c) begin with “tes”.
d) have “tes” in any position.
e) ends with “tes”.

O operador LIKE é utilizado para buscar por uma determinada string dentro de um campo com
valores textuais.
O caracter “%” é usado como coringa no operador LIKE. Deste modo, a consulta irá retornar
qualquer “presidentePartido” cujo nome comece com qualquer coisa (quaisquer caracteres) e
termine com “tes”. No exemplo da questão irá retornar o registro “Paulo Prates”. A alternativa
correta é E (ends with “tes”).
Letra e.

O conteúdo deste livro eletrônico é licenciado para EDSON LUCIANO DE OLIVEIRA VIGILATO - 03749324174, vedada, por quaisquer meios e a qualquer título,
a sua reprodução, cópia, divulgação ou distribuição, sujeitando-se aos infratores à responsabilização civil e criminal.

www.grancursosonline.com.br 97 de 127
TECNOLOGIA DA INFORMAÇÃO
Banco de Dados Relacionais – Parte V
Patrícia Lima Quintão

064. (FCC/TRE-PR/TÉCNICO JUDICIÁRIO/OPERAÇÃO DE COMPUTADORES/2017)


Um Técnico criou uma view utilizando o comando CREATE VIEW Filiados_PRC AS SELECT
nomeFiliado, dataFiliacao FROM Filiado WHERE idPartido=’PRC’;.
Para excluir a view criada utiliza-se o comando
a) DROP VIEW Filiados_PRC REFERENCES TABLE Filiado;
b) DELETE VIEW Filiados_PRC;
c) DROP VIEW Filiados_PRC;
d) REVOKE VIEW Filiados_PRC REFERENCES TABLE Filiado;
e) ERASE VIEW Filiados_PRC TABLE CASCADE;

A exclusão de uma VIEW (tabela virtual) é similar a exclusão de uma tabela «real» em um
banco de dados relacional. Para isso usamos o comando DROP VIEW seguido pelo nome dado
à VIEW no momento de sua criação.
Como ela foi criada como Filiados_PRC, a forma correta é DROP VIEW Filiados_PRC, portanto,
alternativa correta é letra c.
Letra c.

065. (FCC/TRE-PR/TÉCNICO JUDICIÁRIO/OPERAÇÃO DE COMPUTADORES/2017) Ao


tentar alterar na tabela Partido o idPartido de PNC para PNCT, foi exibida a mensagem “Cannot
delete or update a parent row: a foreign key constraint fails”.
Isso ocorreu porque o Sistema Gerenciador de Banco de Dados não conseguiu alterar na tabela
Filiado o idPartido dos filiados ao PNC para PNCT.
Para que a alteração fosse bem sucedida, no momento da criação da tabela Filiado, à cláusula
REFERENCES deveria ter sido adicionada a cláusula
a) CONSTRAINT MODIFY CASCADE.
b) ALTER CASCADE.
c) ON UPDATE CASCADE.
d) EXTEND UPDATE.
e) ON ALTER CASCADE.

A criação de uma tabela na base de dados é uma tarefa que deve ser bem pensada. O SGBD
trabalha pela integridade dos dados de forma automática. A integridade referencial é obtida
quando tentamos realizar alguma operação (alteração, exclusão, remoção) em uma tabela na
qual há registros de chave estrangeira que é a chave primária de outra tabela.
Para fazer o SGBD entender que queremos afetar também a tabela referenciada, usamos o
comando CASCADE (em cascata).

O conteúdo deste livro eletrônico é licenciado para EDSON LUCIANO DE OLIVEIRA VIGILATO - 03749324174, vedada, por quaisquer meios e a qualquer título,
a sua reprodução, cópia, divulgação ou distribuição, sujeitando-se aos infratores à responsabilização civil e criminal.

www.grancursosonline.com.br 98 de 127
TECNOLOGIA DA INFORMAÇÃO
Banco de Dados Relacionais – Parte V
Patrícia Lima Quintão

Como a questão pede que façamos a alteração na tabela referenciada, usamos após a cláusula
REFERENCES os comandos ON UPDATE CASCADE. Portanto, alternativa correta é c.
Letra c.

066. (ESAF/SUSEP-TI/2006) Em um Banco de Dados Relacional


a) uma relação está na 1FN (primeira forma normal) se nenhum domínio contiver valo-
res atômicos.
b) uma Chave Primária corresponde ao identificador único de uma determinada relação. Em
uma relação pode haver mais que uma coluna candidata a chave primária.
c) as colunas que irão compor as Chaves Primárias devem ser inicializadas com valores nulos.
d) em uma tabela existirão tantas Chaves Primárias quantas forem as colunas nela existentes.
e) uma Chave Externa é formada por uma coluna de uma tabela que se referencia a uma Colu-
na qualquer de outra tabela. Essas colunas, na tabela destino, não aceitam valores nulos. Uma
tabela destino pode ter apenas uma Chave Externa.

A letra a está errada pois na 1FN, todos devem conter valores atômicos.
A letra b está correta pois mais de uma chave pode ser candidata a chave primária.
A letra c está errada pois a chave primária deve conter valores que identifiquem unicamente
cada registro da tabela, não podendo ser nulos.
Na letra d, a chave primária deve ser única para a tabela.
Já a letra e, está errada pois uma tabela pode conter mais de uma chave externa.
Letra b.

067. (FCC/TRT – 16ª REGIÃO (MA)/ANALISTA JUDICIÁRIO – TECNOLOGIA DA


INFORMAÇÃO/2014) Em um consultório médico as consultas são agendadas de forma que
um cliente não possa realizar mais do que uma consulta com o mesmo médico na mesma data,
porém, pode passar em consulta com outros médicos. O modelo Entidade-Relacionamento do
banco de dados do consultório é apresentado a seguir:

O conteúdo deste livro eletrônico é licenciado para EDSON LUCIANO DE OLIVEIRA VIGILATO - 03749324174, vedada, por quaisquer meios e a qualquer título,
a sua reprodução, cópia, divulgação ou distribuição, sujeitando-se aos infratores à responsabilização civil e criminal.

www.grancursosonline.com.br 99 de 127
TECNOLOGIA DA INFORMAÇÃO
Banco de Dados Relacionais – Parte V
Patrícia Lima Quintão

É correto afirmar que


a) a tabela Cliente não está na Primeira Forma Normal.
b) o campo idMed é chave estrangeira na tabela Medico e chave primária na tabela Medico_
has_Cliente.
c) a tabela Medico_has_Cliente não está na Segunda Forma Normal.
d) a chave primária da tabela Medico_has_Cliente deve ser apenas DataConsulta.<dataconsulta.</
dataconsulta.
e) a tabela Medico_has_Cliente não é necessária. Deve-se ligar as tabelas Medico e Cliente em
um relacionamento de grau 1:n.

a) Errado. Uma tabela está na primeira formal normal quando todos os campos são atômicos.
Como nenhum campo dessa tabela é multivalorado, a tabela está na primeira forma normal.
b) Errado. O campo idMed é chave primária na tabela Medico.
c) Certo. A letra C está correta pois o atributo Especialidade depende somente de idMed que é
parte da chave. Logo a tabela não está na segunda forma normal.
d) Errado. A consulta deve depender dos identificadores do cliente e do médico.
e) Errado. A tabela Medico_has_cliente é necessária para registrar a consulta.

Formas Normais Básicas Principais


1ª Forma Normal
Uma relação estará na 1ª FN se não houver atributo representando agrupamento (não atômi-
co) e nem atributo repetitivo (multivalorado).
2ª Forma Normal
Uma relação estará na 2ª FN, se e somente se, estiver na 1a FN e os seus atributos não chaves
forem dependentes funcionais completos da chave primária.

O conteúdo deste livro eletrônico é licenciado para EDSON LUCIANO DE OLIVEIRA VIGILATO - 03749324174, vedada, por quaisquer meios e a qualquer título,
a sua reprodução, cópia, divulgação ou distribuição, sujeitando-se aos infratores à responsabilização civil e criminal.

www.grancursosonline.com.br 100 de 127


TECNOLOGIA DA INFORMAÇÃO
Banco de Dados Relacionais – Parte V
Patrícia Lima Quintão

3ª Forma Normal
Uma relação estará na 3ª FN, se e somente se, estiver na 2 a FN e todos os seus atributos não
chaves forem dependentes não transitivos da chave primária.
Letra c.

068. (FCC/SABESP/ANALISTA DE GESTÃO/SISTEMAS/2014) Ao invés de executar uma


consulta toda de uma vez, é possível configurar um objeto que encapsula a consulta e, em
seguida, ler o resultado da consulta algumas linhas por vez. Uma razão para seu uso é para
evitar estouro de memória quando o resultado contém um grande número de linhas. Em SGBD,
este objeto é chamado de
a) Constraint.
b) Statement.
c) Trigger.
d) Cursor.
e) Sub Query.

Esta é justamente a definição de Cursor. Trata-se de um recurso oferecido pelos SGBDs que
permite realizar uma varredura num conjunto de registros, oriundos de uma tabela ou de uma
consulta, executando-se um conjunto de operações em cada registro.
Pode-se imaginar um cursor como um comando de repetição. A utilização de cursores permite
a realização de um grupo de comando sobre registros de forma mais simples e sem retornar
uma grande quantidade de linhas.
Aproveitando a questão, vamos ver outros dois conceitos relevantes de SGBDs.
Stored Procedures são programas armazenados no banco de dados. A linguagem utilizada
para criação destes programas é dependente do SGBD utilizado, fornecendo extensões à SQL
padrão. Assim, é possível a criação e uso de variáveis, comentários, instruções de declaração,
testes de condições, looping, etc. Uma stored procedure possui total acesso às instruções
de manipulação SQL, mas geralmente não podem executar instruções DDL. Também pode
receber parâmetros de entrada e fornecer resultados para outras aplicações.
Entre as principais vantagens do uso de stored procedures estão:
• Projeto modular: aplicações que acessam o mesmo banco de dados podem compartilhar
stored procedures, eliminando código duplicado e diminuindo o tamanho das aplicações.
• Manutenção: quando um procedimento é atualizado, todas as mudanças se refletem
automaticamente nas aplicações que usam aquele procedimento.
• Performance: a stored procedure é executada na máquina servidor e não na máquina
cliente, reduzindo o tráfego na rede.
Um trigger é um programa armazenado dentro do banco de dados, que é executado
automaticamente quando certos tipos de eventos acontecem. Estes eventos são baseados

O conteúdo deste livro eletrônico é licenciado para EDSON LUCIANO DE OLIVEIRA VIGILATO - 03749324174, vedada, por quaisquer meios e a qualquer título,
a sua reprodução, cópia, divulgação ou distribuição, sujeitando-se aos infratores à responsabilização civil e criminal.

www.grancursosonline.com.br 101 de 127


TECNOLOGIA DA INFORMAÇÃO
Banco de Dados Relacionais – Parte V
Patrícia Lima Quintão

em tabelas e colunas. Por exemplo, um trigger pode ser executado quando uma linha é incluída
ou excluída de uma tabela.
Os triggers são fundamentais na manutenção da integridade do banco de dados. Podem ser
usados para verificar as restrições de integridade, criar valores automáticos para campos
e chaves primárias, notificar uma outra aplicação sobre mudanças ocorridas e guardar
informações em tabelas de histórico. Um trigger deve ser definido para disparar antes (BEFORE)
ou depois (AFTER) de uma operação baseada em linhas. As operações podem ser: INSERT,
UPDATE ou DELETE.
Letra d.

069. (FCC/ICMS-RJ/AUDITOR-FISCAL DA RECEITA ESTADUAL/2014) Uma das tabelas do


banco de dados da Receita contém dados sigilosos, quais sejam senhas e números de cartões
de crédito de várias pessoas. Como estes dados não podem ficar expostos a todos os usuários
que acessam o banco de dados, pois isso violaria as políticas de privacidade da Receita e leis
estaduais e federais, deve-se
a) manter a tabela privada (ou seja, não conferir permissão de consulta a qualquer usuário) e,
então, criar uma ou mais views que omitam as colunas sigilosas. Como as views não envolvem
armazenamento de dados, não ocupam espaço em disco, o que seria mais uma vantagem.
b) transformar os campos sigilosos em uma superchave, que é um mecanismo dos bancos de
dados que ocultam dados de usuários não autorizados.
c) criar uma view, que é um mecanismo de ocultação de dados. As views criam novas tabelas
que ficam armazenadas em áreas protegidas do disco. Essas tabelas ficariam acessíveis
apenas aos usuários autorizados.
d) manter a tabela de acesso irrestrito, mas criar uma única view que obscureça as colunas
sigilosas usando o comando replace view. Também podese restringir quais linhas um grupo de
usuários pode acessar adicionando uma cláusula constraint à definição da view.
e) criar uma view chamada ACESSORESTRITO usando uma instrução case when e, em seguida,
armazenar as tuplas resultantes em outra tabela de acesso irrestrito. Assim, todos os usuários
poderiam usar a view criada consultando diretamente as tabelas.

A assertiva a é a solução para o problema. Uma visão (view) pode ser considerada como uma
maneira alternativa de observação de dados de uma ou mais entidades (tabelas). Pode ser
considerada também como uma tabela virtual ou uma consulta armazenada. As vantagens de
se usar views são:
• permite economizar tempo, evitando retrabalho;
• aumenta a velocidade de acesso aos dados;
• esconde a complexidade do banco de dados;
• simplifica a gerência de permissão de usuários; e
• organiza os dados a serem exportados.

O conteúdo deste livro eletrônico é licenciado para EDSON LUCIANO DE OLIVEIRA VIGILATO - 03749324174, vedada, por quaisquer meios e a qualquer título,
a sua reprodução, cópia, divulgação ou distribuição, sujeitando-se aos infratores à responsabilização civil e criminal.

www.grancursosonline.com.br 102 de 127


TECNOLOGIA DA INFORMAÇÃO
Banco de Dados Relacionais – Parte V
Patrícia Lima Quintão

Uma vez que a view é gerada, o seu conjunto de dados é armazenado em uma tabela tem-
porária (virtual), tornando o acesso às informações mais rápido. Deve-se ressaltar que uma
view não existe fisicamente, é uma tabela virtual. No entanto, os dados contidos em uma view
podem ser modificados normalmente.
Para criar uma visão, você seleciona apenas as colunas da tabela (ou tabelas) básica em que
está interessado, podendo omitir as colunas sigilosas. A sintaxe básica para se criar uma visão
é a seguinte:
CREATE VIEW nome_view AS
SELECT coluna(s)
FROM tabela
WHERE condição
Conforme visto, a letra a é a resposta da questão.
Letra a.

070. (FCC/ANALISTA JUDICIÁRIO-TI/TRT-19/2011) Para uma tabela estar na FNBC (Forma


Normal Boyce-Codd ), ela
a) não precisa da normalização 1FN.
b) precisa estar somente na 2FN.
c) também está normalizada na 3FN.
d) tem de estar normalizada até a 4FN.
e) tem de estar normalizada até a 5FN.

Para estar na FNBC (Forma Normal Boyce-Codd), além da 3FN, todo atributo não chave deve
depender funcionalmente diretamente da chave primária, ou seja, não pode haver dependências
entre atributos não chave.
Assim, ela também está normalizada na 3FN.
Letra c.

071. (FCC/TRT-23/ANALISTA JUDICIÁRIO-TI/2011) No contexto de normalização, quando


a tabela não contém tabelas aninhadas e não possui colunas multivaloradas; não contém
dependências parciais, embora contenha dependências transitivas, diz-se que ela está na
a) primeira forma normal (1FN).
b) segunda forma normal (2FN).
c) terceira forma normal (3FN).
d) quarta forma normal (4FN).
e) quinta forma normal (5FN).

O conteúdo deste livro eletrônico é licenciado para EDSON LUCIANO DE OLIVEIRA VIGILATO - 03749324174, vedada, por quaisquer meios e a qualquer título,
a sua reprodução, cópia, divulgação ou distribuição, sujeitando-se aos infratores à responsabilização civil e criminal.

www.grancursosonline.com.br 103 de 127


TECNOLOGIA DA INFORMAÇÃO
Banco de Dados Relacionais – Parte V
Patrícia Lima Quintão

A banca cita que não possui tabelas aninhadas, ou seja, não tem atributos compostos, e não
possui campos multivalorados. Então, até esse ponto já está pelo menos na 1FN.
Em seguida, destaca que a tabela não contém dependências parciais, ou seja, nenhum atributo
não chave depende funcionalmente de apenas uma parte da chave primária. Então, está
já na 2FN.
Em seguida, cita que a tabela possui dependências transitivas, o que contraria a 3FN. Ficamos
então na 2FN.
Letra b.

072. (ESAF/PREF. DE NATAL/RN/AUDITOR DO TESOURO NACIONAL/2008) A “Normalização”


é um método utilizado para analisar um Banco de Dados e obter o mínimo de redundância e o
máximo de integridade de dados.

A normalização consiste em um processo formal de exame e agrupamento de dados para:


suportar melhor as mudanças futuras; minimizar o impacto destas mudanças sobre a base de
dados. Trata-se de um conjunto de regras que leva à construção de modelos mais robustos,
com menos dependências entre seus elementos e menos redundância de informações.
Normalização é, portanto, uma atividade de verificação do modelo lógico. Principais objetivos:
reduzir as redundâncias; reduzir a necessidade de reestruturar as tabelas do banco de dados
quando novos tipos de dados são introduzidos.
Com relação às suas Formas Normais mais comuns, apesar de existirem outras, temos:
• 1ª Forma Normal (1FN): toda relação deve ter uma chave primária e deve-se garantir
que todo atributo seja atômico. Atributos compostos devem ser separados.
Por exemplo, um atributo Endereço deve ser subdividido em seus componentes: Logradouro,
Número, Complemento, Bairro, Cidade, Estado e CEP.
Além disso, atributos multivalorados devem ser discriminados separadamente ou separados
em uma outra relação. Por exemplo, um atributo multivalorado Telefones poderia ser separado
em Telefone Residencial, Telefone Comercial e Telefone Celular ou, ainda, ser convertido em
outra relação que pudesse representar um número indeterminado de telefones.
• 2ª Forma Normal (2FN): toda relação deve estar na 1FN e devem-se eliminar
dependências funcionais parciais, ou seja, todo atributo não chave deve ser totalmente
dependente da chave primária.
Como exemplo, uma relação que contenha os atributos Código da Obra, Código do Fornecedor,
Nome do Fornecedor e Preço de Venda, considerando que a chave primária é composta pelos
atributos Código da Obra e Código do Fornecedor, não está na Segunda Forma Normal, uma
vez que o Nome do Fornecedor depende apenas do Código do Fornecedor, e não do Código
O conteúdo deste livro eletrônico é licenciado para EDSON LUCIANO DE OLIVEIRA VIGILATO - 03749324174, vedada, por quaisquer meios e a qualquer título,
a sua reprodução, cópia, divulgação ou distribuição, sujeitando-se aos infratores à responsabilização civil e criminal.

www.grancursosonline.com.br 104 de 127


TECNOLOGIA DA INFORMAÇÃO
Banco de Dados Relacionais – Parte V
Patrícia Lima Quintão

da Obra. Uma nova relação (Fornecedor) deve ser criada contendo os campos Código do
Fornecedor (como chave) e Nome do Fornecedor. Na relação original, ficariam os atributos
Código da Obra e o Código do Fornecedor, ambos formando a chave primária composta, e
o atributo Preço de Venda. Além disso, o atributo Código do Fornecedor também seria uma
chave estrangeira para a nova relação criada. Esta forma normal ajuda a diminuir redundâncias
de informações criadas indevidamente.
• 3ª Forma Normal (3FN): toda relação deve estar na 2FN e devem-se eliminar
dependências funcionais transitivas, ou seja, todo atributo não chave deve ser
mutuamente independente.
Como exemplo, uma relação que contenha os atributos Matrícula do Funcionário (atributo
chave), Nome do Funcionário, Código do Departamento e Nome do Departamento não está na
Terceira Forma Normal. O Nome do Departamento é dependente do Código do Departamento,
e não da Matrícula do Funcionário. Uma mudança no nome do departamento, por exemplo,
levaria a modificações em todos os funcionários daquele departamento.
Para eliminar este problema, cria-se uma nova relação (Departamento) contendo Código do
Departamento e Nome do Departamento. Na relação original, retira-se o Nome de Departamento,
mantendo-se o Código do Departamento, agora como chave estrangeira. Esta forma normal
também ajuda a diminuir redundâncias e aumentar a independência das relações.
Certo.

073. (FCC/INFRAERO/ANALISTA DE SISTEMA/BANCO DE DADOS E ADMINISTRADOR DE


DADOS/2011) Em relação à normalização de dados, considere:
I – Se existir um atributo multivalorado, deve-se criar um novo atributo que individualize a
informação multivalorada.
II – Se existir um atributo não atômico, deve-se dividi-lo em outros atributos que sejam
atômicos.
III – Todos os atributos primos devem depender funcionalmente de toda a chave primária.

Os itens I, II e III referem-se direta e respectivamente a


a) 1FN, 1FN e 2FN.
b) 1FN, 2FN e 2FN.
c) 1FN, 2FN e 3FN.
d) 2FN, 2FN e 3FN.
e) 2FN, 3FN e 3FN.

Quanto à questão, os itens I e II estão relacionados à 1FN. Deve-se garantir que todo atributo
contenha valores atômicos.
O item III está relacionado à 2FN, que destaca que todo atributo que não seja chave deve ser
totalmente dependente da chave primária.
Letra a.

O conteúdo deste livro eletrônico é licenciado para EDSON LUCIANO DE OLIVEIRA VIGILATO - 03749324174, vedada, por quaisquer meios e a qualquer título,
a sua reprodução, cópia, divulgação ou distribuição, sujeitando-se aos infratores à responsabilização civil e criminal.

www.grancursosonline.com.br 105 de 127


TECNOLOGIA DA INFORMAÇÃO
Banco de Dados Relacionais – Parte V
Patrícia Lima Quintão

074. (FUNCAB/PRODAM/PROCESSAMENTO DE DADOS AMAZONAS S.A /ANALISTA DE


TI-ANALISTA DE BANCO DE DADOS/2014) O objetivo principal de um banco de dados é
armazenar informações, com segurança, e disponibilizá-las quando houver uma solicitação
qualquer. A relação é um objeto criado no banco de dados que mantém as informações
armazenadas e possui o conceito que é:
a) um subconjunto do produto cartesiano dos atributos-chave da relação.
b) o próprio conjunto do produto cartesiano dos atributos-chave da relação.
c) um subconjunto do produto cartesiano dos domínios dos atributos não chave da relação.
d) o próprio conjunto do produto cartesiano dos domínios dos atributos da relação.
e) um subconjunto do produto cartesiano dos domínios dos atributos da relação.

A questão tenta confundir o candidato apresentando o conceito de relação na qual os atributos


são definidos a partir de um subconjunto dos valores de seus domínios.
Letra e.

075. (FUNCAB/PRODAM – PROCESSAMENTO DE DADOS AMAZONAS S.A /ANALISTA


DE TI/ANALISTA DE BANCO DE DADOS/2014) Seja a relação R constituída de n atributos
denominados de A, A , A ,..., A . O domínio de um atributo A qualquer uma dessa relação define-
se por dom(A). A indicação do número total de valores, ou cardinalidade, em um domínio de
um atributo A qualquer é |dom(A)|, considerando que todos os domínios são finitos. O produto
de cardinalidades de todos os domínios, definido da seguinte forma |dom(A )| x |dom(A )| x
|dom(A )|... |dom(A )|, representa:
a) o número total de possíveis tuplas da relação R.
b) a quantidade de valores de domínios existentes da relação R.
c) o número total possíveis de cardinalidades das tuplas da relação R.
d) a quantidade de valores de cardinalidades de domínios da relação R.
e) a quantidade de possíveis valores de cardinalidades de domínios das tuplas da relação R.

A multiplicação de todos os possíveis valores de todos os atributos de uma tabela define a


quantidade de possíveis registros (tuplas). Em geral este valor é muito grande visto que a
maioria dos tipos utilizados possui valores bem amplos.
Letra a.

076. (ESAF/STN/DESENV SISTEMAS/2008) Se uma dada variável de relação R possui seus


atributos não-chaves mutuamente independentes e irredutivelmente dependentes da chave
primária, R está na
a) primeira forma normal – 1FN.
b) segunda forma normal – 2FN.
O conteúdo deste livro eletrônico é licenciado para EDSON LUCIANO DE OLIVEIRA VIGILATO - 03749324174, vedada, por quaisquer meios e a qualquer título,
a sua reprodução, cópia, divulgação ou distribuição, sujeitando-se aos infratores à responsabilização civil e criminal.

www.grancursosonline.com.br 106 de 127


TECNOLOGIA DA INFORMAÇÃO
Banco de Dados Relacionais – Parte V
Patrícia Lima Quintão

c) terceira forma normal – 3FN.


d) forma normal nula.
e) desnormalização.

1ª Forma Normal (1FN): toda relação deve ter uma chave primária e devese garantir que todo
atributo seja atômico. Atributos compostos devem ser separados.
2ª Forma Normal (2FN): toda relação deve estar na 1FN e devem-se eliminar dependências
funcionais parciais, ou seja, todo atributo não chave deve ser totalmente dependente da
chave primária.
3ª Forma Normal (3FN): toda relação deve estar na 2FN e devem-se eliminar dependências
funcionais transitivas, ou seja, todo atributo não chave deve ser mutuamente independente.
Letra c.

077. (CETRO/ANVISA/ANALISTA ADMINISTRATIVO – ÁREA 5/2013) Quanto à normalização


de banco de dados, marque V para verdadeiro ou F para falso e, em seguida, assinale a
alternativa que apresenta a sequência correta.
I – É o processo matemático formal fundamentado na teoria dos conjuntos.
II – Substitui gradativamente um conjunto de entidades e relacionamentos por outro que
diminui ou elimina as anomalias de atualização.
III – Permite a dependência transitiva entre atributos.
IV – Torna o modelo de dados mais estável, isto é, sujeito a um número menor de manutenções.

a) F/ V/ V/ V
b) F/ V/ V/ F
c) V/ F/ F/ F
d) V/ V/ F/ V
e) V/ F/ F/ V

A normalização é um processo progressivo e hierárquico e deve ser feito na ordem: 1FN ⇒ 2FN ⇒
3NF etc. O objetivo é eliminar inconsistência, redundância, anomalias e melhorar a recuperação
da informação e um modelo só estará normalizado se passar por todas as formas normais.
Em um modelo de dados não se pode permitir a dependência transitiva entre atributos. Isso
quer dizer que um atributo deve depender exclusivamente da chave e não de outro atributo que
não seja a chave.
Um modelo pode estar na 1FN e na 2FN e ainda conter um atributo que depende de outro que
não seja a chave. Isso só seria verificado na 3FN que trata exatamente deste tema.

O conteúdo deste livro eletrônico é licenciado para EDSON LUCIANO DE OLIVEIRA VIGILATO - 03749324174, vedada, por quaisquer meios e a qualquer título,
a sua reprodução, cópia, divulgação ou distribuição, sujeitando-se aos infratores à responsabilização civil e criminal.

www.grancursosonline.com.br 107 de 127


TECNOLOGIA DA INFORMAÇÃO
Banco de Dados Relacionais – Parte V
Patrícia Lima Quintão

A única alternativa incorreta, portanto, é a III, porque de acordo com a 3ª Forma Normal (3FN)
toda relação deve estar na 2FN e devem-se eliminar dependências funcionais transitivas, ou
seja, todo atributo não chave deve ser mutuamente independente.
Letra d.

078. (CESPE/TCE-PE/ANALISTA DE CONTROLE EXTERNO/AUDITORIA DE CONTAS


PÚBLICAS/2017) A respeito de bancos de dados relacionais, julgue os itens subsequentes.
Uma visão (view) é derivada de uma ou mais relações e armazena os dados em uma tabela
física do banco de dados, visando tornar ágeis as consultas.

Conforme vimos em nosso curso, quando existem várias tabelas em um banco de dados, e o
administrador de banco de dados não quer mostrar todas as informações, ele pode criar o que
chamamos de visão (ou view) para mostrar somente parte das informações da(s) tabela(s).
Ele pode fazer isso por questão de segurança, por questão de estruturação e/ou também por
questão de performance.
Quando digo “por questão de segurança”, quero dizer que pode existir alguns campos em
alguma(s) tabela(s) que não podem ser exibidos. Por isso, ao ter que mostrar os dados de uma
tabela, especificamente, temos que ocultar certos campos, tais como senha, salários etc.
Com relação à questão de estruturação, de vez em quando, acontece que certas informações
de uma tabela devem ser relacionadas com outras informações de outras tabelas. Neste
caso, facilitaria bastante se pudesse haver somente uma tabela com todas as informações
necessárias e já organizadas para, por exemplo, o programador.
Quanto à performance, uma view é montada de forma que ela não existe fisicamente dentro
do banco de dados. Ela é colocada em memória para que o acesso seja feito de forma mais
rápido. Além disso, todos os “JOIN”, que são pontos de ineficiência em junções de tabelas, são
feitos de forma que, ao acessar a view, eles não são mais necessários, dando mais eficiência
às consultas.
Com isso, o erro do item está em afirmar que os dados são armazenados em uma tabela física
no banco de dados.
Errado.

079. (CESPE/TCE-SC/AUDITOR DE TI/2016) Com relação aos bancos de dados relacionais,


julgue os próximos itens.
Denomina-se visão uma tabela única derivada de uma ou mais tabelas básicas do banco. Essa
tabela existe em forma física e viabiliza operações ilimitadas de atualização e consulta.

O conteúdo deste livro eletrônico é licenciado para EDSON LUCIANO DE OLIVEIRA VIGILATO - 03749324174, vedada, por quaisquer meios e a qualquer título,
a sua reprodução, cópia, divulgação ou distribuição, sujeitando-se aos infratores à responsabilização civil e criminal.

www.grancursosonline.com.br 108 de 127


TECNOLOGIA DA INFORMAÇÃO
Banco de Dados Relacionais – Parte V
Patrícia Lima Quintão

Em banco de dados, uma visão, também conhecida pela palavra “view”, é uma tabela simples
que é derivada de outras tabelas, e que não existe necessariamente em sua forma física. A
intenção de uma view é unir algumas tabelas, montar uma só para facilitar as consultas. Uma
view pode, ou não, ser criada permitindo atualização dos dados nas tabelas originais.
Analisando a questão, temos: “Denomina-se visão uma tabela única derivada de uma ou mais
tabelas básicas do banco (correto). Essa tabela existe em forma física (não necessariamente)
e viabiliza operações ilimitadas de atualização (não necessariamente) e consulta (correto).”.
Portanto, item errado.
Quando se diz que a visão não existe em forma física, entenda que a tabela em si, derivada
de outras tabelas, não está presente no banco de dados, e sim, em memória. Já as tabelas
originais, a partir das quais será formada a visão, estão em suas formas físicas, isto é, presentes
no banco de dados.
Errado.

080. (FCC/TJ-AP/ANALISTA JUDICIÁRIO – ÁREA APOIO ESPECIALIZADO – TECNOLOGIA DA


INFORMAÇÃO/2014)
Considere a tabela de um banco de dados relacional, sendo ID a chave primária, Nome do tipo
caractere e Fone do tipo inteiro.

Essa tabela NÃO está na primeira forma normal porque


a) contém atributos numéricos e literais em uma única tabela, o que não é permitido.
b) não contém atributos do tipo data, impedindo a determinação do instante de geração dos
registros.
c) contém uma chave primária simples, o que impede a confirmação do proprietário do
banco de dados.
d) a chave primária é do tipo inteiro, impossibilitando a geração do código do banco de dados.
e) o atributo Fone contém valores que podem ser divididos, mantendo ainda um significado
(não atômicos).

A normalização é a aplicação de várias regras ou formas normais para garantir a eficiência no


armazenamento e recuperação dos dados. Veja os conceitos das principais formas normais:
• 1FN: define que um atributo deve ser atômico (indivisível) e não pode ser multivalorados
(composto). Isso quer dizer que cada atributo de um registro deve ser único e simples.

O conteúdo deste livro eletrônico é licenciado para EDSON LUCIANO DE OLIVEIRA VIGILATO - 03749324174, vedada, por quaisquer meios e a qualquer título,
a sua reprodução, cópia, divulgação ou distribuição, sujeitando-se aos infratores à responsabilização civil e criminal.

www.grancursosonline.com.br 109 de 127


TECNOLOGIA DA INFORMAÇÃO
Banco de Dados Relacionais – Parte V
Patrícia Lima Quintão

Exemplo: um modelo que tenha uma tabela com o atributo Endereço: ( Rua, Número, Cidade
) deve ser decomposto. Neste caso, é necessário criar três atributos na tabela Rua, Número e
Cidade.
No exemplo da questão, a tabela NÃO está na primeira forma normal porque o atributo Fone
contém valores que podem ser divididos, mantendo ainda um significado (não atômicos).
• A 2FN define que os atributos de uma tabela que não forem chaves tenham DEPENDÊNCIA
FUNCIONAL COMPLETA da chave primária. Isso quer dizer que se a chave primária da
tabela for composta, todos demais atributos (não chave) deve depender de todos os
campos que formam a chave e não por parte dela.

Exemplo: imagine uma tabela de VENDA com seus atributos (cod_produto, num_pedido,
nome_produto, quantidade, valor_unitario, subtotal). Levando em conta que cod_produto e
num_pedido seja a chave primária composta, o atributo nome_produto não depende de toda
chave, mas sim de parte dela (somente o cod_produto). Portanto, não está na 2FN! Para
normalizar é necessário remover o atributo nome_produto para uma outra tabela (PRODUTO)
que se relacione com a tabela VENDA. TODOS OS ATRIBUTOS QUE NÃO SÃO CHAVE DEVE
DEPENDER DA CHAVE POR COMPLETO.
• A 3FN define que não deve haver DEPENDÊNCIA TRANSITIVA entre atributos não chave.
Isso quer dizer que todos os atributos que não são chave devem depender somente da
chave e não entre si.

Exemplo: Imagine a tabela VENDA do exemplo anterior normalizada (cod_produto, num_


pedido, quantidade, valor_unitario, subtotal). Chave primária composta pelos atributos cod_
produto, num_pedido. Vejamos o atributo subtotal! ELE NÃO DEPENDE DA CHAVE, mas sim
dos atributos quantidade e valor_unitário. NÃO PODE HAVER DEPENDÊNCIA TRANSITIVA.

Muito importante: há uma hierarquia na normalização! Só estará na 2FN se, e somente se,
estiver na 1FN e só estará na 3FN se, e somente se, estiver na 2FN.
Letra e.

081. (FCC/TST/ANALISTA JUDICIÁRIO/ANÁLISE DE SISTEMAS/2017) Considere, por


hipótese, os requisitos abaixo, levantados durante a modelagem de dados:
I. A entidade Empregado exerce dois papéis: Gerente e Gerenciado. Cada empregado tem um
só gerente e um gerente chefia diversos empregados.
II. Um empregado (entidade Empregado) ocupa somente um cargo (entidade Cargo) que tam-
bém pode ser ocupado por outros empregados.
III. Um departamento (entidade Departamento) aloca diversos empregados (entidade Empre-
gado). Um empregado só pode ser alocado em um único departamento.
IV. Os atributos identificadores das entidades Empregado, Cargo e Departamento são, respec-
tivamente, Matrícula, Código do Cargo e Código do Departamento.

O conteúdo deste livro eletrônico é licenciado para EDSON LUCIANO DE OLIVEIRA VIGILATO - 03749324174, vedada, por quaisquer meios e a qualquer título,
a sua reprodução, cópia, divulgação ou distribuição, sujeitando-se aos infratores à responsabilização civil e criminal.

www.grancursosonline.com.br 110 de 127


TECNOLOGIA DA INFORMAÇÃO
Banco de Dados Relacionais – Parte V
Patrícia Lima Quintão

Em um modelo normalizado, são chaves estrangeiras em I, II e III, respectivamente,


a) Matrícula (do gerenciado), Código do Cargo e Código do Departamento.
b) Matrícula (do gerente), Matrícula e Código do Departamento.
c) Matrícula (do gerente), Código do Cargo e Código do Departamento.
d) Matrícula (do gerenciado), Matrícula e Matrícula.
e) Matrícula (do gerenciado), Código do Cargo e Matrícula.

Em I, há um autorrelacionamento porque um empregado também é um gerente, logo a chave


estrangeira é a Matrícula do gerente.
Em II, há uma relação entre EMPREGADO e CARGO. Como um empregado pode ter somente
um cargo e um cargo pode ser de vários empregados, a chave estrangeira é Código do Cargo
que fica na entidade EMPREGADO.
Em III, há uma relação entre EMPREGADO e DEPARTAMENTO. Como um empregado pode ser
alocado em somente um departamento e um departamento pode ter vários empregados, a
chave estrangeira é Código do Departamento que fica na entidade EMPREGADO.
Logo, a alternativa correta é letra c.
Letra c.

082. (FCC/MPE-PE/ANALISTA MINISTERIAL – INFORMÁTICA/2018) Considere a consulta


escrita em SQL abaixo.

O resultado da execução dessa consulta será composto por registros da tabela Lista, exibindo
o campo Item, com a condição de que seus valores devem
a) ter em sua formação a sequência A%S e ter número de caracteres variando entre 3 e o nú-
mero máximo especificado para esse campo, quando da criação da tabela Lista.
b) ter pelo menos duas letras A e duas letras S e ter número de caracteres variando entre 5 e
o número máximo especificado para esse campo, quando da criação da tabela Lista.
c) ter ou uma letra A, ou uma letra S e ter número de caracteres variando entre 3 e o número
máximo especificado para esse campo, quando da criação da tabela Lista.
d) começar com a letra A, terminar com a letra S e ter número de caracteres variando entre 2
e o número máximo especificado para esse campo, quando da criação da tabela Lista.
e) começar com as letras A ou S e terminar também com uma dessas duas letras, além de
ter número de caracteres variando entre 5 e o número máximo especificado para esse campo,
quando da criação da tabela Lista.

O conteúdo deste livro eletrônico é licenciado para EDSON LUCIANO DE OLIVEIRA VIGILATO - 03749324174, vedada, por quaisquer meios e a qualquer título,
a sua reprodução, cópia, divulgação ou distribuição, sujeitando-se aos infratores à responsabilização civil e criminal.

www.grancursosonline.com.br 111 de 127


TECNOLOGIA DA INFORMAÇÃO
Banco de Dados Relacionais – Parte V
Patrícia Lima Quintão

O operador LIKE é utilizado na cláusula WHERE para pesquisar um padrão específico em uma
coluna (faz a busca por uma determinada string dentro de um campo com valores textuais).
Existem dois curingas utilizados em conjunto com o operador LIKE:

% Percentual (%) representa zero, um, ou múltiplos caracteres.

_ Underscore (_) representa um simples caracter.


Assim, a consulta irá retornar qualquer “Item” cujo nome comece com o caractere “A” e termine
com “S”, tendo zero, um ou múltiplos caracteres entre “A” e “S”. Dentre essa possibilidade,
temos a letra d como a resposta da questão.
Letra d.

083. (CESPE/IPHAN/ANALISTA I – ÁREA 7/2018) Acerca da abordagem relacional,


da normalização e do SGBD, entre outros conceitos relativos a banco de dados, julgue o
item a seguir.
Uma relação está na quarta forma normal (4FN) quando o conteúdo do registro não pode ser
mais reconstruído (efetuar join) a partir de outros registros menores extraídos desse registro
considerado.

A quarta forma normal (4FN) diz respeito à dependência multivalorada em uma relação e não
a restrições da efetivação de Joins como afirma o item na questão proposta.
A utilização de join permite a busca de um registro navegando pelas tabelas sem a necessidade
de replicar o campo em outra tabela. Quando um campo (atributo) está em outra tabela sem a
necessidade de estar na tabela pesquisada esta relação não está na 5FN.
Desde modo, ao referir-se o uso de join para recuperar informações a partir de outros registros
o item da questão refere-se à 5FN e não à 4FN.
Errado.

Oracle

084. (FCC/MPUND/ANAL-INF-BANCO-DE-DADOS/2007) Uma estrutura física de bancos de


dados ORACLE inclui
a) datafiles, redo log files e control files, apenas.
b) backup files, redo log files e control files, apenas.
c) redo log files e control files, apenas.
d) datafiles e backup files, apenas.

O conteúdo deste livro eletrônico é licenciado para EDSON LUCIANO DE OLIVEIRA VIGILATO - 03749324174, vedada, por quaisquer meios e a qualquer título,
a sua reprodução, cópia, divulgação ou distribuição, sujeitando-se aos infratores à responsabilização civil e criminal.

www.grancursosonline.com.br 112 de 127


TECNOLOGIA DA INFORMAÇÃO
Banco de Dados Relacionais – Parte V
Patrícia Lima Quintão

e) datafiles, redo log files, control files e backup files.

a) Certo.
A estrutura física de banco de dados Oracle apresenta:
• Control Files: contêm dados sobre o próprio BD, também conhecidos como metadados,
que são informações sobre a estrutura física. Sua leitura é essencial para que o software
do banco de dados consiga abrir os arquivos de dados. Estes arquivos podem ser
multiplexados para dar mais segurança, mas somente um será utilizado como primário.
Os Control Files (arquivos de controle) também guardam informações utilizadas pelo
RMAN (Recovery Manager), solução de backup da Oracle.
• Data Files: arquivos de armazenamento final dos dados dos usuários ou das aplicações
no BD. Cabe destacar que um banco de dados pode ter múltiplos tablespaces e, cada
um, pode estar armazenado em um ou mais arquivos de dados. No entanto, um arquivo
é associado a um único tablespace.
• Redo Log Files (on line): se um banco de dados parar por qualquer motivo, desde que
não ocorra perda de arquivos de dados, a instância poderá voltar ao estado que estava
antes do travamento aplicando os Redo Log Files.
b) Errado. Backup Files: cópias de segurança utilizadas para a recuperação de banco de dados
quando o arquivo original é danificado. Este pertence à estrutura de Arquivos Adicionais.
c) Errado. Faltando o item Data Files.
d) Errado. Faltando o item Redo Log Files e Control Files. O item Backup Files não faz parte
do escopo.
e) Errado. O item Backup Files não faz parte do escopo.
Letra a.

085. (FCC/MPUND/ANAL-INF-BANCO-DE-DADOS/2007) Sobre os bancos de dados


ORACLE, analise:
I – Uma área global de sistema constitui uma instância do banco de dados.
II – Toda vez que um banco de dados é iniciado, uma área global de sistema é alocada e os
processos background são iniciados.
III – Quando uma instância é fechada (shut down) os processos background são desalocados.

Está correto o que consta em


a) I e II, apenas.
b) I, II e III.
c) II, apenas.
d) II e III, apenas.
e) III, apenas.

O conteúdo deste livro eletrônico é licenciado para EDSON LUCIANO DE OLIVEIRA VIGILATO - 03749324174, vedada, por quaisquer meios e a qualquer título,
a sua reprodução, cópia, divulgação ou distribuição, sujeitando-se aos infratores à responsabilização civil e criminal.

www.grancursosonline.com.br 113 de 127


TECNOLOGIA DA INFORMAÇÃO
Banco de Dados Relacionais – Parte V
Patrícia Lima Quintão

I – Errado. Uma área global de sistema é um local na memória em que o banco de dados Oracle
armazena informações pertinentes sobre si mesmo. Essa estrutura de memória é acessível a
todos os processos do usuário e os processos do servidor. Um conjunto de processos do
servidor do Oracle que tem sua própria área global do sistema e um conjunto de banco de
dados associados é chamado de instância Oracle.
II – Certo. Todas as vezes que o Oracle é inicializado, um grupo de buffers de memória
denominado Área Global de Sistema (SGA) é alocado e alguns processos que permanecem
em background são inicializados. A combinação desses buffers de memória e dos processos
em background forma uma instância Oracle. Para que o banco de dados não se confunda, cada
instância é identificada pelo que é conhecido como identificadores de sistema (SID – system
identifier). Na maioria dos computadores UNIX, ele é definido pela variável “ORACLE_SID”.
III – Errado. Durante um desligamento normal, o Oracle fecha todas as sessões, fecha o banco
de dados, desmonta os arquivos de dados e em seguida, encerra a instância em duas etapas: a
primeira de forma “livre”, em que o SGA é removido da memória e, finalmente, o encerramento
dos processos em background. O Oracle possui três modos de desligamento: normal, em que
se espera o término da execução de um trabalho, isto pode demorar horas; imediato, encerra-se
todas as sessões e não existe uma forma de restaurar as transações não confirmadas; abortar,
encerra todo o trabalho ativo. Com isso podemos verificar que nem sempre os processos em
background são desalocados, isso depende do modo como foi realizado o desligamento.
Letra c.

086. (FCC/MPUND/ANAL-INF BANCO DE DADOS/2007) A ferramenta LogMiner é uma


solução ORACLE disponível ao administrador de bancos de dados para gerenciar
a) desastres.
b) falhas de sistema.
c) falhas de dados.
d) falhas de segurança.
e) erros humanos.

O LogMiner é uma ferramenta de auditoria de bancos de dados Oracle, que permite aos
administradores localizar facilmente as alterações no banco de dados, possibilitando análises
sofisticadas de dados, e fornecendo capacidades de realizar a reparação de danos lógicos
através de erros gerados por usuários.
Letra e.

O conteúdo deste livro eletrônico é licenciado para EDSON LUCIANO DE OLIVEIRA VIGILATO - 03749324174, vedada, por quaisquer meios e a qualquer título,
a sua reprodução, cópia, divulgação ou distribuição, sujeitando-se aos infratores à responsabilização civil e criminal.

www.grancursosonline.com.br 114 de 127


TECNOLOGIA DA INFORMAÇÃO
Banco de Dados Relacionais – Parte V
Patrícia Lima Quintão

087. (FCC/MPUND/ANAL-INF BANCO DE DADOS/2007) Para gerenciamento das tarefas no


ambiente ORACLE, o Scheduler utiliza apenas os seguintes elementos básicos:
a) schedules e jobs.
b) programas, databases e jobs.
c) databases, schedules e jobs.
d) programas, schedules e jobs.
e) programas e databases.

As organizações têm muitas tarefas, e lidar manualmente com cada uma delas pode ser
assustador. Para ajudar a simplificar as tarefas de gestão, bem como oferecer um rico conjunto
de funcionalidades para as necessidades complexas de programação, a Oracle fornece um
conjunto de funções e procedimentos no pacote DBMS_SCHEDULER. Essas funções são
chamadas de Scheduler, e elas podem ser executadas a partir de qualquer programa PL / SQL.
O Agendador permite que os administradores de banco de dados e desenvolvedores de
aplicativos possam controlar quando e onde irão realizar várias tarefas no ambiente de banco de
dados. Essas tarefas podem ser demoradas e complicadas, por isso a utilização do Agendador
ajuda a melhorar a gestão e o planejamento destas tarefas. Além disso, garante que muitas
tarefas de rotina de dados ocorram sem intervenção manual, reduzindo os custos operacionais,
implementando rotinas mais confiáveis, minimizando o erro humano, e diminuindo o tempo
necessário.
No Scheduler, a maioria dos componentes são objetos de banco de dados como uma tabela,
que permite a utilização normal de privilégios Oracle. Os elementos básicos do Scheduler são:
Programas, Jobs e Schedules.
Letra d.

088. (FCC/MPUND/ANAL-INF BANCO DE DADOS/2007) NÃO é um tipo de constraint de


integridade que o ORACLE utiliza para impor restrições na entrada de valores das colunas:
a) not null.
b) check.
c) trigger.
d) unique key.
e) primary key.

As constraints são restrições estabelecidas para uma coluna no banco de dados, e podem ter
os seguintes tipos:
• Primary Key (PK): esta restrição cria um índice único para um conjunto de colunas ou
uma coluna para Chave Primária;

O conteúdo deste livro eletrônico é licenciado para EDSON LUCIANO DE OLIVEIRA VIGILATO - 03749324174, vedada, por quaisquer meios e a qualquer título,
a sua reprodução, cópia, divulgação ou distribuição, sujeitando-se aos infratores à responsabilização civil e criminal.

www.grancursosonline.com.br 115 de 127


TECNOLOGIA DA INFORMAÇÃO
Banco de Dados Relacionais – Parte V
Patrícia Lima Quintão

• Unique: esta constraint determina que uma coluna não poderá ter 2 linhas com o mesmo
valor;
• Foreign Key (FK ou Chave Estrangeira): determina uma coluna ou um conjunto de
colunas que possuem valores em outras tabelas, referente a uma referência ou um
relacionamento;
• Check: especifica a condição que a coluna precisa para salvar o registro;
• Not Null: determina que a coluna tem preenchimento obrigatório.
Letra c.

MySQL

089. (FCC/CÂMARA LEGISLATIVA DO DISTRITO FEDERAL/CONSULTOR TÉCNICO


LEGISLATIVO – PRODUTOR DE MULTIMÍDIA/2018) Na construção de um portal com
recursos multimeios, usando um sistema de gestão de conteúdo WordPress hospedado em
servidor Linux, webserver Apache e escrito em PHP, o sistema de gestão de banco de dados
adequado é o
a) Pyton.
b) PHPMyAdmin.
c) MySQL.
d) MS Access.
e) Node.js.

Dentre as opções listadas na questão são SGBDs o MS Access (mais limitado) e o MySQL, que
utiliza a linguagem SQL como interface. Enquanto software livre, o MySQL teve seu crescimento
estimulado pelo pacote LAMP (Linux, Apache, MySQL e PHP).
Letra c.

090. (CESPE/AUDITOR MUNICIPAL DE CONTROLE INTERNO (CGM JOÃO PESSOA)/


TECNOLOGIA DA INFORMAÇÃO/ DESENVOLVIMENTO DE SISTEMAS/2018) A respeito de
bancos de dados, julgue o item a seguir.
O MySQL Utilities é um pacote de utilitários voltados à manutenção e à administração de
servidores MySQL. Cada um desses utilitários encapsula comandos primitivos e os agrupa
para que possam ser utilizados no cumprimento de operações compostas a partir da execução
de um único comando.

Isso mesmo! Trata-se de um pacote de utilitários que são usados para manutenção e
administração de servidores MySQL.
Certo.

O conteúdo deste livro eletrônico é licenciado para EDSON LUCIANO DE OLIVEIRA VIGILATO - 03749324174, vedada, por quaisquer meios e a qualquer título,
a sua reprodução, cópia, divulgação ou distribuição, sujeitando-se aos infratores à responsabilização civil e criminal.

www.grancursosonline.com.br 116 de 127


TECNOLOGIA DA INFORMAÇÃO
Banco de Dados Relacionais – Parte V
Patrícia Lima Quintão

091. (CESPE/INPI/ANALISTA DE PLANEJAMENTO – DESENVOLVIMENTO E MANUTENÇÃO


DE SISTEMAS/2013) Acerca da linguagem SQL nos bancos de dados MySql e Oracle, julgue
os 2 itens seguintes. No MySql 5.0, as views não podem conter subquery na cláusula FROM
nem podem fazer referência ao sistema ou a variáveis do usuário.

No SQL, uma view é uma tabela virtual baseada no conjunto resultado de uma cláusula
SQL. Uma view contém linhas e colunas, como uma tabela real. Os campos de uma view são
provenientes de uma ou mais tabelas reais de um banco de dados. Você pode adicionar funções
SQL, cláusulas WHERE e JOIN, além de apresentar dados como se os dados estivessem vindo
de uma única tabela.
Para a criação de views é necessário saber que existem as seguintes restrições:
A cláusula SELECT não pode conter uma subquery na cláusula FROM.
A cláusula SELECT não pode fazer referência ao sistema ou a variáveis do usuário.
Certo.

092. (CESPE/INPI/ANALISTA DE PLANEJAMENTO – DESENVOLVIMENTO E MANUTENÇÃO


DE SISTEMAS/2013) Dado que o MySql 5 não dispõe de comando SQL específico para se
renomear uma tabela, devem ser realizadas duas operações: inicialmente, a exclusão da
tabela, por meio do comando DROP TABLE nome_da_tabela; e, posteriormente, sua criação,
por meio do comando CREATE TABLE novo_nome_da_tabela; diferentemente, portanto, do
procedimento a ser adotado no Oracle 11g, cujo comando SQL ALTER TABLE nome_da_tabela
RENAME novo_nome_da_tabela é específico para essa operação.

No MySQL 5 existe um comando específico para mudar o nome de uma dada tabela, chamada
RENAME TABLE, cuja sintaxe é a seguinte:
RENAME TABLE Nome_Antigo TO Nome_Novo;
Vale lembrar que o comando RENAME TABLE renomeará automaticamente a tabela, deixando-a
travada durante a execução do comando. Também, cabe destacar que para renomear uma
tabela é necessário ter privilégio ALTER e DROP na tabela antiga e CREATE e INSERT na
tabela nova.
Errado.

SQL Server

093. (CESPE/SERPRO/ANALISTA – DESENVOLVIMENTO DE SISTEMAS/2013) Acerca de


SQL, julgue os itens a seguir.
Sentenças com o comando SELECT INTO com a cláusula ON podem ser utilizadas para fazer
becape de tabelas, desde que a tabela de destino esteja no mesmo banco de dados da tabela
de origem.

O conteúdo deste livro eletrônico é licenciado para EDSON LUCIANO DE OLIVEIRA VIGILATO - 03749324174, vedada, por quaisquer meios e a qualquer título,
a sua reprodução, cópia, divulgação ou distribuição, sujeitando-se aos infratores à responsabilização civil e criminal.

www.grancursosonline.com.br 117 de 127


TECNOLOGIA DA INFORMAÇÃO
Banco de Dados Relacionais – Parte V
Patrícia Lima Quintão

O comando SELECT INTO somente seleciona dados de uma tabela e insere em uma nova
tabela, o que significa que este comando apenas cria uma tabela a partir dos resultados de
uma consulta.
Errado.

094. (FUNCAB/PRODAM/AMAZONAS/ANALISTA DE TECNOLOGIA DA INFORMAÇÃO/


BANCO DE DADOS/2010) O MS-SQL Server apresenta uma ferramenta que exibe um histórico
das ações efetuadas no banco de dados, inclusive as que estão sendo executadas no momento.
Esta ferramenta é conhecida como:
a) query analyzer.
b) profile.
c) list action.
d) tool analyzer.
e) action manager.

Eis uma questão interessante sobre as ferramentas administrativas do SQL Server.


O histórico obtido a partir da captura das instruções enviadas para um banco de dados
é chamado de trace e o SQL Server utiliza a ferramenta chamada SQL Server Profiler para
capturar, filtrar, organizar e apresentar estas instruções.
Conforme destaca http://msdn.microsoft.com/pt-br/library/cc580638.aspx

(...) o SQL Server Profiler pode ser usado para visualizar sessões ao vivo de atividades no SQL Server
do banco de dados atual. Podemos colher informações importantes como, por exemplo, quantas
consultas o banco de dados está executando, quanto tempo estão demandando estas consultas,
qual banco de dados está executando qual consulta e assim por diante.

O conteúdo deste livro eletrônico é licenciado para EDSON LUCIANO DE OLIVEIRA VIGILATO - 03749324174, vedada, por quaisquer meios e a qualquer título,
a sua reprodução, cópia, divulgação ou distribuição, sujeitando-se aos infratores à responsabilização civil e criminal.

www.grancursosonline.com.br 118 de 127


TECNOLOGIA DA INFORMAÇÃO
Banco de Dados Relacionais – Parte V
Patrícia Lima Quintão

Figura – Sessão SQL Server do Profiler


(Fonte: http://msdn.microsoft.com/pt-br/library/cc580638.aspx)

Item b. Item parcialmente correto!! O nome correto é profiler, e essa foi a assertiva considerada
correta pela banca.
Item a. Item errado. Essa assertiva é a única que contém o nome de uma ferramenta válida no
conjunto de tecnologias disponibilizadas junto com o SQL Server. Contudo, o Query Analyzer é
uma ferramenta utilizada para envio de instruções SQL e não para capturar um trace do banco
de dados. Com o Query Analyzer, podemos executar consultas e stored procedures e obter
uma exibição visual do plano de execução do SQL Server.

Figura – Resultados do Query Analyzer


(Fonte: http://msdn.microsoft.com/pt-br/library/cc580638.aspx)

Letra
O conteúdo deste livrob.
eletrônico é licenciado para EDSON LUCIANO DE OLIVEIRA VIGILATO - 03749324174, vedada, por quaisquer meios e a qualquer título,
a sua reprodução, cópia, divulgação ou distribuição, sujeitando-se aos infratores à responsabilização civil e criminal.

www.grancursosonline.com.br 119 de 127


TECNOLOGIA DA INFORMAÇÃO
Banco de Dados Relacionais – Parte V
Patrícia Lima Quintão

095. (ESAF/CGU/ANALISTA DE FINANÇAS E CONTROLE/DESENVOLVIMENTO DE


SISTEMAS DA INFORMAÇÃO/2012) SQL Server Utility do SQL Server 2008 R2 permite a
monitoração e a gestão centralizada de aplicações de bases de dados e instâncias do SQL
Server, a partir de uma única interface de gestão designada por
a) UPC (Utility Process Capability).
b) CPU (Central Process Utility).
c) UCPP (Utility Control Process Package).
d) UCP (Utility Control Point).
e) UCMP (Utility Control Management Point).

Segundo http://msdn.microsoft.com/pt-br/library/ee210548%28v=sql.105%29.aspx, o SQL


Server Utility modela as entidades relacionadas ao SQL Server de uma organização em uma
exibição unificada. O Gerenciador do Utilitário e os pontos de vista do SQL Server Utility no SQL
Server Management Studio (SSMS) fornecem aos administradores uma exibição holística da
integridade dos recursos do SQL Server por meio de uma instância do SQL Server que funciona
como um UCP (Utility Control Point – ponto de controle do utilitário). As entidades que podem
ser exibidas no SQL Server UCP incluem:
• Instâncias do SQL Server;
• Aplicativos da camada de dados;
• Arquivos de banco de dados;
• Volumes de armazenamento.

O conteúdo deste livro eletrônico é licenciado para EDSON LUCIANO DE OLIVEIRA VIGILATO - 03749324174, vedada, por quaisquer meios e a qualquer título,
a sua reprodução, cópia, divulgação ou distribuição, sujeitando-se aos infratores à responsabilização civil e criminal.

www.grancursosonline.com.br 120 de 127


TECNOLOGIA DA INFORMAÇÃO
Banco de Dados Relacionais – Parte V
Patrícia Lima Quintão

Figura. Arquitetura do SQL Server Utility no SQL Server 2008 R2.


Fonte: http://msdn.microsoft.com/pt-br/library/ee210548%28v=sql.105%29.aspx

Letra d.

096. (ESAF/CGU/ANALISTA DE FINANÇAS E CONTROLE – PROVA 3 – DESENVOLVIMENTO


DE SISTEMAS DA INFORMAÇÃO/2012) São características do Report Builder 3.0 do SQL
Server 2008 R2:
a) Map Layouts. Indicadores. User Parts. Essentials.
b) Map Layers. Indicadores. Report Parts. Cálculos agregados.
c) Table Layers. Build Units. Report Parts. Cálculos complexos.

O conteúdo deste livro eletrônico é licenciado para EDSON LUCIANO DE OLIVEIRA VIGILATO - 03749324174, vedada, por quaisquer meios e a qualquer título,
a sua reprodução, cópia, divulgação ou distribuição, sujeitando-se aos infratores à responsabilização civil e criminal.

www.grancursosonline.com.br 121 de 127


TECNOLOGIA DA INFORMAÇÃO
Banco de Dados Relacionais – Parte V
Patrícia Lima Quintão

d) Information levels. Indicadores. Data segments. Fatores agregados.


e) Map Scales. Descritores. Report Paths. Cálculos e gráficos.

O Report Builder (Construtor de Relatórios) 3.0 do SQL Server 2008 R2 permite uma série
de aprimoramentos, como os destacados em http://msdn.microsoft.com/pt-br/library/
ee633667(v=sql.105).aspx. Por exemplo, pode-se adicionar mapas, camadas de gráficos (Map
Layers), minigráficos e indicadores a seus relatórios, pode-se girar o texto em 270 graus, criar
expressões que calculam uma agregação de uma agregação (fazer cálculos agregados), criar
partes de relatório (report parts), etc.
Letra b.

097. (ESAF/CGU/ANALISTA DE FINANÇAS E CONTROLE – PROVA 3 – DESENVOLVIMENTO


DE SISTEMAS DA INFORMAÇÃO/2012) O modelo de segurança do SQL Server 2008 R2
baseia-se em dois conceitos claros:
a) Central e spatial.
b) Principals e attached.
c) Principals e securables.
d) Global e local.
e) Priorities e availabilities.

O site http://technet.microsoft.com/pt-br/library/bb283235.aspx destaca que Entidades


(Principals) são acessos de indivíduos, grupos e processos concedidos ao SQL Server.
“Protegíveis” (“Securables)” são servidores, bancos de dados e objetos que o banco de dados
contém. Cada um tem um conjunto de permissões que pode ser configurado para ajudar a
reduzir a área da superfície do SQL Server.
Letra c.

098. (ESAF/CVM/ANALISTA DE TIC – INFRAESTRUTURA – PROVA 2/2010) No SQL Server


2005, são modelos de recuperação que ajudam a planejar os backups
a) Sector, Central e Bulk-logged.
b) Simple, Full e Bulk-logged.
c) Simple, Principal e Partial-logged.
d) Strong, Full e Low-logged.
e) Initial, Optimized e Bulk-logged.

O conteúdo deste livro eletrônico é licenciado para EDSON LUCIANO DE OLIVEIRA VIGILATO - 03749324174, vedada, por quaisquer meios e a qualquer título,
a sua reprodução, cópia, divulgação ou distribuição, sujeitando-se aos infratores à responsabilização civil e criminal.

www.grancursosonline.com.br 122 de 127


TECNOLOGIA DA INFORMAÇÃO
Banco de Dados Relacionais – Parte V
Patrícia Lima Quintão

O site http://msdn.microsoft.com/pt-br/library/ms189275.aspx destaca que as operações de


backup e restauração do SQL Server ocorrem no contexto do modelo de recuperação do banco
de dados, projetados para controlar a manutenção de log de transações.
Um modelo de recuperação é uma propriedade de banco de dados que controla como as
transações são registradas, se o log de transações exige (e permite) backup e que tipos de
operações de restauração estão disponíveis.
Nesse contexto, existem três modelos de recuperação, que são: simples, completo e bulk-
logged. Geralmente, um banco de dados usa o modelo de recuperação completa ou o modelo
de recuperação simples. É possível alternar para outro modelo de recuperação do banco de
dados a qualquer momento.

Modelo de
Descrição
recuperação

Sem backups de log, eliminando essencialmente a


Simples necessidade de gerenciar o espaço de log de transações.

Requer backups de log. Nenhum trabalho é perdido devido a


um arquivo de dados perdido ou danificado. Pode executar
Completo uma recuperação pontual (por exemplo, antes de um erro de
aplicativo ou usuário).

Requer backups de log. Um suplemento do modelo de


recuperação completa que permite operações de cópia em
Bulk-logged massa de alto desempenho. Reduz o uso de espaços de
log usando o mínimo de registro em log para a maioria das
operações em massa.
Letra b.

EnterpriseDB

099. (CESPE/CEBRASPE/MEC/ADMINISTRADOR DE BANCO DE DADOS/2011) Julgue o


item subsequente, relativo ao EnterpriseDB.
O Postgres Plus Advanced Server da EnterpriseDB pode executar aplicações escritas para
bancos de dados Oracle, por intermédio do núcleo do PostgreSQL modificado, para reconhecer
Oracle PL/SQL.

Isso mesmo! Postgres Plus Advanced Server reconhece Oracle PL/SQL.


Certo.

O conteúdo deste livro eletrônico é licenciado para EDSON LUCIANO DE OLIVEIRA VIGILATO - 03749324174, vedada, por quaisquer meios e a qualquer título,
a sua reprodução, cópia, divulgação ou distribuição, sujeitando-se aos infratores à responsabilização civil e criminal.

www.grancursosonline.com.br 123 de 127


TECNOLOGIA DA INFORMAÇÃO
Banco de Dados Relacionais – Parte V
Patrícia Lima Quintão

GABARITO
1. b 37. a 73. a
2. c 38. a 74. e
3. c 39. c 75. a
4. d 40. d 76. c
5. e 41. c 77. d
6. a 42. a 78. E
7. b 43. e 79. E
8. c 44. a 80. e
9. b 45. a 81. c
10. C 46. e 82. d
11. b 47. d 83. E
12. a 48. C 84. a
13. c 49. E 85. c
14. E 50. E 86. e
15. C 51. a 87. d
16. C 52. b 88. c
17. b 53. a 89. c
18. e 54. c 90. C
19. C 55. E 91. C
20. C 56. a 92. E
21. C 57. e 93. E
22. E 58. E 94. b
23. c 59. b 95. d
24. b 60. d 96. b
25. d 61. e 97. c
26. c 62. b 98. b
27. a 63. e 99. C
28. b 64. c
29. b 65. c
30. E 66. b
31. C 67. c
32. C 68. d
33. b 69. a
34. c 70. c
35. e 71. b
36. d 72. C

O conteúdo deste livro eletrônico é licenciado para EDSON LUCIANO DE OLIVEIRA VIGILATO - 03749324174, vedada, por quaisquer meios e a qualquer título,
a sua reprodução, cópia, divulgação ou distribuição, sujeitando-se aos infratores à responsabilização civil e criminal.

www.grancursosonline.com.br 124 de 127


TECNOLOGIA DA INFORMAÇÃO
Banco de Dados Relacionais – Parte V
Patrícia Lima Quintão

REFERÊNCIAS BIBLIOGRÁFICAS
BRAGA, Regina. Notas de aula, UFJF, 2012.

CAMARGO, W. B. de. SQL Server 2005 – Operadores Like e Not Like. Disponível em: https://
www.devmedia.com.br/sql-server-2005-operadores-like-e-not-like/17292. Acesso em: fev. de
2020.

DEVMEDIA. Entendendo e usando índices – Parte 1. Disponível em: http://www.devmedia.


com.br/entendendo-e-usando-indices-parte-1/6567. Acesso em: fev. 2020.

DEVMEDIA. PostgreSQL Tutorial. Disponível em: <https://www.devmedia.com.br/postgresql-


tutorial/33025>. Acesso em: 11 nov. 2019.

DEV.MYSQL. DBA and Developer Guide to MySQL 5.6 disponível em

https://dev.mysql.com/tech-resources/articles/mysql-5.6.html

____________Comando de Create table. Disponível em:

<https://dev.mysql.com/doc/refman/5.5/en/create-table.html>. Acesso em: 11 nov. 2019.

ELMASRI, R.; NAVATHE, S. B. Sistemas de Banco de Dados. 6. ed. São Paulo: Pearson Addison
Wesley, 2011.

HEUSER, Carlos Alberto. Projeto de banco de dados. 4. ed. Porto Alegre: Sagra, 2001.

HERNANDEZ, Michael J. Aprenda a projetar seu próprio banco de dados. Tradução Patrizia
Tallia Parenti. São Paulo: Makron, 2000.

KORTH, Henry F.; SILBERSCHATZ, Abraham. Sistema de banco de dados. Tradução Mauricio
Heihachiro Galvan Abe. 6. ed. São Paulo: Makron, 2011.

LAUDON, K. C; LAUDON, J. P. Sistemas de Informações Gerenciais. São Paulo: Pearson Prentice


Hall, 2007.

MACHADO, Felipe Nery Rodrigues; ABREU, Maurício Pereira de. Projeto de banco de dados:
uma visão prática. 6. ed. São Paulo: Érica, 2000.

Oracle. Disponível em: <https://docs.oracle.com/cd/B28359_01/server.111/b28318/intro.


htm#CNCPT001>. Acesso em: 02/05/2019.

O conteúdo deste livro eletrônico é licenciado para EDSON LUCIANO DE OLIVEIRA VIGILATO - 03749324174, vedada, por quaisquer meios e a qualquer título,
a sua reprodução, cópia, divulgação ou distribuição, sujeitando-se aos infratores à responsabilização civil e criminal.

www.grancursosonline.com.br 125 de 127


TECNOLOGIA DA INFORMAÇÃO
Banco de Dados Relacionais – Parte V
Patrícia Lima Quintão

O’BRIEN, James A. Sistemas de informação: e as decisões gerenciais na era da Internet.


Tradução Cid Knipel Moreira. São Paulo: Saraiva, 2003.

PRACIANO, E. Full-text search (FTS). Disponível em:

<http://elias.praciano.com/2015/05/introducao-a-buscas-via-fulltext-no-mysql/>. Acesso em:


11 nov. 2019.

POSTGRESQL. PostgreSQL Documentation. Disponível em:

<https://www.postgresql.org/docs/11/intro-whatis.html>. Acesso em: 11 nov. 2019.

POSTGRESQL. PostgreSQL Manual. Disponível em:

<https://www.postgresql.org/files/documentation/pdf/12/postgresql-12-

A4.pdf>. Acesso em: 11 nov. 2019.

QUINTÃO, P. L. Notas de aula da disciplina “Tecnologia da Informação”. 2020.

Revistas SQL Magazine (ed. 31 e 32).

SOFTBLUE. Curso SQL Completo. 2018. Disponível em:

<http://www.softblue.com.br/site/curso/id/3/CURSO+DE+SQL+COMPLETO+BASICO+AO+AV
ANCADO+ON+LINE+BD03+GRATIS>. Acesso em: 24 set.2020.

ROB, P.; CORONEL, C. Sistemas de Banco de Dados Projeto, Implementação e Gerenciamento.


2011.

SETZER, Valdemar W. Banco de dados: conceitos, modelos, gerenciadores, projeto lógico,


projeto físico. 3. ed. rev. São Paulo: E. Blücher, 2002.

SETZER, http://www.ime.usp.br/~vwsetzer/dado-info.html. 2001.

TAKAI, O.K.; ITALIANO,I.C.; FERREIRA, E.F. Introdução a Banco de

W3SCHOOLS. SQL Tutorial. Disponível em:

<https://www.w3schools.com/sql/>. Acesso em: 15 nov. 2019.

O conteúdo deste livro eletrônico é licenciado para EDSON LUCIANO DE OLIVEIRA VIGILATO - 03749324174, vedada, por quaisquer meios e a qualquer título,
a sua reprodução, cópia, divulgação ou distribuição, sujeitando-se aos infratores à responsabilização civil e criminal.

www.grancursosonline.com.br 126 de 127


Patrícia Quintão
Mestre em Engenharia de Sistemas e computação pela COPPE/UFRJ, Especialista em Gerência de
Informática e Bacharel em Informática pela UFV. Atualmente é professora no Gran Cursos Online;
Analista Legislativo (Área de Governança de TI), na Assembleia Legislativa de MG; Escritora e Personal &
Professional Coach.
Atua como professora de Cursinhos e Faculdades, na área de Tecnologia da Informação, desde 2008. É
membro: da Sociedade Brasileira de Coaching, do PMI, da ISACA, da Comissão de Estudo de Técnicas de
Segurança (CE-21:027.00) da ABNT, responsável pela elaboração das normas brasileiras sobre gestão da
Segurança da Informação.
Autora dos livros: Informática FCC - Questões comentadas e organizadas por assunto, 3ª. edição e 1001
questões comentadas de informática (Cespe/UnB), 2ª. edição, pela Editora Gen/Método.
Foi aprovada nos seguintes concursos: Analista Legislativo, na especialidade de Administração de Rede, na
Assembleia Legislativa do Estado de MG; Professora titular do Departamento de Ciência da Computação
do Instituto Federal de Educação, Ciência e Tecnologia; Professora substituta do DCC da UFJF; Analista de
TI/Suporte, PRODABEL; Analista do Ministério Público MG; Analista de Sistemas, DATAPREV, Segurança da
Informação; Analista de Sistemas, INFRAERO; Analista - TIC, PRODEMGE; Analista de Sistemas, Prefeitura
de Juiz de Fora; Analista de Sistemas, SERPRO; Analista Judiciário (Informática), TRF 2ª Região RJ/ES, etc.

@coachpatriciaquintao /profapatriciaquintao

@plquintao t.me/coachpatriciaquintao

O conteúdo deste livro eletrônico é licenciado para EDSON LUCIANO DE OLIVEIRA VIGILATO - 03749324174, vedada, por quaisquer meios e a qualquer título,
a sua reprodução, cópia, divulgação ou distribuição, sujeitando-se aos infratores à responsabilização civil e criminal.

Você também pode gostar