Você está na página 1de 173

Aula 05

Tecnologia da Informação (Parte I) p/ TCM-GO - Com Videoaulas

Professor: Victor Dalton

00428113176 - Rodrigo
Tecnologia da Informação para TCM/Goiás
Auditor de Controle Externo - Informática
Prof Victor Dalton Aula 05
AULA 05: Bancos de dados

SUMÁRIO PÁGINA
1.Bancos de Dados: Conceitos Básicos 2
1.1 Definições 2
1.2 SGBD 4
1.3 Características de um banco de dados 6
1.4 Trabalhadores envolvidos 9
1.5 Vantagens da abordagem SGBD 12
1.6 Desvantagens da abordagem SGBD 13
1.7 Arquitetura três esquemas de um SGBD 13
1.8 Categorias de modelos de dados 16
1.9 Tipos de modelos de dados 19
1.10 Modelo Entidade-Relacionamento 23
1.11 Cardinalidade 26
1.12 Modelo Relacional 31
1.13 Gerenciamento de Transações 42
1.14 Catálogo de Dados 43
1.15 Views 45
2. Noções de SQL 49
Exercícios Comentados 65
Considerações Finais 133
Exercícios 134
Gabarito 172

Olá pessoal!

Vamos ministrar Banco de Dados. Particularmente acho a matéria muito


interessante. É o tipo de assunto que, uma vez aprendido, dificilmente os
conhecimentos básicos saem da cabeça.

Já sei que você se assustou com o tamanho da apostila! Mas BD é um


assunto extenso mesmo, é bom digeri-lo aos poucos.

Vamos ao que interessa?

00428113176

Observação importante: este curso é protegido por direitos


autorais (copyright), nos termos da Lei 9.610/98, que altera,
atualiza e consolida a legislação sobre direitos autorais e dá
outras providências.

Grupos de rateio e pirataria são clandestinos, violam a lei e


prejudicam os professores que elaboram os cursos. Valorize o
trabalho de nossa equipe adquirindo os cursos honestamente
através do site Estratégia Concursos ;-)
Prof. Victor Dalton
www.estrategiaconcursos.com.br 1 de 172

00428113176 - Rodrigo
Tecnologia da Informação para TCM/Goiás
Auditor de Controle Externo - Informática
Prof Victor Dalton Aula 05
BANCOS DE DADOS

1. BANCOS DE DADOS: CONCEITOS BÁSICOS

1.1 Definições

Antes do estudo de SGBDs propriamente dito, cabe destacar a


diferença entre dado, informação e conhecimento.

Um dado é uma informação quantificada. Ex: Paulo tem 23 anos.

Uma informação é uma abstração produzida a partir dos dados. Ex:


Muitos dos nossos clientes são jovens (informação), uma vez que 80%
dos nossos clientes cadastrados possuem entre 18 e 25 anos (dado).

Conhecimento, por sua vez, envolve uma abstração em um nível


mais profundo, tomando por base os dados e as informações, como forma
de subsidiar decisões. Ex: O nosso produto atrai muitos jovens
(conhecimento extraído com base em dados e informações). Precisamos
enfatizar nosso marketing nesse público alvo, ou precisamos modificar
nosso produto para atingir outras faixas etárias (decisões de negócio),
etc. Veremos mais sobre produção de conhecimento em Sistemas de
Apoio à Decisão.

Entendidos esses aspectos, podemos responder o que é Banco de


Dados. 00428113176

Acredito que você já tenha uma “desconfiança” do que seja um


banco de dados. Entretanto, a definição correta de banco de dados gira
em torno de duas ideias chave: relacionamento e finalidade.

Um banco de dados é um conjunto de dados relacionados com uma


finalidade específica. Esta finalidade pode a produção de informação,
para determinado público alvo (uma empresa, ou um órgão público, por
exemplo), bem como suportar um negócio (como o estoque de produtos
de um fornecedor, ou um cadastro de funcionários, ou tudo isso junto).

Prof. Victor Dalton


www.estrategiaconcursos.com.br 2 de 172

00428113176 - Rodrigo
Tecnologia da Informação para TCM/Goiás
Auditor de Controle Externo - Informática
Prof Victor Dalton Aula 05

Um banco de dados tem alguma fonte da qual o dado é derivado,


algum grau de interação com eventos no mundo real e um público
interessado no seu conteúdo. Para que um banco de dados seja preciso e
confiável o tempo todo, as mudanças no minimundo (mundo real)
precisam ser refletidas nele o mais breve possível.

Um banco de dados pode ter qualquer tamanho e complexidade. As


informações precisam ser organizadas e gerenciadas de modo que os
usuários possam consultar, recuperar e atualizar os dados quando
necessário.

Um banco de dados pode ser gerado e mantido manualmente ou


computadorizado. Um banco de dados computadorizado pode ser criado e
mantido por um grupo de programas de aplicação específicos para essa
tarefa ou por um sistema gerenciador de banco de dados.

Eu costumo brincar, e acho que isso ajuda a memorizar, que não se


deve confundir Banco de Dados com “Bando de Dados”. Dados
desorganizados não servem para nada; um conjunto dados que se
relacionam, com alguma finalidade, esses sim compõem um Banco de
Dados.

Bancos de dados, normalmente, são a “base” de um sistema, ou


software. Um sistema de venda de produtos online, por exemplo,
provavelmente possui em seu banco de dados uma vasta quantidade de
registros de clientes e produtos. Esses dados provavelmente relacionam-
se através dos pedidos, que devem conter dados dos clientes e dos
produtos. Os pedidos também serão dados. Começou a visualizar?
00428113176

Nossa próxima definição importante é a de Esquema de Banco de


Dados.

Um esquema do banco de dados é uma coleção de objetos de um


banco de dados que estão disponíveis para um determinado usuário ou
grupo. Os objetos de um esquema são estruturas lógicas que se referem
diretamente aos dados do banco de dados. Eles incluem estruturas, tais
como tabelas, visões, seqüências, procedimentos armazenados,
sinônimos, índices, agrupamentos e links de banco de dados. Falaremos
mais sobre esses elementos ao longo da apostila, fique tranquilo.

Prof. Victor Dalton


www.estrategiaconcursos.com.br 3 de 172

00428113176 - Rodrigo
Tecnologia da Informação para TCM/Goiás
Auditor de Controle Externo - Informática
Prof Victor Dalton Aula 05

Ou seja, ao se elaborar um sistema, seu projeto de banco de dados é


idealizado em um esquema (como a figura acima).

Falei, pouco antes, que os softwares normalmente estão “em cima”


de um Banco de Dados. O esquema é essa ferramenta utilizada para a
representação do banco como um todo, podendo servir tanto para facilitar
o entendimento do Banco de Dados como para implementar o próprio
Banco de Dados.

Com base no esquema acima, por exemplo, um Administrador de


Dados já consegue criar o Banco. Visualize a imagem acima, veja as
tabelas e os relacionamentos, e não se incomode se estiver entendendo
pouco ou quase nada. Iremos ver e rever essa imagem, explicando os
detalhes dela aos poucos. Tudo bem?
00428113176

1.2 SGBD

Imagine agora um sistema de uma grande vendedora de produtos


online, ou mesmo o sistema de vendas de uma grande companhia aérea.
Essas empresas vendem produtos e serviços por segundo, para usuários
distribuídos geograficamente pelo mundo inteiro. Deste simples exemplo,
percebe-se que Bancos de Dados precisam de gerenciamento próprio, e
eficiente, para coordenar um volume gigantesco de operações
simultâneas.

Prof. Victor Dalton


www.estrategiaconcursos.com.br 4 de 172

00428113176 - Rodrigo
Tecnologia da Informação para TCM/Goiás
Auditor de Controle Externo - Informática
Prof Victor Dalton Aula 05

Para tal, existem os Sistemas Gerenciadores de Bancos de


Dados. O SGBD é o conjunto de programas de computador (softwares)
responsáveis pelo gerenciamento de uma (ou mais) base de dados.
Seu principal objetivo é retirar da aplicação cliente (o sistema da empresa
propriamente dito) a responsabilidade de gerenciar o acesso, a
manipulação e a organização dos dados. O SGBD disponibiliza uma
interface para que seus clientes possam incluir, alterar ou consultar dados
previamente armazenados. Em bancos de dados relacionais a interface é
constituída pelas APIs (Application Programming Interface) ou drivers do
SGBD, que executam comandos na linguagem SQL (Structured Query
Language).

Certamente você já ouviu falar de alguns SGBDs, como o Oracle, o


IBM DB2, o Microsoft SQL Server, MySQL, ou até mesmo o
PostgreSQL, que é gratuito.

Sistemas Gerenciadores de Bancos de Dados: softwares comerciais.


00428113176

Os SGBDs facilitam o processo de definição, construção, manipulação


e compartilhamento de bancos de dados entre diversos usuários e
aplicações.
Definir um banco de dados envolve especificar os tipos, estruturas
e restrições dos dados a serem armazenados.
Construir um banco de dados é o processo de armazenar os dados
em algum meio controlado pelo SGBD.
Manipular um banco de dados inclui funções no banco de dados
como consultas para recuperar dados específicos, atualização que reflita
mudanças no minimundo e geração de relatórios com base nos dados.
Prof. Victor Dalton
www.estrategiaconcursos.com.br 5 de 172

00428113176 - Rodrigo
Tecnologia da Informação para TCM/Goiás
Auditor de Controle Externo - Informática
Prof Victor Dalton Aula 05
Compartilhar banco de dados é permitir que diversos usuários e
programas acessem-no simultaneamente.
Outras funções importantes fornecidas pelo SGBD incluem proteção e
manutenção do banco de dados por um longo período. A proteção pode
ser contra defeitos (falhas) de hardware e software ou contra acesso não
autorizado ou malicioso (segurança). A manutenção permite a evolução
do sistema de banco de dados ao longo do ciclo de vida, à medida que os
requisitos mudem com o tempo.

Sistema de Banco de Dados: ilustração


00428113176

1.3 Características de um banco de dados

Na abordagem de banco de dados, um único repositório mantém


dados que são definidos uma vez e depois acessados por vários usuários.
Os nomes ou rótulos de dados são definidos uma vez, e usados
repetidamente por consultas, transações e aplicações.

Prof. Victor Dalton


www.estrategiaconcursos.com.br 6 de 172

00428113176 - Rodrigo
Tecnologia da Informação para TCM/Goiás
Auditor de Controle Externo - Informática
Prof Victor Dalton Aula 05
Natureza de Autodescrição de um Sistema de Banco de Dados

Na abordagem de banco de dados, seu sistema contém não apenas o


banco de dados, mas também uma definição ou descrição completa de
sua estrutura e restrições.

Essa definição é armazenada no catálogo do SGBD (falaremos mais


sobre ele adiante). A informação armazenada no catálogo é chamada
metadados (também será melhor explicado posteriormente).

O catálogo é usado pelo software de SGBD e também pelos usuários


do banco de dados que precisam de informações sobre a estrutura do
banco de dados (tipo e o formato dos dados). O software SGBD precisa
trabalhar de forma satisfatória com qualquer quantidade de aplicações de
banco de dados.

Isolamento Entre Programas e Dados, e Abstração de Dados

Na maioria dos casos, qualquer mudança na estrutura de dados do


SGBD não exige mudanças nos programas que acessam o banco de
dados. A estrutura dos arquivos de dados é armazenada no catálogo do
SGBD separadamente dos programas de acesso.

Essa propriedade é chamada de independência programa-dados.

Em alguns tipos de sistemas de banco de dados os usuários podem


definir operações (funções ou métodos) sobre como os dados como parte
das definições de banco de dados. A interface de uma operação inclui o
nome da operação e os tipos de dados de seus argumentos (parâmetros).
A implementação (método) da operação é especificada separadamente e
00428113176

pode ser alterada sem afetar a interface. Isso é chamado de


independência programa-operação.

A independência programa-dados e a independência programa-


operação só são possíveis em virtude de uma característica do SGBD, que
é a abstração de dados.

Um SGBD oferece aos usuários uma representação conceitual de


dados, que não inclui muitos detalhes de como os dados são armazenados
ou como as operações são implementadas. Um modelo de dados é um

Prof. Victor Dalton


www.estrategiaconcursos.com.br 7 de 172

00428113176 - Rodrigo
Tecnologia da Informação para TCM/Goiás
Auditor de Controle Externo - Informática
Prof Victor Dalton Aula 05
tipo de abstração de dados usado para oferecer essa representação
conceitual.

Na abordagem de banco de dados, a estrutura detalhada e a


organização de cada arquivo são armazenadas no catálogo. Os usuários
do banco de dados e os programas de aplicação se referem à
representação conceitual dos arquivos, e o SGBD extrai os detalhes do
armazenamento do arquivo do catálogo quando estes são necessários
para os módulos de acesso a arquivo do SGBD.

Suporte para Múltiplas Visões dos Dados

Cada usuário do banco de dados pode exigir um ponto de vista ou


visão (view) diferente do banco de dados. Uma visão pode ser um
subconjunto do banco de dados ou conter dado virtual que é derivado dos
arquivos de banco de dados, mas não estão armazenados explicitamente.
Um SGBD multiusuário precisa oferecer facilidades para definir
múltiplas visões.

Compartilhamento de Dados e Processamento de Transação


Multiusuário

Um SGBD multiusuário precisa permitir que múltiplos usuários


acessem o banco de dados ao mesmo tempo. O SGBD precisa incluir um
software de controle de concorrência para garantir que vários usuários
tentando atualizar o mesmo dados faça isso de uma maneira controlada,
de modo que o resultado dessas atualizações seja correto. Esses tipos de
aplicações são chamados OLTP (On-Line Transaction Processing,
processamento de transações on-line).
00428113176

Por exemplo, se vários agentes de viagem tentam reservar um


assento em um voo de uma companhia aérea. O SGBD precisa garantir
que cada assento só possa ser acessado por um agente de cada vez para
que seja atribuído a um único passageiro.

Um papel do software SGBD multiusuário é garantir que as


transações concorrentes operem de maneira correta e eficiente.

Uma transação é um programa em execução ou processo que inclui


um ou mais acessos ao banco de dados, como a leitura ou atualização de
seus registros. Uma transação executa um acesso logicamente correto a

Prof. Victor Dalton


www.estrategiaconcursos.com.br 8 de 172

00428113176 - Rodrigo
Tecnologia da Informação para TCM/Goiás
Auditor de Controle Externo - Informática
Prof Victor Dalton Aula 05
um banco de dados quando ele é executada de forma completa e sem
interferência de outras operações. Também falaremos adiante sobre
Gerenciamento de Transações.

1) (FCC – SABESP – Tecnólogo - Sistemas - 2014) Um SGBD


multiusuário deve permitir que diversos usuários acessem o banco de
dados ao mesmo tempo. Isso é essencial se os dados para as várias
aplicações estão integrados e mantidos em um único banco de dados. O
SGBD deve incluir um software de controle de concorrência para garantir
que muitos usuários, ao tentar atualizar o mesmo dado, o façam de um
modo controlado, para assegurar que os resultados das atualizações
sejam corretos. Por exemplo, quando muitos atendentes tentam reservar
um lugar em um voo, o SGBD deve garantir que cada assento possa ser
acessado somente por um atendente de cada vez, para fazer a reserva de
apenas um passageiro.

Em SGBD, a este conceito se dá o nome de

a) acesso simultâneo.
b) semáforo de acesso.
c) transação.
d) modularização.
e) polimorfismo.

Percebeu que a questão se parece muito com a explicação da teoria?

Isso ocorre porque a FCC também se baseou no Elmasri e Navathe para


apresentar o exemplo. No caso, a banca está explicando o conceito de
00428113176

Processamento de Transação Multiusuário.

Não gostei da forma que a banca apresentou as alternativas, porém, a


“mais correta” é a letra c).

1.4 Trabalhadores envolvidos

Sistemas de Bancos de Dados são projetados, administrados e


utilizados por diversos profissionais. Sem exageros, pode-se visualizar um

Prof. Victor Dalton


www.estrategiaconcursos.com.br 9 de 172

00428113176 - Rodrigo
Tecnologia da Informação para TCM/Goiás
Auditor de Controle Externo - Informática
Prof Victor Dalton Aula 05
“ciclo de vida” para um Sistema de Banco de Dados, com a participação
de diversos personagens. São eles, segundo Elmasri e Navathe (2006):

Administradores de Banco de Dados

Em um ambiente de banco de dados o banco de dados é o recurso


principal, e o SGBD e os softwares são os recursos secundários. A
administração desses recursos é de responsabilidade do administrador de
banco de dados (DBA – database administrator). O DBA é responsável
por:

Autorizar o acesso ao banco de dados.


Coordenar e monitorar seu uso.
Adquirir recursos de software e hardware conforme a necessidade.
Responsável por resolver problemas, como falhas na segurança e
demora no tempo de resposta do sistema.

Projetista de Banco de Dados

Em muitos casos, os projetistas estão na equipe de DBAs e são


responsáveis por:

Identificar os dados a serem armazenados.


Escolher estruturas apropriadas para representar e armazenar os
dados.
Se comunicar com todos os potenciais usuários a fim de entender
suas necessidades e criar um projeto que as atenda.
Desenvolver visões do banco de dados que cumpram os requisitos
de dados e processamento de cada potencial grupo de usuários.
00428113176

Usuários Finais (ou usuários do banco de dados)

O banco de dados existe primariamente para atender os usuários


finais. Existem várias categorias de usuários finais:

Casuais: são os gerentes de nível intermediário ou alto. Utilizam


uma linguagem sofisticada de consulta ao banco de dados para especificar
suas necessidades.

Prof. Victor Dalton


www.estrategiaconcursos.com.br 10 de 172

00428113176 - Rodrigo
Tecnologia da Informação para TCM/Goiás
Auditor de Controle Externo - Informática
Prof Victor Dalton Aula 05
Iniciantes ou paramétricos: são os caixas de banco, agentes de
companhias aéreas, hotéis e locadoras de automóveis, funcionários nas
estações de recebimento de transportadores, entre outros. Sua função
principal gira em torno de consultar e atualizar o banco de dados
constantemente, usando transações programadas, que foram
cuidadosamente programadas e testadas.
Sofisticados: são os engenheiros, cientistas, analistas de negócios
e outros que estão profundamente familiarizados com as facilidades do
SGBD a ponto de implementar as próprias aplicações que atendam suas
necessidades.
Isolados: que mantêm bancos de dados pessoais usando pacotes
de programas prontos, que oferecem interfaces de fácil utilização,
baseadas em menu ou gráficos.

Atenção!

Date (2011) acrescenta a figura do Administrador de Dados(DA),


que seria uma pessoa que toma decisões estratégicas e de normas com
relação aos dados da empresa. Nessa abordagem, o DA teria atribuições
como:

 Levantar os requisitos funcionais para o banco de dados;


 Modelar conceitualmente o banco de dados;
 Especificar as regras de negócio das aplicações;
 Definir padrões de nomes para conceitos e variáveis, e
 Determinar normas de incorporação e manuseio dos dados.

Enquanto isso, o DBA acumularia as seguintes atribuições:
00428113176

 Mapear o modelo conceitual no modelo lógico;


 Realizar o projeto físico do banco de dados;
 Criar usuários, definir visões e permissões, além de regras de
integridade;
 Controlar os processos de back-up e recuperação, e
 Garantir o bom desempenho no acesso e manuseio do banco
pelos usuários.

Importante, quando tratar-se de personagens envolvidos, prestar
atenção nesse detalhe, tentar “adivinhar” a bibliografia do enunciado,
para não confundir o Administrador de Dados com o Administrador de

Prof. Victor Dalton


www.estrategiaconcursos.com.br 11 de 172

00428113176 - Rodrigo
Tecnologia da Informação para TCM/Goiás
Auditor de Controle Externo - Informática
Prof Victor Dalton Aula 05
Banco de Dados. Pior: até mesmo uma mesma banca pode cobrar
conteúdo de autores diferentes. Eu já vi isso .

Analistas de Sistemas e Engenheiros de Software

Os analistas de sistemas identificam as necessidades dos usuários


finais, especialmente os iniciantes e paramétricos, e definem as
especificações das transações padrão que atendam a elas.

Os programadores de aplicações (engenheiros de software e


desenvolvedores de sistemas de software) implementam essas
especificações como programas, testam, depuram, documentam e
mantêm essas transações programadas.

1.5 Vantagens da abordagem SGBD

Via de regra, os SGBDs são ferramentas caríssimas, da ordem de


milhares de dólares. Algumas de suas vantagens são:

 Controle de redundância: quando os Bancos de Dados


precisam ser replicados em mais de um lugar, o SGBD evita a
inconsistência das diferentes bases de dados;
 Restrição a acesso não autorizado: em Bancos de Dados
com diferentes níveis de permissão de acesso, o SGBD realiza
o controle dos diversos níveis de permissão;
00428113176

 Backup e restauração: o Sistema de Banco de Dados deve


ser tolerante a falhas, ou seja, o SGBD deve ser capaz de
voltar a um estado anterior à falha, a despeito de falhas de
hardware ou software;
 Forçar as restrições de integridade: os relacionamentos
entre dos dados são implementados por meio de restrições de
integridade. Será visto mais adiante.

Prof. Victor Dalton


www.estrategiaconcursos.com.br 12 de 172

00428113176 - Rodrigo
Tecnologia da Informação para TCM/Goiás
Auditor de Controle Externo - Informática
Prof Victor Dalton Aula 05

1.6 Desvantagens da abordagem SGBD

Instalar e manter Sistemas de Bancos de Dados carregam consigo


alguns ônus intrínsecos. São eles:

 Custos: além do preço elevado das ferramentas de SGBD,


manter um Sistema de Banco de Dados implica em hardware,
software e pessoal especializados;
 Gerenciamento Complexo: o Sistema necessita interfacear
com diferentes tecnologias, afetando os recursos e cultura da
empresa;
 Dependência do fornecedor: o investimento inicial alto
tende a “prender” o cliente. Modificar um SGBD é oneroso e
complexo;
 Manutenção e atualização: como todo software, o SGBD
deve ser mantido atualizado. Além disso, periodicamente
surgem novas versões, com mais funcionalidades, “exigindo”
substituições periódicas, com novos custos de hardware,
software e treinamento de pessoal.

1.7 Arquitetura três esquemas de um SGBD

A arquitetura três esquemas é uma abordagem, que ilustra a


separação entre usuário e aplicação. Nesta arquitetura, os esquemas
podem ser descritos em três níveis: 00428113176

Prof. Victor Dalton


www.estrategiaconcursos.com.br 13 de 172

00428113176 - Rodrigo
Tecnologia da Informação para TCM/Goiás
Auditor de Controle Externo - Informática
Prof Victor Dalton Aula 05

Arquitetura três esquemas, Elmasri e Navathe (2006)

Nível externo: abrange os esquemas externos, ou visões de


usuário. Cada esquema descreverá apenas a visão pertinente de cada
usuário a respeito do Banco de Dados, ocultando o restante. Por exemplo,
para um aluno, de um sistema de aulas online, somente determinada
parte do BD lhe é relevante, provavelmente relacionada aos cursos que
realiza. Para um administrador financeiro desse sistemas, por sua vez,
aspectos administrativos serão mais relevantes, relacionados aos
pagamentos dos cursos e de pessoal.

Nível conceitual: possui um esquema conceitual, que descreve o


banco de dados como um todo. Oculta detalhes do armazenamento físico,
enfatizando entidades, tipos de dados e restrições.
00428113176

Nível interno: apresenta um esquema interno, descrevendo a


estrutura de armazenamento físicos do banco de dados.

Prof. Victor Dalton


www.estrategiaconcursos.com.br 14 de 172

00428113176 - Rodrigo
Tecnologia da Informação para TCM/Goiás
Auditor de Controle Externo - Informática
Prof Victor Dalton Aula 05

2) (FCC – MPE/SE – Analista – Gestão e Análise de Projeto de


Sistema - 2013) Em projetos de Banco de Dados, o objetivo da
arquitetura de três-esquemas é separar o usuário da aplicação do banco
de dados físico. Nessa arquitetura, os esquemas podem ser definidos por
três níveis:

I. O nível interno tem um esquema que descreve a estrutura de


armazenamento físico do banco de dados. Esse esquema utiliza um
modelo de dado físico e descreve os detalhes complexos do
armazenamento de dados e caminhos de acesso ao banco;

II. O nível conceitual possui um esquema que descreve a estrutura de


todo o banco de dados para a comunidade de usuários. O esquema
conceitual oculta os detalhes das estruturas de armazenamento físico e se
concentra na descrição de entidades, tipos de dados, conexões, operações
de usuários e restrições. Geralmente, um modelo de dados
representacional é usado para descrever o esquema conceitual quando o
sistema de banco de dados for implementado. Esse esquema de
implementação conceitual é normalmente baseado em um projeto de
esquema conceitual em um modelo de dados de alto nível;

III. O nível interno ainda abrange os esquemas externos ou visões de


usuários. Cada esquema interno descreve a parte do banco de dados que
um dado grupo de usuários tem interesse e oculta o restante do banco de
dados desse grupo. Como no item anterior, cada esquema é tipicamente
implementado usando-se um modelo de dados representacional,
possivelmente baseado em um projeto de esquema externo em um
modelo de dados de alto nível.

Está correto o que se afirma em


00428113176

a) II, apenas.
b) II e III, apenas.
c) I, II e III.
d) I e II, apenas.
e) III, apenas.

Questão sem maiores dificuldades. Os itens I e II estão corretos,


enquanto o item III descreve o nível externo.

Alternativa d).

Prof. Victor Dalton


www.estrategiaconcursos.com.br 15 de 172

00428113176 - Rodrigo
Tecnologia da Informação para TCM/Goiás
Auditor de Controle Externo - Informática
Prof Victor Dalton Aula 05
1.7.1 Independência lógica e independência física dos
dados

Dois conceitos relacionados à arquitetura três esquemas que, não


raro, aparecem em questões de concursos são a independência lógica e a
independência física dos dados.

Independência lógica é a capacidade de alterar o esquema


conceitual sem precisar modificar os esquemas externos.

Independência física é a capacidade de alterar o esquema interno


sem precisar modificar o esquema conceitual.

Esses esquemas e seus respectivos mapeamentos são guardados no


catálogo do banco de dados. Ele será visto na próxima aula.

1.8 Categorias de modelos de dados

Projetar um banco de dados, como você provavelmente deve


imaginar, é uma atividade que requer planejamento e organização.
Didaticamente, pode-se dividir esta tarefa em etapas.

A primeira fase do projeto do banco é o levantamento e análise de


requisitos, que na prática, é a especificação das necessidades do
usuário do banco. Entrevista-se o usuário do banco para entendimento e
documentação dos seus requisitos de dados.
00428113176

A segunda fase é o projeto conceitual, em que já se criam


descrições detalhadas de tipos de entidades, relacionamentos, atributos e
restrições. A modelagem conceitual empregada baseia-se no mais alto
nível e deve ser usada para envolver o cliente. Os exemplos de
modelagem de dados visto pelo modelo conceitual são mais fáceis de
compreender, já que não há limitações ou aplicação de tecnologia
específica. O modelo normalmente utilizado é o modelo entidade-
relacionamento, com a construção do Diagrama de Entidade e
Relacionamento. Este diagrama é a chave para a compreensão do modelo
conceitual de dados. Cria-se o que chamamos de “mini-mundo”, a

Prof. Victor Dalton


www.estrategiaconcursos.com.br 16 de 172

00428113176 - Rodrigo
Tecnologia da Informação para TCM/Goiás
Auditor de Controle Externo - Informática
Prof Victor Dalton Aula 05
observação da realidade mapeada dentro do sistema que se deseja
desenvolver. O modelo e-r é muito importante e será bastante explorado
nos exercícios.

Ilustração de modelagem conceitual usando o Diagrama E-R.

Posteriormente ocorre as especificações das necessidades


funcionais, depreendidas do próprio projeto conceitual. Caso exista
algum impedimento funcional para a implementação do banco, talvez seja
necessário voltar ao projeto conceitual e realizar algumas modificações.

Em seguida aparece o projeto lógico, ou mapeamento do modelo


00428113176

de dados. A modelagem lógica (ou representacional, ou de


implementação), por sua vez, já realiza o mapeamento do esquema
conceitual para o modelo de dados que será usado. O modelo de dados de
implementação normalmente é o modelo de dados relacional, que
também é importantíssimo, muito cobrado em provas e será bastante
abordado nos exercícios. Tal projeto consolidará a escrita do script do
banco, com a criação do seu esquema.

Prof. Victor Dalton


www.estrategiaconcursos.com.br 17 de 172

00428113176 - Rodrigo
Tecnologia da Informação para TCM/Goiás
Auditor de Controle Externo - Informática
Prof Victor Dalton Aula 05

Modelagem relacional: ilustração com tabelas e atributos

Por fim, temos o projeto físico, durante a qual são definidas as


estruturas de armazenamento interno, índices, caminhos de acesso e
organizações de arquivo para os arquivos do banco de dados. Já passa a
depender de regras de implementação e restrições tecnológicas.

00428113176

Figura: Do modelo conceitual ao físico(MAXEY,2002)

Prof. Victor Dalton


www.estrategiaconcursos.com.br 18 de 172

00428113176 - Rodrigo
Tecnologia da Informação para TCM/Goiás
Auditor de Controle Externo - Informática
Prof Victor Dalton Aula 05

3) (FCC – MPE/AM – Agente de Apoio – Programador - 2013) Um


sistema de banco de dados deve apresentar um projeto que visa a
organização das informações e utilização de técnicas para que o futuro
sistema obtenha boa performance e também facilite as manutenções que
venham a acontecer.

O projeto de banco de dados se dá em, pelo menos, duas fases:


Modelagem conceitual e

a) Projeto lógico.
b) Teste de integração.
c) Instalação.
d) Definição da ferramenta que será adotada.
e) Teste de carga.

Após a Modelagem conceitual, temos o Projeto Lógico (ou Modelo


Lógico).

Resposta: alternativa a).

1.9 Tipos de modelos de dados

Apoiando a estrutura de um banco de dados está o modelo de


dados: uma coleção de ferramentas conceituais para descrever dados,
relações de dados, semântica de dados e restrições de consistência. Um
modelo de dados oferece uma maneira de descrever o projeto de um
00428113176

banco de dados no nível físico, lógico e de visão.

Existem vários modelos de dados diferentes. Vejamos alguns:

Modelo hierárquico: O modelo hierárquico foi o primeiro a ser


reconhecido como um modelo de dados. Nele, os registros são conectados
em uma estrutura de dados em árvore, similar a uma árvore invertida (ou
às raízes de uma árvore).

Prof. Victor Dalton


www.estrategiaconcursos.com.br 19 de 172

00428113176 - Rodrigo
Tecnologia da Informação para TCM/Goiás
Auditor de Controle Externo - Informática
Prof Victor Dalton Aula 05

Neste modelo, uma ligação é uma associação entre dois


registros. O relacionamento entre um registro-pai e vários registros-
filhos possui cardinalidade 1:N, ou 1:1, sendo N =1. Os dados
organizados segundo este modelo podem ser acessados segundo uma
sequência hierárquica com uma navegação do topo para as folhas e da
esquerda para direita. Um registro pode até estar associado a vários
registros diferentes, desde que seja replicado.

Neste exemplo, perceba que os registros da tabela empregado


possuem hierarquia direta em relação aos registros da tabela
departamento.

O modelo hierárquico possui muitas limitações. Ele pode ser útil para
00428113176

modelar esquemas fortemente hierárquicos (como classificações para


espécies dos reinos animal e vegetal, corporações, hierarquias
governamentais, etc.), mas apresenta limitações quando representa
modelos não-hierárquicos. Isto provocou o surgimento do modelo em
rede.

Modelo em rede: o modelo em rede acabou eliminando a


hierarquia, pois passou a permitir que, em tese, cada registro filho
pudesse ser ligado a mais de um registro pai.

Prof. Victor Dalton


www.estrategiaconcursos.com.br 20 de 172

00428113176 - Rodrigo
Tecnologia da Informação para TCM/Goiás
Auditor de Controle Externo - Informática
Prof Victor Dalton Aula 05

Nesse caso, a estrutura em árvore se desfaz, e passa a se


assemelhar a uma estrutura em grafo. Relacionamentos N:M também
passam a ser permitidos (lembrando que o relacionamento é estabelecido
entre registros).

Perceba que, neste modelo, é possível colocar um empregado


vinculado a mais de um departamento, o que não era possível no modelo
hierárquico.

Os modelos de dados em rede e hierárquicos precederam o modelo


de dados relacional, que é o mais utilizado atualmente. São muito pouco
utilizados nos dias de hoje, a não ser em bancos de dados antigos que
00428113176

ainda estejam em vigor.

Modelo relacional: O modelo relacional usa uma coleção de tabelas


para representar os dados e as relações entre eles. Foi o modelo que eu
utilizei para explicar os conceitos básicos de banco de dados, e é o
modelo mais utilizado (e cobrado em provas). Cada tabela possui diversas
colunas, e cada coluna possui um nome único. Tabelas também são
chamadas de relações.(Deixei isso pra depois de propósito: não
confunda relação com os relacionamentos entre as tabelas). Cada tabela
contém tuplas. Cada tupla possui um número fixo de campos, ou
atributos. As colunas das tabelas correspondem aos atributos do tipo de

Prof. Victor Dalton


www.estrategiaconcursos.com.br 21 de 172

00428113176 - Rodrigo
Tecnologia da Informação para TCM/Goiás
Auditor de Controle Externo - Informática
Prof Victor Dalton Aula 05
registro. Este modelo é o mais utilizado na fase de projeto lógico do
BD.

Modelo Entidade/Relacionamento: O modelo de Entidade-


Relacionamento (E-R) é baseado na percepção de um mundo real que
consiste em uma coleção de objetos básicos, chamados entidades, e os
relacionamentos entre esses objetos (existem autores que falam em
relação para descrever relacionamentos. Preste atenção em uma eventual
questão de prova, para saber o que a banca quer). Uma entidade é uma
“coisa” ou “objeto” no mundo real que é distinguível dos outros objetos
(como pessoa, ou carro). É um modelo mais alto nível, empregado na
fase do projeto conceitual, que é anterior à fase do projeto lógico, no
qual se utiliza o modelo relacional. Também cai em provas.

Modelo de dados orientado a objetos: É uma extensão do modelo


ER com noções de encapsulamento de identidade do objeto (isso será
visto em programação).

Modelo de dados objeto-relacional: Combina características do


modelo relacional com o modelo orientado a objetos.

P.S: Não se surpreenda em ter visto os modelos relacional e entidade


relacionamento também neste tópico. Os tipos de modelos de dados
apresentados não deixam de ter um caráter histórico, refletindo a
evolução dos modelos ao longo do tempo. Por isso, os modelos relacional
e E-R acabaram se consolidando nas categorias vistas anteriormente.

00428113176

4) (FCC – SEFAZ/PE – Auditor Fiscal – 2014) Um Sistema de


Gerenciamento de Banco de Dados (SGBD) é um software com recursos
específicos para facilitar a manipulação das informações dos bancos de
dados e o desenvolvimento de programas aplicativos. A forma como os
dados serão armazenados no banco de dados é definida pelo modelo do
SGBD. Os principais modelos são: hierárquico, em rede, orientado a
objetos e

(A) funcional.
(B) procedural.
(C) orientado a serviços.
(D) relacional.
Prof. Victor Dalton
www.estrategiaconcursos.com.br 22 de 172

00428113176 - Rodrigo
Tecnologia da Informação para TCM/Goiás
Auditor de Controle Externo - Informática
Prof Victor Dalton Aula 05
(E) orientado a componentes.

Estudamos em detalhes o modelo relacional, um dos mais cobrados em


provas. As demais sentenças nem se aplicam a banco de dados.

Resposta certa: alternativa d).

1.10 O Modelo Entidade-Relacionamento

Aqui estamos diante de um diagrama ER, do modelo entidade-


relacionamento. Aquele mais conceitual, alto nível. Façamos uma breve
legenda:

Retângulos: são as entidades. 00428113176

Losangos: representam os relacionamentos.


Elipses: representam os atributos (ausente neste diagrama).
Linhas: vinculam conjuntos de entidades a conjuntos de
relacionamentos.
Linhas duplas: indicam participação total de uma entidade em um
conjunto de relacionamentos.

Esta abordagem, como você pode perceber, consegue mostrar para


um usuário, até mesmo o leigo em banco de dados, algumas
características desse banco hipotético, ilustrado no modelo. Dele, é
possível compreender que:

Prof. Victor Dalton


www.estrategiaconcursos.com.br 23 de 172

00428113176 - Rodrigo
Tecnologia da Informação para TCM/Goiás
Auditor de Controle Externo - Informática
Prof Victor Dalton Aula 05
Empregados gerenciam departamentos;

Empregados trabalham em projetos;e

Departamentos controlam projetos (perceba as sentenças no


estilo entidade-relacionamento-entidade, em lógica de primeira ordem).

Perceba que, com as informações apresentadas, detalhes de


implementação do banco de dados ainda não são conhecidos. Quais são
as tabelas desse banco? Você ainda não sabe.

Um primeiro destaque nesse modelo, comumente cobrado em


provas, é a indicação de participação parcial ou participação total no
relacionamento, representados, respectivamente, por linhas simples em
duplas.

Uma participação parcial indica que aquele relacionamento não é


obrigatório para aquela entidade. Preste atenção apenas nesse trecho da
figura, abaixo:

A linha simples entre Empregado e Gerencia indica que não há


obrigatoriedade de que um empregado gerencie um departamento.
00428113176

Por outro lado, a linha dupla em Departamento indica que todo


Departamento deve ter um Empregado que o gerencie. Compreendeu?

Fugindo um pouco do modelo E-R, mas, com o objetivo de fazê-lo


entender melhor essa obrigação (ou não), imagine uma fotografia de
duas tabelas de banco de dados com as seguintes informações:

EMPREGADO

Prof. Victor Dalton


www.estrategiaconcursos.com.br 24 de 172

00428113176 - Rodrigo
Tecnologia da Informação para TCM/Goiás
Auditor de Controle Externo - Informática
Prof Victor Dalton Aula 05
CodEmpregado NomeEmpregado Gerente?

001 Marcos S

002 Paula N

003 Roberta S

004 Marcelo N

DEPARTAMENTO

CodDepartamento NomeDepartamento CodGerente

MKT Marketing 001

ADM Administração 003

Neste exemplo, materializei duas tabelas que mostram Marcos


gerenciando o Departamento de Marketing, e Roberta gerenciando o
Departamento de Administração. Do jeito que montei as tabelas, todo
departamento terá um gerente, mas nem todo empregado será gerente.
Razoável, não é mesmo?

P.S.: as fotografias das tabelas não fazem parte do modelo E-


R! Apenas estão aí para facilitar o seu entendimento!

O segundo aspecto importante, também retratado nas imagens, é a


questão da cardinalidade (1, N, M). Para tal, trataremos em tópico
específico.
00428113176

5) (FCC – MPE/MA – Analista Ministerial – Banco de Dados - 2013)


Quando do projeto de um banco de dados relacional, pode haver a
indicação de que um conjunto de entidades tem participação total em um
conjunto de relacionamentos, isto significa que

a) cada entidade do conjunto de entidades participa em todos os


relacionamentos do conjunto de relacionamentos.
b) há, no mínimo, metade das entidades do conjunto de entidades que
participam em pelo menos um relacionamento do conjunto de
relacionamentos.

Prof. Victor Dalton


www.estrategiaconcursos.com.br 25 de 172

00428113176 - Rodrigo
Tecnologia da Informação para TCM/Goiás
Auditor de Controle Externo - Informática
Prof Victor Dalton Aula 05
c) as entidades do conjunto de entidades não possuem atributos do tipo
booleano ou do tipo data.
d) cada entidade do conjunto de entidades participa em pelo menos um
relacionamento do conjunto de relacionamentos.
e) todos os atributos do conjunto de entidades são indexados com a
técnica de árvores binárias.

Participação total e parcial!

A linha dupla indica participação total, e a entidade ligada por linha dupla
exige que ela se relacione com pelo menos uma entidade do outro lado do
relacionamento. Já a linha simples indica o relacionamento, mas pode ser
que nem toda entidade possua um relacionamento.

Uma coisa ruim das bancas é não diferenciar entidade de instância de


entidade. Quando se fala da entidade Projeto, em tese, me refiro à
entidade projeto de modo genérico. Quando se fala de cada entidade
Projeto, na verdade estão se referindo às instâncias de entidade, que,
na prática, correspondem ao registros que estão no Banco de Dados,
conforme expliquei para você na teoria.

A questão seria bem mais clara se ela, ao invés de falar “cada entidade”
do “conjunto de entidades”, falasse “instância das entidades” das
“entidades”.

Nossa resposta certa, alternativa d).

1.11 Cardinalidade
00428113176

Podemos ver a mesma imagem novamente?

Prof. Victor Dalton


www.estrategiaconcursos.com.br 26 de 172

00428113176 - Rodrigo
Tecnologia da Informação para TCM/Goiás
Auditor de Controle Externo - Informática
Prof Victor Dalton Aula 05

A cardinalidade serve para expressar o número de entidades que


uma entidade pode associar-se, por meio de um relacionamento.

A figura acima retrata os três tipos possíveis de cardinalidade.


Na cardinalidade (1:1), uma entidade E1 pode relacionar-se a, no
máximo, uma outra entidade E2, por meio de um relacionamento, e vice-
versa. É o caso entre Empregado e Departamento, ilustrado no tópico
anterior.

Na cardinalidade (1:N), uma entidade E1 pode relacionar-se com


várias entidades E2, porém, uma entidade E2 pode relacionar-se apenas
com uma entidade E1. É o que acontece entre Departamento e Projeto.
Preste atenção na imagem e na leitura das frases a seguir: um
Departamento pode controlar N Projetos, e um Projeto pode ser
controlado por um Departamento. Captou? Gostaria de enxergar isso em
tabelas? 00428113176

DEPARTAMENTO

CodDepartamento NomeDepartamento CodGerente

MKT Marketing 001

ADM Administração 003

Prof. Victor Dalton


www.estrategiaconcursos.com.br 27 de 172

00428113176 - Rodrigo
Tecnologia da Informação para TCM/Goiás
Auditor de Controle Externo - Informática
Prof Victor Dalton Aula 05
PROJETO

CodProjeto NomeProjeto CodDepResponsavel

P01 Inovação MKT

P02 Reestruturação ADM

P03 Vender Mais MKT

P04 Novo Produto MKT

Captou? Do jeito que montei as tabelas, os Departamentos podem


ter vários projetos, mas cada projeto tem apenas um Departamento
responsável.

P.S.: as fotografias das tabelas não fazem parte do modelo E-


R! Apenas estão aí para facilitar o seu entendimento!

Por último, falemos da cardinalidade (N:M) ou (N:N). Nela, uma


entidade E1 pode relacionar-se com várias entidades E2, assim como uma
entidade E2 pode relacionar-se apenas com várias entidades E1. É o que
acontece entre Empregado e Projeto.

00428113176

Um Empregado pode trabalhar em M Projetos, e um Projeto pode


“ser trabalhado” por N Empregados. Captou? Em tabelas, isso fica um
pouco diferente:

Prof. Victor Dalton


www.estrategiaconcursos.com.br 28 de 172

00428113176 - Rodrigo
Tecnologia da Informação para TCM/Goiás
Auditor de Controle Externo - Informática
Prof Victor Dalton Aula 05
PROJETO

CodProjeto NomeProjeto CodDepResponsavel

P01 Inovação MKT

P02 Reestruturação ADM

P03 Vender Mais MKT

P04 Novo Produto MKY

EMPREGADO

CodEmpregado NomeEmpregado Gerente?

001 Marcos S

002 Paula N

003 Roberta S

004 Marcelo N

TRABALHA

CodEmpregado CodProjeto

001 P01

001 P02
00428113176

002 P03

003 P01

Nesta estrutura, você percebe que a tabela Trabalha serve para


materializar o relacionamento entre Empregado e Projeto, e que, desta
forma, empregados podem trabalhar em vários projetos, e projetos
podem ter vários empregados, sem restrições.

Prof. Victor Dalton


www.estrategiaconcursos.com.br 29 de 172

00428113176 - Rodrigo
Tecnologia da Informação para TCM/Goiás
Auditor de Controle Externo - Informática
Prof Victor Dalton Aula 05
Agora, reveja aquele esquema de banco de dados, do início da
apostila:

O relacionamento entre as tabela usuario e comentario indicam, do


lado usuario (1,1), e do lado comentario (0,n). Isso retrata um
relacionamento (1:N) entre essas entidades. Ou seja, Cada usuário
cadastrado na tabela usuario pode fazer de zero a muitos comentários.
Cada comentário, por sua vez, deverá ter sido feito por apenas um único
usuário, entendeu?

Mais um pouco: veja as tabelas usuario, usr_ai e area_interesse. A


tabela usuario possui um relacionamento de cardinalidade (1:N) com a
tabela usr_ai. Ou seja, isso implica que cada usuário pode ter zero ou
mais áreas de interesse. Por exemplo, Paulo pode se interessar por
00428113176

esportes, ficção e romance.

Por sua vez, area_de_interesse possui um relacionamento de


cardinalidade (1:N) com a tabela usr_ai. Ou seja, isso implica que cada
área de interesse pode estar relacionada a zero ou mais usuários.

Captaram? Na realidade, existe um relacionamento de cardinalidade


(N:N), também chamado de (N:M), entre usuario e area_interesse. Só
que, para implementar o banco de dados de uma maneira organizada, foi
necessário fazer uma tabela de ligação entre usuario e area_interesse.

Prof. Victor Dalton


www.estrategiaconcursos.com.br 30 de 172

00428113176 - Rodrigo
Tecnologia da Informação para TCM/Goiás
Auditor de Controle Externo - Informática
Prof Victor Dalton Aula 05
A cardinalidade pode ser expressada de diferentes formas, de acordo
com o modelo ilustrado. Inclusive, como no esquema acima, ficaram
explícitas as cardinalidades mínimas e máximas, uma vez que o
esquema não possui linhas simples e duplas para tal. Uma cardinalidade
(1:N), por exemplo, foi retratada pelos pares (1,1) e (0,n), indicando que
uma entidade E1 pode ser relacionar com 0 a n entidades E2, ao passo
que uma entidade E2 deve se relacionar com uma, e apenas uma
entidade E1. Compreendido?

1.12 Modelo Relacional

Vamos agora tratar do modelo relacional.

Apenas relembrando, o modelo relacional está ligado ao Projeto


Lógico, aquele em um nível intermediário entre o modelo conceitual e o
modelo físico. Está lembrado?

Vamos ver aquele esquema novamente:

00428113176

Creio que você já o entenda mais do que quando o viu pela primeira
vez. Mas vamos entendê-lo ainda mais, pois ele está carregado de
informações do modelo relacional.
Prof. Victor Dalton
www.estrategiaconcursos.com.br 31 de 172

00428113176 - Rodrigo
Tecnologia da Informação para TCM/Goiás
Auditor de Controle Externo - Informática
Prof Victor Dalton Aula 05

Perceba que as tabelas (que também podem ser chamadas de


relações) são os principais elementos do banco. comentario, contato,
categoria, recado, area_interesse...

Os atributos são componentes das entidades. Na entidade


comentário, por exemplo, temos os atributos código, conteudo,
data_criacao, cod_usuario_remetente e cod_arquivo.

As informações colocadas ao lado dos atributos, conforme visualizado


neste esquema, são os metadados. Código será um inteiro de até 11
dígitos, conteúdo será um varchar com até 1000 caracteres (varchar,
basicamente, quer dizer que o número de caracteres é variável, indo até
o limite estabelecido), data_criacao será uma informação do tipo data-
hora, e assim sucessivamente.

Por fim, temos os registros da tabela, ou tuplas. Registros e tuplas


são sinônimos. A imagem acima, utilizada como exemplo, é um modelo
que mostra o que deverá conter no banco. O banco de dados,
efetivamente, são essas tabelas efetivamente preenchidas. Um exemplo
da tabela comentario preenchida com dados poderia ser:

00428113176

E continuemos vendo detalhes!

Prof. Victor Dalton


www.estrategiaconcursos.com.br 32 de 172

00428113176 - Rodrigo
Tecnologia da Informação para TCM/Goiás
Auditor de Controle Externo - Informática
Prof Victor Dalton Aula 05
1.12.1 Tipos de Atributos

Os atributos, como já vimos, são os elementos que compõem as


entidades. Eles podem receber várias classificações.

Atributos Compostos versus Simples (Atômicos). Os atributos


compostos são aqueles que podem ser divididos em partes
menores, que representam a maioria dos atributos básicos com
significados independentes. Por exemplo, um atributo Endereço, em uma
tabela hipotética, pode ser subdividido em EnderecoRua, Cidade, Estado e
CEP, com os valores 'Av. Rangel Pestana, 300', 'São Paulo', 'SP' e '01017-
911'. Os atributos que não são divisíveis são chamados simples ou
atributos atômicos. E os atributos compostos podem formar uma
hierarquia; por exemplo, EnderecoRua pode ser subdividido, ainda, em
três atributos simples: Rua, Número e Apartamento. O valor de um
atributo composto é a concatenação dos valores componentes dos seus
atributos simples. Os atributos simples são indivisíveis.

Atributos Monovalorados versus Multivalorados. A maioria dos


atributos tem um valor único para uma dada tupla; esses atributos são
chamados monovalorados. Por exemplo, Idade é um atributo
monovalorado de uma pessoa. Em alguns casos, um atributo pode ter um
conjunto de valores para a mesma entidade — por exemplo, um atributo
Cor para um carro ou um atributo Titulação para uma pessoa. Os carros
com uma cor têm um valor único, enquanto aqueles com dois tons
contêm dois valores para Cor. Da mesma forma, uma pessoa pode não
ter um título acadêmico, outra pessoa pode ter um e, uma terceira
pessoa, dois ou mais títulos, portanto, pessoas diferentes podem ter
números de valores diferentes para o atributo Titulação. Esses atributos
00428113176

são chamados multivalorados. Um atributo multivalorado deve ter limite


inferior e superior para restringir o número de valores permitidos a cada
entidade individual. Por exemplo, o atributo Cor de um carro pode ter
entre um e três valores, se presumirmos que um carro possa ter, no
máximo, três cores.

Atributos Armazenados versus Derivados. Em alguns casos, dois


(ou mais) valores de atributos estão relacionados — por exemplo, os
atributos Idade e DataNascimento de uma pessoa. Para uma tabela
pessoa em particular, o valor de Idade pode ser determinado pela data
corrente (hoje) e o valor de DataNascimento da pessoa. Portanto, o
atributo Idade é chamado atributo derivado, e é dito derivado do atributo
Prof. Victor Dalton
www.estrategiaconcursos.com.br 33 de 172

00428113176 - Rodrigo
Tecnologia da Informação para TCM/Goiás
Auditor de Controle Externo - Informática
Prof Victor Dalton Aula 05
DataNascimento, que, por sua vez, é chamado atributo armazenado.
Alguns valores de atributos podem ser derivados de entidades
relacionadas; por exemplo, um atributo NumerodeEmpregados, de uma
entidade departamento, pode ser derivado da contagem do número de
empregados relacionados (que trabalham) nesse departamento.

Valores nulls (Nulos). Em alguns casos, determinada tabela pode


não ter um valor aplicável a um atributo. Por exemplo, o atributo
Apartamento de um endereço se aplica apenas a endereços que estão em
edifícios de apartamentos, e não a outros tipos de residência, como as
casas. Por analogia, um atributo Titulação só se aplica a pessoas com
titulação acadêmica. Para essas situações é criado um valor especial
chamado null (nulo). Um endereço de uma casa teria valor null para seu
atributo Apartamento, e uma pessoa sem titulação acadêmica teria valor
null para Titulação. O valor null pode ser usado também quando não
conhecemos o valor de um atributo para uma entidade em particular; por
exemplo, se não soubermos o telefone residencial de 'Joao Paulo'. O
sentido do primeiro tipo de null corresponde a não aplicável, ao passo que
o sentido do último se refere a desconhecido. A categoria 'desconhecido'
de null pode ser, ainda, classificada em dois casos. O primeiro aparece
quando se sabe que o valor do atributo existe mas está faltando — por
exemplo, se o atributo Altura de uma pessoa é dado como null. O
segundo caso surge quando não se sabe se o valor do atributo existe —
por exemplo, se o atributo FoneResidencial de uma pessoa é null.
Atributos Complexos. Observa-se que os atributos compostos e
multivalorados podem ser aninhados de uma maneira arbitrária. Podemos
representar essa organização arbitrária agrupando os componentes de um
atributo composto entre parênteses (), separando os componentes por
meio de vírgulas e mostrando os atributos multivalorados entre chaves
{}. Esses atributos são chamados atributos complexos. Por exemplo, se
00428113176

uma pessoa pode ter mais de uma residência e cada uma delas pode ter
múltiplos telefones, um atributo EnderecoFone para uma pessoa pode ser
especificado contendo mais de um atributo, como por exempo contendo
os atributos Endereco e Telefone. Ex:
{EnderecoFone({Fone(CodigoArea,NumeroFone)},Endereco(EnderecoRua
(Numero, Rua, Apartamento),Cidade, Estado, CEP))}.

Não confunda!

Prof. Victor Dalton


www.estrategiaconcursos.com.br 34 de 172

00428113176 - Rodrigo
Tecnologia da Informação para TCM/Goiás
Auditor de Controle Externo - Informática
Prof Victor Dalton Aula 05
Simples Monovalorado
indivisível um único valor na tupla

Composto Multivalorado
pode ser dividido em várias partes mais de um valor dentro da mesma
tupla

Atributo composto pode ser monovalorado? SIM!

Atributo simples pode ser multivalorado? SIM! Exemplo:

Carro Cor
Gol Preto, Azul, Amarelo

Cor é um atributo simples, mas pode ter mais de um valor, dado um


único registro.

Quando o atributo é composto e multivalorado simultaneamente,


ele é complexo.

6) (FCC – TRT 2ª Região – Analista Judiciário – Tecnologia da


Informação – 2014) Em alguns casos, dois ou mais valores de atributos
em um modelo de Entidade-Relacionamento estão relacionados. Por
exemplo, os atributos Idade e Data de Nascimento de uma pessoa. Para
uma Entidade-Pessoa em particular, o valor de Idade pode ser
determinado pela data corrente e o valor de Data de Nascimento da
00428113176

pessoa. Portanto, o atributo Idade é chamado atributo ...I... do atributo


Data de Nascimento, que, por sua vez, é chamado atributo ...II... .

As lacunas I e II são, correta e respectivamente, preenchidas com:

(A) armazenado - derivado


(B) derivado - armazenado
(C) multivalorado - monovalorado
(D) identificador - complexo
(E) resultante - unívoco

Prof. Victor Dalton


www.estrategiaconcursos.com.br 35 de 172

00428113176 - Rodrigo
Tecnologia da Informação para TCM/Goiás
Auditor de Controle Externo - Informática
Prof Victor Dalton Aula 05
O atributo Idade é um atributo derivado, pois pode ser calculado com
base no atributo armazenado Data de Nascimento, tendo o dia atual
como referência.

Resposta: alternativa b).

1.12.2 Restrições de Integridade

Pois então, um banco de dados relacional, em sua concepção,


necessita de suas tabelas, das colunas das tabelas(os seus atributos), e
de suas restrições de integridade, fundamentais para a consistência do
banco de dados. Tabelas e colunas você já conhece. Agora, falemos dessa
característica importantíssima, que são as restrições de integridade.

Por meio das restrições de integridade é que são assegurados o


correto relacionamento entre as tabelas. As restrições de integridades
podem ser de:
 Domínio – amarrando os possíveis valores de um atributo
(inteiro, string, não nulo, positivo, tipo, etc.)
 Vazio – dizer se um campo pode ou não ser null. Não deixa
de ser um subitem da integridade de domínio.
 Chave – impedindo que uma chave primária se repita, ou
seja nula;
 Referencial – assegurando que uma chave estrangeira
possua respectiva associação na tabela de origem;

As restrições de domínio e vazio são relativamente intuitivas. As de


chave e referencial são as chaves primárias e estrangeiras, as quais
00428113176

veremos a seguir.

1.12.3 Chave Primária x Chave Estrangeira

Todo registro em um banco de dados precisa de um atributo, ou


vários, que possibilitem caracterizar aquele registro no banco como
único. Ex:

Prof. Victor Dalton


www.estrategiaconcursos.com.br 36 de 172

00428113176 - Rodrigo
Tecnologia da Informação para TCM/Goiás
Auditor de Controle Externo - Informática
Prof Victor Dalton Aula 05
codigo_cliente endereco telefone cidade estado
1 Rua do Imperador 0800- Recife PE
Dom Pedro II, SN 2851244
2 Rua do Imperador 0800- Recife PE
Dom Pedro II, SN 2851244
3 Rua José Augusto (81) 3183- Olinda PE
Moreira, 1037 5941
4 Rua José Augusto (81) 3183- Olinda PE
Moreira, 1037 5941

Perceba que, intencionalmente, escrevi tuplas parecidíssimas,


diferenciadas apenas pelo atributo codigo_cliente.
O por quê disso? Imagine que a tabela acima possui um
relacionamento com outra tabela, como a tabela abaixo:

codigo_cliente Nome
1 Jader
2 Afonso
3 André
4 Simone

Agora você percebe um motivo. Dois clientes diferentes, que


possuem um mesmo endereço. Logo, em um banco de dados relacional
são necessárias duas coisas: diferenciar uma tupla da outra e
relacionar as tabelas.

Neste pequeno exemplo, a diferenciação entre as tuplas se faz por


meio da chave primária. No caso, o atributo codigo_cliente.

Voltando ao esquema que eu tanto tenho repetido, perceba que ali


temos alguns atributos com chaves em “dourado”, outros com chave
00428113176

“parcialmente dourada” e outros com chave “prateada”.

Prof. Victor Dalton


www.estrategiaconcursos.com.br 37 de 172

00428113176 - Rodrigo
Tecnologia da Informação para TCM/Goiás
Auditor de Controle Externo - Informática
Prof Victor Dalton Aula 05

A chave primária é o atributo(coluna) ou atributos(colunas),


que asseguram que cada tupla (linha) da tabela é única.

codigo é a chave primária de comentario; codigo é a chave primária


de categoria;cod_usuario e cod_usuario_contato são a chave primária de
contato; e por aí vai.

Mesmo que composta por vários atributos, a chave primária é


única e o seu papel é o de restrição de chave, ou seja, garantir que
tuplas não sejam repetidas. Nesse esquema, as chaves douradas são
chaves primárias.

Um outro conceito interessante referente às restrições de chave é o


00428113176

conceito de chave candidata, ou chave alternativa. Às vezes, mais de


um atributo de uma tabela são únicos. Tenha como exemplo uma tabela
em que existam os campos CPF, TituloEleitor e Identidade. Todos esses
atributos serão únicos, e eles são chamados de chaves candidatas. Uma
dessas chaves convenientemente será escolhida como chave primária e
as demais permanecerão como chaves candidatas.

A chave estrangeira, por sua vez, exerce o papel de restrição


referencial. A chave estrangeira “amarra” os relacionamentos entre as
tabelas, e explica o porquê das tabelas possuírem linhas interligando-as,
nos modelos. Isso ainda implica que todo valor preenchido na tabela com
chave estrangeira possua uma respectiva associação na tabela onde a
Prof. Victor Dalton
www.estrategiaconcursos.com.br 38 de 172

00428113176 - Rodrigo
Tecnologia da Informação para TCM/Goiás
Auditor de Controle Externo - Informática
Prof Victor Dalton Aula 05
chave associada é primária. No esquema, as chaves prateadas são chaves
estrangeiras.

cod_usuario_remetente e cod_arquivo são chaves estrangeiras na


tabela comentario, pois referenciam, respectivamente, a chave primária
codigo na tabela usuário e a chave primária codigo na tabela arquivo;
cod_usuario e cod_usuario_contato, que juntos compõem a chave
primária de contato, também são chaves estrangeiras, pois referenciam,
respectivamente, a chave primária codigo na tabela usuário e a chave
primaria codigo na tabela usuário (sim, isso mesmo, a mesma chave na
mesma tabela). E assim sucessivamente. Procure enxergar todos os
demais relacionamentos nesta tabela.

Perceba que, mesmo que um mesmo atributo possa ser (ou compor)
chave primária e ser chave estrangeira, as funções da chave são bem
distintas. A primária restringe unicidade ou nulidade, enquanto a
00428113176

estrangeira restringe relacionamento. No esquema, as chaves


parcialmente douradas estão fazendo o papel de chave primária, mas
funcionam ao mesmo tempo como chaves estrangeiras, na mesma tabela.

Por fim, acho interessante que você saiba que, no modelo relacional,
podemos descrever as tabelas, seus atributos e restrições da seguinte
forma abaixo, com os atributos entre parênteses e as chaves sublinhadas:

Comentario (codigo, conteudo, data_criacao, cod_usuario,


cod_arquivo)
Usuario (codigo, nome, email, login, senha)
Contato(cod_usuario, cod_usuario_contato)
Prof. Victor Dalton
www.estrategiaconcursos.com.br 39 de 172

00428113176 - Rodrigo
Tecnologia da Informação para TCM/Goiás
Auditor de Controle Externo - Informática
Prof Victor Dalton Aula 05

Há autores que sublinham “cheio” as chaves primárias e “pontilhado”


as chaves estrangeiras. Em questões de concursos, porém, nunca vi esta
diferenciação, estando as chaves sempre sublinhadas “cheias”.

1.12.4 Outras chaves

Chave substituta: A chave substituta, ou surrogate key, ou


chave artificial, é um campo, normalmente auto incremental, que pode
(não é obrigatório) ser utilizado para definir a chave primária de uma
tabela, de uma maneira genérica. É útil, particularmente, para substituir
chaves primárias compostas por muitos atributos, o que costuma
impactar negativamente a performance do banco de dados.

* Nome Telefone
1 Paulo (11) 99999-8888
2 Paulo (11) 99999-7777
3 Paulo (11) 3030-3131
4 Marta (11) 5678-9012
5 Marta (11) 99988-9876
6 Rita (11) 98765-4321
Chave substituta: coluna não identificada, marcada com *

Algumas características da chave substituta:

 O valor é único para a tabela, portanto nunca reutilizado (ou


seja, em caso de exclusão, o número não será reutilizado);

00428113176

O valor é gerado pelo sistema(automaticamente);


 O valor não é manipulável pelo usuário ou aplicação;
 O valor não contém nenhum significado semântico;
 O valor não é visível para o usuário ou aplicação (no caso de
modelagem relacional);
 O valor não é composto de vários valores a partir de diferentes
domínios.

Superchave: Superchave é um conjunto de um ou mais atributos


que, tomados coletivamente, nos permitem identificar de maneira unívoca
uma entidade em um conjunto de entidades. Em outras palavras, não

Prof. Victor Dalton


www.estrategiaconcursos.com.br 40 de 172

00428113176 - Rodrigo
Tecnologia da Informação para TCM/Goiás
Auditor de Controle Externo - Informática
Prof Victor Dalton Aula 05
podem existir duas ou mais linhas da tabela com o(s) mesmo(s) valores
de uma superchave.

Perceba que a superchave é um conceito mais abrangente do que o


conceito de chave primária. A chave primária é aquele atributo ou
conjunto de atributos que garante que cada registro na tabela é único. A
superchave, por sua vez, é qualquer conjunto de atributos que consegue
a mesma coisa.

Por exemplo, na tabela Comentário:

Comentario (codigo, conteudo, data_criacao, cod_usuario,


cod_arquivo)

A chave primária é codigo. Isto posto, os atributos codigo e conteudo


formam uma superchave, os atributos codigo, conteudo e data_criacao
também formam uma superchave, e por aí vai. Qualquer conjunto de
atributos escolhido que inclua a chave primária formará uma superchave.

7) (FCC – SEFAZ/SP – Agente Fiscal de Rendas – 2013) No projeto


de bancos de dados relacionais, a Express tem preocupação de produzir
modelos mais adequados. A chave primária de uma relação de um banco
de dados relacional

a) só pode servir como chave estrangeira de, no máximo, uma outra


relação.
b) não pode ser indexada, quando da implementação do banco de dados.
c) não pode conter atributos do tipo Data.
d) pode ser formada por mais de um atributo.
00428113176

e) não pode conter mais do que um atributo.

A chave estrangeira é um atributo, que estabelece um relacionamento


com uma chave primária em outra tabela, embora você possa ter várias
chaves estrangeiras em uma mesma tabela. A chave primária, por sua
vez, é um atributo ou conjunto de atributos que identifica um registro
de maneira única em uma tabela.

Resposta: alternativa d).

Prof. Victor Dalton


www.estrategiaconcursos.com.br 41 de 172

00428113176 - Rodrigo
Tecnologia da Informação para TCM/Goiás
Auditor de Controle Externo - Informática
Prof Victor Dalton Aula 05

1.13 Gerenciamento de Transações

Creio que podemos voltar a este aspecto, uma vez que você
compreende um pouco mais sobre banco de dados.
Lembra que, no começo da apostila, eu falei que o SGBD precisava
gerenciar milhares de transações simultâneas, fazer controle de
redundância, dentre outros?

Acho que você compreende isso melhor agora. Basta imaginar uma
simples transação modificando múltiplas tabelas, verificando restrições de
integridade. Já não é algo simples para uma transação única. E quando as
transações tentam modificar os mesmos campos de uma tabela ao
mesmo tempo? É aí que entra o famoso controle de concorrência do
SGBD, organizando as transações, impedindo que o Banco de Dados entre
em um estado inconsistente.

Idealmente, toda transação em um banco de dados deverá ser:

Atômica: ou a transação é feita ou não é feita. Parece óbvio, mas


transações complexas em um banco, envolvendo várias tabelas, podem
sofrer interrupções inesperadas, ou não conseguirem terminar por entrar
em conflito com outra que ocorra ao mesmo tempo. Nesse caso, o SGBD
deverá ser capaz de reverter o que parcialmente foi modificado (realizar o
rollback);

Consistente: os dados deverão permanecer íntegros e obedientes


às regras do banco de dados (metadados);
00428113176

Isolada: o resultado de uma transação executada


concorrentemente a outra deve ser o mesmo que o de sua execução de
forma isolada. Operações exteriores a uma dada transação jamais verão
esta transação em estados intermediários.

Durável: os efeitos de uma transação em caso de sucesso (commit)


devem persistir no banco de dados mesmo em presença de falhas. os
dados modificados devem estar disponíveis em definitivo.

Às vezes parece óbvio, mas os SGBDs de grandes corporações


trabalham com grandes bases de dados, sofrendo constantes

Prof. Victor Dalton


www.estrategiaconcursos.com.br 42 de 172

00428113176 - Rodrigo
Tecnologia da Informação para TCM/Goiás
Auditor de Controle Externo - Informática
Prof Victor Dalton Aula 05
modificações, com dados distribuídos, inclusive, por várias partes do
mundo. Assegurar o ACID é um verdadeiro desafio.

8) (FCC – TJ/RJ – Analista Judiciário – Analista de Suporte –


2012) Considere:

I. Se uma transação é concluída com sucesso (operação commit bem


sucedida), então seus efeitos são persistentes.
II. Ou todas as ações da transação acontecem, ou nenhuma delas
acontece.

As propriedades (I) e (II) das transações em SGBDs, significam,


respectivamente,

a) durabilidade e consistência.
b) persistência e automação.
c) isolação e atomicidade.
d) durabilidade e atomicidade.
e) consistência e persistência.

Idealmente, toda transação em um banco de dados deverá ser:

Atômica: ou a transação é feita ou não é feita;

Consistente: os dados deverão permanecer íntegros e obedientes às


regras do banco de;

Isolada: o resultado de uma transação executada concorrentemente a


outra deve ser o mesmo que o de sua execução de forma isolada;
00428113176

Durável: os efeitos de uma transação em caso de sucesso (commit)


devem persistir no banco de dados mesmo em presença de falhas.

Portanto, alternativa d).

1.14 Catálogo do sistema (dicionário de dados)

Uma vez visto o modelo relacional, creio que seja mais simples
entender o papel do catálogo, ou dicionário de dados.

Prof. Victor Dalton


www.estrategiaconcursos.com.br 43 de 172

00428113176 - Rodrigo
Tecnologia da Informação para TCM/Goiás
Auditor de Controle Externo - Informática
Prof Victor Dalton Aula 05

Um SGBD, ao implementar o modelo relacional, precisa armazenar


não somente os dados propriamente ditos, mas também os metadados.
Eles podem ser:
 nomes das relações (tabelas);
 nomes dos atributos das relações;
 domínios dos atributos;
 restrições de integridade;
 mapeamentos (entre níveis externos, conceitual e interno).

Além dos metadados, também podem ser armazenados:

 nomes de usuários autorizados;


 senhas;
 índices, etc.

Enfim, essa série de informações que possibilitam o correto


gerenciamento da Base de Dados fica armazenada naquilo que chamamos
de Catálogo, ou Dicionário de Dados.

00428113176

Catálogo de Dados: Ilustração

Prof. Victor Dalton


www.estrategiaconcursos.com.br 44 de 172

00428113176 - Rodrigo
Tecnologia da Informação para TCM/Goiás
Auditor de Controle Externo - Informática
Prof Victor Dalton Aula 05

1.15 Views

Conforme explicado na arquitetura três esquemas de um SGBD, o


nível externo descreve a cada usuário apenas a visão pertinente ao
mesmo. Afinal de contas, pode não ser bom que todos os usuários finais
vejam o esquema conceitual completo, seja por questões de segurança,
ou até mesmo para sua compreensão.

Para tal, um recurso muito eficiente é a utilização de visões


(views). 00428113176

View é uma tabela única derivada de outras tabelas. Por não existir
fisicamente, pode ser considerada uma tabela virtual. A visão,
diferentemente das tabelas básicas, não contém suas tuplas armazenadas
no banco de dados.

Voltemos ao exemplo de Projeto e Departamento:

Prof. Victor Dalton


www.estrategiaconcursos.com.br 45 de 172

00428113176 - Rodrigo
Tecnologia da Informação para TCM/Goiás
Auditor de Controle Externo - Informática
Prof Victor Dalton Aula 05
DEPARTAMENTO

CodDepartamento NomeDepartamento CodGerente

MKT Marketing 001

ADM Administração 003

PROJETO

CodProjeto NomeProjeto CodDepResponsavel

P01 Inovação MKT

P02 Reestruturação ADM

P03 Vender Mais MKT

P04 Novo Produto MKT

Dadas estas tabelas, pode ser conveniente criar uma visão para o
usuário, que mostre apenas o Projeto e o nome do Departamento
Responsável. Abaixo:

VISÃO PROJETO

Projeto Departamento
Responsável

Inovação Marketing
00428113176

Reestruturação Administração

Vender Mais Marketing

Novo Produto Marketing

Compreendeu a utilidade da visão? É vantajoso utilizá-la quando o


usuário realiza consultas muito frequentes a determinadas tabelas. Ainda,
campos que não sejam muito úteis ao usuário final, como CodigoProjeto e
CodigoDepartamento, podem ficar ocultos.

Prof. Victor Dalton


www.estrategiaconcursos.com.br 46 de 172

00428113176 - Rodrigo
Tecnologia da Informação para TCM/Goiás
Auditor de Controle Externo - Informática
Prof Victor Dalton Aula 05
Entretanto, por sua natureza virtual, as visões apresentam algumas
restrições. Vejamos a seguir.

1.15.1 Views materializadas

Certos SGBDs garantem que, em caso de modificação nas relações


utilizadas em uma view, a mesma permanecerá atualizada. Essas views
podem ser chamadas de views materializadas.

A responsabilidade pela atualização da view será sempre do SGBD, e


não do usuário.

1.15.2 Atualização de uma view

As views, por sua natureza virtual, apresentam restrições quanto à


atualização, inserção ou exclusão de informações.

Para ser atualizável, via de regra, uma view deverá:

 Influenciar apenas uma tabela do banco de dados;

 Em caso de atributos ocultos na view, ou esse atributo deve ser


gerado automaticamente (no caso de um código, por exemplo),
ou possuir valor default, ou poder ser nulo (null).
00428113176

Voltemos ao nosso exemplo:

VISÃO PROJETO

Projeto Departamento
Responsável

Inovação Marketing

Reestruturação Administração

Prof. Victor Dalton


www.estrategiaconcursos.com.br 47 de 172

00428113176 - Rodrigo
Tecnologia da Informação para TCM/Goiás
Auditor de Controle Externo - Informática
Prof Victor Dalton Aula 05
Vender Mais Marketing

Novo Produto Marketing

Esta view não permite a modificação dos dados, pois ela envolve
duas tabelas, Projeto e Departamento, lembra?

Entretanto, caso ela viesse somente da tabela Projeto, poderíamos


inserir, atualizar ou excluir algum dado da view. O atributo oculto
CodProjeto, por ser gerado automaticamente (neste exemplo), não seria
obstáculo para a modificação da view.

Quando se modifica uma view, os dados da tabela de origem são


modificados. Não existem registros em uma view, pois a tabela é
virtual!

00428113176

Prof. Victor Dalton


www.estrategiaconcursos.com.br 48 de 172

00428113176 - Rodrigo
Tecnologia da Informação para TCM/Goiás
Auditor de Controle Externo - Informática
Prof Victor Dalton Aula 05

NOÇÕES DE SQL

2. LINGUAGEM SQL: CONCEITOS BÁSICOS

2.1 Linguagens de dados

A linguagem SQL (Strucutred Query Language) é a linguagem para


banco de dados mais difundida nos dias de hoje. Mesmo os diferentes SGBDs
comerciais, como Oracle, DB2, MySql, e outros, utilizam a SQL como sua
linguagem raiz, com leves variações. A SQL pode fazer coisas como consultar
banco de dados, definir a estrutura dos dados, modificar dados em um banco e
especificar restrições de segurança.
Em oposição às linguagens procedurais, você verá que a SQL é uma
linguagem declarativa, que se aproxima da linguagem do usuário,
especificando o resultado da consulta, e não detalhando como a consulta é feita.
Você perceberá essa aproximação com a linguagem ao estudá-la.

Didaticamente, a linguagem SQL abrange alguns tipos de linguagens de


dados. São eles:

DDL (Data Definition Language) – serve para a definição de estruturas


de dados, incluindo linhas, colunas, tabelas, índices e localizações de
arquivos.Ex: CREATE (cria tabelas), ALTER(modifica a tabela, como para incluir
um atributo) e DROP(elimina a tabela).

DML (Data Manipulation Language) – voltada para a manipulação dos


dados, como o próprio nome diz. Ex: INSERT(inserir), SELECT(consultar),
UPDATE(atualizar, modificando alguns atributos), DELETE(autoexplicativo)...
00428113176

SDL (Storage Definition Language) – 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.

DTL (Data Transaction Language) – para a transação no banco de


dados. Ex: BEGIN WORK(iniciar uma transação), COMMIT(gravar a transação do
buffer para o disco rígido), ROLLBACK(desfazer transação).

DCL (Data Control Language) – controla aspectos de autorização de


dados e licenças de usuários para controlar quem tem acesso dentro do banco.
Ex: GRANT(dar acesso), REVOKE(retirar acesso).

Prof. Victor Dalton


www.estrategiaconcursos.com.br 49 de 172

00428113176 - Rodrigo
Tecnologia da Informação para TCM/Goiás
Auditor de Controle Externo - Informática
Prof Victor Dalton Aula 05
VDL (View Definition Language) – voltada para especificar as visões dos
usuários e seus mapeamentos para o esquema conceitual.Ex: CREATE VIEW,
DROP VIEW. Há autores que consideram a VDL como integrante da DDL.

Entendidos esses conceitos iniciais, vamos nos familiarizar com os


principais comandos da linguagem SQL.

2.2 Comandos DDL (linguagem de definição de dados)

CREATE

A criação de tabelas ocorre com o CREATE. Vamos criar algumas


tabelas?

CREATE SCHEMA EMPRESA;

CREATE TABLE EMPREGADO (


codEmpregado int NOT NULL,
nomeEmpregado varchar(80),
codGerente int,

PRIMARY KEY (codEmpregado);


FOREIGN KEY (codGerente) REFERENCES EMPREGADO
(codEmpregado));

CREATE TABLE DEPARTAMENTO (


codDepartamento char(3) NOT NULL,
nomeDepartamento varchar(80),
codGerente int NOT NULL, 00428113176

PRIMARY KEY (codDepartamento);


FOREIGN KEY (codGerente) REFERENCES EMPREGADO (codEmpregado)
ON DELETE SET NULL);

CREATE TABLE PROJETO (


codProjeto int NOT NULL,
nomeProjeto varchar(80),
codDepResponsavel char(3) DEFAULT ‘D01’,

PRIMARY KEY (codProjeto);


Prof. Victor Dalton
www.estrategiaconcursos.com.br 50 de 172

00428113176 - Rodrigo
Tecnologia da Informação para TCM/Goiás
Auditor de Controle Externo - Informática
Prof Victor Dalton Aula 05
FOREIGN KEY (codDepResponsavel) REFERENCES DEPARTAMENTO
(codDepartamento) ON DELETE CASCADE);

CREATE TABLE TRABALHA (


codEmpregado int NOT NULL,
codProjeto int NOT NULL,

PRIMARY KEY (codEmpregado, codProjeto);


FOREIGN KEY (codEmpregado) REFERENCES EMPREGADO
(codEmpregado);
FOREIGN KEY (codProjeto) REFERENCES PROJETO (codProjeto);
UNIQUE (codEmpregado);
UNIQUE (codProjeto));

CREATE TABLE GERENCIA (


codGerencia int NOT NULL);

Entendeu o que aconteceu acima?

Se você ficou confuso ou inseguro, leia com calma e vamos entender


juntos.

Criamos um esquema chamado EMPRESA. Nesse esquema, na nossa


base de dados, foram criadas cinco tabelas. Confira abaixo:

EMPREGADO

codEmpregado nomeEmpregado codGerente


00428113176

DEPARTAMENTO

codDepartamento nomeDepartamento codGerente

Prof. Victor Dalton


www.estrategiaconcursos.com.br 51 de 172

00428113176 - Rodrigo
Tecnologia da Informação para TCM/Goiás
Auditor de Controle Externo - Informática
Prof Victor Dalton Aula 05
PROJETO

codProjeto nomeProjeto codDepResponsavel

TRABALHA

codEmpregado codProjeto

GERENCIA

codGerencia

Além disso, as tabelas já foram criadas com as restrições de


integridade. Para cada atributo foi definido o seu domínio (int, char,
varchar), alguns receberam suas restrições de vazio (not null), e foram
criadas restrições de chave (primary key – chave primária) e de
integridade (foreign key – chave estrangeira). Volte acima, nos
comandos, e verifique o que eu afirmei.

Ainda, fiz questão de introduzir algumas cláusulas restritivas,


chamadas constraints (restrições), para que você já conheça e se
familiarize na prática com o emprego desses termos. A saber:

ON DELETE – on delete é uma ação referencial engatilhada


(referential triggered action), aplicada quando da violação de alguma
integridade referencial (chaves estrangeiras). Isto significa que, quando
na tabela de origem, aquela chave é excluída, alguma providência deve
00428113176

ser tomada na tabela que faz a referência. Comandos comuns são SET
NULL (colocação de valor nulo), CASCADE (exclusão da tupla que
referencia a chave excluída) e DEFAULT ‘valor’ (substituição por um
valor padrão).

ON UPDATE – análogo ao on delete, indica o procedimento a ser


realizado quando da atualização da chave estrangeira na tabela de
origem. Por padrão, os SGBDs costumam aplicar ON DELETE SET NULL e
ON UPDATE CASCADE, quando o projetista não define explicitamente
alguma ação.

Prof. Victor Dalton


www.estrategiaconcursos.com.br 52 de 172

00428113176 - Rodrigo
Tecnologia da Informação para TCM/Goiás
Auditor de Controle Externo - Informática
Prof Victor Dalton Aula 05
UNIQUE – essa restrição impede que o atributo apresente dois
valores iguais na tabela. Tanto pode ser útil para a definição de chaves
candidatas como para “amarrar” cardinalidades em tabelas de ligação.
Perceba que, na tabela TRABALHA, a imposição de UNIQUE a ambos os
atributos impõe uma cardinalidade máxima de 1:1 entre as Entidades
EMPREGADO e PROJETO. Assim sendo, um empregado poderá apenas
trabalhar em um único projeto, assim como um projeto terá apenas um
único empregado.

ALTER

O comando ALTER permite que modifiquemos as tabelas. Façamos


algumas modificações na tabela EMPREGADO.

ALTER TABLE EMPREGADO ADD salario real;

ALTER TABLE EMPREGADO ADD FOREIGN KEY (codGerente)


REFERENCES EMPREGADO (codEmpregado);

Aproveitamos para incluir um novo campo, salario, que será um


número real (não é a nossa moeda), e colocamos a restrição de
integridade no campo codGerente, criando um autorrelacionamento na
tabela Empregado.

DROP
00428113176

O comando DROP permite que esquemas e tabelas sejam excluídos.


Como não vamos trabalhar com a tabela GERENCIA,

DROP TABLE GERENCIA CASCADE;

O CASCADE é uma opção que força a exclusão de referências à


tabela GERENCIA em outras tabelas, como uma eventual chave
estrangeira. Caso a opção fosse a RESTRICT, se houvesse alguma
referência em outras tabelas, a exclusão não seria permitida.

Prof. Victor Dalton


www.estrategiaconcursos.com.br 53 de 172

00428113176 - Rodrigo
Tecnologia da Informação para TCM/Goiás
Auditor de Controle Externo - Informática
Prof Victor Dalton Aula 05
Como, intencionalmente, a tabela GERENCIA não possui referências,
ela será excluída com sucesso, seja qual for a opção escolhida .

2.2 Comandos DML (linguagem de manipulação de dados)

INSERT, UPDATE e DELETE

Criadas as nossas tabelas, vamos popular a tabela EMPREGADO com


um conjunto inicial de dados, utilizando o INSERT;

INSERT INTO EMPREGADO(codEmpregado, nomeEmpregado, codGerente,


salario) VALUES (001, Marcos, NULL, 15000,00);

INSERT INTO EMPREGADO(codEmpregado, nomeEmpregado, codGerente,


salario) VALUES (002, Paula, 001, 12000,00);

INSERT INTO EMPREGADO(codEmpregado, nomeEmpregado, codGerente,


salario) VALUES (003, Roberta, 001, 9000,00);

INSERT INTO EMPREGADO(codEmpregado, nomeEmpregado, codGerente,


salario) VALUES (004, Marcelo, 002, 7000,00);

E nossa tabela fica assim:

EMPREGADO

codEmpregado nomeEmpregado codGerente salario

001 Marcos null 15000,00


00428113176

002 Paula 001 12000,00

003 Roberta 001 9000,00

004 Marcelo 002 7000,00

O comando UPDATE, por sua vez, permite a atualização dos dados


de uma tabela.

Vejamos a nossa tabela PROJETO, populada da seguinte forma:

Prof. Victor Dalton


www.estrategiaconcursos.com.br 54 de 172

00428113176 - Rodrigo
Tecnologia da Informação para TCM/Goiás
Auditor de Controle Externo - Informática
Prof Victor Dalton Aula 05
PROJETO

codProjeto nomeProjeto codDepResponsavel

P01 Inovação MKT

P02 Reestruturação ADM

P03 Vender Mais MKT

P04 Novo Produto ADM

P05 Projeto Inútil ADM

Façamos uma atualização?

UPDATE PROJETO SET codDepResponsavel =’MKT’ WHERE


codProjeto = ‘P04’;

E nossa tabela ficou assim:

PROJETO

codProjeto nomeProjeto codDepResponsavel

P01 Inovação MKT

P02 Reestruturação ADM

P03 Vender Mais MKT

P04 Novo Produto MKT


00428113176

P05 Projeto Inútil ADM

O comando DELETE exclui registros (quem exclui tabelas é o


DROP). Vamos excluir alguma coisa:

DELETE FROM PROJETO WHERE codProjeto = ‘P05’;

E nossa tabela ficou:

Prof. Victor Dalton


www.estrategiaconcursos.com.br 55 de 172

00428113176 - Rodrigo
Tecnologia da Informação para TCM/Goiás
Auditor de Controle Externo - Informática
Prof Victor Dalton Aula 05
PROJETO

codProjeto nomeProjeto codDepResponsavel

P01 Inovação MKT

P02 Reestruturação ADM

P03 Vender Mais MKT

P04 Novo Produto MKT

Acho que você já percebeu que, dependendo do critério utilizado no


WHERE, múltiplos registros podem ser atualizados ou excluídos. Tudo
depende do critério que for escolhido após o WHERE. Vamos falar mais
dele na cláusula SELECT.

2.3 A cláusula SELECT

A cláusula SELECT também pertence à DML, entretanto, por ser o


recurso mais utilizado e vasto da linguagem SQL, merece um estudo à
parte. Sem dúvidas, o SELECT é o comando que traz a “inteligência” ao
banco de dados, pois a realização de consultas à base é o primeiro passo
para a extração de informação e conhecimento contidos nos dados brutos.

A estrutura básica de uma consulta em SQL é a

SELECT - FROM
00428113176
- WHERE

O SELECT indicará os campos de tabela(s) selecionado(s);

O FROM indicará a(s) tabela(s) que originam os dados;

O WHERE definirá os critérios de seleção dos dados;

Nossa base inicial de dados será:

Prof. Victor Dalton


www.estrategiaconcursos.com.br 56 de 172

00428113176 - Rodrigo
Tecnologia da Informação para TCM/Goiás
Auditor de Controle Externo - Informática
Prof Victor Dalton Aula 05
EMPREGADO

codEmpregado nomeEmpregado codGerente salario

001 Marcos null 15000,00

002 Paula 001 12000,00

003 Roberta 001 9000,00

004 Marcelo 002 7000,00

DEPARTAMENTO

codDepartamento nomeDepartamento codGerente

MKT Marketing 001

ADM Administração 003

PROJETO

codProjeto nomeProjeto codDepResponsavel

P01 Inovação MKT

P02 Reestruturação ADM

P03 Vender Mais MKT

P04 Novo Produto MKT


00428113176

TRABALHA

codEmpregado codProjeto

001 P01

001 P02

002 P03

003 P01

Prof. Victor Dalton


www.estrategiaconcursos.com.br 57 de 172

00428113176 - Rodrigo
Tecnologia da Informação para TCM/Goiás
Auditor de Controle Externo - Informática
Prof Victor Dalton Aula 05
Vamos exercitar nosso entendimento com algumas consultas básicas.
Sinta-se à vontade para colocar a página anterior em uma folha à parte,
para comparar o resultado das consultas com a base inicial de dados.

Consulta 1 - SELECT nomeEmpregado, salario FROM EMPREGADO


WHERE codGerente = 001;

Percebeu que a linguagem é declarativa? É possível ler “selecione os


campos nomeEmpregado e salario da tabela EMPREGADO cujo
codGerente seja o 001”.

E a consulta retorna:

nomeEmpregado salario

Paula 12000,00

Roberta 9000,00

Consulta 2 - SELECT nomeProjeto FROM PROJETO WHERE


codDepResponsavel = ‘MKT’;

nomeProjeto

Inovação

Vender Mais

Novo Produto 00428113176

Entendeu? Vamos evoluir um pouco....

Consulta 3 - SELECT * FROM EMPREGADO WHERE salario >


9999,99;

codEmpregado nomeEmpregado codGerente salario

001 Marcos null 15000,00

002 Paula 001 12000,00

Prof. Victor Dalton


www.estrategiaconcursos.com.br 58 de 172

00428113176 - Rodrigo
Tecnologia da Informação para TCM/Goiás
Auditor de Controle Externo - Informática
Prof Victor Dalton Aula 05
O asterisco (*) corresponde à seleção de todas as colunas da(s)
tabela(s).

Consulta 4 - SELECT COUNT(*) FROM EMPREGADO WHERE


salario > 8999,99;

A cláusula COUNT(*) não retorna os registros propriamente ditos,


mas sim a quantidade de registros. Como são três os empregados que
recebem acima de 8999,99 a consulta retorna apenas o valor 3.

Consulta 5 - SELECT * FROM EMPREGADO WHERE salario >


1999,99 ORDER BY salario;

EMPREGADO

codEmpregado nomeEmpregado codGerente salario

004 Marcelo 002 7000,00

003 Roberta 001 9000,00

002 Paula 001 12000,00

001 Marcos null 15000,00

A cláusula ORDER BY ordena os registros segundo algum critério.


00428113176

Neste exemplo, o critério foi o salário.

Consulta 6 - SELECT avg(salario) FROM EMPREGADO WHERE


salario > 10000;

salario

13500,00

Prof. Victor Dalton


www.estrategiaconcursos.com.br 59 de 172

00428113176 - Rodrigo
Tecnologia da Informação para TCM/Goiás
Auditor de Controle Externo - Informática
Prof Victor Dalton Aula 05
AVG é uma cláusula que pega o valor médio de um conjunto de
valores. Caso essa consulta não possuísse o WHERE salario > 10000, o
retorno da consulta seria 10750,00.

Consulta 7 - SELECT p.nomeProjeto, d.nomeDepartamento FROM


PROJETO AS p, DEPARTAMENTO as d WHERE p.codDepResponsavel =
d.codDepartamento;

nomeProjeto nomeDepartamento

Inovação Marketing

Reestruturação Administração

Vender Mais Marketing

Novo Produto Marketing

Este é um exemplo que envolve a JUNÇÃO (JOIN) entre tabelas.


Como você já sabe, a tabela PROJETO possui o campo
codDepResponsavel como uma chave estrangeira, que referencia o
campo codDepartamento na tabela DEPARTAMENTO. Ou seja, os
valores de codDepResponsavel na tabela PROJETO possuem valores que
correspondem a valores válidos na tabela DEPARTAMENTO. Assim sendo,
a junção é possível, por meio de uma restrição criada no WHERE. Captou?

Ainda, utilizei nomes alternativos para as tabelas, chamados aliases,


que diminuem o trabalho de escrita da consulta, bem como eliminam
00428113176

redundâncias. Chamar DEPARTAMENTO de “d” e PROJETO de “p” evita


que a consulta seja escrita como SELECT PROJETO.nomeProjeto,
DEPARTAMENTO.nomeDepartamento FROM... . Vamos ver mais um
exemplo?

Consulta 8 - SELECT p.nomeProjeto, d.nomeDepartamento FROM


PROJETO AS p, DEPARTAMENTO as d WHERE p.codDepResponsavel =
d.codDepartamento GROUP BY nomeDepartamento;

Prof. Victor Dalton


www.estrategiaconcursos.com.br 60 de 172

00428113176 - Rodrigo
Tecnologia da Informação para TCM/Goiás
Auditor de Controle Externo - Informática
Prof Victor Dalton Aula 05
nomeProjeto nomeDepartamento

Inovação Marketing

Vender Mais Marketing

Novo Produto Marketing

Reestruturação Administração

A cláusula GROUP BY agrupa os registros segundo um critério. No


caso, o nomeDepartamento.

Em um primeiro momento, isso parece uma simples ordenação. Mas


o GROUP BY vai além disso, e mostraremos isso na próxima consulta.

Consulta 9 - SELECT d.nomeDepartamento, p.count(*) FROM


PROJETO AS p, DEPARTAMENTO as d WHERE p.codDepResponsavel =
d.codDepartamento GROUP BY nomeDepartamento;

nomeDepartamento COUNT(*)

Marketing 3

Administração 1

Perceba, nessa consulta, que o COUNT(*) foi aplicado por grupo de


registros. O GROUP BY possui essa propriedade poderosa, de fazer o
00428113176

SGBD tratar os registros por grupos, aplicando qualquer operação em


cada grupo, ao invés de tratar os registros individualmente, ou como um
conjunto único.

Consulta 10 - SELECT p.nomeProjeto, d.nomeDepartamento FROM


PROJETO AS p, DEPARTAMENTO as d WHERE p.codDepResponsavel =
d.codDepartamento GROUP BY nomeDepartamento HAVING count
(nomeDepartamento) >1;

Prof. Victor Dalton


www.estrategiaconcursos.com.br 61 de 172

00428113176 - Rodrigo
Tecnologia da Informação para TCM/Goiás
Auditor de Controle Externo - Informática
Prof Victor Dalton Aula 05
nomeProjeto nomeDepartamento

Inovação Marketing

Vender Mais Marketing

Novo Produto Marketing

A cláusula HAVING é uma cláusula especial que só pode ser usada


em conjunto com GROUP BY. Ele é um critério de restrição que se aplica
ao grupo, e não aos registros.

No caso acima, o HAVING restringe a consulta a mostrar apenas os


nomeDepartamentos que aparecem mais de uma vez.

Consulta 11 - SELECT e.nomeEmpregado, p.nomeProjeto FROM


PROJETO AS p, EMPREGADO as e, TRABALHA as T WHERE
e.codEmpregado = t.codEmpregado AND p.codProjeto = t.codProjeto;

Uma consulta que envolve três tabelas. Vamos reescrever as tabelas


envolvidas abaixo:

EMPREGADO

codEmpregado nomeEmpregado codGerente salario

001 Marcos null 15000,00

002 Paula 00428113176


001 12000,00

003 Roberta 001 9000,00

004 Marcelo 002 7000,00

TRABALHA

codEmpregado codProjeto

001 P01

Prof. Victor Dalton


www.estrategiaconcursos.com.br 62 de 172

00428113176 - Rodrigo
Tecnologia da Informação para TCM/Goiás
Auditor de Controle Externo - Informática
Prof Victor Dalton Aula 05
001 P02

002 P03

003 P01

PROJETO

codProjeto nomeProjeto codDepResponsavel

P01 Inovação MKT

P02 Reestruturação ADM

P03 Vender Mais MKT

P04 Novo Produto MKT

TRABALHA é tabela chave nesse processo. Já sabemos que possui


duas chaves estrangeiras, codEmpregado e codProjeto, que
referenciam, respectivamente, as tabelas EMPREGADO e PROJETO.

Não interessa mostrar a tabela TRABALHA, pois ela só contém


códigos, mas precisamos dela para interligar EMPREGADO e PROJETO. Daí
os critérios “e.codEmpregado = t.codEmpregado AND p.codProjeto =
t.codProjeto”, e a necessidade de citá-la no FROM ... TRABALHA as T.
Tudo bem?

A resposta da consulta será:

nomeEmpregado nomeProjeto
00428113176

Marcos Inovação

Marcos Reestruturação

Paula Vender Mais

Roberta Inovação

Prof. Victor Dalton


www.estrategiaconcursos.com.br 63 de 172

00428113176 - Rodrigo
Tecnologia da Informação para TCM/Goiás
Auditor de Controle Externo - Informática
Prof Victor Dalton Aula 05
Consulta 12 - SELECT DISTINCT e.nomeEmpregado FROM
PROJETO AS p, EMPREGADO as e, TRABALHA as T WHERE
e.codEmpregado = t.codEmpregado AND p.codProjeto = t.codProjeto;

Esta consulta é muito similar à anterior, mas apenas solicita que seja
mostrada a coluna nomeEmpregado. Dessa forma, perceba que “Marcos”
seria mostrado duas vezes.

A cláusula DISTINCT elimina resultados repetidos, não permitindo


que dois registros iguais sejam mostrados. Assim, o resultado é:

nomeEmpregado

Marcos

Paula

Roberta

Consulta 13 - SELECT e.nomeEmpregado, p.nomeProjeto FROM


PROJETO AS p, EMPREGADO as e, TRABALHA as T WHERE
e.codEmpregado = t.codEmpregado AND p.codProjeto = t.codProjeto
AND e.nomeEmpregado IN (SELECT nomeEmpregado FROM
EMPREGADO WHERE salario > 10000,00);

Esta consulta também é similar à consulta 10, mas acrescenta duas


novidades: a cláusula IN, que filtra o resultado da pesquisa, aceitando
qualquer resultado que seja igual ao conjunto delimitado pelo IN; e a
existência de uma subconsulta, que serve justamente para criar o
universo de comparação do IN. Vejamos:
00428113176

A subconsulta irá retornar

nomeEmpregado

Marcos

Paula

Dessa forma, o resultado da consulta 10 será

Prof. Victor Dalton


www.estrategiaconcursos.com.br 64 de 172

00428113176 - Rodrigo
Tecnologia da Informação para TCM/Goiás
Auditor de Controle Externo - Informática
Prof Victor Dalton Aula 05
nomeEmpregado nomeProjeto

Marcos Inovação

Marcos Reestruturação

Paula Vender Mais

Compreendeu? Leia novamente com calma, se ainda tiver dúvidas...

Ah, e se houvesse também o DISTINCT, algum registro sumiria?


Não, pois, apesar do nome “Marcos” aparecer duas vezes, não existe
registro repetido. Se, por algum acaso, uma consulta retornasse o nome
do Marcos associado ao nome do mesmo projeto duas vezes, e houvesse
o DISTINCT, aí sim teríamos uma exclusão de registro.

Espero que SQL não pareça mais “grego” para você. Vamos aos
exercícios, e não se surpreenda com as novidades pontuais que serão
apresentadas por lá.

00428113176

Prof. Victor Dalton


www.estrategiaconcursos.com.br 65 de 172

00428113176 - Rodrigo
Tecnologia da Informação para TCM/Goiás
Auditor de Controle Externo - Informática
Prof Victor Dalton Aula 05
EXERCÍCIOS COMENTADOS

1ª Questão) (ESAF – Superintendência de Seguros Privados –


Tecnologia da Informação - 2010) Um banco de dados é um
a) conjunto de objetos da realidade sobre os quais se deseja manter
informações.
b) conjunto de operações sobre dados integrados destinados a modelar
processos.
c) software que incorpora as funções de definição, recuperação e alteração
de dados.
d) software que modela funções de definição, recuperação e alteração de
dados e programas.
e) conjunto de dados integrados destinados a atender às necessidades de
uma comunidade de usuários.

O que difere um Banco de Dados de um Bando de Dados?


relacionamento e finalidade! Um banco de dados é um conjunto de dados
relacionados com uma finalidade específica. Esta finalidade pode a produção
de informação, para determinado público alvo (uma empresa, ou um órgão
público, por exemplo), bem como suportar um negócio (como o estoque de
produtos de um fornecedor, ou um cadastro de funcionários, ou tudo isso junto).

Conhecendo esta definição, você não corre o risco de marcar a alternativa


a) ao invés da alternativa e), que é a correta.

2ª Questão) (ESAF – Analista de Finanças e controle – Fiscalização


Geral - 2012) O projeto geral do banco de dados é
a) o esquema do banco de dados.
b) o planejamento estratégico do fluxo de dados.
c) o esquema de dimensionamento físico-financeiro do banco de dados.
d) a versão inicial de instanciação dos dados a serem carregados no
00428113176

sistema.
e) o esquema de atualização dos dados para manutenção de consistência.

Um esquema do banco de dados é uma coleção de objetos de um banco


de dados que estão disponíveis para um determinado usuário ou grupo. Os
objetos de um esquema são estruturas lógicas que se referem diretamente aos
dados do banco de dados. Eles incluem estruturas, tais como tabelas, visões,
seqüências, procedimentos armazenados, sinônimos, índices, agrupamentos e
links de banco de dados.

Prof. Victor Dalton


www.estrategiaconcursos.com.br 66 de 172

00428113176 - Rodrigo
Tecnologia da Informação para TCM/Goiás
Auditor de Controle Externo - Informática
Prof Victor Dalton Aula 05

Ou seja, ao se elaborar um sistema, seu projeto de banco de dados é


idealizado em um esquema (como a figura acima).

Resposta: letra a).

3ª Questão) (FCC – TCE/SP - Agente da Fiscalização Financeira -


Produção e Banco de Dados – 2010) No catálogo são mantidos
a) esquemas internos, conceituais e externos, mapeamentos e metadados.
b) apenas os esquemas internos e os metadados.
c) apenas o esquema conceitual e os metadados.
d) apenas os esquemas internos, externos e os metadados.
e) apenas o mapeamento conceitual.

O catálogo, também chamado de dicionário de dados, guarda os


metadados do modelo relacional, que englobam mapeamentos, esquemas,
dados das relações, atributos, etc. A alternativa mais abrangente,
invariavelmente, será a correta.
00428113176

Alternativa a).

4ª Questão) (FCC – TCE/AM – Analista Técnico de Controle Externo –


Tecnologia da Informação - 2012) O modelo conceitual de dados

a) é aquele em que os objetos, suas características e relacionamentos têm


a representação de acordo com as regras de implementação e limitantes
impostos por algum tipo de tecnologia.
b) é aquele em que os objetos, suas características e relacionamentos têm
a representação fiel ao ambiente observado, independente de limitações
quaisquer impostas por tecnologias, técnicas de implementação ou dispositivos
físicos.
Prof. Victor Dalton
www.estrategiaconcursos.com.br 67 de 172

00428113176 - Rodrigo
Tecnologia da Informação para TCM/Goiás
Auditor de Controle Externo - Informática
Prof Victor Dalton Aula 05
c) é aquele elaborado respeitando-se e implementando-se conceitos tais
como chaves de acesso, controle de chaves duplicadas, itens de repetição
(arrays), normalização, ponteiros e integridade referencial, entre outros.
d) é a fase da modelagem na qual é necessário considerar todas as
particularidades de implementação, principalmente o modelo que será utilizado
para a implementação futura.
e) está sempre associado às fases de projeto, contrastando com o modelo
lógico, que sempre está associado à fase de análise, quando utilizado com as
metodologias de desenvolvimento de sistemas e implementado por ferramentas
CASE.

A primeira fase do projeto do banco é o levantamento e análise de


requisitos, que na prática, é a especificação das necessidades do usuário do
banco. Entrevista-se o usuário do banco para entendimento e documentação dos
seus requisitos de dados.

A segunda fase é o projeto conceitual, em que já se criam descrições


detalhadas de tipos de entidades, relacionamentos, atributos e restrições. A
modelagem conceitual empregada baseia-se no mais alto nível e deve ser
usada para envolver o cliente. O modelo normalmente utilizado é o modelo
entidade-relacionamento.

00428113176

Ilustração de modelagem conceitual usando o Diagrama E-R.

Posteriormente ocorre as especificações das necessidades funcionais,


depreendidas do próprio projeto conceitual. Caso exista algum impedimento
funcional para a implementação do banco, talvez seja necessário voltar ao
projeto conceitual e realizar algumas modificações.

Prof. Victor Dalton


www.estrategiaconcursos.com.br 68 de 172

00428113176 - Rodrigo
Tecnologia da Informação para TCM/Goiás
Auditor de Controle Externo - Informática
Prof Victor Dalton Aula 05
Em seguida aparece o projeto lógico, ou mapeamento do modelo de
dados. A modelagem lógica, por sua vez, já realiza o mapeamento do
esquema conceitual para o modelo de dados que será usado. O modelo de dados
de implementação normalmente é o modelo de dados relacional.
Por fim, temos o projeto físico, durante a qual são definidas as estruturas
de armazenamento interno, índices, caminhos de acesso e organizações de
arquivo para os arquivos do banco de dados. Já passa a depender de regras de
implementação e restrições tecnológicas.

Voltando à questão:

a) Aborda o projeto lógico. Errada;


b) Correta;
c) Projeto lógico. Errada;
d) Especificações das necessidades funcionais. Errada;
e) Errada. O modelo conceitual está mais ligado à fase de análise, que não
tem detalhes de implementação nem dependência de tecnologia. Já o
modelo lógico está associado à fase de projeto, quando utilizado com as
metodologias de desenvolvimento de sistemas e implementado por
ferramentas CASE. Envolve conhecimento de Engenharia de Software.

5ª Questão) (FCC – ALESP - Agente Técnico Legislativo–


Administração de Banco de Dados – 2010) Um modelo de banco de dados é
uma descrição do tipo de informação que está ou será armazenada em um
banco de dados. O mesmo modelo de banco de dados pode ser descrito em
diversos níveis de abstração. Geralmente, utilizam-se os níveis
a) conceitual e prático.
b) escrito e lógico.
c) representativo e prático.
d) conceitual e lógico.
e) escrito e prático.
00428113176

Visto na questão anterior! Modelo conceitual, lógico (ou representacional,


ou de implementação)e físico.

Alternativa d).

6ª Questão) (FCC – MPE/AM – Agente de Apoio – Programador -


2013) Um sistema de banco de dados deve apresentar um projeto que visa a
organização das informações e utilização de técnicas para que o futuro sistema
obtenha boa performance e também facilite as manutenções que venham a
acontecer.

Prof. Victor Dalton


www.estrategiaconcursos.com.br 69 de 172

00428113176 - Rodrigo
Tecnologia da Informação para TCM/Goiás
Auditor de Controle Externo - Informática
Prof Victor Dalton Aula 05
O projeto de banco de dados se dá em, pelo menos, duas fases:
Modelagem conceitual e

a) Projeto lógico.
b) Teste de integração.
c) Instalação.
d) Definição da ferramenta que será adotada.
e) Teste de carga.

Outra abordagem da mesma banca. Alternativa a).

7ª Questão) (ESAF – CVM – Analista - Sistemas – 2010) Assinale a


opção correta.
a) Um banco de dados relacional é composto de roteamentos.
b) O projeto de um banco de dados é realizado segundo as fases
Modelagem Procedural, Projeto Lógico, Projeto Operacional.
c) O projeto de um banco de dados é realizado segundo as fases
Modelagem Conceitual, Projeto Lógico, Projeto Físico.
d) O projeto de um banco de dados é realizado por meio das fases
Modelagem Lógica e Modelagem Física.
e) Um banco de dados relacional é composto de configurações.

Alternativa c).

8ª Questão) (ESAF – Analista de Finanças e Controle –


Desenvolvimento de Sistemas de Informação – 2008) Administrar um
banco de dados constitui-se basicamente em instalar, configurar, monitorar e
solucionar problemas em um SGBD (Sistema Gerenciador de Banco de Dados).
Assim, constituem-se responsabilidades de um Administrador de Banco de
00428113176

Dados (DBA), exceto:


a) planejar o projeto físico do banco de dados.
b) realizar, testar e manter cópias de segurança dos dados periodicamente.
c) monitorar o desempenho do servidor de banco de dados e tomar as
providências necessárias para atender as demandas dos usuários e sistemas.
d) definir regras para a nomenclatura utilizada nas tabelas e nos esquemas
do banco de dados.
e) definir e verificar periodicamente a segurança e integridade do servidor
de banco de dados.

A bibliografia cita 3 atores no processo de criação de um SGBD. A saber:

Prof. Victor Dalton


www.estrategiaconcursos.com.br 70 de 172

00428113176 - Rodrigo
Tecnologia da Informação para TCM/Goiás
Auditor de Controle Externo - Informática
Prof Victor Dalton Aula 05
Projetista do Banco de Dados – os idealizadores do banco. Conversam
com os usuários para especificar requisitos e modelam conceitualmente o banco;
Administrador do Banco de Dados – implementam o banco e cuidam
dele durante seu ciclo de vida;
Usuário do Banco de Dados (ou Usuário Final) – especificam suas
necessidades, antes do BD, e o utilizam após sua criação.

Com estes conceitos em mente, sem se prender a detalhes, acho que as


únicas alternativas que podem colocar o candidato em dúvida são as alternativas
a) e d), pois as demais alternativas nitidamente são atribuições do DBA (apelido
para o Administrador do Banco de Dados). Um olhar mais atento vai fazer você
notar que a alternativa d) é uma atribuição do projetista do banco, sendo esta
a alternativa a ser marcada.

9ª Questão) (FCC – INFRAERO – Analista de Sistema – Banco de


Dados e Administrador de Dados - 2011) Quando uma transação A acessa o
banco de dados, o SGBD automaticamente bloqueia cada parte do banco que
essa transação altera ou requisita. Ao efetuar uma transação B em paralelo, o
SGBD também bloqueia partes do banco de dados que essa transação acessa.
Tais procedimentos se referem à característica de um SGBD denominada
controle de

a) integridade.
b) concorrência.
c) restrição.
d) desempenho.
e) restauração.

Para assegurar o isolamento de uma transação (I do ACID) o SGBD precisa


controlar a interação entre as transações concorrentes (transações simultâneas
que podem acessar e/ou manipular registros em comum). Tal mecanismo é
alcançado por meio se uma série de mecanismos chamados de esquemas de
00428113176

controle de concorrência.

Resposta certa, alternativa b).

10ª Questão) (FCC – ALESP – Agente Técnico Legislativo –


Administração de Banco de Dados – 2010) NÃO é uma vantagem do SGBD:
a) controle de redundância.
b) compartilhamento de dados.
c) restrição a acesso não autorizado.
d) tolerância a falhas.
e) custo.

Prof. Victor Dalton


www.estrategiaconcursos.com.br 71 de 172

00428113176 - Rodrigo
Tecnologia da Informação para TCM/Goiás
Auditor de Controle Externo - Informática
Prof Victor Dalton Aula 05
Já sabemos que adotar um SGBD custa caro!

Alternativa e).

11ª Questão) (FCC – TST – Analista Judiciário – Análise de Sistemas


– 2012) Um Sistema de Gerenciamento de Bancos de Dados (SGBD)
a) é um ambiente de suporte ao desenvolvimento de projetos de banco de
dados relacionais, que gera um modelo de banco de dados para ser
implementado em um servidor.
b) prepara aplicações para que possam acessar um ou mais bancos de
dados. Na linguagem de programação Java, por exemplo, o JDBC (Java Data
Base Connectivity) é um SGBD capaz de acessar dados de diferentes bancos.
c) oferece um conjunto de ferramentas que possibilitam o gerenciamento
de diferentes arquivos do tipo texto ou do tipo binário, armazenados em bancos
de dados, limitados aos formatos UNICODE ou ASCII.
d) consiste em uma tecnologia de servidores que opera sobre o protocolo
HTTP para a troca de dados e informações através de arquivos que transportam
mensagens no formato HTML.
e) faz a gerência de uma ou mais bases de dados, permitindo o
armazenamento e consulta de dados e informações pelos usuários finais e
programas de aplicação.

Das várias alternativas confusas, que passam por outros ramos da TI, a
alternativa e) apresenta uma afirmativa completa e coerente.

12ª Questão) (FCC – TCE/SP - Agente da Fiscalização Financeira -


Produção e Banco de Dados – 2010) As três visões da arquitetura básica de
um SGBD, pela ordem, desde a mais próxima do usuário até a mais distante,
são:
a) externa, conceitual e interna.
00428113176

b) externa, interna e conceitual.


c) conceitual, interna e externa.
d) conceitual, externa e interna.
e) interna, conceitual e externa.

Para relembrar!

Prof. Victor Dalton


www.estrategiaconcursos.com.br 72 de 172

00428113176 - Rodrigo
Tecnologia da Informação para TCM/Goiás
Auditor de Controle Externo - Informática
Prof Victor Dalton Aula 05

Alternativa a).

13ª Questão) (FCC – SEFAZ/SP - Agente Fiscal de Rendas –


Tecnologia da Informação – 2009) Considere:

I. O que se ocupa do modo como os dados são fisicamente armazenados.


II. O que se ocupa do modo como os dados são vistos por usuários
individuais.
III. Nível lógico de comunidade ou apenas lógico (mais abstrato que o físico
e diferente da visão do usuário individual).

Em um projeto arquitetural, os itens I, II e III são classificados,


respectivamente, como níveis
a) externo, conceitual e interno.
b) externo, interno e conceitual.00428113176

c) interno, externo e conceitual.


d) interno, conceitual e externo.
e) conceitual, externo e interno.

Relembrando:

Nível externo: abrange os esquemas externos, ou visões de usuário. Cada


esquema descreverá apenas a visão pertinente de cada usuário a respeito do
Banco de Dados, ocultando o restante. Por exemplo, para um aluno, de um
sistema de aulas online, somente determinada parte do BD lhe é relevante,
provavelmente relacionada aos cursos que realiza. Para um administrador

Prof. Victor Dalton


www.estrategiaconcursos.com.br 73 de 172

00428113176 - Rodrigo
Tecnologia da Informação para TCM/Goiás
Auditor de Controle Externo - Informática
Prof Victor Dalton Aula 05
financeiro desse sistemas, por sua vez, aspectos administrativos serão mais
relevantes, relacionados aos pagamentos dos cursos e de pessoal.

Nível conceitual: possui um esquema conceitual, que descreve o banco de


dados como um todo. Oculta detalhes do armazenamento físico, enfatizando
entidades, tipos de dados e restrições.

Nível interno: apresenta um esquema interno, descrevendo a estrutura de


armazenamento físicos do banco de dados.

Alternativa c).

14ª Questão) (FCC – MPE/AM – Agente de Apoio – Programador -


2013) O sistema de banco de dados deve garantir uma visão totalmente
abstrata do banco de dados para o usuário, ou seja, para o usuário do banco de
dados pouco importa qual a unidade de armazenamento está sendo usada para
guardar seus dados, contanto que os mesmos estejam disponíveis no momento
necessário.

Esta abstração se dá em três níveis:

I. Nível de visão do usuário: as partes do banco de dados que o usuário


tem acesso de acordo com a necessidade individual de cada usuário ou grupo de
usuários.
II. Nível conceitual.
III. Nível físico: é o nível mais baixo de abstração, em que define
efetivamente de que maneira os dados estão armazenados.

O Nível conceitual:

a) garante a integridade dos dados por aplicação de criptografia e o


00428113176

controle de blocos de acesso.


b) especifica a maneira como os dados devem ser transferidos para a
memória.
c) determina o tipo de segurança que será utilizado no acesso aos dados.
d) apresenta o conceito de acesso (simétrico ou assimétrico) e as chaves
que serão utilizadas.
e) define quais os dados que estão armazenados e qual o relacionamento
entre eles.

Mais uma questão envolvendo os níveis. O mais interessante, entretanto, é


que as alternativas de a) a d) aproximam-se do nível físico de abstração. A

Prof. Victor Dalton


www.estrategiaconcursos.com.br 74 de 172

00428113176 - Rodrigo
Tecnologia da Informação para TCM/Goiás
Auditor de Controle Externo - Informática
Prof Victor Dalton Aula 05
alternativa e) é a correta, pois no nível conceitual definem-se relações, tipos
de dados, restrições de integridade, dentre outros.

15ª Questão) (FCC – MPE/SE – Analista – Gestão e Análise de Projeto


de Sistema - 2013) Em projetos de Banco de Dados, o objetivo da arquitetura
de três-esquemas é separar o usuário da aplicação do banco de dados físico.
Nessa arquitetura, os esquemas podem ser definidos por três níveis:

I. O nível interno tem um esquema que descreve a estrutura de


armazenamento físico do banco de dados. Esse esquema utiliza um modelo de
dado físico e descreve os detalhes complexos do armazenamento de dados e
caminhos de acesso ao banco;
II. O nível conceitual possui um esquema que descreve a estrutura de todo
o banco de dados para a comunidade de usuários. O esquema conceitual oculta
os detalhes das estruturas de armazenamento físico e se concentra na descrição
de entidades, tipos de dados, conexões, operações de usuários e restrições.
Geralmente, um modelo de dados representacional é usado para descrever o
esquema conceitual quando o sistema de banco de dados for implementado.
Esse esquema de implementação conceitual é normalmente baseado em um
projeto de esquema conceitual em um modelo de dados de alto nível;
III. O nível interno ainda abrange os esquemas externos ou visões de
usuários. Cada esquema interno descreve a parte do banco de dados que um
dado grupo de usuários tem interesse e oculta o restante do banco de dados
desse grupo. Como no item anterior, cada esquema é tipicamente implementado
usando-se um modelo de dados representacional, possivelmente baseado em
um projeto de esquema externo em um modelo de dados de alto nível.

Está correto o que se afirma em

a) II, apenas.
b) II e III, apenas.
c) I, II e III. 00428113176

d) I e II, apenas.
e) III, apenas.

Questão sem maiores dificuldades. Os itens I e II estão corretos, enquanto


o item III descreve o nível externo.

Alternativa d).

16ª Questão) (FCC – SEFAZ/SP - Agente Fiscal de Rendas –


Tecnologia da Informação – 2009) A independência de dados física e a

Prof. Victor Dalton


www.estrategiaconcursos.com.br 75 de 172

00428113176 - Rodrigo
Tecnologia da Informação para TCM/Goiás
Auditor de Controle Externo - Informática
Prof Victor Dalton Aula 05
independência de dados lógica são possibilitadas de forma ideal,
respectivamente, por um
a) ou mais mapeamentos conceituais/internos e por um ou mais
mapeamentos internos/externos.
b) mapeamento conceitual/interno e por um ou mais mapeamentos
externos/conceituais.
c) mapeamento interno/externo e por um mapeamento conceitual/interno.
d) ou mais mapeamentos internos/externos e por um mapeamento
conceitual/interno.
e) mapeamento conceitual/externo e por um mais mapeamentos
conceituais/internos.

Nos nossos autos, consta que

Independência lógica é a capacidade de alterar o esquema conceitual


sem precisar modificar os esquemas externos.

Independência física é a capacidade de alterar o esquema interno sem


precisar modificar o esquema conceitual.

Coopera para o alcance da independência lógica um mapeamento bem feito


dos níveis externos para o nível conceitual. De maneira análoga, um
mapeamento adequando do nível conceitual para o nível interno possibilita a
independência lógica.

Alternativa b).

17ª Questão) (Cesgranrio – Petrobrás – Analista de Sistemas Júnior


– Engenharia de Software – 2010) A independência de dados lógica,
definição componente da arquitetura de três esquemas para sistemas de banco
de dados, corresponde à capacidade de se efetuarem
a) mudanças no nível conceitual, sem a necessidade de modificações no
00428113176

nível externo e em programas aplicativos.


b) mudanças no nível interno, sem a necessidade de modificações nos
níveis conceitual e externo.
c) mudanças no nível externo, sem a necessidade de modificações nos
níveis interno e conceitual.
d) consultas em SQL sobre um banco de dados relacional, independente da
estruturação física dos dados armazenados.
e) consultas em SQL sobre um banco de dados relacional, independente da
lógica de programação usada em programas aplicativos.

Alternativa a).

Prof. Victor Dalton


www.estrategiaconcursos.com.br 76 de 172

00428113176 - Rodrigo
Tecnologia da Informação para TCM/Goiás
Auditor de Controle Externo - Informática
Prof Victor Dalton Aula 05

18ª Questão) (FCC – MPE/SE – Analista – Gestão e Análise de Projeto


de Sistema - 2013) A capacidade de alterar o esquema conceitual sem mudar
o esquema externo ou os programas, podendo modificar o esquema conceitual
para expandir o banco de dados (adicionando um tipo de registro ou item de
dados), variar as restrições ou reduzir o banco de dados (removendo um tipo de
registro ou item de dados) é chamada de

a) modularidade.
b) modelo conceitual.
c) independência lógica de dados.
d) polimorfismo.
e) agregação.

Alternativa c).

19ª Questão) (FCC – TRE/SP – Analista Judiciário – Análise de


Sistemas - 2012) É o modelo de dados que eliminou o conceito de hierarquia,
permitindo que um mesmo registro estivesse envolvido em várias associações.
Os registros, organizados em grafos, permitem o tipo de associação que define
uma relação 1:N entre os tipos de registros proprietário e membro. Assim, para
dois relacionamentos 1:N entre os registros A e D e entre os registros C e D é
possível construir um relacionamento M:N entre A e D. Trata-se do modelo

a) em rede.
b) relacional.
c) hierárquico.
d) orientado a objetos.
e) distribuído.
00428113176

Revisitando o histórico dos modelos

Modelo hierárquico: O modelo hierárquico foi o primeiro a ser


reconhecido como um modelo de dados. Nele, os registros são conectados em
uma estrutura de dados em árvore, similar a uma árvore invertida (ou às raízes
de uma árvore).

Prof. Victor Dalton


www.estrategiaconcursos.com.br 77 de 172

00428113176 - Rodrigo
Tecnologia da Informação para TCM/Goiás
Auditor de Controle Externo - Informática
Prof Victor Dalton Aula 05

Modelo em rede: o modelo em rede acabou eliminando a hierarquia, pois


passou a permitir que, em tese, cada registro filho pudesse ser ligado a mais de
um registro pai.

Nesse caso, a estrutura em árvore se desfaz, e passa a se assemelhar a


uma estrutura em grafo. Relacionamentos N:M também passam a ser permitidos
(lembrando que o relacionamento é estabelecido entre registros).

00428113176

Modelo relacional: O modelo relacional usa uma coleção de tabelas para


representar os dados e as relações entre eles.

Modelo Entidade/Relacionamento: O modelo de Entidade-


Relacionamento (E-R) é baseado na percepção de um mundo real que consiste
em uma coleção de objetos básicos, chamados entidades, e os relacionamentos
entre esses objetos (existem autores que falam em relação para descrever
relacionamentos.

Modelo de dados orientado a objetos: É uma extensão do modelo ER


com noções de encapsulamento de identidade do objeto (isso será visto em
programação).

Prof. Victor Dalton


www.estrategiaconcursos.com.br 78 de 172

00428113176 - Rodrigo
Tecnologia da Informação para TCM/Goiás
Auditor de Controle Externo - Informática
Prof Victor Dalton Aula 05
Modelo de dados objeto-relacional: Combina características do modelo
relacional com o modelo orientado a objetos.

Visto essas informações, volte à questão e responda o que se pede.


Acredito que você marcará a alternativa a).

20ª Questão) (ESAF – MPOG – Analista de Planejamento e


Orçamento – Tecnologia da Informação – 2009) No modelo entidade-
relacionamento, a cardinalidade de mapeamento expressa
a) o número de entidades ao qual um relacionamento pode estar associado
a um outro relacionamento.
b) o número de relacionamentos ao qual outro relacionamento pode estar
associado via uma entidade.
c) o critério de classificação segundo o qual os relacionamentos associam
entidades.
d) o número de entidades ao qual outra entidade pode estar associada via
um relacionamento.
e) o posicionamento de uma entidade dentro do mapeamento do modelo.

Sabemos que a cardinalidade serve para expressar o número de


entidades que uma entidade pode associar-se, por meio de um
relacionamento.

O restante é para causar confusão. Alternativa d).

21ª Questão) (UEL – Sercomtel – Informática III – 2005) Para um


conjunto de relacionamentos binários a cardinalidade NÃO pode ser:
a)Um para um (1:1): uma entidade E1 pode estar associada no máximo a
uma entidade E2 através de R; e uma entidade de E2 pode estar associada a no
máximo uma entidade E1, através de R. 00428113176

b)Um para muitos (1:N): uma entidade E1 pode estar associada a várias
entidades E2; e uma entidade de E2 pode estar associada a no máximo uma
entidade E1.
c)Muitos para um (N:1): uma entidade E1 pode estar associada no máximo
a uma entidade E2; e uma entidade de E2 pode estar associada a várias
entidades de E1.
d)Muitos para muitos (N:N): uma entidade E1 pode estar associada a
várias entidade E2; e uma entidade de E2 pode estar associada a várias
entidades de E1.
e)Um para muitos (1:N): uma entidade E1 pode estar associada a várias
entidade E2 ou nenhuma; e uma entidade de E2 pode estar associada a
nenhuma ou muitas entidades de E1.

Prof. Victor Dalton


www.estrategiaconcursos.com.br 79 de 172

00428113176 - Rodrigo
Tecnologia da Informação para TCM/Goiás
Auditor de Controle Externo - Informática
Prof Victor Dalton Aula 05
Conhecida a cardinalidade, você já resolve a questão. As quatro primeiras
alternativas exemplificam bem as várias cardinalidades.

A alternativa incorreta, letra e).

22ª Questão) (FCC – Prefeitura de SP – Auditor Fiscal Tributário


Municipal I – Tecnologia da Informação - 2012) Considere o seguinte
diagrama ER parcial de um banco de dados.

De acordo com a cardinalidade das associações, um

a) projeto emprega pelo menos um empregado e é controlado por


exatamente um departamento.
b) empregado trabalha em pelo menos um projeto e gerencia exatamente
um departamento.
c) empregado trabalha em zero ou mais projetos e gerencia exatamente
um departamento. 00428113176

d) departamento é gerenciado por exatamente um empregado e controla


pelo menos um projeto.
e) departamento é gerenciado por exatamente um empregado e controla
zero ou mais projetos.

Se lembra como interpretar esse diagrama? Vem comigo!

Empregado gerencia departamento. Pelas linhas simples e duplas, vejo


que nem todo empregado gerencia departamento, mas todo departamento tem
um gerente, e apenas um, pois a cardinalidade é 1:1;
Empregado trabalha em projeto. Linhas simples, e relacionamento N pra
M. Isso quer dizer que nem todo empregado trabalha em um projeto, e nem

Prof. Victor Dalton


www.estrategiaconcursos.com.br 80 de 172

00428113176 - Rodrigo
Tecnologia da Informação para TCM/Goiás
Auditor de Controle Externo - Informática
Prof Victor Dalton Aula 05
todo projeto tem empregados. Um empregado pode trabalhar em vários
projetos, e projetos podem ter vários empregados;
Departamento controla projeto. Cardinalidade 1 pra N, linhas duplas em
projeto. Logo, nem todo departamento controla projeto, mas cada projeto tem
que ter um departamento que o controle, e apenas um!

Conseguiu acompanhar?

Agora você tem uma questão de lógica para resolver. Leia alternativa a
alternativa, e descubra porque a alternativa e) é a correta.

23ª Questão) (FCC – MPE/MA – Analista Ministerial – Banco de


Dados - 2013) Quando do projeto de um banco de dados relacional, pode
haver a indicação de que um conjunto de entidades tem participação total em
um conjunto de relacionamentos, isto significa que

a) cada entidade do conjunto de entidades participa em todos os


relacionamentos do conjunto de relacionamentos.
b) há, no mínimo, metade das entidades do conjunto de entidades que
participam em pelo menos um relacionamento do conjunto de relacionamentos.
c) as entidades do conjunto de entidades não possuem atributos do tipo
booleano ou do tipo data.
d) cada entidade do conjunto de entidades participa em pelo menos um
relacionamento do conjunto de relacionamentos.
e) todos os atributos do conjunto de entidades são indexados com a técnica
de árvores binárias.

Participação total e parcial!

A linha dupla indica participação total, e a entidade ligada por linha dupla
exige que ela se relacione com pelo menos uma entidade do outro lado do
00428113176

relacionamento. Já a linha simples indica o relacionamento, mas pode ser que


nem toda entidade possua um relacionamento. Você lembra disso?

Uma coisa ruim das bancas é não diferenciar entidade de instância de


entidade. Quando se fala da entidade Projeto, em tese, me refiro à entidade
projeto de modo genérico. Quando se fala de cada entidade Projeto, na
verdade estão se referindo às instâncias de entidade, que, na prática,
correspondem ao registros que estão no Banco de Dados, conforme expliquei
para você na teoria.
A questão seria bem mais clara se ela, ao invés de falar “cada entidade” do
“conjunto de entidades”, falasse “instância das entidades” das “entidades”.

Prof. Victor Dalton


www.estrategiaconcursos.com.br 81 de 172

00428113176 - Rodrigo
Tecnologia da Informação para TCM/Goiás
Auditor de Controle Externo - Informática
Prof Victor Dalton Aula 05
Nossa resposta certa, alternativa d).

24ª Questão) (FCC – MPE/MA – Analista Ministerial – Banco de


Dados - 2013) Considere o seguinte diagrama Entidade-Relacionamento,
resultante da modelagem de um banco de dados relacional:

A partir desse diagrama, pode-se afirmar que

a) uma loja não possui todos os produtos.


b) uma loja possui um número par de departamentos.
c) cada departamento pode possuir vários produtos.
d) um mesmo produto não pode estar em mais de uma loja.
e) o número de lojas é impar.

Outra questão para exercitar seu entendimento do modelo E-R. De


antemão, a alternativa c) é a correta, e as demais são premissas falsas, pois
fazem afirmações mais contundentes do que as contidas no diagrama. Exercite
seu entendimento!

25ª Questão) (FCC – MPE/MA – Analista Ministerial – Banco de


Dados - 2013) A técnica de diagramação no modelo de Entidade-
Relacionamento é bem simples. Utiliza basicamente um losango para
representar ...I... e um retângulo para representar ...II... .

As lacunas I e II são preenchidas, correta e respectivamente, por


00428113176

a) relacionamentos – entidades
b) atributos − relacionamentos
c) entidades − relacionamentos
d) entidades − atributos
e) atributos − entidades

Relembrando:

Retângulos: são as entidades.


Losangos: representam os relacionamentos.
Elipses: representam os atributos (ausente neste diagrama).

Prof. Victor Dalton


www.estrategiaconcursos.com.br 82 de 172

00428113176 - Rodrigo
Tecnologia da Informação para TCM/Goiás
Auditor de Controle Externo - Informática
Prof Victor Dalton Aula 05
Linhas: vinculam conjuntos de entidades a conjuntos de relacionamentos.
Linhas duplas: indicam participação total de uma entidade em um
conjunto de relacionamentos.
Resposta certa, alternativa a).

26ª Questão) (FCC – TRT/6ª Região – Analista Judiciário –


Tecnologia da Informação - 2012) Um banco de dados relacional é um banco
de dados projetado segundo o chamado modelo relacional, que é um modelo de
banco de dados baseado na lógica de predicados de primeira ordem. O objetivo
do modelo é o de proporcionar uma linguagem declarativa para a descrição
tanto dos dados como de consultas a seu respeito, de maneira que o usuário
declara tanto a informação contida no banco de dados como a informação que
dele deseja extrair, deixando a cargo do sistema gerenciador do banco de dados
a tarefa de estabelecer estruturas de armazenamento de dados bem como os
procedimentos de recuperação destes dados para responder consultas. O modelo
relacional foi proposto formalmente há mais de 40 anos.

O texto acima está

a) incorreto, porque o modelo relacional é baseado na lógica de predicados


de segunda ordem.
b) correto.
c) incorreto, porque o modelo relacional não conduz naturalmente a uma
linguagem declarativa de descrição de dados ou consultas.
d) incorreto, porque nos bancos de dados relacionais, a tarefa de descrever
os procedimentos de recuperação dos dados para a resposta a consultas é tarefa
do usuário.
e) incorreto, porque o modelo relacional foi proposto há menos de 30 anos.

Tópicos importantes da longa sentença:

Lógica de predicados de primeira ordem: sem nos aprofundarmos muito, a


00428113176

lógica de predicados de primeira ordem está refletida em frases como “cada


departamento possui um ou mais funcionários”, ou “cada funcionário possui um
único gerente”.

“...a cargo do sistema gerenciador do banco de dados a tarefa de


estabelecer estruturas de armazenamento de dados bem como os
procedimentos de recuperação destes dados para responder consultas”:o que
isso quer dizer? Vou direto a um exemplo. O site da TAM é uma aplicação.
Quando você procura uma passagem para um trecho em um determinado dia e
clica em cima do botão compre seu bilhete, não é você usuário que está
buscando no banco de dados a informação. Você está apenas declarando o que
quer. Será o SGBD que, ao receber essas informações por meio da aplicação do

Prof. Victor Dalton


www.estrategiaconcursos.com.br 83 de 172

00428113176 - Rodrigo
Tecnologia da Informação para TCM/Goiás
Auditor de Controle Externo - Informática
Prof Victor Dalton Aula 05
site, realizará a busca na base de dados e trará a informação mastigada. Aí a
aplicação do site, com as informações já extraídas, monta pra você a tela dos
trechos disponíveis pra compra. Entendeu?
Agora releia a sentença. Já ficou mais “digerível”. Eu sei que existe muita
nomenclatura técnica e nova para você, mas a leitura repetitiva destes termos
vai fazer com que você cada vez mais absorva esse conteúdo com naturalidade.
A frase é longa, mas está completamente correta.

Alternativa b). As demais alternativas estão desmentidas dentro da


própria frase gabarito.

27ª Questão) (ESAF – SUSEP – Analista Técnico – Tecnologia da


Informação - 2010) Em Sistemas Gerenciadores de Bancos de Dados (SGBD),
existem as seguintes categorias de restrições de integridade:
a) Integridade de domínio, Integridade de vazio, Integridade de chave,
Integridade referencial.
b) Integridade de acesso, Integridade de entrada, Integridade de saída,
Integridade referencial.
c) Integridade de domínio, Integridade de completude, Integridade de
chave, Integridade posicional.
d) Integridade de cardinalidade, Integridade de vazio, Integridade de
autorização de acesso, Integridade associativa.
e) Integridade de generalização/especialização, Integridade de usuários,
Integridade de chave, Integridade referencial.

São restrições de integridade:

 Domínio – amarrando os possíveis valores de um atributo (inteiro,


string, não nulo, positivo, tipo, etc.)
 Vazio – dizer se um campo pode ou não ser null. Não deixa de ser
um subitem da integridade de domínio.
00428113176

 Chave – impedindo que uma chave primária se repita, ou seja


nula;
 Referencial – assegurando que uma chave estrangeira possua
respectiva associação na tabela de origem;

Resposta certa, alternativa a).

28ª Questão) (FCC – MPE/MA – Analista Ministerial – Banco de


Dados - 2013) No projeto de bancos de dados relacionais é usual a tarefa de

Prof. Victor Dalton


www.estrategiaconcursos.com.br 84 de 172

00428113176 - Rodrigo
Tecnologia da Informação para TCM/Goiás
Auditor de Controle Externo - Informática
Prof Victor Dalton Aula 05
permitir ou restringir a presença de valores nulos para determinados atributos.
O significado de um valor nulo é

a) o valor zero.
b) um valor especial designado pelo código ASCII da tecla #.
c) o valor correspondente à tecla F12.
d) a ausência de valor.
e) um valor fora do domínio do atributo.

O correto, e mais coerente dentre as alternativas, é que o valor nulo


representa a ausência de valor.

Alternativa d).

29ª Questão) (FCC – ALESP – Agente Técnico Legislativo –


Administração de Banco de Dados – 2010) NÃO é uma restrição de
integridade básica:
a) de vazio.
b) de domínio.
c) de entidade.
d) de chave.
e) referencial.

Alternativa c).

30ª Questão) (FCC – TRT/1ª Região – Analista Judiciário –


Tecnologia da Informação – 2014) No modelo entidade-relacionamento
utilizado para modelar Bancos de Dados relacionais, quando se indica que há um
conjunto de relacionamentos do tipo muitos para muitos entre 2 conjuntos de
00428113176

entidades A e B, significa que

(A) uma entidade do conjunto A está sempre associada a mais de uma


entidade de conjunto B e vice-versa.
(B) uma entidade do conjunto A pode estar associada a várias entidades do
conjunto B e vice-versa.
(C) os conjuntos de entidades A e B possuem, cada um deles, número igual
de atributos.
(D) os conjuntos de entidades A e B possuem diversos atributos com a
possibilidade de terem valores nulos.

Prof. Victor Dalton


www.estrategiaconcursos.com.br 85 de 172

00428113176 - Rodrigo
Tecnologia da Informação para TCM/Goiás
Auditor de Controle Externo - Informática
Prof Victor Dalton Aula 05
(E) uma entidade do conjunto B está associada a apenas uma entidade do
conjunto A, mas uma entidade do conjunto A está associada a várias entidades
do conjunto B.

Em um relacionamento muitos-para-muitos entre A e B, uma entidade de A


poderá se relacionar com várias entidades de B, assim como uma entidade de B
se relaciona com várias entidades de A.

Resposta certa, alternativa b).

31ª Questão) (ESAF – Superintendência de Seguros Privados –


Tecnologia da Informação - 2010) Um modelo de banco de dados relacional
deve conter no mínimo a definição de
a) tabelas, colunas das tabelas e restrições de integridade.
b) títulos, colunas dos atributos e restrições de integridade.
c) títulos, colunas das tabelas e restrições de manutenção.
d) tabelas, relações entre linhas das tabelas e opções de integridade.
e) associações de restrição, colunas referenciadas e restrições de
desempenho.

Pois então, um banco de dados relacional, em sua concepção, necessita de


suas tabelas, das colunas das tabelas(os seus atributos), e de suas restrições de
integridade, fundamentais para a consistência do banco de dados.

Resposta correta, alternativa a).

32ª Questão) (FCC – TCE/AM – Analista Técnico de Controle Externo


– Tecnologia da Informação - 2012) Em relação a bancos de dados, uma
chave primária pode ser formada por uma ou mais colunas e deve possuir um
00428113176

identificador único para


a) cada uma das colunas pertencente a essa chave.
b) cada coluna da tabela.
c) uma tupla (formada por linhas e colunas).
d) todos os registros da tabela.
e) cada linha da tabela.

Todo registro em um banco de dados precisa de um atributo, ou vários, que


possibilitem caracterizar aquele registro no banco como único. Ex:

Prof. Victor Dalton


www.estrategiaconcursos.com.br 86 de 172

00428113176 - Rodrigo
Tecnologia da Informação para TCM/Goiás
Auditor de Controle Externo - Informática
Prof Victor Dalton Aula 05
cod_cliente endereco telefone cidade estado
1 Rua Siqueira (51) 3214- Porto Alegre RS
Campos, 1044 5000
2 Rua Siqueira (51) 3214- Porto Alegre RS
Campos, 1044 5000
3 Avenida Mauá, 1055 (51) 3224- Porto Alegre RS
3364
4 Avenida Mauá, 1055 (51) 3224- Porto Alegre RS
3364

A diferenciação entre as tuplas (ou registros, que são as linhas da tabela)


se faz por meio da chave primária. No caso, o atributo codigo_cliente.

A chave primária é o atributo(coluna) ou atributos(colunas), que


asseguram que cada tupla (linha) da tabela é única.

Resposta certa, alternativa e).

33ª Questão) (ESAF – Superintendência de Seguros Privados –


Tecnologia da Informação – 2010) Em Abordagem Relacional
a) uma chave relacionada é uma coluna cujos valores distinguem atributos
de relacionamentos.
b) a chave estrangeira é o mecanismo que permite a implementação de
relacionamentos em um banco de dados relacional.
c) a chave estrangeira é uma coluna ou uma combinação de colunas cujos
valores não aparecem na chave primária de uma tabela.
d) uma chave primária é uma linha ou uma combinação de linhas cujos
valores distinguem uma coluna das demais dentro de uma tabela.
e) a chave estrangeira é uma linha ou uma combinação de linhas cujos
valores necessariamente aparecem na chave primária de uma tabela.
00428113176

Opa, você já consegue responder esta questão? Vejamos as alternativas:

a) Tão errada que lhe confunde. Uma chave primária é uma coluna ou
uma combinação de colunas cujos valores distinguem uma tupla
das demais dentro de uma tabela.
b) Certa.
c) Não necessariamente. Chaves estrangeiras podem integrar chaves
primárias de uma tabela!
d) Quase! Uma chave primária é uma coluna ou uma combinação de
colunas cujos valores distinguem uma linha das demais dentro
de uma tabela.

Prof. Victor Dalton


www.estrategiaconcursos.com.br 87 de 172

00428113176 - Rodrigo
Tecnologia da Informação para TCM/Goiás
Auditor de Controle Externo - Informática
Prof Victor Dalton Aula 05
e)Não necessariamente. A chave que restringe unicidade (a primária) pode
ou não ser a chave que restringe relacionamento (a estrangeira), pois são
conceitos independentes.

Nossa resposta correta, portanto, é a letra b).

34ª Questão) (FCC – TRT/6ª Região – Analista Judiciário –


Tecnologia da Informação - 2012) No modelo entidade-relacionamento,
a) entidades podem ter atributos, mas relacionamentos não podem ter
atributos.
b) uma chave é um conjunto de atributos cujos valores identificam um
relacionamento de maneira única.
c) um relacionamento é uma associação entre atributos.
d) todo relacionamento tem uma chave.
e) uma chave é um conjunto de atributos cujos valores identificam uma
entidade de maneira única.

Outra questão do modelo entidade-relacionamento. Vamos lá:

a) Entidades podem ter atributos? Devem! Relacionamentos podem ter


atributos? Podem! Não é obrigação;
b) Errada. Explico na alternativa e).
c) Errada! O relacionamento associa entidades!
d) Não necessariamente. Quando um relacionamento vira uma tabela, a
chave pode ser a composição das chaves primárias das entidades que
relaciona. Tem relacionamentos que nem tabela viram (como o exemplo
usuario – comentario).
e) Correta, embora a questão não esteja bem redigida. No modelo
entidade-relacionamento, ou seja, no nível conceitual, não se fala em
tuplas, ou registros. Você logo deve ter pensado: uma chave é um
00428113176

conjunto de atributos cujos valores identificam um


(registro/tupla/linha da tabela) de maneira única. Isso está correto,
quando falamos do modelo relacional. No modelo ER, quando
queremos nos referir a um registro, fala-se em instância ou
ocorrência da entidade. Logo, a redação mais adequada seria “uma
chave é um conjunto de atributos cujos valores identificam uma
ocorrência de entidade de maneira única”, ou “uma chave é um
conjunto de atributos cujos valores identificam uma instância de
entidade de maneira única”. De qualquer forma, a FCC não anulou a
questão.

Prof. Victor Dalton


www.estrategiaconcursos.com.br 88 de 172

00428113176 - Rodrigo
Tecnologia da Informação para TCM/Goiás
Auditor de Controle Externo - Informática
Prof Victor Dalton Aula 05
35ª Questão) (FCC – TJ/RJ – Analista Judiciário – Analista de
Suporte – 2012) Considere:
I. Se uma transação é concluída com sucesso (operação commit bem
sucedida), então seus efeitos são persistentes.
II. Ou todas as ações da transação acontecem, ou nenhuma delas
acontece.
As propriedades (I) e (II) das transações em SGBDs, significam,
respectivamente,
a) durabilidade e consistência.
b) persistência e automação.
c) isolação e atomicidade.
d) durabilidade e atomicidade.
e) consistência e persistência.

Idealmente, toda transação em um banco de dados deverá ser:

Atômica: ou a transação é feita ou não é feita. Parece óbvio, mas


transações complexas em um banco, envolvendo várias tabelas, podem sofrem
interrupções inesperadas, ou não conseguirem terminar por entrar em conflito
com outra que ocorra ao mesmo tempo. Nesse caso, o SGBD deverá ser capaz
de reverter o que parcialmente foi modificado (realizar o rollback);

Consistente: os dados deverão permanecer íntegros e obedientes às


regras do banco de dados (metadados);

Isolada: o resultado de uma transação executada concorrentemente a


outra deve ser o mesmo que o de sua execução de forma isolada. Operações
exteriores a uma dada transação jamais verão esta transação em estados
intermediários.

Durável: os efeitos de uma transação em caso de sucesso (commit) devem


persistir no banco de dados mesmo em presença de falhas. os dados
00428113176

modificados devem estar disponíveis em definitivo.

Portanto, alternativa d).

36ª Questão) (FCC – MPE/MA – Analista Ministerial – Banco de


Dados – 2013) O conceito de transações em um banco de dados relacional
envolve algumas propriedades conhecidas e agrupadas sob o acrônimo ACID. A
letra D nesse acrônimo significa Durabilidade, sendo que seu conceito indica que
a) todas as regras de consistência previamente programadas no banco de
dados serão automaticamente excluídas.

Prof. Victor Dalton


www.estrategiaconcursos.com.br 89 de 172

00428113176 - Rodrigo
Tecnologia da Informação para TCM/Goiás
Auditor de Controle Externo - Informática
Prof Victor Dalton Aula 05
b) cada transação é independente das demais, não gerando influência nas
demais transações eventualmente existentes.
c) os tipos de dados definidos não dependem do sistema gerenciador de
banco de dados utilizado.
d) ao término de uma transação, eventuais alterações em valores das
tabelas do banco de dados devem persistir, mesmo que ocorram falhas no
sistema de banco de dados.
e) é necessário utilizar um sistema gerenciador de banco de dados capaz
de implementar mecanismos de controle de concorrência.

Alternativa d).

37ª Questão) (UEL – SEAP – Analista de Sistemas – 2009) Os sistemas


gerenciadores de bancos de dados devem garantir que as transações por eles
suportadas possuam o conjunto das seguintes propriedades:

a) Atomicidade, consistência, isolamento, durabilidade.


b) Atomicidade, consistência, independência de dados, durabilidade.
c) Atomicidade, consistência, independência de dados, isolamento.
d) Atomicidade, consistência, isolamento, replicação.
e) Atomicidade, consistência, durabilidade, robustez.

Resposta certa, alternativa a).

38ª Questão) (FCC – SEFAZ/SP – Agente Fiscal de Rendas – 2013)


Para responder às próximas questões, considere o texto a seguir:
A empresa Express conta com diversas equipes de desenvolvimento, nas
áreas de software em geral, incluindo técnicas estruturadas e de orientação a
00428113176

objetos. Essas equipes estão em constante aperfeiçoamento, visando mantê-las


sempre atualizadas com as técnicas mais recentes da engenharia de software,
incluindo-se aí a área de bancos de dados.
A Express atende clientes de diversos perfis, abrangendo pequenas, médias
e grandes empresas. Dessa forma, os sistemas de computação solicitados
também atendem a esse perfil, compreendendo sistemas de pequeno, médio e
grande porte.
A Express conta com equipes especializadas, de grande experiência nas
áreas acima destacadas, estando, portanto, apta a atender desde um simples
produto até um grande sistema de software. Dessa forma, os produtos
desenvolvidos pela Express possuem, normalmente, uma qualidade bastante
apurada, o que pode ser verificado pelas diversas técnicas existentes.

Prof. Victor Dalton


www.estrategiaconcursos.com.br 90 de 172

00428113176 - Rodrigo
Tecnologia da Informação para TCM/Goiás
Auditor de Controle Externo - Informática
Prof Victor Dalton Aula 05
Uma das normas da Express é a de produzir documentação de excelente
qualidade, cuja finalidade é, não apenas para entrega aos clientes, mas também
para possibilitar a manutenção adequada dos produtos desenvolvidos.

No projeto de seus bancos de dados, a Express faz uso da modelagem


relacional, na qual é necessário definir os domínios dos atributos de uma
relação. Um domínio é considerado atômico se, na aplicação em questão,
a) o comprimento máximo de seus valores tiver até 255 caracteres.
b) seus elementos forem considerados como indivisíveis.
c) não houver caractere especial nos valores dos atributos, tais como $ e
@.
d) forem admitidos apenas letras e espaços como caracteres válidos.
e) não forem admitidos valores nulos.

Atributos atômicos são aqueles que não podem ser divididos! Alternativa
b).

39ª Questão) (FCC – DPE/SP – Agente de Defensoria Pública –


Analista de Sistemas - 2013) Quando da modelagem de dados de um banco
de dados relacional, podem ser utilizados atributos compostos, sobre os quais é
correto afirmar que
a) podem ser decompostos em outros atributos simples ou ainda
compostos.
b) são sempre formados por um atributo do tipo numérico e um do tipo
literal.
c) não podem conter atributos do tipo booleano em sua formação.
d) não admitem valores nulos em sua composição.
e) fazem parte, obrigatoriamente, da chave primária do conjunto de
entidades ao qual são vinculados.
00428113176

Alternativa a).

40ª Questão) (FCC – SEFAZ/SP – Agente Fiscal de Rendas – 2013) No


projeto de bancos de dados relacionais, a Express tem preocupação de produzir
modelos mais adequados. A chave primária de uma relação de um banco de
dados relacional

a) só pode servir como chave estrangeira de, no máximo, uma outra


relação.
b) não pode ser indexada, quando da implementação do banco de dados.

Prof. Victor Dalton


www.estrategiaconcursos.com.br 91 de 172

00428113176 - Rodrigo
Tecnologia da Informação para TCM/Goiás
Auditor de Controle Externo - Informática
Prof Victor Dalton Aula 05
c) não pode conter atributos do tipo Data.
d) pode ser formada por mais de um atributo.
e) não pode conter mais do que um atributo.

A chave estrangeira é um único atributo, que estabelece um


relacionamento com uma chave primária em outra tabela, embora você possa
ter várias chaves estrangeiras em uma mesma tabela. A chave primária, por
sua vez, é um atributo ou conjunto de atributos que identifica um registro de
maneira única em uma tabela.

Alternativa d).

41ª Questão) (FCC – Prefeitura de SP – Auditor Fiscal Tributário


Municipal I – Tecnologia da Informação - 2012) Considere o seguinte
projeto conceitual de um banco de dados:

Para se construir o projeto lógico deste banco de dados, no mapeamento do


relacionamento ExpostoEm e seus atributos,
00428113176

a) pode ser criada uma relação ExpostoEm, contendo como chaves


estrangeiras as chaves primárias das relações correspondentes às entidades
Produto, Loja e Lote e como atributos Unidade e Quantidade.

b) os atributos Unidade e Quantidade podem ser adicionados à relação


correspondente à entidade Lote. O atributo CodLote deve ser chave estrangeira
nas relações correspondentes às entidades Produto e Loja.

c) os atributos Unidade e Quantidade podem ser adicionados à relação


correspondente à entidade Loja. O atributo CodLoja deve ser chave estrangeira
nas relações correspondentes às entidades Produto e Lote.

Prof. Victor Dalton


www.estrategiaconcursos.com.br 92 de 172

00428113176 - Rodrigo
Tecnologia da Informação para TCM/Goiás
Auditor de Controle Externo - Informática
Prof Victor Dalton Aula 05
d) pode ser criada uma relação ExpostoEm, contendo como atributos
CodExposicao, Unidade e Quantidade. O atributo CodExposicao é a chave
primária desta relação e deve aparecer como chave estrangeira na relação
correspondente à entidade Lote.

e) pode ser criada uma relação ExpostoEm, contendo como atributos


CodExposicao, Unidade e Quantidade. O atributo CodExposicao é a chave
primária desta relação e deve aparecer como chave estrangeira nas relações
correspondentes às entidades Produto, Loja e Lote.

Questão desafio! Mais para você enxergar os conceitos todos se


relacionando, essa é questão típica para quem é de Tecnologia da Informação...

O projeto conceitual, você já sabe, vem antes do projeto lógico. Ele resulta
em diagramas como o acima: algo bem alto nível, pro projetista sentar com o
cliente e conversar, para saber se é isso que ele realmente quer. No projeto
lógico já começa a ser definido como as tabelas ficam na base de dados. Perceba
também algo que eu lhe falei antes: nesta questão, nitidamente relação é
tabela!

Vou colocar o diagrama novamente:

00428113176

Antes de mais nada, um erro da banca: perceba que CodLote deveria estar
em uma elipse. Mas isso não nos impede de prosseguir.

Agora, comecemos pelas entidades. Inevitavelmente, as entidades virarão


tabelas no banco de dados. Vou escrevê-las em notação relacional, que você
facilmente entenderá:

Produto (CodProduto, Nome);

Prof. Victor Dalton


www.estrategiaconcursos.com.br 93 de 172

00428113176 - Rodrigo
Tecnologia da Informação para TCM/Goiás
Auditor de Controle Externo - Informática
Prof Victor Dalton Aula 05
Lote (CodLote);
Loja (CodLoja, Local);

Os atributos sublinhados são as chaves. Há autores que sublinham as


chaves primárias “cheio” e as estrangeiras “tracejado”, enquanto outros
sublinham todas “cheio”. Na prática, isso não é um problema, pois é possível
reconhecer as chaves primárias e estrangeiras.

Nesse caso, as chaves são todas primárias. Atributos do tipo código quase
sempre são chaves.

Agora, veja o relacionamento ExpostoEm. Ele é a chave para resolvermos


o exercício.

O produto, de um lote, exposto em uma loja, acrescido dos campos


unidade e quantidade (já impostos pela questão), precisa de uma tabela de
ligação. Podemos descrevê-la como:

ExpostoEm (CodProduto, CodLote, CodLoja, Unidade, Quantidade)

Captou? CodProduto, CodLote e CodLoja são todas chaves estrangeiras, e,


juntas, compõem a chave primária dessa nova relação.

Agora volte e leia as alternativas.


A alternativa a) propõe exatamente o que eu falei aqui. Está correta, mas
vejamos as outras;

As alternativas b) e c) propõem levar os atributos Unidade e Quantidade


para as tabelas Lote ou Loja. Mas o próprio diagrama mostra que esses
atributos, dado um determinado registro, só existem quando um produto de um
lote é exposto em uma loja. Então estão erradas;

Já as alternativas d) e e) começam “menos mal”, criando a tabela


00428113176

ExpostoEm, criando um CodExposicao, inserindo Unidade e Quantidade. Mas ela


erra ao tentar colocar CodExposicao como chave estrangeira em outra tabela.
Por que? Porque a tabela que contiver esse código, seja qual for,
obrigatoriamente teria que estar “exposto em”. E a relação, conforme foi
definida no projeto conceitual, não funciona assim. Afinal de contas, somente
quando o produto de um lote for exposto em uma loja é que se definirão
unidade e quantidade. Podem haver produtos não expostos, lojas que não estão
expondo e lotes não levados à exposição.

Compreendido? Difícil? Se você entendeu esse exercício, sua visão de


banco de dados está excelente! Caso contrário, leia um pouco mais, mas não
deixe sua consciência pesar por causa disso, tudo bem?

Prof. Victor Dalton


www.estrategiaconcursos.com.br 94 de 172

00428113176 - Rodrigo
Tecnologia da Informação para TCM/Goiás
Auditor de Controle Externo - Informática
Prof Victor Dalton Aula 05

42ª Questão) (FCC – MPE/CE – Analista Ministerial – Ciências da


Computação - 2013) O modelo de dados relacional é baseado em uma coleção
de ...I... . O usuário pode consultá-las e inserir, excluir e atualizar ...II... . A
...III... define um conjunto de operações sobre relações e as linguagens de
consulta são baseadas nela. O modelo de dados ...IV... é amplamente usado
para o projeto do banco de dados, oferecendo uma representação gráfica para
visualizar dados, relacionamentos e ...V....

Preenchem as lacunas, correta e respectivamente, o que consta em

Vamos fazer essa questão raciocinando juntos?

O modelo de dados relacional é baseado em uma coleção de (tabelas ou


relações). Descartamos apenas a alternativa e).

O usuário pode consultá-las e inserir, excluir e atualizar (registros ou


tuplas). Só sobrou a alternativa c)!

A álgebra relacional define um conjunto de operações sobre relações e as


linguagens de consulta são baseadas nela. O modelo de dados E-R é
00428113176

amplamente usado para o projeto do banco de dados, oferecendo uma


representação gráfica para visualizar dados, relacionamentos e restrições.

43ª Questão) (FCC – ALESP – Agente Técnico Legislativo –


Administração de Banco de Dados e Arquitetura de Dados - 2010)
Maneira alternativa de observação de dados de uma ou mais entidades − tabelas
−, que compõe uma base de dados. Pode ser considerada como uma tabela
virtual ou uma consulta armazenada. Trata-se de

a) table shadow.
b) view.
c) shadow table.
Prof. Victor Dalton
www.estrategiaconcursos.com.br 95 de 172

00428113176 - Rodrigo
Tecnologia da Informação para TCM/Goiás
Auditor de Controle Externo - Informática
Prof Victor Dalton Aula 05
d) table blour.
e) blour table.

Sem mais, meritíssimo. Tabela virtual – View!

Alternativa b).

44ª Questão) (FCC – BACEN – Analista – Área 2 – 2005 - adaptada)


Sobre definição e manipulação de visão, analise:

I. Uma VIEW provê mais segurança, pois permite esconder parte dos dados
da tabela real.
II. Os dados que compõem a VIEW são armazenados separadamente da
tabela real.
III. Uma linha inserida na VIEW, com todas as colunas, será inserida na
tabela real.

É correto o que consta APENAS em

a) I,II e III.
b) I e II, somente.
c) I e III, somente.
d) II e III, somente.
e) I, somente.

Analisando os itens:

I. Correto. Podemos ocultar alguns atributos da tabela real em uma view,


seja por segurança ou por conveniência ao usuário final.
II. Errado! View não armazena dados! A view é uma tabela virtual que
00428113176

mostra os elementos de outras tabelas!


III. Correto. Para ser atualizável, via de regra, uma view deverá:

 Influenciar apenas uma tabela do banco de dados;

 Em caso de atributos ocultos na view, ou esse atributo deve ser


gerado automaticamente (no caso de um código, por exemplo),
ou possuir valor default, ou poder ser nulo (null).

No caso de uma view que possui todas as colunas de uma tabela real, uma
inserção de uma linha, nessa view, insere, na verdade, um registro na tabela
real.

Prof. Victor Dalton


www.estrategiaconcursos.com.br 96 de 172

00428113176 - Rodrigo
Tecnologia da Informação para TCM/Goiás
Auditor de Controle Externo - Informática
Prof Victor Dalton Aula 05

45ª Questão) (FMP – ISS/POA – Agente Fiscal da Receita – 2012) Na


modelagem Entidade-Relacionamento (ER) uma propriedade importante de um
relacionamento é a de quantas ocorrências de uma entidade podem estar
associadas a uma determinada ocorrência através do relacionamento. Tal
propriedade é chamada de

a) dependência funcional

b) normalização

c) generalização/especialização

d) relacionamento identificador

e) cardinalidade.

Quantidades de ocorrências associando-se com outras ocorrências por meio


de um relacionamento. Hmm.... inevitavelmente estamos falando de
cardinalidade.

Alternativa e).

46ª Questão) (FMP – ISS/POA – Agente Fiscal da Receita – 2012) A


definição “software que incorpora as funções de definição, recuperação e
alteração de dados em um banco de dados”, melhor corresponde a:

a) Modelo de banco de dados.

b) Linguagem de Consulta Estruturada (SQL).

c) Sistema de Gerência de Banco de Dados (SGDB).

d) Interpretador eXtended Markup Language (XML).


00428113176

e) Sistemas de arquivos.

Depois que a gente estuda fica trivial, não é mesmo? Alternativa c).

47ª Questão) (FMP – ISS/POA – Agente Fiscal da Receita – 2012)


Como se denomina o modelo de dados abstrato que descreve a estrutura de um
banco de dados de forma independente de um SGDB particular?

a) Modelo físico.

Prof. Victor Dalton


www.estrategiaconcursos.com.br 97 de 172

00428113176 - Rodrigo
Tecnologia da Informação para TCM/Goiás
Auditor de Controle Externo - Informática
Prof Victor Dalton Aula 05
b) Modelo de dados.

c) Modelo virtual.

d) Modelo conceitual.

e) Modelo lógico.

Questões diferentes, bancas diferentes, e ocorrem as mesmas perguntas! O


modelo de dados que é totalmente independente de um SGBD particular é o
modelo conceitual.

Alternativa d).

48ª Questão) (FMP – ISS/POA – Agente Fiscal da Receita – 2012) A


técnica de modelagem de dados mais difundida é a abordagem entidade-
relacionamento. À luz dessa modelagem, o que se entende por relacionamento?

a) O conjunto de associações entre as entidades que serão armazenadas no


banco de dados.

b) As informações de uma determinada entidade do banco de dados.

c) Um par específico de entidades.

d) A definição dos possíveis valores que uma determinada entidade pode


assumir.

e) Um identificador que distingue de forma unívoca a ocorrência de uma


entidade das demais ocorrências dessa mesma entidade.

O relacionamento é o elemento que associa as entidades, permitindo a


00428113176

implementação do modelo relacional. Portanto, alternativa a). Apenas para


saciar a sua curiosidade,

A alternativa b) refere-se a registro;

A alternativa c) não diz nada;

A alternativa d) cita a restrição de domínio; e

A alternativa e) cita a chave primária.

Prof. Victor Dalton


www.estrategiaconcursos.com.br 98 de 172

00428113176 - Rodrigo
Tecnologia da Informação para TCM/Goiás
Auditor de Controle Externo - Informática
Prof Victor Dalton Aula 05
49ª Questão) (CETRO – Prefeitura de Manaus/SEMSA – Analista de
Sistemas – 2012) Assinale a alternativa que apresenta a representação
adequada para uma entidade forte no modelo E-R.

a) Losango.

b) Retângulo de borda dupla.

c) Pequeno retângulo de cantos arredondados.

d) Losango de borda dupla.

e) Retângulo.

Uma entidade forte, ou entidade normal, é um retângulo. Os


relacionamentos são losangos.

As entidades fracas são representadas pelos retângulos de borda dupla, e o


losango de borda dupla indica relacionamento envolvendo entidade fraca. Se
você marcar “Pequeno retângulo de cantos arredondados”, eu paro a aula por
aqui, rs.

Alternativa e).

50ª Questão) (CETRO – ANVISA – Analista Administrativo Área 5 –


2013) Com relação às chaves substitutas em banco de dados, analise as
assertivas abaixo.

I. Sempre envolvem exatamente um atributo.

II. Elas servem somente para representar o fato de que entidades


correspondentes existem.

III. Quando uma entidade é excluída, o valor de sua chave substituta


00428113176

deverá ser alocado para a primeira nova entidade adicionada.

É correto o que se afirma em

a) I e III, apenas.

b) I e II, apenas.

c) II e III, apenas.

d) I, II e III.

e) II, apenas.

Prof. Victor Dalton


www.estrategiaconcursos.com.br 99 de 172

00428113176 - Rodrigo
Tecnologia da Informação para TCM/Goiás
Auditor de Controle Externo - Informática
Prof Victor Dalton Aula 05
A chave substituta, ou surrogate key, ou chave artificial, é um campo,
normalmente auto incremental, que pode (não é obrigatório) ser utilizado para
definir a chave primária de uma tabela, de uma maneira genérica. É útil,
particularmente, para substituir chaves primárias compostas por muitos
atributos, o que costuma impactar negativamente a performance do banco de
dados.

* Nome Telefone
1 Paulo (11) 99999-8888
2 Paulo (11) 99999-7777
3 Paulo (11) 3030-3131
4 Marta (11) 5678-9012
5 Marta (11) 99988-9876
6 Rita (11) 98765-4321
Chave substituta: coluna não identificada, marcada com *

Algumas características da chave substituta:

 O valor é único para a tabela, portanto nunca reutilizado (ou seja,


em caso de exclusão, o número não será reutilizado);
 O valor é gerado pelo sistema(automaticamente);
 O valor não é manipulável pelo usuário ou aplicação;
 O valor não contém nenhum significado semântico;
 O valor não é visível para o usuário ou aplicação (no caso de
modelagem relacional);
 O valor não é composto de vários valores a partir de diferentes
domínios.

Voltando à questão, percebe-se que apenas o item III é equivocado, uma


vez que o valor da chave substituta nunca será reutilizado.

Alternativa b). 00428113176

51ª Questão) (CETRO – ANVISA – Analista Administrativo Área 5 –


2013) Quanto aos sistemas de gerenciamento de banco de dados, assinale a
alternativa correta.

a) Sua função geral é fornecer uma interface entre o usuário e o sistema de


banco de dados.

b) Sempre tem um gerenciador de transações.

c) O dicionário de dados impõe certos controles sobre a recuperação e


concorrência do banco de dados.

Prof. Victor Dalton


www.estrategiaconcursos.com.br 100 de 172

00428113176 - Rodrigo
Tecnologia da Informação para TCM/Goiás
Auditor de Controle Externo - Informática
Prof Victor Dalton Aula 05
d) A verificação da integridade dos dados deve ser feita somente no tempo
de compilação.

e) Não incluem compiladores de DML.

O SGBD é o conjunto de programas de computador (softwares)


responsáveis pelo gerenciamento de uma base de dados. Seu principal
objetivo é retirar da aplicação cliente (o sistema da empresa propriamente dito)
a responsabilidade de gerenciar o acesso, a manipulação e a organização dos
dados. O SGBD disponibiliza uma interface para que seus clientes possam
incluir, alterar ou consultar dados previamente armazenados. Em bancos de
dados relacionais a interface é constituída pelas APIs (Application Programming
Interface) ou drivers do SGBD, que executam comandos na linguagem SQL
(Structured Query Language).

Da nossa explanação, a alternativa a) mostra-se correta. Quanto à


demais:

Sempre tem um gerenciador de transações – errado. SGBDs mais


simplórios não possuem tal gerenciamento;

O dicionário de dados impõe certos controles sobre a recuperação e


concorrência do banco de dados – dicionário de dados guarda os metadados
do BD. Ele não é responsável pelo controle de transações;

A verificação da integridade dos dados deve ser feita somente no


tempo de compilação – a integridade dos dados é verificada pelas restrições
impostas (chaves primárias e estrangeiras, e demais restrições de integridade).
Elas são implementadas por ocasião da definição do esquema de dados, e
verificadas em tempo de execução.

Não incluem compiladores de DML – SGBDs precisam ao menos


00428113176

interpretar a linguagem DDL (Data Definition Language), que serve para a


definição do esquema do banco de dados, e a DML (Data Manipulation
Language), voltada para a manipulação dos dados.

52ª Questão) (FCC – TRT 2ª Região – Analista Judiciário – Tecnologia


da Informação – 2014) Em alguns casos, dois ou mais valores de atributos
em um modelo de Entidade-Relacionamento estão relacionados. Por exemplo, os
atributos Idade e Data de Nascimento de uma pessoa. Para uma Entidade-
Pessoa em particular, o valor de Idade pode ser determinado pela data corrente
e o valor de Data de Nascimento da pessoa. Portanto, o atributo Idade é
chamado atributo ...I... do atributo Data de Nascimento, que, por sua vez, é
chamado atributo ...II... .
Prof. Victor Dalton
www.estrategiaconcursos.com.br 101 de 172

00428113176 - Rodrigo
Tecnologia da Informação para TCM/Goiás
Auditor de Controle Externo - Informática
Prof Victor Dalton Aula 05

As lacunas I e II são, correta e respectivamente, preenchidas com:

(A) armazenado - derivado


(B) derivado - armazenado
(C) multivalorado - monovalorado
(D) identificador - complexo
(E) resultante - unívoco

O atributo Idade é um atributo derivado, pois pode ser calculado com base
no atributo armazenado Data de Nascimento, tendo o dia atual como
referência.

Resposta: alternativa b).

53ª Questão) (FCC – SABESP – Tecnólogo - Sistemas - 2014) Um


SGBD multiusuário deve permitir que diversos usuários acessem o banco de
dados ao mesmo tempo. Isso é essencial se os dados para as várias aplicações
estão integrados e mantidos em um único banco de dados. O SGBD deve incluir
um software de controle de concorrência para garantir que muitos usuários, ao
tentar atualizar o mesmo dado, o façam de um modo controlado, para assegurar
que os resultados das atualizações sejam corretos. Por exemplo, quando muitos
atendentes tentam reservar um lugar em um voo, o SGBD deve garantir que
cada assento possa ser acessado somente por um atendente de cada vez, para
fazer a reserva de apenas um passageiro.

Em SGBD, a este conceito se dá o nome de

a) acesso simultâneo.
b) semáforo de acesso.
c) transação.
d) modularização. 00428113176

e) polimorfismo.

Percebeu que a questão se parece muito com a explicação da teoria?

Isso ocorre porque a FCC também se baseou no Elmasri e Navathe para


apresentar o exemplo. No caso, a banca está explicando o conceito de
Processamento de Transação Multiusuário.

Não gostei da forma que a banca apresentou as alternativas, porém, a


“mais correta” é a letra c).

Prof. Victor Dalton


www.estrategiaconcursos.com.br 102 de 172

00428113176 - Rodrigo
Tecnologia da Informação para TCM/Goiás
Auditor de Controle Externo - Informática
Prof Victor Dalton Aula 05
54ª Questão) (FCC – SABESP – Tecnólogo - Sistemas - 2014) Um
SGBD possui a capacidade de mudar o esquema interno sem ter de alterar o
esquema conceitual, consequentemente não havendo necessidade de alteração
do esquema externo. As mudanças no esquema interno podem ser necessárias
para que alguns arquivos físicos possam ser reorganizados, por exemplo, pela
criação de estruturas de acesso adicionais para aperfeiçoar o desempenho da
recuperação ou atualização de dados.

Essa característica de um SGBD é denominada

a) modelo lógico de dados.

b) modelo físico de dados.

c) independência modular.

d) representação conceitual.

e) independência física de dados.

Independência física é a capacidade de alterar o esquema interno sem


precisar modificar o esquema conceitual.

Resposta certa, alternativa e).

55ª Questão) (FCC – SABESP – Tecnólogo - Sistemas - 2014) Uma


característica fundamental da abordagem de um banco de dados é que o
sistema de banco de dados possui não apenas o banco de dados, mas também
uma completa definição ou descrição ...I... desse banco de dados e ...II.... Essa
definição está armazenada no catálogo do SGBD, que contém informações como
a estrutura de cada arquivo, o tipo e o formato de armazenamento de cada item
de dado e várias restrições sobre os dados.
00428113176

As lacunas I e II são correta e, respectivamente, preenchidas por:

a) do domínio - seus casos de uso

b) do conteúdo binário - suas linhas e colunas

c) das tabelas - seus administradores

d) da estrutura - suas restrições

e) em UML - outros bancos deste sistema

Prof. Victor Dalton


www.estrategiaconcursos.com.br 103 de 172

00428113176 - Rodrigo
Tecnologia da Informação para TCM/Goiás
Auditor de Controle Externo - Informática
Prof Victor Dalton Aula 05

Na natureza de autodescrição de um sistema de banco de dados,


entendemos que o sistema de banco de dados precisa ir além dos dados
propriamente ditos. Ele precisa descrever sua estrutura (quais são suas
tabelas, tamanho do banco, etc...) e quais são suas restrições (domínio dos
dados, relacionamento entre as tabelas, dentre outros).

Resposta certa, alternativa d).

56ª Questão) (FCC – SABESP – Tecnólogo - Sistemas - 2014) No


processamento tradicional de arquivos, a estrutura do arquivo de dados está
embutida no programa da aplicação, sendo assim, qualquer mudança na
estrutura de um arquivo pode exigir alterações de todos os programas que
acessam esse arquivo. Aplicações desenvolvidas com foco em SGBD não exigem
essas alterações na maioria dos casos, pois a estrutura dos arquivos de dados é
armazenada no catálogo do SGDB separadamente do programa de acesso.

A este isolamento entre programas e dados é dado o nome de

a) abstração de dados.

b) acesso remoto.

c) independência funcional.

d) independência modular.

e) modelo relacional.

Segundo Navathe, “qualquer mudança na estrutura de dados do SGBD não


00428113176

exige mudanças nos programas que acessam o banco de dados. A estrutura dos
arquivos de dados é armazenada no catálogo do SGBD separadamente dos
programas de acesso.

Essa propriedade é chamada de independência programa-dados.”

Ainda, existe a independência programa-operação, na qual a


implementação (método) da operação é especificada separadamente e pode ser
alterada sem afetar a interface.

Porém, a independência programa-dados e a independência programa-


operação só são possíveis em virtude de uma característica do SGBD, que é a
abstração de dados, que é o fato de o SGBD oferece aos usuários uma
Prof. Victor Dalton
www.estrategiaconcursos.com.br 104 de 172

00428113176 - Rodrigo
Tecnologia da Informação para TCM/Goiás
Auditor de Controle Externo - Informática
Prof Victor Dalton Aula 05
representação conceitual de dados, que não inclui muitos detalhes de como os
dados são armazenados ou como as operações são implementadas.

Novamente, não gostei da abordagem da banca, que apenas descreveu a


independência programa-dados, com o objetivo de chegar a uma característica
maior, que é a abstração de dados.

Na verdade, a abstração de dados é a característica do SGBD que


propiciam a independência programa-dados e programa-operação.

Resposta certa, alternativa a).

57ª Questão) (FCC – SABESP – Tecnólogo - Sistemas - 2014) A


maioria das aplicações de um banco de dados tem certas restrições de
integridade que devem complementar os dados. O SGBD deve prover
funcionalidades para a definição e a garantia dessas restrições. O tipo mais
simples de restrição de integridade envolve a

a) especificação de um tipo de dado para cada item de dados.

b) indexação da tabela por valores ascendentes ou descendentes, conforme


a restrição a ser integrada.

c) criação de visualizações (views) para as colunas de uma tabela.

d) definição do modelo lógico de dados juntamente com as características


físicas do domínio.

e) utilização de chaves estrangeiras em conjunto com a definição de um


gatilho (trigger) para determinados eventos.

00428113176

A restrição de integridade mais comum é a restrição de domínio, afinal,


todos os atributos de um banco de dados precisam ser tipificados, no mínimo.

Resposta certa, alternativa a).

58ª Questão) (FCC – SEFAZ/PE – Auditor Fiscal – 2014) Um Sistema


de Gerenciamento de Banco de Dados (SGBD) é um software com recursos
específicos para facilitar a manipulação das informações dos bancos de dados e
o desenvolvimento de programas aplicativos. A forma como os dados serão
armazenados no banco de dados é definida pelo modelo do SGBD. Os principais
modelos são: hierárquico, em rede, orientado a objetos e

Prof. Victor Dalton


www.estrategiaconcursos.com.br 105 de 172

00428113176 - Rodrigo
Tecnologia da Informação para TCM/Goiás
Auditor de Controle Externo - Informática
Prof Victor Dalton Aula 05

(A) funcional.
(B) procedural.
(C) orientado a serviços.
(D) relacional.
(E) orientado a componentes.

O modelo relacional é um dos modelos mais cobrados em provas. As


demais sentenças nem se aplicam a banco de dados.

Resposta certa: alternativa d).

59ª Questão) (FCC – TCE/RS – Auditor Público Externo – Técnico em


Procesamento de Dados – 2014) Considerando a modelagem de dados de
um banco de dados relacional, há diversos conceitos envolvendo conjuntos de
entidades. Um conceito correto sobre conjuntos de entidades e seus atributos é

(A) um atributo do tipo derivado é aquele que pode ser dividido em duas ou
mais partes, sem perda de significado.

(B) um atributo de um conjunto de entidades é multivalorado se for do tipo


literal com mais de 20 caracteres.

(C) um atributo de um conjunto de entidades é monovalorado se for do tipo


numérico.

(D) um conjunto de entidades fraco é aquele que não tem atributos


suficientes para formar uma chave primária.

(E) um conjunto de entidades forte é aquele que tem apenas atributos


literais ou numéricos, não contendo atributos do tipo data.
00428113176

As alternativas são todas nonsense, à exceção da letra d). Realmente,


entidade fraca é aquela que não possui atributos “capazes” de formar uma chave
primária.

Prof. Victor Dalton


www.estrategiaconcursos.com.br 106 de 172

00428113176 - Rodrigo
Tecnologia da Informação para TCM/Goiás
Auditor de Controle Externo - Informática
Prof Victor Dalton Aula 05
SQL

1ª Questão) (ESAF – Analista de Finanças e Controle –


Desenvolvimento de Sistemas de Informação – 2008) Em um banco de
dados que utiliza a linguagem SQL para definição, manipulação e controle de
dados, é correto afirmar que os comandos
a) CREATE, DROP e INSERT fazem parte da DML (Linguagem de
Manipulação de Dados).
b) GRANT e REVOKE fazem parte da DCL (Linguagem de Controle de
Dados).
c) INSERT, UPDATE e SELECT fazem parte da DDL (Linguagem de Definição
de Dados).
d) ALTER, DELETE e REVOKE fazem parte da DML (Linguagem de
Manipulação de Dados).
e) CREATE, GRANT e DROP fazem parte da DCL (Linguagem de Controle de
Dados).

A linguagem SQL é a linguagem para banco de dados mais difundida nos


dias de hoje. Ela pode fazer coisas como consultar banco de dados, definir a
estrutura dos dados, modificar dados em um banco e especificar restrições de
segurança. Revisemos os tipos de linguagens de dados:

DDL (Data Definition Language) – serve para a definição de estruturas


de dados, incluindo linhas, colunas, tabelas, índices e localizações de
arquivos.Ex: CREATE (cria tabelas), ALTER(modifica a tabela, como para incluir
um atributo) e DROP(elimina a tabela).

DML (Data Manipulation Language) – voltada para a manipulação dos


dados, como o próprio nome diz. Ex: INSERT(inserir), SELECT(consultar),
UPDATE(atualizar, modificando alguns atributos), DELETE(autoexplicativo)....
00428113176

SDL (Storage Definition Language) – 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.

DTL (Data Transaction Language) – para a transação no banco de


dados. Ex: BEGIN WORK(iniciar uma transação), COMMIT(gravar a transação do
buffer para o disco rígido), ROLLBACK(desfazer transação).

DCL (Data Control Language) – controla aspectos de autorização de


dados e licenças de usuários para controlar quem tem acesso dentro do banco.
Ex: GRANT(dar acesso), REVOKE(retirar acesso).

Prof. Victor Dalton


www.estrategiaconcursos.com.br 107 de 172

00428113176 - Rodrigo
Tecnologia da Informação para TCM/Goiás
Auditor de Controle Externo - Informática
Prof Victor Dalton Aula 05

VDL (View Definition Language) – voltada para especificar as visões dos


usuários e seus mapeamentos para o esquema conceitual.Ex: CREATE VIEW,
DROP VIEW.

São alguns conceitos chatos, mas que fazem sentido. Assim, nossa
alternativa correta é a letra b).

2ª Questão) (FCC – INFRAERO – Analista de Sistema – Banco de


Dados e Administrador de Dados - 2011) A linguagem de manipulação de
dados (DML)

a) sempre se utiliza de outra linguagem de programação hospedeira para


que possa ser executada.
b) utiliza instruções INSERT, DROP, SELECT, UPDATE, entre outras.
c) pode ser executada mesmo que suas sentenças não estejam escritas em
um código de linguagem de programação.
d) se utiliza de instruções que permitem a inclusão e alteração de dados,
assim como, atribuição e negação de permissões.
e) é uma linguagem exclusivamente procedural, para especificar como os
dados devem ser obtidos do banco.

Às alternativas:

a) Errada. Existem ferramentas para consulta ao banco de dados na qual


você digita os comandos SQL e executa normalmente, sem estar dentro
de outra linguagem;
b) Pegadinha da FCC! DROP é comando da DDL, maliciosamente inserido
entre comandos corretos da DML.
c) Correta. Olha a lógica aí gente! Alternativas c) e a) são opostas. Uma
das duas tinha que ser a correta! 
00428113176

d) Atribuição e negação de permissões é coisa de DCL! GRANT e REVOKE,


lembra?
e) SQL é uma linguagem declarativa, ou não-procedural.

3ª Questão) (FCC – INFRAERO – Analista de Sistema – Banco de


Dados e Administrador de Dados - 2011) É INCORRETO afirmar que a
linguagem de definição de dados (DDL) permite

a) o suporte a rollback, já que instruções DDL podem ser manipuladas


dentro de uma transação.
b) a modificação de um objeto existente do banco de dados.

Prof. Victor Dalton


www.estrategiaconcursos.com.br 108 de 172

00428113176 - Rodrigo
Tecnologia da Informação para TCM/Goiás
Auditor de Controle Externo - Informática
Prof Victor Dalton Aula 05
c) declarações para definição de relacionamentos de integridade referencial.
d) que o resultado da compilação de comandos de uma DDL seja
armazenado no dicionário de dados.
e) a definição de tuplas no banco de dados, por meio do comando CREATE.

Todas as linguagens de BD são importantes, mas a DDL merece um


destaque especial, pois é ela que cria o Banco, ou seja, é ela que converte os
desenhos e diagramas em um banco implementado.

Destrinchando:

a) Está correto. Em resumo, é possível desfazer criações, alterações e


exclusões de tabela, em caso de falha da transação;
b) Também correta, pelo comando ALTER;
c) Correto. Dentro do CREATE, é possível estabelecer PRIMARY KEY e
FOREIGN KEY;
d) Também correto. A DDL coloca sua saída no dicionário de dados, que
contém metadados, ou seja, dados sobre os dados. O dicionário de
dados é um tipo de tabela que só pode ser acessado e atualizado pelo
próprio sistema de banco de dados, e não por um usuário comum. Um
sistema de banco de dados consulta o dicionário de dados antes de ler
ou modificar os dados. Sabe quando você quer postar um comentário no
twitter, e não pode passar de 140 caracteres? É porque lá na tabela
SeiLaONome deve estar definido um varchar(141), e você não pode
passar disso.
e) Percebeu a maldade?

O comando CREATE realmente é da DDL. Mas a “definição” de uma tupla no


banco é feita pelo INSERT! O examinador estava querendo aprontar. Se ele
escrevesse “inserção” ao invés de “definição” ficaria fácil perceber o erro.
Sentiram a maldade?

Em frente! 00428113176

4ª Questão) (FCC – SABESP – Analista Gestão I - Sistemas - 2012)


Sobre restrições (constraints) em bancos de dados, considere:

I. A restrição NOT NULL, assim como as restrições UNIQUE e PRIMARY KEY


fornecem uma garantia de exclusividade para uma coluna ou conjunto de
colunas.
II. A restrição DEFAULT é usada para inserir um valor padrão em uma
coluna. O valor padrão será adicionado a todos os novos registros, caso nenhum
outro valor seja especificado.
III. A restrição CHECK é usada para limitar a gama de valores que podem
ser colocados em uma coluna. Se essa restrição for definida em uma tabela, ela
Prof. Victor Dalton
www.estrategiaconcursos.com.br 109 de 172

00428113176 - Rodrigo
Tecnologia da Informação para TCM/Goiás
Auditor de Controle Externo - Informática
Prof Victor Dalton Aula 05
pode limitar os valores em determinadas colunas com base nos valores de
outras colunas da linha.

Está correto o que consta em

a) III, apenas.
b) I e II, apenas.
c) I e III, apenas.
d) II e III, apenas.
e) I, II e III.

Estas são as algumas restrições que podem ser aplicadas a atributos de


uma tabela, com comandos SQL. Vejamos:

I. NOT NULL – é uma restrição de vazio, que impede que o valor deste
atributo em um registro fique sem ser preenchido. Não tem nada a ver com
garantia de exclusividade.
II. DEFAULT - Exatamente o que descreve a assertiva. Não impede que
outro valor distinto seja inserido ou modificado mas, caso nada seja inserido, o
valor default é automaticamente preenchido.
III. CHECK - Também é o que está descrito. Você usa essa restrição
quando desejar, por exemplo, que o atributo idade de uma tabela pessoa seja,
obrigatoriamente, preenchido com valores entre 18 e 70. Se alguém tentar
inserir um valor fora desses parâmetros, o SGBD envia uma mensagem de erro,
impedindo a operação.

Desta forma, a alternativa correta é a letra d).

5ª Questão) (FCC – Metrô/SP – Analista Desenvolvimento Gestão


Júnior – Ciências da Computação - 2012) Um dos métodos para garantir a
integridade das informações inseridas em bancos de dados é pelo uso de
constraints, que garantem que os dados sejam validados de acordo com os
00428113176

critérios estabelecidos pelas constraints. Sobre a constraint UNIQUE em


linguagem SQL, é INCORRETO afirmar que

a) designa uma coluna ou uma combinação de colunas de tal forma que


duas linhas não possam ter o mesmo valor.
b) estabelece um relacionamento com a chave primária ou única da mesma
ou de outra tabela.
c) valores nulos são aceitos.
d) automaticamente é criado um índice único para a coluna ou colunas
especificadas.
e) é possível criá-la após a criação da tabela.

Prof. Victor Dalton


www.estrategiaconcursos.com.br 110 de 172

00428113176 - Rodrigo
Tecnologia da Informação para TCM/Goiás
Auditor de Controle Externo - Informática
Prof Victor Dalton Aula 05

Você sabe qual tipo de restrição é unique? Acertou se disse que unique é
uma restrição de chave. E para que serve o unique?

O unique é a restrição que implementa as chaves candidatas. Exemplo


típico são os campos CPF e TituloDeEleitor em uma tabela. Escolhido CPF como
chave primária, pode-se atribuir a restrição unique a TituloDeEleitor, de modo a
assegurar que dois cidadãos não tenham o mesmo número de título de eleitor.
Não deixa de ser um reforço nas restrições do BD.

E o que está errado entre as alternativas acima? É afirmar que a restrição


estabelece um relacionamento com a chave primária da mesma ou de outra
tabela.

Unique, diferentemente da chave primária (PRIMARY KEY), é uma restrição


com fim em si mesma. Ela apenas verifica, quando da criação ou alteração do
atributo restrito, se já existe outro registro com o mesmo valor para aquele
atributo naquela tabela. Caso isso ocorra, o SGBD impede a gravação e envia
uma mensagem de erro. Nada além disso.

Alternativa b).

6ª Questão) (FGV – MEC – Analista de Sistema –Administrador de


Dados - 2008) Um DBA criou uma tabela em um Banco de Dados no
postgreSQL 8.3 utilizando o comando

CREATE TABLE mec (


cidade varchar(80),
temp_baixa int,
temp_alta int,
nivel_precip real,
data date) 00428113176

Para o comando que insere dados na tabela mec, é usada a seguinte


sintaxe:
a) INSERT IN mec(cidade, temp_baixa, temp_alta, nível_precip, data)
VALUES ('Brasilia', 20, 34, 0.2, ‘2009-01-13');
b) INSERT ON mec(cidade, temp_baixa, temp_alta, nivel_precip, data)
VALUES ('Brasilia', 20, 34, 0.2, ‘2009-01-13');
c) INSERT FROM mec(cidade, temp_baixa, temp_alta, nivel_precip, data)
VALUES ('Brasilia', 20, 34, 0.2, ‘2009-01-13');
d) INSERT OVER mec(cidade, temp_baixa, temp_alta, nivel_precip, data)
VALUES ('Brasilia', 20, 34, 0.2, ‘2009-01-13');

Prof. Victor Dalton


www.estrategiaconcursos.com.br 111 de 172

00428113176 - Rodrigo
Tecnologia da Informação para TCM/Goiás
Auditor de Controle Externo - Informática
Prof Victor Dalton Aula 05
e) INSERT INTO mec(cidade, temp_baixa, temp_alta, nivel_precip, data)
VALUES ('Brasilia', 20, 34, 0.2, ‘2009-01-13');

Os comandos SQL são não-procedurais ou declarativos. Você verá que não


são difíceis de entender.

Na execução do CREATE criou-se a tabela abaixo:

MEC
cidade temp_baixa temp_alta nivel_precip Data

Agora a questão está limitada a você saber que depois de INSERT escreve-
se INTO, sendo a alternativa e) a correta.

Agora leia:

INSERT INTO mec(cidade, temp_baixa, temp_alta, nivel_precip, data)


VALUES ('Brasilia', 20, 34, 0.2, ‘2009-01-13');

Você já lembrou que INSERT é um comando DML (Data Manipulation


Language), pois ele manipula o banco, mais exatamente inserindo registros.

Mas o que esse comando faz exatamente?

MEC
cidade temp_baixa temp_alta nivel_precip Data
Brasilia 20 34 0.2 2009-01-13

Entendeu? Em frente!

00428113176

7ª Questão) (FCC – INFRAERO – Analista de Sistema – Banco de


Dados e Administrador de Dados - 2011) Analise os comandos PL/SQL:

CREATE TABLE Departamentos (Id numeric(10) not null,Descricao


varchar(30) not null, CONSTRAINT Dept_pk PRIMARY KEY(Id));

CREATE TABLE Vendedores (Id numeric(10) not null,Nome varchar(30) not


null,Departamento numeric(10) not null, CONSTRAINT Vendedores_pk PRIMARY
KEY(Id),CONSTRAINT fk_dept FOREIGN KEY(Departamento) REFERENCES
Departamentos(Id));

Prof. Victor Dalton


www.estrategiaconcursos.com.br 112 de 172

00428113176 - Rodrigo
Tecnologia da Informação para TCM/Goiás
Auditor de Controle Externo - Informática
Prof Victor Dalton Aula 05
CREATE TABLE Vendas (Vendedor numeric(10) not null,ValordeVenda real
not null,CONSTRAINT fk_vendedores FOREIGN KEY(Vendedor) REFERENCES
Vendedores(Id));

O comando PL/SQL necessário para listar o nome dos vendedores que


obtiveram Valor de Venda superior a 100 e que pertençam ao departamento 1
nas tabelas criadas acima deve ser:

a) SELECT * FROM Vendedores WHERE Departamento = 1 AND (SELECT


ValordeVenda FROM Vendas WHERE Sum(ValordeVenda) > 100);

b) SELECT Nome FROM Vendedores WHERE Departamento = 1 AND


(SELECT Sum(ValordeVenda) FROM Vendas WHERE Vendedor = Vendedores.Id)
> 100;

c) SELECT Vendedor FROM Vendas WHERE Sum(ValordeVenda) > 100 AND


Departamento = 1;

d) SELECT (SELECT Nome from Vendedores WHERE Id = Vendas.Vendedor)


as Nome,ValordeVenda FROM Vendas WHERE ValordeVenda > 100;

e) SELECT (SELECT Sum(ValordeVenda) FROM Vendas) as S,(SELECT Id


from Departamentos WHERE Id = 1) as IdDept WHERE S > 100 AND IdDept =
1;

Os comandos SQL do enunciado criaram 3 tabelas, Departamentos,


Vendedores e Vendas, e o objetivo é saber quais vendedores do departamento 1
realizaram vendas cujo total supere o valor 100. Analisemos as alternativas:

a) Essa alternativa esquece de fazer o JOIN (unir) as tabelas vendedores e


vendas. Errada;

c) Não existe o campo Departamento na tabela Vendas, o que torna o filtro


00428113176

errado. Errada;

d) Esta faz o JOIN dentro da subconsulta e retorna apenas os vendedores


que fizeram alguma venda com valor acima de 100, e não o total delas.
Fora que não realiza o filtro por Departamento. Totalmente errada;

e) Não existe JOIN algum na sentença. Errada;

b) Achamos a correta. Realiza o JOIN entre as tabelas Vendedores e


Vendas, filtra por Departamento e faz o somatório de forma apropriada.

Prof. Victor Dalton


www.estrategiaconcursos.com.br 113 de 172

00428113176 - Rodrigo
Tecnologia da Informação para TCM/Goiás
Auditor de Controle Externo - Informática
Prof Victor Dalton Aula 05
É um exercício mais bem elaborado. Se você conseguir ao menos entender
porque a alternativa certa é certa, seu nível de SQL está muito bom!

8ª Questão) (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.
c) 6.
d) 29.
e) 5.

Então você leu por cima e achou a questão facílima? Ou você está bem
“ligeiro” em SQL, e aí meus parabéns, ou você vai se enrolar...

Analisemos linha a linha:

CREATE TABLE VALORES (ID INT NOT NULL PRIMARY KEY,VALOR INT);
VALORES
id valor
00428113176

INSERT INTO VALORES VALUES (1,5);


VALORES
id valor
1 5

INSERT INTO VALORES VALUES (1,6);


- Não funciona! A chave primária 1 já existe na tabela. O comando
apropriado seria o UPDATE!

Prof. Victor Dalton


www.estrategiaconcursos.com.br 114 de 172

00428113176 - Rodrigo
Tecnologia da Informação para TCM/Goiás
Auditor de Controle Externo - Informática
Prof Victor Dalton Aula 05
INSERT INTO VALORES VALUES (NULL,7);
- Também não funciona! Restrição NOT NULL para a chave!

INSERT INTO VALORES VALUES (2,1);


VALORES
id valor
1 5
2 1

INSERT INTO VALORES VALUES (2,8);


- Não funciona! A chave primária 2 já existe na tabela.

INSERT INTO VALORES VALUES (3,9);


VALORES
id valor
1 5
2 1
3 9
INSERT INTO VALORES VALUES (NULL,10);
- Não funciona! Restrição NOT NULL para a chave.

Bem, então temos uma tabela preenchida com (1,5), (2,1) e (3,9).
Tranquilo?

SELECT COUNT(VALOR) FROM VALORES WHERE VALOR >= 5;

Outro comando DML, pois faz uma consulta ao banco.


“Aportuguesando”:

SELECIONE CONTAR(VALOR) DE VALORES ONDE VALOR >=5;


00428113176

Esse comando retorna o número de registros da tabela cujo atributo valor é


maior ou igual a 5. Logo, retorna “2”.

E nossa resposta é a alternativa a). Tudo bem?

9ª Questão) (FGV – MEC – Analista de Sistema –Administrador de


Dados - 2008) Stored Procedure é termo utilizado para um conjunto de
comandos, ao qual é atribuído um nome, que fica armazenado no Banco de
Dados e pode ser chamado a qualquer momento tanto pelo SGBD quanto por um
sistema que faz interface com o mesmo. A utilização de Stored Procedures
constitui uma técnica eficiente de executarmos operações repetitivas. Ao invés
de digitar os comandos cada vez que determinada operação necessite ser

Prof. Victor Dalton


www.estrategiaconcursos.com.br 115 de 172

00428113176 - Rodrigo
Tecnologia da Informação para TCM/Goiás
Auditor de Controle Externo - Informática
Prof Victor Dalton Aula 05
executada, cria-se um Stored Procedure que é chamada quando necessário. Em
um Stored Procedure pode-se ter estruturas de controle e decisão, típicas das
linguagens de programação. No SQL Server, uma “stored procedure” é
executada automaticamente quando um dado da tabela é alterado em
decorrência da execução de um comando SQL do tipo INSERT, UPDATE ou
DELETE. Esta “stored procedure” é denominada:

a) commit.
b) rollback.
c) trigger.
d) snapshot.
e) deadlock.

O enunciado da questão é excelente para conceituar Stored Procedure.

Melhor ainda é utilizarmos a questão para falar do Trigger.

Um Trigger é bloco de comandos Transact-SQL que é automaticamente


executado quando um comando INSERT, DELETE ou UPDATE for executado em
uma tabela do banco de dados.
Os Triggers são usados para realizar tarefas relacionadas com validações,
restrições de acesso, rotinas de segurança e consistência de dados; desta forma
estes controles deixam de ser executados pela aplicação e passam a ser
executados pelos Triggers em determinadas situações:
 Mecanismos de validação envolvendo múltiplas tabelas
 Criação de contéudo de uma coluna derivada de outras colunas da tabela
 Realizar análise e atualizações em outras tabelas com base em alterações
e/ou inclusões da tabela atual.

Exemplo simples:

CREATE TRIGGER TotalSal2 00428113176

AFTER UPDATE OF Salario ON Empregado


FOR EACH ROW
WHEN (NEW.Ndep IS NOT NULL)
UPDATE Departamento
SET TotalSal=TotalSal+NEW.Salario-OLD.Salario
WHERE Dnum=NEW.Ndep;

Conseguiu captar?
Basicamente, este Trigger, quando da atualização salarial de um
empregado, vai na tabela Departamento e atualiza o total de despesas do
referido Departamento com o novo salário do empregado.

Prof. Victor Dalton


www.estrategiaconcursos.com.br 116 de 172

00428113176 - Rodrigo
Tecnologia da Informação para TCM/Goiás
Auditor de Controle Externo - Informática
Prof Victor Dalton Aula 05
Teoricamente, sem esta ferramenta, alguém teria que lembrar de fazer
essa atualização manualmente, em outra parte do sistema. Já imaginou um
sistema inteiro sem triggers?

Resposta certa, alternativa c).

(CESPE – MEC – Atividade Técnica de Complexidade Intelectual –


Administrador de Dados - 2011)

Considere que, sob o padrão do SQL2, tenham sido criadas as tabelas


Empregado, Dependente e Departamento por meio dos seguintes comandos:

00428113176

Prof. Victor Dalton


www.estrategiaconcursos.com.br 117 de 172

00428113176 - Rodrigo
Tecnologia da Informação para TCM/Goiás
Auditor de Controle Externo - Informática
Prof Victor Dalton Aula 05

00428113176

Considere, ainda, os seguintes comandos, todos também sob o padrão do


SQL2, relativos a consultas feitas nos dados das tabelas acima citadas.

Prof. Victor Dalton


www.estrategiaconcursos.com.br 118 de 172

00428113176 - Rodrigo
Tecnologia da Informação para TCM/Goiás
Auditor de Controle Externo - Informática
Prof Victor Dalton Aula 05
Com referência às informações acima, bem como a comandos e consultas
em SQL e álgebra relacional, julgue os itens seguintes.

10. A consulta 2 recupera o nome e sobrenome dos empregados


que tenham dependentes.

Errado! Essa consulta recupera o nome e o sobrenome dos empregados


que NÃO POSSUEM dependentes, uma vez que a lista de empregados com
dependentes foi extraída na subconsulta após “NOT EXISTS”.

11.Na consulta 1, foi utilizado qualificador para diferenciar os


campos de mesmo nome das consultas correlacionadas.

Correto. Nessa consulta a tabela Empregado recebeu o ALIAS (apelido) de


e. Esse qualificador foi útil para que o atributo e.SEXO, da tabela Empregado,
não fosse confundido com o atributo SEXO da tabela dependente (e.SEXO =
SEXO). A utilização de ALIAS em consultas SQL é muito comum.

12.A consulta 1 recupera o nome e sobrenome dos empregados que


possuam um dependente com o mesmo nome e o mesmo sexo do
empregado.

Correto.

(CESPE – TCE/RO – Auditor de Controle Externo – Ciências da


Computação - 2013) 13.A linguagem de manipulação de dados (DML)
abrange uma linguagem de consulta embasada tanto na álgebra
00428113176

relacional quanto no cálculo relacional de tuplas. Alguns comandos que


representam essa linguagem são SELECT, CREATE TABLE e CREATE
INDEX.

Errado! Lembre-se que:

DDL (Data Definition Language) – serve para a definição de estruturas


de dados, incluindo linhas, colunas, tabelas, índices e localizações de
arquivos.Ex: CREATE (cria tabelas), ALTER(modifica a tabela, como para incluir
um atributo) e DROP(elimina a tabela).

Prof. Victor Dalton


www.estrategiaconcursos.com.br 119 de 172

00428113176 - Rodrigo
Tecnologia da Informação para TCM/Goiás
Auditor de Controle Externo - Informática
Prof Victor Dalton Aula 05
DML (Data Manipulation Language) – voltada para a manipulação dos
dados, como o próprio nome diz. Ex: INSERT(inserir), SELECT(consultar),
UPDATE(atualizar, modificando alguns atributos), DELETE(autoexplicativo)....

(CESPE – MPE/PI – Técnico Ministerial – Informática - 2012) Acerca


de DML e DDL, julgue os itens subsecutivos.

14.A DDL externa é utilizada para especificar o nível externo de um


banco de dados, utilizando-se, para tanto, a sublinguagem de dados do
usuário.

Correto. Há autores que dizem que esse papel é desempenhado pela VDL,
mas, pelo visto, o CESPE reconhece a DDL externa para desempenhar esse
papel.

15.A DDL admite o processamento ou a manipulação de objetos dos


bancos de dados.

Errado! A DDL apenas define as estruturas de dados, ficando a


manipulação a cargo da DML.

16.A DML é a única linguagem que possui recursos para


especificação de restrições de segurança ou de integridade.

Errado! A DCL (Data Control Language) também é responsável por


00428113176

restrições de segurança, por meio dos comandos GRANT e REVOKE.

17.O esquema interno de um banco de dados, que identifica os tipos


de registros, índices, campos etc., é descrito por meio de uma DDL
conceitual.

Errado! A DDL conceitual define o esquema conceitual. O esquema interno


é definido pela DDL interna.

Prof. Victor Dalton


www.estrategiaconcursos.com.br 120 de 172

00428113176 - Rodrigo
Tecnologia da Informação para TCM/Goiás
Auditor de Controle Externo - Informática
Prof Victor Dalton Aula 05
(CESPE – TRT/10ª Região – Técnico Judiciário – Tecnologia da
Informação - 2013)

18.Suponha que exista determinada tabela alunos, com os campos


id_aluno, nome_aluno, telefone e idade. Nesse caso, o comando abaixo
é apropriado para listar todos os alunos que tenham idade superior a 34
anos e obter o resultado de forma ordenada por aluno.

select * from alunos where idade > 34 group by

nome_aluno having count(*) > 34

Errado! Essa consulta, na verdade, seleciona o universo de alunos cuja


idade é maior que 34 (where idade > 34), agrupa os resultados em função do
campo nome_aluno (group by nome_aluno) e vai mostrar apenas aqueles
nomes de alunos (HAVING é restrição de grupo) que aparecem mais de 34 vezes
(having count (*) > 34).
Portanto, o último predicado tornou a assertiva incorreta. Sem ele, a
sentença estaria correta.

19.O comando listado abaixo é apropriado para criação de uma


tabela com o nome disciplinas, que contenha os campos id_disciplina e
disciplina, com chave primária id_disciplina.

create table disciplinas (

id_disciplina INTEGER not null,

disciplina VARCHAR(40) not null,

primary key (id_disciplina)

);
00428113176

Correto. Ainda, perceba que os atributos id_disciplina e disciplina não


podem ser nulos.

20.O comando abaixo permite adicionar a tabela disciplinas a uma


chave estrangeira com o nome fk_curso, do campo id_curso que
pertence à tabela cursos.

alter table disciplinas

alter column fk_curso references cursos

(id_curso);

Prof. Victor Dalton


www.estrategiaconcursos.com.br 121 de 172

00428113176 - Rodrigo
Tecnologia da Informação para TCM/Goiás
Auditor de Controle Externo - Informática
Prof Victor Dalton Aula 05
Errado! O comando correto seria:

alter table disciplinas

foreign key (fk_curso) references cursos(id_curso);

(CESPE – MEC – Atividade Técnica de Complexidade Gerencial –


Administrador de Banco de Dados - 2011)

21.Quando uma transação é abortada, todas as mudanças que


ocorreram no banco de dados devem ser desfeitas. Essa operação pode
ser executada por meio do comando ROLLBACK da linguagem SQL.

Correto. O rollback desfaz transações abortadas, garantindo a atomicidade


e a consistência das transações.

22ª Questão) (FCC – DPE/SP – Agente de Defensoria Pública –


Analista de Sistemas - 2013) Considere as seguintes tabelas de um banco de
dados relacional, sendo que os atributos ID e Cod, na tabela Usa são chaves
estrangeiras, com origem, respectivamente, nas tabelas Dpto e Eqpto:

Depto (ID, Nome, Função)


Usa (ID, Cod)
Eqpto (Cod, Tipo, Valor)

Assinale a alternativa que apresenta a expressão SQL para obter o Nome


do Depto e o Tipo de Eqpto utilizados.

a) SELECT Nome, Tipo 00428113176

FROM Depto Eqpto

b) SELECT Nome, Tipo


FROM Usa
WHERE USA.ID and Usa.Cod

c) SELECT Nome, Tipo


FROM Depto, Usa, Eqpto

d) SELECT Nome, Tipo


FROM Depto, Usa, Eqpto
WHERE Dpto.ID = USA.ID and Eqpto.Cod = Usa.Cod

Prof. Victor Dalton


www.estrategiaconcursos.com.br 122 de 172

00428113176 - Rodrigo
Tecnologia da Informação para TCM/Goiás
Auditor de Controle Externo - Informática
Prof Victor Dalton Aula 05
e) SELECT Nome, Tipo
FROM Depto, Eqpto
WHERE Dpto.ID and Eqpto.Cod

Essa é uma consulta relativamente simples em SQL. Sem analisar as


alternativas, e com base nas informações do enunciado, vemos que a tabela Usa
é a tabela que faz o relacionamento entre as tabelas Depto e Eqpto.

Portanto, uma consulta que extraia o Nome e o Tipo de equipamentos


utilizados, precisará fazer uma união entre essas três tabelas, pelos campos
chave.

Nesse sentido, a única alternativa correta é a alternativa d). As demais


consultas estão ou incompletas, ou sem nexo.

Para responder às duas próximas questões, utilize a figura abaixo, parte de


um modelo Entidade-Relacionamento de um banco de dados.

00428113176

Prof. Victor Dalton


www.estrategiaconcursos.com.br 123 de 172

00428113176 - Rodrigo
Tecnologia da Informação para TCM/Goiás
Auditor de Controle Externo - Informática
Prof Victor Dalton Aula 05
23ª Questão) (FCC – DPE/SP – Agente de Defensoria Pública –
Programador - 2013) Analisando o modelo Entidade-Relacionamento é correto
afirmar:

a) Os atributos precoUnitario e quantidade devem ser movidos da entidade


PRODUTO para a entidade ITEMNOTAFISCAL como atributos simples, pois são
dependentes da chave primária composta dessa entidade e não apenas do
atributo idPRODUTO da entidade PRODUTO.

b) O atributo quantidade deve ser movido da entidade PRODUTO para a


entidade ITEMNOTAFISCAL como atributo simples, pois a quantidade é
dependente da chave primária composta dessa entidade e não apenas do
atributo idPRODUTO da entidade PRODUTO.

c) Considerando que o conteúdo do atributo idITEMNOTAFISCAL é


sequencial e não se repete na mesma nota fiscal, só podendo se repetir em
notas fiscais diferentes, o atributo idPRODUTO deve fazer parte da chave
primária composta da entidade ITEMNOTAFISCAL.

d) O grau do relacionamento entre as entidades PRODUTO e


ITEMNOTAFISCAL deve ser muitos para muitos e não um para muitos como
apresentado no modelo.

e) Considerando que o conteúdo do atributo idITEMNOTAFISCAL é


sequencial e não se repete na mesma nota fiscal, só podendo se repetir em
notas fiscais diferentes, a chave primária dessa entidade deve ser formada
apenas pelo atributo idITEMNOTAFISCAL.

Esse é o tipo de questão no qual eu espero que seu raciocínio já esteja


afiado.

O modelo acima mostra uma típica implementação de nota fiscal em um


00428113176

Banco de Dados. Antes mesmo de ler as alternativas, somenta analisando o


modelo, eu achei estranho o atributo quantidade fazer parte da entidade
PRODUTO. Afinal de contas, um mesmo produto pode ser adquirido em
quantidades diferentes em diferentes notas fiscais. Por isso, achei que seria mais
conveniente que esse atributo fizesse parte da tabela ITEMNOTAFISCAL.
Concorda? A quantidade adquirida de um produto depende tanto do produto
escolhido quanto da nota fiscal que ele fará parte.

E é exatamente o que a alternativa b) propõe! As demais propostas das


outras alternativas falham em coerência, apenas tentando induzir o candidato ao
erro.

Prof. Victor Dalton


www.estrategiaconcursos.com.br 124 de 172

00428113176 - Rodrigo
Tecnologia da Informação para TCM/Goiás
Auditor de Controle Externo - Informática
Prof Victor Dalton Aula 05
24ª Questão) (FCC – DPE/SP – Agente de Defensoria Pública –
Programador - 2013) Uma instrução SQL correta para criar a tabela
NOTAFISCAL apresentada no modelo é:

a) CREATE TABLE NOTAFISCAL (idNOTAFISCAL INTEGER NOT NULL,


dataEmissao DATE NULL, PRIMARY KEY(idNOTAFISCAL));

b) CREATE TABLE NOTAFISCAL (idNOTAFISCAL INTEGER NULL


AUTOINCREMENT, dataEmissao DATE NULL, PRIMARY KEY(idNOTAFISCAL));

c) CREATE SCHEMA NOTAFISCAL (idNOTAFISCAL INTEGER NOT NULL


AUTO_INCREMENT, dataEmissao DATE NOT NULL, PRIMARY
KEY(idNOTAFISCAL));

d) CREATE TABLE NOTAFISCAL (idNOTAFISCAL INTEGER NULL,


dataEmissao DATE NOT NULL, CONSTRAINT UNIQUE KEY(idNOTAFISCAL));

e) CREATE TABLE NOTAFISCAL (idNOTAFISCAL INTEGER NULL


CONSTRAINT PRIMARY KEY, dataEmissao DATE NULL);

Simples! Basta criar a tabela NOTAFISCAL, criar o atributo idNOTAFISCAL


como um inteiro que não pode ser nulo, criar um atributo dataEmissão no
formato DATE e definir a chave primária. Praticamente é o que nos “fala” a
alternativa a).

25ª Questão) (FCC – DPE/SP – Agente de Defensoria Pública –


Administrador de Banco de Dados - 2013) Analise os seguintes comandos
de definição e manipulação de dados SQL:

CREATE TABLE Livro (ID INTEGER, NOME VARCHAR(20), AUTOR


VARCHAR(30)); 00428113176

INSERT INTO Livro VALUES(1, “Memórias Póstumas de Brás Cubas”,


“Machado de Assis”);
INSERT INTO Livro VALUES(1, “Quincas Borba”, NULL);
UPDATE Livro SET AUTOR = “Machado de Assis” WHERE ID = 1;

Após a execução destes comandos,

a) apenas o primeiro livro será incluído na tabela, pois o segundo livro está
utilizando o mesmo código de identificação, o que é restringido (CONSTRAINT)
para campos do tipo ID.

Prof. Victor Dalton


www.estrategiaconcursos.com.br 125 de 172

00428113176 - Rodrigo
Tecnologia da Informação para TCM/Goiás
Auditor de Controle Externo - Informática
Prof Victor Dalton Aula 05
b) a coluna AUTOR do livro “Quincas Borba” será mantida com o valor
NULL, pois não foi informada a cláusula ALL para o comando UPDATE.

c) nenhuma alteração será efetuada no comando UPDATE, devido à falta da


cláusula TABLE antes do nome da tabela.

d) a coluna AUTOR conterá o texto “Machado de Assis” para ambos os


livros.

e) o comando de inserção do segundo livro irá falhar, pois colunas do tipo


VARCHAR não podem conter valores NULL sem que seja informada essa opção
na criação da tabela.

Novamente, convido você a raciocinar o que acontece, comando a


comando, sem se deixar levar pelas alternativas.

O primeiro comando cria a tabela. Perceba que não foi definida uma chave
primária!

LIVRO
id nome autor

O segundo comando inseriu um registro na tabela.

LIVRO
id nome autor
1 Memórias Póstumas de Brás Cubas Machado de Assis

O terceiro comando inseriu outro registro. Como não existe chava primária
00428113176

definida, não há problemas em inserir outro registro.

LIVRO
id nome autor
1 Memórias Póstumas de Brás Cubas Machado de Assis
1 Quincas Borba

Por fim, o último comando irá atualizar os autores cujo ID seja 1, ou seja,
AMBOS OS REGISTROS. Mas, como um registro já possui “Machado de Assis”

Prof. Victor Dalton


www.estrategiaconcursos.com.br 126 de 172

00428113176 - Rodrigo
Tecnologia da Informação para TCM/Goiás
Auditor de Controle Externo - Informática
Prof Victor Dalton Aula 05
como autor, ele terá o seu conteúdo sobrescrito, apesar de não ser notada a
diferença de conteúdo.

LIVRO
id nome autor
1 Memórias Póstumas de Brás Cubas Machado de Assis
1 Quincas Borba Machado de Assis

Portanto, nossa alternativa correta é a letra d). As demais, pra variar,


estão aí só para te confundir.

26ª Questão) (FCC – DPE/SP – Agente de Defensoria Pública –


Administrador de Banco de Dados - 2013) A cláusula LEFT JOIN em SQL
retorna todas as

a) colunas e apenas as linhas da tabela da esquerda que possuírem um


valor em comum na tabela da direita.

b) linhas e colunas da tabela da esquerda, desde que haja correspondência


na tabela da direita.

c) linhas da tabela da esquerda, desde que haja uma correspondência na


tabela da direita, porém só retorna as colunas que possuam valores em comum.

d) linhas da tabela da esquerda, mesmo que não haja uma correspondência


na tabela da direita, porém só retorna as colunas que possuam valores em
comum.

e) linhas e colunas da tabela da esquerda, mesmo que não haja


correspondência na tabela da direita.
00428113176

O comando JOIN, quando acompanhado de LEFT ou RIGHT, “força” que


todas as linhas e colunas da tabela da esquerda sejam listadas, mesmo que não
haja correspondência na tabela do outro lado. Nesse caso, os campos da tabela
sem correspondência aparecem como NULL.

Alternativa e).

27ª Questão) (FCC – DPE/SP – Agente de Defensoria Pública –


Administrador de Banco de Dados - 2013) São CONSTRAINTS SQL, EXCETO

Prof. Victor Dalton


www.estrategiaconcursos.com.br 127 de 172

00428113176 - Rodrigo
Tecnologia da Informação para TCM/Goiás
Auditor de Controle Externo - Informática
Prof Victor Dalton Aula 05
a) FOREIGN KEY.
b) NOT NULL.
c) UNIQUE.
d) PRIMARY KEY.
e) UNION.

O UNION combina o resultado de duas consultas, não se caracterizando


uma restrição (constraint).

Alternativa e).

Para responder às duas próximas questões, utilize os comandos SQL


abaixo.

CREATE TABLE times (id INTEGER, nome VARCHAR(20),cidade


VARCHAR(20));
CREATE TABLE jogos (local VARCHAR(20), data VARCHAR(8), time1
INTEGER, time2 INTEGER, placar1 INTEGER, placar2 INTEGER);
INSERT INTO times VALUES(1, "santos fc", "santos");
INSERT INTO times VALUES(2, "palmeiras", "sao paulo");
INSERT INTO times VALUES(3, "guarani", "campinas");
INSERT INTO jogos VALUES("campinas", "20100504", 3, 1, 0, 2);
INSERT INTO jogos VALUES("santos", "20101220", 1, 2, 1, 1);
INSERT INTO jogos VALUES("campinas", "20110210",3,2,0,0);

28ª Questão) (FCC – DPE/SP – Agente de Defensoria Pública –


Administrador de Banco de Dados - 2013) Analise a impressão do resultado
de uma query SQL efetuada após a execução dos comandos descritos (note que
no exemplo as colunas estão separadas pelo símbolo | barra vertical).
00428113176

campinas | guarani | 0 | 2 | santos fc


santos | santos fc | 1 | 1 | palmeiras
campinas | guarani | 0 | 0 | palmeiras

A query SQL capaz de produzir este resultado é

a) SELECT local,(SELECT nome FROM times WHERE id =


a.time1),placar1,placar2,(SELECT nome FROM times WHERE id = a.time2) FROM
jogos a;

b) SELECT * FROM jogos a, times b WHERE a.local, b.nome CASE b.id =


a.time1, a.placar1, a.placar2, b.nome CASE b.id = a.time2;

Prof. Victor Dalton


www.estrategiaconcursos.com.br 128 de 172

00428113176 - Rodrigo
Tecnologia da Informação para TCM/Goiás
Auditor de Controle Externo - Informática
Prof Victor Dalton Aula 05

c) SELECT local, nome, placar1, placar2, nome FROM jogos INNER JOIN
times;

d) SELECT a.local, b.nome, a.placar1, a.placar2, c.nome FROM jogos a,


(SELECT nome FROM times WHERE id = a.time1) b, (SELECT nome FROM times
WHERE id = a.time2) c;

e) SELECT local, CASE a.time1 = b.id THEN nome, placar1, placar2, CASE
a.time2 = b.id THEN nome FROM jogos a, times b;

Como sempre, vou te convidar a escrever as tabelas que o comando SQL


cria:

TIMES
id nome cidade
1 santosfc santos
2 palmeiras sao paulo
3 guarani campinas

JOGOS
local data time1 time2 placar1 placar2
campinas 20100504 3 1 0 2
santos 20101220 1 2 1 1
campinas 20110210 3 2 0 0

Logo, ficou fácil perceber que time1 e time2 vão encontrar correspondência
00428113176

nos id da tabela TIMES, enquanto o atributo local possui influência direta no


time1 (que é o mandante). Enxergou o mesmo que eu?

Agora, ao ler o que a consulta mostrou como resultado, notei que os


registros estão na mesma sequência da tabela JOGOS, porém, mostrando
apenas os atributos local, “nomedotime1”, placar1, placar2, “nomedotime2”. Os
atributos entre aspas, precisam vir do JOIN da tabela JOGOS com a tabela
TIMES. Logo, eu só preciso encontrar, nas alternativas, a consulta que me
constrói esse resultado. Para nossa sorte, a alternativa a) já faz isso!

Prof. Victor Dalton


www.estrategiaconcursos.com.br 129 de 172

00428113176 - Rodrigo
Tecnologia da Informação para TCM/Goiás
Auditor de Controle Externo - Informática
Prof Victor Dalton Aula 05
29ª Questão) (FCC – DPE/SP – Agente de Defensoria Pública –
Administrador de Banco de Dados - 2013) Para a impressão do seguinte
resultado:

Vitória Time 2
Empate
Empate

a query que poderá ser utilizada é

a) SELECT (SELECT "Vitória time 1" WHERE placar1 > placar2, SELECT
"Vitória time 2" WHERE placar2 > placar1, SELECT "Empate" WHERE placar1 =
placar2) FROM jogos;

b) SELECT v FROM jogos COALESCE("Vitória time 1", "Vitória Time 2",


"Empate") as V IN(placar1 > placar2,placar2 > placar1,placar1 = placar2);

c) SELECT "Vitória time 1" WHERE placar1 > placar2, "Vitória Time 2"
WHERE placar2 > placar1, "Empate" WHERE placar1 = placar2 FROM jogos;

d) SELECT nome FROM jogos WHERE nome IN (CASE WHEN placar1 >
placar2 THEN "Vitória time 1" WHEN placar2 > placar1 THEN "Vitória time 2"
ELSE "Empate" END);

e) SELECT CASE WHEN placar1 > placar2 THEN "Vitória time 1" WHEN
placar2 > placar1 THEN "Vitória Time 2" ELSE "Empate" END AS T1 FROM jogos;

Opa! Aqui temos uma query mais elaborada! Ela deverá analisar, registro a
registro, o placar dos jogos, e imprimir uma sentença de acordo com o
resultado. A utilização de CASE me parece a mais conveniente, e só temos uma
alternativa com esta cláusula, letra e), que realmente não é comum em SQL.
Se você não conhecia, fica de aprendizado.
00428113176

30ª Questão) (FCC – TRT/1ª Região – Analista Judiciário –


Tecnologia da Informação – 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 é

Prof. Victor Dalton


www.estrategiaconcursos.com.br 130 de 172

00428113176 - Rodrigo
Tecnologia da Informação para TCM/Goiás
Auditor de Controle Externo - Informática
Prof Victor Dalton Aula 05

(A) cabo, cabide, calça.


(B) ábaco, ácido, apito.
(C) faca, laca, isca.
(D) caneta, caixa, cabana.
(E) rocha, tocha, mecha.

Esta questão, basicamente, quer saber se você sabe para que serve o
operador LIKE, utilizando o caractere especial “%”.

O LIKE serve para buscar padrões, sendo muito utilizado na busca entre
caracteres. O “%” é o operador “coringa”, ou seja, quando colocado aceita
qualquer caractere ou grupo de caracteres em seu lugar.

Portanto, c%a retornará qualquer palavra que comece com c e termine com
a, apenas.

Resposta certa, alternativa d).

31ª Questão) (FCC – TCE/RS – Auditor Público Externo – Técnico em


Procesamento de Dados – 2014) Sejam as seguintes tabelas de um banco de
dados relacional:

Processo (IDProcesso, Tipo, Data)


Interessado (IDInteressado, NomeInteressado, Endereço)
Contem (IDProcesso, IDInteressado)

Considere que IDProcesso e IDInteressado são chaves estrangeiras na


tabela Contem, com origem nas chaves primárias das tabelas Processo e
00428113176

Interessado, respectivamente. Um técnico em Processamento de Dados do TCE-


RS, ficou com a tarefa de escrever uma consulta SQL para obter o tipo do
processo e seus interessados, com a condição de que o tipo de processo seja de
‘gestão’. O comando correto que expressa o tipo dos processos e o nome dos
interessados é

(A) SELECT P.Tipo, I.NomeInteressado


FROM Processo P, Interessado I
WHERE DISTINCT (IDProcesso, IDInteressado) AND P.Tipo = ‘gestão;

(B) SELECT P.Tipo, I.NomeInteressado


FROM Processo P, Interessado I

Prof. Victor Dalton


www.estrategiaconcursos.com.br 131 de 172

00428113176 - Rodrigo
Tecnologia da Informação para TCM/Goiás
Auditor de Controle Externo - Informática
Prof Victor Dalton Aula 05
WHERE P.Tipo = ‘gestão;

(C) SELECT P.Tipo, I.NomeInteressado


FROM Processo P, Interessado I, Contem C
WHERE P.IDProcesso = C.IDProcesso AND I.IDInteressado =
C.IDInteressado AND P.Tipo = ‘gestão’; - certa

(D) SELECT P.Tipo, I.NomeInteressado


FROM Processo P, Interessado I, Contem C
WHERE ID-Processo(P,C) AND IDInteressado(I,C) AND P.Tipo = ‘gestão;

(E) SELECT P.Tipo, I.NomeInteressado


FROM Processo P, Interessado I, Contem C
WHERE ALL IDProcesso AND ALL IDInteressado AND P.Tipo = ‘gestão;

Esta questão apresenta uma consulta relativamente simples.

Ao exigir que o tipo de processo e seus interessados sejan exibidos como


resposta, sabemos que os campos selecionados serão Tipo e
NomeInteressado, oriundos das tabelas Processo e Interessado,
respectivamente.

A tabela responsável pelo “JOIN” é Contem. Portanto, faz parte do WHERE


P.IDProcesso = C.IDProcesso AND I.IDInteressado = C.IDInteressado.

Por fim, exige-se que o tipo de processo seja ‘gestão’ (entre aspas simples,
como exige o SQL, pois trata-se de caractere. Se fosse numérico não seriam
necessárias as aspas). Portanto, também é restrição P.Tipo = ‘gestão’.

De qualquer forma, a única alternativa que mostra esse filtro corretamente


é a alternativa c). Prestar atenção nisso faria você ganhar minutos preciosos
na prova. Todas as demais alternativas apresentam ‘gestão , o que está errado.
00428113176

Prof. Victor Dalton


www.estrategiaconcursos.com.br 132 de 172

00428113176 - Rodrigo
Tecnologia da Informação para TCM/Goiás
Auditor de Controle Externo - Informática
Prof Victor Dalton Aula 05
CONSIDERAÇÕES FINAIS

E conseguimos encerrar a aula! Alguém desmaiou? Todo mundo aí?

Eu, particularmente, gosto muito de BD. Por isso, procurei escrever muita
coisa pra vocês nos mínimos detalhes, tentando aliviar a dificuldade que eu
imagino que vocês terão com esse assunto. Sei que vocês não estão aqui para
se formarem em Bancos de Dados, e sim para acertar questões sobre o assunto
na prova.

Meu foco é a aprovação de vocês, e nada mais. Quero facilitar ao máximo


a digestão desse conteúdo.

Faça um esforço, vale a pena esse sacrifício. Se tudo der certo, será a
última vez que você estuda esses assuntos. 

Bons estudos!

Victor Dalton

00428113176

Prof. Victor Dalton


www.estrategiaconcursos.com.br 133 de 172

00428113176 - Rodrigo
Tecnologia da Informação para TCM/Goiás
Auditor de Controle Externo - Informática
Prof Victor Dalton Aula 05
LISTA DE EXERCÍCIOS

1ª Questão) (ESAF – Superintendência de Seguros Privados –


Tecnologia da Informação - 2010) Um banco de dados é um
a) conjunto de objetos da realidade sobre os quais se deseja manter
informações.
b) conjunto de operações sobre dados integrados destinados a modelar
processos.
c) software que incorpora as funções de definição, recuperação e alteração
de dados.
d) software que modela funções de definição, recuperação e alteração de
dados e programas.
e) conjunto de dados integrados destinados a atender às necessidades de
uma comunidade de usuários.

2ª Questão) (ESAF – Analista de Finanças e controle – Fiscalização


Geral - 2012) O projeto geral do banco de dados é
a) o esquema do banco de dados.
b) o planejamento estratégico do fluxo de dados.
c) o esquema de dimensionamento físico-financeiro do banco de dados.
d) a versão inicial de instanciação dos dados a serem carregados no
sistema.
e) o esquema de atualização dos dados para manutenção de consistência.

3ª Questão) (FCC – TCE/SP - Agente da Fiscalização Financeira -


Produção e Banco de Dados – 2010) No catálogo são mantidos
a) esquemas internos, conceituais e externos, mapeamentos e metadados.
b) apenas os esquemas internos e os metadados.
c) apenas o esquema conceitual e os metadados.
d) apenas os esquemas internos, externos e os metadados.
00428113176

e) apenas o mapeamento conceitual.

4ª Questão) (FCC – TCE/AM – Analista Técnico de Controle Externo –


Tecnologia da Informação - 2012) O modelo conceitual de dados

a) é aquele em que os objetos, suas características e relacionamentos têm


a representação de acordo com as regras de implementação e limitantes
impostos por algum tipo de tecnologia.
b) é aquele em que os objetos, suas características e relacionamentos têm
a representação fiel ao ambiente observado, independente de limitações
quaisquer impostas por tecnologias, técnicas de implementação ou dispositivos
físicos.
Prof. Victor Dalton
www.estrategiaconcursos.com.br 134 de 172

00428113176 - Rodrigo
Tecnologia da Informação para TCM/Goiás
Auditor de Controle Externo - Informática
Prof Victor Dalton Aula 05
c) é aquele elaborado respeitando-se e implementando-se conceitos tais
como chaves de acesso, controle de chaves duplicadas, itens de repetição
(arrays), normalização, ponteiros e integridade referencial, entre outros.
d) é a fase da modelagem na qual é necessário considerar todas as
particularidades de implementação, principalmente o modelo que será utilizado
para a implementação futura.
e) está sempre associado às fases de projeto, contrastando com o modelo
lógico, que sempre está associado à fase de análise, quando utilizado com as
metodologias de desenvolvimento de sistemas e implementado por ferramentas
CASE.

5ª Questão) (FCC – ALESP - Agente Técnico Legislativo–


Administração de Banco de Dados – 2010) Um modelo de banco de dados é
uma descrição do tipo de informação que está ou será armazenada em um
banco de dados. O mesmo modelo de banco de dados pode ser descrito em
diversos níveis de abstração. Geralmente, utilizam-se os níveis
a) conceitual e prático.
b) escrito e lógico.
c) representativo e prático.
d) conceitual e lógico.
e) escrito e prático.

6ª Questão) (FCC – MPE/AM – Agente de Apoio – Programador -


2013) Um sistema de banco de dados deve apresentar um projeto que visa a
organização das informações e utilização de técnicas para que o futuro sistema
obtenha boa performance e também facilite as manutenções que venham a
acontecer.
O projeto de banco de dados se dá em, pelo menos, duas fases:
Modelagem conceitual e

a) Projeto lógico. 00428113176

b) Teste de integração.
c) Instalação.
d) Definição da ferramenta que será adotada.
e) Teste de carga.

7ª Questão) (ESAF – CVM – Analista - Sistemas – 2010) Assinale a


opção correta.
a) Um banco de dados relacional é composto de roteamentos.
b) O projeto de um banco de dados é realizado segundo as fases
Modelagem Procedural, Projeto Lógico, Projeto Operacional.

Prof. Victor Dalton


www.estrategiaconcursos.com.br 135 de 172

00428113176 - Rodrigo
Tecnologia da Informação para TCM/Goiás
Auditor de Controle Externo - Informática
Prof Victor Dalton Aula 05
c) O projeto de um banco de dados é realizado segundo as fases
Modelagem Conceitual, Projeto Lógico, Projeto Físico.
d) O projeto de um banco de dados é realizado por meio das fases
Modelagem Lógica e Modelagem Física.
e) Um banco de dados relacional é composto de configurações.

8ª Questão) (ESAF – Analista de Finanças e Controle –


Desenvolvimento de Sistemas de Informação – 2008) Administrar um
banco de dados constitui-se basicamente em instalar, configurar, monitorar e
solucionar problemas em um SGBD (Sistema Gerenciador de Banco de Dados).
Assim, constituem-se responsabilidades de um Administrador de Banco de
Dados (DBA), exceto:
a) planejar o projeto físico do banco de dados.
b) realizar, testar e manter cópias de segurança dos dados periodicamente.
c) monitorar o desempenho do servidor de banco de dados e tomar as
providências necessárias para atender as demandas dos usuários e sistemas.
d) definir regras para a nomenclatura utilizada nas tabelas e nos esquemas
do banco de dados.
e) definir e verificar periodicamente a segurança e integridade do servidor
de banco de dados.

9ª Questão) (FCC – INFRAERO – Analista de Sistema – Banco de


Dados e Administrador de Dados - 2011) Quando uma transação A acessa o
banco de dados, o SGBD automaticamente bloqueia cada parte do banco que
essa transação altera ou requisita. Ao efetuar uma transação B em paralelo, o
SGBD também bloqueia partes do banco de dados que essa transação acessa.
Tais procedimentos se referem à característica de um SGBD denominada
controle de

a) integridade.
b) concorrência. 00428113176

c) restrição.
d) desempenho.
e) restauração.

10ª Questão) (FCC – ALESP – Agente Técnico Legislativo –


Administração de Banco de Dados – 2010) NÃO é uma vantagem do SGBD:
a) controle de redundância.
b) compartilhamento de dados.
c) restrição a acesso não autorizado.
d) tolerância a falhas.
e) custo.

Prof. Victor Dalton


www.estrategiaconcursos.com.br 136 de 172

00428113176 - Rodrigo
Tecnologia da Informação para TCM/Goiás
Auditor de Controle Externo - Informática
Prof Victor Dalton Aula 05
11ª Questão) (FCC – TST – Analista Judiciário – Análise de Sistemas
– 2012) Um Sistema de Gerenciamento de Bancos de Dados (SGBD)
a) é um ambiente de suporte ao desenvolvimento de projetos de banco de
dados relacionais, que gera um modelo de banco de dados para ser
implementado em um servidor.
b) prepara aplicações para que possam acessar um ou mais bancos de
dados. Na linguagem de programação Java, por exemplo, o JDBC (Java Data
Base Connectivity) é um SGBD capaz de acessar dados de diferentes bancos.
c) oferece um conjunto de ferramentas que possibilitam o gerenciamento
de diferentes arquivos do tipo texto ou do tipo binário, armazenados em bancos
de dados, limitados aos formatos UNICODE ou ASCII.
d) consiste em uma tecnologia de servidores que opera sobre o protocolo
HTTP para a troca de dados e informações através de arquivos que transportam
mensagens no formato HTML.
e) faz a gerência de uma ou mais bases de dados, permitindo o
armazenamento e consulta de dados e informações pelos usuários finais e
programas de aplicação.

12ª Questão) (FCC – TCE/SP - Agente da Fiscalização Financeira -


Produção e Banco de Dados – 2010) As três visões da arquitetura básica de
um SGBD, pela ordem, desde a mais próxima do usuário até a mais distante,
são:
a) externa, conceitual e interna.
b) externa, interna e conceitual.
c) conceitual, interna e externa.
d) conceitual, externa e interna.
e) interna, conceitual e externa.

13ª Questão) (FCC – SEFAZ/SP - Agente Fiscal de Rendas –


Tecnologia da Informação – 2009) Considere:
00428113176

I. O que se ocupa do modo como os dados são fisicamente armazenados.


II. O que se ocupa do modo como os dados são vistos por usuários
individuais.
III. Nível lógico de comunidade ou apenas lógico (mais abstrato que o físico
e diferente da visão do usuário individual).

Em um projeto arquitetural, os itens I, II e III são classificados,


respectivamente, como níveis
a) externo, conceitual e interno.
b) externo, interno e conceitual.
c) interno, externo e conceitual.
d) interno, conceitual e externo.

Prof. Victor Dalton


www.estrategiaconcursos.com.br 137 de 172

00428113176 - Rodrigo
Tecnologia da Informação para TCM/Goiás
Auditor de Controle Externo - Informática
Prof Victor Dalton Aula 05
e) conceitual, externo e interno.

14ª Questão) (FCC – MPE/AM – Agente de Apoio – Programador -


2013) O sistema de banco de dados deve garantir uma visão totalmente
abstrata do banco de dados para o usuário, ou seja, para o usuário do banco de
dados pouco importa qual a unidade de armazenamento está sendo usada para
guardar seus dados, contanto que os mesmos estejam disponíveis no momento
necessário.

Esta abstração se dá em três níveis:

I. Nível de visão do usuário: as partes do banco de dados que o usuário


tem acesso de acordo com a necessidade individual de cada usuário ou grupo de
usuários.
II. Nível conceitual.
III. Nível físico: é o nível mais baixo de abstração, em que define
efetivamente de que maneira os dados estão armazenados.

O Nível conceitual:

a) garante a integridade dos dados por aplicação de criptografia e o


controle de blocos de acesso.
b) especifica a maneira como os dados devem ser transferidos para a
memória.
c) determina o tipo de segurança que será utilizado no acesso aos dados.
d) apresenta o conceito de acesso (simétrico ou assimétrico) e as chaves
que serão utilizadas.
e) define quais os dados que estão armazenados e qual o relacionamento
entre eles.

15ª Questão) (FCC – MPE/SE – Analista – Gestão e Análise de Projeto


00428113176

de Sistema - 2013) Em projetos de Banco de Dados, o objetivo da arquitetura


de três-esquemas é separar o usuário da aplicação do banco de dados físico.
Nessa arquitetura, os esquemas podem ser definidos por três níveis:

I. O nível interno tem um esquema que descreve a estrutura de


armazenamento físico do banco de dados. Esse esquema utiliza um modelo de
dado físico e descreve os detalhes complexos do armazenamento de dados e
caminhos de acesso ao banco;
II. O nível conceitual possui um esquema que descreve a estrutura de todo
o banco de dados para a comunidade de usuários. O esquema conceitual oculta
os detalhes das estruturas de armazenamento físico e se concentra na descrição
de entidades, tipos de dados, conexões, operações de usuários e restrições.

Prof. Victor Dalton


www.estrategiaconcursos.com.br 138 de 172

00428113176 - Rodrigo
Tecnologia da Informação para TCM/Goiás
Auditor de Controle Externo - Informática
Prof Victor Dalton Aula 05
Geralmente, um modelo de dados representacional é usado para descrever o
esquema conceitual quando o sistema de banco de dados for implementado.
Esse esquema de implementação conceitual é normalmente baseado em um
projeto de esquema conceitual em um modelo de dados de alto nível;
III. O nível interno ainda abrange os esquemas externos ou visões de
usuários. Cada esquema interno descreve a parte do banco de dados que um
dado grupo de usuários tem interesse e oculta o restante do banco de dados
desse grupo. Como no item anterior, cada esquema é tipicamente implementado
usando-se um modelo de dados representacional, possivelmente baseado em
um projeto de esquema externo em um modelo de dados de alto nível.

Está correto o que se afirma em

a) II, apenas.
b) II e III, apenas.
c) I, II e III.
d) I e II, apenas.
e) III, apenas.

16ª Questão) (FCC – SEFAZ/SP - Agente Fiscal de Rendas –


Tecnologia da Informação – 2009) A independência de dados física e a
independência de dados lógica são possibilitadas de forma ideal,
respectivamente, por um
a) ou mais mapeamentos conceituais/internos e por um ou mais
mapeamentos internos/externos.
b) mapeamento conceitual/interno e por um ou mais mapeamentos
externos/conceituais.
c) mapeamento interno/externo e por um mapeamento conceitual/interno.
d) ou mais mapeamentos internos/externos e por um mapeamento
conceitual/interno.
e) mapeamento conceitual/externo e por um mais mapeamentos
conceituais/internos. 00428113176

17ª Questão) (Cesgranrio – Petrobrás – Analista de Sistemas Júnior


– Engenharia de Software – 2010) A independência de dados lógica,
definição componente da arquitetura de três esquemas para sistemas de banco
de dados, corresponde à capacidade de se efetuarem
a) mudanças no nível conceitual, sem a necessidade de modificações no
nível externo e em programas aplicativos.
b) mudanças no nível interno, sem a necessidade de modificações nos
níveis conceitual e externo.
c) mudanças no nível externo, sem a necessidade de modificações nos
níveis interno e conceitual.

Prof. Victor Dalton


www.estrategiaconcursos.com.br 139 de 172

00428113176 - Rodrigo
Tecnologia da Informação para TCM/Goiás
Auditor de Controle Externo - Informática
Prof Victor Dalton Aula 05
d) consultas em SQL sobre um banco de dados relacional, independente da
estruturação física dos dados armazenados.
e) consultas em SQL sobre um banco de dados relacional, independente da
lógica de programação usada em programas aplicativos.

18ª Questão) (FCC – MPE/SE – Analista – Gestão e Análise de Projeto


de Sistema - 2013) A capacidade de alterar o esquema conceitual sem mudar
o esquema externo ou os programas, podendo modificar o esquema conceitual
para expandir o banco de dados (adicionando um tipo de registro ou item de
dados), variar as restrições ou reduzir o banco de dados (removendo um tipo de
registro ou item de dados) é chamada de

a) modularidade.
b) modelo conceitual.
c) independência lógica de dados.
d) polimorfismo.
e) agregação.

19ª Questão) (FCC – TRE/SP – Analista Judiciário – Análise de


Sistemas - 2012) É o modelo de dados que eliminou o conceito de hierarquia,
permitindo que um mesmo registro estivesse envolvido em várias associações.
Os registros, organizados em grafos, permitem o tipo de associação que define
uma relação 1:N entre os tipos de registros proprietário e membro. Assim, para
dois relacionamentos 1:N entre os registros A e D e entre os registros C e D é
possível construir um relacionamento M:N entre A e D. Trata-se do modelo

a) em rede.
b) relacional.
c) hierárquico.
d) orientado a objetos.
e) distribuído. 00428113176

20ª Questão) (ESAF – MPOG – Analista de Planejamento e


Orçamento – Tecnologia da Informação – 2009) No modelo entidade-
relacionamento, a cardinalidade de mapeamento expressa
a) o número de entidades ao qual um relacionamento pode estar associado
a um outro relacionamento.
b) o número de relacionamentos ao qual outro relacionamento pode estar
associado via uma entidade.
c) o critério de classificação segundo o qual os relacionamentos associam
entidades.

Prof. Victor Dalton


www.estrategiaconcursos.com.br 140 de 172

00428113176 - Rodrigo
Tecnologia da Informação para TCM/Goiás
Auditor de Controle Externo - Informática
Prof Victor Dalton Aula 05
d) o número de entidades ao qual outra entidade pode estar associada via
um relacionamento.
e) o posicionamento de uma entidade dentro do mapeamento do modelo.

21ª Questão) (UEL – Sercomtel – Informática III – 2005) Para um


conjunto de relacionamentos binários a cardinalidade NÃO pode ser:
a)Um para um (1:1): uma entidade E1 pode estar associada no máximo a
uma entidade E2 através de R; e uma entidade de E2 pode estar associada a no
máximo uma entidade E1, através de R.
b)Um para muitos (1:N): uma entidade E1 pode estar associada a várias
entidades E2; e uma entidade de E2 pode estar associada a no máximo uma
entidade E1.
c)Muitos para um (N:1): uma entidade E1 pode estar associada no máximo
a uma entidade E2; e uma entidade de E2 pode estar associada a várias
entidades de E1.
d)Muitos para muitos (N:N): uma entidade E1 pode estar associada a
várias entidade E2; e uma entidade de E2 pode estar associada a várias
entidades de E1.
e)Um para muitos (1:N): uma entidade E1 pode estar associada a várias
entidade E2 ou nenhuma; e uma entidade de E2 pode estar associada a
nenhuma ou muitas entidades de E1.
Conhecida a cardinalidade, você já resolve a questão. As quatro primeiras
alternativas exemplificam bem as várias cardinalidades.

22ª Questão) (FCC – Prefeitura de SP – Auditor Fiscal Tributário


Municipal I – Tecnologia da Informação - 2012) Considere o seguinte
diagrama ER parcial de um banco de dados.

00428113176

De acordo com a cardinalidade das associações, um

Prof. Victor Dalton


www.estrategiaconcursos.com.br 141 de 172

00428113176 - Rodrigo
Tecnologia da Informação para TCM/Goiás
Auditor de Controle Externo - Informática
Prof Victor Dalton Aula 05
a) projeto emprega pelo menos um empregado e é controlado por
exatamente um departamento.
b) empregado trabalha em pelo menos um projeto e gerencia exatamente
um departamento.
c) empregado trabalha em zero ou mais projetos e gerencia exatamente
um departamento.
d) departamento é gerenciado por exatamente um empregado e controla
pelo menos um projeto.
e) departamento é gerenciado por exatamente um empregado e controla
zero ou mais projetos.

23ª Questão) (FCC – MPE/MA – Analista Ministerial – Banco de


Dados - 2013) Quando do projeto de um banco de dados relacional, pode
haver a indicação de que um conjunto de entidades tem participação total em
um conjunto de relacionamentos, isto significa que
a) cada entidade do conjunto de entidades participa em todos os
relacionamentos do conjunto de relacionamentos.
b) há, no mínimo, metade das entidades do conjunto de entidades que
participam em pelo menos um relacionamento do conjunto de relacionamentos.
c) as entidades do conjunto de entidades não possuem atributos do tipo
booleano ou do tipo data.
d) cada entidade do conjunto de entidades participa em pelo menos um
relacionamento do conjunto de relacionamentos.
e) todos os atributos do conjunto de entidades são indexados com a técnica
de árvores binárias.

24ª Questão) (FCC – MPE/MA – Analista Ministerial – Banco de


Dados - 2013) Considere o seguinte diagrama Entidade-Relacionamento,
resultante da modelagem de um banco de dados relacional:

00428113176

A partir desse diagrama, pode-se afirmar que

a) uma loja não possui todos os produtos.


b) uma loja possui um número par de departamentos.
c) cada departamento pode possuir vários produtos.
d) um mesmo produto não pode estar em mais de uma loja.
e) o número de lojas é impar.

Prof. Victor Dalton


www.estrategiaconcursos.com.br 142 de 172

00428113176 - Rodrigo
Tecnologia da Informação para TCM/Goiás
Auditor de Controle Externo - Informática
Prof Victor Dalton Aula 05
25ª Questão) (FCC – MPE/MA – Analista Ministerial – Banco de
Dados - 2013) A técnica de diagramação no modelo de Entidade-
Relacionamento é bem simples. Utiliza basicamente um losango para
representar ...I... e um retângulo para representar ...II... .

As lacunas I e II são preenchidas, correta e respectivamente, por

a) relacionamentos – entidades
b) atributos − relacionamentos
c) entidades − relacionamentos
d) entidades − atributos
e) atributos − entidades

26ª Questão) (FCC – TRT/6ª Região – Analista Judiciário –


Tecnologia da Informação - 2012) Um banco de dados relacional é um banco
de dados projetado segundo o chamado modelo relacional, que é um modelo de
banco de dados baseado na lógica de predicados de primeira ordem. O objetivo
do modelo é o de proporcionar uma linguagem declarativa para a descrição
tanto dos dados como de consultas a seu respeito, de maneira que o usuário
declara tanto a informação contida no banco de dados como a informação que
dele deseja extrair, deixando a cargo do sistema gerenciador do banco de dados
a tarefa de estabelecer estruturas de armazenamento de dados bem como os
procedimentos de recuperação destes dados para responder consultas. O modelo
relacional foi proposto formalmente há mais de 40 anos.

O texto acima está

a) incorreto, porque o modelo relacional é baseado na lógica de predicados


de segunda ordem.
b) correto.
c) incorreto, porque o modelo relacional não conduz naturalmente a uma
linguagem declarativa de descrição de dados ou consultas.
00428113176

d) incorreto, porque nos bancos de dados relacionais, a tarefa de descrever


os procedimentos de recuperação dos dados para a resposta a consultas é tarefa
do usuário.
e) incorreto, porque o modelo relacional foi proposto há menos de 30 anos.

27ª Questão) (ESAF – SUSEP – Analista Técnico – Tecnologia da


Informação - 2010) Em Sistemas Gerenciadores de Bancos de Dados (SGBD),
existem as seguintes categorias de restrições de integridade:
a) Integridade de domínio, Integridade de vazio, Integridade de chave,
Integridade referencial.

Prof. Victor Dalton


www.estrategiaconcursos.com.br 143 de 172

00428113176 - Rodrigo
Tecnologia da Informação para TCM/Goiás
Auditor de Controle Externo - Informática
Prof Victor Dalton Aula 05
b) Integridade de acesso, Integridade de entrada, Integridade de saída,
Integridade referencial.
c) Integridade de domínio, Integridade de completude, Integridade de
chave, Integridade posicional.
d) Integridade de cardinalidade, Integridade de vazio, Integridade de
autorização de acesso, Integridade associativa.
e) Integridade de generalização/especialização, Integridade de usuários,
Integridade de chave, Integridade referencial.

28ª Questão) (FCC – MPE/MA – Analista Ministerial – Banco de


Dados - 2013) No projeto de bancos de dados relacionais é usual a tarefa de
permitir ou restringir a presença de valores nulos para determinados atributos.
O significado de um valor nulo é
a) o valor zero.
b) um valor especial designado pelo código ASCII da tecla #.
c) o valor correspondente à tecla F12.
d) a ausência de valor.
e) um valor fora do domínio do atributo.

29ª Questão) (FCC – ALESP – Agente Técnico Legislativo –


Administração de Banco de Dados – 2010) NÃO é uma restrição de
integridade básica:
a) de vazio.
b) de domínio.
c) de entidade.
d) de chave.
e) referencial.

30ª Questão) (FCC – TRT/1ª Região – Analista Judiciário –


Tecnologia da Informação – 2014) No modelo entidade-relacionamento
00428113176

utilizado para modelar Bancos de Dados relacionais, quando se indica que há um


conjunto de relacionamentos do tipo muitos para muitos entre 2 conjuntos de
entidades A e B, significa que

(A) uma entidade do conjunto A está sempre associada a mais de uma


entidade de conjunto B e vice-versa.
(B) uma entidade do conjunto A pode estar associada a várias entidades do
conjunto B e vice-versa.
(C) os conjuntos de entidades A e B possuem, cada um deles, número igual
de atributos.
(D) os conjuntos de entidades A e B possuem diversos atributos com a
possibilidade de terem valores nulos.

Prof. Victor Dalton


www.estrategiaconcursos.com.br 144 de 172

00428113176 - Rodrigo
Tecnologia da Informação para TCM/Goiás
Auditor de Controle Externo - Informática
Prof Victor Dalton Aula 05
(E) uma entidade do conjunto B está associada a apenas uma entidade do
conjunto A, mas uma entidade do conjunto A está associada a várias entidades
do conjunto B.

31ª Questão) (ESAF – Superintendência de Seguros Privados –


Tecnologia da Informação - 2010) Um modelo de banco de dados relacional
deve conter no mínimo a definição de
a) tabelas, colunas das tabelas e restrições de integridade.
b) títulos, colunas dos atributos e restrições de integridade.
c) títulos, colunas das tabelas e restrições de manutenção.
d) tabelas, relações entre linhas das tabelas e opções de integridade.
e) associações de restrição, colunas referenciadas e restrições de
desempenho.

32ª Questão) (FCC – TCE/AM – Analista Técnico de Controle Externo


– Tecnologia da Informação - 2012) Em relação a bancos de dados, uma
chave primária pode ser formada por uma ou mais colunas e deve possuir um
identificador único para
a) cada uma das colunas pertencente a essa chave.
b) cada coluna da tabela.
c) uma tupla (formada por linhas e colunas).
d) todos os registros da tabela.
e) cada linha da tabela.

33ª Questão) (ESAF – Superintendência de Seguros Privados –


Tecnologia da Informação – 2010) Em Abordagem Relacional
a) uma chave relacionada é uma coluna cujos valores distinguem atributos
de relacionamentos.
b) a chave estrangeira é o mecanismo que permite a implementação de
relacionamentos em um banco de dados relacional.
00428113176

c) a chave estrangeira é uma coluna ou uma combinação de colunas cujos


valores não aparecem na chave primária de uma tabela.
d) uma chave primária é uma linha ou uma combinação de linhas cujos
valores distinguem uma coluna das demais dentro de uma tabela.
e) a chave estrangeira é uma linha ou uma combinação de linhas cujos
valores necessariamente aparecem na chave primária de uma tabela.

34ª Questão) (FCC – TRT/6ª Região – Analista Judiciário –


Tecnologia da Informação - 2012) No modelo entidade-relacionamento,
a) entidades podem ter atributos, mas relacionamentos não podem ter
atributos.

Prof. Victor Dalton


www.estrategiaconcursos.com.br 145 de 172

00428113176 - Rodrigo
Tecnologia da Informação para TCM/Goiás
Auditor de Controle Externo - Informática
Prof Victor Dalton Aula 05
b) uma chave é um conjunto de atributos cujos valores identificam um
relacionamento de maneira única.
c) um relacionamento é uma associação entre atributos.
d) todo relacionamento tem uma chave.
e) uma chave é um conjunto de atributos cujos valores identificam uma
entidade de maneira única.

35ª Questão) (FCC – TJ/RJ – Analista Judiciário – Analista de


Suporte – 2012) Considere:
I. Se uma transação é concluída com sucesso (operação commit bem
sucedida), então seus efeitos são persistentes.
II. Ou todas as ações da transação acontecem, ou nenhuma delas
acontece.
As propriedades (I) e (II) das transações em SGBDs, significam,
respectivamente,
a) durabilidade e consistência.
b) persistência e automação.
c) isolação e atomicidade.
d) durabilidade e atomicidade.
e) consistência e persistência.

36ª Questão) (FCC – MPE/MA – Analista Ministerial – Banco de


Dados – 2013) O conceito de transações em um banco de dados relacional
envolve algumas propriedades conhecidas e agrupadas sob o acrônimo ACID. A
letra D nesse acrônimo significa Durabilidade, sendo que seu conceito indica que
a) todas as regras de consistência previamente programadas no banco de
dados serão automaticamente excluídas.
b) cada transação é independente das demais, não gerando influência nas
demais transações eventualmente existentes.
c) os tipos de dados definidos não dependem do sistema gerenciador de
banco de dados utilizado. 00428113176

d) ao término de uma transação, eventuais alterações em valores das


tabelas do banco de dados devem persistir, mesmo que ocorram falhas no
sistema de banco de dados.
e) é necessário utilizar um sistema gerenciador de banco de dados capaz
de implementar mecanismos de controle de concorrência.

37ª Questão) (UEL – SEAP – Analista de Sistemas – 2009) Os sistemas


gerenciadores de bancos de dados devem garantir que as transações por eles
suportadas possuam o conjunto das seguintes propriedades:

Prof. Victor Dalton


www.estrategiaconcursos.com.br 146 de 172

00428113176 - Rodrigo
Tecnologia da Informação para TCM/Goiás
Auditor de Controle Externo - Informática
Prof Victor Dalton Aula 05
a) Atomicidade, consistência, isolamento, durabilidade.
b) Atomicidade, consistência, independência de dados, durabilidade.
c) Atomicidade, consistência, independência de dados, isolamento.
d) Atomicidade, consistência, isolamento, replicação.
e) Atomicidade, consistência, durabilidade, robustez.

38ª Questão) (FCC – SEFAZ/SP – Agente Fiscal de Rendas – 2013)


Para responder às próximas questões, considere o texto a seguir:
A empresa Express conta com diversas equipes de desenvolvimento, nas
áreas de software em geral, incluindo técnicas estruturadas e de orientação a
objetos. Essas equipes estão em constante aperfeiçoamento, visando mantê-las
sempre atualizadas com as técnicas mais recentes da engenharia de software,
incluindo-se aí a área de bancos de dados.
A Express atende clientes de diversos perfis, abrangendo pequenas, médias
e grandes empresas. Dessa forma, os sistemas de computação solicitados
também atendem a esse perfil, compreendendo sistemas de pequeno, médio e
grande porte.
A Express conta com equipes especializadas, de grande experiência nas
áreas acima destacadas, estando, portanto, apta a atender desde um simples
produto até um grande sistema de software. Dessa forma, os produtos
desenvolvidos pela Express possuem, normalmente, uma qualidade bastante
apurada, o que pode ser verificado pelas diversas técnicas existentes.
Uma das normas da Express é a de produzir documentação de excelente
qualidade, cuja finalidade é, não apenas para entrega aos clientes, mas também
para possibilitar a manutenção adequada dos produtos desenvolvidos.

No projeto de seus bancos de dados, a Express faz uso da modelagem


relacional, na qual é necessário definir os domínios dos atributos de uma
relação. Um domínio é considerado atômico se, na aplicação em questão,
a) o comprimento máximo de seus valores tiver até 255 caracteres.
b) seus elementos forem considerados como indivisíveis.
c) não houver caractere especial nos valores dos atributos, tais como $ e
00428113176

@.
d) forem admitidos apenas letras e espaços como caracteres válidos.
e) não forem admitidos valores nulos.

39ª Questão) (FCC – DPE/SP – Agente de Defensoria Pública –


Analista de Sistemas - 2013) Quando da modelagem de dados de um banco
de dados relacional, podem ser utilizados atributos compostos, sobre os quais é
correto afirmar que
a) podem ser decompostos em outros atributos simples ou ainda
compostos.

Prof. Victor Dalton


www.estrategiaconcursos.com.br 147 de 172

00428113176 - Rodrigo
Tecnologia da Informação para TCM/Goiás
Auditor de Controle Externo - Informática
Prof Victor Dalton Aula 05
b) são sempre formados por um atributo do tipo numérico e um do tipo
literal.
c) não podem conter atributos do tipo booleano em sua formação.
d) não admitem valores nulos em sua composição.
e) fazem parte, obrigatoriamente, da chave primária do conjunto de
entidades ao qual são vinculados.

40ª Questão) (FCC – SEFAZ/SP – Agente Fiscal de Rendas – 2013) No


projeto de bancos de dados relacionais, a Express tem preocupação de produzir
modelos mais adequados. A chave primária de uma relação de um banco de
dados relacional
a) só pode servir como chave estrangeira de, no máximo, uma outra
relação.
b) não pode ser indexada, quando da implementação do banco de dados.
c) não pode conter atributos do tipo Data.
d) pode ser formada por mais de um atributo.
e) não pode conter mais do que um atributo.

41ª Questão) (FCC – Prefeitura de SP – Auditor Fiscal Tributário


Municipal I – Tecnologia da Informação - 2012) Considere o seguinte
projeto conceitual de um banco de dados:

00428113176

Para se construir o projeto lógico deste banco de dados, no mapeamento do


relacionamento ExpostoEm e seus atributos,

a) pode ser criada uma relação ExpostoEm, contendo como chaves


estrangeiras as chaves primárias das relações correspondentes às entidades
Produto, Loja e Lote e como atributos Unidade e Quantidade.

Prof. Victor Dalton


www.estrategiaconcursos.com.br 148 de 172

00428113176 - Rodrigo
Tecnologia da Informação para TCM/Goiás
Auditor de Controle Externo - Informática
Prof Victor Dalton Aula 05
b) os atributos Unidade e Quantidade podem ser adicionados à relação
correspondente à entidade Lote. O atributo CodLote deve ser chave estrangeira
nas relações correspondentes às entidades Produto e Loja.

c) os atributos Unidade e Quantidade podem ser adicionados à relação


correspondente à entidade Loja. O atributo CodLoja deve ser chave estrangeira
nas relações correspondentes às entidades Produto e Lote.

d) pode ser criada uma relação ExpostoEm, contendo como atributos


CodExposicao, Unidade e Quantidade. O atributo CodExposicao é a chave
primária desta relação e deve aparecer como chave estrangeira na relação
correspondente à entidade Lote.

e) pode ser criada uma relação ExpostoEm, contendo como atributos


CodExposicao, Unidade e Quantidade. O atributo CodExposicao é a chave
primária desta relação e deve aparecer como chave estrangeira nas relações
correspondentes às entidades Produto, Loja e Lote.

42ª Questão) (FCC – MPE/CE – Analista Ministerial – Ciências da


Computação - 2013) O modelo de dados relacional é baseado em uma coleção
de ...I... . O usuário pode consultá-las e inserir, excluir e atualizar ...II... . A
...III... define um conjunto de operações sobre relações e as linguagens de
consulta são baseadas nela. O modelo de dados ...IV... é amplamente usado
para o projeto do banco de dados, oferecendo uma representação gráfica para
visualizar dados, relacionamentos e ...V....

Preenchem as lacunas, correta e respectivamente, o que consta em

00428113176

43ª Questão) (FCC – ALESP – Agente Técnico Legislativo –


Administração de Banco de Dados e Arquitetura de Dados - 2010)
Maneira alternativa de observação de dados de uma ou mais entidades − tabelas
−, que compõe uma base de dados. Pode ser considerada como uma tabela
virtual ou uma consulta armazenada. Trata-se de

a) table shadow.
Prof. Victor Dalton
www.estrategiaconcursos.com.br 149 de 172

00428113176 - Rodrigo
Tecnologia da Informação para TCM/Goiás
Auditor de Controle Externo - Informática
Prof Victor Dalton Aula 05
b) view.
c) shadow table.
d) table blour.
e) blour table.

44ª Questão) (FCC – BACEN – Analista – Área 2 – 2005 - adaptada)


Sobre definição e manipulação de visão, analise:

I. Uma VIEW provê mais segurança, pois permite esconder parte dos dados
da tabela real.
II. Os dados que compõem a VIEW são armazenados separadamente da
tabela real.
III. Uma linha inserida na VIEW, com todas as colunas, será inserida na
tabela real.

É correto o que consta APENAS em

a) I,II e III.
b) I e II, somente.
c) I e III, somente.
d) II e III, somente.
e) I, somente.

45ª Questão) (FMP – ISS/POA – Agente Fiscal da Receita – 2012) Na


modelagem Entidade-Relacionamento (ER) uma propriedade importante de um
relacionamento é a de quantas ocorrências de uma entidade podem estar
associadas a uma determinada ocorrência através do relacionamento. Tal
propriedade é chamada de
00428113176

a) dependência funcional

b) normalização

c) generalização/especialização

d) relacionamento identificador

e) cardinalidade.

46ª Questão) (FMP – ISS/POA – Agente Fiscal da Receita – 2012) A


definição “software que incorpora as funções de definição, recuperação e
alteração de dados em um banco de dados”, melhor corresponde a:

Prof. Victor Dalton


www.estrategiaconcursos.com.br 150 de 172

00428113176 - Rodrigo
Tecnologia da Informação para TCM/Goiás
Auditor de Controle Externo - Informática
Prof Victor Dalton Aula 05
a) Modelo de banco de dados.

b) Linguagem de Consulta Estruturada (SQL).

c) Sistema de Gerência de Banco de Dados (SGDB).

d) Interpretador eXtended Markup Language (XML).

e) Sistemas de arquivos.

47ª Questão) (FMP – ISS/POA – Agente Fiscal da Receita – 2012)


Como se denomina o modelo de dados abstrato que descreve a estrutura de um
banco de dados de forma independente de um SGDB particular?

a) Modelo físico.

b) Modelo de dados.

c) Modelo virtual.

d) Modelo conceitual.

e) Modelo lógico.

48ª Questão) (FMP – ISS/POA – Agente Fiscal da Receita – 2012) A


técnica de modelagem de dados mais difundida é a abordagem entidade-
relacionamento. À luz dessa modelagem, o que se entende por relacionamento?

a) O conjunto de associações entre as entidades que serão armazenadas no


banco de dados.

b) As informações de uma determinada entidade do banco de dados.

c) Um par específico de entidades.

d) A definição dos possíveis valores que uma determinada entidade pode


00428113176

assumir.

e) Um identificador que distingue de forma unívoca a ocorrência de uma


entidade das demais ocorrências dessa mesma entidade.

49ª Questão) (CETRO –SEMSA – Analista de Sistemas – 2012)


Assinale a alternativa que apresenta a representação adequada para uma
entidade forte no modelo E-R.

a) Losango.

b) Retângulo de borda dupla.

Prof. Victor Dalton


www.estrategiaconcursos.com.br 151 de 172

00428113176 - Rodrigo
Tecnologia da Informação para TCM/Goiás
Auditor de Controle Externo - Informática
Prof Victor Dalton Aula 05
c) Pequeno retângulo de cantos arredondados.

d) Losango de borda dupla.

e) Retângulo.

50ª Questão) (CETRO – ANVISA – Analista Administrativo Área 5 –


2013) Com relação às chaves substitutas em banco de dados, analise as
assertivas abaixo.

I. Sempre envolvem exatamente um atributo.

II. Elas servem somente para representar o fato de que entidades


correspondentes existem.

III. Quando uma entidade é excluída, o valor de sua chave substituta


deverá ser alocado para a primeira nova entidade adicionada.

É correto o que se afirma em

a) I e III, apenas.

b) I e II, apenas.

c) II e III, apenas.

d) I, II e III.

e) II, apenas.

51ª Questão) (CETRO – ANVISA – Analista Administrativo Área 5 –


2013) Quanto aos sistemas de gerenciamento de banco de dados, assinale a
alternativa correta.

a) Sua função geral é fornecer uma interface entre o usuário e o sistema de


00428113176

banco de dados.

b) Sempre tem um gerenciador de transações.

c) O dicionário de dados impõe certos controles sobre a recuperação e


concorrência do banco de dados.

d) A verificação da integridade dos dados deve ser feita somente no tempo


de compilação.

e) Não incluem compiladores de DML.

Prof. Victor Dalton


www.estrategiaconcursos.com.br 152 de 172

00428113176 - Rodrigo
Tecnologia da Informação para TCM/Goiás
Auditor de Controle Externo - Informática
Prof Victor Dalton Aula 05
52ª Questão) (FCC – TRT 2ª Região – Analista Judiciário – Tecnologia
da Informação – 2014) Em alguns casos, dois ou mais valores de atributos
em um modelo de Entidade-Relacionamento estão relacionados. Por exemplo, os
atributos Idade e Data de Nascimento de uma pessoa. Para uma Entidade-
Pessoa em particular, o valor de Idade pode ser determinado pela data corrente
e o valor de Data de Nascimento da pessoa. Portanto, o atributo Idade é
chamado atributo ...I... do atributo Data de Nascimento, que, por sua vez, é
chamado atributo ...II... .

As lacunas I e II são, correta e respectivamente, preenchidas com:

(A) armazenado - derivado


(B) derivado - armazenado
(C) multivalorado - monovalorado
(D) identificador - complexo
(E) resultante - unívoco

53ª Questão) (FCC – SABESP – Tecnólogo - Sistemas - 2014) Um


SGBD multiusuário deve permitir que diversos usuários acessem o banco de
dados ao mesmo tempo. Isso é essencial se os dados para as várias aplicações
estão integrados e mantidos em um único banco de dados. O SGBD deve incluir
um software de controle de concorrência para garantir que muitos usuários, ao
tentar atualizar o mesmo dado, o façam de um modo controlado, para assegurar
que os resultados das atualizações sejam corretos. Por exemplo, quando muitos
atendentes tentam reservar um lugar em um voo, o SGBD deve garantir que
cada assento possa ser acessado somente por um atendente de cada vez, para
fazer a reserva de apenas um passageiro.

Em SGBD, a este conceito se dá o nome de

a) acesso simultâneo.
b) semáforo de acesso. 00428113176

c) transação.
d) modularização.
e) polimorfismo.

54ª Questão) (FCC – SABESP – Tecnólogo - Sistemas - 2014) Um


SGBD possui a capacidade de mudar o esquema interno sem ter de alterar o
esquema conceitual, consequentemente não havendo necessidade de alteração
do esquema externo. As mudanças no esquema interno podem ser necessárias
para que alguns arquivos físicos possam ser reorganizados, por exemplo, pela
criação de estruturas de acesso adicionais para aperfeiçoar o desempenho da
recuperação ou atualização de dados.

Prof. Victor Dalton


www.estrategiaconcursos.com.br 153 de 172

00428113176 - Rodrigo
Tecnologia da Informação para TCM/Goiás
Auditor de Controle Externo - Informática
Prof Victor Dalton Aula 05
Essa característica de um SGBD é denominada

a) modelo lógico de dados.

b) modelo físico de dados.

c) independência modular.

d) representação conceitual.

e) independência física de dados.

55ª Questão) (FCC – SABESP – Tecnólogo - Sistemas - 2014) Uma


característica fundamental da abordagem de um banco de dados é que o
sistema de banco de dados possui não apenas o banco de dados, mas também
uma completa definição ou descrição ...I... desse banco de dados e ...II.... Essa
definição está armazenada no catálogo do SGBD, que contém informações como
a estrutura de cada arquivo, o tipo e o formato de armazenamento de cada item
de dado e várias restrições sobre os dados.

As lacunas I e II são correta e, respectivamente, preenchidas por:

a) do domínio - seus casos de uso

b) do conteúdo binário - suas linhas e colunas

c) das tabelas - seus administradores

d) da estrutura - suas restrições

e) em UML - outros bancos deste sistema

56ª Questão) (FCC – SABESP – Tecnólogo - Sistemas - 2014) No


00428113176

processamento tradicional de arquivos, a estrutura do arquivo de dados está


embutida no programa da aplicação, sendo assim, qualquer mudança na
estrutura de um arquivo pode exigir alterações de todos os programas que
acessam esse arquivo. Aplicações desenvolvidas com foco em SGBD não exigem
essas alterações na maioria dos casos, pois a estrutura dos arquivos de dados é
armazenada no catálogo do SGDB separadamente do programa de acesso.

A este isolamento entre programas e dados é dado o nome de

a) abstração de dados.

Prof. Victor Dalton


www.estrategiaconcursos.com.br 154 de 172

00428113176 - Rodrigo
Tecnologia da Informação para TCM/Goiás
Auditor de Controle Externo - Informática
Prof Victor Dalton Aula 05
b) acesso remoto.

c) independência funcional.

d) independência modular.

e) modelo relacional.

57ª Questão) (FCC – SABESP – Tecnólogo - Sistemas - 2014) A


maioria das aplicações de um banco de dados tem certas restrições de
integridade que devem complementar os dados. O SGBD deve prover
funcionalidades para a definição e a garantia dessas restrições. O tipo mais
simples de restrição de integridade envolve a

a) especificação de um tipo de dado para cada item de dados.

b) indexação da tabela por valores ascendentes ou descendentes, conforme


a restrição a ser integrada.

c) criação de visualizações (views) para as colunas de uma tabela.

d) definição do modelo lógico de dados juntamente com as características


físicas do domínio.

e) utilização de chaves estrangeiras em conjunto com a definição de um


gatilho (trigger) para determinados eventos.

58ª Questão) (FCC – SEFAZ/PE – Auditor Fiscal – 2014) Um Sistema


de Gerenciamento de Banco de Dados (SGBD) é um software com recursos
específicos para facilitar a manipulação das informações dos bancos de dados e
o desenvolvimento de programas aplicativos. A forma como os dados serão
armazenados no banco de dados é definida pelo modelo do SGBD. Os principais
modelos são: hierárquico, em rede, orientado a objetos e
00428113176

(A) funcional.
(B) procedural.
(C) orientado a serviços.
(D) relacional.
(E) orientado a componentes.

59ª Questão) (FCC – TCE/RS – Auditor Público Externo – Técnico em


Procesamento de Dados – 2014) Considerando a modelagem de dados de
um banco de dados relacional, há diversos conceitos envolvendo conjuntos de
entidades. Um conceito correto sobre conjuntos de entidades e seus atributos é

Prof. Victor Dalton


www.estrategiaconcursos.com.br 155 de 172

00428113176 - Rodrigo
Tecnologia da Informação para TCM/Goiás
Auditor de Controle Externo - Informática
Prof Victor Dalton Aula 05

(A) um atributo do tipo derivado é aquele que pode ser dividido em duas ou
mais partes, sem perda de significado.

(B) um atributo de um conjunto de entidades é multivalorado se for do tipo


literal com mais de 20 caracteres.

(C) um atributo de um conjunto de entidades é monovalorado se for do tipo


numérico.

(D) um conjunto de entidades fraco é aquele que não tem atributos


suficientes para formar uma chave primária.

(E) um conjunto de entidades forte é aquele que tem apenas atributos


literais ou numéricos, não contendo atributos do tipo data.

00428113176

Prof. Victor Dalton


www.estrategiaconcursos.com.br 156 de 172

00428113176 - Rodrigo
Tecnologia da Informação para TCM/Goiás
Auditor de Controle Externo - Informática
Prof Victor Dalton Aula 05
SQL

1ª Questão) (ESAF – Analista de Finanças e Controle –


Desenvolvimento de Sistemas de Informação – 2008) Em um banco de
dados que utiliza a linguagem SQL para definição, manipulação e controle de
dados, é correto afirmar que os comandos
a) CREATE, DROP e INSERT fazem parte da DML (Linguagem de
Manipulação de Dados).
b) GRANT e REVOKE fazem parte da DCL (Linguagem de Controle de
Dados).
c) INSERT, UPDATE e SELECT fazem parte da DDL (Linguagem de Definição
de Dados).
d) ALTER, DELETE e REVOKE fazem parte da DML (Linguagem de
Manipulação de Dados).
e) CREATE, GRANT e DROP fazem parte da DCL (Linguagem de Controle de
Dados).

2ª Questão) (FCC – INFRAERO – Analista de Sistema – Banco de


Dados e Administrador de Dados - 2011) A linguagem de manipulação de
dados (DML)

a) sempre se utiliza de outra linguagem de programação hospedeira para


que possa ser executada.
b) utiliza instruções INSERT, DROP, SELECT, UPDATE, entre outras.
c) pode ser executada mesmo que suas sentenças não estejam escritas em
um código de linguagem de programação.
d) se utiliza de instruções que permitem a inclusão e alteração de dados,
assim como, atribuição e negação de permissões.
e) é uma linguagem exclusivamente procedural, para especificar como os
dados devem ser obtidos do banco.
00428113176

3ª Questão) (FCC – INFRAERO – Analista de Sistema – Banco de


Dados e Administrador de Dados - 2011) É INCORRETO afirmar que a
linguagem de definição de dados (DDL) permite

a) o suporte a rollback, já que instruções DDL podem ser manipuladas


dentro de uma transação.
b) a modificação de um objeto existente do banco de dados.
c) declarações para definição de relacionamentos de integridade referencial.
d) que o resultado da compilação de comandos de uma DDL seja
armazenado no dicionário de dados.

Prof. Victor Dalton


www.estrategiaconcursos.com.br 157 de 172

00428113176 - Rodrigo
Tecnologia da Informação para TCM/Goiás
Auditor de Controle Externo - Informática
Prof Victor Dalton Aula 05
e) a definição de tuplas no banco de dados, por meio do comando CREATE.

4ª Questão) (FCC – SABESP – Analista Gestão I - Sistemas - 2012)


Sobre restrições (constraints) em bancos de dados, considere:

I. A restrição NOT NULL, assim como as restrições UNIQUE e PRIMARY KEY


fornecem uma garantia de exclusividade para uma coluna ou conjunto de
colunas.
II. A restrição DEFAULT é usada para inserir um valor padrão em uma
coluna. O valor padrão será adicionado a todos os novos registros, caso nenhum
outro valor seja especificado.
III. A restrição CHECK é usada para limitar a gama de valores que podem
ser colocados em uma coluna. Se essa restrição for definida em uma tabela, ela
pode limitar os valores em determinadas colunas com base nos valores de
outras colunas da linha.

Está correto o que consta em

a) III, apenas.
b) I e II, apenas.
c) I e III, apenas.
d) II e III, apenas.
e) I, II e III.

5ª Questão) (FCC – Metrô/SP – Analista Desenvolvimento Gestão


Júnior – Ciências da Computação - 2012) Um dos métodos para garantir a
integridade das informações inseridas em bancos de dados é pelo uso de
constraints, que garantem que os dados sejam validados de acordo com os
critérios estabelecidos pelas constraints. Sobre a constraint UNIQUE em
00428113176

linguagem SQL, é INCORRETO afirmar que

a) designa uma coluna ou uma combinação de colunas de tal forma que


duas linhas não possam ter o mesmo valor.
b) estabelece um relacionamento com a chave primária ou única da mesma
ou de outra tabela.
c) valores nulos são aceitos.
d) automaticamente é criado um índice único para a coluna ou colunas
especificadas.
e) é possível criá-la após a criação da tabela.

Prof. Victor Dalton


www.estrategiaconcursos.com.br 158 de 172

00428113176 - Rodrigo
Tecnologia da Informação para TCM/Goiás
Auditor de Controle Externo - Informática
Prof Victor Dalton Aula 05

6ª Questão) (FGV – MEC – Analista de Sistema –Administrador de


Dados - 2008) Um DBA criou uma tabela em um Banco de Dados no
postgreSQL 8.3 utilizando o comando

CREATE TABLE mec (


cidade varchar(80),
temp_baixa int,
temp_alta int,
nivel_precip real,
data date)

Para o comando que insere dados na tabela mec, é usada a seguinte


sintaxe:
a) INSERT IN mec(cidade, temp_baixa, temp_alta, nível_precip, data)
VALUES ('Brasilia', 20, 34, 0.2, ‘2009-01-13');
b) INSERT ON mec(cidade, temp_baixa, temp_alta, nivel_precip, data)
VALUES ('Brasilia', 20, 34, 0.2, ‘2009-01-13');
c) INSERT FROM mec(cidade, temp_baixa, temp_alta, nivel_precip, data)
VALUES ('Brasilia', 20, 34, 0.2, ‘2009-01-13');
d) INSERT OVER mec(cidade, temp_baixa, temp_alta, nivel_precip, data)
VALUES ('Brasilia', 20, 34, 0.2, ‘2009-01-13');
e) INSERT INTO mec(cidade, temp_baixa, temp_alta, nivel_precip, data)
VALUES ('Brasilia', 20, 34, 0.2, ‘2009-01-13');

7ª Questão) (FCC – INFRAERO – Analista de Sistema – Banco de


Dados e Administrador de Dados - 2011) Analise os comandos PL/SQL:

CREATE TABLE Departamentos (Id numeric(10) not null,Descricao


varchar(30) not null, CONSTRAINT Dept_pk PRIMARY KEY(Id));
00428113176

CREATE TABLE Vendedores (Id numeric(10) not null,Nome varchar(30) not


null,Departamento numeric(10) not null, CONSTRAINT Vendedores_pk PRIMARY
KEY(Id),CONSTRAINT fk_dept FOREIGN KEY(Departamento) REFERENCES
Departamentos(Id));

CREATE TABLE Vendas (Vendedor numeric(10) not null,ValordeVenda real


not null,CONSTRAINT fk_vendedores FOREIGN KEY(Vendedor) REFERENCES
Vendedores(Id));

O comando PL/SQL necessário para listar o nome dos vendedores que


obtiveram Valor de Venda superior a 100 e que pertençam ao departamento 1
nas tabelas criadas acima deve ser:

Prof. Victor Dalton


www.estrategiaconcursos.com.br 159 de 172

00428113176 - Rodrigo
Tecnologia da Informação para TCM/Goiás
Auditor de Controle Externo - Informática
Prof Victor Dalton Aula 05

a) SELECT * FROM Vendedores WHERE Departamento = 1 AND (SELECT


ValordeVenda FROM Vendas WHERE Sum(ValordeVenda) > 100);

b) SELECT Nome FROM Vendedores WHERE Departamento = 1 AND


(SELECT Sum(ValordeVenda) FROM Vendas WHERE Vendedor = Vendedores.Id)
> 100;

c) SELECT Vendedor FROM Vendas WHERE Sum(ValordeVenda) > 100 AND


Departamento = 1;

d) SELECT (SELECT Nome from Vendedores WHERE Id = Vendas.Vendedor)


as Nome,ValordeVenda FROM Vendas WHERE ValordeVenda > 100;

e) SELECT (SELECT Sum(ValordeVenda) FROM Vendas) as S,(SELECT Id


from Departamentos WHERE Id = 1) as IdDept WHERE S > 100 AND IdDept =
1;

8ª Questão) (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 00428113176

a) 2.
b) 14.
c) 6.
d) 29.
e) 5.

9ª Questão) (FGV – MEC – Analista de Sistema –Administrador de


Dados - 2008) Stored Procedure é termo utilizado para um conjunto de
comandos, ao qual é atribuído um nome, que fica armazenado no Banco de
Dados e pode ser chamado a qualquer momento tanto pelo SGBD quanto por um

Prof. Victor Dalton


www.estrategiaconcursos.com.br 160 de 172

00428113176 - Rodrigo
Tecnologia da Informação para TCM/Goiás
Auditor de Controle Externo - Informática
Prof Victor Dalton Aula 05
sistema que faz interface com o mesmo. A utilização de Stored Procedures
constitui uma técnica eficiente de executarmos operações repetitivas. Ao invés
de digitar os comandos cada vez que determinada operação necessite ser
executada, cria-se um Stored Procedure que é chamada quando necessário. Em
um Stored Procedure pode-se ter estruturas de controle e decisão, típicas das
linguagens de programação. No SQL Server, uma “stored procedure” é
executada automaticamente quando um dado da tabela é alterado em
decorrência da execução de um comando SQL do tipo INSERT, UPDATE ou
DELETE. Esta “stored procedure” é denominada:

a) commit.
b) rollback.
c) trigger.
d) snapshot.
e) deadlock.

(CESPE – MEC – Atividade Técnica de Complexidade Intelectual –


Administrador de Dados - 2011)

Considere que, sob o padrão do SQL2, tenham sido criadas as tabelas


Empregado, Dependente e Departamento por meio dos seguintes comandos:

00428113176

Prof. Victor Dalton


www.estrategiaconcursos.com.br 161 de 172

00428113176 - Rodrigo
Tecnologia da Informação para TCM/Goiás
Auditor de Controle Externo - Informática
Prof Victor Dalton Aula 05

00428113176

Considere, ainda, os seguintes comandos, todos também sob o padrão do


SQL2, relativos a consultas feitas nos dados das tabelas acima citadas.

Prof. Victor Dalton


www.estrategiaconcursos.com.br 162 de 172

00428113176 - Rodrigo
Tecnologia da Informação para TCM/Goiás
Auditor de Controle Externo - Informática
Prof Victor Dalton Aula 05
Com referência às informações acima, bem como a comandos e consultas
em SQL e álgebra relacional, julgue os itens seguintes.

10. A consulta 2 recupera o nome e sobrenome dos empregados


que tenham dependentes.

11.Na consulta 1, foi utilizado qualificador para diferenciar os


campos de mesmo nome das consultas correlacionadas.

12.A consulta 1 recupera o nome e sobrenome dos empregados que


possuam um dependente com o mesmo nome e o mesmo sexo do
empregado.

(CESPE – TCE/RO – Auditor de Controle Externo – Ciências da


Computação - 2013) 13.A linguagem de manipulação de dados (DML)
abrange uma linguagem de consulta embasada tanto na álgebra
relacional quanto no cálculo relacional de tuplas. Alguns comandos que
representam essa linguagem são SELECT, CREATE TABLE e CREATE
INDEX.

(CESPE – MPE/PI – Técnico Ministerial – Informática - 2012) Acerca


de DML e DDL, julgue os itens subsecutivos.

14.A DDL externa é utilizada para especificar o nível externo de um


banco de dados, utilizando-se, para tanto, a sublinguagem de dados do
usuário.
00428113176

15.A DDL admite o processamento ou a manipulação de objetos dos


bancos de dados.

16.A DML é a única linguagem que possui recursos para


especificação de restrições de segurança ou de integridade.

17.O esquema interno de um banco de dados, que identifica os tipos


de registros, índices, campos etc., é descrito por meio de uma DDL
conceitual.

Prof. Victor Dalton


www.estrategiaconcursos.com.br 163 de 172

00428113176 - Rodrigo
Tecnologia da Informação para TCM/Goiás
Auditor de Controle Externo - Informática
Prof Victor Dalton Aula 05

(CESPE – TRT/10ª Região – Técnico Judiciário – Tecnologia da


Informação - 2013)

18.Suponha que exista determinada tabela alunos, com os campos


id_aluno, nome_aluno, telefone e idade. Nesse caso, o comando abaixo
é apropriado para listar todos os alunos que tenham idade superior a 34
anos e obter o resultado de forma ordenada por aluno.

select * from alunos where idade > 34 group by

nome_aluno having count(*) > 34

19.O comando listado abaixo é apropriado para criação de uma


tabela com o nome disciplinas, que contenha os campos id_disciplina e
disciplina, com chave primária id_disciplina.

create table disciplinas (

id_disciplina INTEGER not null,

disciplina VARCHAR(40) not null,

primary key (id_disciplina)

);

20.O comando abaixo permite adicionar a tabela disciplinas a uma


chave estrangeira com o nome fk_curso, do campo id_curso que
pertence à tabela cursos.

alter table disciplinas

alter column fk_curso references cursos


00428113176

(id_curso);

(CESPE – MEC – Atividade Técnica de Complexidade Gerencial –


Administrador de Banco de Dados - 2011)

21.Quando uma transação é abortada, todas as mudanças que


ocorreram no banco de dados devem ser desfeitas. Essa operação pode
ser executada por meio do comando ROLLBACK da linguagem SQL.

Prof. Victor Dalton


www.estrategiaconcursos.com.br 164 de 172

00428113176 - Rodrigo
Tecnologia da Informação para TCM/Goiás
Auditor de Controle Externo - Informática
Prof Victor Dalton Aula 05
22ª Questão) (FCC – DPE/SP – Agente de Defensoria Pública –
Analista de Sistemas - 2013) Considere as seguintes tabelas de um banco de
dados relacional, sendo que os atributos ID e Cod, na tabela Usa são chaves
estrangeiras, com origem, respectivamente, nas tabelas Dpto e Eqpto:

Depto (ID, Nome, Função)


Usa (ID, Cod)
Eqpto (Cod, Tipo, Valor)

Assinale a alternativa que apresenta a expressão SQL para obter o Nome


do Depto e o Tipo de Eqpto utilizados.

a) SELECT Nome, Tipo


FROM Depto Eqpto

b) SELECT Nome, Tipo


FROM Usa
WHERE USA.ID and Usa.Cod

c) SELECT Nome, Tipo


FROM Depto, Usa, Eqpto

d) SELECT Nome, Tipo


FROM Depto, Usa, Eqpto
WHERE Dpto.ID = USA.ID and Eqpto.Cod = Usa.Cod
e) SELECT Nome, Tipo
FROM Depto, Eqpto
WHERE Dpto.ID and Eqpto.Cod

00428113176

Prof. Victor Dalton


www.estrategiaconcursos.com.br 165 de 172

00428113176 - Rodrigo
Tecnologia da Informação para TCM/Goiás
Auditor de Controle Externo - Informática
Prof Victor Dalton Aula 05

23ª Questão) (FCC – DPE/SP – Agente de Defensoria Pública –


Programador - 2013) Analisando o modelo Entidade-Relacionamento é correto
afirmar:

a) Os atributos precoUnitario e quantidade devem ser movidos da entidade


00428113176

PRODUTO para a entidade ITEMNOTAFISCAL como atributos simples, pois são


dependentes da chave primária composta dessa entidade e não apenas do
atributo idPRODUTO da entidade PRODUTO.

b) O atributo quantidade deve ser movido da entidade PRODUTO para a


entidade ITEMNOTAFISCAL como atributo simples, pois a quantidade é
dependente da chave primária composta dessa entidade e não apenas do
atributo idPRODUTO da entidade PRODUTO.

c) Considerando que o conteúdo do atributo idITEMNOTAFISCAL é


sequencial e não se repete na mesma nota fiscal, só podendo se repetir em

Prof. Victor Dalton


www.estrategiaconcursos.com.br 166 de 172

00428113176 - Rodrigo
Tecnologia da Informação para TCM/Goiás
Auditor de Controle Externo - Informática
Prof Victor Dalton Aula 05
notas fiscais diferentes, o atributo idPRODUTO deve fazer parte da chave
primária composta da entidade ITEMNOTAFISCAL.

d) O grau do relacionamento entre as entidades PRODUTO e


ITEMNOTAFISCAL deve ser muitos para muitos e não um para muitos como
apresentado no modelo.

e) Considerando que o conteúdo do atributo idITEMNOTAFISCAL é


sequencial e não se repete na mesma nota fiscal, só podendo se repetir em
notas fiscais diferentes, a chave primária dessa entidade deve ser formada
apenas pelo atributo idITEMNOTAFISCAL.

24ª Questão) (FCC – DPE/SP – Agente de Defensoria Pública –


Programador - 2013) Uma instrução SQL correta para criar a tabela
NOTAFISCAL apresentada no modelo é:

a) CREATE TABLE NOTAFISCAL (idNOTAFISCAL INTEGER NOT NULL,


dataEmissao DATE NULL, PRIMARY KEY(idNOTAFISCAL));

b) CREATE TABLE NOTAFISCAL (idNOTAFISCAL INTEGER NULL


AUTOINCREMENT, dataEmissao DATE NULL, PRIMARY KEY(idNOTAFISCAL));

c) CREATE SCHEMA NOTAFISCAL (idNOTAFISCAL INTEGER NOT NULL


AUTO_INCREMENT, dataEmissao DATE NOT NULL, PRIMARY
KEY(idNOTAFISCAL));

d) CREATE TABLE NOTAFISCAL (idNOTAFISCAL INTEGER NULL,


dataEmissao DATE NOT NULL, CONSTRAINT UNIQUE KEY(idNOTAFISCAL));

e) CREATE TABLE NOTAFISCAL (idNOTAFISCAL INTEGER NULL


CONSTRAINT PRIMARY KEY, dataEmissao DATE NULL);
00428113176

25ª Questão) (FCC – DPE/SP – Agente de Defensoria Pública –


Administrador de Banco de Dados - 2013) Analise os seguintes comandos
de definição e manipulação de dados SQL:

CREATE TABLE Livro (ID INTEGER, NOME VARCHAR(20), AUTOR


VARCHAR(30));
INSERT INTO Livro VALUES(1, “Memórias Póstumas de Brás Cubas”,
“Machado de Assis”);
INSERT INTO Livro VALUES(1, “Quincas Borba”, NULL);

Prof. Victor Dalton


www.estrategiaconcursos.com.br 167 de 172

00428113176 - Rodrigo
Tecnologia da Informação para TCM/Goiás
Auditor de Controle Externo - Informática
Prof Victor Dalton Aula 05
UPDATE Livro SET AUTOR = “Machado de Assis” WHERE ID = 1;

Após a execução destes comandos,

a) apenas o primeiro livro será incluído na tabela, pois o segundo livro está
utilizando o mesmo código de identificação, o que é restringido (CONSTRAINT)
para campos do tipo ID.

b) a coluna AUTOR do livro “Quincas Borba” será mantida com o valor


NULL, pois não foi informada a cláusula ALL para o comando UPDATE.

c) nenhuma alteração será efetuada no comando UPDATE, devido à falta da


cláusula TABLE antes do nome da tabela.

d) a coluna AUTOR conterá o texto “Machado de Assis” para ambos os


livros.

e) o comando de inserção do segundo livro irá falhar, pois colunas do tipo


VARCHAR não podem conter valores NULL sem que seja informada essa opção
na criação da tabela.

26ª Questão) (FCC – DPE/SP – Agente de Defensoria Pública –


Administrador de Banco de Dados - 2013) A cláusula LEFT JOIN em SQL
retorna todas as

a) colunas e apenas as linhas da tabela da esquerda que possuírem um


valor em comum na tabela da direita.

b) linhas e colunas da tabela da esquerda, desde que haja correspondência


na tabela da direita.
00428113176

c) linhas da tabela da esquerda, desde que haja uma correspondência na


tabela da direita, porém só retorna as colunas que possuam valores em comum.

d) linhas da tabela da esquerda, mesmo que não haja uma correspondência


na tabela da direita, porém só retorna as colunas que possuam valores em
comum.

e) linhas e colunas da tabela da esquerda, mesmo que não haja


correspondência na tabela da direita.

Prof. Victor Dalton


www.estrategiaconcursos.com.br 168 de 172

00428113176 - Rodrigo
Tecnologia da Informação para TCM/Goiás
Auditor de Controle Externo - Informática
Prof Victor Dalton Aula 05
27ª Questão) (FCC – DPE/SP – Agente de Defensoria Pública –
Administrador de Banco de Dados - 2013) São CONSTRAINTS SQL, EXCETO
a) FOREIGN KEY.
b) NOT NULL.
c) UNIQUE.
d) PRIMARY KEY.
e) UNION.

Para responder às duas próximas questões, utilize os comandos SQL


abaixo.

CREATE TABLE times (id INTEGER, nome VARCHAR(20),cidade


VARCHAR(20));
CREATE TABLE jogos (local VARCHAR(20), data VARCHAR(8), time1
INTEGER, time2 INTEGER, placar1 INTEGER, placar2 INTEGER);
INSERT INTO times VALUES(1, "santos fc", "santos");
INSERT INTO times VALUES(2, "palmeiras", "sao paulo");
INSERT INTO times VALUES(3, "guarani", "campinas");
INSERT INTO jogos VALUES("campinas", "20100504", 3, 1, 0, 2);
INSERT INTO jogos VALUES("santos", "20101220", 1, 2, 1, 1);
INSERT INTO jogos VALUES("campinas", "20110210",3,2,0,0);

28ª Questão) (FCC – DPE/SP – Agente de Defensoria Pública –


Administrador de Banco de Dados - 2013) Analise a impressão do resultado
de uma query SQL efetuada após a execução dos comandos descritos (note que
no exemplo as colunas estão separadas pelo símbolo | barra vertical).

campinas | guarani | 0 | 2 | santos fc


santos | santos fc | 1 | 1 | palmeiras
campinas | guarani | 0 | 0 | palmeiras
00428113176

A query SQL capaz de produzir este resultado é

a) SELECT local,(SELECT nome FROM times WHERE id =


a.time1),placar1,placar2,(SELECT nome FROM times WHERE id = a.time2) FROM
jogos a;

b) SELECT * FROM jogos a, times b WHERE a.local, b.nome CASE b.id =


a.time1, a.placar1, a.placar2, b.nome CASE b.id = a.time2;

c) SELECT local, nome, placar1, placar2, nome FROM jogos INNER JOIN
times;

Prof. Victor Dalton


www.estrategiaconcursos.com.br 169 de 172

00428113176 - Rodrigo
Tecnologia da Informação para TCM/Goiás
Auditor de Controle Externo - Informática
Prof Victor Dalton Aula 05

d) SELECT a.local, b.nome, a.placar1, a.placar2, c.nome FROM jogos a,


(SELECT nome FROM times WHERE id = a.time1) b, (SELECT nome FROM times
WHERE id = a.time2) c;

e) SELECT local, CASE a.time1 = b.id THEN nome, placar1, placar2, CASE
a.time2 = b.id THEN nome FROM jogos a, times b;

29ª Questão) (FCC – DPE/SP – Agente de Defensoria Pública –


Administrador de Banco de Dados - 2013) Para a impressão do seguinte
resultado:

Vitória Time 2
Empate
Empate

a query que poderá ser utilizada é

a) SELECT (SELECT "Vitória time 1" WHERE placar1 > placar2, SELECT
"Vitória time 2" WHERE placar2 > placar1, SELECT "Empate" WHERE placar1 =
placar2) FROM jogos;

b) SELECT v FROM jogos COALESCE("Vitória time 1", "Vitória Time 2",


"Empate") as V IN(placar1 > placar2,placar2 > placar1,placar1 = placar2);

c) SELECT "Vitória time 1" WHERE placar1 > placar2, "Vitória Time 2"
WHERE placar2 > placar1, "Empate" WHERE placar1 = placar2 FROM jogos;

d) SELECT nome FROM jogos WHERE nome IN (CASE WHEN placar1 >
placar2 THEN "Vitória time 1" WHEN placar2 > placar1 THEN "Vitória time 2"
ELSE "Empate" END); 00428113176

e) SELECT CASE WHEN placar1 > placar2 THEN "Vitória time 1" WHEN
placar2 > placar1 THEN "Vitória Time 2" ELSE "Empate" END AS T1 FROM jogos;

30ª Questão) (FCC – TRT/1ª Região – Analista Judiciário –


Tecnologia da Informação – 2014) Considere a seguinte consulta em SQL
sobre uma base de dados:

SELECT Produto
FROM Lista
WHERE Produto LIKE “c%a”

Prof. Victor Dalton


www.estrategiaconcursos.com.br 170 de 172

00428113176 - Rodrigo
Tecnologia da Informação para TCM/Goiás
Auditor de Controle Externo - Informática
Prof Victor Dalton Aula 05

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.

31ª Questão) (FCC – TCE/RS – Auditor Público Externo – Técnico em


Procesamento de Dados – 2014) Sejam as seguintes tabelas de um banco de
dados relacional:

Processo (IDProcesso, Tipo, Data)


Interessado (IDInteressado, NomeInteressado, Endereço)
Contem (IDProcesso, IDInteressado)

Considere que IDProcesso e IDInteressado são chaves estrangeiras na


tabela Contem, com origem nas chaves primárias das tabelas Processo e
Interessado, respectivamente. Um técnico em Processamento de Dados do TCE-
RS, ficou com a tarefa de escrever uma consulta SQL para obter o tipo do
processo e seus interessados, com a condição de que o tipo de processo seja de
‘gestão’. O comando correto que expressa o tipo dos processos e o nome dos
interessados é

(A) SELECT P.Tipo, I.NomeInteressado


FROM Processo P, Interessado I
WHERE DISTINCT (IDProcesso, IDInteressado) AND P.Tipo = ‘gestão;

(B) SELECT P.Tipo, I.NomeInteressado


00428113176

FROM Processo P, Interessado I


WHERE P.Tipo = ‘gestão;

(C) SELECT P.Tipo, I.NomeInteressado


FROM Processo P, Interessado I, Contem C
WHERE P.IDProcesso = C.IDProcesso AND I.IDInteressado =
C.IDInteressado AND P.Tipo = ‘gestão’; - certa

(D) SELECT P.Tipo, I.NomeInteressado


FROM Processo P, Interessado I, Contem C
WHERE ID-Processo(P,C) AND IDInteressado(I,C) AND P.Tipo = ‘gestão;

Prof. Victor Dalton


www.estrategiaconcursos.com.br 171 de 172

00428113176 - Rodrigo
Tecnologia da Informação para TCM/Goiás
Auditor de Controle Externo - Informática
Prof Victor Dalton Aula 05
(E) SELECT P.Tipo, I.NomeInteressado
FROM Processo P, Interessado I, Contem C
WHERE ALL IDProcesso AND ALL IDInteressado AND P.Tipo = ‘gestão;

GABARITO

1.e 2.a 3.a 4.b 5.d 6.a 7.c 8.d 9.b 10.e
11.e 12.a 13.c 14.e 15.d 16.b 17.a 18.c 19.a 20.d
21.e 22.e 23.d 24.c 25.a 26.b 27.a 28.d 29.c 30.b
31.a 32.e 33.b 34.e 35.d 36.d 37.a 38.b 39.a 40.d
41.a 42.c 43.b 44.c 45.e 46.c 47.d 48.a 49.d 50.b
51.a 52.b 53.c 54.e 55.d 56.a 57.a 58.d 59.d

GABARITO SQL

1.b 2.c 3.e 4.d 5.b 6.e 7.b 8.a 9.c 10.e
11.c 12.c 13.e 14.c 15.e 16.e 17.e 18.e 19.c 20.e
21.c 22.d 23.b 24.a 25.d 26.e 27.e 28.a 29.e 30.d
31.c

00428113176

Prof. Victor Dalton


www.estrategiaconcursos.com.br 172 de 172

00428113176 - Rodrigo