Você está na página 1de 122

Bancos de dados

para concursos

Questes comentadas
Handbook de Questes de TI Comentadas para Concursos Volume questes de TI

Prefcio

Banco de Dados um dos conceitos mais importantes de Cincia da Computao. Ele agrupa
informaes utilizadas para um mesmo m, ou melhor, podemos entender um banco de dados
como um conjunto de informaes estruturadas e que podem ser organizadas para facilitar ope-
raes como insero, busca e remoo. Em geral, um software responsvel em gerenciar a
estrutura dessas informaes e as operaes que nelas possam ser realizadas.

Devido a sua grande importncia, torna-se, sem dvida, um dos assuntos mais cobrados nos
concursos de TI. Ligado na importncia do assunto, o Grupo Handbook de TI preparou este
volume, que traz uma srie de questes comentadas sobre Banco de Dados para voc se preparar
muito bem nessa rea.

Bons estudos,

Grupo Handbook de TI

Pgina 1 de 120
www.handbookdeti.com.br
Handbook de Questes de TI Comentadas para Concursos Volume questes de TI

Direitos Autorais

Este material registrado no Escritrio de Direitos Autorais (EDA) da Fundao Biblioteca


Nacional. Todos os direitos autorais referentes a esta obra so reservados exclusivamente aos
seus autores.

Os autores deste material no probem seu compartilhamento entre amigos e colegas prxi-
mos de estudo. Contudo, a reproduo, parcial ou integral, e a disseminao deste material de
forma indiscriminada atravs de qualquer meio, inclusive na Internet, extrapolam os limites da
colaborao. Essa prtica desincentiva o lanamento de novos produtos e enfraquece a comuni-
dade concurseira Handbook de TI.

A srie Handbook de Questes de TI Comentadas para Concursos  Alm do Gabarito uma


produo independente e contamos com voc para mant-la sempre viva.

Grupo Handbook de TI

Pgina 2 de 120
www.handbookdeti.com.br
Handbook de Questes de TI Comentadas para Concursos Volume questes de TI

Canais de Comunicao

O Grupo Handbook de TI disponibiliza diversos canais de comunicao para os concurseiros


de TI.

Loja Handbook de TI

Acesse a nossa loja virtual em http://www.handbookdeti.com.br

Servio de Atendimento

Comunique-se diretamente conosco atravs do e-mail faleconosco@handbookdeti.com.br

Twitter do Handbook de TI

Acompanhe de perto promoes e lanamentos de produtos pelo nosso Twitter http://twitter.


com/handbookdeti

Pgina 3 de 120
www.handbookdeti.com.br
Handbook de Questes de TI Comentadas para Concursos Volume questes de TI

1. Assuntos relacionados: Banco de Dados, SGBD, Dicionrio de Dados (DD),


Banca: CESGRANRIO
Instituio: BNDES
Cargo: Analista de Suporte
Ano: 2008
Questo: 34
O catlogo (ou dicionrio de dados) de um Sistema Gerenciador de Bancos de Dados Rela-
cional

(a). visa a propiciar o acesso rpido a dados com um determinado valor.

(b). um item opcional do banco de dados, que pode ser removido caso o usurio
deseje.

(c). raramente utilizado, sendo sua organizao pouco inuente no desempenho do


sistema.

(d). contm informaes descritivas sobre os diversos objetos do sistema.

(e). tem seus dados organizados segundo um esquema hierrquico, para maior ecincia
no acesso.

Soluo:
O dicionrio de dados (DD) a parte do sistema gerenciador de bancos de dados (SGBD)
responsvel por armazenar informaes sobre a estrutura geral do banco de dados, incluindo
cada um dos seus elementos de dados. Tais informaes so conhecidas como metadados.
Diz-se que o DD um banco de dados sobre o banco de dados.

No contexto dos bancos de dados relacionais, exemplos de elementos de dados so tabe-


las, colunas, relacionamentos, ndices, entre outros. No DD so armazenados os nomes das
tabelas, os relacionamentos entre elas, bem como os nomes das colunas, os tipos e os dom-
nios de dados.

Alm de informaes estruturais, o DD tambm armazena informaes de segurana, que


indicam as permisses de acesso aos elementos de dados, assim como informaes fsicas,
indicando onde e como os dados so armazenados. Elementos como funes e stored proce-
dures tambm so armazenados nos dicionrios de dados do SGBD.

As implementaes de dicionrio de dados podem variar de acordo com a tecnologia do


SGBD. No caso dos bancos de dados relacionais, os dicionrios de dados, geralmente, so
implementados como tabelas. A forma como essas tabelas so indexadas e organizadas em
disco fator fundamental para o desempenho do banco de dados, pois elas so acessadas na
maior parte das operaes realizadas pelos SGBD.

Pgina 4 de 120
www.handbookdeti.com.br
Handbook de Questes de TI Comentadas para Concursos Volume questes de TI

2. Assuntos relacionados: Banco de Dados, Oracle,


Banca: FCC
Instituio: TRT 15a Regio
Cargo: Analista Judicirio - Tecnologia da Informao
Ano: 2009
Questo: 30
Cada database Oracle tem

I um ou mais datales.

II um control le.

III um conjunto de dois ou mais redo log les.

Est correto o que consta em

(a). I, II e III.

(b). I, somente.

(c). II, somente.

(d). I e II, somente.

(e). I e III, somente.

Soluo:
A resposta da questo a alternativa A. Primordialmente, um banco de banco Oracle
formado por trs tipos de arquivos que so: datales, redo log les e control les.

Um banco de dados Oracle contm uma ou mais unidades lgicas de armazenamento cha-
madas tablespaces, que coletivamente armazenam os dados do banco de dados. Cada ta-
blespace, por sua vez, consiste de um ou mais arquivos chamados datales, que so arquivos
fsicos estruturados de acordo com o sistema operacional em que o Oracle est rodando.

Os Redo Log Files armazenam os logs do sistema. Esse arquivo consiste de um buer
circular assim como o redo log buer, que mantido em memria pelo Oracle. A funo pri-
mria dos redo log les armazenar toda e qualquer mudana realizada nos dados do banco
de dados. Se houver alguma falha, como o corrompimento de um datale, as informaes
podem ser recuperadas utilizando o redo log les e os datales de backup.

O Oracle grava os redo log les de forma circular. Isto signica que, quando o arquivo
redo log le atual ca cheio o banco de dados passa para o prximo arquivo redo. Quando
o ltimo arquivo do redo log le for preenchido o banco de dados volta para o primeiro,
apagando informaes j existentes e continuando o ciclo. Para que no se percam infor-
maes quando o ciclo for reiniciado, os arquivos de redo so arquivados periodicamente. A
quantidade de arquivos de redo utilizados e a frequncia do processo de arquivamento devem
ser denidas de acordo com as caractersticas do banco de dados, de modo que dados no
sejam perdidos e nem seja prejudicado o desempenho do sistema.

J os Control Files servem para descrever a estrutura e o status do banco de dados. So eles
que contm a identicao dos arquivos de log e de dados, o nome do banco e informaes de
sincronismo entre os arquivos que o compe. Como regra geral, cada banco de dados Oracle
possui um nico control le associado. No entanto, o Oracle possui um recurso chamado
multiplexed control les, que permite o armazenamento de mltiplas cpias do control le

Pgina 5 de 120
www.handbookdeti.com.br
Handbook de Questes de TI Comentadas para Concursos Volume questes de TI

em vrios discos diferentes, com o objetivo proporcionar redundncia.

Embora na arquitetura do Oracle o banco de dados seja composto somente por esses trs
arquivos, uma srie de outros arquivos so importantes para colocar uma instncia no ar.
Exemplos desses arquivos so:

Parameter File: Arquivo texto que contm todos os parmetros necessrios para colocar
uma instncia do Oracle no ar, por exemplo, quantidade de memria alocada para o
SGA, nome e localizao de arquivos de controle, tamanho de buers e de blocos etc;

Alert File: Arquivo de log onde so registrados os erros ocorridos (processo, blocos
corrompidos, deadlock etc.), tarefas administrativas alm dos valores de parmetros de
inicializao no momento em que a instncia colocada no ar;

Trace File: Arquivo de log onde so armazenadas informaes detalhadas sobre os


problemas ocorridos. A utilizao desse arquivo opcional.

Pgina 6 de 120
www.handbookdeti.com.br
Handbook de Questes de TI Comentadas para Concursos Volume questes de TI

3. Assuntos relacionados: Banco de Dados, Oracle,


Banca: FCC
Instituio: TRT 15a Regio
Cargo: Analista Judicirio - Tecnologia da Informao
Ano: 2009
Questo: 31
So apenas tipos de objetos de um schema Oracle:

(a). table, index, cluster e prole.

(b). table, index, cluster e view.

(c). table, tablespace, index e cluster.

(d). tablespace, index, cluster e directory.

(e). tablespace, index, cluster e view.

Soluo:
Conceitualmente, um schema uma estrutura lgica, criada pelos usurios, utilizada para
conter ou referenciar os seus dados. importante lembrar que, boa parte, mas nem todos
SGBDs, utilizam o conceito de schema.

No caso do Oracle, exemplos de objetos que so armazenados em um schema so tabe-


las, vises, ndices e clusters. No Oracle, no h relao entre os tablespaces e o schema,
de modo que objetos do mesmo schema podem estar em diferentes tablespaces, e um nico
tablespace podem conter objetos de diferentes schemas. Portanto, a resposta da questo a
alternativa B. Agora, vamos aproveitar a questo para rever algumas denies importantes
sobre os bancos de dados Oracle.

Table

Uma table (tabela) uma unidade bsica de armazenamento do banco de dados Ora-
cle, e so elas que contm possuem todos os dados acessveis pelos usurio. Cada
tabela formada por um conjunto de colunas, cada um uma delas com um nome (ID,
FULLNAME, BIRTHDAY etc) e um tipo de dado (NUMBER, VARCHAR2, DATE
etc) associados. Uma linha (row) da tabela formada pelas informaes das colunas e
corresponde a um registro nico do banco de dados. Os usurios podem ainda especi-
car regras, chamadas restries de integridade, para cada uma das colunas das tabelas.
Um exemplo tpico de regra restrio de integridade NOT NULL, que fora a coluna
a conter um valor em todas as linhas.

Views

As views (vises) so apresentaes customizadas de dados de uma ou mais tabelas ou


outras views. Um view pode ser considerada uma query de armazenamento. De modo
geral, as views no contm dados, sendo os dados por ela apresentados derivados das
chamadas base tables (tabelas base). Existem tipos especiais de views, as materia-
lized views, que contm dados de fato. Esse tipo de view geralmente utilizada para
aumentar o desempenho de determinadas consultas.

As views so utilizadas geralmente para responder a consultas, e tambm para propor-


cionar um nvel adicional de segurana, restringido acesso a determinados conjunto de

Pgina 7 de 120
www.handbookdeti.com.br
Handbook de Questes de TI Comentadas para Concursos Volume questes de TI

linhas e colunas de uma tabela. No entanto, as views tambm podem ser denidas para
aceitar inseres, atualizaes e excluses. Nesses casos, todas as operaes efetuadas
na view afetam tambm as base tables.

Index

Os indexes (ndices) so estruturas de dados utilizadas para melhorar o desempenho


das operaes sobre uma tabela do banco de dados. Os ndices podem ser criados com
base em uma ou mais colunas da tabela, sendo essa denio baseada nas consultas
que o SGBD ter que responder com ecincia.

No Oracle, os ndices mais populares so baseados em rvores B (b-trees) e nos mapas


de bits (bitmaps), sendo que a melhor escolha depende do tipo de dado a ser indexado
e, primordialmente, do perl de operaes da aplicao. Um timo teste compara-
tivo entre os ndices b-tree e bitmap do Oracle pode ser vista no estudo disponvel em
http://www.oracle.com/technology/pub/articles/sharma_indexes.html.

Embora sirvam para aumentar o desempenho das operaes sobre as tabelas, o que
positivo, os ndices tambm possuem aspectos negativos, como o consumo de espao e
a diminuio do desempenho das operaes de insero dados, j que, alm das tabe-
las, os ndices precisam ser atualizados. Portanto, os ndices no devem ser utilizados
indiscriminadamente, mas apenas nos casos em que os seus benefcios superem seus
aspectos negativos.

Cluster

Os clusters (agrupamentos) so grupos de duas ou mais tabelas que so sicamente


armazenados prximas umas das outras, de modo a proporcionar maior desempenho
das operaes que referenciem ambas as tabelas. Assim como os ndices, os clusters
no afetam a lgica da aplicao. O fato de uma tabela pertencer ou no a um clus-
ter transparente para o usurio, sendo relevante apenas para ns de desempenho da
aplicao.

Por m, vamos falar um pouco sobre o conceito de Proles (pers) do Oracle, que foi men-
cionado na alternativa A da questo.

O prole um recurso do Oracle que permite denir limites de utilizao de recursos do


sistema e parmetros de segurana para os usurios do SGBD. Quando um usurio criado,
por padro ele recebe o prole Default, que d acesso ilimitado aos recursos do sistema.
Para limitar o acesso do usurio aos recursos, necessrio criar um prole e associ-lo ao
usurio. Alguns exemplos de parmetros (cujos nomes so auto-explicativos) que podem ser
controlados atravs de prole so mostrados a seguir.

Pgina 8 de 120
www.handbookdeti.com.br
Handbook de Questes de TI Comentadas para Concursos Volume questes de TI

Parmetros de Recursos

[SESSIONS_PER_USER n|UNLIMITED|DEFAULT]
[CPU_PER_SESSION n|UNLIMITED|DEFAULT]
[CPU_PER_CALL n|UNLIMITED|DEFAULT]
[CONNECT_TIME n|UNLIMITED|DEFAULT]
[IDLE_TIME n|UNLIMITED|DEFAULT]
[LOGICAL_READS_PER_SESSION n|UNLIMITED|DEFAULT]
[LOGICAL_READS_PER_CALL n|UNLIMITED|DEFAULT]
[COMPOSITE_LIMIT n|UNLIMITED|DEFAULT]
[PRIVATE_SGA n [K|M]|UNLIMITED|DEFAULT]

Parmetros de Password

[FAILED_LOGIN_ATTEMPTS expr|UNLIMITED|DEFAULT]
[PASSWORD_LIFE_TIME expr|UNLIMITED|DEFAULT]
[PASSWORD_REUSE_TIME expr|UNLIMITED|DEFAULT]
[PASSWORD_REUSE_MAX expr|UNLIMITED|DEFAULT]
[PASSWORD_LOCK_TIME expr|UNLIMITED|DEFAULT]
[PASSWORD_GRACE_TIME expr|UNLIMITED|DEFAULT]
[PASSWORD_VERIFY_FUNCTION function_name|NULL|DEFAULT]

Pgina 9 de 120
www.handbookdeti.com.br
Handbook de Questes de TI Comentadas para Concursos Volume questes de TI

4. Assuntos relacionados: Banco de Dados, Oracle,


Banca: FCC
Instituio: TRT 15a Regio
Cargo: Analista Judicirio - Tecnologia da Informao
Ano: 2009
Questo: 32
NO um processo do tipo background contido em uma instncia Oracle:

(a). system monitor process.

(b). checkpoint process.

(c). archiver process.

(d). server process.

(e). recoverer process

Soluo:
O Oracle possui trs tipos bsicos de processo que so: processos User, processos server e
processos em background. Com isso, a resposta da questo alternativa D, server process.
Agora, vamos conhecer um pouco mais dos processos do Oracle.

Os processos server recebem as requisies dos processos user, realizam o parse das ins-
trues SQL, vericam as permisses de acesso do usurio, traz os dados do disco para o
DBBC, caso necessrio, e retorna os dados para o usurio. Um processo server pode ser de-
dicado para um processo user (dedicated server process) ou compartilhado entre mltiplos
processos user (shared server process). Os processos server compartilhados s so possveis
em sistemas multithreaded.

As funes desempenhadas pelos processos user so se conectar com os processos server,


enviar instrues SQL e receber os resultados. Caso o servidor suporte processos server
compartilhados, diversos processos server podem ser atendidos por um mesmo processo ser-
ver.

J os os processo em background no realizam nenhuma comunicao com os processos


user. Os processos em backgound so responsveis pelas tarefas de apoio para garantir o
funcionamento do sistema de gerenciamento de banco de dados como um todo. Um sistema
Oracle tem inmeros processos em background, porm apenas 4 deles so obrigatrios. So
eles:

Process Monitor (PMON): Realiza a recuperao quando algum processo falha, alm
de liberar o cache, locks e demais recursos que o processo estava utilizando;

System Monitor (SMON): Realiza o processo de recuperao da instncia durante o


processo de inicializao, limpa segmentos temporrios que no esto mais em uso, re-
cupera transaes terminadas de forma anormal e realiza desfragmentao nos arquivos
de dados para facilitar a alocao;

Database Writer (DBWR): A funo principal do DBWR escreve os blocos de dados


modicados (dirty) do DBBC para o disco. Isso feito nas seguintes situaes: (i)
quando a lista de blocos modicados atinge um tamanho congurado; (ii) quando o
processo percorre um quantidade congurada de blocos e no encontra nenhum bloco
livre; (iii) quando ocorre um timeout; (iv) quando ocorre um checkpoint ou (v) quando

Pgina 10 de 120
www.handbookdeti.com.br
Handbook de Questes de TI Comentadas para Concursos Volume questes de TI

o DBWR recebe um sinal do processo LGWR. Dessa forma, o processo DBWR alm de
garantir que as alteraes feitas em buer sero persistidas, tambm gerencia o espao
em buer para melhorar o desempenho do banco;

Log Writer (LGWR): o responsvel por copiar as informaes do redo log buer para
o o redo log le (arquivo de log com a mesma estrutura do redo log buer). O LGWR
tambm responsvel por atualizar os headers dos arquivos de dados quando ocorre
um checkpoint. O LGWR disparado nas seguintes situaes: (i) quando ocorre um
commit; (ii) quando ocorre um checkpoint; (iii) quando ocorre um timeout ou (iv)
quando o redo log buer atinge um tero de sua capacidade.

Alm desses quatro, o Oracle possui uma srie de outros processos em background que so
de instalao e uso opcionais. Os mais importantes so os seguintes:

CKPT: Atualiza os headers dos arquivos de dados quando ocorre um checkpoint. A


utilizao desse processo pode ajudar a melhorar o desempenho do sistema permitindo
que o processo LGWR se concentre apenas na cpia do redo log buer para o disco;

RECO: Responsvel pela recuperao de falhas envolvendo transaes distribudas.


Esse processo necessrio quando o Oracle est rodando de forma distribuda;

ARCH: Responsvel por copiar o redo log le (que um buer circular) para um
dispositivos de armazenamento oine para que os logs no sejam perdidos;

Pnnn: Processo responsvel pela execuo de consultas paralelas;

SNPn: Controla a replicao de objetos dos banco de dados em outro site. Essas cpias
so chamadas snapshots. Esse processo pode ser escalonado para executar periodica-
mente;

LCKn: Realiza o controle de locks entre mltiplas instncias;

Dnnn: Esse processo funciona como um dispatcher quando o sistema est utilizando
processos server compartilhados. necessrio um dispatcher para cada protocolo de
comunicao utilizado.

Pgina 11 de 120
www.handbookdeti.com.br
Handbook de Questes de TI Comentadas para Concursos Volume questes de TI

5. Assuntos relacionados: Oracle, SQL,


Banca: FCC
Instituio: TRT 16a Regio
Cargo: Analista Judicirio - Tecnologia da Informao
Ano: 2009
Questo: 25
Os programas PL/SQL so constitudos por blocos que executam operaes lgicas e cada
bloco tem trs partes que denem as:

I. declaraes de variveis e itens.

II. instrues procedurais e SQL.

III. instrues de tratamento de erros.

No bloco obrigatria a presena da seo que se arma em

(a). I e II, apenas.

(b). II e III, apenas.

(c). I, II e III

(d). I, apenas.

(e). II, apenas.

Soluo:
A linguagem PL/SQL uma linguagem procedural da Oracle. Ela uma extenso da lin-
guagem SQL padro. Ela serve para criar programas complexos e poderosos, no s para o
banco de dados, mas tambm em diversas ferramentas Oracle.

Os blocos de PL/SQL so processados por um uma PL/SQL Engine, que ltra os comandos
SQL e os manda individualmente para o SQL Statement Executor no Oracle Server.

A unidade bsica de um programa PL/SQL um bloco, que possui a seguinte estrutura:

DECLARE

Seo para declarao de variveis, tipos e subprogramas locais.

BEGIN

Seo executvel. Nesta seo, cam as instrues procedurais e SQL. Esta a nica seo
do bloco que indispensvel e obrigatria.

EXCEPTION

Seo onde cam as instrues de tratamento de erro.

Por denio, apenas a seo executvel requerida. As outras sees so opcionais. Logo,
somente a armativa II est correta e alternativa a ser marcada a letra E.

Aprofundando mais na linguagem, podemos dizer que as nicas instrues SQL que so
permitidas em um programa PL/SQL so SELECT, INSERT, UPDATE, DELETE e vrias

Pgina 12 de 120
www.handbookdeti.com.br
Handbook de Questes de TI Comentadas para Concursos Volume questes de TI

outras instrues de manipulao de dados e de controle de transao. Alm disso, PL/SQL


no caso sensitivo, ou seja, no diferencia maisculas de minsculas.

Instrues de denio de dados como CREATE, DROP ou ALTER no so permitidas. A


seo executvel, citada anteriormente, tambm contm construes tais como atribuies,
desvios, loops, chamadas a procedimentos e triggers. A capacidade de usar laos(loops)
uma das principais diferenas entre SQL e PL/SQL.

A instruo SELECT no PL/SQL funciona apenas se o resultado da consulta contm uma


nica tupla. Se a consulta retorna mais do que uma tupla, ser necessrio usar um cursor.
Um cursor uma varivel que itera sobre as tuplas de alguma relao. Essa relao pode
ser uma tabela armazenada ou pode ser a resposta para alguma consulta.

Enm, a linguagem PL/SQL possui mais recursos que o padro e visa fornecer mais exibi-
lidade e aproveita o poder das linguagens procedurais para o desenvolvimento de programas
complexos que envolvam acesso ao banco de dados Oracle.

Pgina 13 de 120
www.handbookdeti.com.br
Handbook de Questes de TI Comentadas para Concursos Volume questes de TI

6. Assuntos relacionados: Banco de Dados, Commit, Savepoint, Rolling Back, Rolling


Forward,
Banca: FCC
Instituio: TRT 18a Regio
Cargo: Analista Judicirio - Tecnologia da Informao
Ano: 2008
Questo: 46
Antes do Oracle terminar uma transao deve acontecer explicitamente uma operao de

(a). commit ou savepoint, apenas.

(b). commit ou rolling back, apenas.

(c). commit ou rolling forward, apenas.

(d). rolling back ou rolling forward, apenas.

(e). commit, rolling back, rolling forward ou savepoint.

Soluo:
Vamos, primeiramente, apresentar o que cada operao signica:

commit: operao que efetiva, no banco de dados, as alteraes (insert, delete e


update) realizadas em uma transao. Ou seja, as alteraes de uma transao somente
so enxergadas por outras transaes de outras sesses aps um commit. Veja abaixo
um exemplo de utilizao deste operador:

SQL> insert into alunos (matricula, nome) values (1, `Ricardo Vargas`);
1 row created.
SQL> commit;
Commit complete.
savepoint: marca um ponto (estado) na transao para onde se pode voltar com um
rollback. Portanto, em transaes mais complexas, se utiliza alguns savepoints para
marcar pontos para os quais seja possvel realizar rollback. Dessa forma, estrategica-
mente, apenas parte das alteraes da transao desfeita. Veja abaixo um exemplo
de utilizao deste operador:

SQL> insert into alunos (matricula, nome) values (2, `Diogo Gobira`);
1 row created.
SQL> savepoint estado_1;
Savepoint created.
SQL> insert into alunos (matricula, nome) values (3, `Andr Camatta`);
1 row created.
SQL> savepoint estado_2;
Savepoint created.
rolling back: em uma transao sem savepoints, esta operao desfaz todas as alte-
raes realizadas. J em um transao com savepoints, um rollback desfaz todas as
alteraes realizadas aps o ltimo savepoint (volta-se ao estado do ltimo savepoint).
Veja abaixo um exemplo de utilizao deste operador:

SQL> rollback to estado_1;


Rollback complete.

Pgina 14 de 120
www.handbookdeti.com.br
Handbook de Questes de TI Comentadas para Concursos Volume questes de TI

rolling forward: um recurso utilizado em caso de falha de banco de dados para que
o seu estado imediatamente antes da falha seja restabelecido. Durante o funcionamento
normal de um banco de dados, todas as informaes sobre operaes so armazenadas
em arquivos do tipo RedoFiles. Em situaes de falha, logo aps o banco de dados
voltar a operar, esses arquivos so lidos e, ento, as operaes so refeitas.

Como se pode concluir dos itens acima, as operaes savepoint e rolling forward no so
obrigatrios at o trmino de cada transao. Isso porque savepoint opcional e rolling
forward somente utilizado em casa do falha de bando de dados.

Tendo em vista o exposto, para que toda operao seja atmica e o banco de dados seja
mantido consistente, necessria ao nal de cada transao a execuo de um commit ou
um rollback. Portanto, a alternativa que deve ser escolhida a letra B.

Pgina 15 de 120
www.handbookdeti.com.br
Handbook de Questes de TI Comentadas para Concursos Volume questes de TI

7. Assuntos relacionados: Banco de Dados, PL/SQL,


Banca: FCC
Instituio: TRT 18a Regio
Cargo: Analista Judicirio - Tecnologia da Informao
Ano: 2008
Questo: 47
A estrutura de controle Iterao pode ser utilizada em PL/SQL com os comandos

(a). LOOP, CASE-LOOP, WHILE-LOOP e FOR-LOOP.

(b). LOOP, CASE-LOOP e WHILE-LOOP.

(c). LOOP, CASE-LOOP e FOR-LOOP.

(d). CASE-LOOP, WHILE-LOOP e FOR-LOOP.

(e). LOOP, WHILE-LOOP e FOR-LOOP.

Soluo:
PL/SQL o acrnimo para Procedural Language/Structured Query Language. Ou seja,
PL/SQL uma linguagem procedural que estende SQL. Ela foi desenvolvida pela Oracle
Corporation e, portanto, utilizada em banco de dados Oracle.

O surgimento da PL/SQL aconteceu em 1991 para o Oracle 6.0. Antes disso, os desen-
volvedores tinham que embutir instrues do tipo SQL nos cdigos-fonte procedurais (por
exemplo, dentro de cdigos C). Com o aparecimento da PL/SQL isso mudou. Todo o cdigo
procedural e tambm as instrues relacionadas ao banco podem ser escritos diretamente
em PL/SQL.

Essa linguagem suporta variveis, condies, loops, arrays, excees, funes e procedi-
mentos.

A estrutura bsica do PL/SQL chamada de bloco. Portanto, um programa escrito nessa


linguagem composto por blocos. Geralmente, um bloco desenvolvido para efetuar uma
ao lgica no programa. Cada bloco estruturado da seguinte forma:

DECLARE
Seo onde so feitas as declaradas locais: subprogramas e variveis
e seus tipos. Esta seo no obrigatria.
BEGIN
Seo que contm o que ser executado de fato: instrues procedurais
e SQL. Esta seo obrigatria.
EXCEPTION
Seo onde ficam as instrues de tratamento de erro. Esta seo
tambm no obrigatria.
END

Um exemplo bem bsico apresentado a seguir:

DECLARE
i NUMBER := 1;
BEGIN
LOOP

Pgina 16 de 120
www.handbookdeti.com.br
Handbook de Questes de TI Comentadas para Concursos Volume questes de TI

INSERT INTO T1 VALUES(i,i);


i := i+1;
EXIT WHEN i>100;
END LOOP;
END;

Especicamente com relao a estrutura de controle do tipo iterao, PL/SQL possui os se-
guintes recursos: LOOP, WHILE, FOR e Cursor FOR. Os trs primeiros so bem conhecidos
e geralmente esto presentes nas linguagem procedurais. J o quarto um tipo especial de
FOR em que uma varivel assume o lugar de registros de uma relao. Abaixo um exemplo
para facilitar o entendimento.

DECLARE
CURSOR cursor_person IS
SELECT person_code FROM people_table;
BEGIN
FOR RecordIndex IN cursor_person
LOOP
DBMS_OUTPUT.PUT_LINE(RecordIndex.person_code);
END LOOP;
END;

Nesta questo, a alternativa E a nica que traz apenas comandos PL/SQL relacionados a
controle de iterao. Portanto, essa a alternativa correta.

Pgina 17 de 120
www.handbookdeti.com.br
Handbook de Questes de TI Comentadas para Concursos Volume questes de TI

8. Assuntos relacionados: Banco de Dados, Triggers, Gatilhos,


Banca: Cesgranrio
Instituio: Petrobras
Cargo: Analista de Sistemas - Infraestrutura
Ano: 2008
Questo: 59
Para os gatilhos (triggers) utilizados em bancos de dados, so feitas as armativas a seguir.

I - Os triggers podem ser congurados para disparar antes ou aps a execuo de uma
ao de Update, Delete ou Insert em uma tabela.

II - A clusula When no comando Create Trigger vlida somente para triggers de nvel
de linha.

III - Os chamados triggers autnomos so executados como uma transao autnoma,


sendo que as modicaes no banco de dados por eles efetuadas podem ser conrmadas
ou revertidas, independente do estado da instruo que desencadeou a chamada do
trigger.

Est(o) correta(s) as armativas

(a). I, apenas.

(b). II, apenas.

(c). I e II, apenas.

(d). II e III, apenas.

(e). I, II e III.

Soluo:
Um gatilho (trigger) um tipo especial de procedimento armazenado (stored procedure )
que est associado a uma tabela, e executado pelo sistema de banco de dados automati-
camente quando um determinado evento ocorre para a tabela a qual o gatilho est associado.

Para um gatilho ser implementado em um banco de dados, duas exigncias devem ser satis-
feitas: i) especicar as condies sob as quais o gatilho deve ser executado; e ii) especicar as
aes que devem ser realizadas quando um gatilho for disparado. Por exemplo, suponha que
em vez de permitir saldos negativos em uma conta corrente, o banco crie condies para que
a conta seja zerada e o saldo negativo seja transferido para a conta emprstimo de mesmo
nmero que a conta corrente. Neste exemplo, a condio para o disparo do gatilho o saldo
negativo da conta corrente, e a ao a ser realizada a transferncia do saldo negativo para
a conta emprstimo.

CREATE
[DEFINER = {user | CURRENT_USER}]
TRIGGER trigger_name trigger_time trigger_event
ON table_name FOR EACH ROW trigger_stmt

Tabela 1: exemplo de CREATE TRIGGER em MySQL.

Os eventos no banco de dados que ativam um gatilho so os comandos de Linguagem de Ma-


nipulao de Dados (DML - Data Manipulation Language ): INSERT, DELETE e UPDATE.

Pgina 18 de 120
www.handbookdeti.com.br
Handbook de Questes de TI Comentadas para Concursos Volume questes de TI

Um gatilho criado utilizando a funo CREATE TRIGGER que especica a tabela a


qual est associado, a condio para ocorrncia do evento e o tipo de ao (nome da funo)
que ser executada com o evento. A sintaxe da funo CREATE TRIGGER no MySQL e
no Postgree apresentada na Tabela 1 e na Tabela 2, respectivamente. Note que os sistemas
de bancos de dados possuem seus prprios recursos de gatilho no padronizados.

A seguir, explicamos cada um dos parmetros:

DEFINER: clusula opcional para denir o usurio para criar o gatilho;

trigger_name: dene o nome do gatilho;

trigger_time: dene se o gatilho ser ativado antes (BEFORE) ou depois (AFTER)


do comando que o disparou;

trigger_event: dene qual ser o evento: INSERT, DELETE ou UPDATE. Podem ser
especicados vrios eventos utilizando OR;

table_name: nome da tabela cujos eventos podem disparar o gatilho;

trigger_stm: uma funo fornecida pelo usurio, declarada como no recebendo ne-
nhum argumento e retornando o tipo TRIGGER, que executada quando o gatilho
dispara;

FOR EACH ROW / FOR EACH STATEMENT: especica se o procedimento do ga-


tilho deve ser disparado uma vez para cada linha afetada pelo evento do gatilho, ou
apenas uma vez por comando SQL;

arguments: uma lista opcional de argumentos, separados por vrgula, a serem fornecidos
para a funo quando o gatilho for executado.

O gatilho pode ser especicado para disparar antes (BEFORE) de realizar uma operao
na linha (antes das restries serem vericadas e os respectivos comandos de DML serem
executados), ou aps a operao estar completa (aps as restries serem vericadas e os res-
pectivos comandos terem completado). Se o gatilho for disparado antes do evento, o gatilho
pode fazer com que a operao no seja realizada para a linha corrente, ou pode modicar
a linha sendo inserida. Se o gatilho for disparado depois (AFTER) do evento, todas as mu-
danas, incluindo a ltima insero, atualizao ou excluso, estaro visveis para o gatilho.

Um gatilho que est marcado FOR EACH ROW chamado uma vez para cada linha que
a operao modica. Diferentemente, um gatilho que est marcado FOR EACH STATE-
MENT somente executa uma vez para uma determinada operao, no importando quantas
linhas foram modicadas. Em particular, uma operao que no modica nenhuma linha
ainda assim resulta na execuo de todos os gatilhos FOR EACH STATEMENT aplicveis.

CREATE TRIGGER trigger_name {BEFORE | AFTER} {trigger_event [OR...]}


ON table_name [ FOR [ EACH ] { ROW | STATEMENT }]
EXECUTE PROCEDURE trigger_stm (arguments)

Tabela 2: exemplo de CREATE TRIGGER em Postgree.

Os gatilhos so usados com enorme ecincia para impor e manter integridade referencial
de baixo nvel, e no para retornar resultados de consultas. A principal vantagem que eles
podem conter uma lgica de processamento complexa.

Os sistemas de bando de dados possuem algumas restries em relao aos gatilhos:

Pgina 19 de 120
www.handbookdeti.com.br
Handbook de Questes de TI Comentadas para Concursos Volume questes de TI

No se pode chamar diretamente um gatilho;

No permitido iniciar ou nalizar transaes em meio a execuo de um gatilho;

No se pode criar um gatilho para uma tabela temporria ou para uma viso;

No possvel criar gatilhos para o comando SELECT, pois este comando no modica
nenhuma linha.

Com base no explicado anteriormente, analisaremos as armaes da questo:

I - Os triggers podem ser congurados para disparar antes ou aps a execuo de uma
ao de UPDATE, DELETE ou INSERT em uma tabela. Isso especicado no comando
CREATE TRIGGER com os parmetros BEFORE ou AFTER, respectivamente. Portanto,
armativa correta.

II - Conforme apresentamos, a clusula WHEN no est presente no comando CREATE


TRIGGER para o MySQL e PostgreeSQL. Entretanto, no Oracle SQL e SQLite possvel
utilizar a clusula WHEN no comando CREATE TRIGGER. Quando a condio da clu-
sula WHEN vlida, o gatilho executado para cada linha modicada, isto , a execuo
do gatilho ocorre em nvel de linha. Portanto, alternativa correta.

III - Os triggers autnomos (autonomous triggers ) esto presentes no sistema de banco


de dados Oracle SQL. Diferente dos triggers normalmente existentes nos sistemas de banco
de dados, os triggers autnomos so executados como uma transao autnoma. Por meio
das transaes autnomas, um trigger pode conter comandos de controle de transao como
COMMIT e ROLLBACK. Com os comandos COMMIT E ROLLBACK as modicaes no
banco de dados efetuadas por um gtilho podem ser conrmadas ou revertidas, independente
do estado da instruo que desencadeou a chamada do trigger. Os triggers autnomos tam-
bm podem executar comandos de Linguagem de Denio de Dados( DDL - Data Denition
Language ). Portanto, armativa correta.

Todas as armativas feitas esto corretas. Logo, a resposta desta questo a letra E.

Pgina 20 de 120
www.handbookdeti.com.br
Handbook de Questes de TI Comentadas para Concursos Volume questes de TI

9. Assuntos relacionados: Banco de Dados, SQL, Transact SQL,


Banca: ESAF
Instituio: Superintendncia de Seguros Privados (SUSEP)
Cargo: Analista Tcnico da SUSEP - Tecnologia da Informao
Ano: 2010
Questo: 33
Em relao s operaes em bancos de dados SQL, correto armar que

(a). o Transact-SQL no permite alterar a credencial de login.

(b). o Transact-SQL permite redenir a senha desde que seja fornecida a senha antiga.

(c). para executar consultas de Transact-SQL pode-se emitir instrues ao se iniciar o


SQL/CMD.

(d). pode-se criar bancos de dados utilizando-se Transact-SQL, por meio do comando
START DATABASE.

(e). pode-se restaurar bancos de dados utilizando-se Transact-SQL, por meio dos co-
mandos REUSE DATABASE e RESET BLOG.

Soluo:
A Structured Query Language, ou SQL uma linguagem de banco de dados desenvolvida
para gerenciar dados em Sistemas de Gerncia de Banco de Dados Relacional (RDBMS), e
foi originalmente baseada em lgebra relacional. Seu escopo inclui insero, remoo, con-
sulta de dados, criao e modicao de esquemas e controle de acesso a dados.

SQL uma linguagem declarativa, ao contrrio de linguagens de programao como C ou


Pascal que so imperativas. Apesar de haver padres para o SQL (ANSI SQL92, SQL99 por
exemplo), a maioria das implementaes utilizam extenses que incluem funcionalidades de
linguagens de programao procedural, como controle de uxo, por exemplo.

Transact SQL ou TSQL a extenso proprietria Microsoft e Sybase do SQL. Para a uti-
lizao do T-SQL necessrio o Microsoft SQL Server. Toda aplicao que se comunique
com um SQL Server utiliza instrues T-SQL.

Entre as funcionalidades adicionais que o Transact SQL oferece em relao ao SQL, pode-se
citar: Controle de uxo, variveis locais, funes adicionais para tratamento de strings,
processamento de datas, funes matemticas etc.

a) ERRADO: uma credencial um registro que contm informaes de autenticao


necessrias para se conectar a servios fora do SQL Server. criada pelo comando
CREATE CREDENTIAL e as propriedades das credenciais podem ser alteradas pelo
comando ALTER CREDENTIAL. Uma credencial pode ser mapeada para um login
do SQL Server atravs do comando CREATE LOGIN;

b) ERRADO: transact-SQL permite redenir a senha atravs da instruo ALTER LO-


GIN. Para alterar senha de outros usurios necessrio a permisso ALTER ANY
LOGIN. Se o usurio atual tiver permisso CONTROL SERVER, ele no precisa in-
formar o antigo password;

c) CORRETO: o SQL/CMD um utilitrio que permite que instrues SQL e TSQL


sejam escritas e enviadas ao servidor SQL Server, inclusive consultas;

Pgina 21 de 120
www.handbookdeti.com.br
Handbook de Questes de TI Comentadas para Concursos Volume questes de TI

d) ERRADO: cria-se banco de dados atravs do comando CREATE DATABASE. START


DATABASE no um comando T-SQL;

e) ERRADO: o comando para restaurar backups o RESTORE. Ele permite restaurar


banco de dados inteiros, fazer restauraes parciais, apenas arquivos ou grupo de ar-
quivos de banco de dados. REUSE DATABASE e RESET BLOG no so comandos
T-SQL.

Pgina 22 de 120
www.handbookdeti.com.br
Handbook de Questes de TI Comentadas para Concursos Volume questes de TI

10. Assuntos relacionados: Banco de Dados, Modelo Entidade-Relacionamento,


Banca: CESGRANRIO
Instituio: Petrobras
Cargo: Analista de Sistemas - Eng. de Software
Ano: 2008
Questo: 24

Um modelo entidade-relacionamento foi reestruturado conforme mostrado na gura acima.


Concluiu-se que todos os usurios eram funcionrios, embora nem todos os funcionrios fos-
sem usurios. O modelo relacional derivado desse modelo conceitual possua originalmente
duas variveis de relao bsicas, com os mesmos nomes das entidades correspondentes,
tendo ambas EMAIL como chave primria. Considerando que a varivel de relao FUN-
CIONARIO no ser modicada e que a independncia de dados lgica ser honrada, a
varivel de relao USUARIO

(a). ter que manter todos os seus atributos originais.

(b). dispensar o uso de chaves candidatas.

(c). ser substituda por uma varivel de relao bsica e uma derivada.

(d). ser substituda por uma varivel de relao bsica, apenas.

(e). ser substituda por uma varivel de relao derivada, apenas.

Soluo:
O modelo entidade-relacionamento um padro para modelagem conceitual de banco de
dados. Na gura da questo, os objetos representados por retngulos so conjuntos de en-
tidades e os objetos representados por elipses so atributos.

Pgina 23 de 120
www.handbookdeti.com.br
Handbook de Questes de TI Comentadas para Concursos Volume questes de TI

Uma entidade um objeto que pode ser identicado de forma unvoca a todos os outros ob-
jetos. A entidade pode representar tanto algo concreto, como uma pessoa, ou algo abstrato,
como um emprstimo, por exemplo. Um conjunto de entidades rene todas as entidades de
um mesmo tipo, ou seja, que possuem as mesmas propriedades: atributos.

Os atributos so propriedades que descrevem cada entidade de um conjunto de entidades.


Dizemos ainda que cada entidade pode ter seu prprio valor para cada atributo. Exemplo:
uma determinada entidade que representa uma pessoa pode ter o valor Joo Assis para o
atributo nome e o nmero 2367727 para o atributo nmero de inscrio.

O modelo entidade-relacionamento pode descrever diversos outros objetos importantes para


a modelagem de banco de dados, como os conjuntos de relacionamentos, os atributos mul-
tivalorados e a participao de entidades em um conjunto de relacionamentos.

H, ainda, os conceitos de generalizao e especializao. Generalizao o resultado da


unio de dois ou mais conjuntos de entidades, produzindo um conjunto de entidades de nvel
mais alto. Por outro lado, especializao o resultado da separao de um subconjunto de
entidades, formando conjuntos de entidades de nvel mais baixo. A generalizao usada
para enfatizar as semelhanas entre entidades de nvel mais baixo e ocultar suas diferenas.
A especializao o inverso: ela enfatiza as diferenas entre as entidades.

Verica-se que, no primeiro modelo, existem duas entidades independentes com seus res-
pectivos atributos. A transformao realizada para se chegar ao segundo modelo conceitual
nada mais do que um processo de generalizao.

J o modelo relacional ao qual a questo se refere uma maneira de representar o banco


de dados logicamente, e no conceitualmente. No modelo relacional, os dados so represen-
tados como relaes matemticas, isto , como um subconjunto do produto cartesiano de
n conjuntos. Na etapa de transformao do modelo conceitual para o modelo lgico, ser
permitido ao projetista criar um modelo consistente da informao a ser armazenada por
meio do processo de normalizao, por exemplo.

No modelo relacional, uma varivel relacional, tambm conhecida como relvar, uma
varivel que representa uma relao. Para tornarmos a explicao bem simples, podemos
dizer que uma varivel relacional bsica representa uma tabela no SQL e uma varivel rela-
cional derivada representa uma viso ou o resultado de uma consulta.

O modelo relacional derivado do primeiro modelo entidade-relacionamento pode ser des-


crito da seguinte maneira:

Funcionario(email, nome)
Usuario(email, nome, login)

Segundo o enunciado, aps a generalizao, a varivel de relao Funcionario ser man-


tida sem modicaes. J, para a varivel de relao Usuario, criaremos uma nova varivel
de relao bsica da seguinte forma:

UsuarioTabela(email, login)

Pgina 24 de 120
www.handbookdeti.com.br
Handbook de Questes de TI Comentadas para Concursos Volume questes de TI

Isso pode ser feito, j que, na generalizao, foi criado um relacionamento de muitos-para-
um com a varivel de relao Funcionario. Sendo assim, o campo e-mail ser suciente
para representar o usurio na varivel de relao Funcionario. Note que, dessa maneira, a
independncia lgica ainda no est honrada, j que a varivel de relao UsuarioTabela
no possui a informao do atributo nome.

Para garantirmos a independncia lgica, precisamos criar uma varivel relacional deri-
vada que chamaremos de UsuarioVisao ou simplesmente Usuario. No SQL, essa varivel de
relao representar uma juno das tabelas geradas pelas variveis de relao bsica Fun-
cionario e UsuarioTabela e representar todos os usurios, mas, dessa vez, com o atributo
nome advindo da tabela que representa o conjunto de funcionrios.

Dada as explicaes imediatamente acima, a resposta correta a alternativa C.

Pgina 25 de 120
www.handbookdeti.com.br
Handbook de Questes de TI Comentadas para Concursos Volume questes de TI

11. Assuntos relacionados: Banco de Dados, Modelo Entidade-Relacionamento,


Banca: FCC
Instituio: TRT 2a Regio
Cargo: Analista Judicirio - Tecnologia da Informao
Ano: 2008
Questo: 39
Em um diagrama entidade relacionamento, uma situao de composio tal qual empregado
gerencia empregado, geralmente apresentada como

(a). entidade fraca.

(b). relacionamento associativo.

(c). auto relacionamento.

(d). relacionamento interativo.

(e). relacionamento restritivo.

Soluo:
A resposta da questo a alternativa C, auto relacionamento.

O Modelo de Entidades e Relacionamentos (MER) um modelo abstrato cuja nalidade


descrever, de maneira conceitual, os dados a serem utilizados no projeto de um sistema de
informao. A principal ferramenta do modelo o diagrama Entidade Relacionamento.

O primeiro conceito fundamental do MER o de entidade. Uma entidade corresponde


representao de todo e qualquer substantivo, concreto ou abstrato, sobre o qual precisa-
se armazenar e recuperar informaes. Em um sistema de vendas, por exemplo, algumas
entidades comuns seriam Vendas, Produtos e Clientes.

O segundo conceito fundamental o de relacionamento. No MER, um relacionamento


mostra como as entidades se relacionam entre si. Em um sistema de vendas, a entidade
Vendas estaria relacionada com a entidade Produtos, bem como com a entidade Clientes.

Os auto relacionamentos (tambm chamados relacionamentos recursivos) so casos espe-


ciais onde uma entidade se relaciona com si prpria. Apesar de serem relacionamentos
muito raros, a sua utilizao muito importante em alguns casos.

Os auto relacionamentos podem ser do tipo 1:1, 1:N ou N:M. Exemplos deste relacionamento
podem ser encontrados nas chamadas exploses de materiais, nas quais itens compostos
so formados por muitos itens componentes. Os itens compostos, por sua vez, podem ser
componentes de outros itens maiores.

Para exemplicar melhor, vamos utilizar um exemplo concreto. O item automvel com-
posto pelo chassis, motor, direo, cmbio etc. O motor, por sua vez, formado pelo carbu-
rador, velas, platinado etc. Esta exploso de composio dos itens pode ser representada
por um auto relacionamento N:M da entidade itens, sendo que o papel de um determinado
item ora de componente, ora de composto.

Um outro exemplo tpico de auto relacionamento o gerenciamento de funcionrios, trazido


na questo. Um gerente nada mais que um funcionrio que possui um relacionamento com

Pgina 26 de 120
www.handbookdeti.com.br
Handbook de Questes de TI Comentadas para Concursos Volume questes de TI

outros funcionrios que lhe so subordinados. Esta relao pode ser representada por um
auto relacionamento 1:N da entidade funcionrios, sendo que o papel de um determinado
funcionrio ora de gerente, ora de subordinado.

Pgina 27 de 120
www.handbookdeti.com.br
Handbook de Questes de TI Comentadas para Concursos Volume questes de TI

12. Assuntos relacionados: Banco de Dados, DER,


Banca: Cesgranrio
Instituio: BNDES
Cargo: Analista de Sistemas - Desenvolvimento
Ano: 2008
Questo: 48
Um analista de sistemas recebe o seguinte trecho de descrio de um sistema:

Uma empresa contrata um prossional para trabalhar em um projeto recebendo um de-


terminado salrio. Sabe-se que um projeto pode ter a participao de diversas empresas e
que um prossional pode desempenhar vrias atividades nesse projeto (p.ex. operador de
guindaste e pedreiro). Que modelo ER representa corretamente essa descrio?

(O smbolo (*) representa atributo multivalorado).

(a). Modelo 1

(b). Modelo 2

(c). Modelo 3

(d). Modelo 4

(e). Modelo 5

Figura 1: Modelos ER

Soluo:
Esta uma questo polmica, pois seu enunciado um tanto quanto pobre de informaes.
Quando isso acontece, a melhor estratgia tentar identicar quais alternativas estariam
mais erradas e elimin-las.

Uma considerao muito importante para uma resoluo consciente desta questo que o

Pgina 28 de 120
www.handbookdeti.com.br
Handbook de Questes de TI Comentadas para Concursos Volume questes de TI

enunciado deveria trazer seria a denio se um prossional pode ser contratado por mais
de uma empresa e, por consequncia, poder trabalhar em mais de um projeto. Se o candi-
dato zer uma considerao diferente da imaginada pelo autor desta questo, suas chances
de acertar esta questo diminuem consideravelmente.

Vamos s alternativas.

(A) ERRADA

Considerando que um determinado prossional pode ser contratado por diferentes empresas
para trabalhar em diversos projetos, este modelo inapropriado. Isso por conta do atri-
buto atividade, que est relacionado ao prossional. Em outras palavras, teramos que um
determinado prossional somente poderia exercer as mesmas atividades em todos os seus
eventuais contratos, o que no apropriado.

Por outro lado, caso a considerao acima no seja feita, este modelo se mostra adequado,
porm limitado.

(B) ERRADA

A argumentao para esta alternativa similar feita na alternativa anterior. Se a con-


siderao supracida for feita, um determinado prossional somente poderia ter um nico
salrio para seus eventuais contratos, o que no apropriado. Caso contrrio, o modelo
desta alternativa tambm atende, apesar de ser limitado.

(C) e (D) ERRADA

Estas deveriam ser as primeiras alternativas a serem eliminadas. Perceba que a relao
existente entre os conjuntos de entidades empresa e projeto, denominada possui, no
se encaixa na descrio do sistema apresentada no enunciado.

(E) CORRETA

Esta a alternativa menos errada e, portanto, a escolha mais segura possvel. Como
o atributo atividade est associado ao conjunto de relacionamentos contrato, este mo-
delo no se limita ao cenrio de que um prossional somente pode ter um contrato para
trabalhar em apenas uma empresa para participar de um nico projeto.

De qualquer forma, cabe ressaltar que o nvel de normalizao deste modelo no bom.
Em um banco de dados relacional, o conjunto de relacionamentos contrato seria imple-
mentado por meio de uma tabela. Imagine o caso em que um prossional execute 5 tarefas
em um contrato com uma determinada empresa. Nesse caso, teramos nessa tabela 5 linhas
com os 4 campos com valores repetidos: salrio e chaves estrangeiras dos conjuntos de enti-
dades envolvidos. Essa repetio desnecessria de valores pode ser onerosa, mas ela pode ser
eliminada com um processo de normalizao deste modelo, que resultaria em outro modelo
mais adequado.

Pgina 29 de 120
www.handbookdeti.com.br
Handbook de Questes de TI Comentadas para Concursos Volume questes de TI

13. Assuntos relacionados: Banco de Dados, Modelo Entidade-Relacionamento, Modelo Re-


lacional, Projeto Lgico de Banco de Dados,
Banca: Cesgranrio
Instituio: Petrobras
Cargo: Analista de Sistemas Pleno - Processos
Ano: 2006
Questo: 23
Considere o modelo entidade-relacionamento representado abaixo.

Na transformao deste modelo conceitual Entidade-Relacionamento em um modelo lgico


relacional, as cardinalidades do relacionamento entre as entidades exercem papel importante.
Dado que se deseja gerar um modelo relacional que atenda terceira forma normal, pode-se
armar que sempre daro origem a uma tabela para cada uma das entidades relacionadas
os relacionamentos do tipo:

(a). (0,n) x (0,n), podendo ou no gerar uma tabela para o relacionamento.

(b). (0,1) x (0,n), podendo ou no gerar uma tabela para o relacionamento.

(c). (0,1) x (1,1), gerando uma tabela para o relacionamento.

(d). (1,n) x (1,n), podendo ou no gerar uma tabela para o relacionamento.

(e). (1,1) x (1,n), devendo gerar uma tabela para o relacionamento.

Soluo:
Uma entidade corresponde representao de todo e qualquer substantivo, concreto ou
abstrato, sobre o qual precisa-se armazenar ou recuperar informaes. No modelo Entidade-
Relacionamento representado por um retngulo.

J o relacionamento a forma como os objetos que compem a realidade se relacionam.


representado por um losango, mas h um conceito importante a ser entendido que a
cardinalidade do relacionamento. Consiste de nmeros cardinais colocados ao lado do nome
do relacionamento e dimensiona o nmero de ocorrncias de uma entidade que pode estar
envolvido em um relacionamento, sendo til para extrair da regras de consistncia e inte-
gridade dos dados.

Existem 3 (trs) tipos bsicos de relacionamento entre as entidades de acordo com a cardi-
nalidade:

Um-para-um (1:1): representa que uma nica ocorrncia de uma entidade pode se
relacionar com apenas uma nica ocorrncia de outra entidade;

um-para-muitos (1:N): representa que uma ocorrncia de uma entidade pode se re-
lacionar com muitas ocorrncias de outra entidade. No entanto, a recproca no
verdadeira;

muitos-para-muitos (N:M): representa que vrias ocorrncias de uma entidade pode se


relacionar com muitas ocorrncias de outra entidade.

Pgina 30 de 120
www.handbookdeti.com.br
Handbook de Questes de TI Comentadas para Concursos Volume questes de TI

H ainda os relacionamentos recursivos onde uma entidade se relaciona com si prpria e so


relacionamentos mais raros.

Para que o modelo E-R pudesse representar melhor os conceitos foi observado que car-
dinalidades genricas do tipo 1:N (um-para-muitos) e N:M (muitos-para-muitos) no so
sucientes. Isto porque o conceito de muitos um conceito vago, podendo ser um ou qual-
quer nmero acima de um, existindo, ainda, o valor zero, pois, em alguns casos, nem todas
as ocorrncias das entidades participam do relacionamento. Para que isso seja resolvido, o
modelo E-R prope que seja utilizado o conceito de Cardinalidade Mnima e de Cardinali-
dade Mxima.

Para um melhor entendimento das Cardinalidades Mnimas e Mximas, vamos analisar os


tipos de relacionamento de cada uma das alternativas aplicadas ao problema do enunciado.
Na letra (A), a cardinalidade do tipo (0,n) x (0,n) quer dizer o seguinte: uma pessoa pode
lavar um, vrios carros ou nenhum e um carro pode no ser lavado ou ser lavado por uma
ou mais pessoas. J na letra (B), uma pessoa pode lavar nenhum, um ou vrios carros, mas
um carro pode no ser lavado ou ser lavado por, no mximo, uma pessoa. A letra (C) indica
que um carro deve ser levado por exatamente uma pessoa, mas que uma pessoa pode no
ter lavado nenhum carro. Na letra (D), uma pessoa deve ter lavado, no mnimo, um carro
e todo carro deve ter sido lavado por uma ou mais pessoas. E, para nalizar, na letra (E):
um carro deve ter sido lavado por exatamente uma pessoa e uma pessoa deve ter lavado um
ou mais carros.

Ao passarmos um relacionamento para o modelo relacional, temos trs opes:

1. Entidades relacionadas podem ser fundidas em uma nica tabela;

2. tabelas podem ser criadas para o relacionamento;

3. chaves estrangeiras podem ser criadas em tabelas a m de representar adequadamente


o relacionamento.

Na letra (C), que o nico caso de mapeamento um-para-um, a melhor alternativa para
atender a terceira forma normal incluir a chave primria de Pessoa como chave estrangeira
na tabela Carro (opo 3). Sendo assim, todo registro da tabela Carro ter representado
uma pessoa, que ser a pessoa que lava o carro. Caso o relacionamento fosse do tipo (1,1)
x (1,1), uma tabela poderia representar as duas entidades sem problemas (opo 1). Neste
caso, no haveria o problema de redundncia indesejado para a terceira forma normal e ne-
nhum dado seria perdido. Gerar uma tabela denitivamente no uma opo para a letra
(C), que est incorreta.

Os relacionamentos muitos-para-muitos esto representados nas letras (A) e (D). Nestes


casos, a nica soluo possvel utilizar uma tabela para o relacionamento (opo 2). No
possvel representar esse tipo de relacionamento atravs de uma chave-estrangeira em uma
tabela que representa uma entidade e nem mesmo fundir tabelas de entidade sem que haja
problemas de redundncia. As alternativas (A) e (D) esto erradas, pois a tabela deve ser
criada para o relacionamento e no uma opo no t-la.

Na letra (E), a melhor alternativa criar chave estrangeira para representar a pessoa que
lavou o carro na tabela Carro (opo 3). Entretanto, ainda necessrio garantir que uma
pessoa s exista na tabela Pessoa se j houver lavado um carro. Isso pode ser feito com in-
cluso de regra adicional de integridade. A opo 1 no aceitvel, pois representaria dados
redundantes. A opo (2) tambm tem a possibilidade de representar um modelo relacional

Pgina 31 de 120
www.handbookdeti.com.br
Handbook de Questes de TI Comentadas para Concursos Volume questes de TI

que atenda o que a questo est pedindo e tambm deve ter adicionada a restrio de que
toda pessoa da tabela Pessoa tenha um registro na tabela que representa o relacionamento
Lava. Sem dvida, uma opo, mas no deve gerar uma tabela conforme diz o enunci-
ado. A letra (E) est errada.

Na alternativa (B), s o fato de no ser um relacionamento muitos-para-muitos, sabemos


que o uso de tabela para representar o relacionamento Lava no obrigatrio. H a possi-
bilidade de se criar uma chave estrangeira que represente uma pessoa na tabela Carro (opo
3). Neste caso, a tabela Carro deve permitir que o valor da chave estrangeira tambm possa
ser nulo, pois um carro no necessariamente lavado por alguma pessoa. H controvrsias
se, neste caso, a terceira forma normal obedecida. Se optssemos por criar uma tabela para
o relacionamento, no haveria problemas, pois, para garantir que um carro seja lavado por
no mximo uma pessoa, basta adotar a chave primria de Carro para garantir a unicidade
do mesmo. A opo 1 no adequada para o caso, pois as informaes das pessoas iriam
ser redundantes na nova tabela fundida. Embora haja a controvrsia de a permisso do
uso de valor nulo no garantir a terceira forma normal e nem mesmo a primeiro, vamos
adotar que o uso de chave estrangeira factvel para o problema e que o uso de tabela para
o relacionamento tambm possvel. Sendo assim, a alternativa (B) a alternativa correta.

Pgina 32 de 120
www.handbookdeti.com.br
Handbook de Questes de TI Comentadas para Concursos Volume questes de TI

14. Assuntos relacionados: Banco de Dados, Modelo Entidade-Relacionamento, Modelo Re-


lacional,
Banca: Cespe
Instituio: Petrobras
Cargo: Analista de Sistemas Jnior - Infraestrutura
Ano: 2007
Questo: 8082

Considerando que, nas tabelas acima, FK e PK sejam, respectivamente, chaves estrangeira


e primria em um banco relacional, julgue os itens subseqentes.

80 Se ALUNO em MATRICULAS referencia MATRICULA em ALUNOS, e TURMA em


MATRICULAS referencia CODIGO em TURMAS, ento a cada registro em ALUNOS
podem estar associados vrios registros em TURMAS e a cada registro em TURMAS
podem estar associados vrios registros em ALUNOS.

81 Se DEPARTAMENTO em CURSOS referencia CODIGO em DEPARTAMENTOS,


ento a cada registro em DEPARTAMENTOS podem estar associados vrios registros
em CURSOS e a cada registro em CURSOS podem estar associados vrios registros
em DEPARTAMENTOS.

82 Em um diagrama de entidades-relacionamentos do banco de dados composto pelas


tabelas apresentadas, MATRICULAS ser representada por uma classe de entidades e
ser muitos para muitos o relacionamento entre as classes de entidades que representem
DISCIPLINAS e CURSOS.

Soluo:
Os itens 80, 81 e 82 esto relacionados ao conceito de mapeamento de um esquema E-R
(Entidade-Relacionamento) em tabelas no banco de dados no modelo relacional.

Um banco de dados de acordo com o modelo E-R pode ser representado por uma cole-
o de tabelas. Para cada conjunto de entidades e para cada conjunto de relacionamentos,
existe uma tabela nica registrando o nome do conjunto de entidade ou relacionamento den-
tro de um banco de dados.

Pgina 33 de 120
www.handbookdeti.com.br
Handbook de Questes de TI Comentadas para Concursos Volume questes de TI

Para realizar a converso da representao do banco de dados em um modelo E-R para


um banco de dados relacional, as seguintes regras gerais devem ser seguidas:

conjunto de entidades fortes: seja E um conjunto de entidades fortes descrito pelos


atributos a1, a2, . . . , an. Representamos essa entidade por uma tabela E com n colunas
distintas, cada uma delas correspondendo a um dos atributos de E;

conjunto de entidades fracas: seja A um conjunto de entidades fracas com os atri-


butos a1, a2, . . . , an. Seja B um conjunto de entidades fortes, do qual A dependente.
Representamos a entidade fraca por uma tabela A, onde as colunas dessa tabela so
atributos da entidade A mais os atributos que formam a chave primria do conjunto
B;

relacionamentos: seja R um conjunto de relacionamentos; seja a1, a2, . . . , an o


conjunto de atributos formados pela unio das chaves primrias de cada conjunto de
entidades participantes de R; e seja os atributos descritivos b1, b2, . . . , bn (se existir)
de R. Representamos o conjunto R por uma tabela R, onde as colunas dessa tabela so
as chaves primrias da entidades participantes mais os atributos descritivos de R, caso
existam;

atributos multivalorados: para um atributo multivalorado, criamos uma tabela T


com uma coluna que corresponde ao atributo multivalorado e as colunas corresponden-
tes chave primria do conjunto de entidades ou conjunto de relacionamentos do qual
o atributo multivalorado atributo.

No caso dos relacionamentos no modelo E-R, existem alguns tratamentos especiais em fun-
o da cardinalidade do relacionamento entre as entidades como forma de eliminar tabelas
redundantes:

um conjunto de relacionamentos que possuem cardinalidade um para um no precisa ser


representado no modelo relacional, pois esse relacionamento no cria uma nova relao.
Em geral, caso existam atributos descritivos do relacionamento, esses so acrescentados
como atributos da tabela de uma das entidades participantes;

um conjunto de relacionamentos que possuem cardinalidade muitos para um e no


possui atributos descritivos no precisa ser representado por uma tabela no modelo
relacional. Em geral, isso ocorre no relacionamento entre um conjunto de entidades
fracas e um conjunto de entidades forte. A chave primria do conjunto de entidades
fortes funciona como um atributo no conjunto de entidades fracas (chave estrangeira);

um conjunto de relacionamentos que possuem cardinalidade muitos para muitos re-


presentado no modelo relacional por uma tabela, pois esse relacionamento cria uma
nova relao, conforme descrito anteriormente na regra geral.

No nosso caso, em vez de partirmos do modelo E-R para o modelo relacional, temos que
partir do modelo relacional para o modelo E-R para resolvermos os itens 80, 81 e 82.

Em nosso modelo relacional temos as tabelas ALUNOS, MATRICULAS, TURMAS, DIS-


CIPLINAS, CUROS e DEPARTAMENTOS. Por inferncia nossa, acreditamos que as setas
indicam o sentido do relacionamento entre as tabelas:

ALUNOS est inscrito em CURSOS. Um aluno se inscreve em um curso, e em um


curso pode estar inscrito vrios alunos. Ou seja, temos um relacionamento um para
muitos. Note que a tabela ALUNOS possui uma chave estrangeira CURSO, o que
demonstram a relao de dependncia entre as entidades ALUNOS e CURSOS. Neste
relacionamento, CURSOS uma entidade forte e ALUNOS uma entidade fraca;

Pgina 34 de 120
www.handbookdeti.com.br
Handbook de Questes de TI Comentadas para Concursos Volume questes de TI

CURSOS administrado por DEPARTAMENTOS. Um curso administrado por de-


partamento. Um curso administrado por um departamento, e um departamento
pode administrar vrios cursos. Ou seja, temos um relacionamento um para muitos.
Note que a tabela CURSOS possui uma chave estrangeira DEPARTAMENTO, o que
demonstram a relao de dependncia entre as entidades CURSOS e DEPARTAMEN-
TOS. Neste relacionamento, CURSOS uma entidade fraca e DEPARTAMENTOS
uma entidade forte;

DISCIPLINAS est vinculada a CURSOS. Uma disciplina pode est vinculada somente
a um curso ou mais de um curso, e um curso possui vrias disciplinas. Note que neste
relacionamento surge a dvida se temos um relacionamento um para muitos ou muitos
para muitos. Caso tivssemos um relacionamento muitos para muitos, outra tabela
representa o relacionamento entre CURSOS e DISCIPLINAS deveria existir no modelo
relacional. Porm, no existe essa tabela, e portanto, o relacionamento entre CURSOS
e DISCIPLINAS um para muitos. Note que a tabela DISCIPLINAS possui uma chave
estrangeira CURSO, o que demonstram a relao de dependncia entre as entidades
CURSOS e DISCIPLINAS. Neste relacionamento, CURSOS uma entidade forte e
DISCIPLINAS uma entidade fraca;

TURMAS est vinculada a DISCIPLINAS. Uma turma est vinculada a uma disciplina,
e uma disciplina pode ter vrias turmas. Ou seja, temos um relacionamento um para
muitos. Note que a tabela TURMAS possui uma chave estrangeira DISCIPLINA, o que
demonstram a relao de dependncia entre as entidades TURMAS e DISCIPLINAS.
Neste relacionamento, DISCIPLINAS uma entidade forte e TURMAS uma entidade
fraca;

ALUNOS est matriculado em TURMAS. Um aluno pode estar matriculado em diver-


sas turmas, e uma turma pode ter vrios alunos. Ou seja, temos um relacionamento
muitos para muitos. Como temos esse tipo de relacionamento, devemos represent-lo
no modelo relacional como uma tabela, no caso MATRICULAS. Observe que, a tabela
MATRICULAS possui as chaves primrias de ALUNOS e CURSOS.

De acordo com os relacionamentos descritos e as respectivas cardinalidade, podemos montar


o nosso modelo E-R. A Figura 2 ilustra o modelo E-R obtido a partir do modelo relacional.

Figura 2: Modelo Entidade-Relacionamento com base no modelo relacional.

Pgina 35 de 120
www.handbookdeti.com.br
Handbook de Questes de TI Comentadas para Concursos Volume questes de TI

A seguir analisamos os itens:

80 CERTO

Conforme descrevemos anteriormente, o relacionamento entre ALUNOS e TURMAS


muitos para muitos, isto , cada registro em ALUNOS pode estar associado a vrios
registros em TURMAS. Assim como, cada registro em TURMAS pode estar associado
a vrios registros em ALUNOS. A tabela MATRICULAS representa o relacionamento
entre as entidades ALUNOS e TURMAS. Portanto, este item est certo.

81 ERRADO

Conforme descrevemos anteriormente, o relacionamento entre CURSOS e DEPAR-


TAMENTOS um para muitos, isto , um registro em CURSOS pode estar associado
a um nico registro em DEPARTAMENTO, e um registro em DEPARTAMENTOS
pode estar associado a vrios registros em CURSOS. Portanto, este item est errado,
pois arma que cada registro em CURSOS pode estar associado a vrios registros em
DEPARTAMENTOS.

82 ERRADO

Conforme mostrado no modelo E-R a partir do modelo relacional, a tabela MATRICU-


LAS representada como um relacionamento de ALUNOS e TURMAS no modelo E-R,
e no como uma entidade. No caso do relacionamento entre DISCIPLINAS e CUR-
SOS, o relacionamento no muitos para muitos, mas um para muitos, pois no modelo
relacional no existe uma tabela representando o relacionamento entre DISCIPLINAS
e CURSOS. Portanto, este item est errado.

Pgina 36 de 120
www.handbookdeti.com.br
Handbook de Questes de TI Comentadas para Concursos Volume questes de TI

15. Assuntos relacionados: Banco de Dados, Modelagem de Dados, Superchave, Chave Se-
cundria, Segurana da Informao, Criptograa, Chave Assimtrica, Chave Simtrica,
Banca: ESAF
Instituio: Agncia Nacional de guas (ANA)
Cargo: Analista Administrativo - Tecnologia da Informao e Comunicao / Desenvolvi-
mento de Sistemas e Administrao de Banco de Dados
Ano: 2009
Questo: 17
Um conjunto de um ou mais atributos, tomados coletivamente, para identicar unicamente
uma tupla numa relao, denominado

(a). chave assimtrica.

(b). chave simtrica.

(c). superchave.

(d). chave secundria.

(e). chave de tupla.

Soluo:
(A) INCORRETA

Algoritmos que usam chaves assimtricas fazem parte da criptograa de chave pblica. As
chaves assimtricas so usadas para a criao de um par de chaves criptogrcas relaciona-
das: uma chave pblica e uma chave privada (secreta). Com o uso da criptograa de chave
pblica possvel vericar a autenticidade de mensagens, atravs da criao de assinaturas
digitais e, tambm, proteger a condencialidade e integridade da mensagem, atravs da ci-
fragem com o uso da chave pblica e decifragem atravs da chave privada. O enunciado do
problema se refere a bancos de dados relacionais, no a criptograa e, portanto, essa opo
incorreta.

(B) INCORRETA

Assim como as chaves assimtricas, chaves simtricas tambm so conceitos de criptograa.


No entanto, nos algoritmos de criptograa de chave simtrica, chaves semelhantes, normal-
mente idnticas, so usadas para cifrar e decifrar uma mensagem, donde decorre o nome
simtrica.

(C) CORRETA

Uma superchave qualquer subconjunto de atributos de um esquema de relao com a


propriedade de que duas tuplas, em qualquer estado de relao r de R, no tenham a mesma
combinao de valores para esse subconjunto de atributos. Em outras palavras, sejam e
tuplas distintas e seja SK um subconjunto de atributos de um esquema de relao. Neste
caso, para quaisquer e. Note, ainda, que toda relao possui ao menos uma superchave: a
padro (default), o conjunto de todos os atributos da relao.

Superchaves mais teis, no entanto, so as superchaves mnimas. Nelas, no h atribu-


tos redundantes. Ou seja, no possvel remover qualquer atributo desse conjunto sem
quebrar a restrio da superchave identicar tuplas distintas.

Pgina 37 de 120
www.handbookdeti.com.br
Handbook de Questes de TI Comentadas para Concursos Volume questes de TI

(D) INCORRETA

Uma chave secundria uma chave que, normalmente, no identica unicamente um re-
gistro e que pode ser utilizada para buscas simultneas de vrios registros. Normalmente
implementadas como ndices em bancos de dados, so usadas para busca e recuperao de
dados.

(E) INCORRETA

O conceito chave de tupla no amplamente conhecido na literatura e h outra alter-


nativa que responde de maneira correta esta questo. Por esse motivo, esse conceito no
ser discutido.

Pgina 38 de 120
www.handbookdeti.com.br
Handbook de Questes de TI Comentadas para Concursos Volume questes de TI

16. Assuntos relacionados: Banco de Dados, Modelo Relacional, Modelo Entidade-Relacionamento,


Modelo Objeto-Relacionamento,
Banca: ESAF
Instituio: Agncia Nacional de guas (ANA)
Cargo: Analista Administrativo - Tecnologia da Informao e Comunicao / Desenvolvi-
mento de Sistemas e Administrao de Banco de Dados
Ano: 2009
Questo: 22
O modelo de dados baseado numa coleo de tabelas que representam dados e as relaes
entre eles denominado modelo

(a). relacional.

(b). entidade/relacionamento.

(c). baseado em objetos.

(d). de dados semiestruturados.

(e). objeto/relacionamento.

Soluo:
(A) CORRETA

O modelo relacional usa o conceito de uma relao matemtica como seu bloco de cons-
truo bsica e tem sua base terica na teoria dos conjuntos e na lgica de predicados de
primeira ordem. No modelo relacional, o banco de dados representado como uma coleo
de relaes.

Quando uma relao pensada como uma tabela de valores, cada linha na tabela repre-
senta uma coleo de valores de dados relacionados. Nessa representao, cada linha na
tabela representa um fato que corresponde a uma entidade ou relacionamento do mundo
real. O nome da tabela e os nomes das colunas so usados para auxiliar na interpretao
dos dados da coluna e todos os valores em uma coluna so do mesmo tipo de dado. Por isso,
essa a soluo correta para a questo.

(B) INCORRETA

O modelo de entidade-relacionamento um modelo abstrato com a nalidade de descre-


ver, conceitualmente, as entidades e os relacionamentos de um domnio. Esse modelo, e suas
variaes, normalmente empregado para o projeto conceitual de aplicaes de um banco
de dados, e muitas ferramentas de projeto de um banco de dados tambm aplicam seus
conceitos.

Neste modelo, uma entidade um objeto que existe no mundo e que facilmente dis-
tinguvel de outros. Uma entidade pode ser tanto concreta, como um livro, uma pessoa ou
um lugar, quanto abstrata, como um feriado. Uma entidade, por sua vez, composta por
atributos. Um atributo uma funo que mapeia um conjunto de entidades em um domnio
em particular. Cada entidade descrita por um conjunto de pares (atributo, valor) e existe
um par para cada um dos atributos da entidade.

Um relacionamento, por sua vez, uma associao qualquer entre diversas entidades. Um

Pgina 39 de 120
www.handbookdeti.com.br
Handbook de Questes de TI Comentadas para Concursos Volume questes de TI

relacionamento trabalha para, por exemplo, pode relacionar empregador e empregados.

A principal ferramenta do modelo de entidade-relacionamento o diagrama de entidade-


relacionamento. Nele, retngulos representam entidades, elipses representam atributos, lo-
sangos representam relacionamentos e linhas ligam atributos a entidades e entidades a re-
lacionamentos. A Figura 3 exibe um exemplo de diagrama entidade-relacionamento. Nela,
existem duas entidades, Cliente e Conta. A entidade Cliente possui os atributos Nome,
Endereo e CPF, j a entidade Conta possui os atributos Nmero e Balano. Ambas
so relacionadas pela relao Possui, que indica que um ou mais clientes podem possuir
uma ou mais contas (que, por sua vez, podem ser possudas por um ou mais clientes).

Figura 3: exemplo de diagrama entidade-relacionamento.

(C) INCORRETA

Modelos baseados em objetos tm sua origem nas linguagens orientadas a objetos. Nelas, um
objeto possui, tipicamente, dois componentes: estado (valor) e comportamento (operaes).
Em linguagens de programao, objetos existem somente durante a execuo do programa.
J em bancos de dados orientados a objetos, a existncia dos objetos pode ser estendida
de modo que sejam armazenados de forma permanente; portanto, os objetos continuam
a existir mesmo aps o trmino do programa, podendo ser posteriormente recuperados e
compartilhados por outros programas. No modelo orientado a objetos, um conceito comum
o de classe, que representa um conjunto de objetos com caractersticas ans e dene o
comportamento dos objetos atravs de seus mtodos, e quais estados ele capaz de manter
atravs de seus atributos.

Alguns conceitos importantes em orientao a objetos so:

Encapsulamento: os aspectos internos e externos de um objeto so separados, impe-


dindo o acesso direto ao estado de um objeto (seus atributos), disponibilizando exter-
namente apenas mtodos que alteram esses estados;

Herana: permite a especicao de novos tipos ou classes que herdam parte de suas
estruturas e/ou operaes de classes ou tipos previamente denidos, o que torna mais
fcil desenvolver os tipos de dados de um sistema de modo incremental e reutilizar
denies de tipos na criao de novos tipos de objetos;

Sobrecarga de operador: se refere propriedade de uma operao de ser aplicada


a diferentes tipos de objetos. Em tal situao, um nome de operao pode se referir a
vrias implementaes diferentes, dependendo do tipo de objetos aos quais aplicada.
Essa caracterstica tambm conhecida como polimorsmo de operador.

Pgina 40 de 120
www.handbookdeti.com.br
Handbook de Questes de TI Comentadas para Concursos Volume questes de TI

Em bancos de dados tradicionais, a informao sobre objetos complexos , normalmente,


distribuda em vrias relaes ou registros, levando perda de correspondncia direta entre
um objeto do mundo real e sua representao no banco de dados. O mesmo no ocorre em
bancos de dados orientados a objetos, que so capazes de manter estruturas de objetos com
complexidade arbitrria.

(D) INCORRETA

O modelo de dados semiestruturados um modelo de bancos de dados em que no h


separao entre dados e esquema e sua estruturao depende do propsito da aplicao. Por
no haver essa separao, o esquema normalmente associado em conjunto com os dados.
Em outros casos, o esquema existe apenas para denir restries fracas aos dados.

Um compromisso feito quando bancos de dados que usam esse modelo so adotados que as
consultas podem no ser to ecientes quanto a alternativa em bancos de dados relacionais,
devido forma tpica como esses bancos de dados so implementados. Neles, os registros so
normalmente armazenados com identicadores nicos referenciados por ponteiros para suas
posies no disco. Como necessrio percorrer o disco seguindo os ponteiros, suas consultas
podem no ser to ecientes.

(E) INCORRETA

O modelo objeto-relacionamento (OR) baseado no modelo de entidade-relacionamento


(ER). No modelo OR, o mundo visto como um conjunto de objetos e seus relacionamen-
tos. A diferena entre esse e o modelo de ER que no modelo OR os atributos so tratados
como objetos e, com isso, os benefcios da orientao a objetos so unidos aos benefcios do
modelo relacional (ambos modelos descritos acima).

Essa resposta incorreta porque o modelo objeto-relacional usado para modelagem de


sistemas de bancos de dados, no para representar os dados.

Fonte: Symposium on Applied Computing Proceedings of the 1992 ACM/SIGAPP Sympo-


sium on Applied computing: technological challenges of the 1990's table of contents Kansas
City, Missouri, United States Pginas: 299 - 307 Ano de publicao: 1992 ISBN:0-89791-
502-X Disponvel em: http://portal.acm.org/citation.cfm?id=143655

Pgina 41 de 120
www.handbookdeti.com.br
Handbook de Questes de TI Comentadas para Concursos Volume questes de TI

17. Assuntos relacionados: Banco de Dados, lgebra Relacional, SGBD,


Banca: CESGRANRIO
Instituio: BNDES
Cargo: Analista de Suporte
Ano: 2008
Questo: 56
Sobre bancos de dados relacionais INCORRETO armar que

(a). fornecem outra tabela, como resultado de consulta a uma tabela.

(b). possuem um otimizador que responsvel por implementar de forma eciente as


consultas relacionais realizadas pelo usurio.

(c). armazenam dados organizados logicamente em tabelas e sicamente em arquivos.

(d). disponibilizam estruturas para manuteno de integridade dos dados.

(e). permitem a realizao de operaes de juno e unio de conjuntos, mas no de


projeo e restrio.

Soluo:
Em bancos de dados relacionais as tabelas so estruturas lgicas que tm por objetivo sim-
plicar a modelagem e a visualizao dos dados, que sicamente so armazenados como
arquivos. O diagrama de tabelas um nvel de abstrao de dados tambm conhecido como
modelo lgico de dados.

Independente do formato dos arquivos e dos mtodos de acesso utilizados, o usurio -


nal sempre enxerga os dados organizados em tabelas. Quando uma consulta submetida ao
SGBD relacional, pode ser necessrio unir dados de vrios arquivos para fornecer o resul-
tado. No entanto, o usurio nal no precisa tomar conhecimento dessa necessidade, pois
o resultado da consulta ser fornecido como uma tabela, essa montada dinamicamente de
acordo com os critrios da operao.

A otimizao das consultas, assim como a manuteno da integridade dos dados, papel do
SGBD. Como atribuies dos SGBDs, podemos citar tambm a manuteno da segurana
e o controle de concorrncia, permitindo que vrios usurios ou processos usem o banco de
dados simultaneamente sem prejuzo aos dados.

Em grande parte dos sistemas, os projetistas no precisam se preocupar com aspectos fsicos
do armazenamento de dados. Geralmente, isso se faz necessrio quando o otimizador de
consultas do SGBD por si s no suciente para responder aos requisitos de desempenho
do sistema.

Com base nos argumentos apresentados, podemos dizer que as alternativas A, B, C e D


apresentam informaes corretas sobre os SGBDs relacionais. Portanto, por eliminao che-
gamos alternativa E.

A resposta tambm pode ser alcanada de forma direta, sendo necessrio para isso o co-
nhecimento das operaes bsicas da lgebra Relacional, base conceitual dos bancos e da
linguagem de SQL. As operaes de juno nada mais so que as realizadas pelo operador
JOIN, da linguagem SQL. Enquanto as operaes de unio so realizadas pelo operador
UNION. As restries so denidas pela clusula WHERE.

Pgina 42 de 120
www.handbookdeti.com.br
Handbook de Questes de TI Comentadas para Concursos Volume questes de TI

J as projees se referem a seleo de um subconjunto N de colunas, onde N menor


que o nmero total de colunas da relao. Ou seja, se tabela ALUNOS possui 5 colu-
nas, o comando SELECT NOME,IDADE FROM ALUNOS uma projeo, pois s foram
selecionadas 2 das 5 colunas na consulta.

Pgina 43 de 120
www.handbookdeti.com.br
Handbook de Questes de TI Comentadas para Concursos Volume questes de TI

18. Assuntos relacionados: Banco de Dados, Nvel de Abstrao, Nvel Fsco, Nvel de Viso,
Nvel Lgico,
Banca: ESAF
Instituio: Agncia Nacional de guas (ANA)
Cargo: Analista Administrativo - Tecnologia da Informao e Comunicao / Desenvolvi-
mento de Sistemas e Administrao de Banco de Dados
Ano: 2009
Questo: 18
O nvel de abstrao, que visa simplicar a interao entre usurios e o sistema de banco de
dados, o

(a). fsico.

(b). de viso.

(c). lgico.

(d). de esquema.

(e). de modelo.

Soluo:
Um sistema de banco de dados a juno de uma coleo de arquivos inter-relacionados
com um conjunto de programas que permitem aos usurios acessarem e modicarem tais
arquivos. Seu maior objetivo proporcionar aos usurios uma viso abstrata dos dados, o
que signica ocultar determinados detalhes de como os dados so efetivamente armazenados
e gerenciados.

Para que o sistema tenha um bom nvel de usabilidade, preciso que os dados sejam re-
cuperados ecientemente. A necessidade de ecincia levou os desenvolvedores a utilizar
estruturas de dados complexas para representar os dados na base de dados. Para ocul-
tar dos usurios essa complexidade, nveis de abstrao foram denidos, simplicando a
interao com o sistema:

Nvel Fsico. Nvel mais baixo de abstrao que descreve como os dados so verdadei-
ramente armazenados. O nvel fsico descreve detalhadamente as complexas estruturas
de dados de baixo nvel;

Nvel Lgico. Nvel intermedirio de abstrao que descreve quais dados so arma-
zenados na base de dados, alm dos relacionamentos existentes entre tais dados. Neste
nvel, todo o banco de dados descrito em termos de um pequeno nmero de estruturas
relativamente simples. Os administradores de bancos de dados usam os nvel lgico de
abstrao para decidir quais informaes sero armazenadas;

Nvel de Viso. Nvel mais alto de abstrao, descreve apenas parte do banco de da-
dos. Apesar de utilizar estruturas simples, o nvel lgico possui bastante complexidade,
haja vista a variedade de informaes armazenadas. Muitos usurios no necessitam
de toda essa informao e, assim, o nvel de viso proporciona diversas vises para a
mesma base de dados, simplicando a interao com o sistema.

O esquema de um banco de dados diz respeito aos objetos (tabelas, vises, ndices, proce-
dimentos armazenados, etc.) disponibilizados para um determinado grupo de usurios, no
guardando relao com os nveis de abstrao. Semelhantemente, o modelo de um banco de
dados a especicao das estruturas de dados e regras de negcio de um banco de dados,

Pgina 44 de 120
www.handbookdeti.com.br
Handbook de Questes de TI Comentadas para Concursos Volume questes de TI

incluindo Modelo Conceitual, Modelo Lgico e Modelo Fsico.

A armativa de acordo com a teoria apresentada encontra-se na opo B.

Pgina 45 de 120
www.handbookdeti.com.br
Handbook de Questes de TI Comentadas para Concursos Volume questes de TI

19. Assuntos relacionados: Banco de Dados, Indexao de Registros,


Banca: ESAF
Instituio: Secretaria do Tesouro Nacional (STN)
Cargo: Analista de Finanas e Controle - Tecnologia da Informao / Desenvolvimento de
Sistemas de Informao
Ano: 2008
Questo: 17
Em termos de Bancos de Dados, a indexao mais adequada para o acesso eciente aos
registros, em consultas que considerem intervalos, para um pequeno nmero de linhas, cor-
responde ao uso de ndices

(a). de juno.

(b). de hashing.

(c). em rvores B.

(d). booleanos.

(e). funcionais.

Soluo:
(A) INCORRETA

Um ndice de juno uma estrutura de dados usada para o processamento de consul-


tas de juno (join queries) em bancos de dados. Os ndices de juno usam tcnicas de
pr-computao para aumentar o desempenho do processamento online de consultas e so
teis para conjuntos de dados que so atualizados com pouca frequncia. Como essa opo
apresenta uma restrio aos bancos de dados (e como h uma opo melhor, como ser
visto), essa alternativa incorreta.
1

(B) INCORRETA

ndices de hashing so ndices que usam tabelas hash para indexao. Neles, as chaves
de pesquisa so organizadas como uma tabela hash, em que as chaves de pesquisa so asso-
ciadas s entradas onde essas chaves ocorrem. Uma tabela hash (ou tabela de disperso),
por sua vez, uma estrutura de dados que associa chaves de pesquisa a valores. Seu obje-
tivo , a partir de uma chave simples, fazer uma busca rpida e obter o valor desejado. Por
mapearem uma chave de pesquisa a um determinado ndice de forma direta, as tabelas hash
proporcionam um tempo mdio de busca constante, ou seja, O(1). Em virtude de seu alto
desempenho, as tabelas hash so tipicamente utilizadas na indexao de grandes volumes de
informaes em bancos de dados e na criao de esquemas associativos de acesso s memria
cache.

Aps a construo do ndice, quando uma consulta realizada, a funo hash aplicada
chave de pesquisa para identicao do slot onde as chaves ocorrem. As entradas das
ocorrncias so, ento, recuperadas.

Apesar de ecientes para buscar um nico valor e como valores prximos so normalmente
mapeados para posies distantes na tabela, uma abordagem de tabelas hash para consultas

1
Fonte: Ecient Join-Index-Based Join Processing: A Clustering Approach, disponvel em
http://www.cs.umn.edu/tech_reports_upload/tr1999/99-030.pdf

Pgina 46 de 120
www.handbookdeti.com.br
Handbook de Questes de TI Comentadas para Concursos Volume questes de TI

com intervalos se mostrar ineciente, visto que a conferncia dos valores nos intervalos ser
custosa.

(C) CORRETA

ndices em rvores B, como o nome diz, so ndices que usam rvores B. Uma rvore B
uma estrutura de dados baseada em rvores que mantm os dados ordenados e que per-
mite buscas, acesso sequencial, inseres e remoes em tempo logartmico amortizado. Por
ser otimizada para sistemas que leem e escrevem grandes quantidades de dados, elas so
bastante utilizadas na implementao de bancos de dados e sistemas de arquivos.

As rvores B so uma generalizao das rvores de busca binrias, pois cada n pode possuir
mais de dois lhos. Mais formalmente, uma rvore B de ordem m (com m o nmero mximo
de lhos de um n) uma rvore que satisfaz as seguintes propriedades:

1. Cada n possui, no mximo, m lhos;

2. Cada n (exceto a raiz), possui, no mnimo, m/2 lhos;

3. A raiz possui pelo menos dois lhos quando no for um n folha;

4. Todas as folhas aparecem no mesmo nvel;

5. Um n no folha com k lhos possui k-1 chaves.

Como exemplo, a Figura 4 exibe o desenvolvimento de uma rvore B de ordem 3 medida


que os elementos 1, 2, 3, 4, 5, 6 e 7 so adicionados a ela. Como exibido, sempre
que um n no capaz de armazenar mais elementos, aquele n dividido e a rvore, reba-
lanceada, de modo que suas propriedades ainda sejam mantidas.

A altura de uma rvore B , sempre, O(log n) e uma busca por um valor exato em uma
rvore B , tambm, O(log n). No entanto, quando necessrio buscar por um intervalo,
como, internamente os ns das rvores B esto ordenados e a busca pelos limites O(log n),
a recuperao dos valores do intervalo buscado feita rapidamente, tornando as rvores B
a melhor estrutura de dados para criao do ndice nesse caso e, portanto, a alternativa c
a correta.

(D) INCORRETA

ndice booleano no um conceito amplamente divulgado na literatura. No entanto,


existem ndices chamados ndices bitmap que armazenam seus dados como vetores de bits
e respondem a consultas atravs da execuo de operaes lgicas bit a bit nesses vetores
de bits. Esse tipo de ndice foi projetado para casos em que os valores de uma varivel se
repetem com grande frequncia. Devido a forma como so construdos, o ndice de bitmap
possui vantagens de desempenho para esse caso, mas no na busca de intervalos.

(E) INCORRETA

ndices funcionais so ndices denidos pelo usurio do sistema de banco de dados. Com
eles, possvel que o usurio do banco de dados dena suas prprias funes de indexao.
Esse tipo de ndice adiciona exibilidade ao banco de dados e pode ser usado com tipos
denidos pelo usurio. Por poderem ser implementados da forma que melhor convier ao
usurio e no um algoritmo propriamente dito, ndices funcionais no so a soluo para
esta questo.

Pgina 47 de 120
www.handbookdeti.com.br
Handbook de Questes de TI Comentadas para Concursos Volume questes de TI

Figura 4: desenvolvimento de uma rvore B de ordem 3 medida que os elementos 1, 2, 3,
4, 5, 6 e 7 so adicionados.

Pgina 48 de 120
www.handbookdeti.com.br
Handbook de Questes de TI Comentadas para Concursos Volume questes de TI

20. Assuntos relacionados: Banco de Dados, ACID,


Banca: ESAF
Instituio: Controladoria-Geral da Unio (CGU)
Cargo: Analista de Finanas e Controle - Tecnologia da Informao / Desenvolvimento de
Sistemas de Informao
Ano: 2008
Questo: 54
O termo integridade se refere preciso ou correo de dados. Em um banco de dados
relacional, as restries de integridade tm importncia crucial, pois fornecem uma forma
de garantir que as mudanas realizadas pelos usurios no resultem na perda de consistncia
dos dados. Com relao s restries de integridade, incorreto armar que uma restrio
de

(a). varivel de relao especica os valores vlidos para uma determinada varivel de
relao, e vericada quando essa varivel de relao atualizada.

(b). tipo especica os valores vlidos para um determinado tipo, e vericada durante
invocaes do seletor correspondente.

(c). atributo especica os valores vlidos para um determinado atributo, e nunca deve
ser violada.

(d). banco de dados especica os valores vlidos para um determinado banco de dados,
e vericada no instante de COMMIT.

(e). domnio especica que o valor de um atributo no pode pertencer a mais de um


domnio.

Soluo:
Autores diferentes costumam classicar as restries de integridade de forma diferente. Em
[1], por exemplo, as restries de integridade so classicadas como restries de tipo (do-
mnio), de atributo, de variveis de relao, de banco de dados, de transio de estados,
de chaves, de integridade referencial e restries quanto ao momento de vericao. Em
[2] as encontramos como restries de domnio, de chave, de formas de relacionamento e de
integridade referencial. J em [3] elas so classicadas como restries de domnio, de chave,
de integridade referencial, de integridade de entidade e no-nulo.

Para a elaborao desta questo, h indcios de que as denies encontradas em [1] fo-
ram usadas. Nela, o conceito apresentado de maneira incorreta o descrito na alternativa
e, dado que a descrio apresentada dene, de maneira errnea, o que uma restrio de
domnio.

Uma restrio de domnio uma restrio que especica que, dentro de cada tupla do banco
de dados relacional, o valor de cada atributo A deve ser um valor pertencente ao domnio
de A. Em outras palavras, uma restrio de domnio testa os valores inseridos no banco
de dados e as consultas realizadas para garantir que os valores inseridos sejam condizentes
com os domnios das variveis armazenadas. O domnio de um atributo envolve seu tipo de
dados, o intervalo de valores possvel que esse atributo pode possuir, seu tamanho mximo,
e se existe a possibilidade de valores nulos em A.

Os tipos de dados associados aos domnios incluem os tipos de dados numricos padro
(como inteiros e nmeros reais de representados por ponto utuante), caracteres, booleanos,

Pgina 49 de 120
www.handbookdeti.com.br
Handbook de Questes de TI Comentadas para Concursos Volume questes de TI

strings de comprimento xo e varivel, data, hora, timestamp e, em alguns casos, moeda.
possvel, tambm, como citado, especicar subconjuntos de valores de um tipo de dado ou
por uma enumerao de valores.

Um domnio, por sua vez, um conjunto de valores atmicos. Por atmico entendemos que
cada valor no domnio indivisvel no que diz respeito ao modelo relacional. Um mtodo
comum para a especicao de um domnio denir um tipo de dados do qual os valores de
dados que formam o domnio sejam retirados. Tambm til especicar um nome para esse
domnio, de modo a ajudar na interpretao de seus valores. Alguns exemplos de domnio
so (com o nome do domnio esquerda e sua descrio direita):

Nmero de CPF: o conjunto de onze dgitos vlidos do nmero de CPF;

Mdia de pontos: possveis valores de mdias computadas para um determinado


aluno. As mdias devem ser no-negativas e inferiores mdia mxima atingvel.

Em SQL possvel criar um domnio atravs do comando CREATE DOMAIN. No exemplo


abaixo, exibido um comando para a criao do domnio NUMERO_CPF em SQL:

CREATE DOMAIN NUMERO_CPF AS CHAR(11);

Esclarecimentos sobre as outras Alternativas

Apesar de sabermos que as outras alternativas esto corretas, convm fazer comentrios
adicionais sobre cada uma delas para melhor compreenso dos conceitos.

Restrio de varivel de relao


A restrio de varivel de relao, ou de tuplas, uma restrio sobre uma tupla individual
e pode incorporar restries sobre atributos da mesma. Como essa restrio vericada
sempre que a varivel de relao atualizada, possvel adicionar restries como um aluno
somente poder ter estado de formado caso tenha cumprido o nmero mnimo de crditos
de um curso.

Restrio de tipo
Uma restrio de tipo, como o nome diz, especica que um atributo deva pertencer ao
tipo especicado e, portanto, a suas restries.

Restrio de atributo
Uma restrio de atributo, como descrito no enunciado da questo, descreve os possveis
valores vlidos que o atributo deve assumir. Um exemplo que o atributo SEXO s faa
sentido para os valores F (feminino) e M (masculino).

Restrio de banco de dados


Uma restrio de banco de dados uma restrio que relaciona duas ou mais tuplas distin-
tas e, portanto, necessrio que todas as restries das tuplas envolvidas sejam atendidas.
Um exemplo desse tipo de restrio um pedido em uma loja virtual: o somatrio das
quantidades de todos os itens no pode ser maior que a quantidade total de elementos do
pedido.

Pgina 50 de 120
www.handbookdeti.com.br
Handbook de Questes de TI Comentadas para Concursos Volume questes de TI

Referncias

[1] Introduo a Sistemas de Banco de Dados, C. J. Date. 7a edio.


[2] Sistemas de Banco de Dados, A. Silberchatz et al. 3a edio.
[3] Sistemas de Banco de Dados, Ramez Elmasri e Shamkant B. Navathe. 4a edio.

Pgina 51 de 120
www.handbookdeti.com.br
Handbook de Questes de TI Comentadas para Concursos Volume questes de TI

21. Assuntos relacionados: Banco de Dados, ACID,


Banca: ESAF
Instituio: Secretaria do Tesouro Nacional (STN)
Cargo: Analista de Finanas e Controle - Tecnologia da Informao / Desenvolvimento de
Sistemas de Informao
Ano: 2008
Questo: 14
Se uma restrio de integridade, classicada como restrio de banco de dados, ocorrer no
momento de um COMMIT de uma transao, imediatamente executado um

(a). DROP.

(b). ROLLBACK.

(c). BEGIN_TRANSACTION.

(d). END_TRANSACTION.

(e). LOCKING.

Soluo:
A integridade a qualidade de garantir que os dados em um banco de dados estejam corre-
tos. Geralmente, as restries de integridade so denies de valores permitidos de serem
atribudos a determinadas variveis. No momento de uma insero de dados, ou mesmo de
uma atualizao em dados j existentes, as restries de integridade devem ser respeitadas
e, para tanto, vericaes so efetuadas antes da insero/atualizao serem concretizadas.
A questo natural que surge o momento da vericao e da consequente execuo da ope-
rao solicitada (insero/atualizao).

A concorrncia de operaes em um banco de dados, isto , a execuo simultnea de


operaes sobre uma mesma parte da base de dados disponvel, situao corriqueira a ser
tratada por SGBDs (Sistemas de Gerenciamento de Banco de Dados). Essa concorrncia
sobre a base de dados, se mal gerenciada, pode provocar inconsistncias nos dados alterados.

Neste contexto, o conceito de transao surge como uma opo de soluo ao problema
da manuteno da integridade face a concorrncia de operaes. A transao, isto , um
conjunto de operaes sobre uma base de dados, deve possuir 4 caractersticas essenciais com
o intuito de auxiliar a garantia da integridade dos dados. Uma transao deve ser atmica,
ou seja, todas as operaes (ou comandos) que a compem so executadas de uma maneira
nica (todas as operaes so executadas com sucesso ou nenhuma delas executada). Uma
transao deve ser isolada de outras transaes e, consequentemente, ser executada de forma
independente das demais. Alm disso, toda transao precisa ser durvel, caracterstica que
garante a manuteno das alteraes decorrentes de uma transao concluda, mesmo que
ocorra alguma falha aps essa concluso (inclusive de fornecimento de energia eltrica). E,
por m, mas no com menos importncia, uma transao deve ser consistente, ou seja, deve
fornecer a garantia de consistncia dos dados em relao a um conjunto de regras de negcio
previamente estabelecidas.

Para uma adequada execuo, operaes de controle sobre as transaes so utilizadas.


So elas:

BEGIN_TRANSACTION: sinaliza o incio da execuo de uma transao;

Pgina 52 de 120
www.handbookdeti.com.br
Handbook de Questes de TI Comentadas para Concursos Volume questes de TI

END_TRANSACTION: determina o trmino das operaes de uma transao.


Contudo, a partir deste ponto necessrio vericar se as modicaes introduzidas pela
transao podem ser permanentemente aplicadas base de dados (comando COMMIT)
ou se a transao deve ser abortada (comando ROLLBACK) devido a algum problema
ocorrido;

COMMIT (ou COMMIT_TRANSACTION): indica o trmino da transao com


sucesso, isto , todas as alteraes na base de dados foram executadas e no sero
desfeitas;

ROLLBACK (ou ABORT): sinaliza que a transao terminou sem sucesso e ne-
nhuma modicao na base de dados foi efetuada.

Nas opes de resposta fornecidas na questo, os itens b), c) e d) citam operaes de tran-
saes dentre as quais encontra-se a operao ROLLBACK, resposta para a pergunta, con-
forme a teoria explanada at aqui. Mesmo de posse da resposta, cabe um comentrio sobre
os outros dois termos citados dentre as opes de resposta: DROP e LOCKING.

O comando DROP faz parte da DDL (Data Denition Language) de um banco de dados,
sendo responsvel por apagar itens do catlogo do banco em conjunto com outras diretivas,
como pode ser observado, por exemplo, no comando DROP TABLE que serve para apagar
uma tabela do banco de dados, ou ainda no comando DROP DATABASE que serve para
apagar o prprio banco de dados.

LOCKING (ou congelamento) um mecanismo presente em SGBDs para tentar garan-


tir o controle de concorrncia. Nada mais do que a ao, tomada mediante uma transao,
de indisponibilizar temporariamente parte da base de dados para as demais transaes.
uma atitude que deve ser evitada por propiciar a ocorrncia de deadlocks, isto , impasses
gerados por vrias transaes que disputam recursos e acabam provocando uma dependncia
circular, sem conseguirem atingirem o nal de suas execues.

Pgina 53 de 120
www.handbookdeti.com.br
Handbook de Questes de TI Comentadas para Concursos Volume questes de TI

22. Assuntos relacionados: Banco de Dados, Categorias de Linguages de Banco de Dados,


Data Denition Language (DDL), Data Manipulation Language (DML), Data Control Lan-
guage (DCL), Data Query Language (DQL), Transaction Control Language (TCL), SQL,
Banca: ESAF
Instituio: Secretaria do Tesouro Nacional (STN)
Cargo: Analista de Finanas e Controle - Tecnologia da Informao / Desenvolvimento de
Sistemas de Informao
Ano: 2008
Questo: 11
Um SBGD (Sistema Gerenciador de Bancos de Dados) possui um compilador para uma
determinada linguagem, cuja funo o processamento de declaraes, a m de identicar
as descries dos componentes do esquema conceitual do Banco de Dados. Tal linguagem
de

(a). consulta estrutura (SQL).

(b). denio de armazenamento (SDL).

(c). manipulao de dados (DML).

(d). denio de viso (VDL).

(e). denio de dados (DDL).

Soluo:
Os sistemas gerenciadores de bancos de dados utilizam diferentes linguagens para denir e
manipular o banco de dados, alm de realizar outras atividades. Tais linguagens podem ser
classicadas diversas categorias, entre as quais as mais populares so:

DDL (Data Denition Language) ou (Linguagem de Denio de Dados);

DML (Data Manipulation Language) ou (Linguagem de Manipulao de Dados);

DCL (Data Control Language) ou (Linguagem de Controle de Dados);

DQL (Data Query Language) ou (Linguagem de Consulta de Dados);

TCL (Transaction Control Language) ou (Linguagem de Controle de Transaes).

Para denir e exemplicar cada uma das categorias, vamos nos ater aos bancos de dados
relacionais, pois so estes os mais populares e cobrados em provas de concursos. No entanto,
vale ressaltar que estas e outras categorias de linguagens de SGBDs existem para as demais
tecnologias de bancos de dados, como a hierrquica, a de rede, a orientada a objetos etc.

DDL (Data Defnition Language)

Em termos conceituais, a DDL contm o conjunto de comandos utilizados para descre-


ver e criar a estrutura do banco de dados. Os comandos que compe a DDL so os que
permitem criar novas tabelas, views, ndices, e outros elementos de dados. Exemplos tpicos
de comandos DDL so mostrados a seguir.

CREATE TABLE (Cria uma tabela)


DROP TABLE (Exlui uma tabela)
ALTER TABLE ADD COLUMN (Adiciona uma coluna a uma tabela)
CREATE INDEX (Cria um ndice)
ALTER INDEX (Altera um ndice)
CREATE VIEW (Cria uma view)

Pgina 54 de 120
www.handbookdeti.com.br
Handbook de Questes de TI Comentadas para Concursos Volume questes de TI

DML (Data Manipulation Language)

A DML contm o conjunto de comandos utilizados para manipular os dados, o que deve ser
entendido como a criao de novos registros nas tabelas, alm da atualizao e da excluso
de registros j existentes. Os comandos que compe a DML so, basicamente, os seguintes.

INSERT (Cria um novo registro de dados)


UPDATE (Atualiza um registro de dados)
DELETE (Exclui um registro de dados)
DCL (Data Control Language)

Os comandos que compe a DCL tm por nalidade, basicamente, permitir o controle de


aspectos no funcionais do banco de dados, como a segurana dos dados. So os comandos
DCL que permitem a criao e excluso de usurios, a criao de pers de acesso, a altera-
o de senhas, e as operaes de concesso e revogao de acesso aos diversos elementos de
dados. Exemplos tpicos de comandos DCL so mostrados a seguir.

GRANT (Autoriza ao usurio executar uma operao sobre algum elemento de dado)
REVOKE (Revoga do usurio o direito de executar uma operao)
ALTER PASSWORD (Altera a senha de um usurio)
CREATE ROLE (Cria um perfil de acesso)
DQL (Data Query Language)

A DQL formada pelo conjunto de comandos e operadores que permitem a realizao


de consultas no banco de dados. No mbito dos bancos de dados relacionais, o nico co-
mando DQL o SELECT. No entanto, a DQL engloba uma vasta quantidade de clusulas
e operadores, que permite consultar o banco de dados de inmeras formas.

As principais clusulas da DQL so as seguintes:

FROM (Utilizada para especificar a tabela que se vai selecionar os registros)


WHERE (Utilizada para especificar as condies que devem reunir os registros que
sero selecionados)
GROUP BY (Utilizada para separar os registros selecionados em grupos especficos)
HAVING (Expressar a condio que deve ser satisfeita por cada grupo selecionado)
ORDER BY (Ordena os registros selecionados)
DISTINCT (Selecionar dados sem repetio)
Com relao aos operadores lgicos e de comparao, merecem destaque os seguintes:

AND (E lgico)
OR (OU lgico)
NOT (Negao lgica)
< (Menor que)
> (Maior que)
<> (Diferente de)
<= (Menor ou Igual que)
>= (Maior ou Igual que)
= (Igual a)
BETWEEN (Utilizado para especificar um intervalo de valores)
LIKE (Utilizado na comparao de padres de cadeias de caracteres)

Pgina 55 de 120
www.handbookdeti.com.br
Handbook de Questes de TI Comentadas para Concursos Volume questes de TI

Por m, merecem destaque as funes de agregao, que adicionam DQL a capacidade
de agregar os resultados de uma consulta em um nico valor. As principais funes de
agregao so as seguintes:

AVG (Calcula a mdia dos valores de um campo determinado)


COUNT (Calcula o nmero de registros da seleo)
SUM (Calcula a soma de todos os valores de um campo determinado)
MAX (Calcula o valor mais alto de um campo determinado)
MIN (Calcula o menor valor de um campo determinado)

TCL (Transaction Control Language)

Finalizando as categorias de linguagens, temos a TCL, cujos comandos permitem controlar


a execuo das transaes em um SGBD. Os comandos TCL mais comuns so os seguintes:

BEGIN TRANSACTION (Define o incio de uma transao de banco de dados)


COMMIT (Confirma todas as mudanas permanentemente)
ROLLBACK (Descarta todas as mudanas nos dados desde que o ltimo COMMIT)
SET TRANSACTION (Modifica opes da transao, como o nvel de isolamento)

Diante de toda a teoria exposta, podemos armar que a resposta da questo a alternativa
E  DDL (Data Denition Language).

Pgina 56 de 120
www.handbookdeti.com.br
Handbook de Questes de TI Comentadas para Concursos Volume questes de TI

23. Assuntos relacionados: SGBD, Otimizador de Consultas, Data Manipulation Language


(DML), Data Denition Language (DDL),
Banca: ESAF
Instituio: Secretaria do Tesouro Nacional (STN)
Cargo: Analista de Finanas e Controle - Tecnologia da Informao / Desenvolvimento de
Sistemas de Informao
Ano: 2008
Questo: 13
Em um SGBD (Sistema Gerenciador de Bancos de Dados), as requisies de manipulao
de dados so processadas por um componente capaz de determinar uma maneira eciente
de implement-las. Tal componente o

(a). processador da linguagem de manipulao de dados (DML).

(b). gerenciador tem tempo de execuo.

(c). otimizador.

(d). processador da linguagem de denio de dados (DDL).

(e). esquema fsico.

Soluo:
Um Sistema Gerenciador de Bancos de Dados (SGBD) composto por vrios mdulos, com
atribuies especcas. A Linguagem de Denio de Dados (DDL  Data Denition Lan-
guage), responsvel por construes declarativas dos objetos da base de dados, precisa de
um processador de DDL (ou compilador) que lhe interprete os comandos. Tal compi-
lador processa as denies de esquema, especicados na DDL, e armazena descries dos
esquemas (meta-dados) no catlogo do SGBD. Da mesma forma, a Linguagem de Mani-
pulao de Dados (DML  Data Manipulation Language), que permite o processamento
ou manipulao dos dados armazenados, faz uso de um processador de DML dedicado
tarefa de compilar os comandos DML em cdigos-objeto para acesso base de dados. Essas
requisies de acesso so gerenciadas pelo processador da base de dados em tempo de
execuo (runtime database processor), que recebe as operaes de atualizao ou obten-
o de dados e, quando necessrio, transporta tais dados para fora do banco de dados, em
atendimento s consultas efetuadas.

Um consulta expressa em uma linguagem de alto-nvel, como a linguagem SQL, deve pri-
meiramente ser escaneada, parseada e validada. O processo de escaneamento identica
os tokens da linguagem no texto da consulta, ao passo que o parser verica a sintaxe da
pesquisa para determinar se houve uma formulao segundo as regras gramaticais impostas.
A etapa de validao verica se os atributos e relaes presentes na consulta so vlidos e
se fazem sentido semanticamente face ao esquema do banco de dados. Em seguida, uma
estratgia de execuo para recuperao do resultado da consulta precisa ser denida. Ge-
ralmente, uma consulta possui diversas estratgias de execuo. O mdulo otimizador de
consultas responsvel por elaborar um plano de execuo mais adequado para obter o
resultado desejado da forma mais eciente possvel.

As quatro primeiras alternativas apresentadas como possveis respostas questo apresen-


tam elementos que constituem um SGBD, sendo que o item c) exibe a resposta correta,
conforme teoria explanada. A alternativa e) exibe no um elemento de SGBD, mas sim
um componente da arquitetura de um banco de dados baseada em trs esquemas: esquema

Pgina 57 de 120
www.handbookdeti.com.br
Handbook de Questes de TI Comentadas para Concursos Volume questes de TI

fsico (ou esquema interno, ou nvel interno), esquema conceitual (ou nvel conceitual) e
esquema(s) externo(s) (ou nvel de viso). O objetivo dessa arquitetura em trs esquemas
separar as aplicaes de usurio da estrutura fsica do banco de dados.

Pgina 58 de 120
www.handbookdeti.com.br
Handbook de Questes de TI Comentadas para Concursos Volume questes de TI

24. Assuntos relacionados: Bancos de Dados Distribudos,


Banca: CESGRANRIO
Instituio: BNDES
Cargo: Analista de Suporte
Ano: 2008
Questo: 68
A fragmentao de dados utilizada em um banco de dados distribudo tem como objetivo
dividir as informaes de uma determinada relao R. Sobre essa fragmentao de dados,
tem-se que

(a). os dados esto sempre replicados pelos diversos ns existentes, no caso das frag-
mentaes horizontal e vertical.

(b). no possvel reconstruir a relao original R por meio dos diversos fragmentos
existentes.

(c). na fragmentao vertical, ocorre a decomposio de atributos de R em um ou mais


fragmentos.

(d). na fragmentao vertical, ocorre a decomposio de R em subconjuntos de dados


selecionados a partir de um critrio comum de ltragem relativo a um atributo de
R.

(e). a reconstruo dos dados de uma fragmentao horizontal possvel atravs da


interseo dos subconjuntos de dados fragmentados.

Soluo:
Como mencionado no enunciado da questo, a fragmentao de dados uma tcnica utilizada
em bancos de dados distribudos, e tem como objetivo dividir as informaes de uma deter-
minada relao R por vrios servidores (chamados ns) de banco de dados. A fragmentao
permite o processamento paralelo, que proporciona ganho de desempenho, especialmente,
nas operaes de consulta.

Os dois mtodos de fragmentao mais comuns so a fragmentao horizontal e a frag-


mentao vertical, ilustrados na Figura 5.

Figura 5: fragmentao de dados.

As caractersticas da fragmentao horizontal so as seguintes:

cada fragmento contm um subconjunto das tuplas da relao completa;

cada tupla de uma relao precisa ser armazenada em pelo menos um servidor;

a relao completa pode ser obtida fazendo a unio dos fragmentos;

no h necessidade de replicao de dados entre os ns.

Pgina 59 de 120
www.handbookdeti.com.br
Handbook de Questes de TI Comentadas para Concursos Volume questes de TI

J na fragmentao vertical:

relaes so decompostas em conjuntos de atributos mantidos em servidores diferentes;

cada fragmento uma projeo da relao completa;

a relao completa pode ser obtida fazendo a juno de todos os fragmentos;

h necessidade de replicao da chave primria entre os ns para que seja possvel a


operao de juno.

Como podemos notar, para se obter a relao completa necessrio realizar operaes de
unio (no caso da fragmentao horizontal) ou de juno (no caso da fragmentao vertical).
Tais operaes so de responsabilidade do SGBD, de modo a permitir aos usurios utilizarem
o banco de dados de forma transparente, como se estivessem utilizando um SGBD no-
distribudo.

Pgina 60 de 120
www.handbookdeti.com.br
Handbook de Questes de TI Comentadas para Concursos Volume questes de TI

25. Assuntos relacionados: Sistemas Distribudos, Independncia de Localizao, Indepen-


dncia de Fragmentao, Independncia do Sistema Operacional,
Banca: Cesgranrio
Instituio: Petrobras
Cargo: Analista de Sistemas - Processos de Negcio
Ano: 2008
Questo: 64
Sistemas de informaes distribudos so aqueles em que dados so armazenados e proces-
sados em diferentes localizaes. Um banco de dados distribudo um exemplo deste tipo
de sistema. Para o usurio, um sistema de banco de dados distribudo deve parecer exata-
mente como um sistema no distribudo. Para que tal meta seja alcanada, alguns objetivos
secundrios so normalmente estabelecidos, entre os quais NO se inclui a
(a). independncia de localizao.

(b). independncia de fragmentao.

(c). independncia do sistema operacional.

(d). operao contnua.

(e). coordenao em um n central.

Soluo:
Operao contnua

Uma vantagem dos sistemas distribudos (SD) que eles devem fornecer maior conabi-
lidade e maior disponibilidade. A conabilidade em SD implica no funcionamento sem
queda em qualquer momento, isto acontece, porque sistemas distribudos podem continuar
a funcionar mesmo diante da falha de algum componente individual, como um servidor iso-
lado. A disponibilidade refere se ao funcionamento continuamente sem queda do sistema
durante um perodo, isso porque existe a possibilidade de replicao dos dados.

No ser preciso desligar o sistema para a execuo de alguma tarefa, como adicionar um ser-
vidor ou atualizar o sistema de banco de dados. Esta caracterstica fundamental, uma vez
que os sistemas garantem o funcionamento/acesso dos dados/metadados, independente do
tempo necessrio para manipul-los. Como os metadados estaro distribudos (replicados)
em todos os servidores, mesmo na presena de uma falha, algum servidor disponibilizar os
metadados para serem manipulados.

Independncia de localizao

Tambm conhecida por transparncia de localizao, quando os usurios no precisam


saber onde esto sicamente armazenados os dados. uma caracterstica desejvel, pois
simplica programas e atividades em aplicaes e permite que dados migrem de um servi-
dor para outro, sem invalidar qualquer desses programas e atividades. Essa capacidade de
migrao desejvel porque permite que dados sejam deslocados pela rede em resposta a
alteraes de exigncias de desempenho. Utilizando-se de metadados, a transparncia de
armazenamento faz com que os usurios das aplicaes desconheam a forma (em que local)
como os metadados so mantidos, simplicando a adio de novos servidores no sistema
distribudo.

Pgina 61 de 120
www.handbookdeti.com.br
Handbook de Questes de TI Comentadas para Concursos Volume questes de TI

Independncia de fragmentao

Um sistema admite fragmentao de dados se uma dada varivel de relao armazenada


pode ser dividida em pedaos (fragmentos) para ns de armazenamento fsico. A fragmen-
tao desejvel por razes de desempenho: os dados podem ser armazenados no local
em que so mais freqentemente utilizados, de modo que a maior parte das operaes seja
apenas local e o trfego na rede seja reduzido.

Independncia de sistema Operacional

O suporte a um sistema de banco de dados distribudos implica que uma nica aplica-
o seja capaz de operar de modo transparente sobre dados dispersos em uma variedade
de banco de dados diferentes, gerenciados por vrios SGBDs diferentes, em execuo em
uma variedade de mquinas diferentes que podem estar rodando em diversas plataformas
diferentes e uma variedade de sistemas operacionais. Onde o modo transparente diz respeito
aplicao operar sob um ponto de vista lgico como se os dados fossem gerenciados por
um nico SGBD, funcionando em uma nica mquina com apenas um sistema operacional.

Assim, um sistema distribudo consiste em adicionar o poder computacional de diversos


computadores interligados por uma rede de computadores ou mais de um processador traba-
lhando em conjunto no mesmo computador, para processar colaborativamente determinada
tarefa de forma coerente e transparente, ou seja, como se apenas um nico e centralizado
computador estivesse executando a tarefa, portanto a alternativa E est incorreta.

Pgina 62 de 120
www.handbookdeti.com.br
Handbook de Questes de TI Comentadas para Concursos Volume questes de TI

26. Assuntos relacionados: Banco de Dados, Normalizao de Banco de Dados, Primeira


Forma Normal (1FN), Segunda Forma Normal (2FN), Terceira Forma Normal (3FN),
Banca: CESGRANRIO
Instituio: BNDES
Cargo: Analista de Suporte
Ano: 2008
Questo: 46
A relao Vendas, apresentada a seguir, foi montada para armazenar os dados de um sistema
de vendas. Considere que atributo sublinhado representa o identicador da relao, e item
marcado com * representa atributo multi-valorado.

Vendas(NumeroNota, CodProduto, DescProduto, NomeCliente, CPFCliente, Data,


QtdeVendida, ValorUnitVendido, Peso, Telefone*)

Foram especicadas as seguintes dependncias funcionais:

CodProduto DescProduto, Peso


NumeroNotaFiscal Data, CPFCliente
NumeroNotaFiscal, CodProduto QtdeVendida, ValorUnitVendido
CPFCliente NomeCliente

Considerando-se que para um dado valor em CPFCliente podem existir vrios telefones
associados e vice-e-versa, qual o conjunto de tabelas que armazena as informaes apresen-
tadas, atende s dependncias funcionais e se encontra na terceira forma normal?

(a). Produtos(CodProduto, DescProduto, Peso)


Vendas(NumeroNota, CodProduto, CPFCliente, QtdeVendida, ValorUnitVendido)
Clientes(CPFCliente, NomeCliente, Data, Telefone*)

(b). Clientes(CPFCliente, NomeCliente)


Telefone(CPFCliente, Telefone)
NotasDeVenda(NumeroNota, CodProduto, CPFCliente, Data)
Produtos(CodProduto, DescProduto, ValorUnitVendido, Peso)
ProdutosVendas(NumeroNota, CodProduto, CPFCliente, QtdeVendida)

(c). Clientes(CPFCliente, NomeCliente)


Telefone(CPFCliente, Telefone)
Nota(NumeroNota, CPFCliente, Data)
Produtos(CodProduto, DescProduto, Peso)
NotasProdutos(NumeroNota, CodProduto, QtdeVendida, ValorUnitVendido)

(d). Vendas(NumeroNota, CodProduto, QtdeVendida, ValorUnitVendido, CPFCliente,


Data)
Produtos(CodProduto, DescProduto, Peso)
Cliente(CPFCliente, NomeCliente)
Telefone(CPFCliente, Telefone)

(e). Cliente(CPFCliente, Telefone, NomeCliente)


Nota(CPFCliente, NumeroNota, CodProduto, QtdeVendida, ValorUnitVendido, Data)
Produtos(CodProduto, DescProduto, Peso)

Soluo:

Pgina 63 de 120
www.handbookdeti.com.br
Handbook de Questes de TI Comentadas para Concursos Volume questes de TI

Uma dependncia funcional da forma A B revela que cada valor do atributo A determina
exatamente um valor do atributo B. Por exemplo, na dependncia funcional CodProduto
DescProduto, Peso, supomos CodProduto = 1001, a esse CodProduto estar associada
exatamente uma dupla da forma DescProduto, Peso, por exemplo: Sabo em P Mix, 500g.
Nenhuma outra dupla ser permitida para ser representada pelo CodProduto 1001.

Um conjunto de tabelas est na terceira forma normal se todas as suas relaes satisfa-
zem as condies da terceira forma normal. Uma relao que est na terceira forma normal
necessariamente satisfaz as condies previstas na primeira e na segunda forma normal.

A primeira forma normal probe a existncia de campos multivalorados. Logo, a alternativa


A j pode ser eliminada, visto que o atributo Telefone da tabela Clientes multivalorado.

Uma relao satisfaz as condies da segunda forma normal se atender as condies da


primeira forma normal e, alm disso, respeitar a seguinte restrio: todos os atributos no-
primo (atributos que no fazem parte de nenhuma chave candidata) s podem depender
funcionalmente de conjuntos formados por todos os campos de qualquer chave candidata, e
no somente de uma parte deles. Exemplo: na tabela NotasDeVenda, os campos CPFCliente
e Data dependem funcionalmente somente do campo NumeroNota, e no de toda a chave
primria (NumeroNota, CodProduto), que por denio uma chave candidata. Logo, a
alternativa B tambm pode ser eliminada, uma vez que no atende nem segunda forma
normal.

Analisando a denio acima, podemos concluir que as relaes da alternativa C satisfa-


zem s condies da segunda forma normal. O que mais necessrio para que essas relaes
estejam na terceira forma normal? Para responder essa pergunta necessrio conhecer mais
algumas denies. A primeira delas o de atributo no-primo, que, basicamente, um
atributo que no pertence a nenhuma chave candidata da relao. Outro conceito o de
dependncia funcional transitiva: quando uma dependncia funcional X Z determinada
indiretamente da forma X Y e Y Z. Voltando denio da terceira forma normal. Ela
exige que todo atributo no-primo da relao seja diretamente dependente (ou seja, no seja
transitivamente dependente) de qualquer chave candidata. No existe nenhuma relao
transitiva dos atributos no-primo nas relaes descritas na alternativa C. Logo, essa a
resposta correta para a questo.

Finalizando, a relao Vendas da alternativa D e as relaes Cliente e Nota da alterna-


tiva E no satisfazem as condies da segunda forma normal. Portanto, tambm no esto
na terceira forma normal.

Pgina 64 de 120
www.handbookdeti.com.br
Handbook de Questes de TI Comentadas para Concursos Volume questes de TI

27. Assuntos relacionados: Banco de Dados, Modelo Relacional, Normalizao de Banco de


Dados, Primeira Forma Normal (1FN),
Banca: CESGRANRIO
Instituio: Petrobras
Cargo: Analista de Sistemas - Eng. de Software
Ano: 2008
Questo: 23
correto armar que qualquer relao vlida de um modelo relacional:

(a). pode apresentar tuplas duplicadas, desde que no haja chaves candidatas denidas.

(b). em seus atributos ordenados da esquerda para a direita, de acordo com a denio.

(c). tem suas tuplas naturalmente ordenadas, para ns de localizao.

(d). tem um ndice fsico para cada chave candidata, incluindo a chave primria.

(e). est, pelo menos, na primeira forma normal.

Soluo:
Conceitualmente, em um banco de dados relacional, as relaes podem ser denidas como
um conjunto de tuplas. Uma tupla uma sequncia ordenada de atributos e representa,
usualmente, um objeto do mundo real e suas informaes. Todas as tuplas em uma mesma
relao possuem o mesmo conjunto de atributos. Entretanto, em uma relao, elas devem
preservar o que chamado de integridade existencial, que, basicamente, implica que tuplas
iguais (com todos os valores dos seus atributos iguais) no so permitidas. Caso contrrio,
no temos uma relao.

A forma de garantir a integridade existencial denir uma chave primria, que, obrigato-
riamente, deve ser no-nula e nica em toda relao. Logicamente, sendo a chave primria
nica, as tuplas duplicadas no sero permitidas e a relao estar garantida.

Deve car clara a diferena entre tabela e relao. Uma tabela nada mais do que um
conjunto de linhas e colunas. J as relaes, que j foram denidas acima, so implementa-
das sicamente em tabelas, que, obviamente, devem atender s condies exigidas em uma
relao. Ou seja, nem toda tabela representa uma relao.

Na denio da primeira forma normal dada por Date, uma tabela est na primeira formal
normal se, e somente se, for isomrca alguma relao. Isso quer dizer que, especicamente,
a tabela deve atender s cinco condies abaixo:

no existe uma ordenao das linhas de cima para baixo;

no existe uma ordenao das colunas da direita para esquerda;

no existem linhas duplicadas;

qualquer interseo linha-coluna deve conter exatamente um valor no domnio aplicvel


e nada mais;

todas as colunas so regulares, no sentido de no possurem componentes ocultos como


identicadores de linhas, identicadores de colunas, identicadores de objetos ou times-
tamps ocultos. Veja nas Tabelas 3, 4 e 5 um exemplo de cenrio em que a informao
contida em uma tabela que no est na 1FN transportada para outras tabelas que
esto na 1FN.

Pgina 65 de 120
www.handbookdeti.com.br
Handbook de Questes de TI Comentadas para Concursos Volume questes de TI

idPessoa nmPessoa dtAniversario nrTelefones


1 Joo Roberto 01/05/1980 9311-9654 - 3698-5741
2 Juliana Gomes 28/02/1985 3232-4521 - 6352-9821 - 3987-8855
3 Talita Brando 03/12/1988 5561-9874

Tabela 3: exemplo de tabela que no est na 1FN.

idPessoa nmPessoa dtAniversario


1 Joo Roberto 01/05/1980
2 Juliana Gomes 28/02/1985
3 Talita Brando 03/12/1988

Tabela 4: exemplo de tabela que est na 1FN.

idTelefone idPessoa nrTelefone


1 1 9311-9654
2 1 3698-5741
3 2 3232-4521
4 2 6352-9821
5 2 3987-8855
6 3 5561-9874

Tabela 5: exemplo de tabela que est na 1FN.

Dada a exposio terica, podemos analisar as alternativas da questo:

a. falsa, uma relao vlida no permite tuplas duplicadas.

b. falsa, a ordenao dos atributos no dene a relao.

c. falsa, a ordenao das linhas no dene a relao.

d. falsa, a relao uma denio no nvel conceitual. Os ndices fsicos so denidos no


nvel fsico e no inuenciam no conceito de relao. Geralmente, esses ndices podem
ser livremente criados para qualquer conjunto de atributos, j a obrigao citada de
serem criados para cada chave candidata no existe e no faz nenhum sentido.

e. verdadeira, pois, por denio, uma tabela representa uma relao se, e somente se, a
tabela est na primeira forma normal.

Pgina 66 de 120
www.handbookdeti.com.br
Handbook de Questes de TI Comentadas para Concursos Volume questes de TI

28. Assuntos relacionados: Banco de Dados, Normalizao de Banco de Dados, Primeira


Forma Normal (1FN), Segunda Forma Normal (2FN), Terceira Forma Normal (3FN),
Banca: CESGRANRIO
Instituio: Petrobras
Cargo: Analista de Sistemas - Eng. de Software
Ano: 2008
Questo: 25
As informaes a seguir so comuns s questes de nmero 5 ao 8

Considere as tabelas de um banco de dados relacional descritas abaixo, onde os campos


que compem chaves primrias esto assinalados com *.

TABELA CAMPOS
CLIENTE *CODIGO_C, CPF, NOME, CIDADE
PRODUTO *CODIGO_P, DESCRICAO, PRECO
VENDA *CODIGO_C, *CODIGO_P, CPF, DATA, QUANTIDADE

H uma chave estrangeira de VENDA para CLIENTE com base nos campos CODIGO_C
e de VENDA para PRODUTO com base nos campos CODIGO_P. O campo CPF chave
candidata para CLIENTE e tambm armazenado na tabela VENDA. Os campos NOME
e DESCRICAO tambm so chaves candidatas de suas respectivas tabelas. Os campos CI-
DADE, PRECO, DATA e QUANTIDADE admitem valores repetidos.

Sobre as formas normais a que as tabelas satisfazem, assinale a armativa correta.

(a). CLIENTE satisfaz segunda forma normal (2FN), mas no terceira (3FN).

(b). PRODUTO satisfaz segunda forma normal (2FN), mas no terceira (3FN).

(c). VENDA satisfaz segunda forma normal (2FN), mas no terceira (3FN).

(d). VENDA no satisfaz segunda forma normal (2FN).

(e). As trs tabelas satisfazem terceira forma normal (3FN).

Soluo:
Primeiramente, vamos denir o que dependncia funcional. Dizemos que B funcional-
mente dependente de A (A B) se, para cada valor de A, existe exatamente um atributo B.
Um exemplo prtico cidade estado, uma cidade A implicar em exatamente um estado
B correspondente. No caso, A o determinante e B o dependente.

A dependncia funcional trivial indica que um determinante com mais de um atributo


pode determinar seus prprios membros quando isolado. Exemplo: {banco, agencia}
{agencia}. A dependncia funcional no-trivial indica que um determinante identica outro
atributo qualquer {banco, agencia} {cidade}.

Se um atributo A determina B e se B determina C, podemos dizer que A determina C


de forma transitiva. Isto , existe uma dependncia funcional transitiva de A para C. Exem-
plo: cidade estado, estado pais, ento cidade pais.

Uma chave candidata um atributo ou conjunto de atributos que nico dentre todos
os registros. J a chave primria uma chave escolhida entre as chaves candidatas para ser
o identicador principal da tabela.

Pgina 67 de 120
www.handbookdeti.com.br
Handbook de Questes de TI Comentadas para Concursos Volume questes de TI

Outra denio importante a do atributo no-primo, que um atributo que no ocorre


em nenhuma das chaves candidatas da tabela.

Sabemos que uma tabela est na segunda forma normal se ela est na primeira forma nor-
mal e no existe atributo no-primo na tabela que seja funcionalmente dependente de algum
subconjunto prprio de qualquer chave candidata. Melhor dizendo: todas as colunas que
no fazem parte de nenhuma chave candidata dependem de todas as colunas que compem
qualquer chave candidata. Quando s h uma chave candidata (no caso a primeira) e ela
composta por somente um atributo, automaticamente a tabela estar na segunda forma
normal se j tiver atendido s condies da primeira forma normal.

Sendo assim, j podemos notar que a tabela CLIENTE e a tabela PRODUTO esto na
segunda forma normal garantidamente. J ao analisarmos a tabela VENDA poderamos nos
enganar ao acharmos que pelo fato de CPF ser dependente funcionalmente de CODIGO_C,
estaramos violando a condio exigida da segunda forma normal, j que CODIGO_C um
subconjunto prprio da chave primria. Essa concluso seria verdadeira se no fosse pelo
fato de {CPF,CODIGO_P} ser uma chave candidata, tornando o atributo CPF primo, ou
seja no no-primo. Conclumos, assim, que a tabela VENDA est na segunda forma normal.

Uma tabela est na terceira forma normal se qualquer atributo no-primo no transi-
tivamente dependente de qualquer chave candidata da tabela. Ao analisarmos a tabela
CLIENTE, notamos que o atributo CIDADE o nico no-primo, sendo impossvel, dessa
maneira, haver dependncia funcional em que uma chave candidata no seja o atributo de-
terminante. Ou seja, todas as dependncias funcionais so diretas a partir de qualquer chave
candidata e a tabela CLIENTE est na terceira forma normal. O nico atributo no-primo
da tabela PRODUTO PRECO. Portanto, seguindo o mesmo raciocnio anterior, conclu-
mos que PRODUTO est na terceira forma normal.

A tabela VENDA tem 2 atributos no-primo: DATA e QUANTIDADE. Como no h


dependncia funcional entre eles, essa tabela tambm est na terceira forma normal.

Logo, conclumos que todas as tabelas satisfazem terceira forma normal e a alternativa a
ser marcada a alternativa E.

Se continussemos a analisar quais formas normais so atendidas pelas tabelas da ques-


to, chegaramos concluso de que as tabelas CLIENTE e PRODUTO satisfazem forma
normal de Boyce Codd (FNBC), ao contrrio da tabela VENDA, que no satisfaz. Uma
tabela que no satisfaz a forma normal de Boyce Codd (FNBC) pode ser identicada com
as seguintes caractersticas:

encontramos duas ou mais chaves candidatas ({CODIGO_C, CODIGO_P} e {CPF,


CODIGO_P}, no caso da tabela VENDA);

as chaves candidatas apresentam mais de um atributo (so compostas);

todas as chaves candidatas tm um atributo em comum (CODIGO_P, no caso das


chaves candidatas da tabela VENDA).

Pgina 68 de 120
www.handbookdeti.com.br
Handbook de Questes de TI Comentadas para Concursos Volume questes de TI

29. Assuntos relacionados: Modelo Relacional, Banco de Dados, Normalizao de Banco de


Dados,
Banca: FCC
Instituio: TRT 2a Regio
Cargo: Analista Judicirio - Tecnologia da Informao
Ano: 2008
Questo: 40
Para eliminar a condio de existncia de valores no atmicos em uma coluna de tabela
relacional,

(a). deve ser aplicada, no mnimo, a primeira Forma Normal.

(b). devem ser aplicadas, no mnimo, as quatorze regras de Codd.

(c). deve ser aplicada, no mnimo, a Forma Normal Boyce-Codd.

(d). deve ser aplicada, no mnimo, a terceira Forma Normal.

(e). devem ser aplicadas, no mnimo, as regras de integridade referencial.

Soluo:
Para resolvermos a presente questo bom relembrarmos alguns tipos de atributos existen-
tes no Modelo Entidade-Relacionamento (MER), o signicado de Normalizao de Dados,
Super-chave, Chave-candidata, Chave-primria, dependncia Funcional e dependncia no-
Transitiva entre atributos:

cada entidade em um MER tem propriedades particulares, chamadas atributos, que


a descrevem. Por exemplo, uma entidade EMPREGADO pode ser descrita pelo seu
nome, o trabalho que realiza, idade, endereo e salrio. Uma entidade em particular
ter um valor para cada um de seus atributos. Alguns atributos podem ser divididos
em subpartes com signicados independentes. Por exemplo, Endereo de uma entidade
pode ser dividido em Endereo da Rua, Cidade, Estado e CEP. Um atributo que
composto de outros atributos mais bsicos chamado composto. J, atributos que
no so divisveis so chamados simples ou atmicos. Muitos atributos tm apenas
um nico valor. Tais atributos so chamados atributos univalorados (exemplo, Data
de Nascimento de uma entidade qualquer). Em outros casos, um atributo pode ter
um conjunto de valores. Tais atributos so chamados de atributos multivalorados
(exemplo, Telefone de Contato de uma entidade qualquer). Atributos multivalorados
podem possuir uma multiplicidade, indicando as quantidades mnima e mxima de
valores;

a Normalizao de Dados um processo formal, passo a passo, de anlise dos atribu-


tos de uma relao com o objetivo de evitar redundncia de informao, eliminando
as chamadas anomalias de atualizao (Incluso, Excluso Modicao). Baseia-se no
conceito de FORMAS NORMAIS. Uma relao (tabela) dita estar em uma determi-
nada forma normal, se ela satiszer a um conjunto especco de restries;

Super-chave: qualquer subconjunto dos atributos de uma relao R cujos valores


no se repetem em R;

Chave-candidata: uma super-chave que possua a menor quantidade possvel de


atributos (uma das Chaves-Candidatas deve ser eleita como Chave-primria);

Dependncia Funcional entre Atributos: se o valor de uma Atributo A permite


descobrir o valor de um outro Atributo B, dizemos que A determina funcionalmente
B (A B). Por exemplo: NroMatricula NomeAluno, idade, curso. Assim, sempre
que o NroMatricula se repetir tem-se a repetio de NomeAluno, idade e curso;

Pgina 69 de 120
www.handbookdeti.com.br
Handbook de Questes de TI Comentadas para Concursos Volume questes de TI

Dependncia No-Transitiva: ocorre quando cada atributo for funcionalmente de-


pendente apenas dos atributos componentes da chave primria ou se todos os seus
atributos no chave forem independentes entre si.

(A) CORRETA

Uma relao se encontra na Primeira Forma Normal (1FN) se todos os domnios de atributos
possuem apenas valores atmicos (indivisvel), e que o valor de cada atributo na tupla seja
simples. A 1FN no permite a construo de relaes que apresentem atributos compostos
e nem possibilita a existncia de atributos multivalorados em suas tuplas. Os nicos valores
de atributos permitidos devem ser simples e atmicos.

Para normalizar para a Primeira Forma Normal deve-se:

Atributos compostos: cada um dos atributos compostos (ou no atmicos) deve ser
dividido em seus atributos componentes;

Atributos multivalorados:
 quando a quantidade de valores for pequena e conhecida a priori, substitui-se o
atributo multivalorado por um conjunto de atributos de mesmo domnio, cada um
monovalorado representando uma ocorrncia do valor;

 quando a quantidade de valores for muito varivel, desconhecida ou grande, retira-


se da relao o atributo multivalorado, e cria-se uma nova relao que tem o mesmo
conjunto de atributos chave, mais o atributo multivalorado tambm como chave,
porm agora tomado como monovalorado.

(B) ERRADA

Na verdade, Edgard F. Codd, em 1985, estabeleceu 12 regras (As 12 Regras de Codd)


que determinam o quanto um banco de dados relacional. So elas:

1. Regra das informaes em tabelas;

2. Regra de acesso garantido;

3. Regra de tratamento sistemtico de valores nulos;

4. Regra do catlogo relacional ativo;

5. Regras de atualizao de alto-nvel;

6. Regra de sublinguagem de dados abrangente;

7. Regra de independncia fsica;

8. Regra de independncia lgica;

9. Regra de atualizao de vises;

10. Regra de independncia de integridade;

11. Regra de independncia de distribuio;

12. Regra no-subversiva.

Algumas vezes as regras se tornam uma barreira e nem todos os SGBDs relacionais for-
necem suporte a elas. Alm de o nmero de regras estar errado, tal alternativa tambm
no representa a aplicao mnima necessria para atender o requisito da questo. Logo, a
alternativa est ERRADA.

Pgina 70 de 120
www.handbookdeti.com.br
Handbook de Questes de TI Comentadas para Concursos Volume questes de TI

(C) ERRADA

Um relao considerada estar na Forma Normal de Boyce-Codd (FNBC), quando:

estiver na Primeira Forma Normal (1FN); e

para cada chave candidata, todos os atributos que no participam da chave candidata
so dependentes no transitivos de toda a chave candidata.

Para Normalizar para a Forma Normal de Boyce-Codd seguem-se os mesmos passos da Ter-
ceira Forma Normal (3FN). No entanto, tal alternativa, assim como a alternativa D, tambm
no representa a aplicao mnima necessria para atender o requisito da questo. Logo, a
alternativa tambm est ERRADA.

(D) ERRADA

Que tal antes relembrarmos um pouco sobre relao na Segunda Forma Normal (2FN) e
na Terceira Forma Normal (3FN)?

Uma relao est na 2FN quando:

estiver na Primeira Forma Normal e;

todos os atributos que no participam da chave primria so dependentes funcional-


mente (diretos ou transitivos) de toda a chave primria.

Um relao considerada estar na 3FN, quando:

estiver na Segunda Forma Normal e;

todos os atributos que no participam da chave primria so dependentes no transi-


tivos de toda a chave primria.

Como vimos, uma relao que est na 3FN tambm estar na 2FN. Do mesmo modo, uma
relao na 2FN tambm estar na 1FN. Como mencionamos na alternativa A, basta estar
na 1FN para atender ao requisito da questo. Assim, conclumos que a alternava est ER-
RADA por aplicar duas operaes de normalizao a mais do que o mnimo necessrio.

(E) ERRADA

A Integridade Referencial utilizada para garantir a Integridade dos dados entre as tabelas
relacionadas. Por exemplo, considere um relacionamento do tipo Um-para-Vrios entre a
tabela Clientes e a tabela Pedidos (um cliente pode fazer vrios pedidos). Com a Integridade
Referencial, o banco de dados no permite que seja cadastrado um pedido para um cliente
que ainda no foi cadastrado. Em outras palavras, ao cadastrar um pedido, o banco de
dados verica se o cdigo do cliente que foi digitado j existe na tabela Clientes. Se no
existir, o cadastro do pedido no ser aceito. Assim, a integridade referencial garante a no
corrupo dos dados, de modo a no haver como existir um registro lho sem um registro
pai.

Pgina 71 de 120
www.handbookdeti.com.br
Handbook de Questes de TI Comentadas para Concursos Volume questes de TI

30. Assuntos relacionados: Banco de Dados, Primeira Forma Normal (1FN), Segunda Forma
Normal (2FN), Terceira Forma Normal (3FN),
Banca: FCC
Instituio: TRT 18a Regio
Cargo: Analista Judicirio - Tecnologia da Informao
Ano: 2008
Questo: 45
Dadas as tabelas abaixo com os respectivos atributos, sendo chave os atributos grifados:

I PEDIDO (num-ped, data-ped, total-ped, cod-cliente, nome-cli, endereo-cli)

II ITEM (num-ped, cod-produto, qtde-prod, preo-total)

III PRODUTO (cod-produto, nome-prod, preo-unitrio)

Encontra-se na 3FN o que consta em

(a). I, II e III.

(b). I, apenas.

(c). II, apenas.

(d). III, apenas.

(e). II e III, apenas.

Soluo:
Como este assunto muito cobrado nos concursos em geral, vamos explorar diversos conceitos
importantes para se resolver esta questo com conana.

superchave: um conjunto de um ou mais atributos que permite a identicao un-


voca de cada entidade em um conjunto de entidades. Na nomenclatura desta questo,
uma superchave identica de forma nica cada linha de uma tabela. Por exemplo,
na relao (conceito que o enunciado deveria utilizar no lugar de tabela) ITEM, o
conjunto {num-ped; preo-total} uma superchave, pois ele pode identicar de forma
nica cada item dessa relao. importante perceber que toda relao tem pelo menos
uma superchave: conjunto de todos os seus atributos;

chave candidata: uma superchave tal que nenhum dos seus subconjuntos de atri-
butos uma superchave. Ou seja, se pudermos retirar pelo menos um atributo de uma
superchave e ela continuar sendo uma superchave, a superchave inicial no uma chave
candidata. Por exemplo, quando tiramos o atributo preo-total da superchave {num-
ped; preo-total}, continuamos com uma superchave num-ped, pois num-ped identica
univocamente cada elemento da relao ITEM. Portanto, {num-ped; preo-total} no
uma chave candidata. Outra forma de entender o signicado de chave candidata
pensar que ela um subconjunto mnimo de atributos capaz de identicar de forma
nica cada item de uma relao. No se esquea que um relao pode ter mais de uma
chave candidata;

chave primaria: simplesmente uma das chaves candidatas de uma relao. o


projetista que faz essa escolha, quando h mais de uma chave candidata;

dependncia funcional: se para cada valor de um atributo A, existe exatamente um


valor para o atributo B, dizemos que B dependente funcional de A (A B) e que
A o determinante de B. Um bom exemplo formado pelos atributos CIDADE A e
ESTADO B. Como toda cidade implica em somente um estado, temos que A B;

Pgina 72 de 120
www.handbookdeti.com.br
Handbook de Questes de TI Comentadas para Concursos Volume questes de TI

dependncia funcional parcial: em uma dependncia do tipo A B, se existir um


subconjunto de A tal que ele determine B, dizemos que B dependente funcional parcial
de A. Exemplo: em {CIDADE; BAIRRO} ESTADO, como CIDADE ESTADO,
dizemos que ESTADO dependente funcional parcial de {CIDADE; BAIRRO}. Caso
no exista esse tipo de subconjunto de A, dizemos que B dependente funcional total
de A;

dependncia funcional trivial: indica que um determinante com mais de um atri-


buto determina seus prprios membros quando isolado. Exemplo: {banco; agencia}
{agencia}

dependncia funcional no-trivial: indica que um determinante identica outro


atributo qualquer {banco; agencia} {cidade};

dependncia funcional transitiva: se um atributo A determina B e B determina


C, ento, A determina C de forma transitiva. Exemplo: cidade estado, estado
pas, ento cidade pas;

atributo primo: atributo membro de qualquer chave candidata (pelo menos uma).
Dois exemplos dentro desta questo so: cod-produto e num-ped. Perceba que todos
os atributos de uma chave primria so primos;

atributo no-primo: atributo que no ocorre em nenhuma chave candidata de uma


relao. O atributo preo-unitrio da relao PRODUTO um exemplo de atributo
no-primo;

1FN: ela diz respeito a atributos. Para que uma relao esteja na 1FN, ela no pode
ter nem atributos multivalorados nem relaes aninhadas (objetos representados em
mais de um registro);

2FN: ela diz respeito a dependncia funcional parcial. Uma relao somente est na
2FN se no houver atributo no-primo dependente funcional parcial de qualquer chave
candidata. Ou seja, se houver pelo menos um atributo no-primo dependente funcional
parcial de pelo menos uma chave candidata, a relao no estar na 2FN. Lembrando
tambm que para uma relao estar na 2FN, ela tambm deve estar na 1FN;

3FN: ela diz respeito a dependncia funcional transitiva. Para que uma relao esteja
na 3FN, ela no pode ter atributo no-primo dependente transitivamente de qualquer
chave candidata. Ou seja, se houver pelo menos um atributo no-primo com depen-
dncia funcional transitiva de pelo menos uma chave candidata, a relao no estar
na 3FN. Uma consequncia que para uma relao estar na 3FN, todos os atributos
no-primo devem depender somente de atributos primos. Lembrando tambm que para
uma relao estar na 3FN, ela tambm deve estar na 2FN e na 1FN;

As dependncia funcional de uma relao so determinadas pelo negcio, e no pelo o banco


de dados em si. Por isso, o ideal seria o enunciado trazer quais so as dependncias funcio-
nais existentes em cada relao. Na falta dessa especicao, o que nos resta apelar para
o bom-senso.

Vamos analisar agora cada relao. Como o enunciado no menciona que algum atributo
pode ser multivalorado, conclumos que as 3 relaes esto na 1FN.

PEDIDO (num-ped, data-ped, total-ped, cod-cliente, nome-cli, endereo-cli)

Como no h nenhuma chave candidata composta por mais de um atributo nesta rela-
o, no h como existir dependncia funcional parcial. Portando, esta relao est na 2FN.
Perceba que cod-cliente nome-cli e que esses dois atributos so no-primos. Isso j basta

Pgina 73 de 120
www.handbookdeti.com.br
Handbook de Questes de TI Comentadas para Concursos Volume questes de TI

para concluirmos que esta relao NO est na 3FN.

ITEM (num-ped, cod-produto, qtde-prod, preo-total)

Nesta relao, h dois atributos no-primos (qtde-prod e preo-total) e uma chave can-
didata {num-ped; cod-produto}. Veja que (1) num-ped no determina nem qtde-prod nem
preo-total; (2) cod-produto no determina nem qtde-prod nem preo-total. Portanto, no
h dependncia funcional parcial e, por consequncia, esta relao est na 2FN. Como no
h dependncia funcional transitiva, esta relao est na 3FN.

PRODUTO (cod-produto, nome-prod, preo-unitrio)

Pelo mesmo motivo da relao PEDIDO, conclumos tambm que esta relao est na 2FN.
Como s h um atributo no-primo, no h como existir dependncia funcional transitiva.
Conclumos, portanto, que esta relao tambm est na 3FN.

Pelo o exposto, possvel identicar facilmente que a alternativa correta a letra e.

Pgina 74 de 120
www.handbookdeti.com.br
Handbook de Questes de TI Comentadas para Concursos Volume questes de TI

31. Assuntos relacionados: Banco de Dados, Consulta SQL,


Banca: CESGRANRIO
Instituio: BNDES
Cargo: Analista de Suporte
Ano: 2008
Questo: 60
As relaes abaixo compem uma base de dados em que atributos sublinhados so identi-
cadores e atributos em itlico so chaves estrangeiras.

Autor (CPFAutor, Nome, DataNascimento)


Obra (TituloObra, DataConclusao, CPFAutor, CodigoAssunto )
Editora (CNPJEditora, Nome, Local)
Publicacao (TituloObra, CNPJEditora , DataLancamento )
Assunto (CodigoAssunto, Descricao)

Que comando SQL apresenta como resultado a quantidade de publicaes do assunto `Poli-
cial' por editora?

(a). Select P.CNPJEditora, count(P.TituloObra)


from Publicacao P inner join Obra O
on P.TituloObra = Obra.TituloObra
inner join Assunto A on O.CodigoAssunto = A.CodigoAssunto
where A.Descricao = `Policial'

(b). Select P.CNPJEditora, count(P.TituloObra)


from Publicacao P, Obra O, Assunto A
where P.TituloObra = O.TituloObra
and O.CodigoAssunto = A.CodigoAssunto
and A.Descricao = `Policial'
group by P.CNPJEditora

(c). Select P.CNPJEditora, count(P.TituloObra)


from Publicacao P, Obra O, Assunto A, Editora E
group by P.CNPJEditora
having A.Descricao = `Policial'

(d). Select P.CNPJEditora, sum(P.TituloObra)


from Publicacao P inner join Obra O
on P.TituloObra = Obra.TituloObra
inner join Assunto A on O.CodigoAssunto = A.CodigoAssunto
where A.Descricao = `Policial'
group by P.CNPJEditora

(e). Select P.CNPJEditora, count(P.TituloObra)


from Publicacao P left outer join Obra O
on P.TituloObra = Obra.TituloObra
left outer join Assunto A on O.CodigoAssunto = A.CodigoAssunto
group by P.CNPJEditora

Soluo:
Para encontrarmos o resultado da quantidade de publicaes do assunto Policial por edi-
tora, devemos ter em mente que precisamos utilizar a funo de agrupamento groupby para

Pgina 75 de 120
www.handbookdeti.com.br
Handbook de Questes de TI Comentadas para Concursos Volume questes de TI

agrupar as editoras com mesmo CNPJ, e a funo agregada count para contabilizar o n-
mero de registros de um determinado CNPJ.

(A) ERRADA

Inner join uma operao de composio de relaes condicionais e usada na clusula


from. Sua sintaxe relacao1 inner join relacao2 on condio.

O select em questo explora as relaes de chave estrangeira entre os relacionamentos, e


a execuo dos dois inner join produzem um relacionamento de onde possvel extrair os
CNPJs cujos valores do atributo Descricao de Assunto so Policial. O problema desse
select que ele no agrupa os registros para contabilizar a quantidade de um determinado
CNPJ. Portanto, esta alternativa errada.

(B) CORRETA

Os predicados da clusula where do select em questo produzem a mesma relao obtida na


alternativa A. Com uma diferena, ao obter os registros que contm a Descricao de Assunto
igual a Policial, agrupa-se as editoras de mesmo CNPJ para contabilizar a quantidade de
editoras para cada CNPJ por meio da funo count no select. Portanto, esta a alternativa
correta.

Vale destacar que na clusula where as operaes de = exploram os relacionamentos en-


tre as relaes existentes. Ento, quando selecionamos os registros com Descricao igual a
Policial, as operaes de = garantem que estamos selecionando registros com mesmo Ti-
tuloObra e CodigoAssunto.

(C) ERRADA

O candidato desatento tende a marcar esta alternativa, pois se esquece dos relacionamentos
existentes entre as relaes. O select desta alternativa agruparia atributos CNPJEditora
da relao Publicacao diferentes do atributo CNPJEditora da relao Editora. O mesmo
vlido para os atributos de TituloObra de Obra e Publicacao. Portanto, esta alternativa
no a correta.

(D) ERRADA

O select desta alternativa utiliza a funo sum para contabilizar a quantidade de um deter-
minado CNPJ. Primeiramente, a funo correta para essa nalidade a count, e segundo, a
funo sum aceita como entrada um conjunto de nmeros. Nesse select, a funo sum recebe
o parmetro P.TituloObra, que no um nmero. Portanto, esta alternativa errada.

(E) ERRADA

O select desta alternativa no possui uma clusula where que restringe o atributo Des-
crio da relao Assunto palavra Policial. Portanto, esta alternativa tambm no a
correta.

Pgina 76 de 120
www.handbookdeti.com.br
Handbook de Questes de TI Comentadas para Concursos Volume questes de TI

32. Assuntos relacionados: Banco de Dados, SQL,


Banca: CESGRANRIO
Instituio: Petrobras
Cargo: Analista de Sistemas - Eng. de Software
Ano: 2008
Questo: 26
Considere o comando em SQL apresentado a seguir.

SELECT C.CIDADE, AVG(P.PRECO)


FROM CLIENTE C, PRODUTO P, VENDA V
WHERE C.CODIGO_C = V.CODIGO_C AND P.CODIGO_P = V.CODIGO_P AND
P.PRECO > 100
GROUP BY C.CIDADE
HAVING AVG(P.PRECO) < 200

O que exibe esse comando?

(a). Para cada cidade, a mdia de preo de produtos vendidos a clientes da cidade com
valores acima de 100, se a mdia for menor que 200.

(b). Para cada cidade, a mdia de preo dos produtos vendidos a clientes da cidade
com valores entre 100 e 200.

(c). Para cada cidade, a quantidade de produtos vendidos com valores entre 100 e 200.

(d). Para cada cidade, a mdia de preo dos produtos vendidos a clientes da cidade
que compraram produtos de valores maiores do que 100 e cuja mdia de compra
menor do que 200.

(e). Apenas a cidade cuja mdia de preo dos produtos vendidos a mais alta dentre
as que tiveram mdia menor do que 200 e produtos vendidos com valores acima
de 100.

Soluo:
A primeira clusula WHERE (C.CODIGO_C = V.CODIGO_C) ir implementar uma
juno entre as tabelas CLIENTE e VENDA. Essa juno, caso fosse considerada sozinha,
iria listar registros em que cada um iria representar uma venda de produto, mas com infor-
maes adicionais do cliente: NOME e CIDADE.

Adicionando mais uma clusula de juno (P.CODIGO_P = V.CODIGO_P ), ser re-


alizada uma juno com a relao j obtida anteriormente. Nesse caso, todos os produtos
vendidos sero listados com suas respectivas informaes de descrio, preo, data de quando
foi realizada a venda e as informaes completas do cliente.

Entretanto, ao se usar a clusula P.P RECO > 100, nem todos os produtos vendidos sero
listados. Sero listados somente aqueles cujo valor preo unitrio for superior a 100.

A clusula GROUP BY C.CIDADE ir agrupar as vendas dos produtos por cidade e


reunir informaes, de acordo com AV G(P.P RECO), do preo mdio unitrio de cada
produto, dentro, claro, dos produtos que j possuem valor unitrio maior do que 100.
Exemplicando: caso os clientes de uma determinada cidade X tenham comprado exata-
mente 6 produtos com os preos 1000, 500, 120, 120, 100 e 50, somente sero considerados
os produtos com valor maior do que 100, que so os de 1000, 500, 120 e 120. A mdia

Pgina 77 de 120
www.handbookdeti.com.br
Handbook de Questes de TI Comentadas para Concursos Volume questes de TI

unitria desses produtos (1000 + 500 + 120 + 120)/4 = 435.

J a ltima clusula HAVING AV G(P.P RECO) < 200 ir permitir que somente as cidades
cujo preo mdio dos produtos adquiridos seja menor que 200. A cidade X anteriormente
citada no ir entrar na relao nal, j que a mdia dos preos unitrios de seus produtos
adquiridos maior do que 200 (435).

Podemos concluir que a alternativa correta a letra A. A letra D pode confundir um pouco,
mas ela est errada, pois o que est sendo considerado a mdia do preo do produto
HAVING AV G(P.P RECO) < 200 e no a mdia de compra.

Pgina 78 de 120
www.handbookdeti.com.br
Handbook de Questes de TI Comentadas para Concursos Volume questes de TI

33. Assuntos relacionados: Banco de Dados, SQL,


Banca: FCC
Instituio: MPU
Cargo: Analista de Desenvolvimento de Sistemas
Ano: 2007
Questo: 64
Funes de um banco de dados relacional que operam contra uma coleo de valores, mas
retornam um nico valor, so

(a). agregadas tal como, por exemplo, MAX.

(b). escalares tal como, por exemplo, COUNT.

(c). escalares tal como, por exemplo, SUM.

(d). agregadas tal como, por exemplo, MID.

(e). agregadas tal como, por exemplo, LEFT.

Soluo:
Um banco de dados relacional usa um conjunto de tabelas para representar tanto os dados
como as relaes entre eles.

As consultas em um sistema de banco de dados, tipicamente, so realizadas segundo a


linguagem SQL (Structured Query Language  Linguagem de Consulta estruturada), que
possui diversas partes, sendo que as principais so a:

Linguagem de denio de dados (DDL). A DDL proporciona comandos para a de-


nio de esquemas de relaes, excluso de relaes, criaes de ndices e modicao
nos esquemas das relaes;

Linguagem interativa de manipulao de dados (DML). A DML engloba comandos


para insero, excluso e modicao de registros no banco de dados.

A estrutura bsica de uma expresso em SQL formada por trs clusulas: select, from
e where. A clusula select utilizada para relacionar atributos desejados nos resultados
das consultas. A clusula from associa as relaes que sero pesquisadas, e clusula where
consiste em um predicado (expresso booleana). Tipicamente, uma consulta tem a seguinte
forma:

select a1, a2
from r1, r2
where p

Onde a1 e a2 representam os atributos a serem mostrados no resultado da consulta, r1 e r2


as relaes (tabelas) do banco e p o predicado.

As funes escalares so funes que retornam um nico valor como resultado, baseado
sobre um valor de entrada. Esto relacionadas manipulao de strings, de nmeros, de
data, funes do sistema e funes de converso de tipos de dados. Alguns exemplos de
funes escalares: UCASE (converte uma string para maisculo), LCASE (converte uma
string para minsculo) e LEN (retorna o tamanho da string).

As funes agregadas so funes que tem como entrada um conjunto de valores (valores

Pgina 79 de 120
www.handbookdeti.com.br
Handbook de Questes de TI Comentadas para Concursos Volume questes de TI

de uma coluna de uma tabela), e retornam um valor simples. Algumas funes agregadas:
AVG (average  mdia), MIN (minimum  minmo), MAX (maximum  mximo), SUM
(total - total) e COUNT (contagem).

(A) A funo MAX uma funo agregada da linguagem SQL. Portanto, alternativa correta.

(B) A funo COUNT tambm uma funo agregada. A funo COUNT muito uti-
lizada para contar o nmero de registros de uma tabela. A SQL no permite utilizar a
funo COUNT com a clusula distinct.

(C) A funo SUM tambm uma funo agregada. A entrada para SUM e para AVG
precisa ser um conjunto de nmeros, mas as outras funes agregadas aceitam tambm ti-
pos de dados no-numricos (como strings).

(D) A funo MID uma funo escalar que extrai caracteres de uma string.

(E) A funo LEFT uma funo escalar que retorna os caracteres mais a esquerda de
uma string de acordo com a quantidade especicada.

Pgina 80 de 120
www.handbookdeti.com.br
Handbook de Questes de TI Comentadas para Concursos Volume questes de TI

34. Assuntos relacionados: Banco de Dados, SQL,


Banca: FCC
Instituio: TCE/CE
Cargo: Analista de Controle Externo - Auditoria de Tecnologia da Informao
Ano: 2008
Questo: 75
Considere o seguinte requisito: Para cada departamento com menos de 1000 funcionrios
devem ser listados os salrios mdios de cada departamento. As clusulas SQL-ANSI vin-
culadas a uma nica expresso SELECT, uma que calcula o salrio mdio e a outra que
restringe a quantidade de empregados so, respectivamente,

(a). MID e COUNT.

(b). AVG e COUNT.

(c). AVG e HAVING.

(d). MID e WHERE.

(e). MID e HAVING.

Soluo:
No SQL-ANSI, a funo que calcula a mdia de um conjunto de valores a AVG (que vem
de average, que em ingls signica mdia). Portanto, essa j uma pista de que a resposta
s pode ser a alternativa B ou C.

A funo COUNT, que aparece na alternativa B, utilizada para fazer uma contagem
simples da quantidade de elementos retornados em uma consulta SQL. Portanto, por elimi-
nao, j seria possvel chegar a resposta da questo, que a alternativa C. No entanto, ela
ser necessria a consulta para contar o nmero de empregados por departamento.

A clusula HAVING, assim como a clusula WHERE, utilizada para restringir os resul-
tados das consultas SQL. No entanto, o HAVING s utilizado em consultas que retornam
resultados agrupados pela clusula GROUP BY.

Pensemos no que poderia ser um modelo de dados para o caso ilustrado na questo:

DEPARTAMENTOS (DPTO_ID, DPTO_NOME)


FUNCIONARIOS (FUNC_ID, FUNC_NOME, FUNC_SALARIO)
DEPARTAMENTOS_FUNCIONARIOS (DPTO_ID, FUNC_ID)

Portanto, a consulta que retornaria o nome e o salrio mdio dos departamentos com menos
de 1000 funcionrios seria:

SELECT
D.DPTO_NOME, AVG(F.FUNC_SALARIO) AS SALARIO_MEDIO // Calcula mdia salarial

FROM
FUNCIONARIOS F,
DEPARTAMENTOS_FUNCIONARIOS DF,
DEPARTAMENTOS D,
( SELECT
DPTO_ID, COUNT(FUNC_ID) AS FUNCS_POR_DPTO // Contagem de funcionrios

Pgina 81 de 120
www.handbookdeti.com.br
Handbook de Questes de TI Comentadas para Concursos Volume questes de TI

FROM
DEPARTAMENTOS_FUNCIONARIOS
GROUP BY
DPTO_ID // Agrega contagem por departamento
HAVING
FUNCS_POR_DPTO < 1000 // Restringe resultado
) AS T1

WHERE
F.FUNC_ID = DF.FUNC_ID AND
DF.DPTO_ID = T1.DPTO_ID AND
T1.DPTO_ID = D.DPTO_ID

GROUP BY
D.DPTO_NOME // Agrega mdia salarial por departamento

Pgina 82 de 120
www.handbookdeti.com.br
Handbook de Questes de TI Comentadas para Concursos Volume questes de TI

35. Assuntos relacionados: Banco de Dados, Consulta SQL, Operaes de Composio de


Relaes,
Banca: Cesgranrio
Instituio: BNDES
Cargo: Analista de Sistemas - Desenvolvimento
Ano: 2008
Questo: 42
Observe as seguintes tabelas de um sistema:

Pessoa (nomePessoa, endereo)


Filme (nomeFilme, estdio, verba)
Trabalha (nomePessoa(FK), nomeFilme(FK), atividade, salrio)

Um administrador de dados deseja fazer o seguinte relatrio: Todas as pessoas, os lmes


nos quais j trabalharam e o total recebido por cada lme. Se uma pessoa nunca trabalhou
num lme, ela deve aparecer no relatrio. A atividade que a pessoa exerceu no lme (ex:
ator, diretor, cmera etc.) no importante para o relatrio.

Qual consulta retorna o conjunto resposta correto?

(a). SELECT P.nomePessoa, T.nomeFilme, sum(T.salrio)


total
FROM Pessoa P LEFT OUTER JOIN Trabalha T
ON P.nomePessoa = T.nomePessoa
GROUP BY P.nomePessoa, T.nomeFilme
(b). SELECT T.nomePessoa, T.nomeFilme, sum(T.salrio)
total
FROM Pessoa P INNER JOIN Trabalha T
ON P.nomePessoa = T.nomePessoa
GROUP BY T.nomePessoa, T.nomeFilme
(c). SELECT P.nomePessoa, T.nomeFilme, sum(T.salrio)
total
FROM Pessoa P LEFT OUTER JOIN Trabalha T
ON P.nomePessoa = T.nomePessoa
GROUP BY P.nomePessoa, T.nomeFilme
HAVING sum(T.salrio) > 0
(d). SELECT P.nomePessoa, F.nomeFilme, sum(T.salrio)
total
FROM Pessoa P INNER JOIN Trabalha T
ON P.nomePessoa = T.nomePessoa
INNER JOIN Filme F
ON F.nomeFilme = T.nomeFilme
WHERE T.atividade IS NOT NULL
AND T.salrio > 0
GROUP BY P.nomePessoa, F.nomeFilme
(e). SELECT T.nomePessoa, T.nomeFilme, sum(T.salrio)
total
FROM Pessoa P LEFT OUTER JOIN Trabalha T
ON P.nomePessoa = T.nomePessoa
LEFT OUTER JOIN Filme F

Pgina 83 de 120
www.handbookdeti.com.br
Handbook de Questes de TI Comentadas para Concursos Volume questes de TI

ON F.nomeFilme = T.nomeFilme

Soluo:
Esta questo tenta explorar o conhecimento do candidato em relao s operaes INNER
JOIN e LEFT OUTER JOIN devido restrio se uma pessoa nunca trabalhou num lme,
ela deve aparecer no relatrio.

A operao INNER JOIN usada tipicamente na clusula FROM para composio de


relaes. Sua sintaxe <tabela A> INNER JOIN <tabela B> ON <condio desejada>.
A operao INNER JOIN cria uma nova tabela, combinando os valores das duas tabelas
(tabela A e tabela B ) com base na condio desejada de juno das tabelas. A consulta com
INNER JOIN compara cada linha da tabela A com cada linha da tabela B para encontrar
todos os pares de linhas que satisfazem a condio desejada. Quando a condio desejada
satisfeita, valores da coluna para cada par de linha encontrado das tabelas A e B so
combinados em uma linha da nova tabela. Note que, a operao INNER JOIN retorna as
linhas das tabelas somente quando a condio desejada satisfeita, isto , se na tabela A
existe uma linha que no satisfaz a condio desejada, esta linha no aparece no resultado
da operao INNER JOIN.

Como na operao INNER JOIN, a operao LEFT OUTER JOIN tambm usada ti-
picamente na clusula FROM para composio de relaes. Sua sintaxe <tabela A>
LEFT OUTER JOIN <tabela B> ON <condio desejada>. O LEFT OUTER JOIN
processado conforme mostrado anteriormente para o INNER JOIN. Entretanto, o LEFT
OUTER JOIN retorna todas as linhas da tabela da esquerda (tabela A), mesmo se a condi-
o desejada no encontrar nenhuma linha correspondente na tabela da direita (tabela B ).
Ou seja, o LEFT OUTER JOIN retorna todas linhas da tabela da esquerda, mais as linhas
da tabela da direita que satisfazem a condio desejada ou, nulo caso no satisfaa. Se a
tabela da esquerda retorna uma linha e a tabela da direita retornar mais que uma linha para
a condio desejada, a linha da tabela esquerda ser repetida para cada linha encontrada
da tabela da direita.

Existem outras operaes relacionadas clusula JOIN, como:

EQUI-JOIN - mesma funcionalidade do operador INNER JOIN, mas aceita somente


comparao de igualdade na condio desejada

NATURAL JOIN - uma especializao da operao EQUI-JOIN, porm a condio


desejada est implcita na operao. Por exemplo, SELECT * FROM employee NA-
TURAL JOIN department
CROSS JOIN - retorna o produto cartesiano do conjunto de linhas das tabelas asso-
ciadas. equivalente operao INNER JOIN, onde a condio desejada sempre
verdadeira

RIGHT OUTER JOIN - retorna todas as linhas da tabela da direita, mesmo se a


condio desejada no encontra nenhuma linha correspondente na tabela da esquerda

FULL OUTER JOIN uma combinao dos tipos das operaes LEFT OUTER JOIN
e RIGHT INNER JOIN, isto , ao resultado nal so adicionadas as linhas da tabela
esquerda que no correspondem a nenhuma linha da tabela direita, e similarmente para
as linhas da tabela da direita

Conforme explicado anteriormente, para a nossa consulta retorna o conjunto de resposta


correto, devemos utilizar a operao LEFT OUTER JOIN para satisfazer a restrio se uma

Pgina 84 de 120
www.handbookdeti.com.br
Handbook de Questes de TI Comentadas para Concursos Volume questes de TI

pessoa nunca trabalhou num lme, ela deve aparecer no relatrio, pois existe a possibilidade
uma pessoa nunca ter trabalho em um lme. Ento, a operao LEFT OUTER JOIN deve
ser entre as tabelas P essoa e T rabalha, onde a tabelaP essoa a tabela esquerda, isto ,
a consulta SQL deve conter a seguinte trecho: Pessoa P LEFT OUTER JOIN Trabalha T
ON P.nomePessoa = T.nomePessoa. A seguir, analisamos as alternativas desta questo:

(A) CORRETA

Esta consulta retorna o conjunto de resposta correto, pois faz uso da operao LEFT OU-
TER JOIN entre as tabelas P essoa e T rabalha na clusula FROM, sendo que a tabela
P essoa est do lado esquerdo da operao, satisfazendo a restrio do enunciado. Alm
disso, esta consulta utiliza a clusula GROUP BY para formar grupos de P.nomeP essoa
e T.nomeP essoa. Isso utilizado para somar os salrios das pessoas que trabalharam nos
lmes na clusula SELECT (sum(T.salrio) ). E, por m, esta consulta exibe o resultado
na clusula SELECT P.nomePessoa, T.nomeFilme, sum(T.salrio) total como o enunciado
solicitou. Portanto, alternativa correta.

(B) ERRADA

Esta consulta no retorna o conjunto de resposta correto, pois faz uso da operao INNER
JOIN na clusula FROM, conforme explicado anteriormente. Ento, alternativa errada.

(C) ERRADA

Esta consulta semelhante consulta da alternativa (A), com a diferena do uso da clusula
HAVING com a condio sum(T.salrio) > 0. A utilizao desta condio na consulta, no
satisfaz a restrio imposta pelo enunciado (se uma pessoa nunca trabalhou num lme, ela
deve aparecer no relatrio), pois o resultado nal no conter as pessoas que nunca traba-
lharam em um lme. Portanto, alternativa errada.

(D) ERRADA

Esta consulta no retorna o conjunto de resposta correto, pois faz uso da operao INNER
JOIN na clusula FROM, conforme explicado anteriormente. Ento, alternativa errada.

(E) ERRADA

Esta consulta faz uso duas vezes da operao LEFT OUTER JOIN. Uma nova tabela (tabela
A) produzida pela operao Pessoa P LEFT OUTER JOIN Trabalha T ON P.nomePessoa
= T.nomePessoa. Esta nova tabela (tabela A) utilizada para gerar outra nova tabela
(tabela B ) pela operao tabela A LEFT OUTER JOIN Filme F ON F.nomeFilme =
T.nomeFilme. Observe que esta ltima operao desnecessria, pois com a primeira ope-
rao possvel gerar o conjunto resposta correto. A alternativa est errada, pois no utiliza
a clusula GROUP BY para formar grupos P.nomeP essoa e T.nomeP essoa para somar os
salrios das pessoas que trabalharam nos lmes na clusula SELECT (sum(T.salrio) ).

Pgina 85 de 120
www.handbookdeti.com.br
Handbook de Questes de TI Comentadas para Concursos Volume questes de TI

36. Assuntos relacionados: Banco de Dados, SQL, JOIN, HAVING,


Banca: Cesgranrio
Instituio: BNDES
Cargo: Analista de Sistemas - Desenvolvimento
Ano: 2008
Questo: 49
Seja o seguinte grupo de tabelas de um sistema:

fabricante (idfabricante, nome, endereo)


pea (idmodelo, nome, descrio)
constri (idmodelo (FK), idfabricante (FK), data, quantidade, cor)

Um programador monta a seguinte consulta SQL:

SELECT f.nome, count(distinct c.idmodelo) as num


FROM fabricante f \textbf{INNER JOIN} constroi c
ON f.idfabricante = c.idfabricante
WHERE c.cor = 'VERMELHO'
GROUP BY f.nome
HAVING count(distinct c.idmodelo) > 10
ORDER BY num DESC

Qual o retorno dessa consulta?

(a). Os nomes dos fabricantes e a respectiva quantidade total de peas construdas na


cor vermelha, desde que, em cada data, a quantidade construda seja maior que
10; o relatrio estar ordenado de forma descendente pela quantidade de peas
construdas.

(b). Os nomes dos fabricantes que j construram mais de 10 modelos diferentes de


peas na cor vermelha e a quantidade de modelos diferentes, mostrando a lista
ordenada de forma descendente pela quantidade.

(c). Os nomes dos fabricantes que j construram pelo menos uma pea na cor verme-
lha; o relatrio estar ordenado de forma descendente na quantidade de modelos
diferentes construdos.

(d). Todos os nomes dos fabricantes e a respectiva quantidade de modelos diferentes de


peas vermelhas que j construram; se um fabricante nunca construiu uma pea
na cor vermelha, a contagem mostrar zero.

(e). Todos os nomes dos fabricantes e a respectiva quantidade de modelos diferentes


construdos, no importando a quantidade de peas, cor ou a data da construo;
o relatrio estar ordenado de forma descendente na quantidade de peas.

Soluo:
Para resolver esta questo, necessrio conhecer os conceitos de chave primria, chave es-
trangeira e, por m, entender o que os principais comandos SQL fazem e o resultado deles
sobre os dados manipulados de uma ou mais tabelas.

Por ser mais essencial, vamos comear entendendo o que so chave primria e estrangeira.
Tabelas so colees de dados que possuem identidade entre si pela semntica. Isso signica

Pgina 86 de 120
www.handbookdeti.com.br
Handbook de Questes de TI Comentadas para Concursos Volume questes de TI

que as linhas (ou tuplas) de uma tabela referem-se a coisas que guardam semelhana entre
si. Entretanto, apesar das semelhanas, cada tupla nica e deve ser assim, para que os
dados armazenados faam sentido aplicao e ao usurio. Para garantir essa unicidade,
foi desenvolvido o conceito de chave primria nos bancos de dados. A chave primria pode
ser composta por um ou mais campos da tabela. O SGBD (Sistema Gerenciador de Banco
de Dados) ir garantir que haver apenas uma tupla com uma determinada combinao
dos campos que compe a chave primria.

Ilustrando como exemplo, podemos supor uma tabela que armazene os produtos de uma
mercearia. A tabela, poderia ser:

produto (nome, quantidade, precoUnitario)

O campo nome foi utilizado como chave primria. Sabemos disso, pois, por conveno,
os campos de uma tabela que aparecem sublinhados so os considerados como chave pri-
mria. Nesse exemplo, o SGBD, ao tratar as operaes de insero permitiria que cada
produto aparecesse uma vez na tabela. Isso quer dizer que, se por descuido, o usurio j
tivesse cadastrado o produto 'banana' e tentasse cadastrar novamente 'banana' o sistema
receberia um erro por chave duplicada. Repare que isso extremamente til. Na hora de
fazer a contabilidade e de gerar relatrios de reposio de estoque, 'banana' um nico
produto da mercearia e no queremos que ela aparea repetidamente.

Para entender o conceito de chave estrangeira, podemos utilizar o exemplo da mercearia


tambm. Sabemos que, alm do cadastro do estoque, o comerciante precisa manter o his-
trico de suas vendas, de modo que possa atualizar sua contabilidade e prestar contas ao
governo. Para tal, podemos supor que o desenvolvedor do aplicativo de controle comercial
tenha criado uma tabela que ir registrar todas as vendas feitas. Para isso, ele criar as
tabelas:

venda (idVenda, data)


itemVenda (idVenda (FK), nomeProduto (FK), quantidade)

Veja que a tabela venda possui tambm um campo de chave primria. Como vendas no
possuem nomes, podemos imaginar que esse campo pode ser numrico e sequencial, de modo
a impedir que vendas sejam sobrescritas. A tabela itemVenda criada por um motivo muito
simples: repare que cada venda poder ter mais de um item nela; o fregus pode levar, na
mesma compra, 6 bananas e 3 mas. Se no tivssemos a tabela itemVenda, para cada
produto vendido teramos que, alm de armazenar o identicador da venda, armazenar
tambm a data dela. Isso causaria uma repetio de valores indesejada, aumentando des-
necessariamente o tamanho do banco, alm de prejudicar a velocidade de processamento de
algumas consultas sobre ele.

Repare que a tabela itemVenda possui uma chave primria composta de 2 campos: id-
Venda e nomeProduto. Ambas aparecem com um (FK) aps seu nome. Isso indica que
esses campos so chaves estrangeiras importadas de outras tabelas. no caso de idVenda,
ela importada da tabela venda, do campo de mesmo nome; nomeProduto vem da tabela
produto, do campo 'nome'. O controle realizado pelo SGBD sobre chaves estrangeiras visa
a garantir a integridade referencial entre os diversos dados armazenados no banco de da-
dos. No caso de nosso exemplo, a existncia das chaves estrangeiras na tabela itemVenda
pretende garantir que s existam itens de venda para vendas que realmente existam e que

Pgina 87 de 120
www.handbookdeti.com.br
Handbook de Questes de TI Comentadas para Concursos Volume questes de TI

os produtos das vendas estejam cadastrados antes de serem vendidos. (Alm desse controle,
h tambm outros sobre a excluso de itens em cascata, onde, por exemplo, a remoo de
um produto poderia desencadear a deleo dos itens de venda cadastrados para ele).

A chave primria composta, conforme o exemplo da tabela itemVenda tem a seguinte se-
mntica: para cada item de venda cadastrado na tabela itemVenda s poder existir uma
nica referncia a um produto para cada venda distinta. Em outras palavras, na venda
de nmero '10' poder aparecer apenas uma vez o item 'banana'. Veja que isso no limita
a compra do cliente a apenas uma banana, pois o campo 'quantidade' permite que vrias
bananas sejam vendidas para o cliente. A diferena estar apenas no armazenamento dessa
informao no sistema, pois o item banana aparecer apenas uma vez, com a quantidade
comprada registrada no campo especco para isso. Fica claro que essa medida evita que
vrias linhas para o mesmo produto sejam repetidas para expressar a mesma compra. Utili-
zando esse artifcio, economiza-se muito espao, alm de se aumentar tambm a velocidade
das consultas, visto que, em qualquer hiptese, uma quantidade maior de linhas em uma
tabela resultar, impreterivelmente, em maior tempo de consulta. (Este tipo de preocupa-
o com otimizao de tempos de consulta e quantidade de armazenamento deu origem ao
estudo das formas normais. Complemente seu aprendizado buscando por essa informao).

Com essas informaes, passamos a entender a estrutura das tabelas apresentadas:

fabricante (idfabricante, nome, endereo)

Cada fabricante cadastrado ser identicado pelo seu id (idFabricante) respectivo.

pea (idmodelo, nome, descrio)

Cada pea cadastrada ser identicada pelo seu id (idModelo) respectivo.

constri (idmodelo (FK), idfabricante (FK), data, quantidade, cor)

Cada linha da tabela constri ter a quantidade e a cor de uma nica pea fabricada por
um fabricante especco em uma determinada data. Alm disso, em uma determinada
data, um fabricante s produzir uma determinada pea em uma nica cor.

Com essas denies, podemos passar segunda parte da questo que envolve entender os
comandos SQL. Nessa questo so utilizados os seguintes comandos:

SELECT: indica quais os campos das tabelas que so listadas no comando FROM se
exibir;
deseja

FROM: indica as tabelas que fazem parte da consulta em questo;


INNER JOIN: esse comando, sempre que aparecer, estar entre duas tabelas e logo
aps o comando FROM. Ele um indicador que informa que os dados da tabela anterior
a ele sero cruzados com os dados da tabela posterior, utilizando a comparao descrita
no campo ON. Este comando um caso especco do comando JOIN. O prexo INNER
indica que apenas os registros que casarem na comparao do campo ON devero ser
retornados;

WHERE: dene os ltros que devero ser aplicados na consulta. De todos os registros
resultantes da juno das tabelas envolvidas na consulta, apenas aqueles que atenderem
s restries descritas aqui devero ser considerados para o resultado;

GROUP BY: o resultado da consulta ser agrupado pelo(s) campo(s) indicados neste
comando. Este comando utilizado em conjunto com funes de agregao, que, de

Pgina 88 de 120
www.handbookdeti.com.br
Handbook de Questes de TI Comentadas para Concursos Volume questes de TI

modo geral, geram estatsticas sobre outros campos que no os listados aqui. No caso de
nosso exemplo, deseja-se contar os modelos diferentes resultantes da consulta agrupados
pelo nome do fabricante;

HAVING: esta outra clusula de restrio ao resultado da consulta. Aqui, pode-se


denir parmetros para os campos agregados. A diferena primordial entre a clusula
HAVING e WHERE que os ltros descritos na segunda so aplicados no clculo da
consulta enquanto que os da primeira so aplicados apenas ao resultado pronto. De
um modo geral, ltros colocados em WHERE geram consultas mais rpidas do que
aqueles denidos em HAVING ;
ORDER BY: os campos aqui descritos sero utilizados como parmetro de orde-
nao do resultado da consulta. Por padro, os campos so ordenados seguindo em
que aparecem. Assim, o SGBD ordena o resultados sobre o primeiro campo, depois,
considerando essa primeira ordem, sobre o segundo e assim por diante. A ordenao
pode ser ascendente - do menor para o maior - utilizando o suxo ASC aps o campo
em questo, ou descendente - utilizando o suxo DESC. Por padro, a ordenao
ascendente em todos os campos listados.

Vistos os comandos utilizados, basta agora que analisemos a consulta em questo combinando-
a com as informaes que so armazenadas nas tabelas de acordo com o estudo das chaves.
Vejamos a Figura 6.

Figura 6: clusulas SQL e suas interpretaes.

Portanto, a resposta da questo a letra (B).

Pgina 89 de 120
www.handbookdeti.com.br
Handbook de Questes de TI Comentadas para Concursos Volume questes de TI

37. Assuntos relacionados: Banco de Dados, SQL, Consulta SQL,


Banca: Cesgranrio
Instituio: IBGE
Cargo: Analista de Sistemas - Suporte
Ano: 2010
Questo: 45
Considere uma tabela em um banco de dados relacional. A tabela apresenta trs atributos
do tipo texto, sendo CPF o campo chave.

Cliente(CPF, Nome, Endereco)

Considerando-se que homnimos so pessoas que possuem o mesmo nome, mas CPF dife-
rentes, a expresso SQL que resulta na lista dos Clientes que tm homnimos, juntamente
com o nmero de homnimos, :

(a). SELECT DISTINCT C1.Nome, C1.CPF, COUNT(C2)


FROM Cliente C1, Cliente C2
WHERE C1.Nome = C2.Nome AND C1.CPF <> C2.CPF

(b). SELECT Nome, CPF,


(SELECT COUNT(*) FROM Cliente C1
WHERE C.Nome = C1.Nome AND C.CPF <> C1.CPF)
FROM Cliente C

(c). SELECT Nome, CPF, COUNT(Cliente) FROM Cliente


GROUP BY Nome, CPF
HAVING COUNT(*) > 1

(d). SELECT TOP 1 C1.Nome, C1.CPF, COUNT(*)


FROM Cliente C1, Cliente C2
WHERE C1.Nome = C2.Nome AND C1.CPF <> C2.CPF

(e). SELECT C1.Nome, C1.CPF, COUNT(*)


FROM Cliente C1, Cliente C2
WHERE C1.CPF <> C2.CPF AND C1.Nome = C2.Nome
GROUP by C1.Nome, C1.CPF
HAVING count(*) > 0

Soluo:
A resposta da questo alternativa E. Para compreend-la, vamos analisar cada uma das
partes da consulta mostrada na alternativa. Para facilitar a explicao, abaixo a consulta
mostrada novamente, porm com as linhas numeradas.

1 SELECT C1.Nome, C1.CPF, COUNT(*)


2 FROM Cliente C1, Cliente C2
3 WHERE C1.CPF <> C2.CPF AND C1.Nome = C2.Nome
4 GROUP by C1.Nome, C1.CPF
5 HAVING count(*) > 0

Pgina 90 de 120
www.handbookdeti.com.br
Handbook de Questes de TI Comentadas para Concursos Volume questes de TI

Na linha 1, utilizado o comando SELECT, que indica quais sero as colunas retornadas
pela consulta. Foram selecionadas as colunas CPF, NOME. A terceira coluna que ser re-
tornada na consulta a coluna COUNT(*).

Na linguagem SQL, o operador COUNT serve para contar a quantidade de ocorrncias


de uma determinada combinao de valores das colunas. Na consulta em questo, a expres-
so COUNT(*) ir retornar a quantidade de vezes que uma determinada combinao dos
valores da colunas NOME e CPF se repete no resultado da consulta.

Para que o operador COUNT funcione, necessrio ainda que se utilize a clusula GROUP
BY, enumerando a combinao de colunas que se deseja agrupar. Na consulta em questo,
essa exigncia cumprida na linha 4.

J na linha 2, temos a clusula FROM, que utilizada para enumerar as tabelas que sero
necessrias para a execuo da consulta. Como deseja-se descobrir os clientes homnimos,
necessrio que se compare o nome de um cliente com o nome dos demais. Portanto, na
clusula FROM o programador teve que trabalhar com duas tabelas CLIENTE. Em outras
palavras, na linha 2 gerou um produto cartesiano da tabela CLIENTE com ela mesma.

Para restringir o produto cartesiano mencionado, na linha 3 o programador teve que adici-
onar algumas restries. Na primeira delas (C1.CPF <> C2.CPF), o programador garante
que o nome de um dado cliente (que identicado unicamente pelo CPF) s ser comparado
com o nome dos demais, e no com seu prprio nome. J na segunda restrio (C1.Nome =
C2.Nome), o programador verica se os clientes possuem o mesmo nome.

Na linha 5 o programador faz uso da clusula HAVING, que tem como funo restringir
os resultados em consultas que faam uso de operadores de agregao, como SUM, COUNT,
MEDIA, DEVPAD, entre outros. Na consulta em questo, a expresso utilizada foi HA-
VING count(*) > 0, que garante que a consulta s retornar combinaes de NOME e CPF
que possuam no mnimo 1 ocorrncia. Ou seja, s retornar clientes que possuam no mnimo
1 homnimo.

Por m, vale ressaltar que a consulta retornar um registro para cada cliente que pos-
suir um homnimo, contendo o CPF do cliente, o seu nome, e a quantidade de homnimos
associada. Um exemplo do resultado que poderia ser retornado pela consulta segue abaixo:

JOSE DA SILVA 03556236920 2


JOSE DA SILVA 23698563222 2
JOSE DA SILVA 78946123362 2
MICHAEL PAULO 45632152875 1
MICHAEL PAULO 78542635985 1
ALEX DA COSTA 45896325644 3
ALEX DA COSTA 45823666999 3
ALEX DA COSTA 45236698888 3
ALEX DA COSTA 78542666666 3

Pgina 91 de 120
www.handbookdeti.com.br
Handbook de Questes de TI Comentadas para Concursos Volume questes de TI

38. Assuntos relacionados: Banco de Dados, SQL,


Banca: ESAF
Instituio: Agncia Nacional de guas (ANA)
Cargo: Analista Administrativo - Tecnologia da Informao e Comunicao / Desenvolvi-
mento de Sistemas e Administrao de Banco de Dados
Ano: 2009
Questo: 23
Em SQL, a clusula check aplicada a uma declarao de domnio

(a). permite especicar um predicado que deve ser satisfeito por qualquer valor atri-
budo a uma varivel de determinado domnio.

(b). especica um predicado que deve ser satisfeito por uma tupla em uma relao.

(c). probe a insero de um valor nulo para as variveis do domnio.

(d). verica se os atributos considerados formam uma chave candidata.

(e). no tem efeito, pois no se aplica esta clusula a declaraes de domnio.

Soluo:
Uma tabela em um banco de dados denida por um nome e pelos seus campos (atributos)
e restries.

Por exemplo:

create table carro


(
nome char (20) not null,
placa char (7) not nul,
marca char (50) not nul,
ano integer
)

Como pode ser observado, o nome da tabela carro e possui os seguintes atributos: nome,
placa, marca e ano cada um com seu tipo de dado. Cada tipo de dado representa um do-
mnio (intervalo) de valores para um determinado atributo. Assim, um domnio a coleo
de valores permitidos para um atributo.

A clusula check na SQL pode ser aplicada a declaraes de domnio. Quando aplicado
a um domnio, a clusula check permite especicar um predicado que precisa ser satisfeito
para qualquer valor atribudo a uma varivel cujo tipo o domnio. Por exemplo, uma
clusula check pode garantir que um domnio de idade permita apenas valores maiores do
que um valor especicado (pessoa maior de idade).

create domain Idade numeric (5,2)


constraint teste-valor-idade
check (value >= 18)

O domnio Idade possui uma restrio que garante que o atributo idade seja maior ou igual
a 18 anos. A clusula constraint teste-valor-idade opcional usada para atribuir o nome
teste-valor-idade a restrio. O nome usado pelo sistema para indicar a restrio que uma
atualizao violou. Outro exemplo sobre a clusula check: um domnio pode ser restrito
para conter apenas um conjunto especicado de valores usando a clusula in:

Pgina 92 de 120
www.handbookdeti.com.br
Handbook de Questes de TI Comentadas para Concursos Volume questes de TI

create domain TipoConta char(10)


constrait teste-valor-idade
check(value in ('Corrente','Poupana') )

Desse modo, a clusula check permite que atributos e domnios sejam restritos, descrevendo
um predicado que deve ser satisfeito por qualquer valor atribudo a uma varivel de domnio.
Portanto, a questo correta a letra A.

Pgina 93 de 120
www.handbookdeti.com.br
Handbook de Questes de TI Comentadas para Concursos Volume questes de TI

39. Assuntos relacionados: Banco de Dados, SQL, Data Manipulation Language (DML),
Data Denition Language (DDL), Data Control Language (DCL),
Banca: ESAF
Instituio: Controladoria-Geral da Unio (CGU)
Cargo: Analista de Finanas e Controle - Tecnologia da Informao / Desenvolvimento de
Sistemas de Informao
Ano: 2008
Questo: 51
Em um banco de dados que utiliza a linguagem SQL para denio, manipulao e controle
de dados, correto armar que os comandos

(a). CREATE, DROP e INSERT fazem parte da DML (Linguagem de Manipulao


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 Denio de


Dados).

(d). ALTER, DELETE e REVOKE fazem parte da DML (Linguagem de Manipulao


de Dados).

(e). CREATE, GRANT e DROP fazem parte da DCL (Linguagem de Controle de


Dados).

Soluo:
Os Bancos de Dados, em geral, possuem diversos tipos de usurios, desde administradores
de bancos de dados (DBAs) at usurios casuais, passando por projetistas de bancos de
dados e programadores/analistas de sistemas. Para cada uma desta variedade de usurios,
o Sistema de Gerenciamento de Banco de Dados (SGBD) deve proporcionar linguagens e
interfaces apropriadas.

Em muitos SGBDs onde no h uma clara separao entre os nveis interno e conceitual, uma
linguagem chamada Linguagem de Denio de Dados (DDL  Data Denition Language)
utilizada pelo DBA e pelos projetistas para denir ambos os esquemas. Em SGBDs onde
mantida uma separao clara entre os dois nveis, a DDL utilizada para especicar apenas
o esquema conceitual e uma outra linguagem, a Linguagem de Denio de Armazenamento
(SDL  Storage Denition Language), utilizada para especicar o esquema interno. Para
especicar vises de usurios e seus mapeamentos para o esquema conceitual, a Lingua-
gem de Denio de Viso (VDL  View Denition Language). Entretanto, na maioria dos
SGBDs a DDL utilizada para denir tanto o esquema conceitual quanto o esquema externo.

Os SGBDs oferecem um conjunto de operaes para manipulao de dados, como pesquisa,


insero, excluso e modicao, atravs de uma linguagem conhecido por Linguagem de
Manipulao de Dados (DML  Data Manipulation Language).

A SQL (Structured Query Language  Linguagem de Consulta Estruturada) representa


uma combinao de DDL, VDL e DML, alm de diretivas para especicar restries e ou-
tras caractersticas. A SDL foi um componente da SQL em verses antigas, mas foi removida
da linguagem para mant-la apenas nos nveis conceitual e externo.

Em SQL, a DML composta pelos comandos INSERT, UPDATE e DELETE, que so

Pgina 94 de 120
www.handbookdeti.com.br
Handbook de Questes de TI Comentadas para Concursos Volume questes de TI

utilizados para inserir, atualizar e excluir registros de uma tabela, respectivamente. J a


DDL possui os comandos bsicos CREATE, ALTER e DROP que criam, alteram ou apagam
objetos (tabelas, ndices e vises) do banco de dados. Para alguns autores, os comandos
CREATE VIEW e DROP VIEW comporiam a VDL de SQL.

Um outro grupo de comandos de SQL serve para controlar aspectos de autorizao de


acesso de dados por usurios. Este grupo chamado de DCL (Data Control Language
 Linguagem de Controle de Dados) e composto pelas diretivas GRANT e REVOKE. A
primeira, autoriza um usurio a executar operaes e a segunda remove ou restringe o acesso.

Tem-se ainda a DTL (Data Transaction Language  Linguagem de Transao de Dados)


que controla as transaes em SQL e composta por BEGIN WORK, COMMIT e ROLL-
BACK. A primeira diretiva inicia uma transao e as outras duas nalizam, sendo que
COMMIT conclui a execuo dos comandos e ROLLBACK desfaz as operaes executadas.

Embora com apenas um nico comando (o comando SELECT), a DQL (Data Query Lan-
guage  Linguagem de Consulta de Dados) a parte da SQL mais utilizada, permitindo que
consultas sejam efetuadas ao banco de dados.

Pela teoria exposta, percebe-se que a alternativa b) a nica que apresenta o correto agru-
pamento de comandos componentes de uma das partes da SQL, sendo a resposta para a
questo.

Pgina 95 de 120
www.handbookdeti.com.br
Handbook de Questes de TI Comentadas para Concursos Volume questes de TI

40. Assuntos relacionados: Banco de Dados, SQL, Triggers,


Banca: ESAF
Instituio: Receita Federal (RF)
Cargo: Tcnico da Receita Federal - Tecnologia da Informao
Ano: 2006
Questo: 32
Analise as seguintes armaes relacionadas a Bancos de Dados e linguagem SQL:

I. A clusula GROUP BY do comando SELECT utilizada para dividir colunas em


conjuntos maiores de dados relacionados entre si.

II. Uma view uma forma predeterminada de visualizar dados de uma ou mais tabelas
como se fosse apenas uma tabela.

III. Quando o comando DROP TABLE executado, as estruturas da tabela e os dados


so excludos. Porm, quando o DROP VIEW executado, nenhum dado referenciado
pela view afetado.

IV. O trigger um tipo de view criado quando um evento em particular ocorre.

Indique a opo que contenha todas as armaes verdadeiras.

(a). I e II

(b). III e IV

(c). II e III

(d). I e III

(e). II e IV

Soluo:
Para esta questo o melhor caminho tratar item por item para chegar na to esperada
resposta correta.

I. ERRADA. A clusula GROUP BY do comando SELECT utilizada para agrupar


LINHAS em conjuntos de dados relacionados entre si. Cada grupo ser formado por
linhas que tenham o mesmo valor do atributo denido pela clusula;

II. CORRETA. A view facilita a vida para o usurio sendo que ele pode fazer consultas ou
atualizaes e estas vo reetir nas respectivas tabelas que esto sendo utilizadas. Uma
view proporciona mais segurana, ajuda na preveno de erros, melhora a performance
e faz com que os dados sejam mais compreensveis para o usurio;

III. CORRETA. O comando DROP utilizado para eliminar tabelas, esquemas, domnios
ou restries.

No caso do DROP TABLE duas opes de comportamento podem ser selecionadas:

 CASCADE: todas as restries e views que referenciam a tabela so eliminadas


juntamente com os dados da tabela e suas estruturas;

 RESTRICT: a tabela ser eliminada somente se ela no for referncia em ne-


nhuma restrio ou view.

O comando DROP VIEW elimina a view e, como este tipo de tabela virtual e seus da-
dos so referencia dados existentes em outras tabelas, nenhum contedo ser perdido.

Uma view tambm pode ser atualizada e esta atualizao reetida nas tabelas utili-
zadas na denio da mesma, porm alguns fatores devem ser observados:

Pgina 96 de 120
www.handbookdeti.com.br
Handbook de Questes de TI Comentadas para Concursos Volume questes de TI

 caso seja for formada a partir de uma nica tabela, ela deve conter a chave primria
e todos os outros atributos com restrio NOT NULL que no tenham um valor
DEFAULT especicado;

 normalmente no atualizvel se for formada por diversas tabelas utilizando-se


JOIN;

 no atualizvel se for denida utilizando a funo GROUP BY, HAVING ou


funes agregadas (ex.: COUNT, SUM, MAX, MIN e AVG);

 deve-se adicionar a clusula WITH CHECK OPTION no momento da especicao


da view para que o sistema verique a capacidade de atualizao e dena uma
estratgia de atualizao da view.

IV. ERRADA. O trigger uma funo e utilizada para executar uma ao (execuo
de SQL's ou de algum programa externo ao Banco de Dados) aps a ocorrncia de um
evento (operaes de atualizao por exemplo) que atenda uma condio (expresso
que retorna um valor VERDADEIRO ou FALSO) especicada durante a denio do
trigger.

Sendo assim, a resposta correta a letra C.

Pgina 97 de 120
www.handbookdeti.com.br
Handbook de Questes de TI Comentadas para Concursos Volume questes de TI

41. Assuntos relacionados: Banco de Dados, Nveis de Isolamento,


Banca: CESGRANRIO
Instituio: BNDES
Cargo: Analista de Suporte
Ano: 2008
Questo: 49
Considere o ambiente de uma aplicao multiusurio que acessa um sistema de gerncia
de banco de dados relacional. Os usurios acessam a aplicao em simultneo, submetendo
transaes concorrentes ao banco de dados. Todas as transaes realizadas na base de dados,
pela referida aplicao, esto denidas com o nvel de isoladamente READ COMMITTED
(leitura com efetivao).

O usurio Joo est executando, atravs da aplicao, uma transao T1, composta por
vrios comandos SQL. Neste caso, correto armar que

(a). o nvel de isolamento adotado no ir impedir o aparecimento de linhas fantasmas


(phantom) durante a execuo de T1.

(b). as atualizaes de dados realizadas por Joo dentro de T1 podem ser lidas por
outros usurios imediatamente, mesmo antes de Joo efetivar sua transao.

(c). se Joo abortar a execuo de T1 aps ter executado, como parte da transao,
comandos de atualizao de dados, as referidas atualizaes no podero ser des-
feitas.

(d). no ambiente descrito, a execuo intercalada de qualquer conjunto de transaes


ser serializvel.

(e). devido utilizao do nvel de isolamento especicado, enquanto Joo executar


T1, nenhum outro usurio poder executar comandos no banco de dados.

Soluo:
(A) CORRETA

O nvel de isolamento de uma determinada transao dene o tipo de bloqueio em rela-


o s operaes de leitura. No caso de um nvel de isolamento READ UNCOMMITTED
(leitura sem efetivao), a transao poder ler dados que foram modicados por outras
transaes e que ainda no foram conrmadas. Esses so fenmenos conhecidos como dirty
reads (leituras sujas). J o nvel de isolamento READ COMMITTED impede que ocorra
dirty reads.

H dois tipos de anomalias que no so resolvidas por esse nvel de isolamento: leitura
no-repetvel e leitura fantasma (phantom).

Suponha que duas consultas sejam executadas uma aps a outra dentro da mesma tran-
sao. No nvel de isolamento READ COMMITTED, nada impede que outra transao
efetive suas alteraes durante a execuo da primeira consulta. O comando SELECT,
nesse nvel de isolamento, enxerga apenas os dados conrmados antes da consulta ser exe-
cutada. Nesse caso, os resultados das duas consultas realizadas uma aps a outra, mesmo
pertencentes mesma transao, podem ser diferentes.

J o fenmeno de leitura fantasma semelhante leitura no-repetvel no sentido em que

Pgina 98 de 120
www.handbookdeti.com.br
Handbook de Questes de TI Comentadas para Concursos Volume questes de TI

so necessrias duas consultas com os mesmos critrios para que o fenmeno possa ser obser-
vado. Quando os retornos contm as mesmas linhas, mas com dados diferentes, o fenmeno
de leitura no-repetvel. Quando a diferena no resultado indica que as linhas no so as
mesmas, diz-se que ocorreu uma leitura fantasma.

O padro ISO dene mais dois nveis de isolamento: leitura repetvel e leitura serializ-
vel. O fenmeno de leitura fantasma s eliminado no nvel serializvel, que o nvel mais
restrito.

(B) ERRADA

Para que o citado ocorra, o nvel de isolamento deveria ser READ UNCOMMITTED.

(C) ERRADA

Todo sistema gerenciador de banco de dados deve garantir que uma transao possa ser
desfeita para manter a propriedade de atomicidade, que essencial para a recuperao dos
dados em casos de desastre e para a resoluo de conitos entre transaes. Logo, tal fato
impensvel.

(D) ERRADA

O nvel de isolamento citado no permite a serializao em relao as outras transaes.


Mas vale lembrar que tal nvel propicia melhoria do desempenho do sistema.

(E) ERRADA

Vrias transaes podem ser executadas simultaneamente, mas respeitando-se os bloqueios


que garantem o modo de serializao adotado.

Pgina 99 de 120
www.handbookdeti.com.br
Handbook de Questes de TI Comentadas para Concursos Volume questes de TI

42. Assuntos relacionados: Banco de Dados, Concorrncia entre Transaes, SGBD,


Banca: CESGRANRIO
Instituio: BNDES
Cargo: Analista de Suporte
Ano: 2008
Questo: 67
Em ambiente de Sistema Gerenciador de Banco de Dados (SGBD) multi-usurios, bloqueios
e controles por timestamp (registro de tempo) so mecanismos utilizados para a manuteno
da integridade das transaes.

Sobre tais mecanismos e sua utilizao em SGBD relacionais, tem-se que

(a). a utilizao de intenes de bloqueio visa aumentar a capacidade de concorrncia


do sistema, no qual so permitidos somente bloqueios e intenes de bloqueio em
linhas individuais.

(b). a utilizao de bloqueios pode ocorrer tanto em linhas de dados quanto em es-
truturas de maior granularidade, como tabelas, podendo, tambm, ocorrer em
estrutura de ndices.

(c). o protocolo de bloqueio em duas fases foi desenvolvido para utilizao em banco
de dados distribudos, e nele um n coordenador realiza uma eleio para que cada
n participante indique se pode ou no concluir uma transao.

(d). o protocolo de ordenao por timestamp (registro de tempo) baseado no mo-


mento em que um bloqueio foi obtido por uma transao, indicando que esse
bloqueio somente pode ser mantido por determinado perodo de tempo.

(e). o protocolo de ordenao por timestamp (registro de tempo) garante que no ocor-
rero deadlocks, pois esse protocolo impede que transaes mantenham o bloqueio
de um objeto por tempo indenido.

Soluo:
Bloqueios permitem que apenas uma nica transao manipule (altere) um item de dados
em um momento particular. Tambm possvel o bloqueio multigranular, que permite a
uma transao bloquear diferentes tipos de recursos como tabelas e estruturas de ndices
e, geralmente, esse bloqueio se d de forma hierrquica, onde o bloqueio explcito de um
determinado objeto implica no bloqueio implcito dos seus sub-objetos. Conclumos, assim,
que a alternativa B a alternativa correta e exclumos a alternativa A.

O protocolo de bloqueio de duas fases pode ser utilizado em qualquer SGBD, ou seja, ele
no foi especicamente desenvolvido para uso em bancos de dados distribudos, e sim para
garantir a serializao de transaes. Logo, a alternativa C est errada.

O protocolo de ordenao por timestamp atribui um timestamp para cada transao an-
tes que ela inicie e serve para garantir que quaisquer execues de leitura e escrita sejam
executadas por ordem de timestamp. Nesse protocolo no possvel que ocorram deadlocks,
pois no um mtodo baseado em bloqueios de recursos. Entretanto, uma transao pode
ser cancelada vrias vezes. A alternativas D e E esto erradas, pois no h bloqueios no
processo de ordenao por timestamp. O que existem so mtodos que se baseiam em ti-
meout para a manuteno do bloqueio por um tempo denido e so especicamente para
manuseio de deadlocks, e no um protocolo que garanta a serializao como o protocolo de
timestamp.

Pgina 100 de 120


www.handbookdeti.com.br
Handbook de Questes de TI Comentadas para Concursos Volume questes de TI

43. Assuntos relacionados: Banco de Dados, ACID,


Banca: FCC
Instituio: MPU
Cargo: Analista de Desenvolvimento de Sistemas
Ano: 2007
Questo: 63
A classicao das propriedades ACID, em transaes de BD, signicam

(a). Activity, Commit, Integrity e Direccion.


(b). Apresentao, Concluso, Inferncia e Dilogo.

(c). Atomicidade, Consistncia, Isolamento e Durabilidade.

(d). Alterao, Consulta, Insero e Deleo.

(e). Apresentao, Consistncia, Independncia e Durao.

Soluo:
Uma transao uma unidade de execuo de programa que acessa e, possivelmente, atua-
liza vrios itens de dados em um banco de dados. Para assegurar a integridade dos dados e
da prpria transao, o sistema de banco de dados deve manter as seguintes propriedades:
Atomicidade, Consistncia, Isolamento e Durabilidade. Essas propriedades so chamadas
de ACID.

Para um sistema garantir a propriedade de Atomicidade, ou todas as operaes da transa-


o so reetidas corretamente no banco de dados ou nenhuma ser, ou seja, uma transao
indivisvel. Qualquer ao que constitui falha no sistema, a transao deve ser desfeita
(rollback). Quando todas as aes so efetuadas com sucesso, a transao pode ser efeti-
vada (commit). A Atomicidade garantida pelo prprio sistema de banco de dados, mais
especicamente do componente chamado de Gerenciamento de Transaes.

Na propriedade de Consistncia, a execuo de uma transao isolada (isto , sem a execuo


concorrente de outra transao) preserva a consistncia do banco de dados. A Consistncia
garante que uma transao deve ser um programa correto, e suas aes no devem resul-
tar em violaes de restries de integridade denidas para o banco de dados. Assegurar
a propriedade de Consistncia aps uma transao tarefa do programador que codica a
transao.

Embora diversas transaes possam ser executadas de forma concorrente (simultnea), o


sistema garante que cada transao no toma conhecimento de outras transaes concorren-
tes no sistema. Isto , a propriedade de isolamento garante que nenhuma outra transao,
operando no mesmo sistema, pode interferir no funcionamento da transao corrente. Asse-
gurar a propriedade de Isolamento de responsabilidade de um componente do sistema de
banco de dados chamado Controle de Concorrncia.

Na propriedade de Durabilidade, depois de uma transao completar com sucesso (com-


mit), as mudanas que ela fez no banco de dados persistem, at mesmo se houver falhas
no sistema. A Durabilidade assegurada tambm pelo prprio sistema de banco de dados,
mais especicamente pelo componente de Gerenciamento de Recuperao.

Conforme explicado anteriormente, a alternativa correta da questo a letra C.

Pgina 101 de 120


www.handbookdeti.com.br
Handbook de Questes de TI Comentadas para Concursos Volume questes de TI

44. Assuntos relacionados: Banco de Dados, Transaes de Banco de Dados, Serializao,


Controle de Concorrncia, Grafo de Precedncias,
Banca: Cesgranrio
Instituio: BNDES
Cargo: Analista de Sistemas - Desenvolvimento
Ano: 2008
Questo: 41
Duas transaes (T1 e T2) de banco de dados executam as seguintes seqncias de operaes:

T1:
Na tabela DEPARTAMENTO, bloqueia a linha N em modo compartilhado;
Na tabela DEPARTAMENTO, l a coluna DESPESA da linha N;
Na tabela DEPARTAMENTO, desbloqueia a linha N;
Na tabela PROJETO, bloqueia a linha M em modo compartilhado;
Na tabela PROJETO, l a coluna VERBA da linha M;
Na tabela PROJETO, desbloqueia a linha M;
Na tabela PROJETO, bloqueia a linha M em modo exclusivo;
Na tabela PROJETO, escreve a coluna VERBA da linha M com o valor VERBA + DES-
PESA;
Na tabela PROJETO, desbloqueia a linha M;

T2:
Na tabela PROJETO, bloqueia linha M em modo compartilhado;
Na tabela PROJETO, l a coluna VERBA da linha M;
Na tabela PROJETO, desbloqueia a linha M;
Na tabela DEPARTAMENTO, bloqueia a linha N em modo compartilhado;
Na tabela DEPARTAMENTO, l a coluna DESPESA da linha N;
Na tabela DEPARTAMENTO, desbloqueia a linha N;
Na tabela DEPARTAMENTO, bloqueia a linha N em modo exclusivo;
Na tabela DEPARTAMENTO, es creve a coluna DESPESA da linha N com o valor DES-
PESA + VERBA;
Na tabela DEPARTAMENTO, desbloqueia a linha N;

correto armar que essas transaes

(a). no so serializveis e, portanto, no podem ser executadas concorrentemente.

(b). no podem entrar em bloqueio innito porque obedecem ao protocolo de bloqueio


em duas fases (two-phase locking).

(c). podem entrar em bloqueio innito (deadlock) se executadas concorrentemente.

(d). obedecem ao protocolo de bloqueio em duas fases (two-phase locking).

(e). so serializveis e obedecem ao protocolo de bloqueio em duas fases (two-phase


locking).

Soluo:
Para resolvermos essa questo, necessrio conhecer, primeiramente o conceito de seriali-
zao e concorrncia de transaes. Todo sistema gerenciador de banco de dados (SGBD)
deve garantir que qualquer transao executada por ele atenda aos 4 atributos ACID das
transaes:

Pgina 102 de 120


www.handbookdeti.com.br
Handbook de Questes de TI Comentadas para Concursos Volume questes de TI

A - Atomicidade: uma transao considerada como um elemento nico. Isso quer


dizer que ela s pode ser efetivada quando todos os comandos nela contidos forem
executados sem falhas e na ordem em que foram programados. Em caso de erro, todas
as operaes devem ser desfeitas. A atomicidade garante que a ideia do usurio de
estar executando uma nica ao se concretize, muito embora, no banco de dados, essa
ao se traduza em uma sequncia de comandos e operaes;

C - Consistncia: ao nal de uma transao o banco de dados deve estar em um estado


consistente; um estado que esteja de acordo com o esperado pelo sistema a que ele
atende, considerando o estado inicial logo anterior transao;

I - Isolamento: as transaes no devem afetar o funcionamento umas das outras nem


devem enxergar os resultados parciais entre si;

D - Durabilidade: o resultado nal de cada transao deve ser permanente. Uma


vez completa, o SGBD deve garantir que o novo estado do banco seja o mesmo para
qualquer outra transao seguinte.

Para garantir essas caractersticas das transaes, os SGBD's implementam mecanismos


de controle de concorrncia. H vrias propostas de mecanismos de controle de concor-
rncia. A concorrncia de transaes algo desejado, uma vez que possibilita um melhor
aproveitamento dos recursos computacionais. Na maioria dos casos, transaes iro atuar
em dados distintos e, portanto, a paralelizao delas permite que os recursos computacio-
nais disponveis sejam administrados entre elas, aumentando a ecincia da mquina. Por
exemplo, enquanto uma transao busca dados no disco, outra pode trabalhar com os que
j buscou realizando clculos no processador. A capacidade de um SGBD de paralelizar
transaes garantindo que o resultado nal do banco seja consistente, ou seja, equivalente
a execuo serial das transaes (isto , uma aps a outra) conhecida como seriabilidade.

A ordem que as operaes de transaes concorrentes executada dene um escalonamento


dessas transaes. Quem dene o escalonamento o SGBD. A seriabilidade de um escalona-
mento de transaes ditada pelo grafo de precedncia gerado a partir dos tipos de acesso
aos dados comuns envolvidos nas transaes. Grafos de precedncia que gerem ciclos no
so serializveis.

Para montar o grafo de precedncias de um escalonamento deve-se seguir os seguintes passos:

1. para cada transao Ti participante do esquema S criar um n Ti no grafo de prece-


dncia;

2. para cada operao em S onde Tj executa um read (X) aps um write (X) executado
por Ti, criar um arco Ti -> Tj no grafo;

3. para cada operao em S onde Tj executa um write (X) aps um read (X) executado
por Ti, criar um arco Ti -> Tj no grafo;

4. para cada operao em S onde Tj executa um write (X) aps um write (X) executado
por Ti , criar um arco Ti -> Tj no grafo;

5. um esquema S serializvel se e somente se o grafo de precedncia no contiver ciclos.

Para chegarmos ao gabarito da questo, o conceito de seriabilidade e a ideia contida na


anlise de grafos de precedncia ser essencial.

A questo em tela menciona em 3 de suas opes ( B, D e E) um tipo de mecanismo


de controle de concorrncia conhecido como two-phase locking. Este mecanismo prev duas
fases durante a execuo da transao: fase de expanso e fase de encolhimento.

Pgina 103 de 120


www.handbookdeti.com.br
Handbook de Questes de TI Comentadas para Concursos Volume questes de TI

Na fase de expanso, a transao vai realizando bloqueios (locks) nos objetos em que precisa
de acesso e no os desbloqueia at a fase seguinte. Esses bloqueios podem ser de 2 tipos:

Compartilhado (shared) - onde a prpria transao e todas as outras concorrentes


podem apenas ler os objetos bloqueados e nenhuma pode alter-los;

Exclusivo (exclusive) - o objeto ca acessvel apenas para a transao tendo ela direitos
de alter-lo inclusive.

Na fase de encolhimento, a transao no executa mais nenhum bloqueio sobre nenhum ob-
jeto e vai gradativamente liberando os bloqueios que conseguiu na fase de expanso conforme
no necessita mais deles.

Considerando essa caracterstica, possvel ver com um simples exemplo que esse tipo de
controle de concorrncia pode levar a casos de bloqueio innito (deadlock). Suponha duas
transaes T3 e T4 escalonadas conforme Figura 7:

Figura 7: escalonamento.

Nesse escalonamento, ambas as transaes cam esperando a liberao de recursos comuns


a elas que j foram previamente alocados transversalmente. Nenhuma das duas conseguir
o recurso esperado e nunca terminaro.

Esse tipo de problema pode ser corrigido atravs de outros mecanismos de controle de
transaes, mas no esto no escopo da questo.

Retornando anlise das opes da questo, vemos claramente que as assertivas (B), (D) e
(E) esto erradas, visto que as transaes no utilizam o mecanismo de two-phase locking.
A letra (B) inclusive diz que tal mecanismo impede a ocorrncia de bloqueio innito, o que
j foi visto que est errado. A letra (E) menciona ainda que as transaes so serializveis,
o que tambm falso e ser mostrado em breve.

A opo (C) diz que h possibilidade de bloqueio innito na execuo concorrente das
transaes. Entretanto isso completamente impossvel. As transaes da questo mantm
bloqueado apenas um objeto por vez. Logo, mesmo que o escalonamento levasse uma a
precisar do objeto bloqueado pela outra, eventualmente a transao que detinha o bloqueio
o liberaria, permitindo o retorno da execuo da que aguardava.

Pgina 104 de 120


www.handbookdeti.com.br
Handbook de Questes de TI Comentadas para Concursos Volume questes de TI

Durante a prova, importante utilizar a eliminao de opes erradas como feito acima
pois nesse caso os erros esto bastante visveis. Isso economiza um tempo precioso que voc
poder gastar em outras questes ou revisando a prova. A concluso da exatido da asser-
tiva (A) depende da anlise das operaes contidas nas transaes e da gerao dos grafos de
precedncia de vrios escalonamentos possveis. Isso demanda muito tempo e, dependendo
da situao, pode ser at mesmo impossvel. Nesse caso, deve-se reparar que, em qualquer
escalonamento proposto, alguma das transaes terminar escrevendo em um dos dados que
foi lido anteriormente pela outra. Esta, por sua vez, utilizar um dado inconsistente para
seus clculos. Esse fenmeno conhecido como leitura suja (dirty read), e tambm deve ser
impedido pelos SGBDs. Dessa observao, v-se que as transaes no so serializveis.

Pgina 105 de 120


www.handbookdeti.com.br
Handbook de Questes de TI Comentadas para Concursos Volume questes de TI

45. Assuntos relacionados: Banco de Dados, SQL, Gerncia de Transaes, Vises de Banco
de Dados,
Banca: Cesgranrio
Instituio: BNDES
Cargo: Analista de Sistemas - Desenvolvimento
Ano: 2008
Questo: 46
Um funcionrio, encarregado de vericar o correto funcionamento de uma base de dados
relacional, faz o seguinte teste:

select nome from emp where matr = 123;

O resultado vazio. Ento ele executa:

insert into emp(matr, nome, salario, ativo)


values (123, `Jos da Silva', 2000, `N');
commit;

O banco de dados no retorna erro e informa que inseriu uma linha. Por m, para ve-
ricar, ele consulta novamente:

select nome from emp where matr = 123;

O resultado continua vazio. Supondo que o sistema gerenciador de banco de dados esteja
funcionando corretamente, que opo explica o ocorrido?

(a). Como o funcionrio executou o primeiro SELECT momentos antes de executar o


INSERT, o resultado cou na memria cache do computador e no foi executado
pelo banco de dados na segunda vez. Somente aps protocolo LRU ter retirado
do cache o resultado do SELECT que ele ser novamente executado.

(b). Como emp uma viso e uma viso nada menos que uma consulta gravada no
banco de dados, nunca possvel us-la em operaes de manipulao de dados.
O COMMIT ignora a insero anterior.

(c). emp uma viso que retorna todos os empregados ativos (ativo='S'), mas foi
criada sem a expresso WITH CHECK OPTION, que evitaria o problema acima.

(d). emp no uma tabela, mas uma viso que retorna todos os empregados ativos
(ativo='S') e foi criada com a expresso WITH CHECK OPTION. Dessa forma,
como o empregado Jos da Silva no est ativo, o banco de dados no gravou o
registro no momento do COMMIT.

(e). O funcionrio executou o SELECT pouco tempo aps a insero do registro.


Mesmo nalizando a transao com o COMMIT, o registro est em memria e
ainda no foi gravado no disco. Somente aps o CHECKPOINT que o registro
estar disponvel para consulta.

Soluo:
O comando COMMIT efetiva a transao sendo executada. Todas as modicaes efetua-
das pela transao se tornam visveis para os outros, e existe a garantia de permanecerem
se uma falha ocorrer, pois o sistema gerenciador de banco de dados mantm um registro,
chamado log, de todos os dados que foram escritos no bando de dados. O log utilizado

Pgina 106 de 120


www.handbookdeti.com.br
Handbook de Questes de TI Comentadas para Concursos Volume questes de TI

para garantir a propriedade de durabilidade  se o sistema sofrer uma queda antes que as
alteraes geradas por uma transao que foi executada satisfatoriamente forem persistidas
em disco, o log utilizado para restaurar essas informaes quando o sistema for normalizado.

Eventualmente, a transao pode no ter sido efetivada com sucesso, neste caso o sistema
gerenciador de banco de dados se encarrega em desfazer as alteraes. Entretanto, no o
caso da questo, pois a informao de que uma linha foi inserida e a existncia do COMMIT
indica que a transao foi efetivada com sucesso. No COMMIT, os dados que foram altera-
dos ou inseridos na transao so imediatamente visveis para consultas que so executadas
depois. Esse fato elimina as alternativas (A) e (E) .

Views so consultas SQL que, em situaes diversas, podem ser utilizadas no papel de
tabelas relacionais. Entretanto, diferentemente das tabelas, os registros de uma view no
so armazenados na base de dados. Podemos imaginar uma view como uma tabela que
tivesse uma instncia virtual, que construda cada vez que a mesma invocada. Quando
uma view referenciada em expresses SQL, o gerenciador de bancos de dados manipula o
resultado da consulta que dene a view como se fosse uma tabela normal.

A similaridade com tabelas estende-se ao ponto de permitir atualizaes sobre os virtu-


ais registros de uma view. Quando um novo registro inserido, ou quando um registro
existente alterado ou removido, na verdade o SQL inclui, altera ou remove registros nas
tabelas que compem a view. Esse fato elimina a alternativa (B).

Cada implementao tem critrios ligeiramente diferentes para decidir se uma view pode
ou no ser atualizada. Como norma geral, entretanto, as seguintes restries devem ser
observadas na construo de uma view para que a mesma seja atualizvel. Uma coluna
atualizvel no pode ser resultante de:

funes de agregao, tais como sum, avg, etc.;

funes escalares, tais como sin, trim, etc.;

expresses aritmticas;

expresses condicionais, tais como case, iif, etc.;

literais;

subconsultas.

Uma view atualizvel deve conter

pelo menos uma fonte de registros atualizvel referenciada na clusula from.

Uma view atualizvel no pode conter:

operadores algbricos, tais como union;

a clusula group by;

a clusula distinct.

As restries acima formam um conjunto genrico de caractersticas das views atualizveis.


Essas regras, entretanto, devem ser analisadas luz das operaes pretendidas. Por exem-
plo, uma view que tenha algumas colunas baseadas em expresses aritmticas talvez no
possa ser objeto de um comando update nesses atributos, mas pode permitir a remoo de
registros. Por este e outros motivos, a lida de cada implementao com essa questo varia
bastante, e cada caso merece uma anlise cuidadosa.

Pgina 107 de 120


www.handbookdeti.com.br
Handbook de Questes de TI Comentadas para Concursos Volume questes de TI

Em views atualizveis, temos a opo CHECK OPTION no momento de sua criao. Todos
os comandos INSERT e UPDATE em uma view sero vericadas para garantir que os dados
satisfazem as condies que denem a viso. Se no satiszer, a atualizao ser rejeitada.

Analisando as alternativas que ainda no foram eliminadas (C e D), supomos que a view em
questo representa todos empregados ativos (ativo='S'). Como a insero trata da insero
de um empregado inativo, a existncia da opo CHECK OPTION impediria a sua insero,
mas no foi o que ocorreu, j que fomos informados de que uma linha foi inserida. Logo,
conclumos que a opo CHECK OPTION no foi utilizada na denio da view emp e,
portanto, a alternativa C representa a alternativa correta.

Pgina 108 de 120


www.handbookdeti.com.br
Handbook de Questes de TI Comentadas para Concursos Volume questes de TI

46. Assuntos relacionados: Banco de Dados, Escalonamento de Banco de Dados, Serializabi-


lidade, Durabilidade, Leitura Limpa, Clean Read, Leitura Suja, Dirty Read, Missing Deadlock,
Deadlock Ausente, Commit Alcanado, Reached Commit,
Banca: Cesgranrio
Instituio: Petrobras
Cargo: Analista de Sistemas - Processos de Negcio
Ano: 2008
Questo: 28
A execuo de um conjunto de transaes em um banco de dados chamado de escalona-
mento. O critrio para um escalonamento ser considerado correto a(o)

(a). serializabilidade.

(b). durabilidade.

(c). leitura limpa (clean read).

(d). deadlock ausente (missing deadlock).

(e). commit alcanado (reached commit).

Soluo:
A serializabilidade consiste em, dado um conjunto de transaes, independentemente da
forma como seus comandos so intercalados na execuo, o resultado obtido equivale
execuo serial das transaes. O escalonamento de transaes em um SGBD (Sistema Ge-
renciador de Bancos de Dados) deve ter como alvo a serializabilidade, de forma a garantir a
integridade das informaes. Sendo assim, a opo correta a letra (A).

As demais opes tratam de caractersticas das transaes em si ou mesmo de caracte-


rsticas que, juntas, traduzem a inteno da serializabilidade. A durabilidade, citada na
letra (B), uma das 5 caractersticas ACID desejadas para as transaes em si. Ela diz
que as alteraes geradas por uma transao devem permanecer no banco aps a efetivao
da mesma, garantindo sua efetivao real. No caso de uma falha do sistema, a transao
que tiver sido efetivada deve permanecer efetivada no banco para que a durabilidade seja
atendida. Repare que essa caracterstica imprescindvel para as transaes e no para o
escalonamento.

A leitura limpa uma das caractersticas que compe a serializabilidade. Ela prev que,
diferentemente da leitura suja, os dados lidos pelas transaes estejam sempre coerentes
com o estado do incio da transao e sejam sempre coerentes. O deadlock ausente outra
caracterstica que compe a serializabilidade. Nesse caso, o escalonamento, tal qual a exe-
cuo serial das transaes, deve impedir que os recursos cedidos transaes concorrentes
no gerem conitos de interesse entre ambas e impea mutuamente a execuo destas. Es-
tas caractersticas so tratadas no controle de concorrncia. Entretanto, esto intimamente
ligadas ao escalonamento, visto que inuenciaro diretamente nele.

Pgina 109 de 120


www.handbookdeti.com.br
Handbook de Questes de TI Comentadas para Concursos Volume questes de TI

47. Assuntos relacionados: Banco de Dados, Concorrncia entre Transaes,


Banca: Cesgranrio
Instituio: Petrobras
Cargo: Analista de Sistemas - Infraestrutura
Ano: 2008
Questo: 57
Considere as duas transaes (T1 e T2) de banco de dados abaixo.

read_lock - implementa bloqueio compartilhado no item de banco de dados write_lock -


implementa bloqueio exclusivo no item de banco de dados unlock - desbloqueia o item de
banco de dados read_item - executa a leitura do item write_item - executa a escrita do item

correto armar que estas transaes

(a). seguem o protocolo de bloqueio em duas fases e no entram em impasse (deadlock),


se executadas concorrentemente.

(b). podem entrar em impasse (deadlock), se executadas concorrentemente.

(c). so serializveis e no seguem o protocolo de bloqueio em duas fases.

(d). no so serializveis e, portanto, podem ser executadas concorrentemente.

(e). no seguem o protocolo de bloqueio em duas fases, no sendo portanto serializveis.

Soluo:
Uma transao uma unidade lgica de processamento que pode incluir uma ou mais ope-
raes sobre o Banco de Dados. Entende-se por transaes concorrentes aquelas que so
executadas ao mesmo tempo e pelo menos uma operao WRITE executada por alguma
das transaes.

Podemos observar que estas duas transaes implementam o protocolo de bloqueio de duas
fases (Two-Phase Locking - 2PL), pois ambas possuem uma fase de crescimento (growning )
e uma fase de encolhimento (shrinking ), em que todos os read_locks e write_locks ocorrem
na primeira fase, enquanto que os unlocks ocorrem na segunda fase (na verdade, to logo a
transao libera um bloqueio, ela entra na fase de encolhimento e no poder solicitar novos
bloqueios). Portanto, podemos descartar as alternativas C e E.

Lembre-se que a instruo read_lock permite que outras transaes apenas leiam o mesmo
item de dado e a write_lock impede que qualquer operao de escrita ou leitura possa ser
realizada por outra transao sobre um item que esteja bloqueado para escrita. Alm disso,
a qualquer hora podem ser feitos diversos bloqueios compartilhados (read_lock) simultane-
amente (por diferentes transaes) sobre um item de dado particular. J uma solicitao de

Pgina 110 de 120


www.handbookdeti.com.br
Handbook de Questes de TI Comentadas para Concursos Volume questes de TI

bloqueio exclusivo (write_lock) precisa esperar at que um bloqueio compartilhado termine


para ser efetivada.

Considere o caso em que estas duas transaes so executadas simultaneamente, isto ,


as instrues de cada transao podem ser intercaladas. A atribuio da ordem dessas
instrues conhecida como escala de execuo. Suponha que o sistema de controle de
concorrncia tenha gerado a seguinte escala de execuo:

T1 T2
read_lock(Y)
read_lock(X)
read_item(Y)
write_lock(X)
read_item(X)
write_lock(Y)
unlock(Y)
read_item(X)
X := X + Y
write_item(X)
unlock(X)
unlock(X)
read_item(Y)
Y := Y + X
write_item(Y)
unlock(Y)

1. a transao T1 requer o bloqueio compartilhado sobre o item de dados Y. Como no


h nenhum bloqueio exclusivo sobre este item, o sistema de controle de concorrncia
concede o bloqueio a T1;

2. a transao T2 requer o bloqueio compartilhado sobre o item de dados X. Como no


h nenhum bloqueio exclusivo sobre este item, o sistema de controle de concorrncia
concede o bloqueio a T2;

3. a transao T1 requer o bloqueio exclusivo sobre o item de dados X. Esta transao


precisa esperar at que bloqueio compartilhado sobre X termine para que, somente
assim, o bloqueio seja efetivado;

4. a transao T2 requer o bloqueio exclusivo sobre o item de dados Y. Esta transao


precisa esperar at que bloqueio compartilhado sobre X termine para que, somente
assim, o bloqueio seja efetivado.

Podemos observar, neste ponto, que T1 est parada esperando que T2 libere X, e esta
tambm est parada espera que T1 libere Y. A esta situao de impasse damos o nome
de deadlock. Descartamos, assim, a alternativa A.

Por m, lembre-se que o protocolo de bloqueio em duas fases garante a serializao de
conitos (onde uma sequncia de instrues pertencentes a uma nica transao aparecem
juntas), porm no garante a ausncia de deadlocks. Alm disso, uma forma de garantir a
consistncia em execuo simultnea (concorrente) cuidar para que qualquer escala execu-
tada seja, de certa forma, equivalente a uma escala serial. Eliminamos, assim, a alternativa
D. Portanto, a alternativa B est correta.

Pgina 111 de 120


www.handbookdeti.com.br
Handbook de Questes de TI Comentadas para Concursos Volume questes de TI

48. Assuntos relacionados: Banco de Dados, Isolamento entre Transaes, Escala de Execu-
o,
Banca: Cesgranrio
Instituio: Petrobras
Cargo: Analista de Sistemas - Infraestrutura
Ano: 2008
Questo: 60
Uma transao em um sistema de banco de dados pode ser descrita como uma unidade de
execuo de programa que acessa e, possivelmente, atualiza vrios itens de dados. Para o
gerenciamento de transaes em sistemas de bancos de dados, assinale a armao correta.

(a). Atomicidade para uma transao signica que cada operao de uma transao
reetida na base de dados ou nenhuma operao o .

(b). Um escalonamento a ordem de execuo de vrias transaes de forma concor-


rente, mas nunca entrelaada.

(c). Integridade para uma transao signica que a execuo de uma transao de
forma isolada (sem sofrer concorrncia de outra transao) preserva a consistncia
da base de dados.

(d). Mesmo aps a execuo de um comando commit, possvel a uma transao


retornar a seu estado inicial com a utilizao de rollback.

(e). Em transaes que ocorrem simultaneamente, no existe qualquer garantia de que


os dados lidos em um determinado momento so consistentes, independente do
nvel de isolamento utilizado.

Soluo:
Como o enunciado bem mencionou, uma transao em um sistema de banco de dados pode
ser descrita como uma unidade de execuo de programa que acessa e, possivelmente, atua-
liza vrios itens de dados. As quatro propriedades fundamentais das transaes, usualmente
conhecidas como ACID, so as seguintes:

atomicidade: o conjunto de operaes de uma transao indivisvel, de modo que s


faz sentido se for executado por completo. Ou seja, para que a transao faa sentido,
todas as operaes que a compe devem ser executadas;

consistncia: cada transao deve levar o banco de dados de um estado consistente


para outro estado tambm consistente;

isolamento: a execuo de uma transao no deve ser prejudicada pela execuo de


outras transaes que sejam executadas de forma concorrente;

durabilidade: as alteraes realizadas por uma transao conrmada devem persistir


no banco de dados.

Com base no princpio de Atomicidade (que vem de atmico, ou seja, indivisvel) apre-
sentado, podemos armar que a alternativa A est correta. Portanto, ela a resposta da
questo.

Na alternativa B, abordado o conceito de escala (ou escalonamento) de execuo de tran-


saes. Quando vrias transaes so executadas de forma concorrente, as operaes de
cada transao podem ser intercaladas. Portanto, a alternativa B est errada. A ordem
de execuo das operaes das mltiplas transaes que executam de forma concorrente

Pgina 112 de 120


www.handbookdeti.com.br
Handbook de Questes de TI Comentadas para Concursos Volume questes de TI

chamada escala de execuo. responsabilidade do SGDB escolher uma escala de execuo


que deixe o banco de dados em estado consistente.

A armativa trazida na alternativa C, diz respeito a propriedade Consistncia. Repare


que no incio da armativa citado o termo Integridade, que no uma das propriedades
das transaes. Ao m, o elaborador da questo tenta confundir o candidato usando o
termo Consistncia, que por sua vez uma das propriedades da questo. De todo modo, a
armativa est errada.

A alternativa D est errada pois o comando COMMIT utilizado justamente para conrmar
as operaes realizadas pela transao. Aps a sua utilizao, a transao est concluda,
no sendo mais possvel levar a transao ao seu estado inicial.

J a alternativa E trata do conceito de nveis de isolamento na execuo de transaes.


Como vimos, o isolamento diz respeito a interferncia das transaes entre si quando so
executadas de forma concorrente. Para lidar com essa propriedade, o padro SQL dene
quatro nveis de isolamento que podem ser implementados pelos SGBDs em termos de trs
fenmenos que devem ser evitados entre transaes concorrentes. Os fenmenos so os
seguintes:

leitura suja (dirty read): uma transao l valores que foram escritos por outra
transao ainda no conrmada;

leitura no-repetitiva (nonrepeatable read): uma transao l o valor de um


mesmo objeto mais que uma vez e encontra valores diferentes nas leituras realizadas;

leitura fantasma (phantom read): caso uma consulta seja realizada mais que uma
vez, e em cada execuo, sejam retornados resultados com conjuntos diferentes de
registros, modicados por outras transaes.

Para lidar com estes fenmenos, os quatro nveis de isolamento estabelecem polticas que,
quanto mais abertas, mais estimulam a concorrncia, tornando a ocorrncia destes fenmenos
mais provvel. Os nveis com polticas mais restritivas evitam a ocorrncia desses fenmenos,
porm tornam a execuo mais lenta.

Nvel de Isolamento Dirty Read Nonrepeatable Read Phantom Read


Read uncommitted Possvel Possvel Possvel
Read committed Impossvel Possvel Possvel
Repeatable read Impossvel Impossvel Possvel
Serializable Impossvel Impossvel Impossvel

Tabela 6: nveis de isolamento de transaes.

A Tabela 6 mostra os quatro nveis e suas respectivas susceptibilidades aos fenmenos. Com
isso, a alternativa E est errada, j que a consistncia dos dados lidos em um cenrio de
execuo concorrente de transaes depende do nvel de isolamento empregado.

Pgina 113 de 120


www.handbookdeti.com.br
Handbook de Questes de TI Comentadas para Concursos Volume questes de TI

49. Assuntos relacionados: Banco de Dados, ACID, Atomicidade em Transao, Consistn-


cia em Transao, Isolamento entre Transaes, Durabilidade em Transao,
Banca: Cesgranrio
Instituio: Petrobras
Cargo: Analista de Sistemas Pleno - Processos
Ano: 2006
Questo: 22
T1
1 Ler(A);
2 A = A  30;
3 Escrever(A);
4 Ler(B);
5 B = B + 30;
6 Escrever(B);

A transao T1, pertencente a um sistema bancrio e denida pelas operaes listadas acima,
responsvel pela transferncia de R$ 30,00 da conta A para a conta B. Considere tambm
uma transao T2 que esteja sendo executada simultaneamente a T1. Caso a transao T2
realize uma operao Escrever(B) aps a execuo da operao 4 e antes da execuo da
operao 6 por T1, qual das propriedades das transaes estar sendo violada no banco de
dados do sistema bancrio?

(a). Atomicidade.

(b). Distributividade.

(c). Consistncia.

(d). Durabilidade.

(e). Isolamento.

Soluo:
O cerne desta questo est relacionado s propriedades de um transao em banco de dados.

Uma transao um conjunto de operaes em banco de dados, possivelmente de leitura


e/ou alterao, que devem ser executadas como uma nica unidade de trabalho. Elas devem
ser processadas de forma convel, de tal forma que nenhum dado se perca, ou seja indevi-
damente alterado, em decorrncia de mltiplos usurios e possveis falhas de sistema. Um
exemplo tpico de transao a uma transferncia bancria entre contas. Ela exige vrias
operaes (dbito na conta de origem, crdito na conta de destino, cobrana de taxas, etc.),
mas todas so processas como uma nica unidade. dessa forma que se elimina a possibili-
dade de situaes indesejadas no que se refere a banco de dados, como: dbito na conta de
origem sem o devido crdito na conta de destino; crdito na conta de destino sem o devido
dbito na conta de origem; cobrana de taxas sem a devida efetivao da transferncia.

So os Sistemas de Gerenciamento de Banco de Dados (SGBD) que devem assegurar que


transaes obedeam certas propriedades. Anal de contas, so eles que so responsveis
pelo gerenciamento do banco de dados (como o seu prprio nome j diz). Dessa forma,
garante-se que sempre os dados do banco estaro ntegros.

Pgina 114 de 120


www.handbookdeti.com.br
Handbook de Questes de TI Comentadas para Concursos Volume questes de TI

As propriedades mais importantes e mais difundidas entre os SGBDs so as que formam


o acrnimo ACID:

atomicidade: ela assegura que a transao indivisvel. Ou todas as operaes que a


compem so concludas ou nada realizado. Isso implica que quando uma transao
tem que ser abortada, por qualquer motivo, as suas operaes que eventualmente forma
concludas devem ser desfeitas. Essa forma de desfazer uma transao recebe o nome
de rollback. No nosso exemplo acima, esta a propriedade que garante que nenhuma
situao no desejada citada acima ocorra;

consistncia: ela garante que as regras de integridade do banco de dados, denidas


pelo seu projetista, sero sempre preservadas. Caso uma transao tente levar o banco
a uma estado no-ntegro, o SGBD abortar essa transao. Vejamos um exemplo
no caso de uma transferncia bancria. Caso haja hipoteticamente uma restrio de
integridade que diga que qualquer conta bancria no possa car com saldo negativo e
uma transao tente transferir R$500,00 a partir de uma conta com apenas R$200,00,
o SGBD no permitir a concluso dessa transao;

isolamento: ela garante que transaes no interferem umas com as outras, exceto de
forma permitida. De maneira geral, uma transao nunca deve sobrescrever alteraes
feitas por outra transao. Alm disso, outras restries podem ser estabelecidas,
como por exemplo habilitar/desabilitar leitura de mudanas temporrias realizadas
por outras transaes. Esta propriedade assegurada pelo componente chamado de
Controle de Concorrncia. Este justamente o caso descrito no enunciado. Como a
transao T2 escreve na conta B aps a leitura dessa conta pela transao T1, quanto
T1 for escrever na conta B (linha 6), a escrita feita por T2 ser simplesmente sobrescrita.
Portanto, a alternativa E que o candidato deve marcar;

durabilidade: ela assegura que qualquer alterao resultante de uma transao ser
permanente. E isso deve ser verdade mesmo em caso de falha de sistema aps a
concluso da transao. Imagine que uma transferncia bancria seja feita em um
caixa eletrnico e que 30 segundos depois da sua concluso o equipamento falhe. a
propriedade de durabilidade que garante que a tal transferncia permanece vlida na
sua conta.

J a alternativa B nos traz a propriedade de distributividade, que no tem um relacionamento


direto com transaes de banco de dados. Essa propriedade est relacionada a operaes
algbricas (da Matemtica ou Relacional). Um exemplo bem simples de distributividade
visto entre operaes de soma: (3+6)+5 = 3+(6+5) = 14. Ou seja, como a ordem entre
as execues dessas operaes no interfere no resultado, se diz que esse tipo de operao
respeita a propriedade de distribuitividade.

Pgina 115 de 120


www.handbookdeti.com.br
Handbook de Questes de TI Comentadas para Concursos Volume questes de TI

50. Assuntos relacionados: SGBD, Consulta SQL, Modelo Relacional, Concorrncia entre
Transaes, Controle de Concorrncia, Two-Phase Locking (2PL),
Banca: Cespe
Instituio: ANAC
Cargo: Analista Administrativo - Tecnologia da Informao
Ano: 2009
Questo: 6870
Segundo Abraham Silberschatz, um Sistema Gerenciador de Banco de Dados (SGBD)
constituido por um conjunto de dados associados a um conjunto de programas para acesso
(Silberschatz, Abraham; Korth, Henry F e Sudarshan, S. Sistema de Banco
a esses dados.
de Dados. Makron Books, 1999. p. 1.)

Acerca dos conceitos e caractersticas do Sistema Gerenciador de Banco de Dados, julgue os


itens a seguir.

68 No processamento de uma consulta expressa em uma linguagem de alto nvel, como a


SQL, o SGBD deve planejar uma estratgia de execuo para recuperar o resultado da
consulta, a partir dos arquivos do banco de dados.

69 Um banco de dados relacional um banco de dados em que a estrutura tem a forma


de tabelas. Formalmente uma relao R denida sobre n conjuntos D1, D2, . . . , Dn
(Dominio - conjunto de valores obrigatoriamente distintos) um conjunto de n-tuplas
(ou simplesmente tuplas) <d1, d2, . . . , dn> tais que d1 D1, d2 D2, ..., dn Dn.
70 Para o SGBD viabilizar a execuo de transaes concomitantemente existem diversas
tcnicas de controle de concorrncia que so utilizadas para garantir propriedade de
no-interferncia ou isolamento de transaes. Uma dessas tcnicas o controle de
concorrncia baseado em ordenamento de registro de timestamp que utiliza o bloqueio
combinado com o Protocol Two-Phase locking (2PL).

Soluo:
Um Sistema Gerenciador de Banco de Dados (SGBD) uma coleo de arquivos e programas
que esto inter-relacionados, permitindo ao usurio acesso a consultas e alteraes desses
dados. Essa coleo de arquivos ou conjunto de dados chamado de banco de dados.

O principal objetivo de SGDB oferecer um ambiente to eciente quanto conveniente


para armazenamento e recuperao das informaes que esto no banco de dados. O maior
benefcio de um SGBD proporcionar uma viso abstrata dos dados, isto , o sistema oculta
alguns detalhes de como esses dados esto armazenados e como so mantidos.

A seguir analisamos os itens referentes ao SGBD:

68 CERTO

Dentre as funes bsicas desempenhadas pelo SGBD, est a de processamento de


consultas. Uma consulta nada mais que uma solicitao para recuperao de infor-
mao no banco de dados.

Nos processamentos de consultas so realizadas diversas tarefas para extrair informa-


o do banco de dados. As tarefas bsicas envolvidas so: anlise sinttica e traduo;
otimizao; e avaliao.

Pgina 116 de 120


www.handbookdeti.com.br
Handbook de Questes de TI Comentadas para Concursos Volume questes de TI

Antes do processamento de uma consulta, o SGBD deve traduzir uma linguagem de


alto nvel, como a SQL, para uma representao interna de uma consulta ao sistema.
Ou seja, nesta gerao da forma interna realizada uma anlise sinttica da sintaxe da
consulta, e, ento uma traduo para uma expresso algbrica relacional (representao
interna).

A tarefa de otimizao compreende em selecionar um plano de avaliao de consulta


que seja mais eciente para a consulta. Ou seja, so realizadas tentativas de encontrar
uma expresso equivalente e mais eciente a consulta dada.

Uma vez o plano de consulta selecionado, a consulta avaliada com esse plano e resul-
tado da consulta produzido.

Ento, conforme explicado anteriormente, o SGBD dene uma estratgia de execu-


o (anlise sinttica e traduo, otimizao e avaliao) para execuo de consultas.
Portanto, este item est certo.

69 ERRADO

Sob a estrutura de um banco de dados est o modelo de dados. Existem vrios modelos,
mas o principal o modelo relacional.

O modelo relacional, que um modelo com base em registros, utiliza um conjunto


de tabelas para representar tanto os dados quanto as relaes entre eles. Cada tabela
possui mltiplas colunas, cada uma com nome nico. Cada coluna da tabela chamada
de atributo.

Formalmente, dado uma coleo de conjuntos D1, D2, . . . ,Dn, no necessariamente


distintos, uma relao R denida sobre esses n conjuntos se for constituda por um
subconjunto de n-tuplas <d1, d2, . . . , dn> tal que d1 E D1, d2 E D2, . . . , dn E Dn.

Note que, o enunciado deste item arma que domnio um conjunto de valores obri-
gatoriamente distintos. Portanto, este item est errado.

70 ERRADO

Entende-se por transaes concorrentes aquelas que desejam executar ao mesmo tempo
e pelo menos uma operao de escrita no banco de dados.

Embora diversas transaes possam ser executadas de forma concorrente, o SGDB


deve garantir que uma transao no tome conhecimento de outras transaes concor-
rentes no sistema com forma de garantir a consistncia dos dados. Ou seja, O SGBD
deve garantir o isolamento entre as transaes concorrentes.

O isolamento de uma transao garante que a execuo de transaes concorrentes


resulte em uma situao no SGBD equivalente caso as transaes tivessem sido exe-
cutadas uma de cada vez. Note que a execuo concorrente de transaes aumenta o
desempenho do SGBD em termos do nmero de transaes que o sistema pode executar
em um determinado perodo e do tempo mdio de resposta.

Pgina 117 de 120


www.handbookdeti.com.br
Handbook de Questes de TI Comentadas para Concursos Volume questes de TI

A forma mais simples de implementar um controle de concorrncia por meio da


utilizao de mecanismos de bloqueios baseados em locks binrios, como operaes de
lock e unlock. Porm, os locks binrios tm o inconveniente de no permitir que duas
ou mais transaes que desejam realizar uma operao de leitura no banco de dados
acessem o item simultaneamente, o que reduz o desempenho do SGBD.

Para contornar esse problema, foi criado outro mecanismo de lock baseado em 3 ope-
raes: read_lock, write_lock e unlock.
read_lock utilizada quando uma transao
A
deseja ler um item no banco de dados. A write_lock utilizada quando uma transao
deseja escrever no banco de dados. E, a unlock utilizada aps o trmino das operaes
read_lock e write_lock.

Embora, os locks binrios e os locks read/write garantam a exclusividade de execu-


o de uma transao, eles no garantem a serializao das transaes concorrentes. A
serializao uma propriedade do SGBD que garante que independente da ordem dos
acessos aos dados feitos pelas transaes, o resultado nal ser o mesmo (vide Figura
8).

Figura 8: exemplo de transaes serializveis.

Outra tcnica que visa solucionar o problema de exclusividade e de serializao a


utilizao do algoritmo de bloqueio de duas fases (Two-Phase Locking - 2PL). Este al-
goritmo tem duas fases: a primeira consiste na obteno de locks, chamada de growing;
e a segunda consiste na liberao de locks. O principal problema desse tipo de controle
de concorrncia a possibilidade de deadlocks.

Uma tcnica para preveno de deadlocks a baseada em timestamp. Nesta tcnica,


a cada transao do sistema associado um nico timestamp xo. Esse timestamp
criado pelo SGBD antes que uma transao inicie sua execuo. Os timestamps das
transaes determinam a ordem de serializao das transaes e so atualizados a cada
nova execuo de leitura ou de escrita.

Conforme explicamos anteriormente, este item est errado, pois o timestamp no uti-
liza o algoritmo 2PL.

Caso deseje aprofundar no assunto sobre SGBD, recomendamos a seguinte referncia

Pgina 118 de 120


www.handbookdeti.com.br
Handbook de Questes de TI Comentadas para Concursos Volume questes de TI

Sistema de banco de dados - Silberschatz, Abraham; Korth, Henry F e Sudarshan.

Pgina 119 de 120


www.handbookdeti.com.br
Handbook de Questes de TI Comentadas para Concursos Volume questes de TI

Questo Resposta
1 D
2 A
3 B
4 D
5 E
6 B
7 E
8 E
9 C
10 C
11 C
12 E
13 B
14 80 CERTO 81 ERRADO 82 ERRADO
15 C
16 A
17 E
18 B
19 C
20 E
21 B
22 E
23 C
24 C
25 E
26 C
27 E
28 E
29 A
30 E
31 B
32 A
33 A
34 C
35 A
36 B
37 E
38 A
39 B
40 C
41 A
42 B
43 C
44 A
45 C
46 A
47 B
48 A
49 E
50 68 CERTO 69 ERRADO 70 ERRADO

Pgina 120 de 120 Handbook de TI Alm do Gabarito


ndice Remissivo
Indexao de Registros, 46
Isolamento entre Transaes, 112, 114

JOIN, 86
lgebra Relacional, 42

Leitura Limpa, 109


ACID, 49, 52, 101, 114
Leitura Suja, 109
Atomicidade em Transao, 114

Missing Deadlock, 109


Banco de Dados, 4, 5, 7, 10, 14, 16, 18, 21, 23,
Modelagem de Dados, 37
26, 28, 30, 33, 37, 39, 42, 44, 46, 49,
Modelo Entidade-Relacionamento, 23, 26, 30,
52, 54, 63, 65, 67, 69, 72, 75, 77, 79,
33, 39
81, 83, 86, 90, 92, 94, 96, 98, 100102,
Modelo Objeto-Relacionamento, 39
106, 109, 110, 112, 114
Modelo Relacional, 30, 33, 39, 65, 69, 116
Bancos de Dados Distribudos, 59

Nveis de Isolamento, 98
Categorias de Linguages de Banco de Dados,
Nvel de Abstrao, 44
54
Nvel de Viso, 44
Chave Assimtrica, 37
Nvel Fsco, 44
Chave Secundria, 37
Nvel Lgico, 44
Chave Simtrica, 37
Normalizao de Banco de Dados, 63, 65, 67,
Clean Read, 109
69
Commit, 14
Commit Alcanado, 109 Operaes de Composio de Relaes, 83
Concorrncia entre Transaes, 100, 110, 116 Oracle, 5, 7, 10, 12
Consistncia em Transao, 114 Otimizador de Consultas, 57
Consulta SQL, 75, 83, 90, 116
Controle de Concorrncia, 102, 116 PL/SQL, 16

Criptograa, 37 Primeira Forma Normal (1FN), 63, 65, 67, 72


Projeto Lgico de Banco de Dados, 30
Data Control Language (DCL), 54, 94
Data Denition Language (DDL), 54, 57, 94 Reached Commit, 109

Data Manipulation Language (DML), 54, 57, Rolling Back, 14

94 Rolling Forward, 14

Data Query Language (DQL), 54


Savepoint, 14
Deadlock Ausente, 109
Segunda Forma Normal (2FN), 63, 67, 72
DER, 28
Segurana da Informao, 37
Dicionrio de Dados (DD), 4
Serializao, 102
Dirty Read, 109
Serializabilidade, 109
Durabilidade, 109
SGBD, 4, 42, 57, 100, 116
Durabilidade em Transao, 114
Sistemas Distribudos, 61
SQL, 12, 21, 54, 77, 79, 81, 86, 90, 92, 94, 96,
Escala de Execuo, 112
106
Escalonamento de Banco de Dados, 109
Superchave, 37
Gatilhos, 18
Terceira Forma Normal (3FN), 63, 67, 72
Gerncia de Transaes, 106
Transaes de Banco de Dados, 102
Grafo de Precedncias, 102
Transact SQL, 21

HAVING, 86 Transaction Control Language (TCL), 54


Triggers, 18, 96
Independncia de Fragmentao, 61 Two-Phase Locking (2PL), 116
Independncia de Localizao, 61
121
Independncia do Sistema Operacional, 61 Vises de Banco de Dados, 106